@longarc/mdash 3.0.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 +278 -0
- package/dist/checkpoint/engine.d.ts +208 -0
- package/dist/checkpoint/engine.d.ts.map +1 -0
- package/dist/checkpoint/engine.js +369 -0
- package/dist/checkpoint/engine.js.map +1 -0
- package/dist/context/engine.d.ts +197 -0
- package/dist/context/engine.d.ts.map +1 -0
- package/dist/context/engine.js +392 -0
- package/dist/context/engine.js.map +1 -0
- package/dist/core/commitment.d.ts +154 -0
- package/dist/core/commitment.d.ts.map +1 -0
- package/dist/core/commitment.js +305 -0
- package/dist/core/commitment.js.map +1 -0
- package/dist/core/crypto.d.ts +100 -0
- package/dist/core/crypto.d.ts.map +1 -0
- package/dist/core/crypto.js +243 -0
- package/dist/core/crypto.js.map +1 -0
- package/dist/index.d.ts +121 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +234 -0
- package/dist/index.js.map +1 -0
- package/dist/mcca/engine.d.ts +260 -0
- package/dist/mcca/engine.d.ts.map +1 -0
- package/dist/mcca/engine.js +518 -0
- package/dist/mcca/engine.js.map +1 -0
- package/dist/physics/engine.d.ts +165 -0
- package/dist/physics/engine.d.ts.map +1 -0
- package/dist/physics/engine.js +371 -0
- package/dist/physics/engine.js.map +1 -0
- package/dist/tee/engine.d.ts +285 -0
- package/dist/tee/engine.d.ts.map +1 -0
- package/dist/tee/engine.js +505 -0
- package/dist/tee/engine.js.map +1 -0
- package/dist/warrant/engine.d.ts +195 -0
- package/dist/warrant/engine.d.ts.map +1 -0
- package/dist/warrant/engine.js +409 -0
- package/dist/warrant/engine.js.map +1 -0
- package/dist/zk/engine.d.ts +243 -0
- package/dist/zk/engine.d.ts.map +1 -0
- package/dist/zk/engine.js +489 -0
- package/dist/zk/engine.js.map +1 -0
- package/package.json +25 -0
- package/src/__tests__/phase1.test.ts +1120 -0
- package/src/__tests__/phase2-4.test.ts +898 -0
- package/src/checkpoint/engine.ts +532 -0
- package/src/context/engine.ts +598 -0
- package/src/core/commitment.ts +438 -0
- package/src/core/crypto.ts +304 -0
- package/src/index.ts +320 -0
- package/src/mcca/engine.ts +778 -0
- package/src/physics/engine.ts +563 -0
- package/src/tee/engine.ts +810 -0
- package/src/warrant/engine.ts +625 -0
- package/src/zk/engine.ts +730 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mdash v3.0 - Checkpoint Surety
|
|
3
|
+
*
|
|
4
|
+
* Event-driven checkpoints replace time-driven intervals.
|
|
5
|
+
* "State transition triggers seal, not time intervals."
|
|
6
|
+
*
|
|
7
|
+
* Target Latency:
|
|
8
|
+
* - Checkpoint creation: <0.5ms P50, <1ms P99
|
|
9
|
+
*
|
|
10
|
+
* Key Property:
|
|
11
|
+
* - Single action blast radius: if an action fails, only that action is affected
|
|
12
|
+
*/
|
|
13
|
+
import { generateCheckpointId, generateTimestamp, sha256Object, hmacSeal, hmacVerify, deriveKey, } from '../core/crypto';
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// HAPPENS-BEFORE LATTICE
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Lamport-style happens-before ordering for checkpoints
|
|
19
|
+
* Ensures causal consistency in distributed execution
|
|
20
|
+
*/
|
|
21
|
+
export class HappensBeforeLattice {
|
|
22
|
+
checkpoints = new Map();
|
|
23
|
+
children = new Map();
|
|
24
|
+
roots = [];
|
|
25
|
+
/**
|
|
26
|
+
* Add a checkpoint to the lattice
|
|
27
|
+
*/
|
|
28
|
+
add(checkpoint) {
|
|
29
|
+
this.checkpoints.set(checkpoint.id, checkpoint);
|
|
30
|
+
if (checkpoint.parent_id) {
|
|
31
|
+
const siblings = this.children.get(checkpoint.parent_id) || [];
|
|
32
|
+
siblings.push(checkpoint.id);
|
|
33
|
+
this.children.set(checkpoint.parent_id, siblings);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.roots.push(checkpoint.id);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if a happens-before b
|
|
41
|
+
*/
|
|
42
|
+
happensBefore(a, b) {
|
|
43
|
+
const cpB = this.checkpoints.get(b);
|
|
44
|
+
if (!cpB)
|
|
45
|
+
return false;
|
|
46
|
+
// Walk up from b to see if we reach a
|
|
47
|
+
let current = b;
|
|
48
|
+
while (current) {
|
|
49
|
+
if (current === a)
|
|
50
|
+
return true;
|
|
51
|
+
const cp = this.checkpoints.get(current);
|
|
52
|
+
current = cp?.parent_id || null;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if two checkpoints are concurrent (neither happens-before the other)
|
|
58
|
+
*/
|
|
59
|
+
areConcurrent(a, b) {
|
|
60
|
+
return !this.happensBefore(a, b) && !this.happensBefore(b, a);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get the causal history of a checkpoint
|
|
64
|
+
*/
|
|
65
|
+
getCausalHistory(id) {
|
|
66
|
+
const history = [];
|
|
67
|
+
let current = id;
|
|
68
|
+
while (current) {
|
|
69
|
+
const cp = this.checkpoints.get(current);
|
|
70
|
+
if (!cp)
|
|
71
|
+
break;
|
|
72
|
+
history.push(cp);
|
|
73
|
+
current = cp.parent_id;
|
|
74
|
+
}
|
|
75
|
+
return history;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get all checkpoints after a given one
|
|
79
|
+
*/
|
|
80
|
+
getSuccessors(id) {
|
|
81
|
+
const successors = [];
|
|
82
|
+
const queue = this.children.get(id) || [];
|
|
83
|
+
while (queue.length > 0) {
|
|
84
|
+
const current = queue.shift();
|
|
85
|
+
const cp = this.checkpoints.get(current);
|
|
86
|
+
if (cp) {
|
|
87
|
+
successors.push(cp);
|
|
88
|
+
queue.push(...(this.children.get(current) || []));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return successors;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Find the latest common ancestor of two checkpoints
|
|
95
|
+
*/
|
|
96
|
+
findLCA(a, b) {
|
|
97
|
+
const ancestorsA = new Set();
|
|
98
|
+
let current = a;
|
|
99
|
+
while (current) {
|
|
100
|
+
ancestorsA.add(current);
|
|
101
|
+
const cp = this.checkpoints.get(current);
|
|
102
|
+
current = cp?.parent_id || null;
|
|
103
|
+
}
|
|
104
|
+
current = b;
|
|
105
|
+
while (current) {
|
|
106
|
+
if (ancestorsA.has(current)) {
|
|
107
|
+
return current;
|
|
108
|
+
}
|
|
109
|
+
const cp = this.checkpoints.get(current);
|
|
110
|
+
current = cp?.parent_id || null;
|
|
111
|
+
}
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get statistics
|
|
116
|
+
*/
|
|
117
|
+
getStats() {
|
|
118
|
+
let maxDepth = 0;
|
|
119
|
+
for (const id of this.checkpoints.keys()) {
|
|
120
|
+
const history = this.getCausalHistory(id);
|
|
121
|
+
maxDepth = Math.max(maxDepth, history.length);
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
total: this.checkpoints.size,
|
|
125
|
+
roots: this.roots.length,
|
|
126
|
+
maxDepth,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// ============================================================================
|
|
131
|
+
// CHECKPOINT ENGINE
|
|
132
|
+
// ============================================================================
|
|
133
|
+
export class CheckpointEngine {
|
|
134
|
+
key = null;
|
|
135
|
+
commitmentEngine;
|
|
136
|
+
lattice;
|
|
137
|
+
checkpoints = new Map();
|
|
138
|
+
agentHeads = new Map(); // Latest checkpoint per agent
|
|
139
|
+
constructor(commitmentEngine) {
|
|
140
|
+
this.commitmentEngine = commitmentEngine;
|
|
141
|
+
this.lattice = new HappensBeforeLattice();
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Initialize the engine with a seal key
|
|
145
|
+
*/
|
|
146
|
+
async initialize(sealKey) {
|
|
147
|
+
this.key = await deriveKey(sealKey);
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create a checkpoint
|
|
151
|
+
* Target: <0.5ms P50, <1ms P99
|
|
152
|
+
*/
|
|
153
|
+
async createCheckpoint(params) {
|
|
154
|
+
if (!this.key) {
|
|
155
|
+
throw new Error('Engine not initialized. Call initialize() first.');
|
|
156
|
+
}
|
|
157
|
+
const startTime = performance.now();
|
|
158
|
+
const id = generateCheckpointId();
|
|
159
|
+
const now = generateTimestamp();
|
|
160
|
+
const parentId = this.agentHeads.get(params.agent_id) || null;
|
|
161
|
+
// Compute state hash
|
|
162
|
+
const hash = await sha256Object({
|
|
163
|
+
id,
|
|
164
|
+
agent_id: params.agent_id,
|
|
165
|
+
trigger: params.trigger,
|
|
166
|
+
state: params.state,
|
|
167
|
+
parent_id: parentId,
|
|
168
|
+
created_at: now,
|
|
169
|
+
});
|
|
170
|
+
// Create checkpoint data for sealing
|
|
171
|
+
const checkpointData = {
|
|
172
|
+
_v: 1,
|
|
173
|
+
id,
|
|
174
|
+
agent_id: params.agent_id,
|
|
175
|
+
trigger: params.trigger,
|
|
176
|
+
hash,
|
|
177
|
+
parent_id: parentId,
|
|
178
|
+
created_at: now,
|
|
179
|
+
};
|
|
180
|
+
// Seal the checkpoint
|
|
181
|
+
const seal = await hmacSeal(checkpointData, this.key);
|
|
182
|
+
const checkpoint = {
|
|
183
|
+
id,
|
|
184
|
+
agent_id: params.agent_id,
|
|
185
|
+
trigger: params.trigger,
|
|
186
|
+
status: 'pending',
|
|
187
|
+
state: params.state,
|
|
188
|
+
parent_id: parentId,
|
|
189
|
+
physics_score: params.physics_score ?? 1.0,
|
|
190
|
+
created_at: now,
|
|
191
|
+
hash,
|
|
192
|
+
seal,
|
|
193
|
+
commitment_id: null,
|
|
194
|
+
version: 'v3.0',
|
|
195
|
+
};
|
|
196
|
+
// Commit to L1 (async, don't wait)
|
|
197
|
+
const commitmentId = `checkpoint:${id}`;
|
|
198
|
+
this.commitmentEngine.commit(checkpoint, commitmentId).then(() => {
|
|
199
|
+
checkpoint.commitment_id = commitmentId;
|
|
200
|
+
checkpoint.status = 'sealed';
|
|
201
|
+
});
|
|
202
|
+
// Store and index
|
|
203
|
+
this.checkpoints.set(id, checkpoint);
|
|
204
|
+
this.agentHeads.set(params.agent_id, id);
|
|
205
|
+
this.lattice.add(checkpoint);
|
|
206
|
+
const elapsed = performance.now() - startTime;
|
|
207
|
+
if (elapsed > 1) {
|
|
208
|
+
console.warn(`Checkpoint creation exceeded P99: ${elapsed.toFixed(2)}ms`);
|
|
209
|
+
}
|
|
210
|
+
return checkpoint;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Create checkpoint for action start
|
|
214
|
+
*/
|
|
215
|
+
async onActionStart(params) {
|
|
216
|
+
return this.createCheckpoint({
|
|
217
|
+
agent_id: params.agent_id,
|
|
218
|
+
trigger: 'action_start',
|
|
219
|
+
state: {
|
|
220
|
+
execution_state: { status: 'starting' },
|
|
221
|
+
warrant_id: params.warrant_id,
|
|
222
|
+
action: params.action,
|
|
223
|
+
params: params.params,
|
|
224
|
+
},
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Create checkpoint for action completion
|
|
229
|
+
*/
|
|
230
|
+
async onActionComplete(params) {
|
|
231
|
+
return this.createCheckpoint({
|
|
232
|
+
agent_id: params.agent_id,
|
|
233
|
+
trigger: 'action_complete',
|
|
234
|
+
state: {
|
|
235
|
+
execution_state: { status: 'complete' },
|
|
236
|
+
warrant_id: params.warrant_id,
|
|
237
|
+
action: params.action,
|
|
238
|
+
params: params.params,
|
|
239
|
+
result: params.result,
|
|
240
|
+
},
|
|
241
|
+
physics_score: params.physics_score,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Create checkpoint for error
|
|
246
|
+
*/
|
|
247
|
+
async onError(params) {
|
|
248
|
+
return this.createCheckpoint({
|
|
249
|
+
agent_id: params.agent_id,
|
|
250
|
+
trigger: 'error',
|
|
251
|
+
state: {
|
|
252
|
+
execution_state: { status: 'error' },
|
|
253
|
+
warrant_id: params.warrant_id,
|
|
254
|
+
action: params.action,
|
|
255
|
+
params: {},
|
|
256
|
+
error: params.error,
|
|
257
|
+
},
|
|
258
|
+
physics_score: 0,
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Verify a checkpoint
|
|
263
|
+
*/
|
|
264
|
+
async verify(checkpoint) {
|
|
265
|
+
if (!this.key) {
|
|
266
|
+
throw new Error('Engine not initialized. Call initialize() first.');
|
|
267
|
+
}
|
|
268
|
+
// Verify hash
|
|
269
|
+
const expectedHash = await sha256Object({
|
|
270
|
+
id: checkpoint.id,
|
|
271
|
+
agent_id: checkpoint.agent_id,
|
|
272
|
+
trigger: checkpoint.trigger,
|
|
273
|
+
state: checkpoint.state,
|
|
274
|
+
parent_id: checkpoint.parent_id,
|
|
275
|
+
created_at: checkpoint.created_at,
|
|
276
|
+
});
|
|
277
|
+
if (expectedHash !== checkpoint.hash) {
|
|
278
|
+
return false;
|
|
279
|
+
}
|
|
280
|
+
// Verify seal
|
|
281
|
+
const checkpointData = {
|
|
282
|
+
_v: 1,
|
|
283
|
+
id: checkpoint.id,
|
|
284
|
+
agent_id: checkpoint.agent_id,
|
|
285
|
+
trigger: checkpoint.trigger,
|
|
286
|
+
hash: checkpoint.hash,
|
|
287
|
+
parent_id: checkpoint.parent_id,
|
|
288
|
+
created_at: checkpoint.created_at,
|
|
289
|
+
};
|
|
290
|
+
return hmacVerify(checkpointData, checkpoint.seal, this.key);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Get checkpoint by ID
|
|
294
|
+
*/
|
|
295
|
+
get(id) {
|
|
296
|
+
return this.checkpoints.get(id) || null;
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Get the latest checkpoint for an agent
|
|
300
|
+
*/
|
|
301
|
+
getHead(agentId) {
|
|
302
|
+
const headId = this.agentHeads.get(agentId);
|
|
303
|
+
if (!headId)
|
|
304
|
+
return null;
|
|
305
|
+
return this.checkpoints.get(headId) || null;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Get checkpoint chain for an agent
|
|
309
|
+
*/
|
|
310
|
+
getChain(agentId, limit = 100) {
|
|
311
|
+
const headId = this.agentHeads.get(agentId);
|
|
312
|
+
if (!headId)
|
|
313
|
+
return [];
|
|
314
|
+
return this.lattice.getCausalHistory(headId).slice(0, limit);
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Check if checkpoint a happened before checkpoint b
|
|
318
|
+
*/
|
|
319
|
+
happensBefore(a, b) {
|
|
320
|
+
return this.lattice.happensBefore(a, b);
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Get statistics
|
|
324
|
+
*/
|
|
325
|
+
getStats() {
|
|
326
|
+
return {
|
|
327
|
+
total: this.checkpoints.size,
|
|
328
|
+
agents: this.agentHeads.size,
|
|
329
|
+
latticeStats: this.lattice.getStats(),
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
// ============================================================================
|
|
334
|
+
// BLAST RADIUS ANALYZER
|
|
335
|
+
// ============================================================================
|
|
336
|
+
/**
|
|
337
|
+
* Analyzes the impact scope of a failed action
|
|
338
|
+
* "Single action blast radius" means failures are isolated
|
|
339
|
+
*/
|
|
340
|
+
export class BlastRadiusAnalyzer {
|
|
341
|
+
lattice;
|
|
342
|
+
constructor(lattice) {
|
|
343
|
+
this.lattice = lattice;
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Analyze the blast radius of a failed checkpoint
|
|
347
|
+
* Returns affected checkpoints that depend on the failed one
|
|
348
|
+
*/
|
|
349
|
+
analyze(failedId) {
|
|
350
|
+
const successors = this.lattice.getSuccessors(failedId);
|
|
351
|
+
const history = this.lattice.getCausalHistory(failedId);
|
|
352
|
+
// Find the last good checkpoint (recovery point)
|
|
353
|
+
const failedCheckpoint = history[0];
|
|
354
|
+
const recoveryPoint = failedCheckpoint?.parent_id ?? null;
|
|
355
|
+
return {
|
|
356
|
+
affected: successors,
|
|
357
|
+
isolated: successors.length === 0,
|
|
358
|
+
recoveryPoint,
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Check if an action can be safely retried
|
|
363
|
+
*/
|
|
364
|
+
canRetry(checkpointId) {
|
|
365
|
+
const { isolated } = this.analyze(checkpointId);
|
|
366
|
+
return isolated;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/checkpoint/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mdash v3.0 - Sealed Context Architecture (SCA)
|
|
3
|
+
*
|
|
4
|
+
* Incremental Merkle sealing with streaming support.
|
|
5
|
+
* O(log n) proof verification.
|
|
6
|
+
*
|
|
7
|
+
* Target Latency:
|
|
8
|
+
* - Context chunk seal: <2ms P50, <5ms P99
|
|
9
|
+
*/
|
|
10
|
+
import { Hash, Seal, Timestamp, FragmentId } from '../core/crypto';
|
|
11
|
+
import { IncrementalMerkleTree, CommitmentEngine } from '../core/commitment';
|
|
12
|
+
export type SourceClass = 'system' | 'operator' | 'user' | 'derived' | 'agent' | 'external';
|
|
13
|
+
export type ContentType = 'text' | 'structured' | 'code' | 'binary' | 'reference';
|
|
14
|
+
export interface SemanticUnit<T = unknown> {
|
|
15
|
+
/** Content type */
|
|
16
|
+
type: ContentType;
|
|
17
|
+
/** The actual data */
|
|
18
|
+
data: T;
|
|
19
|
+
/** Approximate token count */
|
|
20
|
+
tokens: number;
|
|
21
|
+
/** Optional metadata */
|
|
22
|
+
metadata?: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
export interface Provenance {
|
|
25
|
+
/** Source URI */
|
|
26
|
+
source: string;
|
|
27
|
+
/** Attribution type */
|
|
28
|
+
attribution: SourceClass;
|
|
29
|
+
/** Trust level (0-100) */
|
|
30
|
+
trust_level: number;
|
|
31
|
+
/** Creation timestamp */
|
|
32
|
+
timestamp: Timestamp;
|
|
33
|
+
/** Parent fragment (if derived) */
|
|
34
|
+
parent_hash: Hash | null;
|
|
35
|
+
/** Optional signature */
|
|
36
|
+
signature?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface ContextFragment<T = unknown> {
|
|
39
|
+
/** Unique identifier */
|
|
40
|
+
id: FragmentId;
|
|
41
|
+
/** Content hash */
|
|
42
|
+
hash: Hash;
|
|
43
|
+
/** Semantic content */
|
|
44
|
+
content: SemanticUnit<T>;
|
|
45
|
+
/** Provenance chain */
|
|
46
|
+
provenance: Provenance;
|
|
47
|
+
/** Seal timestamp */
|
|
48
|
+
sealed_at: Timestamp;
|
|
49
|
+
/** HMAC seal */
|
|
50
|
+
seal: Seal;
|
|
51
|
+
/** Constraints for resolution */
|
|
52
|
+
constraints: ContextConstraint[];
|
|
53
|
+
/** Protocol version */
|
|
54
|
+
version: 'v3.0';
|
|
55
|
+
}
|
|
56
|
+
export interface ContextConstraint {
|
|
57
|
+
kind: 'time' | 'scope' | 'trust' | 'signature';
|
|
58
|
+
type: string;
|
|
59
|
+
params: Record<string, unknown>;
|
|
60
|
+
}
|
|
61
|
+
export declare const DEFAULT_TRUST_LEVELS: Record<SourceClass, number>;
|
|
62
|
+
export interface StreamChunk<T = unknown> {
|
|
63
|
+
/** Chunk index */
|
|
64
|
+
index: number;
|
|
65
|
+
/** Chunk content */
|
|
66
|
+
content: T;
|
|
67
|
+
/** Chunk hash */
|
|
68
|
+
hash: Hash;
|
|
69
|
+
/** Sealed flag */
|
|
70
|
+
sealed: boolean;
|
|
71
|
+
}
|
|
72
|
+
export declare class ContextStream<T = unknown> {
|
|
73
|
+
private chunks;
|
|
74
|
+
private tree;
|
|
75
|
+
private key;
|
|
76
|
+
private sourceClass;
|
|
77
|
+
private source;
|
|
78
|
+
constructor(params: {
|
|
79
|
+
source: string;
|
|
80
|
+
sourceClass: SourceClass;
|
|
81
|
+
maxDepth?: number;
|
|
82
|
+
});
|
|
83
|
+
/**
|
|
84
|
+
* Initialize with seal key
|
|
85
|
+
*/
|
|
86
|
+
initialize(sealKey: string): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Add a chunk to the stream
|
|
89
|
+
* Target: <2ms P50, <5ms P99
|
|
90
|
+
*/
|
|
91
|
+
addChunk(content: T): Promise<StreamChunk<T>>;
|
|
92
|
+
/**
|
|
93
|
+
* Get the current root hash
|
|
94
|
+
*/
|
|
95
|
+
getRoot(): Promise<Hash>;
|
|
96
|
+
/**
|
|
97
|
+
* Get proof for a specific chunk
|
|
98
|
+
*/
|
|
99
|
+
getProof(index: number): Promise<{
|
|
100
|
+
chunk: StreamChunk<T>;
|
|
101
|
+
path: Array<{
|
|
102
|
+
hash: Hash;
|
|
103
|
+
position: 'left' | 'right';
|
|
104
|
+
}>;
|
|
105
|
+
root: Hash;
|
|
106
|
+
}>;
|
|
107
|
+
/**
|
|
108
|
+
* Finalize the stream into a single sealed fragment
|
|
109
|
+
*/
|
|
110
|
+
finalize(): Promise<ContextFragment<T[]>>;
|
|
111
|
+
/**
|
|
112
|
+
* Get stream statistics
|
|
113
|
+
*/
|
|
114
|
+
getStats(): {
|
|
115
|
+
chunks: number;
|
|
116
|
+
treeStats: ReturnType<IncrementalMerkleTree['getStats']>;
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
export declare class SealedContextEngine {
|
|
120
|
+
private key;
|
|
121
|
+
private commitmentEngine;
|
|
122
|
+
private fragments;
|
|
123
|
+
private byHash;
|
|
124
|
+
constructor(commitmentEngine: CommitmentEngine);
|
|
125
|
+
/**
|
|
126
|
+
* Initialize the engine with a seal key
|
|
127
|
+
*/
|
|
128
|
+
initialize(sealKey: string): Promise<void>;
|
|
129
|
+
/**
|
|
130
|
+
* Create a sealed context fragment
|
|
131
|
+
*/
|
|
132
|
+
seal<T>(params: {
|
|
133
|
+
content: T;
|
|
134
|
+
contentType: ContentType;
|
|
135
|
+
source: string;
|
|
136
|
+
sourceClass: SourceClass;
|
|
137
|
+
parentHash?: Hash;
|
|
138
|
+
constraints?: ContextConstraint[];
|
|
139
|
+
tokens?: number;
|
|
140
|
+
}): Promise<ContextFragment<T>>;
|
|
141
|
+
/**
|
|
142
|
+
* Derive a new fragment from an existing one
|
|
143
|
+
*/
|
|
144
|
+
derive<T, U>(params: {
|
|
145
|
+
parent: ContextFragment<T>;
|
|
146
|
+
transform: (data: T) => U;
|
|
147
|
+
source: string;
|
|
148
|
+
constraints?: ContextConstraint[];
|
|
149
|
+
}): Promise<ContextFragment<U>>;
|
|
150
|
+
/**
|
|
151
|
+
* Verify a fragment
|
|
152
|
+
*/
|
|
153
|
+
verify<T>(fragment: ContextFragment<T>): Promise<boolean>;
|
|
154
|
+
/**
|
|
155
|
+
* Resolve a fragment (check constraints)
|
|
156
|
+
*/
|
|
157
|
+
resolve<T>(fragment: ContextFragment<T>, context: {
|
|
158
|
+
domain?: string;
|
|
159
|
+
now?: Date;
|
|
160
|
+
}): Promise<{
|
|
161
|
+
success: boolean;
|
|
162
|
+
violations: Array<{
|
|
163
|
+
constraint: ContextConstraint;
|
|
164
|
+
reason: string;
|
|
165
|
+
}>;
|
|
166
|
+
}>;
|
|
167
|
+
/**
|
|
168
|
+
* Get fragment by ID
|
|
169
|
+
*/
|
|
170
|
+
get<T>(id: FragmentId): ContextFragment<T> | null;
|
|
171
|
+
/**
|
|
172
|
+
* Get fragment by hash
|
|
173
|
+
*/
|
|
174
|
+
getByHash<T>(hash: Hash): ContextFragment<T> | null;
|
|
175
|
+
/**
|
|
176
|
+
* Create a streaming context
|
|
177
|
+
*/
|
|
178
|
+
createStream<T>(params: {
|
|
179
|
+
source: string;
|
|
180
|
+
sourceClass: SourceClass;
|
|
181
|
+
}): ContextStream<T>;
|
|
182
|
+
/**
|
|
183
|
+
* Estimate tokens (rough: ~4 chars/token)
|
|
184
|
+
*/
|
|
185
|
+
private estimateTokens;
|
|
186
|
+
/**
|
|
187
|
+
* Get statistics
|
|
188
|
+
*/
|
|
189
|
+
getStats(): {
|
|
190
|
+
fragments: number;
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
export declare function maxAge(ms: number): ContextConstraint;
|
|
194
|
+
export declare function requireTrust(minimum: number): ContextConstraint;
|
|
195
|
+
export declare function allowDomains(domains: string[]): ContextConstraint;
|
|
196
|
+
export declare function requireSignature(signers: string[]): ContextConstraint;
|
|
197
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/context/engine.ts"],"names":[],"mappings":"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"}
|