@fluxpointstudios/orynq-sdk-flight-recorder 0.1.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 (83) hide show
  1. package/LICENSE +21 -0
  2. package/dist/crypto/compression.d.ts +37 -0
  3. package/dist/crypto/compression.d.ts.map +1 -0
  4. package/dist/crypto/compression.js +84 -0
  5. package/dist/crypto/compression.js.map +1 -0
  6. package/dist/crypto/encryption.d.ts +44 -0
  7. package/dist/crypto/encryption.d.ts.map +1 -0
  8. package/dist/crypto/encryption.js +129 -0
  9. package/dist/crypto/encryption.js.map +1 -0
  10. package/dist/crypto/hashing.d.ts +63 -0
  11. package/dist/crypto/hashing.d.ts.map +1 -0
  12. package/dist/crypto/hashing.js +182 -0
  13. package/dist/crypto/hashing.js.map +1 -0
  14. package/dist/crypto/index.d.ts +4 -0
  15. package/dist/crypto/index.d.ts.map +1 -0
  16. package/dist/crypto/index.js +4 -0
  17. package/dist/crypto/index.js.map +1 -0
  18. package/dist/index.d.ts +48 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +54 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/integration/index.d.ts +2 -0
  23. package/dist/integration/index.d.ts.map +1 -0
  24. package/dist/integration/index.js +2 -0
  25. package/dist/integration/index.js.map +1 -0
  26. package/dist/integration/openclaw-adapter.d.ts +64 -0
  27. package/dist/integration/openclaw-adapter.d.ts.map +1 -0
  28. package/dist/integration/openclaw-adapter.js +137 -0
  29. package/dist/integration/openclaw-adapter.js.map +1 -0
  30. package/dist/manifest/index.d.ts +2 -0
  31. package/dist/manifest/index.d.ts.map +1 -0
  32. package/dist/manifest/index.js +2 -0
  33. package/dist/manifest/index.js.map +1 -0
  34. package/dist/manifest/manifest-builder.d.ts +72 -0
  35. package/dist/manifest/manifest-builder.d.ts.map +1 -0
  36. package/dist/manifest/manifest-builder.js +84 -0
  37. package/dist/manifest/manifest-builder.js.map +1 -0
  38. package/dist/recorder/chunk-manager.d.ts +56 -0
  39. package/dist/recorder/chunk-manager.d.ts.map +1 -0
  40. package/dist/recorder/chunk-manager.js +172 -0
  41. package/dist/recorder/chunk-manager.js.map +1 -0
  42. package/dist/recorder/event-buffer.d.ts +61 -0
  43. package/dist/recorder/event-buffer.d.ts.map +1 -0
  44. package/dist/recorder/event-buffer.js +101 -0
  45. package/dist/recorder/event-buffer.js.map +1 -0
  46. package/dist/recorder/index.d.ts +4 -0
  47. package/dist/recorder/index.d.ts.map +1 -0
  48. package/dist/recorder/index.js +4 -0
  49. package/dist/recorder/index.js.map +1 -0
  50. package/dist/recorder/stream-recorder.d.ts +66 -0
  51. package/dist/recorder/stream-recorder.d.ts.map +1 -0
  52. package/dist/recorder/stream-recorder.js +329 -0
  53. package/dist/recorder/stream-recorder.js.map +1 -0
  54. package/dist/storage/index.d.ts +2 -0
  55. package/dist/storage/index.d.ts.map +1 -0
  56. package/dist/storage/index.js +2 -0
  57. package/dist/storage/index.js.map +1 -0
  58. package/dist/storage/local-adapter.d.ts +65 -0
  59. package/dist/storage/local-adapter.d.ts.map +1 -0
  60. package/dist/storage/local-adapter.js +152 -0
  61. package/dist/storage/local-adapter.js.map +1 -0
  62. package/dist/types.d.ts +284 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +28 -0
  65. package/dist/types.js.map +1 -0
  66. package/package.json +43 -0
  67. package/src/__tests__/flight-recorder.test.ts +211 -0
  68. package/src/crypto/compression.ts +105 -0
  69. package/src/crypto/encryption.ts +210 -0
  70. package/src/crypto/hashing.ts +225 -0
  71. package/src/crypto/index.ts +3 -0
  72. package/src/index.ts +96 -0
  73. package/src/integration/index.ts +1 -0
  74. package/src/integration/openclaw-adapter.ts +206 -0
  75. package/src/manifest/index.ts +1 -0
  76. package/src/manifest/manifest-builder.ts +152 -0
  77. package/src/recorder/chunk-manager.ts +224 -0
  78. package/src/recorder/event-buffer.ts +124 -0
  79. package/src/recorder/index.ts +3 -0
  80. package/src/recorder/stream-recorder.ts +427 -0
  81. package/src/storage/index.ts +1 -0
  82. package/src/storage/local-adapter.ts +181 -0
  83. package/src/types.ts +347 -0
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @fluxpointstudios/orynq-sdk-flight-recorder
3
+ *
4
+ * Streaming flight recorder for Proof of Inference (PoI).
5
+ * Captures inference events with chunking, compression, and encryption.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { FlightRecorder, LocalStorageAdapter } from '@fluxpointstudios/orynq-sdk-flight-recorder';
10
+ *
11
+ * const storage = new LocalStorageAdapter({ baseDir: './traces' });
12
+ *
13
+ * const recorder = new FlightRecorder({
14
+ * agentId: 'my-agent',
15
+ * chunkSizeBytes: 4 * 1024 * 1024, // 4MB chunks
16
+ * encryption: {
17
+ * algorithm: 'aes-256-gcm',
18
+ * keyDerivation: 'hkdf-sha256',
19
+ * keyMode: { type: 'ephemeral' },
20
+ * },
21
+ * storage,
22
+ * });
23
+ *
24
+ * await recorder.start();
25
+ *
26
+ * await recorder.record({
27
+ * kind: 'inference:start',
28
+ * requestId: 'req-123',
29
+ * model: 'claude-3-opus',
30
+ * promptHash: '...',
31
+ * params: { temperature: 0.7 },
32
+ * });
33
+ *
34
+ * const result = await recorder.finalize();
35
+ * console.log('Manifest:', result.manifest);
36
+ * ```
37
+ */
38
+ export * from "./types.js";
39
+ export { FlightRecorder } from "./recorder/stream-recorder.js";
40
+ export { EventBuffer } from "./recorder/event-buffer.js";
41
+ export { ChunkManager } from "./recorder/chunk-manager.js";
42
+ export { generateKey, encrypt, decrypt, exportKey, importKey, deriveKey, type EncryptionKey, type EncryptedData, } from "./crypto/encryption.js";
43
+ export { compress, decompress, compressString, decompressString, isCompressible, type CompressionType, type CompressionResult, } from "./crypto/compression.js";
44
+ export { sha256, sha256String, sha256Json, rollingHash, merkleLeaf, merkleNode, buildMerkleRoot, generateMerkleProof, verifyMerkleProof, HASH_DOMAINS, type HashDomain, type MerkleProof, } from "./crypto/hashing.js";
45
+ export { ManifestBuilder, type ManifestInput } from "./manifest/manifest-builder.js";
46
+ export { LocalStorageAdapter, type LocalStorageConfig } from "./storage/local-adapter.js";
47
+ export { OpenClawAdapter, type LegacyTraceEvent, type LegacyTraceBundle, type LegacyManifest, } from "./integration/openclaw-adapter.js";
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,EACT,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGrF,OAAO,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAG1F,OAAO,EACL,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,mCAAmC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,54 @@
1
+ /**
2
+ * @fluxpointstudios/orynq-sdk-flight-recorder
3
+ *
4
+ * Streaming flight recorder for Proof of Inference (PoI).
5
+ * Captures inference events with chunking, compression, and encryption.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { FlightRecorder, LocalStorageAdapter } from '@fluxpointstudios/orynq-sdk-flight-recorder';
10
+ *
11
+ * const storage = new LocalStorageAdapter({ baseDir: './traces' });
12
+ *
13
+ * const recorder = new FlightRecorder({
14
+ * agentId: 'my-agent',
15
+ * chunkSizeBytes: 4 * 1024 * 1024, // 4MB chunks
16
+ * encryption: {
17
+ * algorithm: 'aes-256-gcm',
18
+ * keyDerivation: 'hkdf-sha256',
19
+ * keyMode: { type: 'ephemeral' },
20
+ * },
21
+ * storage,
22
+ * });
23
+ *
24
+ * await recorder.start();
25
+ *
26
+ * await recorder.record({
27
+ * kind: 'inference:start',
28
+ * requestId: 'req-123',
29
+ * model: 'claude-3-opus',
30
+ * promptHash: '...',
31
+ * params: { temperature: 0.7 },
32
+ * });
33
+ *
34
+ * const result = await recorder.finalize();
35
+ * console.log('Manifest:', result.manifest);
36
+ * ```
37
+ */
38
+ // Types
39
+ export * from "./types.js";
40
+ // Core recorder
41
+ export { FlightRecorder } from "./recorder/stream-recorder.js";
42
+ export { EventBuffer } from "./recorder/event-buffer.js";
43
+ export { ChunkManager } from "./recorder/chunk-manager.js";
44
+ // Crypto utilities
45
+ export { generateKey, encrypt, decrypt, exportKey, importKey, deriveKey, } from "./crypto/encryption.js";
46
+ export { compress, decompress, compressString, decompressString, isCompressible, } from "./crypto/compression.js";
47
+ export { sha256, sha256String, sha256Json, rollingHash, merkleLeaf, merkleNode, buildMerkleRoot, generateMerkleProof, verifyMerkleProof, HASH_DOMAINS, } from "./crypto/hashing.js";
48
+ // Manifest
49
+ export { ManifestBuilder } from "./manifest/manifest-builder.js";
50
+ // Storage
51
+ export { LocalStorageAdapter } from "./storage/local-adapter.js";
52
+ // Integration
53
+ export { OpenClawAdapter, } from "./integration/openclaw-adapter.js";
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,SAAS,GAGV,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,QAAQ,EACR,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,cAAc,GAGf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,MAAM,EACN,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,GAGb,MAAM,qBAAqB,CAAC;AAE7B,WAAW;AACX,OAAO,EAAE,eAAe,EAAsB,MAAM,gCAAgC,CAAC;AAErF,UAAU;AACV,OAAO,EAAE,mBAAmB,EAA2B,MAAM,4BAA4B,CAAC;AAE1F,cAAc;AACd,OAAO,EACL,eAAe,GAIhB,MAAM,mCAAmC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { OpenClawAdapter } from "./openclaw-adapter.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { OpenClawAdapter } from "./openclaw-adapter.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Adapter for migrating from poi-openclaw to flight-recorder.
3
+ * Bridges legacy trace formats to the new ManifestV2 format.
4
+ */
5
+ import type { RecorderConfig, RecordingResult, ManifestV2 } from "../types.js";
6
+ /**
7
+ * Legacy trace event format from poi-openclaw.
8
+ */
9
+ export interface LegacyTraceEvent {
10
+ ts: string;
11
+ kind: "user" | "assistant" | "tool_call" | "tool_result";
12
+ agentId?: string;
13
+ sessionId?: string;
14
+ contentHash: string;
15
+ content?: string | null;
16
+ meta?: Record<string, unknown>;
17
+ }
18
+ /**
19
+ * Legacy trace bundle from poi-openclaw.
20
+ */
21
+ export interface LegacyTraceBundle {
22
+ bundleId: string;
23
+ events: LegacyTraceEvent[];
24
+ }
25
+ /**
26
+ * Legacy manifest format from poi-openclaw.
27
+ */
28
+ export interface LegacyManifest {
29
+ formatVersion: string;
30
+ agentId: string;
31
+ rootHash: string;
32
+ manifestHash: string;
33
+ merkleRoot: string;
34
+ totalEvents: number;
35
+ totalSpans: number;
36
+ createdAt: string;
37
+ metadata?: {
38
+ bundlePath?: string;
39
+ };
40
+ }
41
+ /**
42
+ * Adapter to bridge poi-openclaw traces to flight-recorder.
43
+ */
44
+ export declare class OpenClawAdapter {
45
+ private readonly config;
46
+ constructor(config: RecorderConfig);
47
+ /**
48
+ * Convert a legacy trace bundle to a new recording.
49
+ */
50
+ importLegacyBundle(bundle: LegacyTraceBundle): Promise<RecordingResult>;
51
+ /**
52
+ * Convert a legacy event to a RecorderEvent.
53
+ */
54
+ private convertEvent;
55
+ /**
56
+ * Convert a legacy manifest to ManifestV2 format.
57
+ */
58
+ convertManifest(legacy: LegacyManifest): Promise<ManifestV2>;
59
+ /**
60
+ * Check if a manifest is in legacy format.
61
+ */
62
+ static isLegacyManifest(manifest: unknown): manifest is LegacyManifest;
63
+ }
64
+ //# sourceMappingURL=openclaw-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-adapter.d.ts","sourceRoot":"","sources":["../../src/integration/openclaw-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,UAAU,EAKX,MAAM,aAAa,CAAC;AAarB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAEnD;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkB7E;;OAEG;IACH,OAAO,CAAC,YAAY;IAsDpB;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IA2ClE;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,cAAc;CAUvE"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Adapter for migrating from poi-openclaw to flight-recorder.
3
+ * Bridges legacy trace formats to the new ManifestV2 format.
4
+ */
5
+ import { FlightRecorder } from "../recorder/stream-recorder.js";
6
+ import { sha256String } from "../crypto/hashing.js";
7
+ /**
8
+ * Adapter to bridge poi-openclaw traces to flight-recorder.
9
+ */
10
+ export class OpenClawAdapter {
11
+ config;
12
+ constructor(config) {
13
+ this.config = config;
14
+ }
15
+ /**
16
+ * Convert a legacy trace bundle to a new recording.
17
+ */
18
+ async importLegacyBundle(bundle) {
19
+ const recorder = new FlightRecorder({
20
+ ...this.config,
21
+ sessionId: bundle.bundleId,
22
+ });
23
+ await recorder.start();
24
+ for (const event of bundle.events) {
25
+ const converted = await this.convertEvent(event);
26
+ if (converted) {
27
+ await recorder.record(converted);
28
+ }
29
+ }
30
+ return recorder.finalize();
31
+ }
32
+ /**
33
+ * Convert a legacy event to a RecorderEvent.
34
+ */
35
+ convertEvent(event) {
36
+ switch (event.kind) {
37
+ case "user": {
38
+ const result = {
39
+ kind: "inference:start",
40
+ requestId: `req-${Date.now()}`,
41
+ model: "unknown",
42
+ promptHash: event.contentHash,
43
+ params: {},
44
+ };
45
+ if (event.sessionId)
46
+ result.spanId = event.sessionId;
47
+ return result;
48
+ }
49
+ case "assistant": {
50
+ const result = {
51
+ kind: "inference:end",
52
+ requestId: `req-${Date.now()}`,
53
+ outputHash: event.contentHash,
54
+ tokenCounts: { prompt: 0, completion: 0 },
55
+ durationMs: 0,
56
+ };
57
+ if (event.sessionId)
58
+ result.spanId = event.sessionId;
59
+ return result;
60
+ }
61
+ case "tool_call": {
62
+ const result = {
63
+ kind: "tool:call",
64
+ toolName: event.meta?.toolName || "unknown",
65
+ argsHash: event.contentHash,
66
+ visibility: "private",
67
+ };
68
+ if (event.sessionId)
69
+ result.spanId = event.sessionId;
70
+ return result;
71
+ }
72
+ case "tool_result": {
73
+ const result = {
74
+ kind: "tool:result",
75
+ toolName: event.meta?.toolName || "unknown",
76
+ resultHash: event.contentHash,
77
+ success: true,
78
+ visibility: "private",
79
+ };
80
+ if (event.sessionId)
81
+ result.spanId = event.sessionId;
82
+ return result;
83
+ }
84
+ default:
85
+ return null;
86
+ }
87
+ }
88
+ /**
89
+ * Convert a legacy manifest to ManifestV2 format.
90
+ */
91
+ async convertManifest(legacy) {
92
+ const now = new Date().toISOString();
93
+ return {
94
+ formatVersion: "2.0",
95
+ agentId: legacy.agentId,
96
+ sessionId: legacy.metadata?.bundlePath || `migrated-${Date.now()}`,
97
+ rootHash: legacy.rootHash,
98
+ merkleRoot: legacy.merkleRoot,
99
+ manifestHash: await sha256String(JSON.stringify(legacy)),
100
+ inputs: {
101
+ promptHash: "", // Not available in legacy format
102
+ },
103
+ params: {
104
+ model: "unknown",
105
+ },
106
+ runtime: {
107
+ recorderVersion: "migrated-from-openclaw",
108
+ },
109
+ chunks: [], // Legacy format doesn't have chunks
110
+ outputs: {
111
+ transcriptRollingHash: legacy.rootHash,
112
+ toolCallCount: 0,
113
+ totalTokens: 0,
114
+ completionTokens: 0,
115
+ },
116
+ createdAt: legacy.createdAt,
117
+ startedAt: legacy.createdAt,
118
+ endedAt: now,
119
+ durationMs: 0,
120
+ totalEvents: legacy.totalEvents,
121
+ totalSpans: legacy.totalSpans,
122
+ };
123
+ }
124
+ /**
125
+ * Check if a manifest is in legacy format.
126
+ */
127
+ static isLegacyManifest(manifest) {
128
+ if (!manifest || typeof manifest !== "object")
129
+ return false;
130
+ const m = manifest;
131
+ return (typeof m.formatVersion === "string" &&
132
+ m.formatVersion.startsWith("1.") &&
133
+ typeof m.agentId === "string" &&
134
+ typeof m.rootHash === "string");
135
+ }
136
+ }
137
+ //# sourceMappingURL=openclaw-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-adapter.js","sourceRoot":"","sources":["../../src/integration/openclaw-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { ManifestBuilder } from "./manifest-builder.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ManifestBuilder } from "./manifest-builder.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Manifest builder for flight recorder.
3
+ * Constructs ManifestV2 from recording data.
4
+ */
5
+ import type { ManifestV2, ChunkRef, VerifierPolicy, TeeType } from "../types.js";
6
+ export interface ManifestInput {
7
+ agentId: string;
8
+ sessionId: string;
9
+ rootHash: string;
10
+ merkleRoot: string;
11
+ chunks: ChunkRef[];
12
+ inputs: {
13
+ promptHash: string;
14
+ systemPromptHash?: string;
15
+ toolContextHash?: string;
16
+ };
17
+ params: {
18
+ model: string;
19
+ temperature?: number;
20
+ topP?: number;
21
+ topK?: number;
22
+ maxTokens?: number;
23
+ };
24
+ runtime: {
25
+ recorderVersion: string;
26
+ nodeVersion?: string;
27
+ containerDigest?: string;
28
+ gitCommit?: string;
29
+ };
30
+ outputs: {
31
+ transcriptRollingHash: string;
32
+ toolCallCount: number;
33
+ totalTokens: number;
34
+ completionTokens: number;
35
+ };
36
+ timing: {
37
+ startedAt: string;
38
+ endedAt: string;
39
+ durationMs: number;
40
+ };
41
+ stats: {
42
+ totalEvents: number;
43
+ totalSpans: number;
44
+ };
45
+ attestation?: {
46
+ teeType: TeeType;
47
+ evidenceHash: string;
48
+ evidenceUri?: string;
49
+ verifierPolicy: VerifierPolicy;
50
+ boundHash: "rootHash" | "manifestHash" | "merkleRoot";
51
+ };
52
+ }
53
+ export declare class ManifestBuilder {
54
+ /**
55
+ * Build a ManifestV2 from input data.
56
+ */
57
+ build(input: ManifestInput): Promise<ManifestV2>;
58
+ /**
59
+ * Compute the manifest hash.
60
+ * Hash is computed over the manifest with manifestHash set to empty string.
61
+ */
62
+ computeManifestHash(manifest: ManifestV2): Promise<string>;
63
+ /**
64
+ * Verify a manifest's integrity.
65
+ */
66
+ verify(manifest: ManifestV2): Promise<boolean>;
67
+ /**
68
+ * Create a minimal manifest for testing.
69
+ */
70
+ static createMinimal(agentId: string, sessionId: string): ManifestV2;
71
+ }
72
+ //# sourceMappingURL=manifest-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-builder.d.ts","sourceRoot":"","sources":["../../src/manifest/manifest-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGjF,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,QAAQ,EAAE,CAAC;IAEnB,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,OAAO,EAAE;QACP,qBAAqB,EAAE,MAAM,CAAC;QAC9B,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,KAAK,EAAE;QACL,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,WAAW,CAAC,EAAE;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,cAAc,CAAC;QAC/B,SAAS,EAAE,UAAU,GAAG,cAAc,GAAG,YAAY,CAAC;KACvD,CAAC;CACH;AAED,qBAAa,eAAe;IAC1B;;OAEG;IACG,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC;IAqCtD;;;OAGG;IACG,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhE;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU;CA2BrE"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Manifest builder for flight recorder.
3
+ * Constructs ManifestV2 from recording data.
4
+ */
5
+ import { sha256Json } from "../crypto/hashing.js";
6
+ export class ManifestBuilder {
7
+ /**
8
+ * Build a ManifestV2 from input data.
9
+ */
10
+ async build(input) {
11
+ const manifest = {
12
+ formatVersion: "2.0",
13
+ agentId: input.agentId,
14
+ sessionId: input.sessionId,
15
+ rootHash: input.rootHash,
16
+ merkleRoot: input.merkleRoot,
17
+ manifestHash: "", // Computed below
18
+ inputs: input.inputs,
19
+ params: input.params,
20
+ runtime: input.runtime,
21
+ chunks: input.chunks,
22
+ outputs: input.outputs,
23
+ createdAt: new Date().toISOString(),
24
+ startedAt: input.timing.startedAt,
25
+ endedAt: input.timing.endedAt,
26
+ durationMs: input.timing.durationMs,
27
+ totalEvents: input.stats.totalEvents,
28
+ totalSpans: input.stats.totalSpans,
29
+ };
30
+ // Add attestation if provided
31
+ if (input.attestation) {
32
+ manifest.attestation = input.attestation;
33
+ }
34
+ // Compute manifest hash
35
+ manifest.manifestHash = await this.computeManifestHash(manifest);
36
+ return manifest;
37
+ }
38
+ /**
39
+ * Compute the manifest hash.
40
+ * Hash is computed over the manifest with manifestHash set to empty string.
41
+ */
42
+ async computeManifestHash(manifest) {
43
+ const toHash = { ...manifest, manifestHash: "" };
44
+ return sha256Json(toHash, "manifest");
45
+ }
46
+ /**
47
+ * Verify a manifest's integrity.
48
+ */
49
+ async verify(manifest) {
50
+ const expectedHash = await this.computeManifestHash(manifest);
51
+ return manifest.manifestHash === expectedHash;
52
+ }
53
+ /**
54
+ * Create a minimal manifest for testing.
55
+ */
56
+ static createMinimal(agentId, sessionId) {
57
+ const now = new Date().toISOString();
58
+ return {
59
+ formatVersion: "2.0",
60
+ agentId,
61
+ sessionId,
62
+ rootHash: "",
63
+ merkleRoot: "",
64
+ manifestHash: "",
65
+ inputs: { promptHash: "" },
66
+ params: { model: "unknown" },
67
+ runtime: { recorderVersion: "0.1.0" },
68
+ chunks: [],
69
+ outputs: {
70
+ transcriptRollingHash: "",
71
+ toolCallCount: 0,
72
+ totalTokens: 0,
73
+ completionTokens: 0,
74
+ },
75
+ createdAt: now,
76
+ startedAt: now,
77
+ endedAt: now,
78
+ durationMs: 0,
79
+ totalEvents: 0,
80
+ totalSpans: 0,
81
+ };
82
+ }
83
+ }
84
+ //# sourceMappingURL=manifest-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-builder.js","sourceRoot":"","sources":["../../src/manifest/manifest-builder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAyDlD,MAAM,OAAO,eAAe;IAC1B;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,KAAoB;QAC9B,MAAM,QAAQ,GAAe;YAC3B,aAAa,EAAE,KAAK;YAEpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,KAAK,CAAC,SAAS;YAE1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,EAAE,EAAE,iBAAiB;YAEnC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;YAEtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS;YACjC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;YAC7B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YAEnC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW;YACpC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU;SACnC,CAAC;QAEF,8BAA8B;QAC9B,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAC3C,CAAC;QAED,wBAAwB;QACxB,QAAQ,CAAC,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAEjE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB,CAAC,QAAoB;QAC5C,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QACjD,OAAO,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,QAAoB;QAC/B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9D,OAAO,QAAQ,CAAC,YAAY,KAAK,YAAY,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAe,EAAE,SAAiB;QACrD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO;YACL,aAAa,EAAE,KAAK;YACpB,OAAO;YACP,SAAS;YACT,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;YAC1B,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;YAC5B,OAAO,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE;YACrC,MAAM,EAAE,EAAE;YACV,OAAO,EAAE;gBACP,qBAAqB,EAAE,EAAE;gBACzB,aAAa,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,gBAAgB,EAAE,CAAC;aACpB;YACD,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,OAAO,EAAE,GAAG;YACZ,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Chunk manager for the flight recorder.
3
+ * Handles chunk creation, compression, encryption, and storage.
4
+ */
5
+ import type { ChunkRef, ChunkData, StorageAdapter, EncryptionConfig } from "../types.js";
6
+ import { type CompressionType } from "../crypto/compression.js";
7
+ import type { BufferedEvent } from "./event-buffer.js";
8
+ export interface ChunkCreateResult {
9
+ chunkRef: ChunkRef;
10
+ chunkData: ChunkData;
11
+ leafHash: string;
12
+ }
13
+ export declare class ChunkManager {
14
+ private readonly storage;
15
+ private readonly encryptionConfig;
16
+ private readonly compressionType;
17
+ private chunks;
18
+ private leafHashes;
19
+ private chunkIndex;
20
+ private encryptionKey;
21
+ constructor(storage: StorageAdapter, encryptionConfig: EncryptionConfig, compressionType?: CompressionType);
22
+ /**
23
+ * Initialize encryption key for the session.
24
+ */
25
+ initializeKey(): Promise<void>;
26
+ /**
27
+ * Get the current encryption key ID.
28
+ */
29
+ getKeyId(): string | null;
30
+ /**
31
+ * Create a chunk from buffered events.
32
+ */
33
+ createChunk(events: BufferedEvent[], eventRange: [number, number], spanIds: string[]): Promise<ChunkCreateResult>;
34
+ /**
35
+ * Get all chunk references.
36
+ */
37
+ getChunks(): ChunkRef[];
38
+ /**
39
+ * Get all Merkle leaf hashes.
40
+ */
41
+ getLeafHashes(): string[];
42
+ /**
43
+ * Get chunk count.
44
+ */
45
+ getChunkCount(): number;
46
+ /**
47
+ * Serialize chunk data for storage.
48
+ * Format: [4-byte meta length][meta JSON][nonce][tag][ciphertext]
49
+ */
50
+ private serializeChunkForStorage;
51
+ /**
52
+ * Deserialize chunk data from storage.
53
+ */
54
+ static deserializeChunkFromStorage(data: Uint8Array): ChunkData;
55
+ }
56
+ //# sourceMappingURL=chunk-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunk-manager.d.ts","sourceRoot":"","sources":["../../src/recorder/chunk-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,SAAS,EACT,cAAc,EACd,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,YAAY;IAOrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe;IARlC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAA8B;gBAGhC,OAAO,EAAE,cAAc,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,eAAe,GAAE,eAAwB;IAG5D;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,aAAa,EAAE,EACvB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,iBAAiB,CAAC;IAuE7B;;OAEG;IACH,SAAS,IAAI,QAAQ,EAAE;IAIvB;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAiChC;;OAEG;IACH,MAAM,CAAC,2BAA2B,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS;CAoChE"}