@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.
Files changed (134) hide show
  1. package/dist/{Image-BZmKfIdq.d.mts → Image-C4vuBmu0.d.mts} +11 -11
  2. package/dist/{Image-BZmKfIdq.d.mts.map → Image-C4vuBmu0.d.mts.map} +1 -1
  3. package/dist/{Items-BnIduEV2.d.mts → Items-BWNu6VGp.d.mts} +116 -90
  4. package/dist/Items-BWNu6VGp.d.mts.map +1 -0
  5. package/dist/{Tool-2lC_XMth.d.mts → Tool-CXFHCQrT.d.mts} +42 -9
  6. package/dist/Tool-CXFHCQrT.d.mts.map +1 -0
  7. package/dist/{ToolEvent-cWZ2BnbS.d.mts → ToolEvent-nVijCrvm.d.mts} +2 -2
  8. package/dist/{ToolEvent-cWZ2BnbS.d.mts.map → ToolEvent-nVijCrvm.d.mts.map} +1 -1
  9. package/dist/{ToolResult-CL4hK_9z.d.mts → ToolResult-CQqKkcDa.d.mts} +2 -2
  10. package/dist/{ToolResult-CL4hK_9z.d.mts.map → ToolResult-CQqKkcDa.d.mts.map} +1 -1
  11. package/dist/{Toolkit-Dr9l_hNy.d.mts → Toolkit-BYPwwu-j.d.mts} +6 -6
  12. package/dist/Toolkit-BYPwwu-j.d.mts.map +1 -0
  13. package/dist/browser/Browser.mjs +4 -4
  14. package/dist/browser/Browser.mjs.map +1 -1
  15. package/dist/browser/BrowserTool.d.mts +34 -33
  16. package/dist/browser/BrowserTool.d.mts.map +1 -1
  17. package/dist/{dist-DWgRbDN3.mjs → dist-C0m0QnUP.mjs} +71 -30
  18. package/dist/dist-C0m0QnUP.mjs.map +1 -0
  19. package/dist/{dist-B04dlFHg.mjs → dist-CcRV3-A5.mjs} +8 -8
  20. package/dist/{dist-B04dlFHg.mjs.map → dist-CcRV3-A5.mjs.map} +1 -1
  21. package/dist/domain/Citation.d.mts +60 -0
  22. package/dist/domain/Citation.d.mts.map +1 -0
  23. package/dist/domain/Citation.mjs +7 -0
  24. package/dist/domain/Citation.mjs.map +1 -0
  25. package/dist/domain/Image.d.mts +1 -1
  26. package/dist/domain/Items.d.mts +1 -1
  27. package/dist/domain/Items.mjs +13 -3
  28. package/dist/domain/Items.mjs.map +1 -1
  29. package/dist/domain/Research.d.mts +37 -0
  30. package/dist/domain/Research.d.mts.map +1 -0
  31. package/dist/domain/Research.mjs +7 -0
  32. package/dist/domain/Research.mjs.map +1 -0
  33. package/dist/domain/Turn.d.mts +91 -9
  34. package/dist/domain/Turn.d.mts.map +1 -1
  35. package/dist/domain/Turn.mjs +8 -1
  36. package/dist/domain/Turn.mjs.map +1 -1
  37. package/dist/domain/Turn.test.mjs +1 -1
  38. package/dist/embedding-model/Embedding.d.mts +1 -1
  39. package/dist/embedding-model/EmbeddingModel.mjs +2 -2
  40. package/dist/embedding-model/EmbeddingModel.mjs.map +1 -1
  41. package/dist/embedding-model/EmbeddingModel.test.mjs +1 -1
  42. package/dist/index.d.mts +12 -8
  43. package/dist/index.mjs +5 -1
  44. package/dist/job/Job.d.mts +80 -0
  45. package/dist/job/Job.d.mts.map +1 -0
  46. package/dist/job/Job.mjs +49 -0
  47. package/dist/job/Job.mjs.map +1 -0
  48. package/dist/language-model/LanguageModel.d.mts +2 -2
  49. package/dist/language-model/LanguageModel.mjs +2 -2
  50. package/dist/language-model/LanguageModel.mjs.map +1 -1
  51. package/dist/language-model/LanguageModel.test.mjs +1 -1
  52. package/dist/loop/Loop.test.mjs +1 -1
  53. package/dist/music-generator/MusicGenerator.mjs +4 -4
  54. package/dist/music-generator/MusicGenerator.mjs.map +1 -1
  55. package/dist/music-generator/MusicGenerator.test.mjs +1 -1
  56. package/dist/observability/Metrics.d.mts +1 -1
  57. package/dist/observability/Metrics.test.mjs +2 -2
  58. package/dist/observability/Telemetry.test.mjs +2 -2
  59. package/dist/research/DeepResearch.d.mts +71 -0
  60. package/dist/research/DeepResearch.d.mts.map +1 -0
  61. package/dist/research/DeepResearch.mjs +61 -0
  62. package/dist/research/DeepResearch.mjs.map +1 -0
  63. package/dist/retry/Retry.test.mjs +1 -1
  64. package/dist/sandbox/Sandbox.mjs +18 -18
  65. package/dist/sandbox/Sandbox.mjs.map +1 -1
  66. package/dist/speech-synthesizer/SpeechSynthesizer.mjs +8 -8
  67. package/dist/speech-synthesizer/SpeechSynthesizer.mjs.map +1 -1
  68. package/dist/speech-synthesizer/SpeechSynthesizer.test.mjs +1 -1
  69. package/dist/streaming/JSONL.d.mts +3 -1
  70. package/dist/streaming/JSONL.d.mts.map +1 -1
  71. package/dist/streaming/JSONL.mjs +5 -11
  72. package/dist/streaming/JSONL.mjs.map +1 -1
  73. package/dist/streaming/JSONL.test.mjs +10 -1
  74. package/dist/streaming/JSONL.test.mjs.map +1 -1
  75. package/dist/streaming/SSE.d.mts +5 -3
  76. package/dist/streaming/SSE.d.mts.map +1 -1
  77. package/dist/streaming/SSE.mjs +28 -38
  78. package/dist/streaming/SSE.mjs.map +1 -1
  79. package/dist/streaming/SSE.test.mjs +54 -4
  80. package/dist/streaming/SSE.test.mjs.map +1 -1
  81. package/dist/structured-format/StructuredFormat.test.mjs +1 -1
  82. package/dist/testing/MockProvider.d.mts +1 -1
  83. package/dist/tool/Approval.d.mts +3 -3
  84. package/dist/tool/Approval.test.mjs +1 -1
  85. package/dist/tool/HistoryCheck.d.mts +2 -2
  86. package/dist/tool/Tool.d.mts +2 -2
  87. package/dist/tool/Tool.mjs +27 -7
  88. package/dist/tool/Tool.mjs.map +1 -1
  89. package/dist/tool/Tool.test.mjs +127 -3
  90. package/dist/tool/Tool.test.mjs.map +1 -1
  91. package/dist/tool/ToolEvent.d.mts +1 -1
  92. package/dist/tool/ToolResult.d.mts +1 -1
  93. package/dist/tool/Toolkit.d.mts +1 -1
  94. package/dist/tool/Toolkit.mjs.map +1 -1
  95. package/dist/tool/Toolkit.test.mjs +46 -2
  96. package/dist/tool/Toolkit.test.mjs.map +1 -1
  97. package/dist/transcriber/Transcriber.mjs +3 -3
  98. package/dist/transcriber/Transcriber.mjs.map +1 -1
  99. package/dist/transcriber/Transcriber.test.mjs +1 -1
  100. package/dist/web-read/WebRead.mjs +1 -1
  101. package/dist/web-read/WebRead.mjs.map +1 -1
  102. package/dist/web-read/WebReadTool.d.mts +1 -1
  103. package/dist/web-search/WebSearch.mjs +1 -1
  104. package/dist/web-search/WebSearch.mjs.map +1 -1
  105. package/dist/web-search/WebSearchTool.d.mts +1 -1
  106. package/package.json +19 -3
  107. package/src/browser/Browser.ts +4 -4
  108. package/src/domain/Citation.ts +64 -0
  109. package/src/domain/Items.ts +14 -4
  110. package/src/domain/Research.ts +42 -0
  111. package/src/domain/Turn.ts +26 -0
  112. package/src/embedding-model/EmbeddingModel.ts +2 -2
  113. package/src/index.ts +4 -0
  114. package/src/job/Job.ts +125 -0
  115. package/src/language-model/LanguageModel.ts +2 -2
  116. package/src/music-generator/MusicGenerator.ts +4 -4
  117. package/src/research/DeepResearch.ts +137 -0
  118. package/src/sandbox/Sandbox.ts +18 -18
  119. package/src/speech-synthesizer/SpeechSynthesizer.ts +8 -8
  120. package/src/streaming/JSONL.test.ts +19 -0
  121. package/src/streaming/JSONL.ts +6 -38
  122. package/src/streaming/SSE.test.ts +86 -3
  123. package/src/streaming/SSE.ts +36 -80
  124. package/src/tool/Tool.test.ts +151 -1
  125. package/src/tool/Tool.ts +120 -22
  126. package/src/tool/Toolkit.test.ts +60 -0
  127. package/src/tool/Toolkit.ts +2 -2
  128. package/src/transcriber/Transcriber.ts +3 -3
  129. package/src/web-read/WebRead.ts +1 -1
  130. package/src/web-search/WebSearch.ts +1 -1
  131. package/dist/Items-BnIduEV2.d.mts.map +0 -1
  132. package/dist/Tool-2lC_XMth.d.mts.map +0 -1
  133. package/dist/Toolkit-Dr9l_hNy.d.mts.map +0 -1
  134. 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 = <Name extends string, Input, Event, Output, E = never, R = never>(
249
- spec: Omit<Tool<Name, Input, Event, Output, E, R>, "_tag">,
250
- ): Tool<Name, Input, Event, Output, E, R> => ({ _tag: "LocalTool", ...spec })
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 = <Name extends string, Input, Provider extends string, Config>(
258
- spec: Omit<ProviderTool<Name, Input, Provider, Config>, "_tag">,
259
- ): ProviderTool<Name, Input, Provider, Config> => ({ _tag: "ProviderTool", ...spec })
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 = <Name extends string, Input>(
267
- spec: Omit<SignalTool<Name, Input>, "_tag">,
268
- ): SignalTool<Name, Input> => ({ _tag: "SignalTool", ...spec })
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 = <Name extends string, Input>(
276
- spec: Omit<InteractionTool<Name, Input>, "_tag">,
277
- ): InteractionTool<Name, Input> => ({ _tag: "InteractionTool", ...spec })
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
- /** Render tools to provider-agnostic descriptors. Every kind is model-visible. */
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.map((tool) => {
318
- const inputSchema = tool.inputSchema["~standard"].jsonSchema.input({
319
- target: "draft-2020-12",
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
@@ -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> }
@@ -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.asEffect(), (t) => t.transcribe(request))
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.asEffect()
126
- yield* SttStreaming.asEffect()
125
+ const t = yield* Transcriber
126
+ yield* SttStreaming
127
127
  return t.streamTranscriptionFrom(audioIn, request)
128
128
  }),
