@spine-event-engine/storage-datastore 2.0.0-snapshot.22 → 2.0.0-snapshot.23
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 +5 -0
- package/REFERENCE.md +41 -1
- package/dist/datastore/agent-execution.d.ts +337 -0
- package/dist/datastore/agent-execution.d.ts.map +1 -0
- package/dist/datastore/agent-execution.js +789 -0
- package/dist/datastore/agent-execution.js.map +1 -0
- package/dist/datastore/agent-history.d.ts +108 -0
- package/dist/datastore/agent-history.d.ts.map +1 -0
- package/dist/datastore/agent-history.js +219 -0
- package/dist/datastore/agent-history.js.map +1 -0
- package/dist/datastore/record-storage.d.ts +24 -0
- package/dist/datastore/record-storage.d.ts.map +1 -1
- package/dist/datastore/record-storage.js +43 -3
- package/dist/datastore/record-storage.js.map +1 -1
- package/dist/datastore/storage-factory.d.ts +118 -12
- package/dist/datastore/storage-factory.d.ts.map +1 -1
- package/dist/datastore/storage-factory.js +303 -0
- package/dist/datastore/storage-factory.js.map +1 -1
- package/dist/datastore/tenant-catalog.d.ts +9 -1
- package/dist/datastore/tenant-catalog.d.ts.map +1 -1
- package/dist/datastore/tenant-catalog.js +225 -1
- package/dist/datastore/tenant-catalog.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.yaml +24 -1
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-execution.js","sourceRoot":"","sources":["../../src/datastore/agent-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { AgentHistoryEntry } from "@spine-event-engine/proto/agent";
|
|
2
|
+
import type { AgentHistoryRecord } from "@spine-event-engine/proto/generated/spine/server/agent/history_record_pb.js";
|
|
3
|
+
import { type AgentHistoryPage, type AgentHistoryRead, type AgentHistoryStorage, type AgentHistoryStorageInput } from "@spine-event-engine/storage/provider";
|
|
4
|
+
import { DatastoreRecordStorage } from "./record-storage.js";
|
|
5
|
+
/**
|
|
6
|
+
* Hashes complete identities into bounded physical IDs and indexed scope keys.
|
|
7
|
+
*/
|
|
8
|
+
export declare const AgentHistoryHash: {
|
|
9
|
+
/**
|
|
10
|
+
* Calculates the fixed-width digest of a complete logical identity.
|
|
11
|
+
*
|
|
12
|
+
* @param value Complete logical identity.
|
|
13
|
+
* @returns Full SHA-256 hex digest.
|
|
14
|
+
*/
|
|
15
|
+
value(value: string): string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Stores Agent history in the shared Datastore immutable record kind.
|
|
19
|
+
*
|
|
20
|
+
* @typeParam Id Typed Agent identifier.
|
|
21
|
+
*/
|
|
22
|
+
export declare class DatastoreAgentHistory<Id> implements AgentHistoryStorage<Id> {
|
|
23
|
+
#private;
|
|
24
|
+
private readonly input;
|
|
25
|
+
private readonly records;
|
|
26
|
+
/**
|
|
27
|
+
* Binds one typed Agent repository to the provider record handle.
|
|
28
|
+
*
|
|
29
|
+
* @param input Repository and complete tenant scope.
|
|
30
|
+
* @param records Native record-family storage.
|
|
31
|
+
*/
|
|
32
|
+
constructor(input: AgentHistoryStorageInput<Id>, records: DatastoreRecordStorage<string, AgentHistoryRecord>);
|
|
33
|
+
/**
|
|
34
|
+
* Writes one original entry or confirms byte-identical content.
|
|
35
|
+
*
|
|
36
|
+
* @param entityId Typed Agent identifier.
|
|
37
|
+
* @param entry Complete history entry.
|
|
38
|
+
* @returns Completion after immutable storage confirms the entry.
|
|
39
|
+
*/
|
|
40
|
+
append(entityId: Id, entry: AgentHistoryEntry): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Reads a bounded indexed page in full Timestamp/category/UTF-8 order.
|
|
43
|
+
*
|
|
44
|
+
* @param request Typed Agent, view, continuation, and response limits.
|
|
45
|
+
* @returns Original entries and continuation status.
|
|
46
|
+
*/
|
|
47
|
+
read(request: AgentHistoryRead<Id>): Promise<AgentHistoryPage>;
|
|
48
|
+
/**
|
|
49
|
+
|
|
50
|
+
* Closes this handle without deleting stored records.
|
|
51
|
+
|
|
52
|
+
*/
|
|
53
|
+
close(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Reads bounded native pages with complete scope and view predicates.
|
|
56
|
+
*
|
|
57
|
+
* @param agentKey Canonical Agent key.
|
|
58
|
+
* @param request View and response bounds.
|
|
59
|
+
* @param after Exclusive encoded order key.
|
|
60
|
+
* @param limit Maximum native rows for this chunk.
|
|
61
|
+
* @returns Complete original stored records.
|
|
62
|
+
*/
|
|
63
|
+
private fetch;
|
|
64
|
+
/**
|
|
65
|
+
* Adds one indexed category or conversation predicate.
|
|
66
|
+
*
|
|
67
|
+
* @param request Selected history view.
|
|
68
|
+
* @param filters Mutable native Datastore filters.
|
|
69
|
+
*/
|
|
70
|
+
private viewPredicate;
|
|
71
|
+
/**
|
|
72
|
+
* Rejects a digest collision rather than exposing another repository's row.
|
|
73
|
+
*
|
|
74
|
+
* @param record Decoded original storage envelope.
|
|
75
|
+
* @param agentKey Complete requested Agent key.
|
|
76
|
+
* @param request Selected view and conversation.
|
|
77
|
+
* @returns Record after its complete scope is checked.
|
|
78
|
+
*/
|
|
79
|
+
private assertScope;
|
|
80
|
+
/**
|
|
81
|
+
* Validates view identity and complete-key continuation category.
|
|
82
|
+
*
|
|
83
|
+
* @param request View and continuation key.
|
|
84
|
+
*/
|
|
85
|
+
private validateView;
|
|
86
|
+
/**
|
|
87
|
+
* Converts a typed Agent ID to its canonical key.
|
|
88
|
+
*
|
|
89
|
+
* @param id Typed Agent identifier.
|
|
90
|
+
* @returns Canonical storage key.
|
|
91
|
+
*/
|
|
92
|
+
private key;
|
|
93
|
+
/**
|
|
94
|
+
|
|
95
|
+
* Rejects calls after this handle closes.
|
|
96
|
+
|
|
97
|
+
*/
|
|
98
|
+
private requireOpen;
|
|
99
|
+
/**
|
|
100
|
+
* Compares complete stored Proto bytes for immutable repeats.
|
|
101
|
+
*
|
|
102
|
+
* @param left Existing complete storage record.
|
|
103
|
+
* @param right Requested complete storage record.
|
|
104
|
+
* @returns Whether both records have identical serialized bytes.
|
|
105
|
+
*/
|
|
106
|
+
private sameRecord;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=agent-history.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-history.d.ts","sourceRoot":"","sources":["../../src/datastore/agent-history.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6EAA6E,CAAC;AACtH,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC9B,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,sBAAsB,EAGvB,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B;;;;;OAKG;iBACU,MAAM,GAAG,MAAM;CAG7B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,qBAAqB,CAAC,EAAE,CAAE,YAAW,mBAAmB,CAAC,EAAE,CAAC;;IAarE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B;;;;;OAKG;gBAEgB,KAAK,EAAE,wBAAwB,CAAC,EAAE,CAAC,EACnC,OAAO,EAAE,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAG9E;;;;;;OAMG;IACG,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnE;;;;;OAKG;IACG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWpE;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAMb;;;;;;;;OAQG;YACW,KAAK;IA+BnB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAcrB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IAgBnB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAQpB;;;;;OAKG;IACH,OAAO,CAAC,GAAG;IAMX;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;CAKnB"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026, CodeMatters. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
|
5
|
+
* in compliance with the License. You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
10
|
+
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
11
|
+
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
|
+
* the License.
|
|
13
|
+
*/
|
|
14
|
+
import { createHash } from "node:crypto";
|
|
15
|
+
import { toBinary } from "@bufbuild/protobuf";
|
|
16
|
+
import { AgentHistoryRecordSchema } from "@spine-event-engine/proto/generated/spine/server/agent/history_record_pb.js";
|
|
17
|
+
import { AgentHistoryKeys, AgentHistoryPages, } from "@spine-event-engine/storage/provider";
|
|
18
|
+
import { AgentHistoryRecords } from "@spine-event-engine/storage/provider";
|
|
19
|
+
import { DatastoreRecordStorage, } from "./record-storage.js";
|
|
20
|
+
/**
|
|
21
|
+
* Hashes complete identities into bounded physical IDs and indexed scope keys.
|
|
22
|
+
*/
|
|
23
|
+
export const AgentHistoryHash = {
|
|
24
|
+
/**
|
|
25
|
+
* Calculates the fixed-width digest of a complete logical identity.
|
|
26
|
+
*
|
|
27
|
+
* @param value Complete logical identity.
|
|
28
|
+
* @returns Full SHA-256 hex digest.
|
|
29
|
+
*/
|
|
30
|
+
value(value) {
|
|
31
|
+
return createHash("sha256").update(value, "utf8").digest("hex");
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Stores Agent history in the shared Datastore immutable record kind.
|
|
36
|
+
*
|
|
37
|
+
* @typeParam Id Typed Agent identifier.
|
|
38
|
+
*/
|
|
39
|
+
export class DatastoreAgentHistory {
|
|
40
|
+
input;
|
|
41
|
+
records;
|
|
42
|
+
/**
|
|
43
|
+
* Records whether this handle accepts calls.
|
|
44
|
+
*/
|
|
45
|
+
#open = true;
|
|
46
|
+
/**
|
|
47
|
+
* Binds one typed Agent repository to the provider record handle.
|
|
48
|
+
*
|
|
49
|
+
* @param input Repository and complete tenant scope.
|
|
50
|
+
* @param records Native record-family storage.
|
|
51
|
+
*/
|
|
52
|
+
constructor(input, records) {
|
|
53
|
+
this.input = input;
|
|
54
|
+
this.records = records;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Writes one original entry or confirms byte-identical content.
|
|
58
|
+
*
|
|
59
|
+
* @param entityId Typed Agent identifier.
|
|
60
|
+
* @param entry Complete history entry.
|
|
61
|
+
* @returns Completion after immutable storage confirms the entry.
|
|
62
|
+
*/
|
|
63
|
+
async append(entityId, entry) {
|
|
64
|
+
this.requireOpen();
|
|
65
|
+
if (AgentHistoryKeys.indexValue(AgentHistoryKeys.fromEntry(entry)).length > 1500)
|
|
66
|
+
throw new RangeError("Agent history ordering key exceeds the Datastore indexed-value limit.");
|
|
67
|
+
const record = AgentHistoryRecords.record(this.input.stateType, this.key(entityId), entry);
|
|
68
|
+
const id = AgentHistoryHash.value(AgentHistoryRecords.slot(record));
|
|
69
|
+
if (await this.records.compareAndSet(id, undefined, record))
|
|
70
|
+
return;
|
|
71
|
+
const stored = await this.records.read(id);
|
|
72
|
+
if (stored !== undefined && this.sameRecord(stored, record))
|
|
73
|
+
return;
|
|
74
|
+
throw new Error("Datastore Agent history record ID conflicts with immutable content.");
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Reads a bounded indexed page in full Timestamp/category/UTF-8 order.
|
|
78
|
+
*
|
|
79
|
+
* @param request Typed Agent, view, continuation, and response limits.
|
|
80
|
+
* @returns Original entries and continuation status.
|
|
81
|
+
*/
|
|
82
|
+
async read(request) {
|
|
83
|
+
this.requireOpen();
|
|
84
|
+
const agentKey = this.key(request.entityId);
|
|
85
|
+
const after = request.after === undefined ? undefined : AgentHistoryKeys.indexValue(request.after);
|
|
86
|
+
this.validateView(request);
|
|
87
|
+
return AgentHistoryPages.read(request, after, (cursor, limit) => this.fetch(agentKey, request, cursor, limit));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
|
|
91
|
+
* Closes this handle without deleting stored records.
|
|
92
|
+
|
|
93
|
+
*/
|
|
94
|
+
close() {
|
|
95
|
+
if (!this.#open)
|
|
96
|
+
return;
|
|
97
|
+
this.#open = false;
|
|
98
|
+
this.records.close();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Reads bounded native pages with complete scope and view predicates.
|
|
102
|
+
*
|
|
103
|
+
* @param agentKey Canonical Agent key.
|
|
104
|
+
* @param request View and response bounds.
|
|
105
|
+
* @param after Exclusive encoded order key.
|
|
106
|
+
* @param limit Maximum native rows for this chunk.
|
|
107
|
+
* @returns Complete original stored records.
|
|
108
|
+
*/
|
|
109
|
+
async fetch(agentKey, request, after, limit) {
|
|
110
|
+
const filters = [
|
|
111
|
+
{
|
|
112
|
+
property: "scope_digest",
|
|
113
|
+
operator: "=",
|
|
114
|
+
value: AgentHistoryHash.value(AgentHistoryRecords.scope(this.input.stateType, agentKey)),
|
|
115
|
+
},
|
|
116
|
+
];
|
|
117
|
+
this.viewPredicate(request, filters);
|
|
118
|
+
if (after !== undefined)
|
|
119
|
+
filters.push({ property: "order_key", operator: ">", value: after });
|
|
120
|
+
const result = [];
|
|
121
|
+
let cursor;
|
|
122
|
+
do {
|
|
123
|
+
const page = await this.records.queryProviderPage({
|
|
124
|
+
filters,
|
|
125
|
+
order: [{ property: "order_key", direction: "asc" }],
|
|
126
|
+
limit: limit - result.length,
|
|
127
|
+
...(cursor === undefined ? {} : { cursor }),
|
|
128
|
+
});
|
|
129
|
+
result.push(...page.entries.map(({ record }) => this.assertScope(record, agentKey, request)));
|
|
130
|
+
cursor = page.cursor;
|
|
131
|
+
if (!page.hasMore)
|
|
132
|
+
break;
|
|
133
|
+
} while (result.length < limit && cursor !== undefined);
|
|
134
|
+
return result;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Adds one indexed category or conversation predicate.
|
|
138
|
+
*
|
|
139
|
+
* @param request Selected history view.
|
|
140
|
+
* @param filters Mutable native Datastore filters.
|
|
141
|
+
*/
|
|
142
|
+
viewPredicate(request, filters) {
|
|
143
|
+
if (request.view.kind === "full")
|
|
144
|
+
return;
|
|
145
|
+
if (request.view.kind === "conversation") {
|
|
146
|
+
const conversation = request.view.conversation.value;
|
|
147
|
+
filters.push({
|
|
148
|
+
property: "conversation_digest",
|
|
149
|
+
operator: "=",
|
|
150
|
+
value: AgentHistoryHash.value(conversation),
|
|
151
|
+
});
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
filters.push({ property: "category", operator: "=", value: request.view.kind });
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Rejects a digest collision rather than exposing another repository's row.
|
|
158
|
+
*
|
|
159
|
+
* @param record Decoded original storage envelope.
|
|
160
|
+
* @param agentKey Complete requested Agent key.
|
|
161
|
+
* @param request Selected view and conversation.
|
|
162
|
+
* @returns Record after its complete scope is checked.
|
|
163
|
+
*/
|
|
164
|
+
assertScope(record, agentKey, request) {
|
|
165
|
+
if (record.scope?.stateType !== this.input.stateType || record.scope.agentKey !== agentKey)
|
|
166
|
+
throw new Error("Datastore Agent history scope digest collides.");
|
|
167
|
+
if (request.view.kind === "conversation" &&
|
|
168
|
+
(record.entry?.item.case !== "conversationRecord" ||
|
|
169
|
+
record.entry.item.value.conversation?.value !== request.view.conversation.value))
|
|
170
|
+
throw new Error("Datastore Agent history conversation digest collides.");
|
|
171
|
+
return record;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Validates view identity and complete-key continuation category.
|
|
175
|
+
*
|
|
176
|
+
* @param request View and continuation key.
|
|
177
|
+
*/
|
|
178
|
+
validateView(request) {
|
|
179
|
+
const kind = request.view.kind;
|
|
180
|
+
if (kind === "conversation" && request.view.conversation.value.length === 0)
|
|
181
|
+
throw new TypeError("Conversation history requires a ConversationId.");
|
|
182
|
+
if (request.after !== undefined && kind !== "full" && request.after.category !== kind)
|
|
183
|
+
throw new TypeError("Agent history boundary category does not match the view.");
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Converts a typed Agent ID to its canonical key.
|
|
187
|
+
*
|
|
188
|
+
* @param id Typed Agent identifier.
|
|
189
|
+
* @returns Canonical storage key.
|
|
190
|
+
*/
|
|
191
|
+
key(id) {
|
|
192
|
+
const key = this.input.id.key(id);
|
|
193
|
+
if (key.length === 0)
|
|
194
|
+
throw new TypeError("Agent history Entity ID is required.");
|
|
195
|
+
return key;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
|
|
199
|
+
* Rejects calls after this handle closes.
|
|
200
|
+
|
|
201
|
+
*/
|
|
202
|
+
requireOpen() {
|
|
203
|
+
if (!this.#open)
|
|
204
|
+
throw new Error("Agent history storage handle is closed.");
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Compares complete stored Proto bytes for immutable repeats.
|
|
208
|
+
*
|
|
209
|
+
* @param left Existing complete storage record.
|
|
210
|
+
* @param right Requested complete storage record.
|
|
211
|
+
* @returns Whether both records have identical serialized bytes.
|
|
212
|
+
*/
|
|
213
|
+
sameRecord(left, right) {
|
|
214
|
+
const first = toBinary(AgentHistoryRecordSchema, left);
|
|
215
|
+
const second = toBinary(AgentHistoryRecordSchema, right);
|
|
216
|
+
return first.length === second.length && first.every((byte, index) => byte === second[index]);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=agent-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-history.js","sourceRoot":"","sources":["../../src/datastore/agent-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -119,6 +119,13 @@ export declare class DatastoreRecordStorage<I, R extends Message> extends Record
|
|
|
119
119
|
readonly data: Record<string, unknown>;
|
|
120
120
|
readonly excludeFromIndexes: readonly string[];
|
|
121
121
|
};
|
|
122
|
+
/**
|
|
123
|
+
* Returns the exact tenant-scoped native key for a typed record ID.
|
|
124
|
+
*
|
|
125
|
+
* @param id Complete persisted record identity.
|
|
126
|
+
* @returns Native key for the typed record identity.
|
|
127
|
+
*/
|
|
128
|
+
transactionKey(id: I): ReturnType<Datastore["key"]>;
|
|
122
129
|
/**
|
|
123
130
|
* Decodes one entity read by a provider-owned multi-record transaction.
|
|
124
131
|
*
|
|
@@ -147,6 +154,15 @@ export declare class DatastoreRecordStorage<I, R extends Message> extends Record
|
|
|
147
154
|
* @internal
|
|
148
155
|
*/
|
|
149
156
|
queryProviderPage(request: DatastorePageQuery): Promise<DatastorePage<I, R>>;
|
|
157
|
+
/**
|
|
158
|
+
* Reads at most two indexed successor records inside the caller's transaction.
|
|
159
|
+
*
|
|
160
|
+
* @param filters Native indexed query predicates.
|
|
161
|
+
* @param orderProperty Native property containing the complete order key.
|
|
162
|
+
* @param transaction Current native transaction.
|
|
163
|
+
* @returns Earliest scoped rows in native order.
|
|
164
|
+
*/
|
|
165
|
+
queryTransactionSuccessors(transaction: ReturnType<Datastore["transaction"]>, filters: readonly DatastoreRangeFilter[], orderProperty: string): Promise<readonly R[]>;
|
|
150
166
|
/**
|
|
151
167
|
* Deletes a bounded group of provider entries.
|
|
152
168
|
*
|
|
@@ -157,23 +173,27 @@ export declare class DatastoreRecordStorage<I, R extends Message> extends Record
|
|
|
157
173
|
deleteProviderEntries(entries: readonly RecordEntry<I, R>[]): Promise<void>;
|
|
158
174
|
/**
|
|
159
175
|
* Deletes the record at one storage slot.
|
|
176
|
+
*
|
|
160
177
|
* @param id The storage slot identifier.
|
|
161
178
|
* @returns Whether a record was deleted.
|
|
162
179
|
*/
|
|
163
180
|
protected deleteRecord(id: I): Promise<boolean>;
|
|
164
181
|
/**
|
|
165
182
|
* Returns records matching a query.
|
|
183
|
+
*
|
|
166
184
|
* @param _query The record query.
|
|
167
185
|
* @returns The matching storage entries.
|
|
168
186
|
*/
|
|
169
187
|
protected queryRecordEntries(_query: RecordQuery<I>): Promise<readonly RecordEntry<I, R>[]>;
|
|
170
188
|
/**
|
|
171
189
|
* Returns the supported Datastore query capabilities.
|
|
190
|
+
*
|
|
172
191
|
* @returns The supported query capabilities.
|
|
173
192
|
*/
|
|
174
193
|
protected queryCapabilities(): StorageQueryCapabilities;
|
|
175
194
|
/**
|
|
176
195
|
* Returns candidate records for a normalized query plan.
|
|
196
|
+
*
|
|
177
197
|
* @param plan The normalized query plan.
|
|
178
198
|
* @returns The candidate storage entries.
|
|
179
199
|
*/
|
|
@@ -210,12 +230,14 @@ export declare class DatastoreRecordStorage<I, R extends Message> extends Record
|
|
|
210
230
|
private planQuery;
|
|
211
231
|
/**
|
|
212
232
|
* Reads the record at one storage slot.
|
|
233
|
+
*
|
|
213
234
|
* @param id The storage slot identifier.
|
|
214
235
|
* @returns The stored record, if present.
|
|
215
236
|
*/
|
|
216
237
|
protected readRecord(id: I): Promise<R | undefined>;
|
|
217
238
|
/**
|
|
218
239
|
* Compares and conditionally replaces the record at one storage slot.
|
|
240
|
+
*
|
|
219
241
|
* @param id The storage slot identifier.
|
|
220
242
|
* @param expected The expected materialized record.
|
|
221
243
|
* @param next The replacement materialized record, if any.
|
|
@@ -233,12 +255,14 @@ export declare class DatastoreRecordStorage<I, R extends Message> extends Record
|
|
|
233
255
|
private attemptCompareAndSet;
|
|
234
256
|
/**
|
|
235
257
|
* Writes materialized records.
|
|
258
|
+
*
|
|
236
259
|
* @param records The materialized records to write.
|
|
237
260
|
* @returns Completes when the records are written.
|
|
238
261
|
*/
|
|
239
262
|
protected writeAllRecords(records: readonly ReturnType<RecordSpec<I, R>["materialize"]>[]): Promise<void>;
|
|
240
263
|
/**
|
|
241
264
|
* Writes one materialized record.
|
|
265
|
+
*
|
|
242
266
|
* @param record The materialized record to write.
|
|
243
267
|
* @returns Completes when the record is written.
|
|
244
268
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-storage.d.ts","sourceRoot":"","sources":["../../src/datastore/record-storage.ts"],"names":[],"mappings":"AAcA,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAO,SAAS,EAAsB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"record-storage.d.ts","sourceRoot":"","sources":["../../src/datastore/record-storage.ts"],"names":[],"mappings":"AAcA,OAAO,EAAwB,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAO,SAAS,EAAsB,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,EAGL,aAAa,EACb,KAAK,mBAAmB,EAExB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC9B,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAOxB;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IAGnC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;IAEjD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAGjC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAEnD;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,EAAE,CAAC;IAE9F;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO;IAGjD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAEjD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAGlC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;CACvB;AAgSD;;;;;GAKG;AACH,qBAAa,sBAAsB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,CAAE,SAAQ,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC;;IAyBjF,QAAQ,CAAC,MAAM,EAAE,SAAS;IAtB5B;;OAEG;IACH,SAAkB,mBAAmB,QAAQ;IAI7C;;;;;;;;;;;OAWG;gBAED,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,MAAM,EAAE,SAAS,EAC1B,iBAAiB,EAAE,MAAM,EACzB,KAAK,CAAC,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,MAAM,EACb,kBAAkB,GAAE,kBAAoD,EACxE,YAAY,GAAE,mBAA+C;IAiB/D;;;;;;OAMG;IACH,iBAAiB,CAAC,MAAM,EAAE,CAAC,GAAG;QAC5B,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;KAChD;IAUD;;;;;OAKG;IACH,cAAc,CAAC,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAInD;;;;;;OAMG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC;IAIpE;;;;;;;OAOG;IACH,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO;IAKxF;;;;;;;;;OASG;IACG,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IA+ClF;;;;;;;OAOG;IACG,0BAA0B,CAC9B,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,EACjD,OAAO,EAAE,SAAS,oBAAoB,EAAE,EACxC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;IAgBxB;;;;;;OAMG;IACG,qBAAqB,CAAC,OAAO,EAAE,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASjF;;;;;OAKG;cACa,YAAY,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAcrD;;;;;OAKG;cACa,kBAAkB,CAChC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IA4BxC;;;;OAIG;cACgB,iBAAiB,IAAI,wBAAwB;IAOhE;;;;;OAKG;cACsB,sBAAsB,CAC7C,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAkBxC;;;;;OAKG;YACW,kBAAkB;IAiBhC;;;;;;OAMG;YACW,qBAAqB;IA4BnC;;;;;OAKG;YACW,kBAAkB;IAsBhC;;;;;;OAMG;IACH,OAAO,CAAC,SAAS;IAiBjB;;;;;OAKG;cACa,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAUzD;;;;;;;OAOG;cACa,mBAAmB,CACjC,EAAE,EAAE,CAAC,EACL,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,EACjE,IAAI,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,SAAS,GAC5D,OAAO,CAAC,OAAO,CAAC;IAgBnB;;;;;;;OAOG;YACW,oBAAoB;IAmClC;;;;;OAKG;cACa,eAAe,CAC7B,OAAO,EAAE,SAAS,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,GAC9D,OAAO,CAAC,IAAI,CAAC;IAchB;;;;;OAKG;cACa,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/F;;;;;;OAMG;YACW,QAAQ;IAQtB;;;;;OAKG;IACH,WAAW,IAAI,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;CAMpD;AAoDD;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IAQrC,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IAL9C;;;;OAIG;gBACkB,iBAAiB,EAAE,MAAM;CAI/C"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
import { fromBinary, toBinary } from "@bufbuild/protobuf";
|
|
15
15
|
import { and, Datastore, or, PropertyFilter } from "@google-cloud/datastore";
|
|
16
16
|
import { StringifierRegistry } from "@spine-event-engine/core";
|
|
17
|
+
import { AgentHistoryRecordSchema } from "@spine-event-engine/proto/generated/spine/server/agent/history_record_pb.js";
|
|
17
18
|
import { ColumnMappings, defaultQueryCandidateLimit, RecordStorage, } from "@spine-event-engine/storage";
|
|
18
19
|
import { TenantBoundary } from "@spine-event-engine/storage/provider";
|
|
19
20
|
import { StorageQueryValues } from "@spine-event-engine/storage/provider";
|
|
@@ -84,6 +85,7 @@ class FlatEntityCodec {
|
|
|
84
85
|
}
|
|
85
86
|
/**
|
|
86
87
|
* Returns the canonical Datastore key name for a logical record ID.
|
|
88
|
+
*
|
|
87
89
|
* @param id Typed record identifier.
|
|
88
90
|
* @returns Key name shared by equivalent logical IDs.
|
|
89
91
|
*/
|
|
@@ -138,6 +140,8 @@ class FlatEntityCodec {
|
|
|
138
140
|
*/
|
|
139
141
|
unindexedProperties(data) {
|
|
140
142
|
void data;
|
|
143
|
+
if (this.recordSpec.recordType.typeName === AgentHistoryRecordSchema.typeName)
|
|
144
|
+
return [payloadProperty, "state_type", "agent_key", "conversation_key"];
|
|
141
145
|
return [payloadProperty];
|
|
142
146
|
}
|
|
143
147
|
/**
|
|
@@ -227,7 +231,8 @@ class FlatEntityCodec {
|
|
|
227
231
|
throw new Error("Datastore entity cannot be decoded.");
|
|
228
232
|
}
|
|
229
233
|
try {
|
|
230
|
-
|
|
234
|
+
const bytes = Buffer.isBuffer(payload) ? Uint8Array.from(payload) : payload;
|
|
235
|
+
return fromBinary(this.recordSpec.recordType, bytes, { readUnknownFields: false });
|
|
231
236
|
}
|
|
232
237
|
catch {
|
|
233
238
|
throw new Error("Datastore entity cannot be decoded.");
|
|
@@ -308,12 +313,22 @@ export class DatastoreRecordStorage extends RecordStorage {
|
|
|
308
313
|
*/
|
|
309
314
|
transactionEntity(record) {
|
|
310
315
|
const materialized = this.recordSpec.materialize(record);
|
|
316
|
+
const data = this.#codec.encode(materialized.record, materialized.columns);
|
|
311
317
|
return {
|
|
312
318
|
key: this.#codec.key(this.client, materialized.id),
|
|
313
|
-
data
|
|
314
|
-
excludeFromIndexes:
|
|
319
|
+
data,
|
|
320
|
+
excludeFromIndexes: this.#codec.unindexedProperties(data),
|
|
315
321
|
};
|
|
316
322
|
}
|
|
323
|
+
/**
|
|
324
|
+
* Returns the exact tenant-scoped native key for a typed record ID.
|
|
325
|
+
*
|
|
326
|
+
* @param id Complete persisted record identity.
|
|
327
|
+
* @returns Native key for the typed record identity.
|
|
328
|
+
*/
|
|
329
|
+
transactionKey(id) {
|
|
330
|
+
return this.#codec.key(this.client, id);
|
|
331
|
+
}
|
|
317
332
|
/**
|
|
318
333
|
* Decodes one entity read by a provider-owned multi-record transaction.
|
|
319
334
|
*
|
|
@@ -384,6 +399,23 @@ export class DatastoreRecordStorage extends RecordStorage {
|
|
|
384
399
|
hasMore: info.more,
|
|
385
400
|
};
|
|
386
401
|
}
|
|
402
|
+
/**
|
|
403
|
+
* Reads at most two indexed successor records inside the caller's transaction.
|
|
404
|
+
*
|
|
405
|
+
* @param filters Native indexed query predicates.
|
|
406
|
+
* @param orderProperty Native property containing the complete order key.
|
|
407
|
+
* @param transaction Current native transaction.
|
|
408
|
+
* @returns Earliest scoped rows in native order.
|
|
409
|
+
*/
|
|
410
|
+
async queryTransactionSuccessors(transaction, filters, orderProperty) {
|
|
411
|
+
const query = this.#codec.createQuery(this.client);
|
|
412
|
+
for (const filter of filters)
|
|
413
|
+
query.filter(new PropertyFilter(filter.property, filter.operator, this.#codec.columnValue(filter.property, filter.value)));
|
|
414
|
+
query.order(orderProperty);
|
|
415
|
+
query.limit(2);
|
|
416
|
+
const response = await transaction.runQuery(query, wrappedReadOptions);
|
|
417
|
+
return DatastoreResults.entities(response).map((entity) => this.#codec.decode(entity));
|
|
418
|
+
}
|
|
387
419
|
/**
|
|
388
420
|
* Deletes a bounded group of provider entries.
|
|
389
421
|
*
|
|
@@ -400,6 +432,7 @@ export class DatastoreRecordStorage extends RecordStorage {
|
|
|
400
432
|
}
|
|
401
433
|
/**
|
|
402
434
|
* Deletes the record at one storage slot.
|
|
435
|
+
*
|
|
403
436
|
* @param id The storage slot identifier.
|
|
404
437
|
* @returns Whether a record was deleted.
|
|
405
438
|
*/
|
|
@@ -414,6 +447,7 @@ export class DatastoreRecordStorage extends RecordStorage {
|
|
|
414
447
|
}
|
|
415
448
|
/**
|
|
416
449
|
* Returns records matching a query.
|
|
450
|
+
*
|
|
417
451
|
* @param _query The record query.
|
|
418
452
|
* @returns The matching storage entries.
|
|
419
453
|
*/
|
|
@@ -437,6 +471,7 @@ export class DatastoreRecordStorage extends RecordStorage {
|
|
|
437
471
|
}
|
|
438
472
|
/**
|
|
439
473
|
* Returns the supported Datastore query capabilities.
|
|
474
|
+
*
|
|
440
475
|
* @returns The supported query capabilities.
|
|
441
476
|
*/
|
|
442
477
|
queryCapabilities() {
|
|
@@ -447,6 +482,7 @@ export class DatastoreRecordStorage extends RecordStorage {
|
|
|
447
482
|
}
|
|
448
483
|
/**
|
|
449
484
|
* Returns candidate records for a normalized query plan.
|
|
485
|
+
*
|
|
450
486
|
* @param plan The normalized query plan.
|
|
451
487
|
* @returns The candidate storage entries.
|
|
452
488
|
*/
|
|
@@ -552,6 +588,7 @@ export class DatastoreRecordStorage extends RecordStorage {
|
|
|
552
588
|
}
|
|
553
589
|
/**
|
|
554
590
|
* Reads the record at one storage slot.
|
|
591
|
+
*
|
|
555
592
|
* @param id The storage slot identifier.
|
|
556
593
|
* @returns The stored record, if present.
|
|
557
594
|
*/
|
|
@@ -561,6 +598,7 @@ export class DatastoreRecordStorage extends RecordStorage {
|
|
|
561
598
|
}
|
|
562
599
|
/**
|
|
563
600
|
* Compares and conditionally replaces the record at one storage slot.
|
|
601
|
+
*
|
|
564
602
|
* @param id The storage slot identifier.
|
|
565
603
|
* @param expected The expected materialized record.
|
|
566
604
|
* @param next The replacement materialized record, if any.
|
|
@@ -620,6 +658,7 @@ export class DatastoreRecordStorage extends RecordStorage {
|
|
|
620
658
|
}
|
|
621
659
|
/**
|
|
622
660
|
* Writes materialized records.
|
|
661
|
+
*
|
|
623
662
|
* @param records The materialized records to write.
|
|
624
663
|
* @returns Completes when the records are written.
|
|
625
664
|
*/
|
|
@@ -638,6 +677,7 @@ export class DatastoreRecordStorage extends RecordStorage {
|
|
|
638
677
|
}
|
|
639
678
|
/**
|
|
640
679
|
* Writes one materialized record.
|
|
680
|
+
*
|
|
641
681
|
* @param record The materialized record to write.
|
|
642
682
|
* @returns Completes when the record is written.
|
|
643
683
|
*/
|