@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,158 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Schema from "@effect/schema/Schema";
5
+ import type * as Serializable from "@effect/schema/Serializable";
6
+ import * as Context from "effect/Context";
7
+ import * as Effect from "effect/Effect";
8
+ import * as HashMap from "effect/HashMap";
9
+ import * as Inspectable from "effect/Inspectable";
10
+ import * as Layer from "effect/Layer";
11
+ import type { Scope } from "effect/Scope";
12
+ import type * as Types from "effect/Types";
13
+ /**
14
+ * @since 1.0.0
15
+ * @category type ids
16
+ */
17
+ export declare const TypeId: unique symbol;
18
+ /**
19
+ * @since 1.0.0
20
+ * @category type ids
21
+ */
22
+ export type TypeId = typeof TypeId;
23
+ /**
24
+ * @since 1.0.0
25
+ * @category models
26
+ */
27
+ export interface AiToolkit<in out Tools extends Tool.AnySchema> extends Effect.Effect<Handlers<Tools>, never, Tool.Services<Tools> | Registry>, Inspectable.Inspectable {
28
+ readonly [TypeId]: TypeId;
29
+ readonly tools: HashMap.HashMap<string, Tools>;
30
+ readonly add: <S extends Tool.AnySchema>(tool: S) => AiToolkit<Tools | S>;
31
+ readonly addAll: <ToAdd extends ReadonlyArray<Tool.AnySchema>>(...tools: ToAdd) => AiToolkit<Tools | ToAdd[number]>;
32
+ readonly concat: <T extends Tool.AnySchema>(that: AiToolkit<T>) => AiToolkit<Tools | T>;
33
+ readonly implement: <R, EX = never, RX = never>(f: (handlers: Handlers<Tools>) => Handlers<never, R> | Effect.Effect<Handlers<never, R>, EX, RX>) => Layer.Layer<Tool.ServiceFromTag<Tools["_tag"]> | Registry, EX, R | RX>;
34
+ readonly implementScoped: <R, EX = never, RX = never>(f: (handlers: Handlers<Tools>) => Handlers<never, R> | Effect.Effect<Handlers<never, R>, EX, RX>) => Layer.Layer<Tool.ServiceFromTag<Tools["_tag"]> | Registry, EX, Exclude<R | RX, Scope>>;
35
+ }
36
+ /**
37
+ * @since 1.0.0
38
+ * @category models
39
+ */
40
+ export declare namespace AiToolkit {
41
+ /**
42
+ * @since 1.0.0
43
+ * @category models
44
+ */
45
+ type Tools<A> = A extends AiToolkit<infer Tools> ? Tools : never;
46
+ /**
47
+ * @since 1.0.0
48
+ * @category models
49
+ */
50
+ type SuccessSchema<A> = A extends AiToolkit<infer Tools> ? Tools["success"] : never;
51
+ }
52
+ /**
53
+ * @since 1.0.0
54
+ * @category tool
55
+ */
56
+ export declare namespace Tool {
57
+ /**
58
+ * @since 1.0.0
59
+ * @category tool
60
+ */
61
+ interface AnySchema {
62
+ readonly [Schema.TypeId]: any;
63
+ readonly _tag: string;
64
+ readonly Type: Serializable.SerializableWithResult.All;
65
+ readonly success: Schema.Schema.Any;
66
+ }
67
+ /**
68
+ * @since 1.0.0
69
+ * @category tool
70
+ */
71
+ type Success<Tool extends AnySchema> = Serializable.WithResult.Success<Tool["Type"]>;
72
+ /**
73
+ * @since 1.0.0
74
+ * @category tool
75
+ */
76
+ type Failure<Tool extends AnySchema> = Serializable.WithResult.Failure<Tool["Type"]>;
77
+ /**
78
+ * @since 1.0.0
79
+ * @category tool
80
+ */
81
+ type Context<Tool extends AnySchema> = Serializable.WithResult.Context<Tool["Type"]>;
82
+ /**
83
+ * @since 1.0.0
84
+ * @category tool
85
+ */
86
+ type Handler<Tool extends AnySchema, R> = (params: Tool["Type"]) => Effect.Effect<Success<Tool>, Failure<Tool>, R>;
87
+ /**
88
+ * @since 1.0.0
89
+ * @category tool
90
+ */
91
+ type HandlerAny = (params: any) => Effect.Effect<any, any, any>;
92
+ /**
93
+ * @since 1.0.0
94
+ * @category tool
95
+ */
96
+ interface Service<Tag extends string> {
97
+ readonly _: unique symbol;
98
+ readonly name: Types.Invariant<Tag>;
99
+ }
100
+ /**
101
+ * @since 1.0.0
102
+ * @category tool
103
+ */
104
+ type ServiceFromTag<Tag extends string> = Tag extends infer T ? T extends string ? Service<T> : never : never;
105
+ /**
106
+ * @since 1.0.0
107
+ * @category tool
108
+ */
109
+ type Services<Tools extends AnySchema> = ServiceFromTag<Tools["_tag"]>;
110
+ }
111
+ declare const Registry_base: Context.TagClass<Registry, "@effect/ai/AiToolkit/Registry", Map<Tool.AnySchema, Tool.HandlerAny>>;
112
+ /**
113
+ * @since 1.0.0
114
+ * @category registry
115
+ */
116
+ export declare class Registry extends Registry_base {
117
+ static readonly Live: Layer.Layer<Registry>;
118
+ }
119
+ /**
120
+ * @since 1.0.0
121
+ * @category constructors
122
+ */
123
+ export declare const empty: AiToolkit<never>;
124
+ /**
125
+ * @since 1.0.0
126
+ * @category handlers
127
+ */
128
+ export declare const HandlersTypeId: unique symbol;
129
+ /**
130
+ * @since 1.0.0
131
+ * @category handlers
132
+ */
133
+ export type HandlersTypeId = typeof HandlersTypeId;
134
+ /**
135
+ * @since 1.0.0
136
+ * @category handlers
137
+ */
138
+ export interface Handlers<in out Tools extends Tool.AnySchema, R = never> {
139
+ readonly [HandlersTypeId]: Handlers.Variance<Tools>;
140
+ readonly toolkit: AiToolkit<Tools>;
141
+ readonly handlers: HashMap.HashMap<string, Tool.Handler<any, R>>;
142
+ readonly handle: <Tag extends Types.Tags<Tools>, RH>(tag: Tag, f: Tool.Handler<Types.ExtractTag<Tools, Tag>, RH>) => Handlers<Types.ExcludeTag<Tools, Tag>, R | RH | Tool.Context<Types.ExtractTag<Tools, Tag>>>;
143
+ }
144
+ /**
145
+ * @since 1.0.0
146
+ * @category handlers
147
+ */
148
+ export declare namespace Handlers {
149
+ /**
150
+ * @since 1.0.0
151
+ * @category handlers
152
+ */
153
+ interface Variance<Tools extends Tool.AnySchema> {
154
+ readonly _Tools: Types.Invariant<Tools>;
155
+ }
156
+ }
157
+ export {};
158
+ //# sourceMappingURL=AiToolkit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AiToolkit.d.ts","sourceRoot":"","sources":["../../src/AiToolkit.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,KAAK,YAAY,MAAM,6BAA6B,CAAA;AAChE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAA2C,CAAA;AAEvE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,SAAS,CAC5D,SAAQ,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,EAAE,WAAW,CAAC,WAAW;IAEvG,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IAC9C,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACzE,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,SAAS,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAC3D,GAAG,KAAK,EAAE,KAAK,KACZ,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IACvF,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EAC5C,CAAC,EAAE,CACD,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,KACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAChE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA;IAC3E,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,KAAK,EAClD,CAAC,EAAE,CACD,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,KACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,KAChE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,CAAA;CAC5F;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC;;;OAGG;IACH,KAAY,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAA;IAEvE;;;OAGG;IACH,KAAY,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;CAC3F;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B;;;OAGG;IACH,UAAiB,SAAS;QACxB,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAA;QAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;QACrB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,sBAAsB,CAAC,GAAG,CAAA;QACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA;KACpC;IAED;;;OAGG;IACH,KAAY,OAAO,CAAC,IAAI,SAAS,SAAS,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAE3F;;;OAGG;IACH,KAAY,OAAO,CAAC,IAAI,SAAS,SAAS,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAE3F;;;OAGG;IACH,KAAY,OAAO,CAAC,IAAI,SAAS,SAAS,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAE3F;;;OAGG;IACH,KAAY,OAAO,CAAC,IAAI,SAAS,SAAS,EAAE,CAAC,IAAI,CAC/C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAEnD;;;OAGG;IACH,KAAY,UAAU,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;IAEtE;;;OAGG;IACH,UAAiB,OAAO,CAAC,GAAG,SAAS,MAAM;QACzC,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;QACzB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;KACpC;IAED;;;OAGG;IACH,KAAY,cAAc,CAAC,GAAG,SAAS,MAAM,IAAI,GAAG,SAAS,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,CAAA;IAEpH;;;OAGG;IACH,KAAY,QAAQ,CAAC,KAAK,SAAS,SAAS,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CAC9E;;AAED;;;GAGG;AACH,qBAAa,QAAS,SAAQ,aAG3B;IACD,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAwC;CACpF;AA+FD;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,CAAC,KAAK,CAAsC,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,MAAoD,CAAA;AAExF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAA;AAElD;;;GAGG;AACH,MAAM,WAAW,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,KAAK;IACtE,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACnD,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;IAChE,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EACjD,GAAG,EAAE,GAAG,EACR,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,KAC9C,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;CACjG;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC;;;OAGG;IACH,UAAiB,QAAQ,CAAC,KAAK,SAAS,IAAI,CAAC,SAAS;QACpD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;KACxC;CACF"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as JsonSchema from "@effect/platform/OpenApiJsonSchema";
5
+ import * as Schema from "@effect/schema/Schema";
6
+ import * as Chunk from "effect/Chunk";
7
+ import * as Context from "effect/Context";
8
+ import * as Effect from "effect/Effect";
9
+ import * as Option from "effect/Option";
10
+ import * as Stream from "effect/Stream";
11
+ import type { Concurrency } from "effect/Types";
12
+ import { AiError } from "./AiError.js";
13
+ import type { Message } from "./AiInput.js";
14
+ import * as AiInput from "./AiInput.js";
15
+ import type { AiResponse } from "./AiResponse.js";
16
+ import { WithResolved } from "./AiResponse.js";
17
+ import type * as AiToolkit from "./AiToolkit.js";
18
+ declare const Completions_base: Context.TagClass<Completions, "@effect/ai/Completions", Completions.Service>;
19
+ /**
20
+ * @since 1.0.0
21
+ * @category tags
22
+ */
23
+ export declare class Completions extends Completions_base {
24
+ }
25
+ /**
26
+ * @since 1.0.0
27
+ * @category models
28
+ */
29
+ export declare namespace Completions {
30
+ /**
31
+ * @since 1.0.0
32
+ * @models
33
+ */
34
+ interface StructuredSchema<A, I, R> extends Schema.Schema<A, I, R> {
35
+ readonly _tag?: string;
36
+ readonly identifier: string;
37
+ }
38
+ /**
39
+ * @since 1.0.0
40
+ * @models
41
+ */
42
+ interface Service {
43
+ readonly create: (input: AiInput.Input) => Effect.Effect<AiResponse, AiError>;
44
+ readonly stream: (input: AiInput.Input) => Stream.Stream<AiResponse, AiError>;
45
+ readonly structured: <A, I, R>(options: {
46
+ readonly input: AiInput.Input;
47
+ readonly schema: StructuredSchema<A, I, R>;
48
+ }) => Effect.Effect<WithResolved<A>, AiError, R>;
49
+ readonly toolkit: <Tools extends AiToolkit.Tool.AnySchema>(options: {
50
+ readonly input: AiInput.Input;
51
+ readonly tools: AiToolkit.Handlers<Tools>;
52
+ readonly required?: Tools["_tag"] | boolean | undefined;
53
+ readonly concurrency?: Concurrency | undefined;
54
+ }) => Effect.Effect<WithResolved<AiToolkit.Tool.Success<Tools>>, AiError | AiToolkit.Tool.Failure<Tools>, AiToolkit.Tool.Context<Tools>>;
55
+ readonly toolkitStream: <Tools extends AiToolkit.Tool.AnySchema>(options: {
56
+ readonly input: AiInput.Input;
57
+ readonly tools: AiToolkit.Handlers<Tools>;
58
+ readonly required?: Tools["_tag"] | boolean | undefined;
59
+ readonly concurrency?: Concurrency | undefined;
60
+ }) => Stream.Stream<WithResolved<AiToolkit.Tool.Success<Tools>>, AiError | AiToolkit.Tool.Failure<Tools>, AiToolkit.Tool.Context<Tools>>;
61
+ }
62
+ }
63
+ /**
64
+ * @since 1.0.0
65
+ * @category models
66
+ */
67
+ export interface CompletionOptions {
68
+ readonly system: Option.Option<string>;
69
+ readonly input: Chunk.NonEmptyChunk<Message>;
70
+ readonly tools: Array<{
71
+ readonly name: string;
72
+ readonly description: string;
73
+ readonly parameters: JsonSchema.JsonSchema;
74
+ }>;
75
+ readonly required: boolean | string;
76
+ }
77
+ /**
78
+ * @since 1.0.0
79
+ * @category constructors
80
+ */
81
+ export declare const make: (options: {
82
+ readonly create: (options: {
83
+ readonly system: Option.Option<string>;
84
+ readonly input: Chunk.NonEmptyChunk<Message>;
85
+ readonly tools: Array<{
86
+ readonly name: string;
87
+ readonly description: string;
88
+ readonly parameters: JsonSchema.JsonSchema;
89
+ }>;
90
+ readonly required: boolean | string;
91
+ }) => Effect.Effect<AiResponse, AiError>;
92
+ readonly stream: (options: {
93
+ readonly system: Option.Option<string>;
94
+ readonly input: Chunk.NonEmptyChunk<Message>;
95
+ readonly tools: Array<{
96
+ readonly name: string;
97
+ readonly description: string;
98
+ readonly parameters: JsonSchema.JsonSchema;
99
+ }>;
100
+ readonly required: boolean | string;
101
+ }) => Stream.Stream<AiResponse, AiError>;
102
+ }) => Effect.Effect<Completions.Service>;
103
+ export {};
104
+ //# sourceMappingURL=Completions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Completions.d.ts","sourceRoot":"","sources":["../../src/Completions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import type { AiError } from "./AiError.js";
4
+ import * as AiInput from "./AiInput.js";
5
+ declare const Tokenizer_base: Context.TagClass<Tokenizer, "@effect/ai/Tokenizer", Tokenizer.Service>;
6
+ /**
7
+ * @since 1.0.0
8
+ * @category tags
9
+ */
10
+ export declare class Tokenizer extends Tokenizer_base {
11
+ }
12
+ /**
13
+ * @since 1.0.0
14
+ * @category models
15
+ */
16
+ export declare namespace Tokenizer {
17
+ /**
18
+ * @since 1.0.0
19
+ * @models
20
+ */
21
+ interface Service {
22
+ readonly tokenize: (content: AiInput.Input) => Effect.Effect<Array<number>, AiError>;
23
+ readonly truncate: (content: AiInput.Input, tokens: number) => Effect.Effect<AiInput.Input, AiError>;
24
+ }
25
+ }
26
+ /**
27
+ * @since 1.0.0
28
+ * @category constructors
29
+ */
30
+ export declare const make: (options: {
31
+ readonly tokenize: (content: AiInput.AiInput) => Effect.Effect<Array<number>, AiError>;
32
+ }) => Tokenizer.Service;
33
+ export {};
34
+ //# sourceMappingURL=Tokenizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tokenizer.d.ts","sourceRoot":"","sources":["../../src/Tokenizer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;;AAEvC;;;GAGG;AACH,qBAAa,SAAU,SAAQ,cAG5B;CAAG;AAEN;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC;;;OAGG;IACH,UAAiB,OAAO;QACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;QACpF,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;KACrG;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,YAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;CACvF,KAAG,SAAS,CAAC,OAQV,CAAA"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ export * as AiChat from "./AiChat.js";
5
+ /**
6
+ * @since 1.0.0
7
+ */
8
+ export * as AiError from "./AiError.js";
9
+ /**
10
+ * @since 1.0.0
11
+ */
12
+ export * as AiInput from "./AiInput.js";
13
+ /**
14
+ * @since 1.0.0
15
+ */
16
+ export * as AiResponse from "./AiResponse.js";
17
+ /**
18
+ * @since 1.0.0
19
+ */
20
+ export * as AiRole from "./AiRole.js";
21
+ /**
22
+ * @since 1.0.0
23
+ */
24
+ export * as AiToolkit from "./AiToolkit.js";
25
+ /**
26
+ * @since 1.0.0
27
+ */
28
+ export * as Completions from "./Completions.js";
29
+ /**
30
+ * @since 1.0.0
31
+ */
32
+ export * as Tokenizer from "./Tokenizer.js";
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,139 @@
1
+ import * as Schema from "@effect/schema/Schema";
2
+ import * as Channel from "effect/Channel";
3
+ import * as Chunk from "effect/Chunk";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Ref from "effect/Ref";
6
+ import * as Stream from "effect/Stream";
7
+ import * as AiInput from "./AiInput.js";
8
+ import { AiResponse, WithResolved } from "./AiResponse.js";
9
+ import { Completions } from "./Completions.js";
10
+ /**
11
+ * @since 1.0.0
12
+ * @category tags
13
+ */
14
+ export class AiChat extends /*#__PURE__*/Effect.Tag("@effect/ai/AiChat")() {}
15
+ /**
16
+ * @since 1.0.0
17
+ * @category constructors
18
+ */
19
+ export const fromInput = input => Ref.make(AiInput.make(input)).pipe(Effect.bindTo("historyRef"), Effect.bind("completions", () => Completions), Effect.map(({
20
+ completions,
21
+ historyRef
22
+ }) => new AiChatImpl(historyRef, completions)));
23
+ class AiChatImpl {
24
+ historyRef;
25
+ completions;
26
+ semaphore = /*#__PURE__*/Effect.unsafeMakeSemaphore(1);
27
+ constructor(historyRef, completions) {
28
+ this.historyRef = historyRef;
29
+ this.completions = completions;
30
+ }
31
+ get history() {
32
+ return Ref.get(this.historyRef);
33
+ }
34
+ get export() {
35
+ return Ref.get(this.historyRef).pipe(Effect.flatMap(Schema.encode(AiInput.Schema)), Effect.orDie);
36
+ }
37
+ get exportJson() {
38
+ return Ref.get(this.historyRef).pipe(Effect.flatMap(Schema.encode(AiInput.SchemaJson)), Effect.orDie);
39
+ }
40
+ send(input) {
41
+ const newParts = AiInput.make(input);
42
+ return Ref.get(this.historyRef).pipe(Effect.flatMap(parts => {
43
+ const allParts = Chunk.appendAll(parts, newParts);
44
+ return this.completions.create(allParts).pipe(Effect.tap(response => {
45
+ const responseParts = AiInput.make(response);
46
+ return Ref.set(this.historyRef, Chunk.appendAll(allParts, responseParts));
47
+ }));
48
+ }), this.semaphore.withPermits(1), Effect.withSpan("AiChat.send", {
49
+ attributes: {
50
+ input
51
+ },
52
+ captureStackTrace: false
53
+ }));
54
+ }
55
+ stream(input) {
56
+ return Stream.suspend(() => {
57
+ let combined = AiResponse.empty;
58
+ return Stream.fromChannel(Channel.acquireUseRelease(this.semaphore.take(1).pipe(Effect.zipRight(Ref.get(this.historyRef)), Effect.map(Chunk.appendAll(AiInput.make(input)))), parts => this.completions.stream(parts).pipe(Stream.map(chunk => {
59
+ combined = combined.concat(chunk);
60
+ return chunk;
61
+ }), Stream.toChannel), parts => Effect.zipRight(Ref.set(this.historyRef, Chunk.appendAll(parts, AiInput.make(combined))), this.semaphore.release(1))));
62
+ }).pipe(Stream.withSpan("AiChat.stream", {
63
+ attributes: {
64
+ input
65
+ },
66
+ captureStackTrace: false
67
+ }));
68
+ }
69
+ structured(schema, input) {
70
+ const newParts = AiInput.make(input);
71
+ return Ref.get(this.historyRef).pipe(Effect.flatMap(parts => {
72
+ const allParts = Chunk.appendAll(parts, newParts);
73
+ return this.completions.structured({
74
+ input: allParts,
75
+ schema
76
+ }).pipe(Effect.flatMap(response => {
77
+ const responseParts = AiInput.make(response);
78
+ return Effect.as(Ref.set(this.historyRef, Chunk.appendAll(allParts, responseParts)), response.unsafeValue);
79
+ }));
80
+ }), this.semaphore.withPermits(1), Effect.withSpan("AiChat.structured", {
81
+ attributes: {
82
+ input,
83
+ schema: schema._tag ?? schema.identifier
84
+ },
85
+ captureStackTrace: false
86
+ }));
87
+ }
88
+ toolkit(options) {
89
+ const newParts = AiInput.make(options.input);
90
+ return Ref.get(this.historyRef).pipe(Effect.flatMap(parts => {
91
+ const allParts = Chunk.appendAll(parts, newParts);
92
+ return this.completions.toolkit({
93
+ ...options,
94
+ input: allParts
95
+ }).pipe(Effect.tap(response => {
96
+ const responseParts = AiInput.make(response);
97
+ return Ref.set(this.historyRef, Chunk.appendAll(allParts, responseParts));
98
+ }));
99
+ }), this.semaphore.withPermits(1), Effect.withSpan("AiChat.toolkit", {
100
+ attributes: {
101
+ input: options.input
102
+ },
103
+ captureStackTrace: false
104
+ }));
105
+ }
106
+ toolkitStream(options) {
107
+ return Stream.suspend(() => {
108
+ let combined = WithResolved.empty;
109
+ return Stream.fromChannel(Channel.acquireUseRelease(this.semaphore.take(1).pipe(Effect.zipRight(Ref.get(this.historyRef)), Effect.map(Chunk.appendAll(AiInput.make(options.input)))), parts => this.completions.toolkitStream({
110
+ ...options,
111
+ input: parts
112
+ }).pipe(Stream.map(chunk => {
113
+ combined = combined.concat(chunk);
114
+ return chunk;
115
+ }), Stream.toChannel), parts => Effect.zipRight(Ref.set(this.historyRef, Chunk.appendAll(parts, AiInput.make(combined))), this.semaphore.release(1))));
116
+ }).pipe(Stream.withSpan("AiChat.toolkitStream", {
117
+ attributes: {
118
+ input: options.input
119
+ },
120
+ captureStackTrace: false
121
+ }));
122
+ }
123
+ }
124
+ /**
125
+ * @since 1.0.0
126
+ * @category constructors
127
+ */
128
+ export const empty = /*#__PURE__*/fromInput(AiInput.empty);
129
+ /**
130
+ * @since 1.0.0
131
+ * @category constructors
132
+ */
133
+ export const fromExport = data => Schema.decodeUnknown(AiInput.Schema)(data).pipe(Effect.flatMap(fromInput));
134
+ /**
135
+ * @since 1.0.0
136
+ * @category constructors
137
+ */
138
+ export const fromJson = data => Schema.decode(AiInput.SchemaJson)(data).pipe(Effect.flatMap(fromInput));
139
+ //# sourceMappingURL=AiChat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AiChat.js","names":["Schema","Channel","Chunk","Effect","Ref","Stream","AiInput","AiResponse","WithResolved","Completions","AiChat","Tag","fromInput","input","make","pipe","bindTo","bind","map","completions","historyRef","AiChatImpl","semaphore","unsafeMakeSemaphore","constructor","history","get","export","flatMap","encode","orDie","exportJson","SchemaJson","send","newParts","parts","allParts","appendAll","create","tap","response","responseParts","set","withPermits","withSpan","attributes","captureStackTrace","stream","suspend","combined","empty","fromChannel","acquireUseRelease","take","zipRight","chunk","concat","toChannel","release","structured","schema","as","unsafeValue","_tag","identifier","toolkit","options","toolkitStream","fromExport","data","decodeUnknown","fromJson","decode"],"sources":["../../src/AiChat.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Schema from "@effect/schema/Schema";
5
+ /**
6
+ * @since 1.0.0
7
+ * @category type ids
8
+ */
9
+ export const TypeId = /*#__PURE__*/Symbol("@effect/ai/AiError");
10
+ /**
11
+ * @since 1.0.0
12
+ * @category errors
13
+ */
14
+ export class AiError extends /*#__PURE__*/Schema.TaggedError("@effect/ai/AiError")("AiError", {
15
+ module: Schema.String,
16
+ method: Schema.String,
17
+ description: Schema.String,
18
+ cause: /*#__PURE__*/Schema.optional(Schema.Defect)
19
+ }) {
20
+ /**
21
+ * @since 1.0.0
22
+ */
23
+ [TypeId] = TypeId;
24
+ /**
25
+ * @since 1.0.0
26
+ */
27
+ get message() {
28
+ return `${this.module}.${this.method}: ${this.description}`;
29
+ }
30
+ }
31
+ //# sourceMappingURL=AiError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AiError.js","names":["Schema","TypeId","Symbol","AiError","TaggedError","module","String","method","description","cause","optional","Defect","message"],"sources":["../../src/AiError.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,uBAAuB;AAE/C;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAAC,oBAAoB,CAAC;AAQjE;;;;AAIA,OAAM,MAAOC,OAAQ,sBAAQH,MAAM,CAACI,WAAW,CAAU,oBAAoB,CAAC,CAAC,SAAS,EAAE;EACxFC,MAAM,EAAEL,MAAM,CAACM,MAAM;EACrBC,MAAM,EAAEP,MAAM,CAACM,MAAM;EACrBE,WAAW,EAAER,MAAM,CAACM,MAAM;EAC1BG,KAAK,eAAET,MAAM,CAACU,QAAQ,CAACV,MAAM,CAACW,MAAM;CACrC,CAAC;EACA;;;EAGS,CAACV,MAAM,IAAYA,MAAM;EAClC;;;EAGA,IAAIW,OAAOA,CAAA;IACT,OAAO,GAAG,IAAI,CAACP,MAAM,IAAI,IAAI,CAACE,MAAM,KAAK,IAAI,CAACC,WAAW,EAAE;EAC7D","ignoreList":[]}