liminal 0.16.0 → 0.17.1
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/Accumulator.ts +97 -0
- package/Actor.ts +118 -0
- package/Audition.ts +105 -0
- package/CHANGELOG.md +2 -206
- package/Client.ts +560 -0
- package/ClientHandle.ts +39 -0
- package/F.ts +18 -0
- package/Method.ts +39 -0
- package/Protocol.ts +142 -0
- package/Send.ts +8 -0
- package/_constants.ts +1 -0
- package/_types.ts +27 -0
- package/_util/Mutex.ts +13 -0
- package/_util/phantom.ts +1 -0
- package/dist/Accumulator.d.ts +22 -0
- package/dist/Accumulator.js +33 -0
- package/dist/Accumulator.js.map +1 -0
- package/dist/Actor.d.ts +30 -0
- package/dist/Actor.js +31 -0
- package/dist/Actor.js.map +1 -0
- package/dist/Audition.d.ts +18 -0
- package/dist/Audition.js +27 -0
- package/dist/Audition.js.map +1 -0
- package/dist/Client.d.ts +65 -0
- package/dist/Client.js +248 -0
- package/dist/Client.js.map +1 -0
- package/dist/ClientHandle.d.ts +18 -0
- package/dist/ClientHandle.js +10 -0
- package/dist/ClientHandle.js.map +1 -0
- package/dist/F.d.ts +13 -0
- package/dist/F.js +4 -0
- package/dist/F.js.map +1 -0
- package/dist/Method.d.ts +23 -0
- package/dist/Method.js +4 -0
- package/dist/Method.js.map +1 -0
- package/dist/Protocol.d.ts +96 -0
- package/dist/Protocol.js +13 -0
- package/dist/Protocol.js.map +1 -0
- package/dist/Send.d.ts +3 -0
- package/dist/Send.js +2 -0
- package/dist/Send.js.map +1 -0
- package/dist/_constants.d.ts +1 -0
- package/dist/_constants.js +2 -0
- package/dist/_constants.js.map +1 -0
- package/dist/_types.d.ts +22 -0
- package/dist/_types.js +2 -0
- package/dist/_types.js.map +1 -0
- package/dist/_util/Mutex.d.ts +7 -0
- package/dist/_util/Mutex.js +9 -0
- package/dist/_util/Mutex.js.map +1 -0
- package/dist/_util/phantom.d.ts +3 -0
- package/dist/_util/phantom.js +2 -0
- package/dist/_util/phantom.js.map +1 -0
- package/dist/errors.d.ts +20 -0
- package/dist/errors.js +13 -0
- package/dist/errors.js.map +1 -0
- package/dist/experimental/BranchLive.d.ts +3 -0
- package/dist/experimental/BranchLive.js +5 -0
- package/dist/experimental/BranchLive.js.map +1 -0
- package/dist/experimental/L/L.d.ts +11 -0
- package/dist/experimental/L/L.js +12 -0
- package/dist/experimental/L/L.js.map +1 -0
- package/dist/experimental/L/append.d.ts +3 -0
- package/dist/experimental/L/append.js +4 -0
- package/dist/experimental/L/append.js.map +1 -0
- package/dist/experimental/L/assistant.d.ts +3 -0
- package/dist/experimental/L/assistant.js +13 -0
- package/dist/experimental/L/assistant.js.map +1 -0
- package/dist/experimental/L/assistantSchema.d.ts +3 -0
- package/dist/experimental/L/assistantSchema.js +13 -0
- package/dist/experimental/L/assistantSchema.js.map +1 -0
- package/dist/experimental/L/assistantStream.d.ts +3 -0
- package/dist/experimental/L/assistantStream.js +5 -0
- package/dist/experimental/L/assistantStream.js.map +1 -0
- package/dist/experimental/L/branch.d.ts +2 -0
- package/dist/experimental/L/branch.js +4 -0
- package/dist/experimental/L/branch.js.map +1 -0
- package/dist/experimental/L/clear.d.ts +3 -0
- package/dist/experimental/L/clear.js +7 -0
- package/dist/experimental/L/clear.js.map +1 -0
- package/dist/experimental/L/history.d.ts +3 -0
- package/dist/experimental/L/history.js +4 -0
- package/dist/experimental/L/history.js.map +1 -0
- package/dist/experimental/L/init.d.ts +3 -0
- package/dist/experimental/L/init.js +4 -0
- package/dist/experimental/L/init.js.map +1 -0
- package/dist/experimental/L/matrix.d.ts +10 -0
- package/dist/experimental/L/matrix.js +6 -0
- package/dist/experimental/L/matrix.js.map +1 -0
- package/dist/experimental/L/system.d.ts +1 -0
- package/dist/experimental/L/system.js +4 -0
- package/dist/experimental/L/system.js.map +1 -0
- package/dist/experimental/L/user.d.ts +1 -0
- package/dist/experimental/L/user.js +6 -0
- package/dist/experimental/L/user.js.map +1 -0
- package/dist/experimental/Loader.d.ts +16 -0
- package/dist/experimental/Loader.js +20 -0
- package/dist/experimental/Loader.js.map +1 -0
- package/dist/experimental/TaggedTemplateFunction.d.ts +11 -0
- package/dist/experimental/TaggedTemplateFunction.js +14 -0
- package/dist/experimental/TaggedTemplateFunction.js.map +1 -0
- package/dist/experimental/Template.d.ts +32 -0
- package/dist/experimental/Template.js +58 -0
- package/dist/experimental/Template.js.map +1 -0
- package/dist/experimental/index.d.ts +4 -0
- package/dist/experimental/index.js +5 -0
- package/dist/experimental/index.js.map +1 -0
- package/dist/index.d.ts +9 -5
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/errors.ts +14 -0
- package/experimental/BranchLive.ts +6 -0
- package/experimental/L/L.ts +11 -0
- package/experimental/L/append.ts +12 -0
- package/experimental/L/assistant.ts +16 -0
- package/experimental/L/assistantSchema.ts +18 -0
- package/experimental/L/assistantStream.ts +9 -0
- package/experimental/L/branch.ts +5 -0
- package/experimental/L/clear.ts +7 -0
- package/experimental/L/history.ts +4 -0
- package/experimental/L/init.ts +4 -0
- package/experimental/L/matrix.ts +26 -0
- package/experimental/L/system.ts +5 -0
- package/experimental/L/user.ts +10 -0
- package/experimental/Loader.ts +35 -0
- package/experimental/TaggedTemplateFunction.ts +44 -0
- package/experimental/Template.ts +93 -0
- package/experimental/index.ts +4 -0
- package/index.ts +9 -5
- package/package.json +26 -23
- package/tsconfig.json +9 -0
- package/Envelope.ts +0 -48
- package/L/L.ts +0 -21
- package/L/Self.ts +0 -5
- package/L/append.ts +0 -14
- package/L/assistant.ts +0 -30
- package/L/assistantSchema.ts +0 -61
- package/L/assistantStream.ts +0 -22
- package/L/branch.ts +0 -33
- package/L/clear.ts +0 -14
- package/L/disable.ts +0 -13
- package/L/enable.ts +0 -24
- package/L/events.ts +0 -11
- package/L/fqn.ts +0 -9
- package/L/handle.ts +0 -26
- package/L/messages.ts +0 -10
- package/L/raw.ts +0 -30
- package/L/sequence.ts +0 -9
- package/L/system.ts +0 -14
- package/L/thread.ts +0 -28
- package/L/to.ts +0 -4
- package/L/toolkit.ts +0 -14
- package/L/user.test.ts +0 -30
- package/L/user.ts +0 -22
- package/L/userJson.ts +0 -14
- package/LEvent.ts +0 -23
- package/LPretty.ts +0 -41
- package/Thread.ts +0 -69
- package/dist/Envelope.d.ts +0 -15
- package/dist/Envelope.js +0 -30
- package/dist/Envelope.js.map +0 -1
- package/dist/L/L.d.ts +0 -21
- package/dist/L/L.js +0 -22
- package/dist/L/L.js.map +0 -1
- package/dist/L/Self.d.ts +0 -3
- package/dist/L/Self.js +0 -4
- package/dist/L/Self.js.map +0 -1
- package/dist/L/append.d.ts +0 -5
- package/dist/L/append.js +0 -10
- package/dist/L/append.js.map +0 -1
- package/dist/L/assistant.d.ts +0 -6
- package/dist/L/assistant.js +0 -26
- package/dist/L/assistant.js.map +0 -1
- package/dist/L/assistantSchema.d.ts +0 -13
- package/dist/L/assistantSchema.js +0 -44
- package/dist/L/assistantSchema.js.map +0 -1
- package/dist/L/assistantStream.d.ts +0 -7
- package/dist/L/assistantStream.js +0 -17
- package/dist/L/assistantStream.js.map +0 -1
- package/dist/L/branch.d.ts +0 -6
- package/dist/L/branch.js +0 -22
- package/dist/L/branch.js.map +0 -1
- package/dist/L/clear.d.ts +0 -5
- package/dist/L/clear.js +0 -12
- package/dist/L/clear.js.map +0 -1
- package/dist/L/disable.d.ts +0 -4
- package/dist/L/disable.js +0 -10
- package/dist/L/disable.js.map +0 -1
- package/dist/L/enable.d.ts +0 -5
- package/dist/L/enable.js +0 -13
- package/dist/L/enable.js.map +0 -1
- package/dist/L/events.d.ts +0 -5
- package/dist/L/events.js +0 -6
- package/dist/L/events.js.map +0 -1
- package/dist/L/fqn.d.ts +0 -3
- package/dist/L/fqn.js +0 -8
- package/dist/L/fqn.js.map +0 -1
- package/dist/L/handle.d.ts +0 -7
- package/dist/L/handle.js +0 -14
- package/dist/L/handle.js.map +0 -1
- package/dist/L/messages.d.ts +0 -5
- package/dist/L/messages.js +0 -5
- package/dist/L/messages.js.map +0 -1
- package/dist/L/raw.d.ts +0 -3
- package/dist/L/raw.js +0 -18
- package/dist/L/raw.js.map +0 -1
- package/dist/L/sequence.d.ts +0 -2
- package/dist/L/sequence.js +0 -5
- package/dist/L/sequence.js.map +0 -1
- package/dist/L/system.d.ts +0 -5
- package/dist/L/system.js +0 -12
- package/dist/L/system.js.map +0 -1
- package/dist/L/thread.d.ts +0 -6
- package/dist/L/thread.js +0 -17
- package/dist/L/thread.js.map +0 -1
- package/dist/L/to.d.ts +0 -3
- package/dist/L/to.js +0 -3
- package/dist/L/to.js.map +0 -1
- package/dist/L/toolkit.d.ts +0 -4
- package/dist/L/toolkit.js +0 -9
- package/dist/L/toolkit.js.map +0 -1
- package/dist/L/user.d.ts +0 -4
- package/dist/L/user.js +0 -13
- package/dist/L/user.js.map +0 -1
- package/dist/L/user.test.d.ts +0 -1
- package/dist/L/user.test.js.map +0 -1
- package/dist/L/userJson.d.ts +0 -6
- package/dist/L/userJson.js +0 -9
- package/dist/L/userJson.js.map +0 -1
- package/dist/LEvent.d.ts +0 -26
- package/dist/LEvent.js +0 -16
- package/dist/LEvent.js.map +0 -1
- package/dist/LPretty.d.ts +0 -4
- package/dist/LPretty.js +0 -37
- package/dist/LPretty.js.map +0 -1
- package/dist/Thread.d.ts +0 -55
- package/dist/Thread.js +0 -38
- package/dist/Thread.js.map +0 -1
- package/dist/patterns/Debate.d.ts +0 -1
- package/dist/patterns/Debate.js +0 -3
- package/dist/patterns/Debate.js.map +0 -1
- package/dist/patterns/Model.d.ts +0 -6
- package/dist/patterns/Model.js +0 -14
- package/dist/patterns/Model.js.map +0 -1
- package/dist/patterns/Route.d.ts +0 -3
- package/dist/patterns/Route.js +0 -14
- package/dist/patterns/Route.js.map +0 -1
- package/dist/util/JsonValue.d.ts +0 -8
- package/dist/util/JsonValue.js +0 -109
- package/dist/util/JsonValue.js.map +0 -1
- package/dist/util/NeverTool.d.ts +0 -3
- package/dist/util/NeverTool.js +0 -3
- package/dist/util/NeverTool.js.map +0 -1
- package/dist/util/Sequencer.d.ts +0 -4
- package/dist/util/Sequencer.js +0 -2
- package/dist/util/Sequencer.js.map +0 -1
- package/dist/util/Taggable.d.ts +0 -5
- package/dist/util/Taggable.js +0 -2
- package/dist/util/Taggable.js.map +0 -1
- package/dist/util/normalizeRaw.d.ts +0 -4
- package/dist/util/normalizeRaw.js +0 -75
- package/dist/util/normalizeRaw.js.map +0 -1
- package/dist/util/prefix.d.ts +0 -1
- package/dist/util/prefix.js +0 -2
- package/dist/util/prefix.js.map +0 -1
- package/patterns/Debate.ts +0 -2
- package/patterns/Model.ts +0 -29
- package/patterns/Route.ts +0 -21
- package/util/JsonValue.ts +0 -144
- package/util/NeverTool.ts +0 -10
- package/util/Sequencer.ts +0 -13
- package/util/Taggable.ts +0 -14
- package/util/normalizeRaw.ts +0 -93
- package/util/prefix.ts +0 -1
package/dist/Thread.d.ts
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import * as Option from "effect/Option";
|
|
2
|
-
import { type Pipeable } from "effect/Pipeable";
|
|
3
|
-
import * as PubSub from "effect/PubSub";
|
|
4
|
-
import * as Schema from "effect/Schema";
|
|
5
|
-
import type { Mutable } from "effect/Types";
|
|
6
|
-
import type { LEvent } from "./LEvent.ts";
|
|
7
|
-
import type { NeverTool } from "./util/NeverTool.ts";
|
|
8
|
-
import type { Sequencer } from "./util/Sequencer.ts";
|
|
9
|
-
export declare const ThreadFqnTypeId: unique symbol;
|
|
10
|
-
export declare const ThreadFqn: Schema.brand<typeof Schema.String, typeof ThreadFqnTypeId>;
|
|
11
|
-
export type ThreadFqn = typeof ThreadFqn["Type"];
|
|
12
|
-
declare const ThreadState_base: Schema.Class<ThreadState, {
|
|
13
|
-
/** The key with which the thread is referenced by others. */
|
|
14
|
-
fqn: Schema.Option<Schema.brand<typeof Schema.String, typeof ThreadFqnTypeId>>;
|
|
15
|
-
/** The system prompt to be passed along to the model. */
|
|
16
|
-
system: Schema.Option<typeof Schema.String>;
|
|
17
|
-
/** The messages based off of which the model infers the next message. */
|
|
18
|
-
messages: Schema.mutable<Schema.Array$<Schema.Union<[typeof import("@effect/ai/AiInput").UserMessage, typeof import("@effect/ai/AiInput").AssistantMessage, typeof import("@effect/ai/AiInput").ToolMessage]>>>;
|
|
19
|
-
}, Schema.Struct.Encoded<{
|
|
20
|
-
/** The key with which the thread is referenced by others. */
|
|
21
|
-
fqn: Schema.Option<Schema.brand<typeof Schema.String, typeof ThreadFqnTypeId>>;
|
|
22
|
-
/** The system prompt to be passed along to the model. */
|
|
23
|
-
system: Schema.Option<typeof Schema.String>;
|
|
24
|
-
/** The messages based off of which the model infers the next message. */
|
|
25
|
-
messages: Schema.mutable<Schema.Array$<Schema.Union<[typeof import("@effect/ai/AiInput").UserMessage, typeof import("@effect/ai/AiInput").AssistantMessage, typeof import("@effect/ai/AiInput").ToolMessage]>>>;
|
|
26
|
-
}>, never, {
|
|
27
|
-
readonly messages: (import("@effect/ai/AiInput").UserMessage | import("@effect/ai/AiInput").AssistantMessage | import("@effect/ai/AiInput").ToolMessage)[];
|
|
28
|
-
} & {
|
|
29
|
-
readonly fqn: Option.Option<string & import("effect/Brand").Brand<typeof ThreadFqnTypeId>>;
|
|
30
|
-
} & {
|
|
31
|
-
readonly system: Option.Option<string>;
|
|
32
|
-
}, {}, {}>;
|
|
33
|
-
export declare class ThreadState extends ThreadState_base {
|
|
34
|
-
static default: () => ThreadState;
|
|
35
|
-
}
|
|
36
|
-
export interface ThreadInit {
|
|
37
|
-
/** The parent thread. */
|
|
38
|
-
parent: Option.Option<Thread>;
|
|
39
|
-
/** The pubsub with which thread-specific events are emitted. */
|
|
40
|
-
events: PubSub.PubSub<LEvent>;
|
|
41
|
-
/** The state of the current thread. */
|
|
42
|
-
state: Mutable<ThreadState>;
|
|
43
|
-
/** The tools to be made accessible to the model. */
|
|
44
|
-
tools: Option.Option<Set<NeverTool>>;
|
|
45
|
-
}
|
|
46
|
-
export declare const ThreadTypeId: unique symbol;
|
|
47
|
-
export type ThreadTypeId = typeof ThreadTypeId;
|
|
48
|
-
interface ThreadMembers extends ThreadInit, Pipeable {
|
|
49
|
-
readonly [ThreadTypeId]: ThreadTypeId;
|
|
50
|
-
}
|
|
51
|
-
/** A conversation isolate. */
|
|
52
|
-
export interface Thread extends Sequencer<Thread>, ThreadMembers {
|
|
53
|
-
}
|
|
54
|
-
export declare const Thread: (init: ThreadInit) => Thread;
|
|
55
|
-
export {};
|
package/dist/Thread.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Message } from "@effect/ai/AiInput";
|
|
2
|
-
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Option from "effect/Option";
|
|
4
|
-
import { pipeArguments } from "effect/Pipeable";
|
|
5
|
-
import * as PubSub from "effect/PubSub";
|
|
6
|
-
import * as Schema from "effect/Schema";
|
|
7
|
-
import { Self } from "./L/Self.js";
|
|
8
|
-
import { sequence } from "./L/sequence.js";
|
|
9
|
-
import { prefix } from "./util/prefix.js";
|
|
10
|
-
export const ThreadFqnTypeId = Symbol.for(prefix("ThreadFqn"));
|
|
11
|
-
export const ThreadFqn = Schema.String.pipe(Schema.brand(ThreadFqnTypeId));
|
|
12
|
-
export class ThreadState extends Schema.Class(prefix("ThreadState"))({
|
|
13
|
-
/** The key with which the thread is referenced by others. */
|
|
14
|
-
fqn: Schema.Option(ThreadFqn),
|
|
15
|
-
/** The system prompt to be passed along to the model. */
|
|
16
|
-
system: Schema.Option(Schema.String),
|
|
17
|
-
/** The messages based off of which the model infers the next message. */
|
|
18
|
-
messages: Schema.Array(Message).pipe(Schema.mutable),
|
|
19
|
-
}) {
|
|
20
|
-
static default = () => ThreadState.make({
|
|
21
|
-
fqn: Option.none(),
|
|
22
|
-
system: Option.none(),
|
|
23
|
-
messages: [],
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
export const ThreadTypeId = Symbol.for(prefix("Thread"));
|
|
27
|
-
export const Thread = (init) => {
|
|
28
|
-
const members = {
|
|
29
|
-
[ThreadTypeId]: ThreadTypeId,
|
|
30
|
-
...init,
|
|
31
|
-
pipe() {
|
|
32
|
-
return pipeArguments(self, arguments);
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
const self = Object.assign(((...args) => sequence(...args).pipe(Effect.provideService(Self, self))), members);
|
|
36
|
-
return self;
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=Thread.js.map
|
package/dist/Thread.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Thread.js","sourceRoot":"","sources":["../Thread.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAiB,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC9D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAG1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAGzC,MAAM,CAAC,MAAM,eAAe,GAAkB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;AAC7E,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;AAG1E,MAAM,OAAO,WAAY,SAAQ,MAAM,CAAC,KAAK,CAAc,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IAChF,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;IAC7B,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;CACrD,CAAC;IACA,MAAM,CAAC,OAAO,GAAG,GAAgB,EAAE,CACjC,WAAW,CAAC,IAAI,CAAC;QACf,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;QACrB,QAAQ,EAAE,EAAE;KACb,CAAC,CAAA;;AAcN,MAAM,CAAC,MAAM,YAAY,GAAkB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;AAUvE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAgB,EAAU,EAAE;IACjD,MAAM,OAAO,GAAG;QACd,CAAC,YAAY,CAAC,EAAE,YAAY;QAC5B,GAAG,IAAI;QACP,IAAI;YACF,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QACvC,CAAC;KACsB,CAAA;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CACxB,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAA6B,EACpG,OAAO,CACE,CAAA;IACX,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/patterns/Debate.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Debate.js","sourceRoot":"","sources":["../../patterns/Debate.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,EAAE,CAAA"}
|
package/dist/patterns/Model.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { AiError } from "@effect/ai/AiError";
|
|
2
|
-
import type { AiLanguageModel } from "@effect/ai/AiLanguageModel";
|
|
3
|
-
import type { AiModel } from "@effect/ai/AiModel";
|
|
4
|
-
import * as Effect from "effect/Effect";
|
|
5
|
-
import type { Thread } from "../Thread.ts";
|
|
6
|
-
export declare const coalesce: <E, R, M extends Array<AiModel<any, any>>>(effect: Effect.Effect<any, E, R>, models: M) => Effect.Effect<string, AiError | E, Thread | AiLanguageModel | ([M[number]] extends [AiModel<any, infer R>] ? R : never)>;
|
package/dist/patterns/Model.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import * as L from "../L/L.js";
|
|
3
|
-
export const coalesce = Effect.fn(function* (effect, models) {
|
|
4
|
-
const all = yield* Effect.all(models.map((model) => effect.pipe(Effect.provide(model))));
|
|
5
|
-
yield* L.user `
|
|
6
|
-
Coalesce the following items into a single item:
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
${all.map((item) => JSON.stringify(item, null, 2)).join("\n\n---")}
|
|
11
|
-
`;
|
|
12
|
-
return yield* L.assistant;
|
|
13
|
-
});
|
|
14
|
-
//# sourceMappingURL=Model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Model.js","sourceRoot":"","sources":["../../patterns/Model.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,CAAC,MAAM,WAAW,CAAA;AAG9B,MAAM,CAAC,MAAM,QAAQ,GAOjB,MAAM,CAAC,EAAE,CACX,QAAQ,CAAC,EAAC,MAAM,EAAE,MAAM;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAEtF,CAAA;IACD,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;;;;;QAKT,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;KACnE,CAAA;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC3B,CAAC,CACF,CAAA"}
|
package/dist/patterns/Route.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import { Thread } from "../Thread.ts";
|
|
3
|
-
export declare const byDescription: <R extends Record<string, Effect.All.EffectAny>>(routes: R) => Effect.Effect<Effect.Effect.Success<R[keyof R]>, ([R[keyof R]] extends [never] ? never : Effect.Effect.Error<R[keyof R]>), ([R[keyof R]] extends [never] ? never : Effect.Effect.Context<R[keyof R]>) | Thread>;
|
package/dist/patterns/Route.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import * as Schema from "effect/Schema";
|
|
3
|
-
import * as L from "../L/L.js";
|
|
4
|
-
import { Thread } from "../Thread.js";
|
|
5
|
-
export const byDescription = Effect.fnUntraced(function* (routes) {
|
|
6
|
-
const descriptions = Object.keys(routes);
|
|
7
|
-
const description = yield* L.branch(L.user `
|
|
8
|
-
Which of the following descriptions best matches the current conversation?
|
|
9
|
-
|
|
10
|
-
- ${descriptions.join("\n -")}
|
|
11
|
-
`, L.assistantSchema(Schema.Literal(...descriptions)));
|
|
12
|
-
return yield* routes[description];
|
|
13
|
-
});
|
|
14
|
-
//# sourceMappingURL=Route.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Route.js","sourceRoot":"","sources":["../../patterns/Route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,CAAC,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,MAAM,CAAC,MAAM,aAAa,GAItB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC,MAAM;IACpC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CACjC,CAAC,CAAC,IAAI,CAAA;;;UAGA,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;KAC9B,EACD,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,CACnD,CAAA;IACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAE,CAAA;AACpC,CAAC,CAAC,CAAA"}
|
package/dist/util/JsonValue.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import * as Schema from "effect/Schema";
|
|
3
|
-
export type JsonValue = null | boolean | number | string | JsonValueArray | JsonValueObject;
|
|
4
|
-
export type JsonValueArray = Array<JsonValue> | ReadonlyArray<JsonValue>;
|
|
5
|
-
export type JsonValueObject = {
|
|
6
|
-
[key: string]: JsonValue;
|
|
7
|
-
};
|
|
8
|
-
export declare const encodeJsonc: <A, I extends JsonValue>(schema: Schema.Schema<A, I>) => (value: A) => Effect.Effect<string>;
|
package/dist/util/JsonValue.js
DELETED
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import { pipe } from "effect/Function";
|
|
3
|
-
import * as Option from "effect/Option";
|
|
4
|
-
import * as Schema from "effect/Schema";
|
|
5
|
-
import * as SchemaAST from "effect/SchemaAST";
|
|
6
|
-
export const encodeJsonc = (schema) => {
|
|
7
|
-
const encoder = encodeAst(SchemaAST.encodedBoundAST(schema.ast));
|
|
8
|
-
return (value) => encoder(value, new EncodeJsoncContext(0));
|
|
9
|
-
};
|
|
10
|
-
class EncodeJsoncContext {
|
|
11
|
-
depth;
|
|
12
|
-
indentation;
|
|
13
|
-
childIndentation;
|
|
14
|
-
constructor(depth) {
|
|
15
|
-
this.depth = depth;
|
|
16
|
-
this.indentation = " ".repeat(depth * 2);
|
|
17
|
-
this.childIndentation = " ".repeat((depth + 1) * 2);
|
|
18
|
-
}
|
|
19
|
-
next = () => new EncodeJsoncContext(this.depth + 1);
|
|
20
|
-
comment = (type) => Option.match(SchemaAST.getDescriptionAnnotation(type), {
|
|
21
|
-
onSome: (v) => {
|
|
22
|
-
v = v.trim();
|
|
23
|
-
if (v) {
|
|
24
|
-
return `// ${v}\n${this.childIndentation}`;
|
|
25
|
-
}
|
|
26
|
-
return "";
|
|
27
|
-
},
|
|
28
|
-
onNone: () => "",
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
const encodeAst = (ast, refinement) => {
|
|
32
|
-
switch (ast._tag) {
|
|
33
|
-
case "TypeLiteral": {
|
|
34
|
-
return Effect.fnUntraced(function* (value, ctx) {
|
|
35
|
-
const props = yield* Effect.all(ast.propertySignatures.map(Effect.fnUntraced(function* ({ name, type }) {
|
|
36
|
-
if (typeof name === "symbol")
|
|
37
|
-
throw 0;
|
|
38
|
-
const child = yield* encodeAst(type)(value[name], ctx.next());
|
|
39
|
-
return `${ctx.comment(refinement ?? type)}${name}: ${child}`;
|
|
40
|
-
}))).pipe(Effect.map((v) => v.join(`,\n${ctx.childIndentation}`)));
|
|
41
|
-
return `{\n${ctx.childIndentation}${props}\n${ctx.indentation}}`;
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
case "StringKeyword": {
|
|
45
|
-
return (value) => Effect.succeed(`"${value}"`);
|
|
46
|
-
}
|
|
47
|
-
case "BooleanKeyword":
|
|
48
|
-
case "NumberKeyword": {
|
|
49
|
-
return (value) => Effect.succeed(String(value));
|
|
50
|
-
}
|
|
51
|
-
case "Refinement": {
|
|
52
|
-
return encodeAst(ast.from, refinement ?? ast);
|
|
53
|
-
}
|
|
54
|
-
case "UnknownKeyword":
|
|
55
|
-
case "AnyKeyword": {
|
|
56
|
-
return (value, ctx) => Effect.succeed(JSON
|
|
57
|
-
.stringify(value, null, 2)
|
|
58
|
-
.split("\n")
|
|
59
|
-
.map((line, i) => i ? ctx.indentation.concat(line) : line)
|
|
60
|
-
.join("\n"));
|
|
61
|
-
}
|
|
62
|
-
case "Union": {
|
|
63
|
-
const { types } = ast;
|
|
64
|
-
const guards = types.map((ast) => pipe(ast, Schema.make, Schema.is));
|
|
65
|
-
return (value, ctx) => {
|
|
66
|
-
for (let i = 0; i < types.length; i++) {
|
|
67
|
-
const guard = guards[i];
|
|
68
|
-
if (guard(value)) {
|
|
69
|
-
return encodeAst(types[i])(value, ctx);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
throw 0;
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
case "Literal": {
|
|
76
|
-
const { literal } = ast;
|
|
77
|
-
const v = (() => {
|
|
78
|
-
switch (typeof literal) {
|
|
79
|
-
case "boolean":
|
|
80
|
-
case "number": {
|
|
81
|
-
return String(literal);
|
|
82
|
-
}
|
|
83
|
-
case "string": {
|
|
84
|
-
return `"${literal}"`;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (literal === null) {
|
|
88
|
-
return "null";
|
|
89
|
-
}
|
|
90
|
-
console.log({ literal });
|
|
91
|
-
throw 0;
|
|
92
|
-
})();
|
|
93
|
-
return () => Effect.succeed(v);
|
|
94
|
-
}
|
|
95
|
-
case "TupleType": {
|
|
96
|
-
const { elements, rest } = ast;
|
|
97
|
-
return (value, ctx) => Effect.all((elements.length ? elements : rest).map(Effect.fnUntraced(function* (element, i) {
|
|
98
|
-
const child = yield* encodeAst(element.type)(value[i], ctx.next());
|
|
99
|
-
return `${ctx.comment(refinement ?? element.type)}${child}`;
|
|
100
|
-
}))).pipe(Effect.map((v) => `[\n${ctx.childIndentation}${v.join(`,\n${ctx.childIndentation}`)}\n${ctx.indentation}]`));
|
|
101
|
-
}
|
|
102
|
-
case "Suspend": {
|
|
103
|
-
return encodeAst(ast.f());
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
console.log({ ast });
|
|
107
|
-
throw 0;
|
|
108
|
-
};
|
|
109
|
-
//# sourceMappingURL=JsonValue.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"JsonValue.js","sourceRoot":"","sources":["../../util/JsonValue.ts"],"names":[],"mappings":"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"}
|
package/dist/util/NeverTool.d.ts
DELETED
package/dist/util/NeverTool.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NeverTool.js","sourceRoot":"","sources":["../../util/NeverTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA"}
|
package/dist/util/Sequencer.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type * as Effect from "effect/Effect";
|
|
2
|
-
export interface Sequencer<Provides = never, Requires = never> {
|
|
3
|
-
<Arg extends Array<Effect.All.EffectAny>>(...steps: Arg): Effect.Effect<Arg extends [] ? void : Arg extends [...infer _0, infer L extends Effect.All.EffectAny] ? Effect.Effect.Success<L> : never, Effect.Effect.Error<Arg[number]>, Exclude<Effect.Effect.Context<Arg[number]>, Provides> | Requires>;
|
|
4
|
-
}
|
package/dist/util/Sequencer.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Sequencer.js","sourceRoot":"","sources":["../../util/Sequencer.ts"],"names":[],"mappings":""}
|
package/dist/util/Taggable.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
export type Taggable<A, E, R> = <L extends Array<unknown>, E1 = never, R1 = never>(template?: TaggableArg0 | Effect.Effect<string | undefined, E1, R1>, ...substitutions: L) => Effect.Effect<A, ([ExtractEffect<L>] extends [never] ? never : Effect.Effect.Error<ExtractEffect<L>>) | E | E1, ([ExtractEffect<L>] extends [never] ? never : Effect.Effect.Context<ExtractEffect<L>>) | R | R1>;
|
|
3
|
-
export type TaggableArg0 = TemplateStringsArray | string | undefined;
|
|
4
|
-
type ExtractEffect<T extends Array<unknown>> = Extract<T[number], Effect.All.EffectAny>;
|
|
5
|
-
export {};
|
package/dist/util/Taggable.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Taggable.js","sourceRoot":"","sources":["../../util/Taggable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
const LEADING_SPACE_RE = /^([ \t]*)/;
|
|
2
|
-
const INDENTATION_RE = /^\n([ \t]+)/;
|
|
3
|
-
const ESCAPE_SEQ_RE = /\\([`${\\]|\n)/g;
|
|
4
|
-
const LAST_INDENTATION_RE = /\n[ \t]+$/;
|
|
5
|
-
export const normalizeRaw = (strings, values) => {
|
|
6
|
-
const fixedStrings = normalizeTemplateStrings(strings);
|
|
7
|
-
const rawArr = fixedStrings.raw;
|
|
8
|
-
const valuesLength = values.length;
|
|
9
|
-
const resultParts = new Array(Math.max(1, rawArr.length * 2 - 1));
|
|
10
|
-
let resultIndex = 0;
|
|
11
|
-
for (let i = 0; i < rawArr.length; i++) {
|
|
12
|
-
const str = rawArr[i] || "";
|
|
13
|
-
resultParts[resultIndex++] = str;
|
|
14
|
-
// Only process values for non-final segments.
|
|
15
|
-
if (i < valuesLength) {
|
|
16
|
-
const value = String(values[i]);
|
|
17
|
-
// If value has line breaks, we should indent it.
|
|
18
|
-
if (value.includes("\n")) {
|
|
19
|
-
const lastNewlineIndex = str.lastIndexOf("\n");
|
|
20
|
-
if (lastNewlineIndex !== -1) {
|
|
21
|
-
// Extract the indentation after the last newline.
|
|
22
|
-
const textAfterLastNewline = str.substring(lastNewlineIndex + 1);
|
|
23
|
-
const leadingSpaceMatch = LEADING_SPACE_RE.exec(textAfterLastNewline);
|
|
24
|
-
const indentationToApply = leadingSpaceMatch && leadingSpaceMatch[1] ? leadingSpaceMatch[1] : "";
|
|
25
|
-
if (indentationToApply) {
|
|
26
|
-
// Split the value into lines once.
|
|
27
|
-
const lines = value.split("\n");
|
|
28
|
-
const linesLength = lines.length;
|
|
29
|
-
// First line doesn't need indentation.
|
|
30
|
-
resultParts[resultIndex++] = lines[0];
|
|
31
|
-
// Apply indentation to subsequent lines.
|
|
32
|
-
for (let j = 1; j < linesLength; j++) {
|
|
33
|
-
resultParts[resultIndex++] = "\n" + indentationToApply + lines[j];
|
|
34
|
-
}
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// For simple values or when no indentation is needed.
|
|
40
|
-
resultParts[resultIndex++] = value;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
// Combine all parts at once
|
|
44
|
-
return resultParts.slice(0, resultIndex).join("");
|
|
45
|
-
};
|
|
46
|
-
export const normalizeTemplateStrings = (template) => {
|
|
47
|
-
const leadingIndentMatch = INDENTATION_RE.exec(template.raw[0]);
|
|
48
|
-
const indentation = leadingIndentMatch?.[1];
|
|
49
|
-
const rawLength = template.raw.length;
|
|
50
|
-
const raw = new Array(rawLength);
|
|
51
|
-
for (let i = 0; i < rawLength; i++) {
|
|
52
|
-
let str = template.raw[i];
|
|
53
|
-
// Only perform common indentation replacements if needed.
|
|
54
|
-
if (indentation) {
|
|
55
|
-
// Remove leading newline and indentation in the first segment.
|
|
56
|
-
if (i === 0) {
|
|
57
|
-
str = str.slice(indentation.length + 1);
|
|
58
|
-
}
|
|
59
|
-
// Use a simple string replacement with a regular expression for better performance.
|
|
60
|
-
str = str.replaceAll(`\n${indentation}`, "\n");
|
|
61
|
-
}
|
|
62
|
-
// Replace common escape sequences in a single pass.
|
|
63
|
-
str = str.replace(ESCAPE_SEQ_RE, (_match, char) => {
|
|
64
|
-
// Keep the escaped newline replacement separate for clarity.
|
|
65
|
-
return char === "\n" ? "" : char;
|
|
66
|
-
});
|
|
67
|
-
// Handle trailing spaces only for the last segment.
|
|
68
|
-
if (indentation && i === rawLength - 1) {
|
|
69
|
-
str = str.replace(LAST_INDENTATION_RE, "");
|
|
70
|
-
}
|
|
71
|
-
raw[i] = str;
|
|
72
|
-
}
|
|
73
|
-
return { raw };
|
|
74
|
-
};
|
|
75
|
-
//# sourceMappingURL=normalizeRaw.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeRaw.js","sourceRoot":"","sources":["../../util/normalizeRaw.ts"],"names":[],"mappings":"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"}
|
package/dist/util/prefix.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const prefix: <K extends string>(key: K) => `liminal/${K}`;
|
package/dist/util/prefix.js
DELETED
package/dist/util/prefix.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prefix.js","sourceRoot":"","sources":["../../util/prefix.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAmB,GAAM,EAAE,EAAE,CAAC,WAAW,GAAG,EAAW,CAAA"}
|
package/patterns/Debate.ts
DELETED
package/patterns/Model.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import type { AiError } from "@effect/ai/AiError"
|
|
2
|
-
import type { AiLanguageModel } from "@effect/ai/AiLanguageModel"
|
|
3
|
-
import type { AiModel } from "@effect/ai/AiModel"
|
|
4
|
-
import * as Effect from "effect/Effect"
|
|
5
|
-
import * as L from "../L/L.ts"
|
|
6
|
-
import type { Thread } from "../Thread.ts"
|
|
7
|
-
|
|
8
|
-
export const coalesce: <E, R, M extends Array<AiModel<any, any>>>(
|
|
9
|
-
effect: Effect.Effect<any, E, R>,
|
|
10
|
-
models: M,
|
|
11
|
-
) => Effect.Effect<
|
|
12
|
-
string,
|
|
13
|
-
AiError | E,
|
|
14
|
-
Thread | AiLanguageModel | ([M[number]] extends [AiModel<any, infer R>] ? R : never)
|
|
15
|
-
> = Effect.fn(
|
|
16
|
-
function*(effect, models) {
|
|
17
|
-
const all = yield* Effect.all(models.map((model) => effect.pipe(Effect.provide(model)))) as Effect.Effect<
|
|
18
|
-
Array<unknown>
|
|
19
|
-
>
|
|
20
|
-
yield* L.user`
|
|
21
|
-
Coalesce the following items into a single item:
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
${all.map((item) => JSON.stringify(item, null, 2)).join("\n\n---")}
|
|
26
|
-
`
|
|
27
|
-
return yield* L.assistant
|
|
28
|
-
},
|
|
29
|
-
)
|
package/patterns/Route.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect"
|
|
2
|
-
import * as Schema from "effect/Schema"
|
|
3
|
-
import * as L from "../L/L.ts"
|
|
4
|
-
import { Thread } from "../Thread.ts"
|
|
5
|
-
|
|
6
|
-
export const byDescription: <R extends Record<string, Effect.All.EffectAny>>(routes: R) => Effect.Effect<
|
|
7
|
-
Effect.Effect.Success<R[keyof R]>,
|
|
8
|
-
([R[keyof R]] extends [never] ? never : Effect.Effect.Error<R[keyof R]>),
|
|
9
|
-
([R[keyof R]] extends [never] ? never : Effect.Effect.Context<R[keyof R]>) | Thread
|
|
10
|
-
> = Effect.fnUntraced(function*(routes) {
|
|
11
|
-
const descriptions = Object.keys(routes)
|
|
12
|
-
const description = yield* L.branch(
|
|
13
|
-
L.user`
|
|
14
|
-
Which of the following descriptions best matches the current conversation?
|
|
15
|
-
|
|
16
|
-
- ${descriptions.join("\n -")}
|
|
17
|
-
`,
|
|
18
|
-
L.assistantSchema(Schema.Literal(...descriptions)),
|
|
19
|
-
)
|
|
20
|
-
return yield* routes[description]!
|
|
21
|
-
})
|
package/util/JsonValue.ts
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect"
|
|
2
|
-
import { pipe } from "effect/Function"
|
|
3
|
-
import * as Option from "effect/Option"
|
|
4
|
-
import * as Schema from "effect/Schema"
|
|
5
|
-
import * as SchemaAST from "effect/SchemaAST"
|
|
6
|
-
|
|
7
|
-
export type JsonValue = null | boolean | number | string | JsonValueArray | JsonValueObject
|
|
8
|
-
|
|
9
|
-
export type JsonValueArray = Array<JsonValue> | ReadonlyArray<JsonValue>
|
|
10
|
-
|
|
11
|
-
export type JsonValueObject = { [key: string]: JsonValue }
|
|
12
|
-
|
|
13
|
-
export const encodeJsonc: <A, I extends JsonValue>(
|
|
14
|
-
schema: Schema.Schema<A, I>,
|
|
15
|
-
) => (value: A) => Effect.Effect<string> = (schema) => {
|
|
16
|
-
const encoder = encodeAst(SchemaAST.encodedBoundAST(schema.ast))
|
|
17
|
-
return (value) => encoder(value, new EncodeJsoncContext(0))
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
class EncodeJsoncContext {
|
|
21
|
-
readonly depth: number
|
|
22
|
-
readonly indentation: string
|
|
23
|
-
readonly childIndentation: string
|
|
24
|
-
constructor(depth: number) {
|
|
25
|
-
this.depth = depth
|
|
26
|
-
this.indentation = " ".repeat(depth * 2)
|
|
27
|
-
this.childIndentation = " ".repeat((depth + 1) * 2)
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
next = () => new EncodeJsoncContext(this.depth + 1)
|
|
31
|
-
|
|
32
|
-
comment = (type: SchemaAST.AST): string =>
|
|
33
|
-
Option.match(SchemaAST.getDescriptionAnnotation(type), {
|
|
34
|
-
onSome: (v) => {
|
|
35
|
-
v = v.trim()
|
|
36
|
-
if (v) {
|
|
37
|
-
return `// ${v}\n${this.childIndentation}`
|
|
38
|
-
}
|
|
39
|
-
return ""
|
|
40
|
-
},
|
|
41
|
-
onNone: () => "",
|
|
42
|
-
})
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const encodeAst = (
|
|
46
|
-
ast: SchemaAST.AST,
|
|
47
|
-
refinement?: SchemaAST.Refinement,
|
|
48
|
-
): (value: unknown, ctx: EncodeJsoncContext) => Effect.Effect<string> => {
|
|
49
|
-
switch (ast._tag) {
|
|
50
|
-
case "TypeLiteral": {
|
|
51
|
-
return Effect.fnUntraced(function*(value, ctx) {
|
|
52
|
-
const props = yield* Effect.all(
|
|
53
|
-
ast.propertySignatures.map(
|
|
54
|
-
Effect.fnUntraced(function*({ name, type }) {
|
|
55
|
-
if (typeof name === "symbol") throw 0
|
|
56
|
-
const child = yield* encodeAst(type)((value as never)[name], ctx.next())
|
|
57
|
-
return `${ctx.comment(refinement ?? type)}${name}: ${child}`
|
|
58
|
-
}),
|
|
59
|
-
),
|
|
60
|
-
).pipe(
|
|
61
|
-
Effect.map((v) => v.join(`,\n${ctx.childIndentation}`)),
|
|
62
|
-
)
|
|
63
|
-
return `{\n${ctx.childIndentation}${props}\n${ctx.indentation}}`
|
|
64
|
-
})
|
|
65
|
-
}
|
|
66
|
-
case "StringKeyword": {
|
|
67
|
-
return (value) => Effect.succeed(`"${value}"`)
|
|
68
|
-
}
|
|
69
|
-
case "BooleanKeyword":
|
|
70
|
-
case "NumberKeyword": {
|
|
71
|
-
return (value) => Effect.succeed(String(value))
|
|
72
|
-
}
|
|
73
|
-
case "Refinement": {
|
|
74
|
-
return encodeAst(ast.from, refinement ?? ast)
|
|
75
|
-
}
|
|
76
|
-
case "UnknownKeyword":
|
|
77
|
-
case "AnyKeyword": {
|
|
78
|
-
return (value, ctx) =>
|
|
79
|
-
Effect.succeed(
|
|
80
|
-
JSON
|
|
81
|
-
.stringify(value, null, 2)
|
|
82
|
-
.split("\n")
|
|
83
|
-
.map((line, i) => i ? ctx.indentation.concat(line) : line)
|
|
84
|
-
.join("\n"),
|
|
85
|
-
)
|
|
86
|
-
}
|
|
87
|
-
case "Union": {
|
|
88
|
-
const { types } = ast
|
|
89
|
-
const guards = types.map((ast) =>
|
|
90
|
-
pipe(
|
|
91
|
-
ast,
|
|
92
|
-
Schema.make,
|
|
93
|
-
Schema.is,
|
|
94
|
-
)
|
|
95
|
-
)
|
|
96
|
-
return (value, ctx) => {
|
|
97
|
-
for (let i = 0; i < types.length; i++) {
|
|
98
|
-
const guard = guards[i]!
|
|
99
|
-
if (guard(value)) {
|
|
100
|
-
return encodeAst(types[i]!)(value, ctx)
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
throw 0
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
case "Literal": {
|
|
107
|
-
const { literal } = ast
|
|
108
|
-
const v = (() => {
|
|
109
|
-
switch (typeof literal) {
|
|
110
|
-
case "boolean":
|
|
111
|
-
case "number": {
|
|
112
|
-
return String(literal)
|
|
113
|
-
}
|
|
114
|
-
case "string": {
|
|
115
|
-
return `"${literal}"`
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
if (literal === null) {
|
|
119
|
-
return "null"
|
|
120
|
-
}
|
|
121
|
-
console.log({ literal })
|
|
122
|
-
throw 0
|
|
123
|
-
})()
|
|
124
|
-
return () => Effect.succeed(v)
|
|
125
|
-
}
|
|
126
|
-
case "TupleType": {
|
|
127
|
-
const { elements, rest } = ast
|
|
128
|
-
return (value, ctx) =>
|
|
129
|
-
Effect.all((elements.length ? elements : rest).map(
|
|
130
|
-
Effect.fnUntraced(function*(element, i) {
|
|
131
|
-
const child = yield* encodeAst(element.type)((value as never)[i]!, ctx.next())
|
|
132
|
-
return `${ctx.comment(refinement ?? element.type)}${child}`
|
|
133
|
-
}),
|
|
134
|
-
)).pipe(
|
|
135
|
-
Effect.map((v) => `[\n${ctx.childIndentation}${v.join(`,\n${ctx.childIndentation}`)}\n${ctx.indentation}]`),
|
|
136
|
-
)
|
|
137
|
-
}
|
|
138
|
-
case "Suspend": {
|
|
139
|
-
return encodeAst(ast.f())
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
console.log({ ast })
|
|
143
|
-
throw 0
|
|
144
|
-
}
|