@effect/ai 0.1.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 (75) hide show
  1. package/AiChat/package.json +6 -0
  2. package/AiError/package.json +6 -0
  3. package/AiInput/package.json +6 -0
  4. package/AiResponse/package.json +6 -0
  5. package/AiRole/package.json +6 -0
  6. package/AiToolkit/package.json +6 -0
  7. package/Completions/package.json +6 -0
  8. package/LICENSE +21 -0
  9. package/README.md +1 -0
  10. package/Tokenizer/package.json +6 -0
  11. package/dist/cjs/AiChat.js +151 -0
  12. package/dist/cjs/AiChat.js.map +1 -0
  13. package/dist/cjs/AiError.js +41 -0
  14. package/dist/cjs/AiError.js.map +1 -0
  15. package/dist/cjs/AiInput.js +349 -0
  16. package/dist/cjs/AiInput.js.map +1 -0
  17. package/dist/cjs/AiResponse.js +295 -0
  18. package/dist/cjs/AiResponse.js.map +1 -0
  19. package/dist/cjs/AiRole.js +106 -0
  20. package/dist/cjs/AiRole.js.map +1 -0
  21. package/dist/cjs/AiToolkit.js +132 -0
  22. package/dist/cjs/AiToolkit.js.map +1 -0
  23. package/dist/cjs/Completions.js +217 -0
  24. package/dist/cjs/Completions.js.map +1 -0
  25. package/dist/cjs/Tokenizer.js +59 -0
  26. package/dist/cjs/Tokenizer.js.map +1 -0
  27. package/dist/cjs/index.js +25 -0
  28. package/dist/cjs/index.js.map +1 -0
  29. package/dist/dts/AiChat.d.ts +73 -0
  30. package/dist/dts/AiChat.d.ts.map +1 -0
  31. package/dist/dts/AiError.d.ts +38 -0
  32. package/dist/dts/AiError.d.ts.map +1 -0
  33. package/dist/dts/AiInput.d.ts +283 -0
  34. package/dist/dts/AiInput.d.ts.map +1 -0
  35. package/dist/dts/AiResponse.d.ts +235 -0
  36. package/dist/dts/AiResponse.d.ts.map +1 -0
  37. package/dist/dts/AiRole.d.ts +111 -0
  38. package/dist/dts/AiRole.d.ts.map +1 -0
  39. package/dist/dts/AiToolkit.d.ts +158 -0
  40. package/dist/dts/AiToolkit.d.ts.map +1 -0
  41. package/dist/dts/Completions.d.ts +104 -0
  42. package/dist/dts/Completions.d.ts.map +1 -0
  43. package/dist/dts/Tokenizer.d.ts +34 -0
  44. package/dist/dts/Tokenizer.d.ts.map +1 -0
  45. package/dist/dts/index.d.ts +33 -0
  46. package/dist/dts/index.d.ts.map +1 -0
  47. package/dist/esm/AiChat.js +139 -0
  48. package/dist/esm/AiChat.js.map +1 -0
  49. package/dist/esm/AiError.js +31 -0
  50. package/dist/esm/AiError.js.map +1 -0
  51. package/dist/esm/AiInput.js +332 -0
  52. package/dist/esm/AiInput.js.map +1 -0
  53. package/dist/esm/AiResponse.js +281 -0
  54. package/dist/esm/AiResponse.js.map +1 -0
  55. package/dist/esm/AiRole.js +93 -0
  56. package/dist/esm/AiRole.js.map +1 -0
  57. package/dist/esm/AiToolkit.js +123 -0
  58. package/dist/esm/AiToolkit.js.map +1 -0
  59. package/dist/esm/Completions.js +206 -0
  60. package/dist/esm/Completions.js.map +1 -0
  61. package/dist/esm/Tokenizer.js +48 -0
  62. package/dist/esm/Tokenizer.js.map +1 -0
  63. package/dist/esm/index.js +33 -0
  64. package/dist/esm/index.js.map +1 -0
  65. package/dist/esm/package.json +4 -0
  66. package/package.json +100 -0
  67. package/src/AiChat.ts +274 -0
  68. package/src/AiError.ts +38 -0
  69. package/src/AiInput.ts +456 -0
  70. package/src/AiResponse.ts +343 -0
  71. package/src/AiRole.ts +122 -0
  72. package/src/AiToolkit.ts +314 -0
  73. package/src/Completions.ts +354 -0
  74. package/src/Tokenizer.ts +78 -0
  75. package/src/index.ts +39 -0
