@effect-uai/core 0.1.0 → 0.3.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 (149) hide show
  1. package/README.md +2 -2
  2. package/dist/{AiError-CqmYjXyx.d.mts → AiError-CBuPHVKA.d.mts} +1 -1
  3. package/dist/{AiError-CqmYjXyx.d.mts.map → AiError-CBuPHVKA.d.mts.map} +1 -1
  4. package/dist/Image-BZmKfIdq.d.mts +61 -0
  5. package/dist/Image-BZmKfIdq.d.mts.map +1 -0
  6. package/dist/{Items-D1C2686t.d.mts → Items-CB8Bo3FI.d.mts} +132 -80
  7. package/dist/Items-CB8Bo3FI.d.mts.map +1 -0
  8. package/dist/Media-D_CpcM1Z.d.mts +57 -0
  9. package/dist/Media-D_CpcM1Z.d.mts.map +1 -0
  10. package/dist/{StructuredFormat-B5ueioNr.d.mts → StructuredFormat-BWq5Hd1O.d.mts} +5 -5
  11. package/dist/StructuredFormat-BWq5Hd1O.d.mts.map +1 -0
  12. package/dist/{Tool-5wxOCuOh.d.mts → Tool-DjVufH7i.d.mts} +13 -13
  13. package/dist/Tool-DjVufH7i.d.mts.map +1 -0
  14. package/dist/{Turn-rlTfuHaQ.d.mts → Turn-OPaILVIB.d.mts} +12 -29
  15. package/dist/Turn-OPaILVIB.d.mts.map +1 -0
  16. package/dist/{chunk-CfYAbeIz.mjs → chunk-uyGKjUfl.mjs} +2 -1
  17. package/dist/dist-DV5ISja1.mjs +13782 -0
  18. package/dist/dist-DV5ISja1.mjs.map +1 -0
  19. package/dist/domain/AiError.d.mts +1 -1
  20. package/dist/domain/AiError.mjs +1 -1
  21. package/dist/domain/Image.d.mts +2 -0
  22. package/dist/domain/Image.mjs +58 -0
  23. package/dist/domain/Image.mjs.map +1 -0
  24. package/dist/domain/Items.d.mts +2 -2
  25. package/dist/domain/Items.mjs +19 -42
  26. package/dist/domain/Items.mjs.map +1 -1
  27. package/dist/domain/Media.d.mts +2 -0
  28. package/dist/domain/Media.mjs +14 -0
  29. package/dist/domain/Media.mjs.map +1 -0
  30. package/dist/domain/Turn.d.mts +2 -2
  31. package/dist/domain/Turn.mjs +12 -8
  32. package/dist/domain/Turn.mjs.map +1 -1
  33. package/dist/embedding-model/Embedding.d.mts +107 -0
  34. package/dist/embedding-model/Embedding.d.mts.map +1 -0
  35. package/dist/embedding-model/Embedding.mjs +18 -0
  36. package/dist/embedding-model/Embedding.mjs.map +1 -0
  37. package/dist/embedding-model/EmbeddingModel.d.mts +97 -0
  38. package/dist/embedding-model/EmbeddingModel.d.mts.map +1 -0
  39. package/dist/embedding-model/EmbeddingModel.mjs +17 -0
  40. package/dist/embedding-model/EmbeddingModel.mjs.map +1 -0
  41. package/dist/index.d.mts +16 -8
  42. package/dist/index.mjs +10 -2
  43. package/dist/language-model/LanguageModel.d.mts +12 -20
  44. package/dist/language-model/LanguageModel.d.mts.map +1 -1
  45. package/dist/language-model/LanguageModel.mjs +3 -20
  46. package/dist/language-model/LanguageModel.mjs.map +1 -1
  47. package/dist/loop/Loop.d.mts +111 -2
  48. package/dist/loop/Loop.d.mts.map +1 -0
  49. package/dist/loop/Loop.mjs +39 -6
  50. package/dist/loop/Loop.mjs.map +1 -1
  51. package/dist/loop/Loop.test.d.mts +1 -0
  52. package/dist/loop/Loop.test.mjs +411 -0
  53. package/dist/loop/Loop.test.mjs.map +1 -0
  54. package/dist/magic-string.es-BgIV5Mu3.mjs +1013 -0
  55. package/dist/magic-string.es-BgIV5Mu3.mjs.map +1 -0
  56. package/dist/math/Vector.d.mts +47 -0
  57. package/dist/math/Vector.d.mts.map +1 -0
  58. package/dist/math/Vector.mjs +117 -0
  59. package/dist/math/Vector.mjs.map +1 -0
  60. package/dist/observability/Metrics.d.mts +2 -2
  61. package/dist/observability/Metrics.d.mts.map +1 -1
  62. package/dist/observability/Metrics.mjs +1 -1
  63. package/dist/observability/Metrics.mjs.map +1 -1
  64. package/dist/streaming/JSONL.mjs +1 -1
  65. package/dist/streaming/JSONL.test.d.mts +1 -0
  66. package/dist/streaming/JSONL.test.mjs +70 -0
  67. package/dist/streaming/JSONL.test.mjs.map +1 -0
  68. package/dist/streaming/Lines.mjs +1 -1
  69. package/dist/streaming/SSE.d.mts +2 -2
  70. package/dist/streaming/SSE.d.mts.map +1 -1
  71. package/dist/streaming/SSE.mjs +1 -1
  72. package/dist/streaming/SSE.mjs.map +1 -1
  73. package/dist/streaming/SSE.test.d.mts +1 -0
  74. package/dist/streaming/SSE.test.mjs +72 -0
  75. package/dist/streaming/SSE.test.mjs.map +1 -0
  76. package/dist/structured-format/StructuredFormat.d.mts +1 -1
  77. package/dist/structured-format/StructuredFormat.mjs +1 -1
  78. package/dist/structured-format/StructuredFormat.mjs.map +1 -1
  79. package/dist/testing/MockProvider.d.mts +6 -6
  80. package/dist/testing/MockProvider.d.mts.map +1 -1
  81. package/dist/testing/MockProvider.mjs.map +1 -1
  82. package/dist/tool/HistoryCheck.d.mts +6 -3
  83. package/dist/tool/HistoryCheck.d.mts.map +1 -1
  84. package/dist/tool/HistoryCheck.mjs +7 -1
  85. package/dist/tool/HistoryCheck.mjs.map +1 -1
  86. package/dist/tool/Outcome.d.mts +138 -2
  87. package/dist/tool/Outcome.d.mts.map +1 -0
  88. package/dist/tool/Outcome.mjs +34 -18
  89. package/dist/tool/Outcome.mjs.map +1 -1
  90. package/dist/tool/Resolvers.d.mts +30 -25
  91. package/dist/tool/Resolvers.d.mts.map +1 -1
  92. package/dist/tool/Resolvers.mjs +54 -44
  93. package/dist/tool/Resolvers.mjs.map +1 -1
  94. package/dist/tool/Resolvers.test.d.mts +1 -0
  95. package/dist/tool/Resolvers.test.mjs +317 -0
  96. package/dist/tool/Resolvers.test.mjs.map +1 -0
  97. package/dist/tool/Tool.d.mts +1 -1
  98. package/dist/tool/Tool.mjs +1 -1
  99. package/dist/tool/Tool.mjs.map +1 -1
  100. package/dist/tool/ToolEvent.d.mts +151 -2
  101. package/dist/tool/ToolEvent.d.mts.map +1 -0
  102. package/dist/tool/ToolEvent.mjs +30 -4
  103. package/dist/tool/ToolEvent.mjs.map +1 -1
  104. package/dist/tool/Toolkit.d.mts +24 -15
  105. package/dist/tool/Toolkit.d.mts.map +1 -1
  106. package/dist/tool/Toolkit.mjs +14 -13
  107. package/dist/tool/Toolkit.mjs.map +1 -1
  108. package/dist/tool/Toolkit.test.d.mts +1 -0
  109. package/dist/tool/Toolkit.test.mjs +113 -0
  110. package/dist/tool/Toolkit.test.mjs.map +1 -0
  111. package/package.json +29 -13
  112. package/src/domain/Image.ts +75 -0
  113. package/src/domain/Items.ts +18 -47
  114. package/src/domain/Media.ts +61 -0
  115. package/src/domain/Turn.ts +7 -17
  116. package/src/embedding-model/Embedding.ts +117 -0
  117. package/src/embedding-model/EmbeddingModel.ts +107 -0
  118. package/src/index.ts +9 -1
  119. package/src/language-model/LanguageModel.ts +2 -22
  120. package/src/loop/Loop.test.ts +114 -2
  121. package/src/loop/Loop.ts +69 -5
  122. package/src/math/Vector.ts +138 -0
  123. package/src/observability/Metrics.ts +1 -1
  124. package/src/streaming/SSE.ts +1 -1
  125. package/src/structured-format/StructuredFormat.ts +2 -2
  126. package/src/testing/MockProvider.ts +2 -2
  127. package/src/tool/HistoryCheck.ts +2 -5
  128. package/src/tool/Outcome.ts +39 -53
  129. package/src/tool/Resolvers.test.ts +46 -117
  130. package/src/tool/Resolvers.ts +74 -102
  131. package/src/tool/Tool.ts +9 -9
  132. package/src/tool/ToolEvent.ts +30 -26
  133. package/src/tool/Toolkit.test.ts +97 -2
  134. package/src/tool/Toolkit.ts +65 -67
  135. package/dist/Items-D1C2686t.d.mts.map +0 -1
  136. package/dist/Loop-CzSJo1h8.d.mts +0 -87
  137. package/dist/Loop-CzSJo1h8.d.mts.map +0 -1
  138. package/dist/Outcome-C2JYknCu.d.mts +0 -40
  139. package/dist/Outcome-C2JYknCu.d.mts.map +0 -1
  140. package/dist/StructuredFormat-B5ueioNr.d.mts.map +0 -1
  141. package/dist/Tool-5wxOCuOh.d.mts.map +0 -1
  142. package/dist/ToolEvent-B2N10hr3.d.mts +0 -29
  143. package/dist/ToolEvent-B2N10hr3.d.mts.map +0 -1
  144. package/dist/Turn-rlTfuHaQ.d.mts.map +0 -1
  145. package/dist/match/Match.d.mts +0 -16
  146. package/dist/match/Match.d.mts.map +0 -1
  147. package/dist/match/Match.mjs +0 -15
  148. package/dist/match/Match.mjs.map +0 -1
  149. package/src/match/Match.ts +0 -9
