liminal 0.10.0 → 0.11.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/CHANGELOG.md +6 -0
- package/L.ts +8 -2
- package/LEvent.ts +13 -7
- package/Sequence.ts +14 -0
- package/Strand.ts +18 -39
- package/assistant.ts +3 -4
- package/assistantStruct.ts +2 -1
- package/branch.ts +26 -0
- package/clear.ts +15 -0
- package/dist/L.d.ts +8 -2
- package/dist/L.js +8 -2
- package/dist/L.js.map +1 -1
- package/dist/LEvent.d.ts +12 -8
- package/dist/LEvent.js +8 -5
- package/dist/LEvent.js.map +1 -1
- package/dist/Sequence.d.ts +2 -0
- package/dist/Sequence.js +2 -0
- package/dist/Sequence.js.map +1 -0
- package/dist/Strand.d.ts +18 -13
- package/dist/Strand.js +2 -20
- package/dist/Strand.js.map +1 -1
- package/dist/assistant.js +3 -4
- package/dist/assistant.js.map +1 -1
- package/dist/assistantStruct.js +2 -1
- package/dist/assistantStruct.js.map +1 -1
- package/dist/branch.d.ts +4 -0
- package/dist/branch.js +18 -0
- package/dist/branch.js.map +1 -0
- package/dist/clear.d.ts +5 -0
- package/dist/clear.js +15 -0
- package/dist/clear.js.map +1 -0
- package/dist/events.d.ts +1 -1
- package/dist/events.js +1 -1
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/JsonValue.d.ts +5 -0
- package/dist/internal/JsonValue.js +2 -0
- package/dist/internal/JsonValue.js.map +1 -0
- package/dist/{Taggable.d.ts → internal/Taggable.d.ts} +1 -1
- package/dist/internal/Taggable.js.map +1 -0
- package/dist/messages.d.ts +5 -0
- package/dist/messages.js +5 -0
- package/dist/messages.js.map +1 -0
- package/dist/pretty.d.ts +2 -0
- package/dist/pretty.js +37 -0
- package/dist/pretty.js.map +1 -0
- package/dist/reduce.d.ts +2 -4
- package/dist/reduce.js +10 -29
- package/dist/reduce.js.map +1 -1
- package/dist/sequence_.d.ts +2 -0
- package/dist/sequence_.js +5 -0
- package/dist/sequence_.js.map +1 -0
- package/dist/strand_.d.ts +4 -0
- package/dist/strand_.js +18 -0
- package/dist/strand_.js.map +1 -0
- package/dist/system.d.ts +5 -0
- package/dist/system.js +11 -0
- package/dist/system.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/user.d.ts +1 -1
- package/dist/user.js +1 -1
- package/dist/user.js.map +1 -1
- package/dist/userJson.d.ts +6 -0
- package/dist/userJson.js +8 -0
- package/dist/userJson.js.map +1 -0
- package/events.ts +1 -1
- package/index.ts +1 -0
- package/internal/JsonValue.ts +5 -0
- package/{Taggable.ts → internal/Taggable.ts} +1 -1
- package/messages.ts +9 -0
- package/package.json +8 -6
- package/pretty.ts +41 -0
- package/reduce.ts +21 -45
- package/sequence_.ts +9 -0
- package/strand_.ts +25 -0
- package/system.ts +13 -0
- package/user.ts +1 -1
- package/userJson.ts +12 -0
- package/dist/Taggable.js.map +0 -1
- package/dist/turn.d.ts +0 -7
- package/dist/turn.js +0 -21
- package/dist/turn.js.map +0 -1
- package/dist/unsafeSet.d.ts +0 -5
- package/dist/unsafeSet.js +0 -13
- package/dist/unsafeSet.js.map +0 -1
- package/turn.ts +0 -25
- package/unsafeSet.ts +0 -15
- /package/dist/{Taggable.js → internal/Taggable.js} +0 -0
package/dist/messages.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../messages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,kDAAkD;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAiD,MAAM,CAAC,GAAG,CAC9E,MAAM,EACN,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAC1C,CAAA"}
|
package/dist/pretty.d.ts
ADDED
package/dist/pretty.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
const GRAY = "\x1b[90m";
|
|
2
|
+
const RESET = "\x1b[0m";
|
|
3
|
+
const BOLD = "\x1b[1m";
|
|
4
|
+
const GRAY_BG = "\x1b[47m";
|
|
5
|
+
export const pretty = (event) => {
|
|
6
|
+
let text = `${GRAY}${event._tag}${RESET}`;
|
|
7
|
+
switch (event._tag) {
|
|
8
|
+
case "MessagesAppended": {
|
|
9
|
+
text += event.messages.map(formatMessage).join("\n");
|
|
10
|
+
break;
|
|
11
|
+
}
|
|
12
|
+
case "MessagesCleared": {
|
|
13
|
+
text += `\n${event.cleared.length} messages cleared.`;
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return text;
|
|
18
|
+
};
|
|
19
|
+
const formatMessage = ({ _tag, parts }) => {
|
|
20
|
+
let value = "";
|
|
21
|
+
for (const part of parts) {
|
|
22
|
+
value += `\n${BOLD}${_tag}\n${GRAY_BG}`;
|
|
23
|
+
switch (part._tag) {
|
|
24
|
+
case "TextPart": {
|
|
25
|
+
value += `${part.text}`;
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
default: {
|
|
29
|
+
value += `${JSON.stringify(part, null, 2)}`;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
value += RESET;
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=pretty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pretty.js","sourceRoot":"","sources":["../pretty.ts"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAAG,UAAU,CAAA;AACvB,MAAM,KAAK,GAAG,SAAS,CAAA;AACvB,MAAM,IAAI,GAAG,SAAS,CAAA;AACtB,MAAM,OAAO,GAAG,UAAU,CAAA;AAE1B,MAAM,CAAC,MAAM,MAAM,GAA6C,CAAC,KAAK,EAAE,EAAE;IACxE,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,CAAA;IACzC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpD,MAAK;QACP,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,IAAI,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,oBAAoB,CAAA;YACrD,MAAK;QACP,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAW,EAAU,EAAE;IACzD,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,OAAO,EAAE,CAAA;QACvC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBACvB,MAAK;YACP,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,KAAK,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAA;gBAC3C,MAAK;YACP,CAAC;QACH,CAAC;QACD,KAAK,IAAI,KAAK,CAAA;IAChB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
|
package/dist/reduce.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
import * as Option from "effect/Option";
|
|
3
|
-
import type { YieldWrap } from "effect/Utils";
|
|
4
2
|
import { Strand } from "./Strand.ts";
|
|
5
|
-
/**
|
|
6
|
-
export declare const reduce: <
|
|
3
|
+
/** Sequentially reduce the current strand's messages in chronological order. */
|
|
4
|
+
export declare const reduce: <E, R, E1, R1>(reducer: Effect.Effect<Effect.Effect<void, E1, R1>, E, R>) => Effect.Effect<void, E | E1, R | R1 | Strand>;
|
package/dist/reduce.js
CHANGED
|
@@ -1,39 +1,20 @@
|
|
|
1
|
-
import { Message } from "@effect/ai/AiInput";
|
|
2
1
|
import * as Effect from "effect/Effect";
|
|
3
|
-
import * as Option from "effect/Option";
|
|
4
|
-
import * as PubSub from "effect/PubSub";
|
|
5
2
|
import { append } from "./append.js";
|
|
6
|
-
import {
|
|
3
|
+
import { clear } from "./clear.js";
|
|
7
4
|
import { Strand } from "./Strand.js";
|
|
8
|
-
import {
|
|
9
|
-
/**
|
|
5
|
+
import { strand } from "./strand_.js";
|
|
6
|
+
/** Sequentially reduce the current strand's messages in chronological order. */
|
|
10
7
|
export const reduce = Effect.fnUntraced(function* (reducer) {
|
|
11
|
-
const
|
|
12
|
-
if (!
|
|
8
|
+
const parent = yield* Strand;
|
|
9
|
+
if (!parent.messages.length || parent.messages.length === 1)
|
|
13
10
|
return;
|
|
14
|
-
const [m0, m1, ...mRest] =
|
|
15
|
-
let
|
|
16
|
-
.gen(function* () {
|
|
17
|
-
yield* append(m0, m1);
|
|
18
|
-
return yield* Effect.gen(reducer);
|
|
19
|
-
})
|
|
20
|
-
.pipe(Effect.provide(Strand.new()));
|
|
11
|
+
const [m0, m1, ...mRest] = parent.messages;
|
|
12
|
+
let acc = yield* strand(append(m0, m1), reducer);
|
|
21
13
|
while (mRest.length) {
|
|
22
|
-
|
|
23
|
-
.gen(function* () {
|
|
24
|
-
yield* prelude;
|
|
25
|
-
yield* append(mRest.pop());
|
|
26
|
-
return yield* Effect.gen(reducer);
|
|
27
|
-
})
|
|
28
|
-
.pipe(Effect.provide(Strand.new()));
|
|
14
|
+
acc = yield* strand(acc, append(mRest.pop()), reducer);
|
|
29
15
|
}
|
|
30
|
-
|
|
31
|
-
yield*
|
|
32
|
-
messages,
|
|
33
|
-
events: yield* PubSub.unbounded(),
|
|
34
|
-
})));
|
|
35
|
-
const previous = yield* unsafeSet(messages);
|
|
36
|
-
yield* strand.events.publish(MessagesReduced.make({ previous, messages }));
|
|
16
|
+
yield* clear;
|
|
17
|
+
yield* acc;
|
|
37
18
|
return;
|
|
38
19
|
});
|
|
39
20
|
//# sourceMappingURL=reduce.js.map
|
package/dist/reduce.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduce.js","sourceRoot":"","sources":["../reduce.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"reduce.js","sourceRoot":"","sources":["../reduce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,gFAAgF;AAChF,MAAM,CAAC,MAAM,MAAM,GAMf,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC,OAAO;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAA;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IACnE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAA;IAC1C,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CACrB,MAAM,CAAC,EAAG,EAAE,EAAG,CAAC,EAChB,OAAO,CACR,CAAA;IACD,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CACjB,GAAG,EACH,MAAM,CAAC,KAAK,CAAC,GAAG,EAAG,CAAC,EACpB,OAAO,CACR,CAAA;IACH,CAAC;IACD,KAAK,CAAC,CAAC,KAAK,CAAA;IACZ,KAAK,CAAC,CAAC,GAAG,CAAA;IACV,OAAM;AACR,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence_.js","sourceRoot":"","sources":["../sequence_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,MAAM,CAAC,MAAM,QAAQ,GAAa,CAAC,GAAG,KAAK,EAAE,EAAE,CAC7C,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;IAChB,WAAW,EAAE,CAAC;CACf,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAG,CAAU,CACnD,CAAA"}
|
package/dist/strand_.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { flow } from "effect/Function";
|
|
3
|
+
import * as Option from "effect/Option";
|
|
4
|
+
import * as PubSub from "effect/PubSub";
|
|
5
|
+
import {} from "./Sequence.js";
|
|
6
|
+
import { sequence } from "./sequence_.js";
|
|
7
|
+
import { Strand } from "./Strand.js";
|
|
8
|
+
/** Isolate the effect with a new strand in context. */
|
|
9
|
+
export const strand = flow(sequence, Effect.provideServiceEffect(Strand, Effect.gen(function* () {
|
|
10
|
+
return Strand.of({
|
|
11
|
+
parent: yield* Effect.serviceOption(Strand),
|
|
12
|
+
events: yield* PubSub.unbounded(),
|
|
13
|
+
system: Option.none(),
|
|
14
|
+
messages: [],
|
|
15
|
+
tools: [],
|
|
16
|
+
});
|
|
17
|
+
})));
|
|
18
|
+
//# sourceMappingURL=strand_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strand_.js","sourceRoot":"","sources":["../strand_.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAiB,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,uDAAuD;AACvD,MAAM,CAAC,MAAM,MAAM,GAAqB,IAAI,CAC1C,QAAQ,EACR,MAAM,CAAC,oBAAoB,CACzB,MAAM,EACN,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,OAAO,MAAM,CAAC,EAAE,CAAC;QACf,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;QAC3C,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAU;QACzC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;QACrB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,EAAE;KACV,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CACF,CAAA"}
|
package/dist/system.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Option from "effect/Option";
|
|
3
|
+
import { type TaggableNullable } from "./internal/Taggable.ts";
|
|
4
|
+
import { Strand } from "./Strand.ts";
|
|
5
|
+
export declare const system: TaggableNullable<Effect.Effect<Option.Option<string>, never, Strand>>;
|
package/dist/system.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Option from "effect/Option";
|
|
3
|
+
import { normalize } from "./internal/Taggable.js";
|
|
4
|
+
import { Strand } from "./Strand.js";
|
|
5
|
+
export const system = Effect.fnUntraced(function* (a0, ...aRest) {
|
|
6
|
+
const conversation = yield* Strand;
|
|
7
|
+
const { system } = conversation;
|
|
8
|
+
conversation.system = a0 ? Option.some(normalize(a0, aRest)) : Option.none();
|
|
9
|
+
return system;
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,SAAS,EAAyB,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,MAAM,GAA0E,MAAM,CAAC,UAAU,CAC5G,QAAQ,CAAC,EAAC,EAAE,EAAE,GAAG,KAAK;IACpB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,MAAM,CAAA;IAClC,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAA;IAC/B,YAAY,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC5E,OAAO,MAAM,CAAA;AACf,CAAC,CACF,CAAA"}
|