@@ -0,0 +1,283 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type { PlatformError } from "@effect/platform/Error";
5
+ import * as FileSystem from "@effect/platform/FileSystem";
6
+ import * as Path from "@effect/platform/Path";
7
+ import * as Schema_ from "@effect/schema/Schema";
8
+ import * as Chunk from "effect/Chunk";
9
+ import * as Context from "effect/Context";
10
+ import * as Effect from "effect/Effect";
11
+ import * as Option from "effect/Option";
12
+ import { AiResponse, WithResolved } from "./AiResponse.js";
13
+ import * as AiRole from "./AiRole.js";
14
+ /**
15
+ * @since 1.0.0
16
+ * @category parts
17
+ */
18
+ export declare const PartTypeId: unique symbol;
19
+ /**
20
+ * @since 1.0.0
21
+ * @category parts
22
+ */
23
+ export type PartTypeId = typeof PartTypeId;
24
+ declare const TextPart_base: Schema_.TaggedClass<TextPart, "Text", {
25
+ readonly _tag: Schema_.tag<"Text">;
26
+ } & {
27
+ content: typeof Schema_.String;
28
+ }>;
29
+ /**
30
+ * @since 1.0.0
31
+ * @category parts
32
+ */
33
+ export declare class TextPart extends TextPart_base {
34
+ /**
35
+ * @since 1.0.0
36
+ */
37
+ readonly [PartTypeId]: PartTypeId;
38
+ /**
39
+ * @since 1.0.0
40
+ */
41
+ static fromContent(content: string): TextPart;
42
+ }
43
+ /**
44
+ * @since 1.0.0
45
+ * @category parts
46
+ */
47
+ export declare const ImageQuality: Schema_.Literal<["low", "high", "auto"]>;
48
+ /**
49
+ * @since 1.0.0
50
+ * @category parts
51
+ */
52
+ export type ImageQuality = typeof ImageQuality.Type;
53
+ declare const ImageUrlPart_base: Schema_.TaggedClass<ImageUrlPart, "ImageUrl", {
54
+ readonly _tag: Schema_.tag<"ImageUrl">;
55
+ } & {
56
+ url: typeof Schema_.String;
57
+ quality: Schema_.PropertySignature<":", "low" | "high" | "auto", never, ":", "low" | "high" | "auto", true, never>;
58
+ }>;
59
+ /**
60
+ * @since 1.0.0
61
+ * @category parts
62
+ */
63
+ export declare class ImageUrlPart extends ImageUrlPart_base {
64
+ /**
65
+ * @since 1.0.0
66
+ */
67
+ readonly [PartTypeId]: PartTypeId;
68
+ }
69
+ /**
70
+ * @since 1.0.0
71
+ * @category base64
72
+ */
73
+ export interface Base64DataUrl extends Schema_.transformOrFail<typeof Schema_.String, Schema_.Struct<{
74
+ data: Schema_.Schema<Uint8Array>;
75
+ contentType: typeof Schema_.String;
76
+ }>> {
77
+ }
78
+ /**
79
+ * @since 1.0.0
80
+ * @category base64
81
+ */
82
+ export declare const Base64DataUrl: Base64DataUrl;
83
+ declare const ImagePart_base: Schema_.TaggedClass<ImagePart, "Image", {
84
+ readonly _tag: Schema_.tag<"Image">;
85
+ } & {
86
+ image: Base64DataUrl;
87
+ quality: Schema_.PropertySignature<":", "low" | "high" | "auto", never, ":", "low" | "high" | "auto", true, never>;
88
+ }>;
89
+ /**
90
+ * @since 1.0.0
91
+ * @category parts
92
+ */
93
+ export declare class ImagePart extends ImagePart_base {
94
+ /**
95
+ * @since 1.0.0
96
+ */
97
+ readonly [PartTypeId]: PartTypeId;
98
+ /**
99
+ * @since 1.0.0
100
+ */
101
+ static fromPath(path: string, quality?: ImageQuality): Effect.Effect<ImagePart, PlatformError, FileSystem.FileSystem | Path.Path>;
102
+ get asDataUri(): string;
103
+ }
104
+ declare const ToolCallPart_base: Schema_.TaggedClass<ToolCallPart, "ToolCall", {
105
+ readonly _tag: Schema_.tag<"ToolCall">;
106
+ } & {
107
+ id: Schema_.brand<typeof Schema_.String, "ToolCallId">;
108
+ name: typeof Schema_.String;
109
+ params: typeof Schema_.Unknown;
110
+ }>;
111
+ /**
112
+ * @since 1.0.0
113
+ * @category parts
114
+ */
115
+ export declare class ToolCallPart extends ToolCallPart_base {
116
+ /**
117
+ * @since 1.0.0
118
+ */
119
+ readonly [PartTypeId]: PartTypeId;
120
+ }
121
+ declare const ToolCallResolvedPart_base: Schema_.TaggedClass<ToolCallResolvedPart, "ToolCallResolved", {
122
+ readonly _tag: Schema_.tag<"ToolCallResolved">;
123
+ } & {
124
+ toolCallId: Schema_.brand<typeof Schema_.String, "ToolCallId">;
125
+ value: typeof Schema_.Unknown;
126
+ }>;
127
+ /**
128
+ * @since 1.0.0
129
+ * @category parts
130
+ */
131
+ export declare class ToolCallResolvedPart extends ToolCallResolvedPart_base {
132
+ /**
133
+ * @since 1.0.0
134
+ */
135
+ readonly [PartTypeId]: PartTypeId;
136
+ }
137
+ /**
138
+ * @since 1.0.0
139
+ * @category parts
140
+ */
141
+ export type Part = TextPart | ToolCallPart | ToolCallResolvedPart | ImagePart | ImageUrlPart;
142
+ /**
143
+ * @since 1.0.0
144
+ * @category parts
145
+ */
146
+ export declare const isPart: (u: unknown) => u is Part;
147
+ /**
148
+ * @since 1.0.0
149
+ * @category parts
150
+ */
151
+ export declare namespace Part {
152
+ /**
153
+ * @since 1.0.0
154
+ * @category parts
155
+ */
156
+ type Schema = Schema_.Union<[
157
+ typeof TextPart,
158
+ typeof ToolCallPart,
159
+ typeof ToolCallResolvedPart,
160
+ typeof ImagePart,
161
+ typeof ImageUrlPart
162
+ ]>;
163
+ }
164
+ /**
165
+ * @since 1.0.0
166
+ * @category parts
167
+ */
168
+ export declare const Part: Part.Schema;
169
+ /**
170
+ * @since 1.0.0
171
+ * @category message
172
+ */
173
+ export declare const MessageTypeId: unique symbol;
174
+ /**
175
+ * @since 1.0.0
176
+ * @category message
177
+ */
178
+ export type MessageTypeId = typeof MessageTypeId;
179
+ declare const Message_base: Schema_.Class<Message, {
180
+ role: Schema_.Union<[typeof AiRole.User, typeof AiRole.UserWithName, typeof AiRole.Model]>;
181
+ parts: Schema_.Chunk<Part.Schema>;
182
+ }, Schema_.Struct.Encoded<{
183
+ role: Schema_.Union<[typeof AiRole.User, typeof AiRole.UserWithName, typeof AiRole.Model]>;
184
+ parts: Schema_.Chunk<Part.Schema>;
185
+ }>, never, {
186
+ readonly role: AiRole.User | AiRole.UserWithName | AiRole.Model;
187
+ } & {
188
+ readonly parts: Chunk.Chunk<TextPart | ImageUrlPart | ImagePart | ToolCallPart | ToolCallResolvedPart>;
189
+ }, {}, {}>;
190
+ /**
191
+ * @since 1.0.0
192
+ * @category message
193
+ */
194
+ export declare class Message extends Message_base {
195
+ /**
196
+ * @since 1.0.0
197
+ */
198
+ readonly [MessageTypeId]: MessageTypeId;
199
+ /**
200
+ * @since 1.0.0
201
+ */
202
+ static is(u: unknown): u is Message;
203
+ /**
204
+ * @since 1.0.0
205
+ */
206
+ static fromInput(input: Message.Input, role?: AiRole.AiRole): Message;
207
+ /**
208
+ * @since 1.0.0
209
+ */
210
+ static fromResponse(response: AiResponse): Option.Option<Message>;
211
+ /**
212
+ * @since 1.0.0
213
+ */
214
+ static fromWithResolved<A>(response: WithResolved<A>): Message;
215
+ }
216
+ /**
217
+ * @since 1.0.0
218
+ * @category message
219
+ */
220
+ export declare namespace Message {
221
+ /**
222
+ * @since 1.0.0
223
+ * @category message
224
+ */
225
+ type Input = string | Part | Iterable<Part>;
226
+ }
227
+ /**
228
+ * @since 1.0.0
229
+ * @category constructors
230
+ */
231
+ export declare const make: (input: Input, options?: {
232
+ readonly role?: AiRole.AiRole;
233
+ }) => AiInput;
234
+ /**
235
+ * @since 1.0.0
236
+ * @category constructors
237
+ */
238
+ export declare const empty: AiInput;
239
+ /**
240
+ * @since 1.0.0
241
+ * @category schemas
242
+ */
243
+ export declare const Schema: Schema_.Chunk<typeof Message>;
244
+ /**
245
+ * @since 1.0.0
246
+ * @category schemas
247
+ */
248
+ export declare const SchemaJson: Schema_.Schema<Chunk.Chunk<Message>, string>;
249
+ /**
250
+ * @since 1.0.0
251
+ * @category models
252
+ */
253
+ export type Input = string | Part | Iterable<Part> | Message | Iterable<Message> | AiResponse | WithResolved<unknown>;
254
+ /**
255
+ * @since 1.0.0
256
+ * @category models
257
+ */
258
+ export type AiInput = Chunk.Chunk<Message>;
259
+ declare const SystemInstruction_base: Context.TagClass<SystemInstruction, "@effect/ai/AiInput/SystemInstruction", string>;
260
+ /**
261
+ * @since 1.0.0
262
+ * @category system
263
+ */
264
+ export declare class SystemInstruction extends SystemInstruction_base {
265
+ }
266
+ /**
267
+ * @since 1.0.0
268
+ * @category system
269
+ */
270
+ export declare const provideSystem: {
271
+ /**
272
+ * @since 1.0.0
273
+ * @category system
274
+ */
275
+ (input: string): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, SystemInstruction>>;
276
+ /**
277
+ * @since 1.0.0
278
+ * @category system
279
+ */
280
+ <A, E, R>(effect: Effect.Effect<A, E, R>, input: string): Effect.Effect<A, E, Exclude<R, SystemInstruction>>;
281
+ };
282
+ export {};
283
+ //# sourceMappingURL=AiInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AiInput.d.ts","sourceRoot":"","sources":["../../src/AiInput.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,235 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Schema from "@effect/schema/Schema";
5
+ import * as Chunk from "effect/Chunk";
6
+ import * as Data from "effect/Data";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Option from "effect/Option";
9
+ import { AiError } from "./AiError.js";
10
+ import * as AiRole from "./AiRole.js";
11
+ /**
12
+ * @since 1.0.0
13
+ * @category type ids
14
+ */
15
+ export declare const TypeId: unique symbol;
16
+ /**
17
+ * @since 1.0.0
18
+ * @category type ids
19
+ */
20
+ export type TypeId = typeof TypeId;
21
+ /**
22
+ * @since 1.0.0
23
+ * @category parts
24
+ */
25
+ export declare const PartTypeId: unique symbol;
26
+ /**
27
+ * @since 1.0.0
28
+ * @category parts
29
+ */
30
+ export type PartTypeId = typeof PartTypeId;
31
+ declare const TextPart_base: Schema.TaggedClass<TextPart, "Text", {
32
+ readonly _tag: Schema.tag<"Text">;
33
+ } & {
34
+ content: typeof Schema.String;
35
+ }>;
36
+ /**
37
+ * @since 1.0.0
38
+ * @category parts
39
+ */
40
+ export declare class TextPart extends TextPart_base {
41
+ /**
42
+ * @since 1.0.0
43
+ */
44
+ readonly [PartTypeId]: PartTypeId;
45
+ /**
46
+ * @since 1.0.0
47
+ */
48
+ static fromContent(content: string): TextPart;
49
+ }
50
+ /**
51
+ * @since 1.0.0
52
+ * @category parts
53
+ */
54
+ export declare const ToolCallId: Schema.brand<typeof Schema.String, "ToolCallId">;
55
+ /**
56
+ * @since 1.0.0
57
+ * @category parts
58
+ */
59
+ export type ToolCallId = typeof ToolCallId.Type;
60
+ declare const ToolCallPart_base: Schema.TaggedClass<ToolCallPart, "ToolCall", {
61
+ readonly _tag: Schema.tag<"ToolCall">;
62
+ } & {
63
+ id: Schema.brand<typeof Schema.String, "ToolCallId">;
64
+ name: typeof Schema.String;
65
+ params: typeof Schema.Unknown;
66
+ }>;
67
+ /**
68
+ * @since 1.0.0
69
+ * @category parts
70
+ */
71
+ export declare class ToolCallPart extends ToolCallPart_base {
72
+ /**
73
+ * @since 1.0.0
74
+ */
75
+ readonly [PartTypeId]: PartTypeId;
76
+ /**
77
+ * @since 1.0.0
78
+ */
79
+ static fromJson({ id, name, params }: {
80
+ readonly id: string;
81
+ readonly name: string;
82
+ readonly params: string;
83
+ }): Effect.Effect<ToolCallPart, AiError>;
84
+ /**
85
+ * @since 1.0.0
86
+ */
87
+ static fromUnknown({ id, name, params }: {
88
+ readonly id: string;
89
+ readonly name: string;
90
+ readonly params: unknown;
91
+ }): ToolCallPart;
92
+ }
93
+ declare const ImageUrlPart_base: Schema.TaggedClass<ImageUrlPart, "ImageUrl", {
94
+ readonly _tag: Schema.tag<"ImageUrl">;
95
+ } & {
96
+ url: typeof Schema.String;
97
+ }>;
98
+ /**
99
+ * @since 1.0.0
100
+ * @category parts
101
+ */
102
+ export declare class ImageUrlPart extends ImageUrlPart_base {
103
+ /**
104
+ * @since 1.0.0
105
+ */
106
+ readonly [PartTypeId]: PartTypeId;
107
+ }
108
+ /**
109
+ * @since 1.0.0
110
+ * @category parts
111
+ */
112
+ export type Part = TextPart | ToolCallPart | ImageUrlPart;
113
+ /**
114
+ * @since 1.0.0
115
+ * @category parts
116
+ */
117
+ export declare const Part: Schema.Union<[
118
+ typeof TextPart,
119
+ typeof ToolCallPart,
120
+ typeof ImageUrlPart
121
+ ]>;
122
+ declare const AiResponse_base: Schema.Class<AiResponse, {
123
+ role: Schema.Union<[typeof AiRole.User, typeof AiRole.UserWithName, typeof AiRole.Model]>;
124
+ parts: Schema.Chunk<Schema.Union<[typeof TextPart, typeof ToolCallPart, typeof ImageUrlPart]>>;
125
+ }, Schema.Struct.Encoded<{
126
+ role: Schema.Union<[typeof AiRole.User, typeof AiRole.UserWithName, typeof AiRole.Model]>;
127
+ parts: Schema.Chunk<Schema.Union<[typeof TextPart, typeof ToolCallPart, typeof ImageUrlPart]>>;
128
+ }>, never, {
129
+ readonly role: AiRole.User | AiRole.UserWithName | AiRole.Model;
130
+ } & {
131
+ readonly parts: Chunk.Chunk<TextPart | ToolCallPart | ImageUrlPart>;
132
+ }, {}, {}>;
133
+ /**
134
+ * @since 1.0.0
135
+ * @category models
136
+ */
137
+ export declare class AiResponse extends AiResponse_base {
138
+ /**
139
+ * @since 1.0.0
140
+ */
141
+ readonly [TypeId]: TypeId;
142
+ /**
143
+ * @since 1.0.0
144
+ */
145
+ static is(u: unknown): u is AiResponse;
146
+ /**
147
+ * @since 1.0.0
148
+ */
149
+ static readonly empty: AiResponse;
150
+ /**
151
+ * @since 1.0.0
152
+ */
153
+ static fromText(options: {
154
+ role: AiRole.AiRole;
155
+ content: string;
156
+ }): AiResponse;
157
+ /**
158
+ * @since 1.0.0
159
+ */
160
+ get text(): string;
161
+ /**
162
+ * @since 1.0.0
163
+ */
164
+ get imageUrl(): Option.Option<string>;
165
+ /**
166
+ * @since 1.0.0
167
+ */
168
+ withToolCallsJson(calls: Iterable<{
169
+ readonly id: string;
170
+ readonly name: string;
171
+ readonly params: string;
172
+ }>): Effect.Effect<AiResponse, AiError>;
173
+ /**
174
+ * @since 1.0.0
175
+ */
176
+ withToolCallsUnknown(calls: Iterable<{
177
+ readonly id: string;
178
+ readonly name: string;
179
+ readonly params: unknown;
180
+ }>): AiResponse;
181
+ /**
182
+ * @since 1.0.0
183
+ */
184
+ concat(that: AiResponse): AiResponse;
185
+ }
186
+ /**
187
+ * @since 1.0.0
188
+ * @category tools
189
+ */
190
+ export declare const WithResolvedTypeId: unique symbol;
191
+ /**
192
+ * @since 1.0.0
193
+ * @category tools
194
+ */
195
+ export type WithResolvedTypeId = typeof WithResolvedTypeId;
196
+ /**
197
+ * @since 1.0.0
198
+ * @category tools
199
+ */
200
+ export declare class WithResolved<A> extends Data.Class<{
201
+ readonly response: AiResponse;
202
+ readonly resolved: ReadonlyMap<ToolCallId, A>;
203
+ readonly encoded: ReadonlyMap<ToolCallId, unknown>;
204
+ }> {
205
+ /**
206
+ * @since 1.0.0
207
+ */
208
+ readonly [WithResolvedTypeId]: WithResolvedTypeId;
209
+ /**
210
+ * @since 1.0.0
211
+ */
212
+ static is<A>(u: unknown): u is WithResolved<A>;
213
+ /**
214
+ * @since 1.0.0
215
+ */
216
+ static readonly empty: WithResolved<never>;
217
+ /**
218
+ * @since 1.0.0
219
+ */
220
+ get values(): Array<A>;
221
+ /**
222
+ * @since 1.0.0
223
+ */
224
+ get value(): Option.Option<A>;
225
+ /**
226
+ * @since 1.0.0
227
+ */
228
+ get unsafeValue(): A;
229
+ /**
230
+ * @since 1.0.0
231
+ */
232
+ concat<B>(that: WithResolved<B>): WithResolved<A | B>;
233
+ }
234
+ export {};
235
+ //# sourceMappingURL=AiResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AiResponse.d.ts","sourceRoot":"","sources":["../../src/AiResponse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Schema from "@effect/schema/Schema";
5
+ import * as Option from "effect/Option";
6
+ /**
7
+ * @since 1.0.0
8
+ * @category type ids
9
+ */
10
+ export declare const TypeId: unique symbol;
11
+ /**
12
+ * @since 1.0.0
13
+ * @category type ids
14
+ */
15
+ export type TypeId = typeof TypeId;
16
+ /**
17
+ * @since 1.0.0
18
+ * @category models
19
+ */
20
+ export type AiRole = User | UserWithName | Model;
21
+ declare const User_base: Schema.TaggedClass<User, "User", {
22
+ readonly _tag: Schema.tag<"User">;
23
+ }>;
24
+ /**
25
+ * @since 1.0.0
26
+ * @category models
27
+ */
28
+ export declare class User extends User_base {
29
+ /**
30
+ * @since 1.0.0
31
+ */
32
+ readonly [TypeId]: TypeId;
33
+ /**
34
+ * @since 1.0.0
35
+ */
36
+ readonly kind: "user";
37
+ /**
38
+ * @since 1.0.0
39
+ */
40
+ readonly nameOption: Option.Option<string>;
41
+ }
42
+ /**
43
+ * @since 1.0.0
44
+ * @category constructors
45
+ */
46
+ export declare const user: AiRole;
47
+ declare const UserWithName_base: Schema.TaggedClass<UserWithName, "UserWithName", {
48
+ readonly _tag: Schema.tag<"UserWithName">;
49
+ } & {
50
+ name: typeof Schema.String;
51
+ }>;
52
+ /**
53
+ * @since 1.0.0
54
+ * @category models
55
+ */
56
+ export declare class UserWithName extends UserWithName_base {
57
+ /**
58
+ * @since 1.0.0
59
+ */
60
+ readonly [TypeId]: TypeId;
61
+ /**
62
+ * @since 1.0.0
63
+ */
64
+ readonly kind: "user";
65
+ /**
66
+ * @since 1.0.0
67
+ */
68
+ get nameOption(): Option.Option<string>;
69
+ }
70
+ /**
71
+ * @since 1.0.0
72
+ * @category constructors
73
+ */
74
+ export declare const userWithName: (name: string) => AiRole;
75
+ declare const Model_base: Schema.TaggedClass<Model, "Model", {
76
+ readonly _tag: Schema.tag<"Model">;
77
+ }>;
78
+ /**
79
+ * @since 1.0.0
80
+ * @category models
81
+ */
82
+ export declare class Model extends Model_base {
83
+ /**
84
+ * @since 1.0.0
85
+ */
86
+ readonly [TypeId]: TypeId;
87
+ /**
88
+ * @since 1.0.0
89
+ */
90
+ readonly kind: "model";
91
+ /**
92
+ * @since 1.0.0
93
+ */
94
+ readonly nameOption: Option.Option<string>;
95
+ }
96
+ /**
97
+ * @since 1.0.0
98
+ * @category constructors
99
+ */
100
+ export declare const model: AiRole;
101
+ /**
102
+ * @since 1.0.0
103
+ * @category roles
104
+ */
105
+ export declare const AiRole: Schema.Union<[
106
+ typeof User,
107
+ typeof UserWithName,
108
+ typeof Model
109
+ ]>;
110
+ export {};
111
+ //# sourceMappingURL=AiRole.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AiRole.d.ts","sourceRoot":"","sources":["../../src/AiRole.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAwC,CAAA;AAEpE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,KAAK,CAAA;;;;AAEhD;;;GAGG;AACH,qBAAa,IAAK,SAAQ,SAA8D;IACtF;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAS;IAElC;;OAEG;IACH,QAAQ,CAAC,IAAI,SAAkB;IAE/B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAgB;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,MAAmB,CAAA;;;;;;AAEtC;;;GAGG;AACH,qBAAa,YAAa,SAAQ,iBAEhC;IACA;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAS;IAElC;;OAEG;IACH,QAAQ,CAAC,IAAI,SAAkB;IAE/B;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAEtC;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,MAAiE,CAAA;;;;AAE7G;;;GAGG;AACH,qBAAa,KAAM,SAAQ,UAAiE;IAC1F;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAS;IAElC;;OAEG;IACH,QAAQ,CAAC,IAAI,UAAmB;IAEhC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAgB;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,MAAoB,CAAA;AAExC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;IAChC,OAAO,IAAI;IACX,OAAO,YAAY;IACnB,OAAO,KAAK;CACb,CAIA,CAAA"}