@@ -1,5 +1,8 @@
1
- import { Effect, Schema } from "effect"
2
- import { describe, expect, it } from "vitest"
1
+ import { Context, Effect, Layer, Schema, Stream } from "effect"
2
+ import { describe, expect, expectTypeOf, it } from "vitest"
3
+ import type { FunctionCall } from "../domain/Items.js"
4
+ import { isOutput } from "./ToolEvent.js"
5
+ import { isValue } from "./Outcome.js"
3
6
  import * as Tool from "./Tool.js"
4
7
  import * as Toolkit from "./Toolkit.js"
5
8
 
@@ -43,3 +46,95 @@ describe("Toolkit.toDescriptors", () => {
43
46
  expect(l).not.toHaveProperty("strict")
44
47
  })
45
48
  })
49
+
50
+ describe("Toolkit.executeAll - tools with R requirements", () => {
51
+ // Two distinct services, modelling the "typed per-tool context" use case
52
+ // (cf. AI SDK 7's `toolsContext`). In Effect each tool declares its R, the
53
+ // compiler enforces it, and `executeAll` surfaces the union for the caller
54
+ // to provide via Layer.
55
+ type WeatherApiKeyShape = { readonly key: string }
56
+ class WeatherApiKey extends Context.Service<WeatherApiKey, WeatherApiKeyShape>()(
57
+ "test/WeatherApiKey",
58
+ ) {}
59
+
60
+ type GeoApiKeyShape = { readonly key: string }
61
+ class GeoApiKey extends Context.Service<GeoApiKey, GeoApiKeyShape>()("test/GeoApiKey") {}
62
+
63
+ const Empty = Schema.Struct({})
64
+
65
+ const getWeather = Tool.make({
66
+ name: "get_weather",
67
+ description: "",
68
+ inputSchema: Tool.fromEffectSchema(Empty),
69
+ run: () =>
70
+ Effect.gen(function* () {
71
+ const { key } = yield* WeatherApiKey
72
+ return { source: "weather", key }
73
+ }),
74
+ })
75
+
76
+ const getCoords = Tool.make({
77
+ name: "get_coords",
78
+ description: "",
79
+ inputSchema: Tool.fromEffectSchema(Empty),
80
+ run: () =>
81
+ Effect.gen(function* () {
82
+ const { key } = yield* GeoApiKey
83
+ return { source: "geo", key }
84
+ }),
85
+ })
86
+
87
+ const call = (name: string, id: string): FunctionCall => ({
88
+ type: "function_call",
89
+ call_id: id,
90
+ name,
91
+ arguments: "{}",
92
+ })
93
+
94
+ it("propagates each tool's R into the resulting Stream's requirements", () => {
95
+ const stream = Toolkit.executeAll([getWeather, getCoords], [])
96
+ expectTypeOf(stream).toEqualTypeOf<
97
+ Stream.Stream<import("./ToolEvent.js").ToolEvent, never, WeatherApiKey | GeoApiKey>
98
+ >()
99
+ })
100
+
101
+ it("runs each tool with its own service injected", async () => {
102
+ const layer = Layer.mergeAll(
103
+ Layer.succeed(WeatherApiKey, { key: "weather-123" }),
104
+ Layer.succeed(GeoApiKey, { key: "geo-456" }),
105
+ )
106
+
107
+ const program = Toolkit.executeAll(
108
+ [getWeather, getCoords],
109
+ [call("get_weather", "c1"), call("get_coords", "c2")],
110
+ ).pipe(Stream.runCollect, Effect.provide(layer))
111
+
112
+ const events = await Effect.runPromise(program)
113
+ const outputs = Array.from(events).filter(isOutput)
114
+ const byCall = new Map(outputs.map((e) => [e.result.call_id, e.result]))
115
+
116
+ const w = byCall.get("c1")
117
+ const g = byCall.get("c2")
118
+ expect(w !== undefined && isValue(w) && w.value).toEqual({
119
+ source: "weather",
120
+ key: "weather-123",
121
+ })
122
+ expect(g !== undefined && isValue(g) && g.value).toEqual({
123
+ source: "geo",
124
+ key: "geo-456",
125
+ })
126
+ })
127
+
128
+ it("with no service-needing tools, R is never", () => {
129
+ const plain = Tool.make({
130
+ name: "plain",
131
+ description: "",
132
+ inputSchema: Tool.fromEffectSchema(Empty),
133
+ run: () => Effect.succeed(0),
134
+ })
135
+ const stream = Toolkit.executeAll([plain], [])
136
+ expectTypeOf(stream).toEqualTypeOf<
137
+ Stream.Stream<import("./ToolEvent.js").ToolEvent, never, never>
138
+ >()
139
+ })
140
+ })
@@ -1,4 +1,4 @@
1
- import { Array as Arr, Effect, Match, Ref, Stream } from "effect"
1
+ import { Array as Arr, Effect, Function, Ref, Stream } from "effect"
2
2
  import * as Loop from "../loop/Loop.js"