129
129
  ),
@@ -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.asEffect(), (s) => s.read(request))
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.asEffect(), (s) => s.search(request))
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":";;;;;;;;;cAEkE,cAAA;;;;;;cAIrD,SAAA,SAAkB,cAAA;AAAA,cAQ3B,wBAAA;;;;;;;;;;;;;;cAkBS,mBAAA,SAA4B,wBAAA;AAAA,cAMpC,eAAA;;;;;;;;;;;;;cAWQ,UAAA,SAAmB,eAAA;;;;;;cAYnB,IAAA,GACX,OAAA,UACA,OAAA;EAAA,SAAqB,IAAA;AAAA,MACpB,MAAA,CAAO,MAAA,QAAc,UAAA;;;;;;;;;;KAcZ,eAAA,oBAAmC,gBAAA,UAA0B,KAAA,IACvE,oBAAA,UAA8B,KAAA;;;;;;cAOnB,gBAAA,aAA8B,MAAA,CAAO,KAAA,wBAChD,MAAA,EAAQ,CAAA,KACP,CAAA,GAAI,eAAA,CAAgB,CAAA;;;;;;;;;;;AAlFvB;;;;;cAoGa,kBAAA,aAAgC,gBAAA,GAAmB,oBAAA,EAC9D,MAAA,EAAQ,CAAA,KACP,CAAA,GAAI,eAAA,CAAgB,gBAAA,CAAiB,WAAA,CAAY,CAAA;;;;;;;;cAUvC,OAAA,EAAS,eAAA,CAAgB,MAAA;;;;;;KAiB1B,IAAA,WAAe,KAAA,EAAO,KAAA,KAAU,MAAA,CAAO,MAAA;;;;;;;;;;;;;KAcvC,IAAA;EAAA,SACD,IAAA;EAAA,SACA,IAAA,EAAM,IAAA;EAAA,SACN,WAAA;EAAA,SACA,WAAA,EAAa,eAAA,CAAgB,KAAA;EAAA,SAC7B,GAAA,GAAM,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,IAAA,CAAK,KAAA,MAAW,MAAA,CAAO,MAAA,CAAO,MAAA,EAAQ,CAAA,EAAG,CAAA;;;;;;WAMnE,cAAA;;;;;;;WAOA,MAAA;AAAA;;;;;AAjIN;;KA0IO,YAAA;EAAA,SACD,IAAA;EAAA,SACA,IAAA,EAAM,IAAA;EAAA,SACN,WAAA;EAAA,SACA,WAAA,EAAa,eAAA,CAAgB,KAAA;EAAA,SAC7B,QAAA,EAAU,QAAA;EAAA,SACV,MAAA,EAAQ,MAAA;EAAA,SACR,MAAA;AAAA;;;;;;;KASC,UAAA;EAAA,SACD,IAAA;EAAA,SACA,IAAA,EAAM,IAAA;EAAA,SACN,WAAA;EAAA,SACA,WAAA,EAAa,eAAA,CAAgB,KAAA;AAAA;;;;;;AAnJxC;KA4JY,eAAA;EAAA,SACD,IAAA;EAAA,SACA,IAAA,EAAM,IAAA;EAAA,SACN,WAAA;EAAA,SACA,WAAA,EAAa,eAAA,CAAgB,KAAA;AAAA;;KAI5B,YAAA,qBAAiC,IAAA,wBAA4B,CAAA,EAAG,CAAA;;KAGhE,OAAA,qBACR,IAAA,wBAA4B,CAAA,EAAG,CAAA,IAC/B,YAAA,6BACA,UAAA,gBACA,eAAA;;KAGQ,aAAA;EAAA,SACD,IAAA;EAAA,SACA,WAAA,EAAa,eAAA,CAAgB,KAAA;AAAA;;KAI5B,KAAA,MAAW,CAAA,SAAU,IAAA,wCAA4C,CAAA;;KAGjE,KAAA,MAAW,CAAA,SAAU,IAAA,wCAA4C,CAAA;;;;;;KAOjE,cAAA;EAAA,SACD,IAAA;EAAA,SACA,WAAA;EAAA,SACA,WAAA,EAAa,MAAA;EAAA,SACb,MAAA;AAAA;;cAIE,IAAA,oEACX,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,CAAA,EAAG,CAAA,eAC9C,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,CAAA,EAAG,CAAA;AAnKvC;;;;;AAAA,cA0Ka,QAAA,gEACX,IAAA,EAAM,IAAA,CAAK,YAAA,CAAa,IAAA,EAAM,KAAA,EAAO,QAAA,EAAU,MAAA,eAC9C,YAAA,CAAa,IAAA,EAAM,KAAA,EAAO,QAAA,EAAU,MAAA;;;;;;cAO1B,MAAA,+BACX,IAAA,EAAM,IAAA,CAAK,UAAA,CAAW,IAAA,EAAM,KAAA,eAC3B,UAAA,CAAW,IAAA,EAAM,KAAA;;;;;;cAOP,WAAA,+BACX,IAAA,EAAM,IAAA,CAAK,eAAA,CAAgB,IAAA,EAAM,KAAA,eAChC,eAAA,CAAgB,IAAA,EAAM,KAAA;;;AA1KzB;;;cAiLa,QAAA,+BAAwC,OAAA,EACnD,IAAA,EAAM,CAAA,EACN,IAAA,EAAM,CAAA,KACL,IAAA,CAAK,CAAA;EAAA,SAAwB,IAAA,EAAM,CAAA;AAAA;;;;;;;;;;;;cAazB,OAAA,qFAWX,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,CAAA,EAAG,CAAA,GAC1C,GAAA,GAAM,KAAA,EAAO,KAAA,EAAO,IAAA,EAAM,IAAA,CAAK,KAAA,MAAW,MAAA,CAAO,MAAA,CAAO,OAAA,EAAS,EAAA,EAAI,EAAA,MACpE,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,OAAA,EAAS,EAAA,EAAI,EAAA;;cAG5B,aAAA,GAAiB,KAAA,EAAO,aAAA,CAAc,OAAA,MAAW,aAAA,CAAc,cAAA;;;;;AArM5E;;;cAwNa,aAAA,GACX,OAAA,GAAU,QAAA,CAAS,MAAA,SAAe,OAAA,OACjC,aAAA,CAAc,cAAA;;AAzMjB;;;;KAiNY,YAAA;EAAA,SACG,IAAA;EAAA,SAAqB,KAAA,EAAO,KAAA;AAAA;EAAA,SAC5B,IAAA;AAAA;EAAA,SACA,IAAA;EAAA,SAA0B,MAAA,EAAQ,aAAA,CAAc,gBAAA,CAAiB,KAAA;AAAA;;;;;;cAWnE,eAAA,UACX,IAAA,EAAM,aAAA,CAAc,KAAA,GACpB,IAAA,EAAM,QAAA,KACL,MAAA,CAAO,MAAA,CAAO,YAAA,CAAa,KAAA;;;;;;;;;;cAiCjB,UAAA,UACX,IAAA,EAAM,aAAA,CAAc,KAAA,GACpB,IAAA,EAAM,QAAA,KACL,MAAA,CAAO,MAAA,CAAO,KAAA,EAAO,SAAA,GAAY,mBAAA;;;;;;;cA4BvB,OAAA,oDACX,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,CAAA,EAAG,CAAA,GAC1C,IAAA,EAAM,QAAA,KACL,MAAA,CAAO,MAAA,CAAO,cAAA,EAAgB,CAAA,GAAI,SAAA,GAAY,mBAAA,EAAqB,CAAA"}
@@ -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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"}