@laserdata/laser-sdk 0.5.3 → 0.6.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/README.md +105 -79
- package/dist/agent/agdx.d.ts +8 -3
- package/dist/agent/agdx.d.ts.map +1 -1
- package/dist/agent/agdx.js +39 -22
- package/dist/agent/agdx.js.map +1 -1
- package/dist/agent/builder.d.ts +25 -15
- package/dist/agent/builder.d.ts.map +1 -1
- package/dist/agent/builder.js +103 -59
- package/dist/agent/builder.js.map +1 -1
- package/dist/agent/context.d.ts +3 -6
- package/dist/agent/context.d.ts.map +1 -1
- package/dist/agent/context.js +17 -9
- package/dist/agent/context.js.map +1 -1
- package/dist/agent/contract.d.ts +2 -2
- package/dist/agent/contract.d.ts.map +1 -1
- package/dist/agent/contract.js +10 -6
- package/dist/agent/contract.js.map +1 -1
- package/dist/agent/memory-handler.d.ts +25 -0
- package/dist/agent/memory-handler.d.ts.map +1 -0
- package/dist/agent/memory-handler.js +43 -0
- package/dist/agent/memory-handler.js.map +1 -0
- package/dist/agent/registry.d.ts +3 -10
- package/dist/agent/registry.d.ts.map +1 -1
- package/dist/agent/registry.js +22 -19
- package/dist/agent/registry.js.map +1 -1
- package/dist/agent/reliable-consumer.d.ts +19 -9
- package/dist/agent/reliable-consumer.d.ts.map +1 -1
- package/dist/agent/reliable-consumer.js +193 -54
- package/dist/agent/reliable-consumer.js.map +1 -1
- package/dist/agent/replies.d.ts +6 -0
- package/dist/agent/replies.d.ts.map +1 -1
- package/dist/agent/replies.js +55 -4
- package/dist/agent/replies.js.map +1 -1
- package/dist/agent/router.d.ts +1 -1
- package/dist/agent/router.d.ts.map +1 -1
- package/dist/agent/router.js +5 -19
- package/dist/agent/router.js.map +1 -1
- package/dist/agent/scope.d.ts +7 -3
- package/dist/agent/scope.d.ts.map +1 -1
- package/dist/agent/scope.js +11 -1
- package/dist/agent/scope.js.map +1 -1
- package/dist/agent/timer.d.ts +6 -0
- package/dist/agent/timer.d.ts.map +1 -0
- package/dist/agent/timer.js +21 -0
- package/dist/agent/timer.js.map +1 -0
- package/dist/agent/workflow.d.ts +16 -19
- package/dist/agent/workflow.d.ts.map +1 -1
- package/dist/agent/workflow.js +17 -6
- package/dist/agent/workflow.js.map +1 -1
- package/dist/blob.d.ts +2 -3
- package/dist/blob.d.ts.map +1 -1
- package/dist/blob.js.map +1 -1
- package/dist/bridges/a2a.d.ts +34 -23
- package/dist/bridges/a2a.d.ts.map +1 -1
- package/dist/bridges/a2a.js +29 -19
- package/dist/bridges/a2a.js.map +1 -1
- package/dist/bridges/hops.d.ts +1 -1
- package/dist/bridges/hops.d.ts.map +1 -1
- package/dist/bridges/hops.js +1 -1
- package/dist/bridges/hops.js.map +1 -1
- package/dist/bridges/mcp.d.ts +27 -7
- package/dist/bridges/mcp.d.ts.map +1 -1
- package/dist/bridges/mcp.js +24 -9
- package/dist/bridges/mcp.js.map +1 -1
- package/dist/client/bytes.d.ts +5 -0
- package/dist/client/bytes.d.ts.map +1 -1
- package/dist/client/bytes.js +15 -0
- package/dist/client/bytes.js.map +1 -1
- package/dist/client/capabilities.d.ts +25 -13
- package/dist/client/capabilities.d.ts.map +1 -1
- package/dist/client/capabilities.js +145 -123
- package/dist/client/capabilities.js.map +1 -1
- package/dist/client/error-classify.d.ts +57 -0
- package/dist/client/error-classify.d.ts.map +1 -0
- package/dist/client/error-classify.js +347 -0
- package/dist/client/error-classify.js.map +1 -0
- package/dist/client/errors.d.ts +113 -40
- package/dist/client/errors.d.ts.map +1 -1
- package/dist/client/errors.js +191 -53
- package/dist/client/errors.js.map +1 -1
- package/dist/client/internals.d.ts +1 -0
- package/dist/client/internals.d.ts.map +1 -1
- package/dist/client/internals.js +1 -0
- package/dist/client/internals.js.map +1 -1
- package/dist/client/laser.d.ts +62 -46
- package/dist/client/laser.d.ts.map +1 -1
- package/dist/client/laser.js +206 -120
- package/dist/client/laser.js.map +1 -1
- package/dist/client/managed.d.ts +3 -0
- package/dist/client/managed.d.ts.map +1 -1
- package/dist/client/managed.js +70 -3
- package/dist/client/managed.js.map +1 -1
- package/dist/context-scope.d.ts +25 -9
- package/dist/context-scope.d.ts.map +1 -1
- package/dist/context-scope.js +36 -9
- package/dist/context-scope.js.map +1 -1
- package/dist/context.d.ts +33 -16
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +174 -95
- package/dist/context.js.map +1 -1
- package/dist/conversation-state.d.ts +1 -1
- package/dist/conversation-state.d.ts.map +1 -1
- package/dist/conversation-state.js +35 -16
- package/dist/conversation-state.js.map +1 -1
- package/dist/govern.d.ts +24 -5
- package/dist/govern.d.ts.map +1 -1
- package/dist/govern.js +116 -28
- package/dist/govern.js.map +1 -1
- package/dist/iggy/apache-iggy.d.ts +59 -56
- package/dist/iggy/apache-iggy.d.ts.map +1 -1
- package/dist/iggy/apache-iggy.js +300 -137
- package/dist/iggy/apache-iggy.js.map +1 -1
- package/dist/index.d.ts +97 -65
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -30
- package/dist/index.js.map +1 -1
- package/dist/intent.d.ts +16 -2
- package/dist/intent.d.ts.map +1 -1
- package/dist/intent.js +50 -18
- package/dist/intent.js.map +1 -1
- package/dist/managed/coordination.d.ts +82 -0
- package/dist/managed/coordination.d.ts.map +1 -0
- package/dist/managed/coordination.js +367 -0
- package/dist/managed/coordination.js.map +1 -0
- package/dist/managed/destinations.d.ts +4 -3
- package/dist/managed/destinations.d.ts.map +1 -1
- package/dist/managed/destinations.js +29 -13
- package/dist/managed/destinations.js.map +1 -1
- package/dist/managed/filters.d.ts +5 -5
- package/dist/managed/filters.d.ts.map +1 -1
- package/dist/managed/filters.js +39 -22
- package/dist/managed/filters.js.map +1 -1
- package/dist/managed/forks.d.ts +8 -11
- package/dist/managed/forks.d.ts.map +1 -1
- package/dist/managed/forks.js +33 -13
- package/dist/managed/forks.js.map +1 -1
- package/dist/managed/graph.d.ts +1 -4
- package/dist/managed/graph.d.ts.map +1 -1
- package/dist/managed/graph.js +5 -3
- package/dist/managed/graph.js.map +1 -1
- package/dist/managed/kv.d.ts +26 -14
- package/dist/managed/kv.d.ts.map +1 -1
- package/dist/managed/kv.js +88 -61
- package/dist/managed/kv.js.map +1 -1
- package/dist/managed/projections.d.ts +5 -8
- package/dist/managed/projections.d.ts.map +1 -1
- package/dist/managed/projections.js +22 -2
- package/dist/managed/projections.js.map +1 -1
- package/dist/managed/query.d.ts +20 -6
- package/dist/managed/query.d.ts.map +1 -1
- package/dist/managed/query.js +97 -24
- package/dist/managed/query.js.map +1 -1
- package/dist/managed/runs.d.ts +2 -4
- package/dist/managed/runs.d.ts.map +1 -1
- package/dist/managed/runs.js +9 -1
- package/dist/managed/runs.js.map +1 -1
- package/dist/managed/watch.d.ts +2 -4
- package/dist/managed/watch.d.ts.map +1 -1
- package/dist/managed/watch.js +9 -1
- package/dist/managed/watch.js.map +1 -1
- package/dist/memory/handle.d.ts +75 -22
- package/dist/memory/handle.d.ts.map +1 -1
- package/dist/memory/handle.js +232 -58
- package/dist/memory/handle.js.map +1 -1
- package/dist/memory/log-memory.d.ts +24 -12
- package/dist/memory/log-memory.d.ts.map +1 -1
- package/dist/memory/log-memory.js +214 -100
- package/dist/memory/log-memory.js.map +1 -1
- package/dist/memory/topic.d.ts +2 -2
- package/dist/memory/topic.d.ts.map +1 -1
- package/dist/memory/topic.js +7 -5
- package/dist/memory/topic.js.map +1 -1
- package/dist/memory/types.d.ts +41 -5
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +44 -18
- package/dist/memory/types.js.map +1 -1
- package/dist/memory/vector-memory.d.ts +8 -6
- package/dist/memory/vector-memory.d.ts.map +1 -1
- package/dist/memory/vector-memory.js +65 -34
- package/dist/memory/vector-memory.js.map +1 -1
- package/dist/memory.d.ts +6 -5
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +4 -4
- package/dist/memory.js.map +1 -1
- package/dist/provenance/agent-topic.d.ts +3 -1
- package/dist/provenance/agent-topic.d.ts.map +1 -1
- package/dist/provenance/agent-topic.js +3 -1
- package/dist/provenance/agent-topic.js.map +1 -1
- package/dist/provenance/provenance.d.ts +3 -3
- package/dist/provenance/provenance.d.ts.map +1 -1
- package/dist/provenance/provenance.js +30 -18
- package/dist/provenance/provenance.js.map +1 -1
- package/dist/runtime/clock.d.ts +3 -0
- package/dist/runtime/clock.d.ts.map +1 -1
- package/dist/runtime/clock.js +16 -3
- package/dist/runtime/clock.js.map +1 -1
- package/dist/schema-codecs.d.ts +7 -3
- package/dist/schema-codecs.d.ts.map +1 -1
- package/dist/schema-codecs.js +80 -12
- package/dist/schema-codecs.js.map +1 -1
- package/dist/session.d.ts +27 -18
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +95 -37
- package/dist/session.js.map +1 -1
- package/dist/signing.d.ts +11 -5
- package/dist/signing.d.ts.map +1 -1
- package/dist/signing.js +64 -21
- package/dist/signing.js.map +1 -1
- package/dist/snapshot.d.ts +10 -2
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +62 -28
- package/dist/snapshot.js.map +1 -1
- package/dist/state-store.d.ts +1 -1
- package/dist/state-store.d.ts.map +1 -1
- package/dist/state-store.js.map +1 -1
- package/dist/stream/batching.d.ts +81 -0
- package/dist/stream/batching.d.ts.map +1 -0
- package/dist/stream/batching.js +210 -0
- package/dist/stream/batching.js.map +1 -0
- package/dist/stream/bson.d.ts +3 -0
- package/dist/stream/bson.d.ts.map +1 -0
- package/dist/stream/bson.js +245 -0
- package/dist/stream/bson.js.map +1 -0
- package/dist/stream/codecs.d.ts +58 -6
- package/dist/stream/codecs.d.ts.map +1 -1
- package/dist/stream/codecs.js +143 -59
- package/dist/stream/codecs.js.map +1 -1
- package/dist/stream/consumer-group.d.ts +13 -10
- package/dist/stream/consumer-group.d.ts.map +1 -1
- package/dist/stream/consumer-group.js +91 -31
- package/dist/stream/consumer-group.js.map +1 -1
- package/dist/stream/consumer-start.d.ts +17 -0
- package/dist/stream/consumer-start.d.ts.map +1 -0
- package/dist/stream/consumer-start.js +2 -0
- package/dist/stream/consumer-start.js.map +1 -0
- package/dist/stream/consumer.d.ts +166 -24
- package/dist/stream/consumer.d.ts.map +1 -1
- package/dist/stream/consumer.js +451 -68
- package/dist/stream/consumer.js.map +1 -1
- package/dist/stream/cursor.d.ts +5 -12
- package/dist/stream/cursor.d.ts.map +1 -1
- package/dist/stream/cursor.js +34 -8
- package/dist/stream/cursor.js.map +1 -1
- package/dist/stream/header-value.d.ts +61 -15
- package/dist/stream/header-value.d.ts.map +1 -1
- package/dist/stream/header-value.js.map +1 -1
- package/dist/stream/message.d.ts +17 -0
- package/dist/stream/message.d.ts.map +1 -0
- package/dist/stream/message.js +9 -0
- package/dist/stream/message.js.map +1 -0
- package/dist/stream/producer.d.ts +127 -11
- package/dist/stream/producer.d.ts.map +1 -1
- package/dist/stream/producer.js +401 -36
- package/dist/stream/producer.js.map +1 -1
- package/dist/stream/publish.d.ts +6 -15
- package/dist/stream/publish.d.ts.map +1 -1
- package/dist/stream/publish.js +18 -28
- package/dist/stream/publish.js.map +1 -1
- package/dist/stream/record.d.ts +4 -6
- package/dist/stream/record.d.ts.map +1 -1
- package/dist/stream/record.js +4 -3
- package/dist/stream/record.js.map +1 -1
- package/dist/stream/routing.d.ts +12 -0
- package/dist/stream/routing.d.ts.map +1 -1
- package/dist/stream/routing.js +6 -1
- package/dist/stream/routing.js.map +1 -1
- package/dist/stream/stream.d.ts +1 -4
- package/dist/stream/stream.d.ts.map +1 -1
- package/dist/stream/stream.js +5 -1
- package/dist/stream/stream.js.map +1 -1
- package/dist/stream/topic.d.ts +22 -23
- package/dist/stream/topic.d.ts.map +1 -1
- package/dist/stream/topic.js +90 -30
- package/dist/stream/topic.js.map +1 -1
- package/dist/stream/typed-topic.d.ts +9 -13
- package/dist/stream/typed-topic.d.ts.map +1 -1
- package/dist/stream/typed-topic.js +25 -10
- package/dist/stream/typed-topic.js.map +1 -1
- package/dist/swarm.d.ts +0 -1
- package/dist/swarm.d.ts.map +1 -1
- package/dist/swarm.js +1 -0
- package/dist/swarm.js.map +1 -1
- package/dist/testing.d.ts +3 -3
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +3 -3
- package/dist/testing.js.map +1 -1
- package/dist/types/ids.d.ts +17 -2
- package/dist/types/ids.d.ts.map +1 -1
- package/dist/types/ids.js +34 -14
- package/dist/types/ids.js.map +1 -1
- package/dist/wire/agent.d.ts +22 -0
- package/dist/wire/agent.d.ts.map +1 -1
- package/dist/wire/agent.js +80 -25
- package/dist/wire/agent.js.map +1 -1
- package/dist/wire/authz.d.ts +35 -1
- package/dist/wire/authz.d.ts.map +1 -1
- package/dist/wire/authz.js +45 -15
- package/dist/wire/authz.js.map +1 -1
- package/dist/wire/cbor.d.ts.map +1 -1
- package/dist/wire/cbor.js +13 -2
- package/dist/wire/cbor.js.map +1 -1
- package/dist/wire/checkpoint.d.ts +17 -12
- package/dist/wire/checkpoint.d.ts.map +1 -1
- package/dist/wire/checkpoint.js +28 -3
- package/dist/wire/checkpoint.js.map +1 -1
- package/dist/wire/control.d.ts +82 -0
- package/dist/wire/control.d.ts.map +1 -1
- package/dist/wire/control.js +219 -0
- package/dist/wire/control.js.map +1 -1
- package/dist/wire/filter-eval.d.ts +41 -7
- package/dist/wire/filter-eval.d.ts.map +1 -1
- package/dist/wire/filter-eval.js +26 -28
- package/dist/wire/filter-eval.js.map +1 -1
- package/dist/wire/filter.d.ts +51 -17
- package/dist/wire/filter.d.ts.map +1 -1
- package/dist/wire/filter.js +99 -10
- package/dist/wire/filter.js.map +1 -1
- package/dist/wire/fork.d.ts +14 -1
- package/dist/wire/fork.d.ts.map +1 -1
- package/dist/wire/fork.js +19 -8
- package/dist/wire/fork.js.map +1 -1
- package/dist/wire/graph.d.ts +3 -0
- package/dist/wire/graph.d.ts.map +1 -1
- package/dist/wire/graph.js +18 -4
- package/dist/wire/graph.js.map +1 -1
- package/dist/wire/hello.d.ts +4 -1
- package/dist/wire/hello.d.ts.map +1 -1
- package/dist/wire/hello.js +13 -3
- package/dist/wire/hello.js.map +1 -1
- package/dist/wire/index.d.ts +4 -1
- package/dist/wire/index.d.ts.map +1 -1
- package/dist/wire/index.js +4 -1
- package/dist/wire/index.js.map +1 -1
- package/dist/wire/kv.d.ts +37 -2
- package/dist/wire/kv.d.ts.map +1 -1
- package/dist/wire/kv.js +36 -18
- package/dist/wire/kv.js.map +1 -1
- package/dist/wire/query.d.ts +6 -0
- package/dist/wire/query.d.ts.map +1 -1
- package/dist/wire/query.js +38 -12
- package/dist/wire/query.js.map +1 -1
- package/dist/wire/schema.d.ts +29 -6
- package/dist/wire/schema.d.ts.map +1 -1
- package/dist/wire/schema.js +61 -26
- package/dist/wire/schema.js.map +1 -1
- package/dist/wire/snapshot.js +1 -1
- package/dist/wire/snapshot.js.map +1 -1
- package/dist/wire/value.d.ts +10 -2
- package/dist/wire/value.d.ts.map +1 -1
- package/dist/wire/value.js +29 -3
- package/dist/wire/value.js.map +1 -1
- package/package.json +2 -3
- package/dist/stream/polling-strategy.d.ts +0 -14
- package/dist/stream/polling-strategy.d.ts.map +0 -1
- package/dist/stream/polling-strategy.js +0 -2
- package/dist/stream/polling-strategy.js.map +0 -1
package/dist/context.d.ts
CHANGED
|
@@ -2,12 +2,20 @@ import type { Laser } from "./client/laser.js";
|
|
|
2
2
|
import type { Provenance } from "./provenance/provenance.js";
|
|
3
3
|
import type { AgentId, ConversationId, MessageId } from "./types/ids.js";
|
|
4
4
|
import type { AgentEnvelope } from "./wire/agent.js";
|
|
5
|
+
/**
|
|
6
|
+
* The most raw records one context read examines in each partition, the same
|
|
7
|
+
* window the Rust and Python SDKs use. An open read takes the newest records
|
|
8
|
+
* before the current tail, and a point-in-time read the newest records before
|
|
9
|
+
* the checkpoint, then keeps the ones of the conversation. Turns older than the
|
|
10
|
+
* window on a busy shared partition are outside the read, so a long
|
|
11
|
+
* conversation saves state with a checkpoint and replays from it.
|
|
12
|
+
*/
|
|
13
|
+
export declare const CONTEXT_READ_WINDOW = 10000;
|
|
5
14
|
export interface ContextMessage {
|
|
6
15
|
readonly id: MessageId;
|
|
7
16
|
readonly provenance: Provenance;
|
|
8
17
|
readonly payload: Uint8Array;
|
|
9
18
|
readonly envelope?: AgentEnvelope;
|
|
10
|
-
readonly timestampMicros: bigint;
|
|
11
19
|
/** The name of the topic the message was read from. */
|
|
12
20
|
readonly topic: string;
|
|
13
21
|
}
|
|
@@ -18,16 +26,22 @@ export interface ContextMessage {
|
|
|
18
26
|
export declare class Checkpoint {
|
|
19
27
|
private readonly perTopic;
|
|
20
28
|
private constructor();
|
|
21
|
-
static empty(): Checkpoint;
|
|
22
|
-
static capture(laser: Laser, topics: readonly string[]): Promise<Checkpoint>;
|
|
23
29
|
/** The per-partition offsets for `topic`, or `undefined` when the checkpoint
|
|
24
30
|
* was not taken over that topic. */
|
|
25
31
|
topicOffsets(topic: string): ReadonlyMap<number, bigint> | undefined;
|
|
26
|
-
get topics(): readonly string[];
|
|
27
32
|
isEmpty(): boolean;
|
|
28
|
-
|
|
33
|
+
/** The Rust and Python JSON shape, `{"per_topic": {topic: {partition: offset}}}`,
|
|
34
|
+
* with every offset an exact JSON integer. */
|
|
35
|
+
toJSON(): {
|
|
36
|
+
readonly per_topic: Readonly<Record<string, Readonly<Record<string, unknown>>>>;
|
|
37
|
+
};
|
|
38
|
+
/** Reads `toJSON` output, as a JSON string or an already parsed value. */
|
|
29
39
|
static fromJSON(value: unknown): Checkpoint;
|
|
30
40
|
}
|
|
41
|
+
/** The current tail of `topics` on `laser`'s default stream, one entry per
|
|
42
|
+
* topic. Fold up to it with the `at` replay bound or resume after it with
|
|
43
|
+
* `from-checkpoint`. */
|
|
44
|
+
export declare function contextCheckpoint(laser: Laser, topics: readonly string[]): Promise<Checkpoint>;
|
|
31
45
|
export interface ContextPolicy {
|
|
32
46
|
select(history: readonly ContextMessage[]): readonly ContextMessage[];
|
|
33
47
|
}
|
|
@@ -41,18 +55,18 @@ export declare class RoleFilter implements ContextPolicy {
|
|
|
41
55
|
constructor(agents: Iterable<AgentId>);
|
|
42
56
|
select(history: readonly ContextMessage[]): readonly ContextMessage[];
|
|
43
57
|
}
|
|
44
|
-
export declare class
|
|
58
|
+
export declare class Chain implements ContextPolicy {
|
|
45
59
|
readonly policies: readonly ContextPolicy[];
|
|
46
60
|
constructor(policies: readonly ContextPolicy[]);
|
|
47
61
|
select(history: readonly ContextMessage[]): readonly ContextMessage[];
|
|
48
62
|
}
|
|
49
63
|
export declare class TokenBudget implements ContextPolicy {
|
|
50
|
-
readonly maxTokens
|
|
64
|
+
private readonly maxTokens;
|
|
51
65
|
private readonly estimate;
|
|
52
66
|
constructor(maxTokens: number, estimate?: (message: ContextMessage) => number);
|
|
53
67
|
select(history: readonly ContextMessage[]): readonly ContextMessage[];
|
|
54
68
|
}
|
|
55
|
-
interface ContextAssemblerOptions {
|
|
69
|
+
export interface ContextAssemblerOptions {
|
|
56
70
|
readonly conversation: ConversationId;
|
|
57
71
|
readonly acrossSubconversations: boolean;
|
|
58
72
|
readonly topics: readonly string[];
|
|
@@ -62,19 +76,20 @@ interface ContextAssemblerOptions {
|
|
|
62
76
|
readonly toCheckpoint?: Checkpoint;
|
|
63
77
|
}
|
|
64
78
|
export declare class ContextAssemblerBuilder {
|
|
65
|
-
private
|
|
79
|
+
private conversation;
|
|
66
80
|
private acrossChildren;
|
|
67
81
|
private selectedTopics;
|
|
68
82
|
private selectedPolicy;
|
|
69
83
|
private offsets;
|
|
70
84
|
private resumeFrom;
|
|
71
85
|
private stopAt;
|
|
72
|
-
|
|
86
|
+
/** The conversation whose history is assembled. Required. */
|
|
87
|
+
conversationId(conversation: ConversationId): this;
|
|
73
88
|
acrossSubconversations(value?: boolean): this;
|
|
74
89
|
topics(topics: readonly string[]): this;
|
|
75
90
|
policy(policy: ContextPolicy): this;
|
|
76
|
-
/** One offset map shared by every topic. `fromCheckpoint`
|
|
77
|
-
* for
|
|
91
|
+
/** One offset map shared by every topic. If `fromCheckpoint` is set, it
|
|
92
|
+
* replaces this map for every topic. Missing checkpoint positions start at zero. */
|
|
78
93
|
fromOffsets(offsets: ReadonlyMap<number, bigint>): this;
|
|
79
94
|
/** Resume after `checkpoint`, per topic and partition, and read to the tail. */
|
|
80
95
|
fromCheckpoint(checkpoint: Checkpoint): this;
|
|
@@ -84,10 +99,12 @@ export declare class ContextAssemblerBuilder {
|
|
|
84
99
|
}
|
|
85
100
|
export declare class ContextAssembler {
|
|
86
101
|
private readonly options;
|
|
87
|
-
static builder(
|
|
88
|
-
constructor(
|
|
102
|
+
static builder(): ContextAssemblerBuilder;
|
|
103
|
+
private constructor();
|
|
89
104
|
assemble(laser: Laser): Promise<readonly ContextMessage[]>;
|
|
90
|
-
private matches;
|
|
91
105
|
}
|
|
92
|
-
|
|
106
|
+
/** Every record of each partition's range instead of the newest
|
|
107
|
+
* `CONTEXT_READ_WINDOW`, for state replay. An open range ends at the tail
|
|
108
|
+
* seen when the replay starts. Not exported from the package. */
|
|
109
|
+
export declare function replayContext(options: ContextAssemblerOptions, laser: Laser): Promise<readonly ContextMessage[]>;
|
|
93
110
|
//# sourceMappingURL=context.d.ts.map
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/context.js
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
|
+
import { ConfigError, InvalidError } from "./client/errors.js";
|
|
1
2
|
import { decodeAgentMessage } from "./agent/reliable-consumer.js";
|
|
2
3
|
import { AgentTopic } from "./provenance/agent-topic.js";
|
|
3
4
|
const READ_BATCH = 1_000;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
/**
|
|
6
|
+
* The most raw records one context read examines in each partition, the same
|
|
7
|
+
* window the Rust and Python SDKs use. An open read takes the newest records
|
|
8
|
+
* before the current tail, and a point-in-time read the newest records before
|
|
9
|
+
* the checkpoint, then keeps the ones of the conversation. Turns older than the
|
|
10
|
+
* window on a busy shared partition are outside the read, so a long
|
|
11
|
+
* conversation saves state with a checkpoint and replays from it.
|
|
12
|
+
*/
|
|
13
|
+
export const CONTEXT_READ_WINDOW = 10_000;
|
|
14
|
+
const WINDOW = BigInt(CONTEXT_READ_WINDOW);
|
|
15
|
+
const U32_MAX = 0xffff_ffff;
|
|
16
|
+
const U64_MAX = 0xffffffffffffffffn;
|
|
17
|
+
// Node 22 writes and reads JSON integers beyond 2^53 exactly through these.
|
|
18
|
+
const EXACT_JSON = JSON;
|
|
10
19
|
/** A point in a conversation's log: the next offset each partition of each
|
|
11
20
|
* topic will write, as captured by `ContextScope.checkpoint`. A client-side
|
|
12
21
|
* bookmark keyed by topic name, never a record on the log. `toJSON` and
|
|
@@ -16,9 +25,7 @@ export class Checkpoint {
|
|
|
16
25
|
constructor(perTopic) {
|
|
17
26
|
this.perTopic = perTopic;
|
|
18
27
|
}
|
|
19
|
-
|
|
20
|
-
return new Checkpoint(new Map());
|
|
21
|
-
}
|
|
28
|
+
/** @internal */
|
|
22
29
|
static async capture(laser, topics) {
|
|
23
30
|
const entries = await Promise.all(topics.map(async (topic) => [topic, await laser.topic(topic).tailOffsets()]));
|
|
24
31
|
return new Checkpoint(new Map(entries));
|
|
@@ -28,39 +35,51 @@ export class Checkpoint {
|
|
|
28
35
|
topicOffsets(topic) {
|
|
29
36
|
return this.perTopic.get(topic);
|
|
30
37
|
}
|
|
31
|
-
get topics() {
|
|
32
|
-
return [...this.perTopic.keys()];
|
|
33
|
-
}
|
|
34
38
|
isEmpty() {
|
|
35
39
|
return this.perTopic.size === 0;
|
|
36
40
|
}
|
|
41
|
+
/** The Rust and Python JSON shape, `{"per_topic": {topic: {partition: offset}}}`,
|
|
42
|
+
* with every offset an exact JSON integer. */
|
|
37
43
|
toJSON() {
|
|
38
|
-
return
|
|
39
|
-
topic,
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
return {
|
|
45
|
+
per_topic: Object.fromEntries([...this.perTopic].map(([topic, offsets]) => [
|
|
46
|
+
topic,
|
|
47
|
+
Object.fromEntries([...offsets].map(([partition, offset]) => [String(partition), jsonInteger(offset)]))
|
|
48
|
+
]))
|
|
49
|
+
};
|
|
42
50
|
}
|
|
51
|
+
/** Reads `toJSON` output, as a JSON string or an already parsed value. */
|
|
43
52
|
static fromJSON(value) {
|
|
44
|
-
|
|
45
|
-
if (typeof
|
|
46
|
-
|
|
53
|
+
let parsed = value;
|
|
54
|
+
if (typeof value === "string") {
|
|
55
|
+
try {
|
|
56
|
+
parsed = JSON.parse(value, exactIntegers);
|
|
57
|
+
}
|
|
58
|
+
catch (cause) {
|
|
59
|
+
throw new InvalidError("a checkpoint must be JSON", undefined, { cause });
|
|
60
|
+
}
|
|
47
61
|
}
|
|
48
62
|
const perTopic = new Map();
|
|
49
|
-
for (const [topic, offsets] of Object.entries(parsed)) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
(typeof offset !== "string" && typeof offset !== "number")) {
|
|
56
|
-
throw new TypeError(`checkpoint topic ${topic} has an invalid partition entry`);
|
|
63
|
+
for (const [topic, offsets] of Object.entries(jsonObject(jsonObject(parsed, "a checkpoint")["per_topic"], "checkpoint per_topic"))) {
|
|
64
|
+
const partitions = new Map();
|
|
65
|
+
for (const [partition, offset] of Object.entries(jsonObject(offsets, `checkpoint topic ${topic}`))) {
|
|
66
|
+
const partitionId = Number(partition);
|
|
67
|
+
if (!/^\d+$/.test(partition) || partitionId > U32_MAX) {
|
|
68
|
+
throw new InvalidError(`checkpoint topic ${topic} has partition ${partition}, not a u32`);
|
|
57
69
|
}
|
|
58
|
-
|
|
59
|
-
}
|
|
70
|
+
partitions.set(partitionId, offsetOf(offset, topic));
|
|
71
|
+
}
|
|
72
|
+
perTopic.set(topic, partitions);
|
|
60
73
|
}
|
|
61
74
|
return new Checkpoint(perTopic);
|
|
62
75
|
}
|
|
63
76
|
}
|
|
77
|
+
/** The current tail of `topics` on `laser`'s default stream, one entry per
|
|
78
|
+
* topic. Fold up to it with the `at` replay bound or resume after it with
|
|
79
|
+
* `from-checkpoint`. */
|
|
80
|
+
export function contextCheckpoint(laser, topics) {
|
|
81
|
+
return Checkpoint.capture(laser, topics);
|
|
82
|
+
}
|
|
64
83
|
export class LastN {
|
|
65
84
|
count;
|
|
66
85
|
constructor(count) {
|
|
@@ -73,16 +92,16 @@ export class LastN {
|
|
|
73
92
|
export class RoleFilter {
|
|
74
93
|
agents;
|
|
75
94
|
constructor(agents) {
|
|
76
|
-
this.agents = new Set([...agents].map((agent) => agent.
|
|
95
|
+
this.agents = new Set([...agents].map((agent) => agent.asStr()));
|
|
77
96
|
}
|
|
78
97
|
select(history) {
|
|
79
98
|
return history.filter((message) => {
|
|
80
99
|
const agent = message.provenance.agent;
|
|
81
|
-
return agent !== undefined && this.agents.has(agent.
|
|
100
|
+
return agent !== undefined && this.agents.has(agent.asStr());
|
|
82
101
|
});
|
|
83
102
|
}
|
|
84
103
|
}
|
|
85
|
-
export class
|
|
104
|
+
export class Chain {
|
|
86
105
|
policies;
|
|
87
106
|
constructor(policies) {
|
|
88
107
|
this.policies = policies;
|
|
@@ -123,8 +142,10 @@ export class ContextAssemblerBuilder {
|
|
|
123
142
|
offsets = new Map();
|
|
124
143
|
resumeFrom;
|
|
125
144
|
stopAt;
|
|
126
|
-
|
|
145
|
+
/** The conversation whose history is assembled. Required. */
|
|
146
|
+
conversationId(conversation) {
|
|
127
147
|
this.conversation = conversation;
|
|
148
|
+
return this;
|
|
128
149
|
}
|
|
129
150
|
acrossSubconversations(value = true) {
|
|
130
151
|
this.acrossChildren = value;
|
|
@@ -138,8 +159,8 @@ export class ContextAssemblerBuilder {
|
|
|
138
159
|
this.selectedPolicy = policy;
|
|
139
160
|
return this;
|
|
140
161
|
}
|
|
141
|
-
/** One offset map shared by every topic. `fromCheckpoint`
|
|
142
|
-
* for
|
|
162
|
+
/** One offset map shared by every topic. If `fromCheckpoint` is set, it
|
|
163
|
+
* replaces this map for every topic. Missing checkpoint positions start at zero. */
|
|
143
164
|
fromOffsets(offsets) {
|
|
144
165
|
this.offsets = new Map(offsets);
|
|
145
166
|
return this;
|
|
@@ -155,7 +176,10 @@ export class ContextAssemblerBuilder {
|
|
|
155
176
|
return this;
|
|
156
177
|
}
|
|
157
178
|
build() {
|
|
158
|
-
|
|
179
|
+
if (this.conversation === undefined) {
|
|
180
|
+
throw new ConfigError("ContextAssembler.builder().conversationId() is required");
|
|
181
|
+
}
|
|
182
|
+
return ContextAssembler.create({
|
|
159
183
|
conversation: this.conversation,
|
|
160
184
|
acrossSubconversations: this.acrossChildren,
|
|
161
185
|
topics: this.selectedTopics,
|
|
@@ -168,72 +192,127 @@ export class ContextAssemblerBuilder {
|
|
|
168
192
|
}
|
|
169
193
|
export class ContextAssembler {
|
|
170
194
|
options;
|
|
171
|
-
static builder(
|
|
172
|
-
return new ContextAssemblerBuilder(
|
|
195
|
+
static builder() {
|
|
196
|
+
return new ContextAssemblerBuilder();
|
|
173
197
|
}
|
|
174
198
|
constructor(options) {
|
|
175
199
|
this.options = options;
|
|
176
200
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
for (const record of records) {
|
|
198
|
-
const decoded = decodeAgentMessage(record);
|
|
199
|
-
if (decoded.kind !== "message" || !this.matches(decoded.message.provenance))
|
|
200
|
-
continue;
|
|
201
|
-
collected.push({
|
|
202
|
-
id: decoded.message.id,
|
|
203
|
-
provenance: decoded.message.provenance,
|
|
204
|
-
payload: decoded.message.payload,
|
|
205
|
-
...(decoded.message.envelope !== undefined
|
|
206
|
-
? { envelope: decoded.message.envelope }
|
|
207
|
-
: {}),
|
|
208
|
-
timestampMicros: record.timestampMicros ?? 0n,
|
|
209
|
-
topic,
|
|
210
|
-
topicIndex
|
|
211
|
-
});
|
|
212
|
-
if (collected.length > MAX_CONTEXT_RECORDS)
|
|
213
|
-
collected.shift();
|
|
214
|
-
}
|
|
215
|
-
}
|
|
201
|
+
/** @internal */
|
|
202
|
+
static create(options) {
|
|
203
|
+
return new ContextAssembler(options);
|
|
204
|
+
}
|
|
205
|
+
assemble(laser) {
|
|
206
|
+
return readContext(this.options, laser, false);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/** Every record of each partition's range instead of the newest
|
|
210
|
+
* `CONTEXT_READ_WINDOW`, for state replay. An open range ends at the tail
|
|
211
|
+
* seen when the replay starts. Not exported from the package. */
|
|
212
|
+
export function replayContext(options, laser) {
|
|
213
|
+
return readContext(options, laser, true);
|
|
214
|
+
}
|
|
215
|
+
async function readContext(options, laser, whole) {
|
|
216
|
+
const perTopic = await Promise.all(options.topics.map(async (topic, topicIndex) => {
|
|
217
|
+
// The log timestamp only orders the merged read, like in Rust.
|
|
218
|
+
const collected = [];
|
|
219
|
+
// A topic nobody has written yet has no history, same as in Rust.
|
|
220
|
+
if ((await laser.topic(topic).partitionCount()) === undefined)
|
|
216
221
|
return collected;
|
|
217
|
-
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
222
|
+
const handle = laser.topic(topic);
|
|
223
|
+
const cursor = (await handle.replay()).batch(READ_BATCH);
|
|
224
|
+
const partitions = [...cursor.offsets.keys()];
|
|
225
|
+
const resume = options.fromCheckpoint;
|
|
226
|
+
const from = (partition) => resume === undefined
|
|
227
|
+
? (options.fromOffsets.get(partition) ?? 0n)
|
|
228
|
+
: (resume.topicOffsets(topic)?.get(partition) ?? 0n);
|
|
229
|
+
// A checkpoint holds the next offset to write, so a point-in-time read
|
|
230
|
+
// ends before it, and a partition it does not name existed only after
|
|
231
|
+
// it and reads as empty. An open read ends at the tail seen now.
|
|
232
|
+
const stop = options.toCheckpoint;
|
|
233
|
+
const ends = stop === undefined
|
|
234
|
+
? await handle.tailOffsets()
|
|
235
|
+
: (stop.topicOffsets(topic) ?? new Map());
|
|
236
|
+
const starts = new Map();
|
|
237
|
+
const bounds = new Map();
|
|
238
|
+
for (const partition of partitions) {
|
|
239
|
+
const end = ends.get(partition) ?? 0n;
|
|
240
|
+
const windowStart = end > WINDOW ? end - WINDOW : 0n;
|
|
241
|
+
const start = from(partition);
|
|
242
|
+
starts.set(partition, whole || start > windowStart ? start : windowStart);
|
|
243
|
+
bounds.set(partition, end);
|
|
244
|
+
}
|
|
245
|
+
cursor.fromOffsets(starts).until(bounds);
|
|
246
|
+
for (;;) {
|
|
247
|
+
const records = await cursor.pollRecords();
|
|
248
|
+
if (records.length === 0)
|
|
249
|
+
break;
|
|
250
|
+
for (const record of records) {
|
|
251
|
+
const decoded = decodeAgentMessage(record);
|
|
252
|
+
if (decoded.kind !== "message" || !inConversation(options, decoded.message.provenance))
|
|
253
|
+
continue;
|
|
254
|
+
collected.push({
|
|
255
|
+
id: decoded.message.id,
|
|
256
|
+
provenance: decoded.message.provenance,
|
|
257
|
+
payload: decoded.message.payload,
|
|
258
|
+
...(decoded.message.envelope !== undefined
|
|
259
|
+
? { envelope: decoded.message.envelope }
|
|
260
|
+
: {}),
|
|
261
|
+
timestampMicros: record.timestampMicros ?? 0n,
|
|
262
|
+
topic,
|
|
263
|
+
topicIndex
|
|
264
|
+
});
|
|
226
265
|
}
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
266
|
+
}
|
|
267
|
+
return collected;
|
|
268
|
+
}));
|
|
269
|
+
const ordered = perTopic.flat().sort((left, right) => {
|
|
270
|
+
if (left.timestampMicros !== right.timestampMicros) {
|
|
271
|
+
return left.timestampMicros < right.timestampMicros ? -1 : 1;
|
|
272
|
+
}
|
|
273
|
+
if (left.topicIndex !== right.topicIndex)
|
|
274
|
+
return left.topicIndex - right.topicIndex;
|
|
275
|
+
if (left.id.partitionId !== right.id.partitionId) {
|
|
276
|
+
return left.id.partitionId - right.id.partitionId;
|
|
277
|
+
}
|
|
278
|
+
return left.id.offset < right.id.offset ? -1 : left.id.offset > right.id.offset ? 1 : 0;
|
|
279
|
+
});
|
|
280
|
+
return options.policy.select(ordered);
|
|
281
|
+
}
|
|
282
|
+
function inConversation(options, provenance) {
|
|
283
|
+
if (provenance.conversationId.equals(options.conversation))
|
|
284
|
+
return true;
|
|
285
|
+
return (options.acrossSubconversations &&
|
|
286
|
+
(provenance.rootConversationId?.equals(options.conversation) === true ||
|
|
287
|
+
provenance.parentConversationId?.equals(options.conversation) === true));
|
|
288
|
+
}
|
|
289
|
+
function jsonInteger(value) {
|
|
290
|
+
return value <= BigInt(Number.MAX_SAFE_INTEGER)
|
|
291
|
+
? Number(value)
|
|
292
|
+
: EXACT_JSON.rawJSON(String(value));
|
|
293
|
+
}
|
|
294
|
+
function exactIntegers(_key, value, context) {
|
|
295
|
+
return typeof value === "number" &&
|
|
296
|
+
context?.source !== undefined &&
|
|
297
|
+
/^-?\d+$/.test(context.source)
|
|
298
|
+
? BigInt(context.source)
|
|
299
|
+
: value;
|
|
300
|
+
}
|
|
301
|
+
function jsonObject(value, what) {
|
|
302
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
303
|
+
throw new InvalidError(`${what} must be a JSON object`);
|
|
230
304
|
}
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
305
|
+
return value;
|
|
306
|
+
}
|
|
307
|
+
function offsetOf(value, topic) {
|
|
308
|
+
const offset = typeof value === "bigint"
|
|
309
|
+
? value
|
|
310
|
+
: typeof value === "number" && Number.isSafeInteger(value)
|
|
311
|
+
? BigInt(value)
|
|
312
|
+
: undefined;
|
|
313
|
+
if (offset === undefined || offset < 0n || offset > U64_MAX) {
|
|
314
|
+
throw new InvalidError(`checkpoint topic ${topic} has an offset that is not a u64`);
|
|
237
315
|
}
|
|
316
|
+
return offset;
|
|
238
317
|
}
|
|
239
318
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAKxD,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAEzC,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AAC1C,MAAM,OAAO,GAAG,WAAW,CAAA;AAC3B,MAAM,OAAO,GAAG,mBAAsB,CAAA;AAEtC,4EAA4E;AAC5E,MAAM,UAAU,GAAG,IAAqD,CAAA;AAWxE;;;uCAGuC;AACvC,MAAM,OAAO,UAAU;IAEF,QAAQ;IAD3B,YACmB,QAA0D;wBAA1D,QAAQ;IACxB,CAAC;IAEJ,gBAAgB;IAChB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAY,EAAE,MAAyB;QAC1D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAU,CAAC,CACtF,CAAA;QACD,OAAO,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IACzC,CAAC;IAED;wCACoC;IACpC,YAAY,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAA;IACjC,CAAC;IAED;kDAC8C;IAC9C,MAAM;QAGJ,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,WAAW,CAC3B,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;gBAC3C,KAAK;gBACL,MAAM,CAAC,WAAW,CAChB,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CACpF;aACF,CAAC,CACH;SACF,CAAA;IACH,CAAC;IAED,0EAA0E;IAC1E,MAAM,CAAC,QAAQ,CAAC,KAAc;QAC5B,IAAI,MAAM,GAAY,KAAK,CAAA;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;YAC3C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,YAAY,CAAC,2BAA2B,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;YAC3E,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuC,CAAA;QAC/D,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAC3C,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,WAAW,CAAC,EAAE,sBAAsB,CAAC,CACpF,EAAE,CAAC;YACF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;YAC5C,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAC9C,UAAU,CAAC,OAAO,EAAE,oBAAoB,KAAK,EAAE,CAAC,CACjD,EAAE,CAAC;gBACF,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;gBACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,WAAW,GAAG,OAAO,EAAE,CAAC;oBACtD,MAAM,IAAI,YAAY,CAAC,oBAAoB,KAAK,kBAAkB,SAAS,aAAa,CAAC,CAAA;gBAC3F,CAAC;gBACD,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;YACtD,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;CACF;AAED;;wBAEwB;AACxB,MAAM,UAAU,iBAAiB,CAAC,KAAY,EAAE,MAAyB;IACvE,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAC1C,CAAC;AAMD,MAAM,OAAO,KAAK;IACK,KAAK;IAA1B,YAAqB,KAAa;qBAAb,KAAK;IAAW,CAAC;IAEtC,MAAM,CAAC,OAAkC;QACvC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC7E,CAAC;CACF;AAED,MAAM,OAAO,UAAU;IACJ,MAAM,CAAqB;IAE5C,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAClE,CAAC;IAED,MAAM,CAAC,OAAkC;QACvC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAA;YACtC,OAAO,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,KAAK;IACK,QAAQ;IAA7B,YAAqB,QAAkC;wBAAlC,QAAQ;IAA6B,CAAC;IAE3D,MAAM,CAAC,OAAkC;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CACzB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC7C,OAAO,CACR,CAAA;IACH,CAAC;CACF;AAED,MAAM,OAAO,WAAW;IAEH,SAAS;IACT,QAAQ;IAF3B,YACmB,SAAiB,EACjB,QAAQ,GAAwC,CAAC,OAAO,EAAE,EAAE,CAC3E,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;yBAF1B,SAAS;wBACT,QAAQ;IAExB,CAAC;IAEJ,MAAM,CAAC,OAAkC;QACvC,MAAM,IAAI,GAAqB,EAAE,CAAA;QACjC,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,KAAK,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAQ;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;YAChD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS;gBAAE,MAAK;YAC3D,KAAK,IAAI,IAAI,CAAA;YACb,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACpB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAA;QACd,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAYD,MAAM,OAAO,uBAAuB;IAC1B,YAAY,CAA4B;IACxC,cAAc,GAAG,KAAK,CAAA;IACtB,cAAc,GAAsB,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;IAC/E,cAAc,GAAkB,IAAI,KAAK,CAAC,EAAE,CAAC,CAAA;IAC7C,OAAO,GAAgC,IAAI,GAAG,EAAE,CAAA;IAChD,UAAU,CAAwB;IAClC,MAAM,CAAwB;IAEtC,6DAA6D;IAC7D,cAAc,CAAC,YAA4B;QACzC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,sBAAsB,CAAC,KAAK,GAAG,IAAI;QACjC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAA;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,MAAyB;QAC9B,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC,CAAA;QACjC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,MAAqB;QAC1B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED;wFACoF;IACpF,WAAW,CAAC,OAAoC;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gFAAgF;IAChF,cAAc,CAAC,UAAsB;QACnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,2EAA2E;IAC3E,YAAY,CAAC,UAAsB;QACjC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAA;QACxB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,WAAW,CAAC,yDAAyD,CAAC,CAAA;QAClF,CAAC;QACD,OAAO,gBAAgB,CAAC,MAAM,CAAC;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,sBAAsB,EAAE,IAAI,CAAC,cAAc;YAC3C,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,MAAM,EAAE,IAAI,CAAC,cAAc;YAC3B,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;SACpE,CAAC,CAAA;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAgB;IAKU,OAAO;IAJ5C,MAAM,CAAC,OAAO;QACZ,OAAO,IAAI,uBAAuB,EAAE,CAAA;IACtC,CAAC;IAED,YAAqC,OAAgC;uBAAhC,OAAO;IAA4B,CAAC;IAEzE,gBAAgB;IAChB,MAAM,CAAC,MAAM,CAAC,OAAgC;QAC5C,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,OAAO,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IAChD,CAAC;CACF;AAED;;iEAEiE;AACjE,MAAM,UAAU,aAAa,CAC3B,OAAgC,EAChC,KAAY;IAEZ,OAAO,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,OAAgC,EAChC,KAAY,EACZ,KAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QAC7C,+DAA+D;QAC/D,MAAM,SAAS,GAGR,EAAE,CAAA;QACT,kEAAkE;QAClE,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACxD,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAA;QACrC,MAAM,IAAI,GAAG,CAAC,SAAiB,EAAU,EAAE,CACzC,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC5C,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAA;QACxD,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAA;QACjC,MAAM,IAAI,GACR,IAAI,KAAK,SAAS;YAChB,CAAC,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE;YAC5B,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAkB,CAAC,CAAA;QAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;QACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAA;QACxC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;YACrC,MAAM,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;YACzE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;QAC5B,CAAC;QACD,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACxC,SAAS,CAAC;YACR,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAA;YAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAK;YAC/B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;gBAC1C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;oBACpF,SAAQ;gBACV,SAAS,CAAC,IAAI,CAAC;oBACb,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;oBACtB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;oBACtC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAO;oBAChC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS;wBACxC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;wBACxC,CAAC,CAAC,EAAE,CAAC;oBACP,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;oBAC7C,KAAK;oBACL,UAAU;iBACX,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,CACH,CAAA;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnD,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAA;QACnF,IAAI,IAAI,CAAC,EAAE,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC,WAAW,CAAA;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzF,CAAC,CAAC,CAAA;IACF,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,OAAgC,EAAE,UAAsB;IAC9E,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAA;IACvE,OAAO,CACL,OAAO,CAAC,sBAAsB;QAC9B,CAAC,UAAU,CAAC,kBAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI;YACnE,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAC1E,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAC7C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACf,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;AACvC,CAAC;AAED,SAAS,aAAa,CACpB,IAAY,EACZ,KAAc,EACd,OAAsC;IAEtC,OAAO,OAAO,KAAK,KAAK,QAAQ;QAC9B,OAAO,EAAE,MAAM,KAAK,SAAS;QAC7B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAC9B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QACxB,CAAC,CAAC,KAAK,CAAA;AACX,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,IAAY;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,YAAY,CAAC,GAAG,IAAI,wBAAwB,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,KAA0C,CAAA;AACnD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc,EAAE,KAAa;IAC7C,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;YACxD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACf,CAAC,CAAC,SAAS,CAAA;IACjB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,OAAO,EAAE,CAAC;QAC5D,MAAM,IAAI,YAAY,CAAC,oBAAoB,KAAK,kCAAkC,CAAC,CAAA;IACrF,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -21,7 +21,7 @@ export type ReplayBound = {
|
|
|
21
21
|
export declare const FULL_REPLAY: ReplayBound;
|
|
22
22
|
export declare function resumeOffsets(snapshot: FoldSnapshot): ReadonlyMap<number, bigint>;
|
|
23
23
|
declare function load<State>(laser: Laser, conversation: ConversationId, topics: readonly string[], bound: ReplayBound, initial: State, fold: (state: State, message: ContextMessage) => State): Promise<State>;
|
|
24
|
-
declare function loadWith<State>(laser: Laser, store: SnapshotStore, conversation: ConversationId, topics: readonly string[], initial: State,
|
|
24
|
+
declare function loadWith<State>(laser: Laser, store: SnapshotStore, conversation: ConversationId, topics: readonly string[], initial: State, fold: (state: State, message: ContextMessage) => State, decodeState?: (bytes: Uint8Array) => State): Promise<State>;
|
|
25
25
|
export declare const ConversationState: {
|
|
26
26
|
readonly load: typeof load;
|
|
27
27
|
readonly loadWith: typeof loadWith;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-state.d.ts","sourceRoot":"","sources":["../src/conversation-state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"conversation-state.d.ts","sourceRoot":"","sources":["../src/conversation-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEhF,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAChF;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7B,eAAO,MAAM,WAAW,EAAE,WAA8B,CAAA;AAExD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAOjF;AAKD,iBAAe,IAAI,CAAC,KAAK,EACvB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,cAAc,EAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,KAAK,EACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,KAAK,KAAK,GACrD,OAAO,CAAC,KAAK,CAAC,CAuBhB;AAID,iBAAe,QAAQ,CAAC,KAAK,EAC3B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,cAAc,EAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,EAAE,KAAK,EACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,KAAK,KAAK,EACtD,WAAW,GAAE,CAAC,KAAK,EAAE,UAAU,KAAK,KAAkD,GACrF,OAAO,CAAC,KAAK,CAAC,CAYhB;AAYD,eAAO,MAAM,iBAAiB;;;CAA8B,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CodecError } from "./client/errors.js";
|
|
2
|
+
import { ContextAssembler, LastN, replayContext } from "./context.js";
|
|
2
3
|
import { foldSnapshotResumeOffset } from "./wire/snapshot.js";
|
|
3
4
|
export const FULL_REPLAY = { kind: "full" };
|
|
4
5
|
export function resumeOffsets(snapshot) {
|
|
@@ -7,29 +8,47 @@ export function resumeOffsets(snapshot) {
|
|
|
7
8
|
foldSnapshotResumeOffset(snapshot, partition)
|
|
8
9
|
]));
|
|
9
10
|
}
|
|
11
|
+
// `last` reads the newest context window like a context read. Every other
|
|
12
|
+
// bound folds its whole range, read in chunks up to the tail seen when the
|
|
13
|
+
// replay starts or up to the checkpoint.
|
|
10
14
|
async function load(laser, conversation, topics, bound, initial, fold) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
if (bound.kind === "last") {
|
|
16
|
+
const history = await ContextAssembler.builder()
|
|
17
|
+
.conversationId(conversation)
|
|
18
|
+
.topics(topics)
|
|
19
|
+
.policy(new LastN(bound.count))
|
|
20
|
+
.build()
|
|
21
|
+
.assemble(laser);
|
|
22
|
+
return history.reduce(fold, initial);
|
|
18
23
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
const history = await replayContext({
|
|
25
|
+
conversation,
|
|
26
|
+
acrossSubconversations: false,
|
|
27
|
+
topics,
|
|
28
|
+
policy: new LastN(Number.MAX_SAFE_INTEGER),
|
|
29
|
+
fromOffsets: bound.kind === "from-offsets" ? bound.offsets : new Map(),
|
|
30
|
+
...(bound.kind === "from-checkpoint" ? { fromCheckpoint: bound.checkpoint } : {}),
|
|
31
|
+
...(bound.kind === "at" ? { toCheckpoint: bound.checkpoint } : {})
|
|
32
|
+
}, laser);
|
|
26
33
|
return history.reduce(fold, initial);
|
|
27
34
|
}
|
|
28
|
-
|
|
35
|
+
// The newest snapshot's state (JSON by default, like the Rust SDK) plus a
|
|
36
|
+
// replay of only the tail past it.
|
|
37
|
+
async function loadWith(laser, store, conversation, topics, initial, fold, decodeState = (bytes) => decodeJsonState(bytes)) {
|
|
29
38
|
const snapshot = await store.latest(conversation);
|
|
30
39
|
return load(laser, conversation, topics, snapshot === undefined
|
|
31
40
|
? FULL_REPLAY
|
|
32
41
|
: { kind: "from-offsets", offsets: resumeOffsets(snapshot) }, snapshot === undefined ? initial : decodeState(snapshot.state), fold);
|
|
33
42
|
}
|
|
43
|
+
function decodeJsonState(bytes) {
|
|
44
|
+
try {
|
|
45
|
+
return JSON.parse(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
throw new CodecError(`decode snapshot state: ${String(error)}`, "json", "decode", {
|
|
49
|
+
cause: error
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
34
53
|
export const ConversationState = { load, loadWith };
|
|
35
54
|
//# sourceMappingURL=conversation-state.js.map
|