@effect-uai/core 0.10.0 → 0.11.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/{Image-BZmKfIdq.d.mts → Image-C4vuBmu0.d.mts} +11 -11
- package/dist/{Image-BZmKfIdq.d.mts.map → Image-C4vuBmu0.d.mts.map} +1 -1
- package/dist/{Items-BnIduEV2.d.mts → Items-BWNu6VGp.d.mts} +116 -90
- package/dist/Items-BWNu6VGp.d.mts.map +1 -0
- package/dist/{Tool-2lC_XMth.d.mts → Tool-CXFHCQrT.d.mts} +42 -9
- package/dist/Tool-CXFHCQrT.d.mts.map +1 -0
- package/dist/{ToolEvent-cWZ2BnbS.d.mts → ToolEvent-nVijCrvm.d.mts} +2 -2
- package/dist/{ToolEvent-cWZ2BnbS.d.mts.map → ToolEvent-nVijCrvm.d.mts.map} +1 -1
- package/dist/{ToolResult-CL4hK_9z.d.mts → ToolResult-CQqKkcDa.d.mts} +2 -2
- package/dist/{ToolResult-CL4hK_9z.d.mts.map → ToolResult-CQqKkcDa.d.mts.map} +1 -1
- package/dist/{Toolkit-Dr9l_hNy.d.mts → Toolkit-BYPwwu-j.d.mts} +6 -6
- package/dist/Toolkit-BYPwwu-j.d.mts.map +1 -0
- package/dist/browser/Browser.mjs +4 -4
- package/dist/browser/Browser.mjs.map +1 -1
- package/dist/browser/BrowserTool.d.mts +34 -33
- package/dist/browser/BrowserTool.d.mts.map +1 -1
- package/dist/{dist-DWgRbDN3.mjs → dist-C0m0QnUP.mjs} +71 -30
- package/dist/dist-C0m0QnUP.mjs.map +1 -0
- package/dist/{dist-B04dlFHg.mjs → dist-CcRV3-A5.mjs} +8 -8
- package/dist/{dist-B04dlFHg.mjs.map → dist-CcRV3-A5.mjs.map} +1 -1
- package/dist/domain/Citation.d.mts +60 -0
- package/dist/domain/Citation.d.mts.map +1 -0
- package/dist/domain/Citation.mjs +7 -0
- package/dist/domain/Citation.mjs.map +1 -0
- package/dist/domain/Image.d.mts +1 -1
- package/dist/domain/Items.d.mts +1 -1
- package/dist/domain/Items.mjs +13 -3
- package/dist/domain/Items.mjs.map +1 -1
- package/dist/domain/Research.d.mts +37 -0
- package/dist/domain/Research.d.mts.map +1 -0
- package/dist/domain/Research.mjs +7 -0
- package/dist/domain/Research.mjs.map +1 -0
- package/dist/domain/Turn.d.mts +91 -9
- package/dist/domain/Turn.d.mts.map +1 -1
- package/dist/domain/Turn.mjs +8 -1
- package/dist/domain/Turn.mjs.map +1 -1
- package/dist/domain/Turn.test.mjs +1 -1
- package/dist/embedding-model/Embedding.d.mts +1 -1
- package/dist/embedding-model/EmbeddingModel.mjs +2 -2
- package/dist/embedding-model/EmbeddingModel.mjs.map +1 -1
- package/dist/embedding-model/EmbeddingModel.test.mjs +1 -1
- package/dist/index.d.mts +12 -8
- package/dist/index.mjs +5 -1
- package/dist/job/Job.d.mts +80 -0
- package/dist/job/Job.d.mts.map +1 -0
- package/dist/job/Job.mjs +49 -0
- package/dist/job/Job.mjs.map +1 -0
- package/dist/language-model/LanguageModel.d.mts +2 -2
- package/dist/language-model/LanguageModel.mjs +2 -2
- package/dist/language-model/LanguageModel.mjs.map +1 -1
- package/dist/language-model/LanguageModel.test.mjs +1 -1
- package/dist/loop/Loop.test.mjs +1 -1
- package/dist/music-generator/MusicGenerator.mjs +4 -4
- package/dist/music-generator/MusicGenerator.mjs.map +1 -1
- package/dist/music-generator/MusicGenerator.test.mjs +1 -1
- package/dist/observability/Metrics.d.mts +1 -1
- package/dist/observability/Metrics.test.mjs +2 -2
- package/dist/observability/Telemetry.test.mjs +2 -2
- package/dist/research/DeepResearch.d.mts +71 -0
- package/dist/research/DeepResearch.d.mts.map +1 -0
- package/dist/research/DeepResearch.mjs +61 -0
- package/dist/research/DeepResearch.mjs.map +1 -0
- package/dist/retry/Retry.test.mjs +1 -1
- package/dist/sandbox/Sandbox.mjs +18 -18
- package/dist/sandbox/Sandbox.mjs.map +1 -1
- package/dist/speech-synthesizer/SpeechSynthesizer.mjs +8 -8
- package/dist/speech-synthesizer/SpeechSynthesizer.mjs.map +1 -1
- package/dist/speech-synthesizer/SpeechSynthesizer.test.mjs +1 -1
- package/dist/streaming/JSONL.d.mts +3 -1
- package/dist/streaming/JSONL.d.mts.map +1 -1
- package/dist/streaming/JSONL.mjs +5 -11
- package/dist/streaming/JSONL.mjs.map +1 -1
- package/dist/streaming/JSONL.test.mjs +10 -1
- package/dist/streaming/JSONL.test.mjs.map +1 -1
- package/dist/streaming/SSE.d.mts +5 -3
- package/dist/streaming/SSE.d.mts.map +1 -1
- package/dist/streaming/SSE.mjs +28 -38
- package/dist/streaming/SSE.mjs.map +1 -1
- package/dist/streaming/SSE.test.mjs +54 -4
- package/dist/streaming/SSE.test.mjs.map +1 -1
- package/dist/structured-format/StructuredFormat.test.mjs +1 -1
- package/dist/testing/MockProvider.d.mts +1 -1
- package/dist/tool/Approval.d.mts +3 -3
- package/dist/tool/Approval.test.mjs +1 -1
- package/dist/tool/HistoryCheck.d.mts +2 -2
- package/dist/tool/Tool.d.mts +2 -2
- package/dist/tool/Tool.mjs +27 -7
- package/dist/tool/Tool.mjs.map +1 -1
- package/dist/tool/Tool.test.mjs +127 -3
- package/dist/tool/Tool.test.mjs.map +1 -1
- package/dist/tool/ToolEvent.d.mts +1 -1
- package/dist/tool/ToolResult.d.mts +1 -1
- package/dist/tool/Toolkit.d.mts +1 -1
- package/dist/tool/Toolkit.mjs.map +1 -1
- package/dist/tool/Toolkit.test.mjs +46 -2
- package/dist/tool/Toolkit.test.mjs.map +1 -1
- package/dist/transcriber/Transcriber.mjs +3 -3
- package/dist/transcriber/Transcriber.mjs.map +1 -1
- package/dist/transcriber/Transcriber.test.mjs +1 -1
- package/dist/web-read/WebRead.mjs +1 -1
- package/dist/web-read/WebRead.mjs.map +1 -1
- package/dist/web-read/WebReadTool.d.mts +1 -1
- package/dist/web-search/WebSearch.mjs +1 -1
- package/dist/web-search/WebSearch.mjs.map +1 -1
- package/dist/web-search/WebSearchTool.d.mts +1 -1
- package/package.json +19 -3
- package/src/browser/Browser.ts +4 -4
- package/src/domain/Citation.ts +64 -0
- package/src/domain/Items.ts +14 -4
- package/src/domain/Research.ts +42 -0
- package/src/domain/Turn.ts +26 -0
- package/src/embedding-model/EmbeddingModel.ts +2 -2
- package/src/index.ts +4 -0
- package/src/job/Job.ts +125 -0
- package/src/language-model/LanguageModel.ts +2 -2
- package/src/music-generator/MusicGenerator.ts +4 -4
- package/src/research/DeepResearch.ts +137 -0
- package/src/sandbox/Sandbox.ts +18 -18
- package/src/speech-synthesizer/SpeechSynthesizer.ts +8 -8
- package/src/streaming/JSONL.test.ts +19 -0
- package/src/streaming/JSONL.ts +6 -38
- package/src/streaming/SSE.test.ts +86 -3
- package/src/streaming/SSE.ts +36 -80
- package/src/tool/Tool.test.ts +151 -1
- package/src/tool/Tool.ts +120 -22
- package/src/tool/Toolkit.test.ts +60 -0
- package/src/tool/Toolkit.ts +2 -2
- package/src/transcriber/Transcriber.ts +3 -3
- package/src/web-read/WebRead.ts +1 -1
- package/src/web-search/WebSearch.ts +1 -1
- package/dist/Items-BnIduEV2.d.mts.map +0 -1
- package/dist/Tool-2lC_XMth.d.mts.map +0 -1
- package/dist/Toolkit-Dr9l_hNy.d.mts.map +0 -1
- package/dist/dist-DWgRbDN3.mjs.map +0 -1
package/src/tool/Tool.ts
CHANGED
|
@@ -244,37 +244,114 @@ export type ToolDescriptor = {
|
|
|
244
244
|
readonly strict?: boolean
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
+
const resolveInputSchema = (
|
|
248
|
+
schema: ToolInputSchema<any> | Schema.Codec<any, any, never, any>,
|
|
249
|
+
): ToolInputSchema<any> =>
|
|
250
|
+
Schema.isSchema(schema)
|
|
251
|
+
? fromEffectSchema(schema as Schema.Codec<any, any, never, any>)
|
|
252
|
+
: (schema as ToolInputSchema<any>)
|
|
253
|
+
|
|
247
254
|
/** A model-visible tool with a local `Effect` executor. */
|
|
248
|
-
export const make
|
|
249
|
-
|
|
250
|
-
|
|
255
|
+
export const make: {
|
|
256
|
+
<
|
|
257
|
+
Name extends string,
|
|
258
|
+
S extends Schema.Codec<any, any, never, any>,
|
|
259
|
+
Event,
|
|
260
|
+
Output,
|
|
261
|
+
E = never,
|
|
262
|
+
R = never,
|
|
263
|
+
>(
|
|
264
|
+
spec: Omit<Tool<Name, S["Type"], Event, Output, E, R>, "_tag" | "inputSchema"> & {
|
|
265
|
+
readonly inputSchema: S
|
|
266
|
+
},
|
|
267
|
+
): Tool<Name, S["Type"], Event, Output, E, R>
|
|
268
|
+
<Name extends string, Input, Event, Output, E = never, R = never>(
|
|
269
|
+
spec: Omit<Tool<Name, Input, Event, Output, E, R>, "_tag">,
|
|
270
|
+
): Tool<Name, Input, Event, Output, E, R>
|
|
271
|
+
} = (
|
|
272
|
+
spec: Omit<AnyLocalTool, "_tag" | "inputSchema"> & {
|
|
273
|
+
readonly inputSchema: ToolInputSchema<any> | Schema.Codec<any, any, never, any>
|
|
274
|
+
},
|
|
275
|
+
): AnyLocalTool => ({
|
|
276
|
+
_tag: "LocalTool",
|
|
277
|
+
...spec,
|
|
278
|
+
inputSchema: resolveInputSchema(spec.inputSchema),
|
|
279
|
+
})
|
|
251
280
|
|
|
252
281
|
/**
|
|
253
282
|
* A provider-hosted tool (native web search, code execution, RAG grounding).
|
|
254
283
|
* No local executor — `provider`/`config` drive the provider adapter's
|
|
255
284
|
* rendering. The model sees it; `Toolkit.run` reports it as `non_local_tool`.
|
|
256
285
|
*/
|
|
257
|
-
export const provider
|
|
258
|
-
|
|
259
|
-
|
|
286
|
+
export const provider: {
|
|
287
|
+
<
|
|
288
|
+
Name extends string,
|
|
289
|
+
S extends Schema.Codec<any, any, never, any>,
|
|
290
|
+
Provider extends string,
|
|
291
|
+
Config,
|
|
292
|
+
>(
|
|
293
|
+
spec: Omit<ProviderTool<Name, S["Type"], Provider, Config>, "_tag" | "inputSchema"> & {
|
|
294
|
+
readonly inputSchema: S
|
|
295
|
+
},
|
|
296
|
+
): ProviderTool<Name, S["Type"], Provider, Config>
|
|
297
|
+
<Name extends string, Input, Provider extends string, Config>(
|
|
298
|
+
spec: Omit<ProviderTool<Name, Input, Provider, Config>, "_tag">,
|
|
299
|
+
): ProviderTool<Name, Input, Provider, Config>
|
|
300
|
+
} = (
|
|
301
|
+
spec: Omit<ProviderTool<string, any, string, any>, "_tag" | "inputSchema"> & {
|
|
302
|
+
readonly inputSchema: ToolInputSchema<any> | Schema.Codec<any, any, never, any>
|
|
303
|
+
},
|
|
304
|
+
): ProviderTool<string, any, string, any> => ({
|
|
305
|
+
_tag: "ProviderTool",
|
|
306
|
+
...spec,
|
|
307
|
+
inputSchema: resolveInputSchema(spec.inputSchema),
|
|
308
|
+
})
|
|
260
309
|
|
|
261
310
|
/**
|
|
262
311
|
* A typed control-flow signal to the agent loop (escalate, pause, schedule,
|
|
263
312
|
* hand off). Decode-only: the loop interprets the call rather than executing a
|
|
264
313
|
* handler, so there is no `run`.
|
|
265
314
|
*/
|
|
266
|
-
export const signal
|
|
267
|
-
|
|
268
|
-
|
|
315
|
+
export const signal: {
|
|
316
|
+
<Name extends string, S extends Schema.Codec<any, any, never, any>>(
|
|
317
|
+
spec: Omit<SignalTool<Name, S["Type"]>, "_tag" | "inputSchema"> & {
|
|
318
|
+
readonly inputSchema: S
|
|
319
|
+
},
|
|
320
|
+
): SignalTool<Name, S["Type"]>
|
|
321
|
+
<Name extends string, Input>(spec: Omit<SignalTool<Name, Input>, "_tag">): SignalTool<Name, Input>
|
|
322
|
+
} = (
|
|
323
|
+
spec: Omit<SignalTool<string, any>, "_tag" | "inputSchema"> & {
|
|
324
|
+
readonly inputSchema: ToolInputSchema<any> | Schema.Codec<any, any, never, any>
|
|
325
|
+
},
|
|
326
|
+
): SignalTool<string, any> => ({
|
|
327
|
+
_tag: "SignalTool",
|
|
328
|
+
...spec,
|
|
329
|
+
inputSchema: resolveInputSchema(spec.inputSchema),
|
|
330
|
+
})
|
|
269
331
|
|
|
270
332
|
/**
|
|
271
333
|
* A typed request for an external actor to respond before the loop resumes
|
|
272
334
|
* (frontend, Telegram, CLI prompt). Decode-only; the loop stops/pauses and
|
|
273
335
|
* resumes by appending the actor's `function_call_output`.
|
|
274
336
|
*/
|
|
275
|
-
export const interaction
|
|
276
|
-
|
|
277
|
-
|
|
337
|
+
export const interaction: {
|
|
338
|
+
<Name extends string, S extends Schema.Codec<any, any, never, any>>(
|
|
339
|
+
spec: Omit<InteractionTool<Name, S["Type"]>, "_tag" | "inputSchema"> & {
|
|
340
|
+
readonly inputSchema: S
|
|
341
|
+
},
|
|
342
|
+
): InteractionTool<Name, S["Type"]>
|
|
343
|
+
<Name extends string, Input>(
|
|
344
|
+
spec: Omit<InteractionTool<Name, Input>, "_tag">,
|
|
345
|
+
): InteractionTool<Name, Input>
|
|
346
|
+
} = (
|
|
347
|
+
spec: Omit<InteractionTool<string, any>, "_tag" | "inputSchema"> & {
|
|
348
|
+
readonly inputSchema: ToolInputSchema<any> | Schema.Codec<any, any, never, any>
|
|
349
|
+
},
|
|
350
|
+
): InteractionTool<string, any> => ({
|
|
351
|
+
_tag: "InteractionTool",
|
|
352
|
+
...spec,
|
|
353
|
+
inputSchema: resolveInputSchema(spec.inputSchema),
|
|
354
|
+
})
|
|
278
355
|
|
|
279
356
|
/**
|
|
280
357
|
* Return a copy of a tool under a new `name`. Useful for resolving a name
|
|
@@ -312,18 +389,39 @@ export const withRun = <
|
|
|
312
389
|
run: (input: Input, emit: Emit<Event>) => Effect.Effect<Output2, E2, R2>,
|
|
313
390
|
): Tool<Name, Input, Event, Output2, E2, R2> => ({ ...tool, run })
|
|
314
391
|
|
|
315
|
-
/**
|
|
392
|
+
/** True for provider-hosted tools — the kind a provider renders natively. */
|
|
393
|
+
export const isProviderTool = (tool: AnyTool): tool is ProviderTool<string, any, string, any> =>
|
|
394
|
+
tool._tag === "ProviderTool"
|
|
395
|
+
|
|
396
|
+
/**
|
|
397
|
+
* The `ProviderTool`s in a toolkit, for a provider adapter to render as its
|
|
398
|
+
* native hosted-tool entries (web search, code execution, grounding). The other
|
|
399
|
+
* kinds render as function declarations via `descriptorsOf`.
|
|
400
|
+
*/
|
|
401
|
+
export const providerToolsOf = (
|
|
402
|
+
toolkit?: Readonly<Record<string, AnyTool>>,
|
|
403
|
+
): ReadonlyArray<ProviderTool<string, any, string, any>> =>
|
|
404
|
+
toolkit === undefined ? [] : Object.values(toolkit).filter(isProviderTool)
|
|
405
|
+
|
|
406
|
+
/**
|
|
407
|
+
* Render tools to provider-agnostic descriptors. `ProviderTool`s are excluded:
|
|
408
|
+
* they are provider-hosted and must never leak into the function-declaration
|
|
409
|
+
* list — each adapter renders them natively via `providerToolsOf`. Every other
|
|
410
|
+
* kind is model-visible as a declaration.
|
|
411
|
+
*/
|
|
316
412
|
export const toDescriptors = (tools: ReadonlyArray<AnyTool>): ReadonlyArray<ToolDescriptor> =>
|
|
317
|
-
tools
|
|
318
|
-
|
|
319
|
-
|
|
413
|
+
tools
|
|
414
|
+
.filter((tool) => !isProviderTool(tool))
|
|
415
|
+
.map((tool) => {
|
|
416
|
+
const inputSchema = tool.inputSchema["~standard"].jsonSchema.input({
|
|
417
|
+
target: "draft-2020-12",
|
|
418
|
+
})
|
|
419
|
+
// `strict` only exists on local/provider kinds; signals/interactions omit it.
|
|
420
|
+
const strict = "strict" in tool ? tool.strict : undefined
|
|
421
|
+
return strict !== undefined
|
|
422
|
+
? { name: tool.name, description: tool.description, inputSchema, strict }
|
|
423
|
+
: { name: tool.name, description: tool.description, inputSchema }
|
|
320
424
|
})
|
|
321
|
-
// `strict` only exists on local/provider kinds; signals/interactions omit it.
|
|
322
|
-
const strict = "strict" in tool ? tool.strict : undefined
|
|
323
|
-
return strict !== undefined
|
|
324
|
-
? { name: tool.name, description: tool.description, inputSchema, strict }
|
|
325
|
-
: { name: tool.name, description: tool.description, inputSchema }
|
|
326
|
-
})
|
|
327
425
|
|
|
328
426
|
/**
|
|
329
427
|
* Render a `Toolkit` (a name-indexed record of tools) to descriptors, treating
|
package/src/tool/Toolkit.test.ts
CHANGED
|
@@ -252,6 +252,66 @@ describe("Toolkit.make / compose / namespace - uniqueness", () => {
|
|
|
252
252
|
})
|
|
253
253
|
})
|
|
254
254
|
|
|
255
|
+
describe("Toolkit.namespace - typed toolkits", () => {
|
|
256
|
+
const Query = Schema.Struct({ q: Schema.String })
|
|
257
|
+
type GeoShape = { readonly lookup: (q: string) => Effect.Effect<string> }
|
|
258
|
+
class Geo extends Context.Service<Geo, GeoShape>()("test/Geo") {}
|
|
259
|
+
|
|
260
|
+
const search = Tool.make({
|
|
261
|
+
name: "search",
|
|
262
|
+
description: "",
|
|
263
|
+
inputSchema: Tool.fromEffectSchema(Query),
|
|
264
|
+
run: ({ q }) =>
|
|
265
|
+
Effect.gen(function* () {
|
|
266
|
+
const geo = yield* Geo
|
|
267
|
+
if (q === "") return yield* Effect.fail("empty_query" as const)
|
|
268
|
+
return yield* geo.lookup(q)
|
|
269
|
+
}),
|
|
270
|
+
})
|
|
271
|
+
|
|
272
|
+
const kit = Toolkit.namespace("geo", Toolkit.make(search))
|
|
273
|
+
|
|
274
|
+
it("type: prefixes the name literal of a service-requiring tool", () => {
|
|
275
|
+
expectTypeOf(kit.geo__search.name).toEqualTypeOf<"geo__search">()
|
|
276
|
+
})
|
|
277
|
+
|
|
278
|
+
it("type: preserves E and R through namespace", () => {
|
|
279
|
+
expectTypeOf<Toolkit.ToolkitE<typeof kit>>().toEqualTypeOf<"empty_query">()
|
|
280
|
+
expectTypeOf<Toolkit.ToolkitR<typeof kit>>().toEqualTypeOf<Geo>()
|
|
281
|
+
})
|
|
282
|
+
|
|
283
|
+
it("type: preserves E and R through makeNamespaced", () => {
|
|
284
|
+
const namespaced = Toolkit.makeNamespaced("geo", search)
|
|
285
|
+
expectTypeOf(namespaced.geo__search.name).toEqualTypeOf<"geo__search">()
|
|
286
|
+
expectTypeOf<Toolkit.ToolkitE<typeof namespaced>>().toEqualTypeOf<"empty_query">()
|
|
287
|
+
expectTypeOf<Toolkit.ToolkitR<typeof namespaced>>().toEqualTypeOf<Geo>()
|
|
288
|
+
})
|
|
289
|
+
|
|
290
|
+
it("type: Toolkit.run surfaces the namespaced tool's R (string E is absorbed)", () => {
|
|
291
|
+
const stream = Toolkit.run(kit, [])
|
|
292
|
+
expectTypeOf(stream).toEqualTypeOf<
|
|
293
|
+
Stream.Stream<import("./ToolEvent.js").ToolEvent, never, Geo>
|
|
294
|
+
>()
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
it("runtime: renames the tool and executes it under the prefixed name", async () => {
|
|
298
|
+
const call: ToolCall = {
|
|
299
|
+
type: "function_call",
|
|
300
|
+
call_id: "call_1",
|
|
301
|
+
name: "geo__search",
|
|
302
|
+
arguments: '{"q":"lisbon"}',
|
|
303
|
+
}
|
|
304
|
+
const events = await Effect.runPromise(
|
|
305
|
+
Stream.runCollect(Toolkit.run(kit, [call])).pipe(
|
|
306
|
+
Effect.provide(Layer.succeed(Geo, { lookup: (q) => Effect.succeed(`geo:${q}`) })),
|
|
307
|
+
),
|
|
308
|
+
)
|
|
309
|
+
const outputs = events.filter(isOutput).map((e) => e.result)
|
|
310
|
+
expect(outputs).toHaveLength(1)
|
|
311
|
+
expect(outputs[0]).toMatchObject({ _tag: "Ok", tool: "geo__search", value: "geo:lisbon" })
|
|
312
|
+
})
|
|
313
|
+
})
|
|
314
|
+
|
|
255
315
|
describe("Toolkit.wrap - middleware", () => {
|
|
256
316
|
const Empty = Schema.Struct({})
|
|
257
317
|
type AuditShape = { readonly record: (name: string) => Effect.Effect<void> }
|
package/src/tool/Toolkit.ts
CHANGED
|
@@ -186,8 +186,8 @@ export class DuplicateToolName extends Data.TaggedError("DuplicateToolName")<{
|
|
|
186
186
|
type PrefixName<Prefix extends string, Name extends string> = `${Prefix}__${Name}`
|
|
187
187
|
|
|
188
188
|
type PrefixTool<Prefix extends string, T extends AnyTool> =
|
|
189
|
-
T extends Tool<infer N, infer I, infer Ev, infer O, infer R>
|
|
190
|
-
? Tool<PrefixName<Prefix, N>, I, Ev, O, R>
|
|
189
|
+
T extends Tool<infer N, infer I, infer Ev, infer O, infer E, infer R>
|
|
190
|
+
? Tool<PrefixName<Prefix, N>, I, Ev, O, E, R>
|
|
191
191
|
: T extends ProviderTool<infer N, infer I, infer P, infer C>
|
|
192
192
|
? ProviderTool<PrefixName<Prefix, N>, I, P, C>
|
|
193
193
|
: T extends SignalTool<infer N, infer I>
|
|
@@ -88,7 +88,7 @@ export class SttStreaming extends Context.Service<SttStreaming, void>()(
|
|
|
88
88
|
export const transcribe = (
|
|
89
89
|
request: CommonTranscribeRequest,
|
|
90
90
|
): Effect.Effect<TranscriptResult, AiError.AiError, Transcriber> =>
|
|
91
|
-
Effect.flatMap(Transcriber
|
|
91
|
+
Effect.flatMap(Transcriber, (t) => t.transcribe(request))
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
94
|
* Live transcription. Dual-arity: pipeable (data-last) and direct
|
|
@@ -122,8 +122,8 @@ export const streamTranscriptionFrom: {
|
|
|
122
122
|
<E, R>(audioIn: Stream.Stream<Uint8Array, E, R>, request: CommonStreamTranscribeRequest) =>
|
|
123
123
|
Stream.unwrap(
|
|
124
124
|
Effect.gen(function* () {
|
|
125
|
-
const t = yield* Transcriber
|
|
126
|
-
yield* SttStreaming
|
|
125
|
+
const t = yield* Transcriber
|
|
126
|
+
yield* SttStreaming
|
|
127
127
|
return t.streamTranscriptionFrom(audioIn, request)
|
|
128
128
|
}),
|
|
129
129
|
),
|
package/src/web-read/WebRead.ts
CHANGED
|
@@ -67,4 +67,4 @@ export class WebRead extends Context.Service<WebRead, WebReadService>()(
|
|
|
67
67
|
export const read = (
|
|
68
68
|
request: CommonReadRequest,
|
|
69
69
|
): Effect.Effect<ReadResponse, AiError.AiError, WebRead> =>
|
|
70
|
-
Effect.flatMap(WebRead
|
|
70
|
+
Effect.flatMap(WebRead, (s) => s.read(request))
|
|
@@ -147,4 +147,4 @@ export class WebSearch extends Context.Service<WebSearch, WebSearchService>()(
|
|
|
147
147
|
export const search = (
|
|
148
148
|
request: CommonSearchRequest,
|
|
149
149
|
): Effect.Effect<SearchResponse, AiError.AiError, WebSearch> =>
|
|
150
|
-
Effect.flatMap(WebSearch
|
|
150
|
+
Effect.flatMap(WebSearch, (s) => s.search(request))
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Items-BnIduEV2.d.mts","names":[],"sources":["../src/domain/Items.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tool-2lC_XMth.d.mts","names":[],"sources":["../src/tool/Tool.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toolkit-Dr9l_hNy.d.mts","names":[],"sources":["../src/tool/Toolkit.ts"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dist-DWgRbDN3.mjs","names":["V.it","prop","layer","V.describe","flakyTest","internal.effect","internal.live","internal.layer","internal.flakyTest","internal.prop","V.it"],"sources":["../../../node_modules/.pnpm/@effect+vitest@4.0.0-beta.66_effect@4.0.0-beta.57_vitest@4.1.5_@types+node@25.6.0_vite@_d7d7dab69e8c36d4c2ec9ca466208ed9/node_modules/@effect/vitest/dist/internal/internal.js","../../../node_modules/.pnpm/@effect+vitest@4.0.0-beta.66_effect@4.0.0-beta.57_vitest@4.1.5_@types+node@25.6.0_vite@_d7d7dab69e8c36d4c2ec9ca466208ed9/node_modules/@effect/vitest/dist/index.js"],"sourcesContent":["/**\n * @since 1.0.0\n */\nimport * as Cause from \"effect/Cause\";\nimport * as Duration from \"effect/Duration\";\nimport * as Effect from \"effect/Effect\";\nimport * as Exit from \"effect/Exit\";\nimport { flow, pipe } from \"effect/Function\";\nimport * as Layer from \"effect/Layer\";\nimport { isObject } from \"effect/Predicate\";\nimport * as Schedule from \"effect/Schedule\";\nimport * as Schema from \"effect/Schema\";\nimport * as Scope from \"effect/Scope\";\nimport * as fc from \"effect/testing/FastCheck\";\nimport * as TestClock from \"effect/testing/TestClock\";\nimport * as TestConsole from \"effect/testing/TestConsole\";\nimport * as V from \"vitest\";\nconst runPromise = /*#__PURE__*/Effect.fnUntraced(function* (effect, _ctx) {\n const exit = yield* Effect.exit(effect);\n if (Exit.isFailure(exit)) {\n const errors = Cause.prettyErrors(exit.cause);\n for (let i = 0; i < errors.length; i++) {\n yield* Effect.logError(errors[i]);\n }\n }\n return yield* exit;\n}, (effect, _, ctx) => Effect.runPromise(effect, {\n signal: ctx?.signal\n}));\n/** @internal */\nconst runTest = ctx => effect => runPromise(effect, ctx);\nconst TestEnv = /*#__PURE__*/Layer.mergeAll(TestConsole.layer, /*#__PURE__*/TestClock.layer());\n/** @internal */\nexport const addEqualityTesters = () => {\n V.expect.addEqualityTesters([]);\n};\n/** @internal */\nconst testOptions = timeout => typeof timeout === \"number\" ? {\n timeout\n} : timeout ?? {};\n/** @internal */\nconst makeTester = (mapEffect, it = V.it) => {\n const run = (ctx, args, self) => pipe(Effect.suspend(() => self(...args)), mapEffect, runTest(ctx));\n const f = (name, self, timeout) => it(name, testOptions(timeout), ctx => run(ctx, [ctx], self));\n const skip = (name, self, timeout) => it.skip(name, testOptions(timeout), ctx => run(ctx, [ctx], self));\n const skipIf = condition => (name, self, timeout) => it.skipIf(condition)(name, testOptions(timeout), ctx => run(ctx, [ctx], self));\n const runIf = condition => (name, self, timeout) => it.runIf(condition)(name, testOptions(timeout), ctx => run(ctx, [ctx], self));\n const only = (name, self, timeout) => it.only(name, testOptions(timeout), ctx => run(ctx, [ctx], self));\n const each = cases => (name, self, timeout) => it.for(cases)(name, testOptions(timeout), (args, ctx) => run(ctx, [args], self));\n const fails = (name, self, timeout) => V.it.fails(name, testOptions(timeout), ctx => run(ctx, [ctx], self));\n const prop = (name, arbitraries, self, timeout) => {\n if (Array.isArray(arbitraries)) {\n const arbs = arbitraries.map(arbitrary => {\n if (Schema.isSchema(arbitrary)) {\n return Schema.toArbitrary(arbitrary);\n }\n return arbitrary;\n });\n return it(name, testOptions(timeout), ctx =>\n // @ts-ignore\n fc.assert(\n // @ts-ignore\n fc.asyncProperty(...arbs, (...as) => run(ctx, [as, ctx], self)),\n // @ts-ignore\n isObject(timeout) ? timeout?.fastCheck : {}));\n }\n const arbs = fc.record(Object.keys(arbitraries).reduce(function (result, key) {\n const arb = arbitraries[key];\n if (Schema.isSchema(arb)) {\n result[key] = Schema.toArbitrary(arb);\n }\n result[key] = arb;\n return result;\n }, {}));\n return it(name, testOptions(timeout), ctx =>\n // @ts-ignore\n fc.assert(fc.asyncProperty(arbs, (...as) =>\n // @ts-ignore\n run(ctx, [as[0], ctx], self)),\n // @ts-ignore\n isObject(timeout) ? timeout?.fastCheck : {}));\n };\n return Object.assign(f, {\n skip,\n skipIf,\n runIf,\n only,\n each,\n fails,\n prop\n });\n};\n/** @internal */\nexport const prop = (name, arbitraries, self, timeout) => {\n if (Array.isArray(arbitraries)) {\n const arbs = arbitraries.map(arbitrary => {\n if (Schema.isSchema(arbitrary)) {\n throw new Error(\"Schemas are not supported yet\");\n }\n return arbitrary;\n });\n return V.it(name, testOptions(timeout),\n // @ts-ignore\n ctx => fc.assert(fc.property(...arbs, (...as) => self(as, ctx)), isObject(timeout) ? timeout?.fastCheck : {}));\n }\n const arbs = fc.record(Object.keys(arbitraries).reduce(function (result, key) {\n const arb = arbitraries[key];\n if (Schema.isSchema(arb)) {\n throw new Error(\"Schemas are not supported yet\");\n }\n result[key] = arb;\n return result;\n }, {}));\n return V.it(name, testOptions(timeout),\n // @ts-ignore\n ctx => fc.assert(fc.property(arbs, as => self(as, ctx)), isObject(timeout) ? timeout?.fastCheck : {}));\n};\n/** @internal */\nexport const layer = (layer_, options) => (...args) => {\n const excludeTestServices = options?.excludeTestServices ?? false;\n const withTestEnv = excludeTestServices ? layer_ : Layer.provideMerge(layer_, TestEnv);\n const memoMap = options?.memoMap ?? Effect.runSync(Layer.makeMemoMap);\n const scope = Effect.runSync(Scope.make());\n const contextEffect = Layer.buildWithMemoMap(withTestEnv, memoMap, scope).pipe(Effect.orDie, Effect.cached, Effect.runSync);\n const makeIt = it => Object.assign(it, {\n effect: makeTester(effect => Effect.flatMap(contextEffect, context => effect.pipe(Effect.scoped, Effect.provide(context))), it),\n prop,\n flakyTest,\n layer(nestedLayer, options) {\n return layer(Layer.provideMerge(nestedLayer, withTestEnv), {\n ...options,\n memoMap,\n excludeTestServices\n });\n }\n });\n if (args.length === 1) {\n V.beforeAll(() => runPromise(Effect.asVoid(contextEffect)), options?.timeout ? Duration.toMillis(Duration.fromInputUnsafe(options.timeout)) : undefined);\n V.afterAll(() => runPromise(Scope.close(scope, Exit.void)), options?.timeout ? Duration.toMillis(Duration.fromInputUnsafe(options.timeout)) : undefined);\n return args[0](makeIt(V.it));\n }\n return V.describe(args[0], () => {\n V.beforeAll(() => runPromise(Effect.asVoid(contextEffect)), options?.timeout ? Duration.toMillis(Duration.fromInputUnsafe(options.timeout)) : undefined);\n V.afterAll(() => runPromise(Scope.close(scope, Exit.void)), options?.timeout ? Duration.toMillis(Duration.fromInputUnsafe(options.timeout)) : undefined);\n return args[1](makeIt(V.it));\n });\n};\n/** @internal */\nexport const flakyTest = (self, timeout = Duration.seconds(30)) => pipe(self, Effect.scoped, Effect.sandbox, Effect.retry(pipe(Schedule.recurs(10), Schedule.while(_ => Effect.succeed(Duration.isLessThanOrEqualTo(Duration.fromInputUnsafe(_.elapsed), Duration.fromInputUnsafe(timeout)))))), Effect.orDie);\n/** @internal */\nexport const makeMethods = it => Object.assign(it, {\n effect: makeTester(flow(Effect.scoped, Effect.provide(TestEnv)), it),\n live: makeTester(Effect.scoped, it),\n flakyTest,\n layer,\n prop\n});\n/** @internal */\nexport const {\n /** @internal */\n effect,\n /** @internal */\n live\n} = /*#__PURE__*/makeMethods(V.it);\n/** @internal */\nexport const describeWrapped = (name, f) => V.describe(name, it => f(makeMethods(it)));\n//# sourceMappingURL=internal.js.map","import * as V from \"vitest\";\nimport * as internal from \"./internal/internal.js\";\n/**\n * @since 1.0.0\n */\nexport * from \"vitest\";\n/**\n * @since 1.0.0\n */\nexport const addEqualityTesters = internal.addEqualityTesters;\n/**\n * @since 1.0.0\n */\nexport const effect = internal.effect;\n/**\n * @since 1.0.0\n */\nexport const live = internal.live;\n/**\n * Share a `Layer` between multiple tests, optionally wrapping\n * the tests in a `describe` block if a name is provided.\n *\n * @since 1.0.0\n *\n * ```ts\n * import { expect, layer } from \"@effect/vitest\"\n * import { Effect, Layer, Context } from \"effect\"\n *\n * class Foo extends Context.Service(\"Foo\")<Foo, \"foo\">() {\n * static Live = Layer.succeed(Foo, \"foo\")\n * }\n *\n * class Bar extends Context.Service(\"Bar\")<Bar, \"bar\">() {\n * static Live = Layer.effect(\n * Bar,\n * Effect.map(Foo, () => \"bar\" as const)\n * )\n * }\n *\n * layer(Foo.Live)(\"layer\", (it) => {\n * it.effect(\"adds context\", () =>\n * Effect.gen(function*() {\n * const foo = yield* Foo\n * expect(foo).toEqual(\"foo\")\n * }))\n *\n * it.layer(Bar.Live)(\"nested\", (it) => {\n * it.effect(\"adds context\", () =>\n * Effect.gen(function*() {\n * const foo = yield* Foo\n * const bar = yield* Bar\n * expect(foo).toEqual(\"foo\")\n * expect(bar).toEqual(\"bar\")\n * }))\n * })\n * })\n * ```\n */\nexport const layer = internal.layer;\n/**\n * @since 1.0.0\n */\nexport const flakyTest = internal.flakyTest;\n/**\n * @since 1.0.0\n */\nexport const prop = internal.prop;\n/**\n * @since 1.0.0\n */\n/** @ignored */\nconst methods = {\n effect,\n live,\n flakyTest,\n layer,\n prop\n};\n/**\n * @since 1.0.0\n */\nexport const it = /*#__PURE__*/Object.assign(V.it, methods);\n/**\n * @since 1.0.0\n */\nexport const makeMethods = internal.makeMethods;\n/**\n * @since 1.0.0\n */\nexport const describeWrapped = internal.describeWrapped;\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1],"mappings":"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"}
|