3
3
  import type { FunctionCall } from "../domain/Items.js"
4
4
  import {
@@ -6,16 +6,11 @@ import {
6
6
  type AnyPlainTool,
7
7
  type AnyStreamingTool,
8
8
  isStreamingTool,
9
+ type StreamingTool,
9
10
  type Tool,
10
11
  type ToolDescriptor,
11
12
  } from "./Tool.js"
12
- import {
13
- type ToolDecision,
14
- type ToolResult,
15
- execute as executeDecision,
16
- executionError,
17
- rejected,
18
- } from "./Outcome.js"
13
+ import { type ToolResult, executionError, rejected } from "./Outcome.js"
19
14
  import type { ToolEvent } from "./ToolEvent.js"
20
15
  import { isOutput } from "./ToolEvent.js"
21
16
 
@@ -28,6 +23,18 @@ export type Toolkit<Tools extends ReadonlyArray<AnyTool>> = {
28
23
  export type ToolsR<Tools extends ReadonlyArray<AnyTool>> =
29
24
  Tools[number] extends Tool<any, any, any, infer R> ? R : never
30
25
 
26
+ /**
27
+ * Union of every tool's `R` requirements in a mixed plain + streaming array.
28
+ * Used by `executeAll` to surface the services tools need at the recipe
29
+ * level, so the loop's stream type carries them through to `Effect.provide`.
30
+ */
31
+ export type ToolKindR<Tools extends ReadonlyArray<AnyKindTool<any>>> =
32
+ Tools[number] extends StreamingTool<any, any, any, any, infer R>
33
+ ? R
34
+ : Tools[number] extends Tool<any, any, any, infer R>
35
+ ? R
36
+ : never
37
+
31
38
  export const make = <const Tools extends ReadonlyArray<AnyTool>>(tools: Tools): Toolkit<Tools> => ({
32
39
  tools,
33
40
  })
@@ -50,56 +57,31 @@ export const toDescriptors = <Tools extends ReadonlyArray<AnyTool>>(
50
57
  })
51
58
 
52
59
  // ---------------------------------------------------------------------------
53
- // Resolver-based executor. Streams `ToolEvent`s in real time, dispatches
54
- // streaming and plain tools uniformly, and lets the caller decide what
55
- // happens to each call (Execute or Reject) before execution.
56
- //
57
- // `executeAllWithResolver` is the general primitive. `executeAllStream` is
58
- // the no-resolver shortcut.
60
+ // Tool executor. Streams `ToolEvent`s in real time and dispatches streaming
61
+ // and plain tools uniformly. Policy stays outside this module: callers pass
62
+ // only the calls they have already decided should run.
59
63
  // ---------------------------------------------------------------------------
60
64
 
61
- export type Resolver = (call: FunctionCall) => Effect.Effect<ToolDecision>
62
-
63
- export interface ExecuteOptions {
65
+ export type ExecuteOptions = {
64
66
  readonly concurrency?: number | "unbounded"
65
67
  }
66
68
 
67
- export const executeAllWithResolver = (
68
- tools: ReadonlyArray<AnyKindTool>,
69
+ /** Execute every provided call. Approval/rejection policy belongs upstream. */
70
+ export const executeAll = <Tools extends ReadonlyArray<AnyKindTool<any>>>(
71
+ tools: Tools,
69
72
  calls: ReadonlyArray<FunctionCall>,
70
- resolve: Resolver,
71
73
  options?: ExecuteOptions,
72
- ): Stream.Stream<ToolEvent> =>
74
+ ): Stream.Stream<ToolEvent, never, ToolKindR<Tools>> =>
73
75
  Stream.fromIterable(calls).pipe(
74
- Stream.flatMap(
75
- (call) =>
76
- Stream.unwrap(
77
- resolve(call).pipe(Effect.map((decision) => dispatch(tools, call, decision))),
78
- ),
79
- { concurrency: options?.concurrency ?? "unbounded" },
80
- ),
76
+ Stream.flatMap((call) => runOne(tools, call), {
77
+ concurrency: options?.concurrency ?? "unbounded",
78
+ }),
81
79
  )
82
80
 
83
- /** No-resolver shortcut: every call gets `Execute`. */
84
- export const executeAll = (
85
- tools: ReadonlyArray<AnyKindTool>,
86
- calls: ReadonlyArray<FunctionCall>,
87
- options?: ExecuteOptions,
88
- ): Stream.Stream<ToolEvent> =>
89
- executeAllWithResolver(tools, calls, () => Effect.succeed(executeDecision), options)
81
+ export const outputEvent = (result: ToolResult): ToolEvent => ({ _tag: "Output", result })
90
82
 
91
- const dispatch = (
92
- tools: ReadonlyArray<AnyKindTool>,
93
- call: FunctionCall,
94
- decision: ToolDecision,
95
- ): Stream.Stream<ToolEvent> =>
96
- Match.value(decision).pipe(
97
- Match.tag("Execute", () => runOne(tools, call)),
98
- Match.tag("Reject", (d) =>
99
- Stream.succeed<ToolEvent>({ _tag: "Output", result: d.result }),
100
- ),
101
- Match.exhaustive,
102
- )
83
+ export const outputEvents = (results: ReadonlyArray<ToolResult>): Stream.Stream<ToolEvent> =>
84
+ Stream.fromIterable(results.map(outputEvent))
103
85
 
104
86
  const valueResult = (call: FunctionCall, tool: string, value: unknown): ToolResult => ({
105
87
  _tag: "Value",
@@ -108,10 +90,10 @@ const valueResult = (call: FunctionCall, tool: string, value: unknown): ToolResu
108
90
  value,
109
91
  })
110
92
 
111
- const runOne = (
112
- tools: ReadonlyArray<AnyKindTool>,
93
+ const runOne = <R>(
94
+ tools: ReadonlyArray<AnyKindTool<R>>,
113
95
  call: FunctionCall,
114
- ): Stream.Stream<ToolEvent> => {
96
+ ): Stream.Stream<ToolEvent, never, R> => {
115
97
  const tool = tools.find((t) => t.name === call.name)
116
98
  if (tool === undefined) {
117
99
  // Graceful: emit a synthetic Failure so OTHER calls in this turn
@@ -125,10 +107,10 @@ const runOne = (
125
107
  return runPlain(tool, call)
126
108
  }
127
109
 
128
- const runPlain = (
129
- tool: AnyPlainTool,
110
+ const runPlain = <R>(
111
+ tool: AnyPlainTool<R>,
130
112
  call: FunctionCall,
131
- ): Stream.Stream<ToolEvent> =>
113
+ ): Stream.Stream<ToolEvent, never, R> =>
132
114
  Stream.fromEffect(
133
115
  Effect.gen(function* () {
134
116
  const parsed = yield* Effect.try({
@@ -150,10 +132,10 @@ const runPlain = (
150
132
  ),
151
133
  )
152
134
 
153
- const runStreaming = (
154
- tool: AnyStreamingTool,
135
+ const runStreaming = <R>(
136
+ tool: AnyStreamingTool<R>,
155
137
  call: FunctionCall,
156
- ): Stream.Stream<ToolEvent> =>
138
+ ): Stream.Stream<ToolEvent, never, R> =>
157
139
  Stream.unwrap(
158
140
  Effect.gen(function* () {
159
141
  const parsed = yield* Effect.try({
@@ -210,19 +192,35 @@ const runStreaming = (
210
192
  )
211
193
 
212
194
  // ---------------------------------------------------------------------------
213
- // `nextStateFrom` - bridge from a `Stream<ToolEvent>` to the loop's emit
195
+ // `continueWith` - bridge from a `Stream<ToolEvent>` to the loop's emit
214
196
  // shape. Drains the stream to the consumer in real-time, taps every
215
197
  // `Output` into an internal Ref, and at end-of-stream emits
216
198
  // `Loop.next(build(results))`. Recipe never sees the Ref.
199
+ //
200
+ // Dual: data-first `continueWith(stream, build)` and data-last
201
+ // `stream.pipe(continueWith(build))` both work.
217
202
  // ---------------------------------------------------------------------------
218
203
 
219
- export const nextStateFrom = <S>(
220
- stream: Stream.Stream<ToolEvent>,
221
- build: (results: ReadonlyArray<ToolResult>) => S,
222
- ): Stream.Stream<Loop.Event<ToolEvent, S>> =>
223
- Loop.nextAfterFold(
224
- stream,
225
- [] as ReadonlyArray<ToolResult>,
226
- (acc, e) => (isOutput(e) ? Arr.append(acc, e.result) : acc),
227
- build,
228
- )
204
+ export const continueWith: {
205
+ <S>(
206
+ build: (results: ReadonlyArray<ToolResult>) => S,
207
+ ): <R>(
208
+ stream: Stream.Stream<ToolEvent, never, R>,
209
+ ) => Stream.Stream<Loop.Event<ToolEvent, S>, never, R>
210
+ <S, R>(
211
+ stream: Stream.Stream<ToolEvent, never, R>,
212
+ build: (results: ReadonlyArray<ToolResult>) => S,
213
+ ): Stream.Stream<Loop.Event<ToolEvent, S>, never, R>
214
+ } = Function.dual(
215
+ 2,
216
+ <S, R>(
217
+ stream: Stream.Stream<ToolEvent, never, R>,
218
+ build: (results: ReadonlyArray<ToolResult>) => S,
219
+ ): Stream.Stream<Loop.Event<ToolEvent, S>, never, R> =>
220
+ Loop.nextAfterFold(
221
+ stream,
222
+ [] as ReadonlyArray<ToolResult>,
223
+ (acc, e) => (isOutput(e) ? Arr.append(acc, e.result) : acc),
224
+ build,
225
+ ),
226
+ )
@@ -1 +0,0 @@
1
- {"version":3,"file":"Items-D1C2686t.d.mts","names":[],"sources":["../src/domain/Items.ts"],"mappings":"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"}
@@ -1,87 +0,0 @@
1
- import { l as IncompleteTurn } from "./AiError-CqmYjXyx.mjs";
2
- import { a as TurnEvent, i as Turn } from "./Turn-rlTfuHaQ.mjs";
3
- import { Data, Effect, Stream } from "effect";
4
-
5
- //#region src/loop/Loop.d.ts
6
- declare namespace Loop_d_exports {
7
- export { Event, loop, next, nextAfter, nextAfterFold, stop, stopAfter, stopEvent, streamUntilComplete, value };
8
- }
9
- /**
10
- * The tagged union a body emits per pull. `Value` carries a payload that
11
- * flows downstream. `Next` ends the current iteration and continues with a
12
- * new state. `Stop` ends the loop entirely.
13
- */
14
- type Event<A, S> = Data.TaggedEnum<{
15
- Value: {
16
- readonly value: A;
17
- };
18
- Next: {
19
- readonly state: S;
20
- };
21
- Stop: {};
22
- }>;
23
- /** Wrap a value so it flows through the loop to downstream consumers. */
24
- declare const value: <A>(a: A) => Event<A, never>;
25
- /** End the current iteration and continue with a new state. */
26
- declare const next: <S>(state: S) => Event<never, S>;
27
- /** The terminal `Stop` event. Use `stop` (the Stream) to end a loop body. */
28
- declare const stopEvent: Event<never, never>;
29
- /**
30
- * A single-element stream that ends the loop. Return this from a body when
31
- * there's nothing else to emit; equivalent to `stopAfter(Stream.empty)` but
32
- * named for the common case.
33
- */
34
- declare const stop: Stream.Stream<Event<never, never>>;
35
- /**
36
- * Pipe a raw `Stream<A>` into the loop's emit shape, then terminate the
37
- * iteration with `next(state)`. Common shape for "stream this turn's
38
- * deltas, then continue with updated history."
39
- */
40
- declare const nextAfter: <S, A, E, R>(stream: Stream.Stream<A, E, R>, state: S) => Stream.Stream<Event<A, S>, E, R>;
41
- /**
42
- * Pipe a raw `Stream<A>` into the loop's emit shape, then terminate the
43
- * loop. Common shape for "stream this turn's deltas, then we're done."
44
- */
45
- declare const stopAfter: <A, E, R>(stream: Stream.Stream<A, E, R>) => Stream.Stream<Event<A, never>, E, R>;
46
- /**
47
- * General `nextAfter` variant: drain `stream` to the consumer, fold elements
48
- * into an accumulator, and at end-of-stream emit one `next(build(finalAcc))`.
49
- *
50
- * Subsumes `nextAfter` when state is constant (`reduce: (s, _) => s`,
51
- * `build: (s) => s`). Used by `Toolkit.nextStateFrom` to collect tool
52
- * results and build next state without exposing a Ref to recipes.
53
- */
54
- declare const nextAfterFold: <A, B, S, E, R>(stream: Stream.Stream<A, E, R>, initial: B, reduce: (acc: B, a: A) => B, build: (b: B) => S) => Stream.Stream<Event<A, S>, E, R>;
55
- /**
56
- * Lift a provider's `Stream<TurnEvent>` into a loop body's `Stream<Event<TurnEvent | A, S>>`.
57
- * Each delta passes through as `value(delta)` (including the terminal
58
- * `turn_complete`, so the consumer sees turn boundaries naturally). Once
59
- * the terminal arrives, `then(turn)` runs and its returned stream of loop
60
- * events (typically tool outputs followed by `next(state)` or `stop`) is
61
- * concatenated.
62
- *
63
- * Pre-pipe transforms (`Stream.tap` / `Stream.map` / `Stream.filter`) on
64
- * the raw delta stream cover anything an `emit`-style callback would do.
65
- *
66
- * If the upstream ends without a `turn_complete`, the resulting stream
67
- * fails with `AiError.IncompleteTurn`. Catch it via `Stream.catchTag` if
68
- * you want to recover.
69
- */
70
- declare const streamUntilComplete: <S, A, E2 = never, R2 = never>(then: (turn: Turn) => Effect.Effect<Stream.Stream<Event<A, S>, E2, R2>, E2, R2>) => <E, R>(deltas: Stream.Stream<TurnEvent, E, R>) => Stream.Stream<Event<TurnEvent | A, S>, E | E2 | IncompleteTurn, R | R2>;
71
- type LoopBody<S, A, E, R> = (state: S) => Stream.Stream<Event<A, S>, E, R> | Effect.Effect<Stream.Stream<Event<A, S>, E, R>, E, R>;
72
- /**
73
- * Drive a state-threaded loop body. Each iteration runs `body(state)` to get
74
- * a `Stream<Event<A, S>>`; values flow downstream, `next(s)` continues with
75
- * a new state, `stop` ends the loop. See the file header for the full
76
- * pull-based execution model.
77
- *
78
- * Dual: data-first `loop(initial, body)` and data-last `loop(body)(initial)`
79
- * (or `pipe(initial, loop(body))`) both work.
80
- */
81
- declare const loop: {
82
- <S, A, E, R>(body: LoopBody<S, A, E, R>): (initial: S) => Stream.Stream<A, E, R>;
83
- <S, A, E, R>(initial: S, body: LoopBody<S, A, E, R>): Stream.Stream<A, E, R>;
84
- };
85
- //#endregion
86
- export { nextAfter as a, stopAfter as c, value as d, next as i, stopEvent as l, Loop_d_exports as n, nextAfterFold as o, loop as r, stop as s, Event as t, streamUntilComplete as u };
87
- //# sourceMappingURL=Loop-CzSJo1h8.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Loop-CzSJo1h8.d.mts","names":[],"sources":["../src/loop/Loop.ts"],"mappings":";;;;;;;;;;;;;KAgCY,KAAA,SAAc,IAAA,CAAK,UAAA;EAC7B,KAAA;IAAA,SAAkB,KAAA,EAAO,CAAA;EAAA;EACzB,IAAA;IAAA,SAAiB,KAAA,EAAO,CAAA;EAAA;EACxB,IAAA;AAAA;;cAUW,KAAA,MAAY,CAAA,EAAG,CAAA,KAAI,KAAA,CAAM,CAAA;;cAGzB,IAAA,MAAW,KAAA,EAAO,CAAA,KAAI,KAAA,QAAa,CAAA;;cAGnC,SAAA,EAAW,KAAA;;;;;;cAOX,IAAA,EAAM,MAAA,CAAO,MAAA,CAAO,KAAA;;;;;;cAOpB,SAAA,eACX,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,GAC5B,KAAA,EAAO,CAAA,KACN,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA;AApBjC;;;;AAAA,cA2Ba,SAAA,YACX,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,MAC3B,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,CAAA,UAAW,CAAA,EAAG,CAAA;;;;;;;;;cAWxB,aAAA,kBACX,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA,GAC5B,OAAA,EAAS,CAAA,EACT,MAAA,GAAS,GAAA,EAAK,CAAA,EAAG,CAAA,EAAG,CAAA,KAAM,CAAA,EAC1B,KAAA,GAAQ,CAAA,EAAG,CAAA,KAAM,CAAA,KAChB,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA;;AA1CjC;;;;;AAOA;;;;;;;;;cAqEa,mBAAA,iCAET,IAAA,GAAO,IAAA,EAAM,IAAA,KAAS,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,EAAA,GAAK,EAAA,EAAI,EAAA,aAG5E,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,SAAA,EAAW,CAAA,EAAG,CAAA,MACnC,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,SAAA,GAAY,CAAA,EAAG,CAAA,GAAI,CAAA,GAAI,EAAA,GAAK,cAAA,EAAgB,CAAA,GAAI,EAAA;AAAA,KAkEpE,QAAA,gBACH,KAAA,EAAO,CAAA,KACJ,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,IAAK,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,KAAA,CAAM,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,CAAA,EAAG,CAAA;;;;;;;;;;cAW9E,IAAA;EAAA,aACE,IAAA,EAAM,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,KAAM,OAAA,EAAS,CAAA,KAAM,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA;EAAA,aACjE,OAAA,EAAS,CAAA,EAAG,IAAA,EAAM,QAAA,CAAS,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,IAAK,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,CAAA,EAAG,CAAA;AAAA"}
@@ -1,40 +0,0 @@
1
- import { o as FunctionCall, s as FunctionCallOutput } from "./Items-D1C2686t.mjs";
2
-
3
- //#region src/tool/Outcome.d.ts
4
- type ToolResult = {
5
- readonly _tag: "Value";
6
- readonly call_id: string;
7
- readonly tool: string;
8
- readonly value: unknown;
9
- } | {
10
- readonly _tag: "Failure";
11
- readonly call_id: string;
12
- readonly tool: string;
13
- readonly kind: string;
14
- readonly reason?: string;
15
- };
16
- declare const isValue: (r: ToolResult) => r is Extract<ToolResult, {
17
- _tag: "Value";
18
- }>;
19
- declare const isFailure: (r: ToolResult) => r is Extract<ToolResult, {
20
- _tag: "Failure";
21
- }>;
22
- type ToolDecision = {
23
- readonly _tag: "Execute";
24
- } | {
25
- readonly _tag: "Reject";
26
- readonly result: ToolResult;
27
- };
28
- declare const execute: ToolDecision;
29
- declare const reject: (result: ToolResult) => ToolDecision;
30
- declare const rejected: (call: FunctionCall, kind: string, reason?: string) => ToolResult;
31
- /** Explicit user/policy rejection. */
32
- declare const denied: (call: FunctionCall, reason?: string) => ToolResult;
33
- /** Implicit non-answer (follow-up, inactivity, abort). */
34
- declare const cancelled: (call: FunctionCall, reason?: string) => ToolResult;
35
- /** Tool's own execution failed (parse error, schema, runtime crash). */
36
- declare const executionError: (call: FunctionCall, reason: string) => ToolResult;
37
- declare const toFunctionCallOutput: (r: ToolResult) => FunctionCallOutput;
38
- //#endregion
39
- export { execute as a, isValue as c, toFunctionCallOutput as d, denied as i, reject as l, ToolResult as n, executionError as o, cancelled as r, isFailure as s, ToolDecision as t, rejected as u };
40
- //# sourceMappingURL=Outcome-C2JYknCu.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Outcome-C2JYknCu.d.mts","names":[],"sources":["../src/tool/Outcome.ts"],"mappings":";;;KAsBY,UAAA;EAAA,SAEG,IAAA;EAAA,SACA,OAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,OAAA;EAAA,SACA,IAAA;EAAA,SACA,IAAA;EAAA,SACA,MAAA;AAAA;AAAA,cAGF,OAAA,GAAW,CAAA,EAAG,UAAA,KAAa,CAAA,IAAK,OAAA,CAAQ,UAAA;EAAc,IAAA;AAAA;AAAA,cAGtD,SAAA,GAAa,CAAA,EAAG,UAAA,KAAa,CAAA,IAAK,OAAA,CAAQ,UAAA;EAAc,IAAA;AAAA;AAAA,KAOzD,YAAA;EAAA,SACG,IAAA;AAAA;EAAA,SACA,IAAA;EAAA,SAAyB,MAAA,EAAQ,UAAA;AAAA;AAAA,cAEnC,OAAA,EAAS,YAAA;AAAA,cAET,MAAA,GAAU,MAAA,EAAQ,UAAA,KAAa,YAAA;AAAA,cAO/B,QAAA,GACX,IAAA,EAAM,YAAA,EACN,IAAA,UACA,MAAA,cACC,UAAA;;cASU,MAAA,GAAU,IAAA,EAAM,YAAA,EAAc,MAAA,cAAkB,UAAA;;cAIhD,SAAA,GAAa,IAAA,EAAM,YAAA,EAAc,MAAA,cAAkB,UAAA;;cAInD,cAAA,GAAkB,IAAA,EAAM,YAAA,EAAc,MAAA,aAAiB,UAAA;AAAA,cAOvD,oBAAA,GAAwB,CAAA,EAAG,UAAA,KAAa,kBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StructuredFormat-B5ueioNr.d.mts","names":[],"sources":["../src/structured-format/StructuredFormat.ts"],"mappings":";;;;;;;;;;;;;;;KAaY,gBAAA,qBAAqC,gBAAA,UAA0B,MAAA,IACzE,oBAAA,UAA8B,MAAA;;;;;;UAOf,gBAAA;EAAA,SACN,IAAA;EAAA,SACA,WAAA;EAAA,SACA,MAAA,EAAQ,gBAAA,CAAiB,CAAA;EAXxB;;;;EAAA,SAgBD,MAAA;AAAA;;UAIM,WAAA;EAAA,SACN,IAAA,EAAM,aAAA;EAAA,SACN,OAAA;AAAA;AAAA,cACV,0BAAA;;;;;AAfD;;cAyBa,qBAAA,SAA8B,0BAAA;EAAA,SAChC,GAAA;EAAA,SACA,MAAA,EAAQ,aAAA,CAAc,WAAA;AAAA;AAAA,cAC5B,mBAAA;;;;;;AAhBL;cAsBa,cAAA,SAAuB,mBAAA;EAAA,SACzB,GAAA;EAAA,SACA,KAAA;AAAA;;;;AArBV;;cAiCY,gBAAA,aAA8B,MAAA,CAAO,KAAA,wBAChD,MAAA,EAAQ,CAAA,EACR,OAAA;EAAA,SACW,IAAA;EAAA,SACA,WAAA;EAAA,SACA,MAAA;AAAA,MAEV,gBAAA,CAAiB,CAAA;;;;;;cAyCP,MAAA,MACP,MAAA,EAAQ,gBAAA,CAAiB,CAAA,OAC5B,GAAA,cAAe,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,qBAAA;;;;;;cAoBtB,SAAA,MACP,MAAA,EAAQ,gBAAA,CAAiB,CAAA,OAC5B,GAAA,aAAc,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,cAAA,GAAiB,qBAAA;;;;;cAatC,eAAA,MACP,MAAA,EAAQ,gBAAA,CAAiB,CAAA,aAE3B,IAAA,EAAM,MAAA,CAAO,MAAA,SAAe,CAAA,EAAG,CAAA,MAC9B,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,CAAA,GAAI,cAAA,GAAiB,qBAAA,EAAuB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tool-5wxOCuOh.d.mts","names":[],"sources":["../src/tool/Tool.ts"],"mappings":";;;;;;;;;cAE0E,cAAA;;;;;;cAG7D,SAAA,SAAkB,cAAA;;;;;;;;;;KAmBnB,eAAA,oBAAmC,gBAAA,UAA0B,KAAA,IACvE,oBAAA,UAA8B,KAAA;;;AAvB0C;;;cA8B7D,gBAAA,aAA8B,MAAA,CAAO,KAAA,wBAChD,MAAA,EAAQ,CAAA,KACP,CAAA,GAAI,eAAA,CAAgB,CAAA;AAAA,UAIN,IAAA;EAAA,SACN,IAAA,EAAM,IAAA;EAAA,SACN,WAAA;EAAA,SACA,WAAA,EAAa,eAAA,CAAgB,KAAA;EAAA,SAC7B,GAAA,GAAM,KAAA,EAAO,KAAA,KAAU,MAAA,CAAO,MAAA,CAAO,MAAA,WAAiB,CAAA;;;;;;;WAOtD,MAAA;AAAA;;;;;;UAQM,cAAA;EAAA,SACN,IAAA;EAAA,SACA,WAAA;EAAA,SACA,WAAA,EAAa,MAAA;EAAA,SACb,MAAA;AAAA;AAAA,cAGE,IAAA,kDACX,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,CAAA,MAC/B,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,CAAA;AAAA,UAWZ,aAAA;EAAA,SACN,KAAA;EAAA,SACA,IAAA,EAAM,IAAA;EAAA,SACN,WAAA;EAAA,SACA,WAAA,EAAa,eAAA,CAAgB,KAAA;EAAA,SAC7B,GAAA,GAAM,KAAA,EAAO,KAAA,KAAU,MAAA,CAAO,MAAA,CAAO,KAAA,WAAgB,CAAA;EAAA,SACrD,QAAA,GAAW,MAAA,EAAQ,aAAA,CAAc,KAAA,MAAW,MAAA;EAAA,SAC5C,MAAA;AAAA;AAAA,cAGE,SAAA,yDACX,IAAA,EAAM,IAAA,CAAK,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,CAAA,gBACpD,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,CAAA;AAAA,KAEjC,gBAAA,GAAmB,aAAA;AAAA,KACnB,YAAA,GAAe,IAAA;AAAA,KACf,WAAA,GAAc,gBAAA,GAAmB,YAAA;AAAA,cAEhC,eAAA,GAAmB,CAAA,EAAG,WAAA,KAAc,CAAA,IAAK,gBAAA;;;;;;cAQzC,aAAA,GACX,KAAA,EAAO,aAAA,CAAc,WAAA,MACpB,aAAA,CAAc,cAAA;;;;;;cAkBJ,OAAA,0CACX,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,CAAA,GAChC,IAAA,EAAM,YAAA,KACL,MAAA,CAAO,MAAA,CAAO,kBAAA,EAAoB,SAAA,EAAW,CAAA"}
@@ -1,29 +0,0 @@
1
- import { n as ToolResult } from "./Outcome-C2JYknCu.mjs";
2
-
3
- //#region src/tool/ToolEvent.d.ts
4
- type ToolEvent = {
5
- readonly _tag: "ApprovalRequested";
6
- readonly call_id: string;
7
- readonly tool: string;
8
- readonly arguments: string;
9
- } | {
10
- readonly _tag: "Intermediate";
11
- readonly call_id: string;
12
- readonly tool: string;
13
- readonly data: unknown;
14
- } | {
15
- readonly _tag: "Output";
16
- readonly result: ToolResult;
17
- };
18
- declare const isApprovalRequested: (e: ToolEvent) => e is Extract<ToolEvent, {
19
- _tag: "ApprovalRequested";
20
- }>;
21
- declare const isIntermediate: (e: ToolEvent) => e is Extract<ToolEvent, {
22
- _tag: "Intermediate";
23
- }>;
24
- declare const isOutput: (e: ToolEvent) => e is Extract<ToolEvent, {
25
- _tag: "Output";
26
- }>;
27
- //#endregion
28
- export { isOutput as i, isApprovalRequested as n, isIntermediate as r, ToolEvent as t };
29
- //# sourceMappingURL=ToolEvent-B2N10hr3.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolEvent-B2N10hr3.d.mts","names":[],"sources":["../src/tool/ToolEvent.ts"],"mappings":";;;KAYY,SAAA;EAAA,SAEG,IAAA;EAAA,SACA,OAAA;EAAA,SACA,IAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,OAAA;EAAA,SACA,IAAA;EAAA,SACA,IAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SAAyB,MAAA,EAAQ,UAAA;AAAA;AAAA,cAEnC,mBAAA,GACX,CAAA,EAAG,SAAA,KACF,CAAA,IAAK,OAAA,CAAQ,SAAA;EAAa,IAAA;AAAA;AAAA,cAEhB,cAAA,GACX,CAAA,EAAG,SAAA,KACF,CAAA,IAAK,OAAA,CAAQ,SAAA;EAAa,IAAA;AAAA;AAAA,cAEhB,QAAA,GAAY,CAAA,EAAG,SAAA,KAAY,CAAA,IAAK,OAAA,CAAQ,SAAA;EAAa,IAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Turn-rlTfuHaQ.d.mts","names":[],"sources":["../src/domain/Turn.ts"],"mappings":";;;;;;;;;;;;;;;cAmBa,IAAA,EAAI,MAAA,CAAA,MAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKL,IAAA,UAAc,IAAA,CAAK,IAAA;;;;;;;KAQnB,SAAA;EAAA,SACG,IAAA;EAAA,SAA6B,IAAA;AAAA;EAAA,SAE7B,IAAA;EAAA,SACA,IAAA;;;;;;;;WAQA,IAAA;AAAA;;;;;;;;;WASA,IAAA;EAAA,SAAgC,IAAA;AAAA;EAAA,SAChC,IAAA;EAAA,SAAkC,OAAA;EAAA,SAA0B,IAAA;AAAA;EAAA,SAC5D,IAAA;EAAA,SAAuC,OAAA;EAAA,SAA0B,KAAA;AAAA;;;;;;;;;;WASjE,IAAA;EAAA,SAA+B,KAAA,EAAO,KAAA;AAAA;EAAA,SACtC,IAAA;EAAA,SAAgC,IAAA,EAAM,IAAA;AAAA;;;;;;;KAQzC,gBAAA,GAAmB,SAAA,GAAY,kBAAA;AAAA,cAE9B,cAAA,GAAkB,CAAA,EAAG,SAAA,KAAY,CAAA,IAAK,OAAA,CAAQ,SAAA;EAAa,IAAA;AAAA;AAAA,cAG3D,aAAA,GAAiB,IAAA,EAAM,IAAA,KAAO,aAAA,CAAc,YAAA;AAAA,cAG5C,UAAA,GAAc,IAAA,EAAM,IAAA,KAAO,aAAA,CAAc,SAAA;AAAA,cAGzC,iBAAA,GAAqB,IAAA,EAAM,IAAA,KAAO,aAAA,CAAc,OAAA;;;;;;;;;;KAYjD,MAAA,MAAY,CAAA;EAAA,SAAe,IAAA,EAAM,IAAA;AAAA;;;;;cAMhC,MAAA;EAAA,SAA+B,OAAA,EAAS,aAAA,CAAc,IAAA;AAAA,GACjE,KAAA,EAAO,CAAA,EACP,IAAA,EAAM,IAAA,KACL,MAAA,CAAO,CAAA;;;;;;cAeG,UAAA,SACX,IAAA,EAAM,MAAA,CAAO,MAAA,CAAO,SAAA,EAAW,CAAA,EAAG,CAAA,MACjC,MAAA,CAAO,MAAA,SAAe,CAAA,EAAG,CAAA;AAAA,cAKzB,oBAAA;;;;;;;;cAWU,eAAA,SAAwB,oBAAA;EAAA,SAC1B,IAAA,EAAM,IAAA;AAAA;;;;;;;;;;;cAyBJ,YAAA,MACX,IAAA,EAAM,IAAA,EACN,MAAA,EAAQ,gBAAA,CAAkC,CAAA,MACzC,MAAA,CAAO,MAAA,CACR,CAAA,EACA,eAAA,GAAkB,cAAA,GAAkC,qBAAA"}
@@ -1,16 +0,0 @@
1
- import { Match } from "effect";
2
-
3
- //#region src/match/Match.d.ts
4
- declare namespace Match_d_exports {
5
- export { matchType };
6
- }
7
- /**
8
- * Dispatch on the `type` discriminator of a tagged union. Equivalent to
9
- * `Match.discriminator("type")`, exposed as a named helper because the
10
- * `type` field is the framework's convention for `Item`, `TurnEvent`,
11
- * `ContentBlock`, and most provider wire types.
12
- */
13
- declare const matchType: <R, P extends Match.Types.Tags<"type", R> & string, Ret, Fn extends (_: Extract<R, Record<"type", P>>) => Ret>(...pattern: [first: P, ...values: P[], f: Fn]) => <I, F, A, Pr>(self: Match.Matcher<I, F, R, A, Pr, Ret>) => Match.Matcher<I, Match.Types.AddWithout<F, Extract<R, Record<"type", P>>>, Match.Types.ApplyFilters<I, Match.Types.AddWithout<F, Extract<R, Record<"type", P>>>>, A | ReturnType<Fn>, Pr, Ret>;
14
- //#endregion
15
- export { matchType, Match_d_exports as t };
16
- //# sourceMappingURL=Match.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Match.d.mts","names":[],"sources":["../../src/match/Match.ts"],"mappings":";;;;;;;;;;AAQA;;cAAa,SAAA,gBAAS,KAAA,CAAA,KAAA,CAAA,IAAA,SAAA,CAAA,6BAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,MAAA,SAAA,CAAA,OAAA,GAAA,KAAA,OAAA,GAAA,KAAA,EAAA,CAAA,KAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,oBAAA,IAAA,EAAA,KAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,GAAA,MAAA,KAAA,CAAA,OAAA,CAAA,CAAA,EAAA,KAAA,CAAA,KAAA,CAAA,UAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,MAAA,SAAA,CAAA,KAAA,KAAA,CAAA,KAAA,CAAA,YAAA,CAAA,CAAA,EAAA,KAAA,CAAA,KAAA,CAAA,UAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,MAAA,SAAA,CAAA,MAAA,CAAA,GAAA,UAAA,CAAA,EAAA,GAAA,EAAA,EAAA,GAAA"}
@@ -1,15 +0,0 @@
1
- import { t as __exportAll } from "../chunk-CfYAbeIz.mjs";
2
- import { Match } from "effect";
3
- //#region src/match/Match.ts
4
- var Match_exports = /* @__PURE__ */ __exportAll({ matchType: () => matchType });
5
- /**
6
- * Dispatch on the `type` discriminator of a tagged union. Equivalent to
7
- * `Match.discriminator("type")`, exposed as a named helper because the
8
- * `type` field is the framework's convention for `Item`, `TurnEvent`,
9
- * `ContentBlock`, and most provider wire types.
10
- */
11
- const matchType = Match.discriminator("type");
12
- //#endregion
13
- export { matchType, Match_exports as t };
14
-
15
- //# sourceMappingURL=Match.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Match.mjs","names":[],"sources":["../../src/match/Match.ts"],"sourcesContent":["import { Match } from \"effect\"\n\n/**\n * Dispatch on the `type` discriminator of a tagged union. Equivalent to\n * `Match.discriminator(\"type\")`, exposed as a named helper because the\n * `type` field is the framework's convention for `Item`, `TurnEvent`,\n * `ContentBlock`, and most provider wire types.\n */\nexport const matchType = Match.discriminator(\"type\")\n"],"mappings":";;;;;;;;;;AAQA,MAAa,YAAY,MAAM,cAAc,OAAO"}
@@ -1,9 +0,0 @@
1
- import { Match } from "effect"
2
-
3
- /**
4
- * Dispatch on the `type` discriminator of a tagged union. Equivalent to
5
- * `Match.discriminator("type")`, exposed as a named helper because the
6
- * `type` field is the framework's convention for `Item`, `TurnEvent`,
7
- * `ContentBlock`, and most provider wire types.
8
- */
9
- export const matchType = Match.discriminator("type")