@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.
Files changed (55) hide show
  1. package/README.md +278 -0
  2. package/dist/checkpoint/engine.d.ts +208 -0
  3. package/dist/checkpoint/engine.d.ts.map +1 -0
  4. package/dist/checkpoint/engine.js +369 -0
  5. package/dist/checkpoint/engine.js.map +1 -0
  6. package/dist/context/engine.d.ts +197 -0
  7. package/dist/context/engine.d.ts.map +1 -0
  8. package/dist/context/engine.js +392 -0
  9. package/dist/context/engine.js.map +1 -0
  10. package/dist/core/commitment.d.ts +154 -0
  11. package/dist/core/commitment.d.ts.map +1 -0
  12. package/dist/core/commitment.js +305 -0
  13. package/dist/core/commitment.js.map +1 -0
  14. package/dist/core/crypto.d.ts +100 -0
  15. package/dist/core/crypto.d.ts.map +1 -0
  16. package/dist/core/crypto.js +243 -0
  17. package/dist/core/crypto.js.map +1 -0
  18. package/dist/index.d.ts +121 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +234 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/mcca/engine.d.ts +260 -0
  23. package/dist/mcca/engine.d.ts.map +1 -0
  24. package/dist/mcca/engine.js +518 -0
  25. package/dist/mcca/engine.js.map +1 -0
  26. package/dist/physics/engine.d.ts +165 -0
  27. package/dist/physics/engine.d.ts.map +1 -0
  28. package/dist/physics/engine.js +371 -0
  29. package/dist/physics/engine.js.map +1 -0
  30. package/dist/tee/engine.d.ts +285 -0
  31. package/dist/tee/engine.d.ts.map +1 -0
  32. package/dist/tee/engine.js +505 -0
  33. package/dist/tee/engine.js.map +1 -0
  34. package/dist/warrant/engine.d.ts +195 -0
  35. package/dist/warrant/engine.d.ts.map +1 -0
  36. package/dist/warrant/engine.js +409 -0
  37. package/dist/warrant/engine.js.map +1 -0
  38. package/dist/zk/engine.d.ts +243 -0
  39. package/dist/zk/engine.d.ts.map +1 -0
  40. package/dist/zk/engine.js +489 -0
  41. package/dist/zk/engine.js.map +1 -0
  42. package/package.json +25 -0
  43. package/src/__tests__/phase1.test.ts +1120 -0
  44. package/src/__tests__/phase2-4.test.ts +898 -0
  45. package/src/checkpoint/engine.ts +532 -0
  46. package/src/context/engine.ts +598 -0
  47. package/src/core/commitment.ts +438 -0
  48. package/src/core/crypto.ts +304 -0
  49. package/src/index.ts +320 -0
  50. package/src/mcca/engine.ts +778 -0
  51. package/src/physics/engine.ts +563 -0
  52. package/src/tee/engine.ts +810 -0
  53. package/src/warrant/engine.ts +625 -0
  54. package/src/zk/engine.ts +730 -0
  55. 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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"}