@effect/ai 0.14.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AiEmbeddingModel/package.json +6 -0
- package/AiLanguageModel/package.json +6 -0
- package/AiTool/package.json +6 -0
- package/dist/cjs/AiChat.js +65 -86
- package/dist/cjs/AiChat.js.map +1 -1
- package/dist/cjs/{Embeddings.js → AiEmbeddingModel.js} +12 -12
- package/dist/cjs/AiEmbeddingModel.js.map +1 -0
- package/dist/cjs/AiError.js +8 -1
- package/dist/cjs/AiError.js.map +1 -1
- package/dist/cjs/AiInput.js +335 -248
- package/dist/cjs/AiInput.js.map +1 -1
- package/dist/cjs/AiLanguageModel.js +311 -0
- package/dist/cjs/AiLanguageModel.js.map +1 -0
- package/dist/cjs/AiModel.js +11 -5
- package/dist/cjs/AiModel.js.map +1 -1
- package/dist/cjs/AiPlan.js +10 -3
- package/dist/cjs/AiPlan.js.map +1 -1
- package/dist/cjs/AiResponse.js +481 -165
- package/dist/cjs/AiResponse.js.map +1 -1
- package/dist/cjs/AiTelemetry.js +10 -3
- package/dist/cjs/AiTelemetry.js.map +1 -1
- package/dist/cjs/AiTool.js +93 -0
- package/dist/cjs/AiTool.js.map +1 -0
- package/dist/cjs/AiToolkit.js +121 -98
- package/dist/cjs/AiToolkit.js.map +1 -1
- package/dist/cjs/Tokenizer.js +14 -16
- package/dist/cjs/Tokenizer.js.map +1 -1
- package/dist/cjs/index.js +7 -9
- package/dist/cjs/internal/aiPlan.js +6 -9
- package/dist/cjs/internal/aiPlan.js.map +1 -1
- package/dist/cjs/internal/common.js +22 -0
- package/dist/cjs/internal/common.js.map +1 -0
- package/dist/dts/AiChat.d.ts +58 -44
- package/dist/dts/AiChat.d.ts.map +1 -1
- package/dist/dts/{Embeddings.d.ts → AiEmbeddingModel.d.ts} +13 -14
- package/dist/dts/AiEmbeddingModel.d.ts.map +1 -0
- package/dist/dts/AiError.d.ts +4 -3
- package/dist/dts/AiError.d.ts.map +1 -1
- package/dist/dts/AiInput.d.ts +441 -146
- package/dist/dts/AiInput.d.ts.map +1 -1
- package/dist/dts/AiLanguageModel.d.ts +263 -0
- package/dist/dts/AiLanguageModel.d.ts.map +1 -0
- package/dist/dts/AiModel.d.ts +21 -20
- package/dist/dts/AiModel.d.ts.map +1 -1
- package/dist/dts/AiPlan.d.ts +90 -26
- package/dist/dts/AiPlan.d.ts.map +1 -1
- package/dist/dts/AiResponse.d.ts +711 -100
- package/dist/dts/AiResponse.d.ts.map +1 -1
- package/dist/dts/AiTelemetry.d.ts +175 -157
- package/dist/dts/AiTelemetry.d.ts.map +1 -1
- package/dist/dts/AiTool.d.ts +288 -0
- package/dist/dts/AiTool.d.ts.map +1 -0
- package/dist/dts/AiToolkit.d.ts +50 -111
- package/dist/dts/AiToolkit.d.ts.map +1 -1
- package/dist/dts/Tokenizer.d.ts +8 -6
- package/dist/dts/Tokenizer.d.ts.map +1 -1
- package/dist/dts/index.d.ts +8 -12
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/common.d.ts +2 -0
- package/dist/dts/internal/common.d.ts.map +1 -0
- package/dist/esm/AiChat.js +62 -83
- package/dist/esm/AiChat.js.map +1 -1
- package/dist/esm/{Embeddings.js → AiEmbeddingModel.js} +10 -10
- package/dist/esm/AiEmbeddingModel.js.map +1 -0
- package/dist/esm/AiError.js +8 -1
- package/dist/esm/AiError.js.map +1 -1
- package/dist/esm/AiInput.js +316 -238
- package/dist/esm/AiInput.js.map +1 -1
- package/dist/esm/AiLanguageModel.js +300 -0
- package/dist/esm/AiLanguageModel.js.map +1 -0
- package/dist/esm/AiModel.js +11 -5
- package/dist/esm/AiModel.js.map +1 -1
- package/dist/esm/AiPlan.js +8 -2
- package/dist/esm/AiPlan.js.map +1 -1
- package/dist/esm/AiResponse.js +467 -162
- package/dist/esm/AiResponse.js.map +1 -1
- package/dist/esm/AiTelemetry.js +8 -2
- package/dist/esm/AiTelemetry.js.map +1 -1
- package/dist/esm/AiTool.js +82 -0
- package/dist/esm/AiTool.js.map +1 -0
- package/dist/esm/AiToolkit.js +118 -96
- package/dist/esm/AiToolkit.js.map +1 -1
- package/dist/esm/Tokenizer.js +14 -16
- package/dist/esm/Tokenizer.js.map +1 -1
- package/dist/esm/index.js +8 -12
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/aiPlan.js +4 -7
- package/dist/esm/internal/aiPlan.js.map +1 -1
- package/dist/esm/internal/common.js +14 -0
- package/dist/esm/internal/common.js.map +1 -0
- package/package.json +28 -36
- package/src/AiChat.ts +182 -207
- package/src/{Embeddings.ts → AiEmbeddingModel.ts} +19 -18
- package/src/AiError.ts +8 -1
- package/src/AiInput.ts +434 -313
- package/src/AiLanguageModel.ts +569 -0
- package/src/AiModel.ts +47 -29
- package/src/AiPlan.ts +102 -30
- package/src/AiResponse.ts +743 -187
- package/src/AiTelemetry.ts +214 -197
- package/src/AiTool.ts +496 -0
- package/src/AiToolkit.ts +200 -240
- package/src/Tokenizer.ts +18 -22
- package/src/index.ts +9 -14
- package/src/internal/aiPlan.ts +12 -14
- package/src/internal/common.ts +12 -0
- package/AiModels/package.json +0 -6
- package/AiRole/package.json +0 -6
- package/Completions/package.json +0 -6
- package/Embeddings/package.json +0 -6
- package/dist/cjs/AiModels.js +0 -54
- package/dist/cjs/AiModels.js.map +0 -1
- package/dist/cjs/AiRole.js +0 -106
- package/dist/cjs/AiRole.js.map +0 -1
- package/dist/cjs/Completions.js +0 -256
- package/dist/cjs/Completions.js.map +0 -1
- package/dist/cjs/Embeddings.js.map +0 -1
- package/dist/dts/AiModels.d.ts +0 -34
- package/dist/dts/AiModels.d.ts.map +0 -1
- package/dist/dts/AiRole.d.ts +0 -111
- package/dist/dts/AiRole.d.ts.map +0 -1
- package/dist/dts/Completions.d.ts +0 -128
- package/dist/dts/Completions.d.ts.map +0 -1
- package/dist/dts/Embeddings.d.ts.map +0 -1
- package/dist/esm/AiModels.js +0 -44
- package/dist/esm/AiModels.js.map +0 -1
- package/dist/esm/AiRole.js +0 -93
- package/dist/esm/AiRole.js.map +0 -1
- package/dist/esm/Completions.js +0 -245
- package/dist/esm/Completions.js.map +0 -1
- package/dist/esm/Embeddings.js.map +0 -1
- package/src/AiModels.ts +0 -77
- package/src/AiRole.ts +0 -122
- package/src/Completions.ts +0 -434
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiResponse.js","names":["
|
|
1
|
+
{"version":3,"file":"AiResponse.js","names":["Effect","dual","Option","Predicate","Schema","AiError","InternalCommon","constDisableValidation","disableValidation","TypeId","Symbol","for","AiResponse","Class","parts","Array","suspend","Part","text","found","part","_tag","finishReason","finishPart","find","reason","getProviderMetadata","tag","fromNullable","providerMetadata","key","FromJson","parseJson","StructuredResponseTypeId","WithStructuredOutput","id","name","value","constructor","props","options","WithToolCallResultsTypeId","WithToolCallResults","results","encodedResults","PartTypeId","ContentSourceAnnotation","TaggedClass","String","index","Int","type","referencedContent","startIndex","endIndex","FileAnnotation","UrlAnnotation","url","title","Annotation","Union","TextPart","annotations","optionalWith","default","ReasoningPart","reasoningText","signature","optional","RedactedReasoningPart","redactedText","ToolCallId","ToolCallPart","params","Unknown","fromJson","try","make","JSON","parse","catch","cause","module","method","description","fromUnknown","MetadataPart","model","timestamp","DateFromNumber","FinishReason","Literal","Usage","inputTokens","Number","outputTokens","totalTokens","reasoningTokens","cacheReadInputTokens","cacheWriteInputTokens","FinishPart","usage","Record","is","u","hasProperty","isPart","isStructured","hasToolCallResults","empty","merge","self","other","length","lastPart","newParts","push","slice","withToolCallsJson","toolCalls","forEach","toolCall","pipe","map"],"sources":["../../src/AiResponse.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/AiTelemetry.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Context from "effect/Context";
|
|
4
5
|
import { dual } from "effect/Function";
|
|
5
6
|
import * as Predicate from "effect/Predicate";
|
|
6
7
|
import * as String from "effect/String";
|
|
7
8
|
/**
|
|
8
9
|
* @since 1.0.0
|
|
9
|
-
* @category
|
|
10
|
+
* @category Utilities
|
|
10
11
|
*/
|
|
11
12
|
export const addSpanAttributes = (keyPrefix, transformKey) => (span, attributes) => {
|
|
12
13
|
for (const [key, value] of Object.entries(attributes)) {
|
|
@@ -27,7 +28,7 @@ const addSpanUsageAttributes = /*#__PURE__*/addSpanAttributes("gen_ai.usage", St
|
|
|
27
28
|
* **NOTE**: This method will mutate the `Span` **in-place**.
|
|
28
29
|
*
|
|
29
30
|
* @since 1.0.0
|
|
30
|
-
* @since
|
|
31
|
+
* @since Utilities
|
|
31
32
|
*/
|
|
32
33
|
export const addGenAIAnnotations = /*#__PURE__*/dual(2, (span, options) => {
|
|
33
34
|
addSpanBaseAttributes(span, {
|
|
@@ -39,4 +40,9 @@ export const addGenAIAnnotations = /*#__PURE__*/dual(2, (span, options) => {
|
|
|
39
40
|
if (Predicate.isNotNullable(options.token)) addSpanTokenAttributes(span, options.token);
|
|
40
41
|
if (Predicate.isNotNullable(options.usage)) addSpanUsageAttributes(span, options.usage);
|
|
41
42
|
});
|
|
43
|
+
/**
|
|
44
|
+
* @since 1.0.0
|
|
45
|
+
* @category Context
|
|
46
|
+
*/
|
|
47
|
+
export class CurrentSpanTransformer extends /*#__PURE__*/Context.Tag("@effect/ai/AiTelemetry/CurrentSpanTransformer")() {}
|
|
42
48
|
//# sourceMappingURL=AiTelemetry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiTelemetry.js","names":["dual","Predicate","String","addSpanAttributes","keyPrefix","transformKey","span","attributes","key","value","Object","entries","isNotNullable","attribute","addSpanBaseAttributes","camelToSnake","addSpanOperationAttributes","addSpanRequestAttributes","addSpanResponseAttributes","addSpanTokenAttributes","addSpanUsageAttributes","addGenAIAnnotations","options","system","operation","request","response","token","usage"],"sources":["../../src/AiTelemetry.ts"],"sourcesContent":[null],"mappings":"AAAA;;;
|
|
1
|
+
{"version":3,"file":"AiTelemetry.js","names":["Context","dual","Predicate","String","addSpanAttributes","keyPrefix","transformKey","span","attributes","key","value","Object","entries","isNotNullable","attribute","addSpanBaseAttributes","camelToSnake","addSpanOperationAttributes","addSpanRequestAttributes","addSpanResponseAttributes","addSpanTokenAttributes","addSpanUsageAttributes","addGenAIAnnotations","options","system","operation","request","response","token","usage","CurrentSpanTransformer","Tag"],"sources":["../../src/AiTelemetry.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAyNvC;;;;AAIA,OAAO,MAAMC,iBAAiB,GAAGA,CAC/BC,SAAiB,EACjBC,YAAqC,KAEvC,CAAyCC,IAAU,EAAEC,UAAsB,KAAU;EACnF,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,UAAU,CAAC,EAAE;IACrD,IAAIN,SAAS,CAACW,aAAa,CAACH,KAAK,CAAC,EAAE;MAClCH,IAAI,CAACO,SAAS,CAAC,GAAGT,SAAS,IAAIC,YAAY,CAACG,GAAG,CAAC,EAAE,EAAEC,KAAK,CAAC;IAC5D;EACF;AACF,CAAC;AAED,MAAMK,qBAAqB,gBAAGX,iBAAiB,CAAC,QAAQ,EAAED,MAAM,CAACa,YAAY,CAAiB;AAC9F,MAAMC,0BAA0B,gBAAGb,iBAAiB,CAAC,kBAAkB,EAAED,MAAM,CAACa,YAAY,CAAsB;AAClH,MAAME,wBAAwB,gBAAGd,iBAAiB,CAAC,gBAAgB,EAAED,MAAM,CAACa,YAAY,CAAoB;AAC5G,MAAMG,yBAAyB,gBAAGf,iBAAiB,CAAC,iBAAiB,EAAED,MAAM,CAACa,YAAY,CAAqB;AAC/G,MAAMI,sBAAsB,gBAAGhB,iBAAiB,CAAC,cAAc,EAAED,MAAM,CAACa,YAAY,CAAkB;AACtG,MAAMK,sBAAsB,gBAAGjB,iBAAiB,CAAC,cAAc,EAAED,MAAM,CAACa,YAAY,CAAkB;AActG;;;;;;;;AAQA,OAAO,MAAMM,mBAAmB,gBAmB5BrB,IAAI,CAmBN,CAAC,EAAE,CAACM,IAAI,EAAEgB,OAAO,KAAI;EACrBR,qBAAqB,CAACR,IAAI,EAAE;IAAEiB,MAAM,EAAED,OAAO,CAACC;EAAM,CAAE,CAAC;EACvD,IAAItB,SAAS,CAACW,aAAa,CAACU,OAAO,CAACE,SAAS,CAAC,EAAER,0BAA0B,CAACV,IAAI,EAAEgB,OAAO,CAACE,SAAS,CAAC;EACnG,IAAIvB,SAAS,CAACW,aAAa,CAACU,OAAO,CAACG,OAAO,CAAC,EAAER,wBAAwB,CAACX,IAAI,EAAEgB,OAAO,CAACG,OAAO,CAAC;EAC7F,IAAIxB,SAAS,CAACW,aAAa,CAACU,OAAO,CAACI,QAAQ,CAAC,EAAER,yBAAyB,CAACZ,IAAI,EAAEgB,OAAO,CAACI,QAAQ,CAAC;EAChG,IAAIzB,SAAS,CAACW,aAAa,CAACU,OAAO,CAACK,KAAK,CAAC,EAAER,sBAAsB,CAACb,IAAI,EAAEgB,OAAO,CAACK,KAAK,CAAC;EACvF,IAAI1B,SAAS,CAACW,aAAa,CAACU,OAAO,CAACM,KAAK,CAAC,EAAER,sBAAsB,CAACd,IAAI,EAAEgB,OAAO,CAACM,KAAK,CAAC;AACzF,CAAC,CAAC;AAcF;;;;AAIA,OAAM,MAAOC,sBAAuB,sBAAQ9B,OAAO,CAAC+B,GAAG,CAAC,+CAA+C,CAAC,EAGrG","ignoreList":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import * as Option from "effect/Option";
|
|
2
|
+
import { pipeArguments } from "effect/Pipeable";
|
|
3
|
+
import * as Predicate from "effect/Predicate";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import * as AST from "effect/SchemaAST";
|
|
6
|
+
/**
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
* @category Type Ids
|
|
9
|
+
*/
|
|
10
|
+
export const TypeId = /*#__PURE__*/Symbol.for("@effect/ai/AiTool");
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category Guards
|
|
14
|
+
*/
|
|
15
|
+
export const isAiTool = u => Predicate.hasProperty(u, TypeId);
|
|
16
|
+
const Proto = {
|
|
17
|
+
[TypeId]: TypeId,
|
|
18
|
+
pipe() {
|
|
19
|
+
return pipeArguments(this, arguments);
|
|
20
|
+
},
|
|
21
|
+
addRequirement() {
|
|
22
|
+
return makeProto({
|
|
23
|
+
...this
|
|
24
|
+
});
|
|
25
|
+
},
|
|
26
|
+
setSuccess(successSchema) {
|
|
27
|
+
return makeProto({
|
|
28
|
+
...this,
|
|
29
|
+
successSchema
|
|
30
|
+
});
|
|
31
|
+
},
|
|
32
|
+
setFailure(failureSchema) {
|
|
33
|
+
return makeProto({
|
|
34
|
+
...this,
|
|
35
|
+
failureSchema
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
setParameters(parametersSchema) {
|
|
39
|
+
return makeProto({
|
|
40
|
+
...this,
|
|
41
|
+
parametersSchema: Schema.isSchema(parametersSchema) ? parametersSchema : Schema.Struct(parametersSchema)
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const makeProto = options => {
|
|
46
|
+
const self = Object.assign(Object.create(Proto), options);
|
|
47
|
+
self.key = `@effect/ai/AiTool/${options.name}`;
|
|
48
|
+
return self;
|
|
49
|
+
};
|
|
50
|
+
const constEmptyStruct = /*#__PURE__*/Schema.Struct({});
|
|
51
|
+
/**
|
|
52
|
+
* Constructs an `AiTool` from a name and, optionally, a specification for the
|
|
53
|
+
* tool call's protocol.
|
|
54
|
+
*
|
|
55
|
+
* @since 1.0.0
|
|
56
|
+
* @category constructors
|
|
57
|
+
*/
|
|
58
|
+
export const make = (name, options) => {
|
|
59
|
+
const successSchema = options?.success ?? Schema.Void;
|
|
60
|
+
const failureSchema = options?.failure ?? Schema.Never;
|
|
61
|
+
return makeProto({
|
|
62
|
+
name,
|
|
63
|
+
description: options?.description,
|
|
64
|
+
parametersSchema: options?.parameters ? Schema.Struct(options?.parameters) : constEmptyStruct,
|
|
65
|
+
successSchema,
|
|
66
|
+
failureSchema
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Constructs a new `AiTool` from a `Schema.TaggedRequest`.
|
|
71
|
+
*
|
|
72
|
+
* @since 1.0.0
|
|
73
|
+
* @category constructors
|
|
74
|
+
*/
|
|
75
|
+
export const fromTaggedRequest = schema => makeProto({
|
|
76
|
+
name: schema._tag,
|
|
77
|
+
description: Option.getOrUndefined(AST.getDescriptionAnnotation(schema.ast.to)),
|
|
78
|
+
parametersSchema: schema,
|
|
79
|
+
successSchema: schema.success,
|
|
80
|
+
failureSchema: schema.failure
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=AiTool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AiTool.js","names":["Option","pipeArguments","Predicate","Schema","AST","TypeId","Symbol","for","isAiTool","u","hasProperty","Proto","pipe","arguments","addRequirement","makeProto","setSuccess","successSchema","setFailure","failureSchema","setParameters","parametersSchema","isSchema","Struct","options","self","Object","assign","create","key","name","constEmptyStruct","make","success","Void","failure","Never","description","parameters","fromTaggedRequest","schema","_tag","getOrUndefined","getDescriptionAnnotation","ast","to"],"sources":["../../src/AiTool.ts"],"sourcesContent":[null],"mappings":"AAKA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,SAAwBC,aAAa,QAAQ,iBAAiB;AAC9D,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,GAAG,MAAM,kBAAkB;AAIvC;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAoGpE;;;;AAIA,OAAO,MAAMC,QAAQ,GAAIC,CAAU,IAA2CP,SAAS,CAACQ,WAAW,CAACD,CAAC,EAAEJ,MAAM,CAAC;AAwQ9G,MAAMM,KAAK,GAAG;EACZ,CAACN,MAAM,GAAGA,MAAM;EAChBO,IAAIA,CAAA;IACF,OAAOX,aAAa,CAAC,IAAI,EAAEY,SAAS,CAAC;EACvC,CAAC;EACDC,cAAcA,CAAA;IACZ,OAAOC,SAAS,CAAC;MAAE,GAAG;IAAI,CAAE,CAAC;EAC/B,CAAC;EACDC,UAAUA,CAAwBC,aAAgC;IAChE,OAAOF,SAAS,CAAC;MACf,GAAG,IAAI;MACPE;KACD,CAAC;EACJ,CAAC;EACDC,UAAUA,CAAwBC,aAAgC;IAChE,OAAOJ,SAAS,CAAC;MACf,GAAG,IAAI;MACPI;KACD,CAAC;EACJ,CAAC;EACDC,aAAaA,CAAwBC,gBAA2D;IAC9F,OAAON,SAAS,CAAC;MACf,GAAG,IAAI;MACPM,gBAAgB,EAAElB,MAAM,CAACmB,QAAQ,CAACD,gBAAgB,CAAC,GAC/CA,gBAAuB,GACvBlB,MAAM,CAACoB,MAAM,CAACF,gBAAuB;KAC1C,CAAC;EACJ;CACD;AAED,MAAMN,SAAS,GAKbS,OAMD,IAAuC;EACtC,MAAMC,IAAI,GAAGC,MAAM,CAACC,MAAM,CAACD,MAAM,CAACE,MAAM,CAACjB,KAAK,CAAC,EAAEa,OAAO,CAAC;EACzDC,IAAI,CAACI,GAAG,GAAG,qBAAqBL,OAAO,CAACM,IAAI,EAAE;EAC9C,OAAOL,IAAI;AACb,CAAC;AAED,MAAMM,gBAAgB,gBAAG5B,MAAM,CAACoB,MAAM,CAAC,EAAE,CAAC;AAE1C;;;;;;;AAOA,OAAO,MAAMS,IAAI,GAAGA,CAKlBF,IAAU,EAAEN,OAoBb,KAA+D;EAC9D,MAAMP,aAAa,GAAGO,OAAO,EAAES,OAAO,IAAI9B,MAAM,CAAC+B,IAAI;EACrD,MAAMf,aAAa,GAAGK,OAAO,EAAEW,OAAO,IAAIhC,MAAM,CAACiC,KAAK;EACtD,OAAOrB,SAAS,CAAC;IACfe,IAAI;IACJO,WAAW,EAAEb,OAAO,EAAEa,WAAW;IACjChB,gBAAgB,EAAEG,OAAO,EAAEc,UAAU,GACjCnC,MAAM,CAACoB,MAAM,CAACC,OAAO,EAAEc,UAAiB,CAAC,GACzCP,gBAAgB;IACpBd,aAAa;IACbE;GACD,CAAQ;AACX,CAAC;AAED;;;;;;AAMA,OAAO,MAAMoB,iBAAiB,GAC5BC,MAAS,IAETzB,SAAS,CAAC;EACRe,IAAI,EAAEU,MAAM,CAACC,IAAI;EACjBJ,WAAW,EAAErC,MAAM,CAAC0C,cAAc,CAACtC,GAAG,CAACuC,wBAAwB,CAAEH,MAAM,CAACI,GAAW,CAACC,EAAE,CAAC,CAAC;EACxFxB,gBAAgB,EAAEmB,MAAa;EAC/BvB,aAAa,EAAEuB,MAAM,CAACP,OAAc;EACpCd,aAAa,EAAEqB,MAAM,CAACL;CACvB,CAAC","ignoreList":[]}
|
package/dist/esm/AiToolkit.js
CHANGED
|
@@ -3,121 +3,143 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Context from "effect/Context";
|
|
5
5
|
import * as Effect from "effect/Effect";
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import * as HashMap from "effect/HashMap";
|
|
9
|
-
import * as Inspectable from "effect/Inspectable";
|
|
6
|
+
import { CommitPrototype } from "effect/Effectable";
|
|
7
|
+
import { BaseProto as InspectableProto } from "effect/Inspectable";
|
|
10
8
|
import * as Layer from "effect/Layer";
|
|
11
9
|
import { pipeArguments } from "effect/Pipeable";
|
|
10
|
+
import * as Predicate from "effect/Predicate";
|
|
11
|
+
import * as Schema from "effect/Schema";
|
|
12
|
+
import { AiError } from "./AiError.js";
|
|
13
|
+
import * as AiTool from "./AiTool.js";
|
|
12
14
|
/**
|
|
13
15
|
* @since 1.0.0
|
|
14
|
-
* @category
|
|
16
|
+
* @category Type Ids
|
|
15
17
|
*/
|
|
16
18
|
export const TypeId = /*#__PURE__*/Symbol.for("@effect/ai/AiToolkit");
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
19
|
+
const Proto = {
|
|
20
|
+
...CommitPrototype,
|
|
21
|
+
...InspectableProto,
|
|
22
|
+
[TypeId]: TypeId,
|
|
23
|
+
toContext(build) {
|
|
24
|
+
return Effect.gen(this, function* () {
|
|
25
|
+
const context = yield* Effect.context();
|
|
26
|
+
const handlers = Effect.isEffect(build) ? yield* build : build;
|
|
27
|
+
const contextMap = new Map();
|
|
28
|
+
for (const [name, handler] of Object.entries(handlers)) {
|
|
29
|
+
const tool = this.tools[name];
|
|
30
|
+
contextMap.set(tool.key, {
|
|
31
|
+
handler,
|
|
32
|
+
context
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return Context.unsafeMake(contextMap);
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
toLayer(build) {
|
|
39
|
+
return Layer.scopedContext(this.toContext(build));
|
|
40
|
+
},
|
|
41
|
+
commit() {
|
|
42
|
+
return Effect.gen(this, function* () {
|
|
43
|
+
const context = yield* Effect.context();
|
|
44
|
+
const tools = this.tools;
|
|
45
|
+
const schemasCache = new WeakMap();
|
|
46
|
+
const getSchemas = tool => {
|
|
47
|
+
let schemas = schemasCache.get(tool);
|
|
48
|
+
if (Predicate.isUndefined(schemas)) {
|
|
49
|
+
const handler = context.unsafeMap.get(tool.key);
|
|
50
|
+
const encodeSuccess = Schema.encodeUnknown(tool.successSchema);
|
|
51
|
+
const decodeFailure = Schema.decodeUnknown(tool.failureSchema);
|
|
52
|
+
const decodeParameters = Schema.decodeUnknown(tool.parametersSchema);
|
|
53
|
+
schemas = {
|
|
54
|
+
context: handler.context,
|
|
55
|
+
handler: handler.handler,
|
|
56
|
+
encodeSuccess,
|
|
57
|
+
decodeFailure,
|
|
58
|
+
decodeParameters
|
|
59
|
+
};
|
|
60
|
+
schemasCache.set(tool, schemas);
|
|
61
|
+
}
|
|
62
|
+
return schemas;
|
|
63
|
+
};
|
|
64
|
+
const handle = Effect.fn("AiToolkit.handler", {
|
|
65
|
+
captureStackTrace: false
|
|
66
|
+
})(function* (toolName, toolParams) {
|
|
67
|
+
yield* Effect.annotateCurrentSpan({
|
|
68
|
+
tool: toolName,
|
|
69
|
+
parameters: toolParams
|
|
70
|
+
});
|
|
71
|
+
const tool = tools[toolName];
|
|
72
|
+
const schemas = getSchemas(tool);
|
|
73
|
+
const decodedParams = yield* Effect.mapError(schemas.decodeParameters(toolParams), cause => new AiError({
|
|
74
|
+
module: "AiToolkit",
|
|
75
|
+
method: `${toolName}.handle`,
|
|
76
|
+
description: `Failed to decode tool call parameters for tool '${toolName}' from '${toolParams}'`,
|
|
77
|
+
cause
|
|
78
|
+
}));
|
|
79
|
+
const result = yield* schemas.handler(decodedParams).pipe(Effect.mapInputContext(input => Context.merge(schemas.context, input)), Effect.catchAll(error => schemas.decodeFailure(error).pipe(Effect.mapError(cause => new AiError({
|
|
80
|
+
module: "AiToolkit",
|
|
81
|
+
method: `${toolName}.handle`,
|
|
82
|
+
description: `Failed to decode tool call failure for tool '${toolName}'`,
|
|
83
|
+
cause
|
|
84
|
+
})), Effect.flatMap(Effect.fail))));
|
|
85
|
+
const encodedResult = yield* Effect.mapError(schemas.encodeSuccess(result), cause => new AiError({
|
|
86
|
+
module: "AiToolkit",
|
|
87
|
+
method: `${toolName}.handle`,
|
|
88
|
+
description: `Failed to encode tool call result for tool '${toolName}'`,
|
|
89
|
+
cause
|
|
90
|
+
}));
|
|
91
|
+
return {
|
|
92
|
+
result,
|
|
93
|
+
encodedResult
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
return {
|
|
97
|
+
tools: Array.from(Object.values(tools)),
|
|
98
|
+
handle
|
|
99
|
+
};
|
|
100
|
+
});
|
|
101
|
+
},
|
|
32
102
|
toJSON() {
|
|
33
103
|
return {
|
|
34
104
|
_id: "@effect/ai/AiToolkit",
|
|
35
|
-
tools:
|
|
105
|
+
tools: Array.from(Object.values(this.tools)).map(tool => tool.name)
|
|
36
106
|
};
|
|
37
|
-
}
|
|
38
|
-
toString() {
|
|
39
|
-
return Inspectable.format(this);
|
|
40
|
-
}
|
|
41
|
-
[Inspectable.NodeInspectSymbol]() {
|
|
42
|
-
return Inspectable.format(this);
|
|
43
|
-
}
|
|
107
|
+
},
|
|
44
108
|
pipe() {
|
|
45
109
|
return pipeArguments(this, arguments);
|
|
46
110
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
concat(that) {
|
|
58
|
-
return new AiToolkitImpl(HashMap.union(this.tools, that.tools));
|
|
59
|
-
}
|
|
60
|
-
implement(f) {
|
|
61
|
-
return registerHandlers(this, f).pipe(Layer.scopedDiscard, Layer.provideMerge(Registry.Live));
|
|
62
|
-
}
|
|
63
|
-
commit() {
|
|
64
|
-
return Effect.map(Registry, map => {
|
|
65
|
-
let handlers = HashMap.empty();
|
|
66
|
-
for (const [tag, tool] of this.tools) {
|
|
67
|
-
handlers = HashMap.set(handlers, tag, map.get(tool));
|
|
68
|
-
}
|
|
69
|
-
return new HandlersImpl(this, handlers);
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
const registerHandlers = (toolkit, f) => Effect.context().pipe(Effect.bindTo("context"), Effect.bind("handlers", () => {
|
|
74
|
-
const handlers = f(HandlersImpl.fromToolkit(toolkit));
|
|
75
|
-
return Effect.isEffect(handlers) ? handlers : Effect.succeed(handlers);
|
|
76
|
-
}), Effect.tap(({
|
|
77
|
-
context,
|
|
78
|
-
handlers
|
|
79
|
-
}) => {
|
|
80
|
-
const registry = Context.unsafeGet(context, Registry);
|
|
81
|
-
for (const [tag, handler] of handlers.handlers) {
|
|
82
|
-
const tool = HashMap.unsafeGet(handlers.toolkit.tools, tag);
|
|
83
|
-
registry.set(tool, function (params) {
|
|
84
|
-
return Effect.withSpan(Effect.mapInputContext(handler(params), input => Context.merge(input, context)), "AiToolkit.handler", {
|
|
85
|
-
captureStackTrace: false,
|
|
86
|
-
attributes: {
|
|
87
|
-
tool: tag,
|
|
88
|
-
parameters: params
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
});
|
|
111
|
+
};
|
|
112
|
+
const makeProto = tools => Object.assign(function () {}, Proto, {
|
|
113
|
+
tools
|
|
114
|
+
});
|
|
115
|
+
const resolveInput = (...tools) => {
|
|
116
|
+
const output = {};
|
|
117
|
+
for (const tool of tools) {
|
|
118
|
+
const value = Schema.isSchema(tool) ? AiTool.fromTaggedRequest(tool) : tool;
|
|
119
|
+
output[tool.name] = value;
|
|
92
120
|
}
|
|
93
|
-
|
|
121
|
+
return output;
|
|
122
|
+
};
|
|
94
123
|
/**
|
|
124
|
+
* Constructs a new `AiToolkit` from the specified tools.
|
|
125
|
+
*
|
|
95
126
|
* @since 1.0.0
|
|
96
|
-
* @category
|
|
127
|
+
* @category Constructors
|
|
97
128
|
*/
|
|
98
|
-
export const
|
|
129
|
+
export const make = (...tools) => makeProto(resolveInput(...tools));
|
|
99
130
|
/**
|
|
131
|
+
* Merges this toolkit with one or more other toolkits.
|
|
132
|
+
*
|
|
100
133
|
* @since 1.0.0
|
|
101
|
-
* @category
|
|
134
|
+
* @category Merging
|
|
102
135
|
*/
|
|
103
|
-
export const
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
handlers;
|
|
110
|
-
[HandlersTypeId];
|
|
111
|
-
constructor(toolkit, handlers) {
|
|
112
|
-
this.toolkit = toolkit;
|
|
113
|
-
this.handlers = handlers;
|
|
114
|
-
this[HandlersTypeId] = handlersVariance;
|
|
115
|
-
}
|
|
116
|
-
static fromToolkit(toolkit) {
|
|
117
|
-
return new HandlersImpl(toolkit, HashMap.empty());
|
|
118
|
-
}
|
|
119
|
-
handle(tag, f) {
|
|
120
|
-
return new HandlersImpl(this.toolkit, HashMap.set(this.handlers, tag, f));
|
|
136
|
+
export const merge = (...toolkits) => {
|
|
137
|
+
const tools = {};
|
|
138
|
+
for (const toolkit of toolkits) {
|
|
139
|
+
for (const [name, tool] of toolkit.tools) {
|
|
140
|
+
tools[name] = tool;
|
|
141
|
+
}
|
|
121
142
|
}
|
|
122
|
-
|
|
143
|
+
return makeProto(tools);
|
|
144
|
+
};
|
|
123
145
|
//# sourceMappingURL=AiToolkit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AiToolkit.js","names":["Context","Effect","
|
|
1
|
+
{"version":3,"file":"AiToolkit.js","names":["Context","Effect","CommitPrototype","BaseProto","InspectableProto","Layer","pipeArguments","Predicate","Schema","AiError","AiTool","TypeId","Symbol","for","Proto","toContext","build","gen","context","handlers","isEffect","contextMap","Map","name","handler","Object","entries","tool","tools","set","key","unsafeMake","toLayer","scopedContext","commit","schemasCache","WeakMap","getSchemas","schemas","get","isUndefined","unsafeMap","encodeSuccess","encodeUnknown","successSchema","decodeFailure","decodeUnknown","failureSchema","decodeParameters","parametersSchema","handle","fn","captureStackTrace","toolName","toolParams","annotateCurrentSpan","parameters","decodedParams","mapError","cause","module","method","description","result","pipe","mapInputContext","input","merge","catchAll","error","flatMap","fail","encodedResult","Array","from","values","toJSON","_id","map","arguments","makeProto","assign","resolveInput","output","value","isSchema","fromTaggedRequest","make","toolkits","toolkit"],"sources":["../../src/AiToolkit.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/Tokenizer.js
CHANGED
|
@@ -1,45 +1,43 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import * as Chunk from "effect/Chunk";
|
|
5
4
|
import * as Context from "effect/Context";
|
|
6
5
|
import * as Effect from "effect/Effect";
|
|
7
|
-
import * as
|
|
6
|
+
import * as Predicate from "effect/Predicate";
|
|
8
7
|
import * as AiInput from "./AiInput.js";
|
|
9
8
|
/**
|
|
10
9
|
* @since 1.0.0
|
|
11
|
-
* @category
|
|
10
|
+
* @category Tags
|
|
12
11
|
*/
|
|
13
12
|
export class Tokenizer extends /*#__PURE__*/Context.Tag("@effect/ai/Tokenizer")() {}
|
|
14
13
|
/**
|
|
15
14
|
* @since 1.0.0
|
|
16
|
-
* @category
|
|
15
|
+
* @category Constructors
|
|
17
16
|
*/
|
|
18
17
|
export const make = options => Tokenizer.of({
|
|
19
18
|
tokenize(input) {
|
|
20
19
|
return options.tokenize(AiInput.make(input));
|
|
21
20
|
},
|
|
22
|
-
truncate(
|
|
23
|
-
return truncate(AiInput.make(
|
|
21
|
+
truncate(input, tokens) {
|
|
22
|
+
return truncate(AiInput.make(input), options.tokenize, tokens);
|
|
24
23
|
}
|
|
25
24
|
});
|
|
26
25
|
const truncate = (self, tokenize, maxTokens) => Effect.suspend(() => {
|
|
27
26
|
let count = 0;
|
|
28
|
-
let
|
|
29
|
-
let
|
|
27
|
+
let inputMessages = self.messages;
|
|
28
|
+
let outputMessages = [];
|
|
30
29
|
const loop = Effect.suspend(() => {
|
|
31
|
-
const
|
|
32
|
-
if (
|
|
33
|
-
return Effect.succeed(AiInput.make(
|
|
30
|
+
const message = inputMessages[inputMessages.length - 1];
|
|
31
|
+
if (Predicate.isUndefined(message)) {
|
|
32
|
+
return Effect.succeed(AiInput.make(outputMessages));
|
|
34
33
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return Effect.flatMap(tokenize(Chunk.of(part)), tokens => {
|
|
34
|
+
inputMessages = inputMessages.slice(0, inputMessages.length - 1);
|
|
35
|
+
return Effect.flatMap(tokenize(AiInput.make(message)), tokens => {
|
|
38
36
|
count += tokens.length;
|
|
39
37
|
if (count > maxTokens) {
|
|
40
|
-
return Effect.succeed(AiInput.make(
|
|
38
|
+
return Effect.succeed(AiInput.make(outputMessages));
|
|
41
39
|
}
|
|
42
|
-
|
|
40
|
+
outputMessages = [message, ...outputMessages];
|
|
43
41
|
return loop;
|
|
44
42
|
});
|
|
45
43
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tokenizer.js","names":["
|
|
1
|
+
{"version":3,"file":"Tokenizer.js","names":["Context","Effect","Predicate","AiInput","Tokenizer","Tag","make","options","of","tokenize","input","truncate","tokens","self","maxTokens","suspend","count","inputMessages","messages","outputMessages","loop","message","length","isUndefined","succeed","slice","flatMap"],"sources":["../../src/Tokenizer.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAE7C,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;;AAIA,OAAM,MAAOC,SAAU,sBAAQJ,OAAO,CAACK,GAAG,CAAC,sBAAsB,CAAC,EAG/D;AAgBH;;;;AAIA,OAAO,MAAMC,IAAI,GAAIC,OAEpB,IACCH,SAAS,CAACI,EAAE,CAAC;EACXC,QAAQA,CAACC,KAAK;IACZ,OAAOH,OAAO,CAACE,QAAQ,CAACN,OAAO,CAACG,IAAI,CAACI,KAAK,CAAC,CAAC;EAC9C,CAAC;EACDC,QAAQA,CAACD,KAAK,EAAEE,MAAM;IACpB,OAAOD,QAAQ,CAACR,OAAO,CAACG,IAAI,CAACI,KAAK,CAAC,EAAEH,OAAO,CAACE,QAAQ,EAAEG,MAAM,CAAC;EAChE;CACD,CAAC;AAEJ,MAAMD,QAAQ,GAAGA,CACfE,IAAqB,EACrBJ,QAA2E,EAC3EK,SAAiB,KAEjBb,MAAM,CAACc,OAAO,CAAC,MAAK;EAClB,IAAIC,KAAK,GAAG,CAAC;EACb,IAAIC,aAAa,GAAGJ,IAAI,CAACK,QAAQ;EACjC,IAAIC,cAAc,GAA2B,EAAE;EAC/C,MAAMC,IAAI,GAA4CnB,MAAM,CAACc,OAAO,CAAC,MAAK;IACxE,MAAMM,OAAO,GAAGJ,aAAa,CAACA,aAAa,CAACK,MAAM,GAAG,CAAC,CAAC;IACvD,IAAIpB,SAAS,CAACqB,WAAW,CAACF,OAAO,CAAC,EAAE;MAClC,OAAOpB,MAAM,CAACuB,OAAO,CAACrB,OAAO,CAACG,IAAI,CAACa,cAAc,CAAC,CAAC;IACrD;IACAF,aAAa,GAAGA,aAAa,CAACQ,KAAK,CAAC,CAAC,EAAER,aAAa,CAACK,MAAM,GAAG,CAAC,CAAC;IAChE,OAAOrB,MAAM,CAACyB,OAAO,CAACjB,QAAQ,CAACN,OAAO,CAACG,IAAI,CAACe,OAAO,CAAC,CAAC,EAAGT,MAAM,IAAI;MAChEI,KAAK,IAAIJ,MAAM,CAACU,MAAM;MACtB,IAAIN,KAAK,GAAGF,SAAS,EAAE;QACrB,OAAOb,MAAM,CAACuB,OAAO,CAACrB,OAAO,CAACG,IAAI,CAACa,cAAc,CAAC,CAAC;MACrD;MACAA,cAAc,GAAG,CAACE,OAAO,EAAE,GAAGF,cAAc,CAAC;MAC7C,OAAOC,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,CAAC;EACF,OAAOA,IAAI;AACb,CAAC,CAAC","ignoreList":[]}
|