@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/memory/types.d.ts
CHANGED
|
@@ -32,6 +32,9 @@ export declare const RecallStrategy: {
|
|
|
32
32
|
readonly Hybrid: "hybrid";
|
|
33
33
|
};
|
|
34
34
|
export type RecallStrategy = (typeof RecallStrategy)[keyof typeof RecallStrategy];
|
|
35
|
+
/** A stable one-byte discriminator, mixed into a content-addressed id so the
|
|
36
|
+
* same body under different kinds gets distinct ids. */
|
|
37
|
+
export declare function memoryKindCode(kind: MemoryKind): number;
|
|
35
38
|
export declare function memoryClass(kind: MemoryKind): MemoryClass;
|
|
36
39
|
export declare class MemoryId {
|
|
37
40
|
private readonly value;
|
|
@@ -39,6 +42,11 @@ export declare class MemoryId {
|
|
|
39
42
|
static new(source?: UlidSource): MemoryId;
|
|
40
43
|
static fromU128(value: bigint): MemoryId;
|
|
41
44
|
static parse(text: string): MemoryId;
|
|
45
|
+
/** A deterministic id over `owner`, `kind`, and `body`, so a deduped remember
|
|
46
|
+
* stores one item. The owner is the durable scope (stream, agent, user, and
|
|
47
|
+
* application, never the conversation), so the same fact in two
|
|
48
|
+
* conversations is one durable memory and two users never share an id. The
|
|
49
|
+
* segments match Rust `MemoryId::content` byte for byte. */
|
|
42
50
|
static content(owner: MemoryScope, kind: MemoryKind, body: Uint8Array): MemoryId;
|
|
43
51
|
asU128(): bigint;
|
|
44
52
|
equals(other: MemoryId): boolean;
|
|
@@ -49,7 +57,7 @@ export interface MemoryScope {
|
|
|
49
57
|
readonly user?: string;
|
|
50
58
|
readonly agent?: AgentId;
|
|
51
59
|
readonly conversation?: ConversationId;
|
|
52
|
-
readonly
|
|
60
|
+
readonly app?: string;
|
|
53
61
|
readonly lifetime?: Lifetime;
|
|
54
62
|
}
|
|
55
63
|
export interface RecallSignal {
|
|
@@ -70,6 +78,11 @@ export interface MemoryItem {
|
|
|
70
78
|
readonly signals: readonly RecallSignal[];
|
|
71
79
|
readonly source?: SourceRef;
|
|
72
80
|
}
|
|
81
|
+
/** The memory item payload as UTF-8, lossy. */
|
|
82
|
+
export declare function memoryItemText(item: MemoryItem): string;
|
|
83
|
+
/** Decodes the memory item payload as JSON, through `decodeValue` when given.
|
|
84
|
+
* A payload that is not JSON fails with `CodecError`. */
|
|
85
|
+
export declare function memoryItemJson<T = unknown>(item: MemoryItem, decodeValue?: (value: unknown) => T): T;
|
|
73
86
|
export interface MemoryQuery {
|
|
74
87
|
readonly limit?: number;
|
|
75
88
|
readonly tokenBudget?: number;
|
|
@@ -83,6 +96,7 @@ export interface Feedback {
|
|
|
83
96
|
readonly note?: string;
|
|
84
97
|
}
|
|
85
98
|
export interface Memory {
|
|
99
|
+
append?(scope: MemoryScope, id: MemoryId, kind: MemoryKind, payload: Uint8Array): Promise<MemoryId>;
|
|
86
100
|
remember(scope: MemoryScope, payload: Uint8Array): Promise<MemoryId>;
|
|
87
101
|
recall(scope: MemoryScope, query: MemoryQuery): Promise<readonly MemoryItem[]>;
|
|
88
102
|
improve(scope: MemoryScope, feedback: Feedback): Promise<MemoryId>;
|
|
@@ -94,15 +108,37 @@ export interface Embedder {
|
|
|
94
108
|
export interface Reranker {
|
|
95
109
|
rerank(query: string, items: readonly MemoryItem[]): Promise<readonly MemoryItem[]>;
|
|
96
110
|
}
|
|
111
|
+
/** Folds a batch of session bodies into one durable summary body. A model
|
|
112
|
+
* client, a template, or a hosted summarize API lives in application code. */
|
|
113
|
+
export interface Summarizer {
|
|
114
|
+
summarize(bodies: readonly Uint8Array[]): Promise<Uint8Array>;
|
|
115
|
+
}
|
|
116
|
+
/** The optional passes of one consolidation run. */
|
|
117
|
+
export interface ConsolidateOptions {
|
|
118
|
+
/** Adds the summarize pass: the `message` items in the scope are folded
|
|
119
|
+
* through this into one durable summary per conversation. */
|
|
120
|
+
readonly summarizer?: Summarizer;
|
|
121
|
+
/** Forgets the items a summarize pass folded, so the summary replaces them. */
|
|
122
|
+
readonly pruneSummarized?: boolean;
|
|
123
|
+
}
|
|
97
124
|
export interface ConsolidationReport {
|
|
98
|
-
|
|
99
|
-
readonly
|
|
100
|
-
|
|
125
|
+
/** Items folded into durable summaries. */
|
|
126
|
+
readonly summarized: number;
|
|
127
|
+
/** Items whose recall weights changed through feedback. */
|
|
128
|
+
readonly reweighted: number;
|
|
129
|
+
/** Items successfully pruned. */
|
|
130
|
+
readonly pruned: number;
|
|
131
|
+
/** New facts or graph edges derived. */
|
|
132
|
+
readonly derived: number;
|
|
101
133
|
}
|
|
102
134
|
export interface Consolidator {
|
|
103
|
-
consolidate(
|
|
135
|
+
consolidate(scope: MemoryScope, signal?: AbortSignal): Promise<ConsolidationReport>;
|
|
104
136
|
}
|
|
105
137
|
export declare function toContextBlock(items: readonly MemoryItem[], tokenBudget?: number): string;
|
|
138
|
+
/** Fuses ranked lists by reciprocal rank. Each item scores the sum of
|
|
139
|
+
* `1 / (60 + rank)` over the lists that surfaced it, where `rank` is the item's
|
|
140
|
+
* own first signal rank, and an item without a signal contributes nothing. A
|
|
141
|
+
* fused item keeps every signal it arrived with. */
|
|
106
142
|
export declare function fuseReciprocalRank(signals: readonly (readonly MemoryItem[])[], limit: number): readonly MemoryItem[];
|
|
107
143
|
export declare const ZERO_CONVERSATION: ConversationId;
|
|
108
144
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAG9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,eAAO,MAAM,UAAU;aACrB,IAAI,EAAE,MAAM;aACZ,OAAO,EAAE,SAAS;aAClB,OAAO,EAAE,SAAS;aAClB,MAAM,EAAE,QAAQ;aAChB,QAAQ,EAAE,UAAU;aACpB,SAAS,EAAE,WAAW;CACd,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA;AAErE,eAAO,MAAM,WAAW;aACtB,QAAQ,EAAE,UAAU;aACpB,QAAQ,EAAE,UAAU;aACpB,UAAU,EAAE,YAAY;CAChB,CAAA;AAEV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAA;AAExE,eAAO,MAAM,QAAQ;aAAK,OAAO,EAAE,SAAS;aAAE,OAAO,EAAE,SAAS;CAAW,CAAA;AAC3E,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,OAAO,QAAQ,CAAC,CAAA;AAE/D,eAAO,MAAM,cAAc;aACzB,IAAI,EAAE,MAAM;aACZ,MAAM,EAAE,QAAQ;aAChB,QAAQ,EAAE,UAAU;aACpB,OAAO,EAAE,SAAS;aAClB,KAAK,EAAE,OAAO;aACd,QAAQ,EAAE,UAAU;aACpB,MAAM,EAAE,QAAQ;CACR,CAAA;AAEV,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAA;AAajF;wDACwD;AACxD,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEvD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAIzD;AAED,qBAAa,QAAQ;IACC,OAAO,CAAC,QAAQ,CAAC,KAAK;IAA1C,OAAO,eAA+C;IAEtD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAExC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAKvC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAEnC;IAED;;;;gEAI4D;IAC5D,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,QAAQ,CAgB/E;IAED,MAAM,IAAI,MAAM,CAEf;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAE/B;IAED,QAAQ,IAAI,MAAM,CAEjB;CACF;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,cAAc,CAAA;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;QACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;QACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KACjC,CAAA;IACD,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAA;CAC5B;AAED,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEvD;AAED;yDACyD;AACzD,wBAAgB,cAAc,CAAC,CAAC,GAAG,OAAO,EACxC,IAAI,EAAE,UAAU,EAChB,WAAW,GAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAyB,GACzD,CAAC,CAEH;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;CACnC;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,CACL,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAAA;IAC9E,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClE,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACxD;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAA;CAChD;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAAA;CACpF;AAED;8EAC8E;AAC9E,MAAM,WAAW,UAAU;IACzB,SAAS,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC9D;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC;iEAC6D;IAC7D,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAA;IAChC,+EAA+E;IAC/E,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,iCAAiC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;CACpF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAezF;AAED;;;oDAGoD;AACpD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,SAAS,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,EAC3C,KAAK,EAAE,MAAM,GACZ,SAAS,UAAU,EAAE,CAuBvB;AAED,eAAO,MAAM,iBAAiB,gBAAqD,CAAA"}
|
package/dist/memory/types.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { InvalidError } from "../client/errors.js";
|
|
2
2
|
import { mintUlidValue } from "../runtime/ulid.js";
|
|
3
|
+
import { Json } from "../stream/codecs.js";
|
|
3
4
|
import { ConversationId } from "../types/ids.js";
|
|
4
5
|
import { contentId } from "../wire/hashing.js";
|
|
5
6
|
import { crockfordDecode, crockfordEncode } from "../wire/ids.js";
|
|
@@ -26,6 +27,7 @@ export const RecallStrategy = {
|
|
|
26
27
|
Temporal: "temporal",
|
|
27
28
|
Hybrid: "hybrid"
|
|
28
29
|
};
|
|
30
|
+
const RRF_K = 60;
|
|
29
31
|
const KIND_CODES = {
|
|
30
32
|
[MemoryKind.Fact]: 1,
|
|
31
33
|
[MemoryKind.Message]: 2,
|
|
@@ -34,6 +36,11 @@ const KIND_CODES = {
|
|
|
34
36
|
[MemoryKind.Feedback]: 5,
|
|
35
37
|
[MemoryKind.Procedure]: 6
|
|
36
38
|
};
|
|
39
|
+
/** A stable one-byte discriminator, mixed into a content-addressed id so the
|
|
40
|
+
* same body under different kinds gets distinct ids. */
|
|
41
|
+
export function memoryKindCode(kind) {
|
|
42
|
+
return KIND_CODES[kind];
|
|
43
|
+
}
|
|
37
44
|
export function memoryClass(kind) {
|
|
38
45
|
if (kind === MemoryKind.Message)
|
|
39
46
|
return MemoryClass.Episodic;
|
|
@@ -58,14 +65,24 @@ export class MemoryId {
|
|
|
58
65
|
static parse(text) {
|
|
59
66
|
return MemoryId.fromU128(crockfordDecode(text));
|
|
60
67
|
}
|
|
68
|
+
/** A deterministic id over `owner`, `kind`, and `body`, so a deduped remember
|
|
69
|
+
* stores one item. The owner is the durable scope (stream, agent, user, and
|
|
70
|
+
* application, never the conversation), so the same fact in two
|
|
71
|
+
* conversations is one durable memory and two users never share an id. The
|
|
72
|
+
* segments match Rust `MemoryId::content` byte for byte. */
|
|
61
73
|
static content(owner, kind, body) {
|
|
62
74
|
const encoder = new TextEncoder();
|
|
75
|
+
const separator = Uint8Array.of(0);
|
|
63
76
|
const segments = [
|
|
64
77
|
encoder.encode(owner.stream ?? ""),
|
|
65
|
-
|
|
66
|
-
encoder.encode(owner.agent?.
|
|
67
|
-
|
|
68
|
-
|
|
78
|
+
separator,
|
|
79
|
+
encoder.encode(owner.agent?.asStr() ?? ""),
|
|
80
|
+
separator,
|
|
81
|
+
encoder.encode(owner.user ?? ""),
|
|
82
|
+
separator,
|
|
83
|
+
encoder.encode(owner.app ?? ""),
|
|
84
|
+
separator,
|
|
85
|
+
Uint8Array.of(memoryKindCode(kind)),
|
|
69
86
|
body
|
|
70
87
|
];
|
|
71
88
|
return MemoryId.fromU128(contentId(segments));
|
|
@@ -80,6 +97,15 @@ export class MemoryId {
|
|
|
80
97
|
return crockfordEncode(this.value);
|
|
81
98
|
}
|
|
82
99
|
}
|
|
100
|
+
/** The memory item payload as UTF-8, lossy. */
|
|
101
|
+
export function memoryItemText(item) {
|
|
102
|
+
return new TextDecoder().decode(item.payload);
|
|
103
|
+
}
|
|
104
|
+
/** Decodes the memory item payload as JSON, through `decodeValue` when given.
|
|
105
|
+
* A payload that is not JSON fails with `CodecError`. */
|
|
106
|
+
export function memoryItemJson(item, decodeValue = (value) => value) {
|
|
107
|
+
return new Json(decodeValue).decode(item.payload);
|
|
108
|
+
}
|
|
83
109
|
export function toContextBlock(items, tokenBudget) {
|
|
84
110
|
let spent = 0;
|
|
85
111
|
let rendered = 0;
|
|
@@ -98,28 +124,28 @@ export function toContextBlock(items, tokenBudget) {
|
|
|
98
124
|
blocks.push(`[... ${String(omitted)} more recalled item(s) omitted ...]`);
|
|
99
125
|
return blocks.join("\n\n");
|
|
100
126
|
}
|
|
127
|
+
/** Fuses ranked lists by reciprocal rank. Each item scores the sum of
|
|
128
|
+
* `1 / (60 + rank)` over the lists that surfaced it, where `rank` is the item's
|
|
129
|
+
* own first signal rank, and an item without a signal contributes nothing. A
|
|
130
|
+
* fused item keeps every signal it arrived with. */
|
|
101
131
|
export function fuseReciprocalRank(signals, limit) {
|
|
102
|
-
const
|
|
132
|
+
const fused = new Map();
|
|
103
133
|
for (const ranked of signals) {
|
|
104
|
-
|
|
134
|
+
for (const candidate of ranked) {
|
|
105
135
|
const key = candidate.id.toString();
|
|
106
|
-
const
|
|
107
|
-
const
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
...(candidate.score !== undefined ? { score: candidate.score } : {})
|
|
112
|
-
};
|
|
113
|
-
byId.set(key, held === undefined
|
|
114
|
-
? { ...candidate, score: contribution, signals: [signal] }
|
|
136
|
+
const first = candidate.signals[0];
|
|
137
|
+
const contribution = first === undefined ? 0 : 1 / (RRF_K + first.rank);
|
|
138
|
+
const held = fused.get(key);
|
|
139
|
+
fused.set(key, held === undefined
|
|
140
|
+
? { ...candidate, score: contribution, signals: [...candidate.signals] }
|
|
115
141
|
: {
|
|
116
142
|
...held,
|
|
117
143
|
score: (held.score ?? 0) + contribution,
|
|
118
|
-
signals: [...held.signals,
|
|
144
|
+
signals: [...held.signals, ...candidate.signals]
|
|
119
145
|
});
|
|
120
|
-
}
|
|
146
|
+
}
|
|
121
147
|
}
|
|
122
|
-
return [...
|
|
148
|
+
return [...fused.values()]
|
|
123
149
|
.sort((left, right) => (right.score ?? 0) - (left.score ?? 0))
|
|
124
150
|
.slice(0, limit);
|
|
125
151
|
}
|
package/dist/memory/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAmB,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAGjE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;CACd,CAAA;AAIV,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,YAAY;CAChB,CAAA;AAIV,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAW,CAAA;AAG3E,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;CACR,CAAA;AAIV,MAAM,UAAU,GAAyC;IACvD,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;IACpB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IACvB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;IACvB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;IACtB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxB,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;CAC1B,CAAA;AAED,MAAM,UAAU,WAAW,CAAC,IAAgB;IAC1C,IAAI,IAAI,KAAK,UAAU,CAAC,OAAO;QAAE,OAAO,WAAW,CAAC,QAAQ,CAAA;IAC5D,IAAI,IAAI,KAAK,UAAU,CAAC,SAAS;QAAE,OAAO,WAAW,CAAC,UAAU,CAAA;IAChE,OAAO,WAAW,CAAC,QAAQ,CAAA;AAC7B,CAAC;AAED,MAAM,OAAO,QAAQ;IACkB,KAAK;IAA1C,YAAqC,KAAa;qBAAb,KAAK;IAAW,CAAC;IAEtD,MAAM,CAAC,GAAG,CAAC,MAAmB;QAC5B,OAAO,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,KAAa;QAC3B,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACtC,MAAM,IAAI,YAAY,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QACvF,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAY;QACvB,OAAO,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,KAAkB,EAAE,IAAgB,EAAE,IAAgB;QACnE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,MAAM,QAAQ,GAAG;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;YAClC,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
+
import type { Laser } from "../client/laser.js";
|
|
1
2
|
import { MemoryId, MemoryKind, type Embedder, type Feedback, type Memory, type MemoryItem, type MemoryQuery, type MemoryScope } from "./types.js";
|
|
2
|
-
export declare
|
|
3
|
-
embed(): Promise<readonly number[]>;
|
|
4
|
-
}
|
|
3
|
+
export declare const WITH_EMBEDDER: unique symbol;
|
|
5
4
|
export declare class VectorMemory implements Memory {
|
|
6
5
|
private readonly embedder;
|
|
7
6
|
private readonly laser?;
|
|
8
7
|
private readonly items;
|
|
9
|
-
constructor(embedder
|
|
8
|
+
constructor(embedder: Embedder, laser?: Laser | undefined);
|
|
9
|
+
/** A vector memory whose writes run through the governor enrolled on
|
|
10
|
+
* `laser`. Without `embedder`, a write or a semantic recall throws
|
|
11
|
+
* `ConfigError`. */
|
|
10
12
|
static governed(laser: Laser, embedder?: Embedder): VectorMemory;
|
|
11
13
|
remember(scope: MemoryScope, payload: Uint8Array): Promise<MemoryId>;
|
|
12
14
|
append(scope: MemoryScope, id: MemoryId, kind: MemoryKind, payload: Uint8Array): Promise<MemoryId>;
|
|
13
15
|
recall(scope: MemoryScope, query: MemoryQuery): Promise<readonly MemoryItem[]>;
|
|
14
16
|
improve(scope: MemoryScope, feedback: Feedback): Promise<MemoryId>;
|
|
15
17
|
forget(scope: MemoryScope, id: MemoryId): Promise<void>;
|
|
16
|
-
|
|
18
|
+
/** A fresh, empty index over `embedder` that keeps this memory's governance. */
|
|
19
|
+
[WITH_EMBEDDER](embedder: Embedder): VectorMemory;
|
|
17
20
|
private govern;
|
|
18
21
|
}
|
|
19
|
-
import type { Laser } from "../client/laser.js";
|
|
20
22
|
//# sourceMappingURL=vector-memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-memory.d.ts","sourceRoot":"","sources":["../../src/memory/vector-memory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vector-memory.d.ts","sourceRoot":"","sources":["../../src/memory/vector-memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAK/C,OAAO,EAEL,QAAQ,EACR,UAAU,EAGV,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAA;AAuBnB,eAAO,MAAM,aAAa,eAAyC,CAAA;AAEnE,qBAAa,YAAa,YAAW,MAAM;IAIvC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAJzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAE1C,YACmB,QAAQ,EAAE,QAAQ,EAClB,KAAK,CAAC,EAAE,KAAK,YAAA,EAC5B;IAEJ;;wBAEoB;IACpB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAE/D;IAEK,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAEzE;IAEK,MAAM,CACV,KAAK,EAAE,WAAW,EAClB,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,QAAQ,CAAC,CAgCnB;IAEK,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAmEnF;IAEK,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAYvE;IAEK,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAM5D;IAOD,gFAAgF;IAChF,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAEhD;YAEa,MAAM;CAoBrB"}
|
|
@@ -1,26 +1,36 @@
|
|
|
1
|
+
import { ConfigError, InvalidError, NoStreamError } from "../client/errors.js";
|
|
2
|
+
import { INTERNAL_GOVERN } from "../client/internals.js";
|
|
3
|
+
import { ActionKind } from "../govern.js";
|
|
4
|
+
import { AgentTopic } from "../provenance/agent-topic.js";
|
|
5
|
+
import { decodeOne } from "../wire/cbor.js";
|
|
6
|
+
import { decodeMemoryRecord, encodeMemoryRecordFrame } from "../wire/memory.js";
|
|
1
7
|
import { Lifetime, MemoryId, MemoryKind, RecallStrategy, ZERO_CONVERSATION } from "./types.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
8
|
+
// Stands in for an embedder a governed vector handle was opened without. Any
|
|
9
|
+
// write or semantic recall needs a vector, so it fails with the registration hint.
|
|
10
|
+
const MISSING_EMBEDDER = {
|
|
11
|
+
embed: () => Promise.reject(new ConfigError('this memory needs an embedder for semantic recall: pass one to laser.memoryWith(namespace, "vector", embedder)'))
|
|
12
|
+
};
|
|
13
|
+
// Rebuilds a vector memory over another embedder with the same governance,
|
|
14
|
+
// the seam `MemoryHandle.embedder` configures through.
|
|
15
|
+
export const WITH_EMBEDDER = Symbol("laser.internal.with-embedder");
|
|
7
16
|
export class VectorMemory {
|
|
8
17
|
embedder;
|
|
9
18
|
laser;
|
|
10
19
|
items = [];
|
|
11
|
-
constructor(embedder
|
|
20
|
+
constructor(embedder, laser) {
|
|
12
21
|
this.embedder = embedder;
|
|
13
22
|
this.laser = laser;
|
|
14
23
|
}
|
|
24
|
+
/** A vector memory whose writes run through the governor enrolled on
|
|
25
|
+
* `laser`. Without `embedder`, a write or a semantic recall throws
|
|
26
|
+
* `ConfigError`. */
|
|
15
27
|
static governed(laser, embedder) {
|
|
16
|
-
return new VectorMemory(embedder, laser);
|
|
28
|
+
return new VectorMemory(embedder ?? MISSING_EMBEDDER, laser);
|
|
17
29
|
}
|
|
18
30
|
async remember(scope, payload) {
|
|
19
31
|
return this.append(scope, MemoryId.new(), MemoryKind.Fact, payload);
|
|
20
32
|
}
|
|
21
33
|
async append(scope, id, kind, payload) {
|
|
22
|
-
if (this.items.some((entry) => entry.id.equals(id)))
|
|
23
|
-
return id;
|
|
24
34
|
const governed = await this.govern(scope, {
|
|
25
35
|
kind: "item",
|
|
26
36
|
id: id.toString(),
|
|
@@ -28,8 +38,12 @@ export class VectorMemory {
|
|
|
28
38
|
body: payload
|
|
29
39
|
});
|
|
30
40
|
if (governed.kind !== "item")
|
|
31
|
-
throw new
|
|
41
|
+
throw new InvalidError("a memory-item governor modification must remain an item");
|
|
32
42
|
const embedding = await this.embedder.embed(new TextDecoder().decode(governed.body));
|
|
43
|
+
// Checked after the awaits, so two concurrent writes of one content id
|
|
44
|
+
// still store one item.
|
|
45
|
+
if (this.items.some((entry) => entry.id.equals(id)))
|
|
46
|
+
return id;
|
|
33
47
|
const provenance = {
|
|
34
48
|
conversationId: scope.conversation ?? ZERO_CONVERSATION,
|
|
35
49
|
...(scope.agent !== undefined ? { agent: scope.agent } : {}),
|
|
@@ -52,6 +66,8 @@ export class VectorMemory {
|
|
|
52
66
|
}
|
|
53
67
|
async recall(scope, query) {
|
|
54
68
|
const limit = query.limit ?? 50;
|
|
69
|
+
if (!Number.isSafeInteger(limit) || limit < 0)
|
|
70
|
+
throw new InvalidError("memory recall limit must be a non-negative safe integer");
|
|
55
71
|
const strategy = query.strategy ?? RecallStrategy.Auto;
|
|
56
72
|
const text = query.semantic;
|
|
57
73
|
const wantsSemantic = text !== undefined &&
|
|
@@ -63,15 +79,16 @@ export class VectorMemory {
|
|
|
63
79
|
const queryTokens = wantsKeyword ? tokenize(text) : undefined;
|
|
64
80
|
const agent = query.agent ?? scope.agent;
|
|
65
81
|
const matched = this.items.filter((entry) => matchesScope(entry.scope, scope, agent));
|
|
66
|
-
|
|
82
|
+
// Recent is write order only, so feedback never reorders it.
|
|
83
|
+
if (strategy === RecallStrategy.Recent ||
|
|
84
|
+
(queryEmbedding === undefined && queryTokens === undefined && !matched.some(hasFeedback))) {
|
|
67
85
|
return matched
|
|
68
86
|
.slice()
|
|
69
87
|
.reverse()
|
|
70
88
|
.slice(0, limit)
|
|
71
89
|
.map((entry) => copyItem(entry.item));
|
|
72
90
|
}
|
|
73
|
-
|
|
74
|
-
.map((entry) => {
|
|
91
|
+
const scored = matched.map((entry) => {
|
|
75
92
|
const semantic = queryEmbedding === undefined ? undefined : cosine(queryEmbedding, entry.embedding);
|
|
76
93
|
const keyword = queryTokens === undefined ? undefined : keywordScore(queryTokens, entry.item.payload);
|
|
77
94
|
const score = entry.feedback + (semantic ?? 0) + (keyword ?? 0);
|
|
@@ -84,10 +101,28 @@ export class VectorMemory {
|
|
|
84
101
|
signals.push({ strategy: RecallStrategy.Auto, rank: 0, score: entry.feedback });
|
|
85
102
|
}
|
|
86
103
|
return { entry, score, signals };
|
|
87
|
-
})
|
|
104
|
+
});
|
|
105
|
+
const ranks = new Map();
|
|
106
|
+
for (const strategy of [RecallStrategy.Semantic, RecallStrategy.Keyword, RecallStrategy.Auto]) {
|
|
107
|
+
const active = scored
|
|
108
|
+
.flatMap(({ entry, signals }) => {
|
|
109
|
+
const signal = signals.find((candidate) => candidate.strategy === strategy);
|
|
110
|
+
return signal === undefined ? [] : [{ id: entry.id.toString(), score: signal.score ?? 0 }];
|
|
111
|
+
})
|
|
112
|
+
.sort((left, right) => right.score - left.score);
|
|
113
|
+
ranks.set(strategy, new Map(active.map(({ id }, rank) => [id, rank])));
|
|
114
|
+
}
|
|
115
|
+
return scored
|
|
88
116
|
.sort((left, right) => right.score - left.score)
|
|
89
117
|
.slice(0, limit)
|
|
90
|
-
.map(({ entry, score, signals }) => ({
|
|
118
|
+
.map(({ entry, score, signals }) => ({
|
|
119
|
+
...copyItem(entry.item),
|
|
120
|
+
score,
|
|
121
|
+
signals: signals.map((signal) => ({
|
|
122
|
+
...signal,
|
|
123
|
+
rank: ranks.get(signal.strategy)?.get(entry.id.toString()) ?? 0
|
|
124
|
+
}))
|
|
125
|
+
}));
|
|
91
126
|
}
|
|
92
127
|
async improve(scope, feedback) {
|
|
93
128
|
const governed = await this.govern(scope, {
|
|
@@ -96,7 +131,7 @@ export class VectorMemory {
|
|
|
96
131
|
weight: feedback.weight
|
|
97
132
|
});
|
|
98
133
|
if (governed.kind !== "feedback") {
|
|
99
|
-
throw new
|
|
134
|
+
throw new InvalidError("a memory-feedback governor modification must remain feedback");
|
|
100
135
|
}
|
|
101
136
|
const entry = this.items.find((candidate) => candidate.id.toString() === governed.target);
|
|
102
137
|
if (entry !== undefined)
|
|
@@ -106,14 +141,19 @@ export class VectorMemory {
|
|
|
106
141
|
async forget(scope, id) {
|
|
107
142
|
const governed = await this.govern(scope, { kind: "forget", target: id.toString() });
|
|
108
143
|
if (governed.kind !== "forget")
|
|
109
|
-
throw new
|
|
144
|
+
throw new InvalidError("a memory-forget governor modification must remain a tombstone");
|
|
110
145
|
const index = this.items.findIndex((entry) => entry.id.toString() === governed.target);
|
|
111
146
|
if (index !== -1)
|
|
112
147
|
this.items.splice(index, 1);
|
|
113
148
|
}
|
|
149
|
+
/** @internal */
|
|
114
150
|
size() {
|
|
115
151
|
return this.items.length;
|
|
116
152
|
}
|
|
153
|
+
/** A fresh, empty index over `embedder` that keeps this memory's governance. */
|
|
154
|
+
[WITH_EMBEDDER](embedder) {
|
|
155
|
+
return new VectorMemory(embedder, this.laser);
|
|
156
|
+
}
|
|
117
157
|
async govern(scope, record) {
|
|
118
158
|
if (this.laser === undefined)
|
|
119
159
|
return record;
|
|
@@ -125,7 +165,7 @@ export class VectorMemory {
|
|
|
125
165
|
kind: ActionKind.MemoryWrite,
|
|
126
166
|
stream,
|
|
127
167
|
topic: AgentTopic.Audit,
|
|
128
|
-
...(scope.agent !== undefined ? { source: scope.agent.
|
|
168
|
+
...(scope.agent !== undefined ? { source: scope.agent.asStr() } : {}),
|
|
129
169
|
...(scope.conversation !== undefined ? { conversation: scope.conversation } : {}),
|
|
130
170
|
payload: encoded,
|
|
131
171
|
signed: false
|
|
@@ -144,9 +184,7 @@ function matchesScope(stored, requested, agent) {
|
|
|
144
184
|
(agent === undefined || stored.agent?.equals(agent) === true) &&
|
|
145
185
|
(requested.conversation === undefined ||
|
|
146
186
|
stored.conversation?.equals(requested.conversation) === true) &&
|
|
147
|
-
(requested.
|
|
148
|
-
(requested.lifetime === undefined ||
|
|
149
|
-
(stored.lifetime ?? Lifetime.Session) === requested.lifetime));
|
|
187
|
+
(requested.app === undefined || stored.app === requested.app));
|
|
150
188
|
}
|
|
151
189
|
function hasFeedback(entry) {
|
|
152
190
|
return entry.feedback !== 0;
|
|
@@ -158,14 +196,13 @@ function cosine(left, right) {
|
|
|
158
196
|
let dot = 0;
|
|
159
197
|
let leftNorm = 0;
|
|
160
198
|
let rightNorm = 0;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
const leftValue = left[index] ?? 0;
|
|
164
|
-
const rightValue = right[index] ?? 0;
|
|
165
|
-
dot += leftValue * rightValue;
|
|
166
|
-
leftNorm += leftValue * leftValue;
|
|
167
|
-
rightNorm += rightValue * rightValue;
|
|
199
|
+
for (let index = 0; index < Math.min(left.length, right.length); index += 1) {
|
|
200
|
+
dot += (left[index] ?? 0) * (right[index] ?? 0);
|
|
168
201
|
}
|
|
202
|
+
for (const component of left)
|
|
203
|
+
leftNorm += component * component;
|
|
204
|
+
for (const component of right)
|
|
205
|
+
rightNorm += component * component;
|
|
169
206
|
return leftNorm === 0 || rightNorm === 0 ? 0 : dot / Math.sqrt(leftNorm * rightNorm);
|
|
170
207
|
}
|
|
171
208
|
function tokenize(text) {
|
|
@@ -184,10 +221,4 @@ function keywordScore(query, payload) {
|
|
|
184
221
|
hits += 1;
|
|
185
222
|
return hits / query.size;
|
|
186
223
|
}
|
|
187
|
-
import { NoStreamError } from "../client/errors.js";
|
|
188
|
-
import { INTERNAL_GOVERN } from "../client/internals.js";
|
|
189
|
-
import { ActionKind } from "../govern.js";
|
|
190
|
-
import { AgentTopic } from "../provenance/agent-topic.js";
|
|
191
|
-
import { decodeOne } from "../wire/cbor.js";
|
|
192
|
-
import { decodeMemoryRecord, encodeMemoryRecordFrame } from "../wire/memory.js";
|
|
193
224
|
//# sourceMappingURL=vector-memory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-memory.js","sourceRoot":"","sources":["../../src/memory/vector-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,cAAc,EACd,iBAAiB,EAQlB,MAAM,YAAY,CAAA;AAUnB,MAAM,
|
|
1
|
+
{"version":3,"file":"vector-memory.js","sourceRoot":"","sources":["../../src/memory/vector-memory.ts"],"names":[],"mappings":"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"}
|
package/dist/memory.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export { LogMemory } from "./memory/log-memory.js";
|
|
2
|
-
export { MemoryBackend, MemoryHandle, RecallBuilder, RememberBuilder } from "./memory/handle.js";
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export
|
|
6
|
-
export {
|
|
2
|
+
export { MemoryBackend, MemoryHandle, RecallBuilder, RememberBuilder, RerankedMemory } from "./memory/handle.js";
|
|
3
|
+
export type { MemoryBackendKind } from "./memory/handle.js";
|
|
4
|
+
export { DEFAULT_MEMORY_TOPIC_TTL_MS, MemoryTopicBuilder } from "./memory/topic.js";
|
|
5
|
+
export { Lifetime, MemoryClass, MemoryId, MemoryKind, RecallStrategy, fuseReciprocalRank, memoryClass, memoryItemJson, memoryItemText, memoryKindCode, toContextBlock } from "./memory/types.js";
|
|
6
|
+
export type { ConsolidateOptions, ConsolidationReport, Consolidator, Embedder, Feedback, Memory, MemoryItem, MemoryQuery, MemoryScope, RecallSignal, Reranker, Summarizer } from "./memory/types.js";
|
|
7
|
+
export { VectorMemory } from "./memory/vector-memory.js";
|
|
7
8
|
//# sourceMappingURL=memory.d.ts.map
|
package/dist/memory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACf,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,UAAU,EACX,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA"}
|
package/dist/memory.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { LogMemory } from "./memory/log-memory.js";
|
|
2
|
-
export { MemoryBackend, MemoryHandle, RecallBuilder, RememberBuilder } from "./memory/handle.js";
|
|
3
|
-
export { MemoryTopicBuilder } from "./memory/topic.js";
|
|
4
|
-
export { Lifetime, MemoryClass, MemoryId, MemoryKind, RecallStrategy, fuseReciprocalRank, memoryClass, toContextBlock } from "./memory/types.js";
|
|
5
|
-
export { VectorMemory
|
|
2
|
+
export { MemoryBackend, MemoryHandle, RecallBuilder, RememberBuilder, RerankedMemory } from "./memory/handle.js";
|
|
3
|
+
export { DEFAULT_MEMORY_TOPIC_TTL_MS, MemoryTopicBuilder } from "./memory/topic.js";
|
|
4
|
+
export { Lifetime, MemoryClass, MemoryId, MemoryKind, RecallStrategy, fuseReciprocalRank, memoryClass, memoryItemJson, memoryItemText, memoryKindCode, toContextBlock } from "./memory/types.js";
|
|
5
|
+
export { VectorMemory } from "./memory/vector-memory.js";
|
|
6
6
|
//# sourceMappingURL=memory.js.map
|
package/dist/memory.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACf,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,mBAAmB,CAAA;AAe1B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA"}
|
|
@@ -9,6 +9,8 @@ export declare const AgentTopic: {
|
|
|
9
9
|
readonly Registry: "agent.registry";
|
|
10
10
|
readonly WorkflowJournal: "agent.workflow_journal";
|
|
11
11
|
readonly Dlq: "agent.dlq";
|
|
12
|
+
/** Any other topic, by name. */
|
|
13
|
+
readonly Custom: (name: string) => string;
|
|
12
14
|
};
|
|
13
|
-
export type AgentTopic = (typeof AgentTopic)[keyof typeof AgentTopic]
|
|
15
|
+
export type AgentTopic = Exclude<(typeof AgentTopic)[keyof typeof AgentTopic], typeof AgentTopic.Custom>;
|
|
14
16
|
//# sourceMappingURL=agent-topic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-topic.d.ts","sourceRoot":"","sources":["../../src/provenance/agent-topic.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;aACrB,QAAQ,EAAE,gBAAgB;aAC1B,SAAS,EAAE,iBAAiB;aAC5B,SAAS,EAAE,kBAAkB;aAC7B,WAAW,EAAE,oBAAoB;aACjC,KAAK,EAAE,cAAc;aACrB,UAAU,EAAE,mBAAmB;aAC/B,KAAK,EAAE,aAAa;aACpB,QAAQ,EAAE,gBAAgB;aAC1B,eAAe,EAAE,wBAAwB;aACzC,GAAG,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"agent-topic.d.ts","sourceRoot":"","sources":["../../src/provenance/agent-topic.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;aACrB,QAAQ,EAAE,gBAAgB;aAC1B,SAAS,EAAE,iBAAiB;aAC5B,SAAS,EAAE,kBAAkB;aAC7B,WAAW,EAAE,oBAAoB;aACjC,KAAK,EAAE,cAAc;aACrB,UAAU,EAAE,mBAAmB;aAC/B,KAAK,EAAE,aAAa;aACpB,QAAQ,EAAE,gBAAgB;aAC1B,eAAe,EAAE,wBAAwB;aACzC,GAAG,EAAE,WAAW;IAChB,gCAAgC;aAChC,MAAM,SAAS,MAAM,KAAG,MAAM;CACtB,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,OAAO,CAC9B,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,EAC5C,OAAO,UAAU,CAAC,MAAM,CACzB,CAAA"}
|
|
@@ -8,6 +8,8 @@ export const AgentTopic = {
|
|
|
8
8
|
Audit: "agent.audit",
|
|
9
9
|
Registry: "agent.registry",
|
|
10
10
|
WorkflowJournal: "agent.workflow_journal",
|
|
11
|
-
Dlq: "agent.dlq"
|
|
11
|
+
Dlq: "agent.dlq",
|
|
12
|
+
/** Any other topic, by name. */
|
|
13
|
+
Custom: (name) => name
|
|
12
14
|
};
|
|
13
15
|
//# sourceMappingURL=agent-topic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-topic.js","sourceRoot":"","sources":["../../src/provenance/agent-topic.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,iBAAiB;IAC5B,SAAS,EAAE,kBAAkB;IAC7B,WAAW,EAAE,oBAAoB;IACjC,KAAK,EAAE,cAAc;IACrB,UAAU,EAAE,mBAAmB;IAC/B,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,gBAAgB;IAC1B,eAAe,EAAE,wBAAwB;IACzC,GAAG,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"agent-topic.js","sourceRoot":"","sources":["../../src/provenance/agent-topic.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,QAAQ,EAAE,gBAAgB;IAC1B,SAAS,EAAE,iBAAiB;IAC5B,SAAS,EAAE,kBAAkB;IAC7B,WAAW,EAAE,oBAAoB;IACjC,KAAK,EAAE,cAAc;IACrB,UAAU,EAAE,mBAAmB;IAC/B,KAAK,EAAE,aAAa;IACpB,QAAQ,EAAE,gBAAgB;IAC1B,eAAe,EAAE,wBAAwB;IACzC,GAAG,EAAE,WAAW;IAChB,gCAAgC;IAChC,MAAM,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI;CAC9B,CAAA"}
|