@ddse/acm-replay 0.5.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 DDSE Foundation
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,292 @@
1
+ # @ddse/acm-replay
2
+
3
+ Replay bundle export and import for ACM, providing complete audit trails and reproducibility.
4
+
5
+ ## Overview
6
+
7
+ This package enables exporting and importing complete ACM execution bundles. Replay bundles capture all artifacts, decisions, and I/O from an execution run, enabling:
8
+
9
+ - **Audit & Compliance**: Complete execution history for regulatory review
10
+ - **Debugging**: Understand exactly what happened in a failed run
11
+ - **Reproducibility**: Replay executions for testing or validation
12
+ - **Analysis**: Post-execution analysis of agent behavior
13
+
14
+ ## Features
15
+
16
+ - Export complete execution bundles to structured JSON files
17
+ - Load and validate existing bundles
18
+ - Comprehensive artifact capture (goals, plans, context, I/O, ledger)
19
+ - JSONL format for streaming logs (ledger, policy records)
20
+ - Metadata tracking for versioning and provenance
21
+
22
+ ## Installation
23
+
24
+ ```bash
25
+ pnpm add @ddse/acm-replay
26
+ ```
27
+
28
+ ## Usage
29
+
30
+ ### Exporting a Replay Bundle
31
+
32
+ ```typescript
33
+ import { ReplayBundleExporter } from '@ddse/acm-replay';
34
+
35
+ // After execution, export the bundle
36
+ const bundlePath = await ReplayBundleExporter.export({
37
+ outputDir: './replay/run-12345',
38
+ goal,
39
+ context,
40
+ plans: [planA, planB],
41
+ selectedPlanId: planA.id,
42
+ ledger: ledger.entries(),
43
+ taskIO: [
44
+ {
45
+ taskId: 't1',
46
+ capability: 'search',
47
+ input: { query: 'test' },
48
+ output: { results: ['result1'] },
49
+ ts: '2025-01-15T10:00:00Z',
50
+ },
51
+ ],
52
+ policyRecords: [
53
+ {
54
+ id: 'p1',
55
+ ts: '2025-01-15T10:00:00Z',
56
+ action: 'search',
57
+ input: {},
58
+ decision: true,
59
+ },
60
+ ],
61
+ verificationResults: [],
62
+ engineTrace: {
63
+ runId: 'run-12345',
64
+ engine: 'runtime',
65
+ startedAt: '2025-01-15T10:00:00Z',
66
+ completedAt: '2025-01-15T10:05:00Z',
67
+ status: 'success',
68
+ tasks: [],
69
+ },
70
+ });
71
+
72
+ console.log(`Bundle exported to: ${bundlePath}`);
73
+ ```
74
+
75
+ ### Loading a Replay Bundle
76
+
77
+ ```typescript
78
+ import { ReplayBundleExporter } from '@ddse/acm-replay';
79
+
80
+ // Load bundle
81
+ const bundle = await ReplayBundleExporter.load('./replay/run-12345');
82
+
83
+ console.log('Goal:', bundle.goal);
84
+ console.log('Plans:', bundle.plans.length);
85
+ console.log('Ledger entries:', bundle.ledger.length);
86
+ console.log('Task I/O records:', bundle.taskIO.length);
87
+ ```
88
+
89
+ ### Validating a Bundle
90
+
91
+ ```typescript
92
+ import { ReplayBundleExporter } from '@ddse/acm-replay';
93
+
94
+ const validation = await ReplayBundleExporter.validate('./replay/run-12345');
95
+
96
+ if (validation.valid) {
97
+ console.log('Bundle is valid');
98
+ } else {
99
+ console.error('Bundle validation errors:', validation.errors);
100
+ }
101
+ ```
102
+
103
+ ### Integration with CLI
104
+
105
+ The replay package integrates seamlessly with the ACM demo CLI:
106
+
107
+ ```bash
108
+ # Run with replay bundle export
109
+ pnpm --filter @ddse/acm-examples demo -- --goal refund --save-bundle
110
+
111
+ # Bundle will be saved to ./replay/<runId>/
112
+ ```
113
+
114
+ ## Bundle Structure
115
+
116
+ A replay bundle has the following directory structure:
117
+
118
+ ```
119
+ replay/run-12345/
120
+ ├── metadata.json # Bundle metadata
121
+ ├── goal/
122
+ │ └── goal.json # Goal definition
123
+ ├── context/
124
+ │ └── context.json # Context packet
125
+ ├── plans/
126
+ │ ├── planA.json # Plan A
127
+ │ └── planB.json # Plan B (if available)
128
+ ├── task-specs/
129
+ │ ├── t1.json # Task spec for task t1
130
+ │ └── t2.json # Task spec for task t2
131
+ ├── policy/
132
+ │ └── requests.jsonl # Policy decisions (JSONL)
133
+ ├── verification/
134
+ │ └── results.json # Verification results
135
+ ├── memory-ledger/
136
+ │ └── ledger.jsonl # Memory ledger entries (JSONL)
137
+ ├── engine-trace/
138
+ │ └── run.json # Engine execution trace
139
+ ├── task-io/
140
+ │ ├── t1.input.json # Task t1 input
141
+ │ ├── t1.output.json # Task t1 output
142
+ │ ├── t2.input.json # Task t2 input
143
+ │ └── t2.output.json # Task t2 output
144
+ └── planner-prompts/
145
+ └── messages.json # Planner LLM messages (optional)
146
+ ```
147
+
148
+ ## API Reference
149
+
150
+ ### `ReplayBundleExporter`
151
+
152
+ Main class for exporting and loading replay bundles.
153
+
154
+ #### Methods
155
+
156
+ **`static async export(options: ReplayBundleExportOptions): Promise<string>`**
157
+
158
+ Export a replay bundle to disk.
159
+
160
+ **Parameters:**
161
+ - `outputDir`: Output directory path
162
+ - `goal`: Goal object
163
+ - `context`: Context object
164
+ - `plans`: Array of Plan objects
165
+ - `selectedPlanId`: ID of the selected plan
166
+ - `ledger`: Array of ledger entries
167
+ - `taskIO`: Array of task I/O records
168
+ - `policyRecords`: Optional array of policy records
169
+ - `verificationResults`: Optional array of verification results
170
+ - `engineTrace`: Optional engine trace
171
+ - `plannerPrompts`: Optional planner LLM messages
172
+
173
+ **Returns:** Path to the created bundle
174
+
175
+ **`static async load(bundleDir: string): Promise<Bundle>`**
176
+
177
+ Load a replay bundle from disk.
178
+
179
+ **Parameters:**
180
+ - `bundleDir`: Path to bundle directory
181
+
182
+ **Returns:** Bundle object with all artifacts
183
+
184
+ **`static async validate(bundleDir: string): Promise<ValidationResult>`**
185
+
186
+ Validate a replay bundle structure.
187
+
188
+ **Parameters:**
189
+ - `bundleDir`: Path to bundle directory
190
+
191
+ **Returns:** Validation result with errors if any
192
+
193
+ ### Types
194
+
195
+ ```typescript
196
+ interface ReplayBundleMetadata {
197
+ version: string;
198
+ createdAt: string;
199
+ runId: string;
200
+ goalId: string;
201
+ contextRef: string;
202
+ planId: string;
203
+ }
204
+
205
+ interface PolicyRecord {
206
+ id: string;
207
+ ts: string;
208
+ action: string;
209
+ input: any;
210
+ decision: boolean;
211
+ }
212
+
213
+ interface VerificationResult {
214
+ taskId: string;
215
+ ts: string;
216
+ expressions: string[];
217
+ results: boolean[];
218
+ passed: boolean;
219
+ }
220
+
221
+ interface TaskIORecord {
222
+ taskId: string;
223
+ capability: string;
224
+ input: any;
225
+ output: any;
226
+ ts: string;
227
+ }
228
+
229
+ interface EngineTrace {
230
+ runId: string;
231
+ engine: string;
232
+ startedAt: string;
233
+ completedAt: string;
234
+ status: 'success' | 'failed' | 'partial';
235
+ tasks: Array<{
236
+ taskId: string;
237
+ status: string;
238
+ startedAt: string;
239
+ completedAt?: string;
240
+ error?: string;
241
+ }>;
242
+ }
243
+ ```
244
+
245
+ ## ACM v0.5 Compliance
246
+
247
+ This package implements the Replay Bundle artifact specification from ACM v0.5:
248
+
249
+ - ✅ Complete artifact capture (Goal, Context, Plans, Tasks)
250
+ - ✅ Policy decision recording
251
+ - ✅ Verification results
252
+ - ✅ Memory ledger in append-only format (JSONL)
253
+ - ✅ Engine execution trace
254
+ - ✅ Task I/O recording
255
+ - ✅ Optional planner prompts for LLM transparency
256
+ - ✅ Content-addressable references via metadata
257
+
258
+ ## Use Cases
259
+
260
+ ### Compliance & Audit
261
+
262
+ Export bundles for regulatory compliance, providing complete audit trails:
263
+
264
+ ```typescript
265
+ // Export after each production run
266
+ await ReplayBundleExporter.export({
267
+ outputDir: `./audit/runs/${runId}`,
268
+ // ... all execution data
269
+ });
270
+ ```
271
+
272
+ ### Debugging
273
+
274
+ Load bundles to understand failures:
275
+
276
+ ```typescript
277
+ const bundle = await ReplayBundleExporter.load('./replay/failed-run');
278
+ console.log('Failed at task:', bundle.ledger.find(e => e.type === 'TASK_ERROR'));
279
+ ```
280
+
281
+ ### Testing
282
+
283
+ Use bundles to verify behavior:
284
+
285
+ ```typescript
286
+ const bundle = await ReplayBundleExporter.load('./test-fixtures/baseline');
287
+ // Compare with new execution
288
+ ```
289
+
290
+ ## License
291
+
292
+ Apache-2.0
@@ -0,0 +1,129 @@
1
+ import type { Goal, Context, Plan, LedgerEntry } from '@ddse/acm-sdk';
2
+ /**
3
+ * Replay bundle metadata
4
+ */
5
+ export interface ReplayBundleMetadata {
6
+ version: string;
7
+ createdAt: string;
8
+ runId: string;
9
+ goalId: string;
10
+ contextRef: string;
11
+ planId: string;
12
+ }
13
+ /**
14
+ * Policy request/response for replay
15
+ */
16
+ export interface PolicyRecord {
17
+ id: string;
18
+ ts: string;
19
+ action: string;
20
+ input: any;
21
+ decision: boolean;
22
+ }
23
+ /**
24
+ * Verification result for replay
25
+ */
26
+ export interface VerificationResult {
27
+ taskId: string;
28
+ ts: string;
29
+ expressions: string[];
30
+ results: boolean[];
31
+ passed: boolean;
32
+ }
33
+ /**
34
+ * Task I/O record
35
+ */
36
+ export interface TaskIORecord {
37
+ taskId: string;
38
+ capability: string;
39
+ input: any;
40
+ output: any;
41
+ ts: string;
42
+ }
43
+ /**
44
+ * Engine trace record
45
+ */
46
+ export interface EngineTrace {
47
+ runId: string;
48
+ engine: string;
49
+ startedAt: string;
50
+ completedAt: string;
51
+ status: 'success' | 'failed' | 'partial';
52
+ tasks: Array<{
53
+ taskId: string;
54
+ status: string;
55
+ startedAt: string;
56
+ completedAt?: string;
57
+ error?: string;
58
+ }>;
59
+ }
60
+ /**
61
+ * Options for replay bundle export
62
+ */
63
+ export interface ReplayBundleExportOptions {
64
+ outputDir: string;
65
+ goal: Goal;
66
+ context: Context;
67
+ plans: Plan[];
68
+ selectedPlanId: string;
69
+ ledger: LedgerEntry[];
70
+ taskIO: TaskIORecord[];
71
+ policyRecords?: PolicyRecord[];
72
+ verificationResults?: VerificationResult[];
73
+ engineTrace?: EngineTrace;
74
+ plannerPrompts?: Array<{
75
+ role: string;
76
+ content: string;
77
+ }>;
78
+ llmCalls?: Array<{
79
+ id: string;
80
+ ts: number;
81
+ type: 'planner' | 'task' | 'nucleus';
82
+ promptDigest: string;
83
+ model: string;
84
+ provider: string;
85
+ seed?: number;
86
+ toolCalls?: any[];
87
+ reasoning?: string;
88
+ }>;
89
+ internalContext?: Array<{
90
+ id: string;
91
+ type: string;
92
+ digest: string;
93
+ provenance?: any;
94
+ }>;
95
+ }
96
+ /**
97
+ * Replay Bundle Exporter
98
+ *
99
+ * Exports complete ACM execution artifacts to a structured directory
100
+ * for audit, compliance, and replay purposes.
101
+ */
102
+ export declare class ReplayBundleExporter {
103
+ /**
104
+ * Export a replay bundle
105
+ */
106
+ static export(options: ReplayBundleExportOptions): Promise<string>;
107
+ /**
108
+ * Load a replay bundle
109
+ */
110
+ static load(bundleDir: string): Promise<{
111
+ metadata: ReplayBundleMetadata;
112
+ goal: Goal;
113
+ context: Context;
114
+ plans: Plan[];
115
+ ledger: LedgerEntry[];
116
+ taskIO: TaskIORecord[];
117
+ policyRecords: PolicyRecord[];
118
+ verificationResults: VerificationResult[];
119
+ engineTrace?: EngineTrace;
120
+ }>;
121
+ /**
122
+ * Validate a replay bundle structure
123
+ */
124
+ static validate(bundleDir: string): Promise<{
125
+ valid: boolean;
126
+ errors: string[];
127
+ }>;
128
+ }
129
+ //# sourceMappingURL=exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ // Replay Bundle Exporter for ACM
2
+ import * as fs from 'fs/promises';
3
+ import * as path from 'path';
4
+ /**
5
+ * Replay Bundle Exporter
6
+ *
7
+ * Exports complete ACM execution artifacts to a structured directory
8
+ * for audit, compliance, and replay purposes.
9
+ */
10
+ export class ReplayBundleExporter {
11
+ /**
12
+ * Export a replay bundle
13
+ */
14
+ static async export(options) {
15
+ const { outputDir, goal, context, plans, selectedPlanId, ledger, taskIO, policyRecords = [], verificationResults = [], engineTrace, plannerPrompts, llmCalls = [], internalContext = [], } = options;
16
+ // Create bundle directory structure
17
+ await fs.mkdir(outputDir, { recursive: true });
18
+ await fs.mkdir(path.join(outputDir, 'goal'), { recursive: true });
19
+ await fs.mkdir(path.join(outputDir, 'context'), { recursive: true });
20
+ await fs.mkdir(path.join(outputDir, 'plans'), { recursive: true });
21
+ await fs.mkdir(path.join(outputDir, 'task-specs'), { recursive: true });
22
+ await fs.mkdir(path.join(outputDir, 'policy'), { recursive: true });
23
+ await fs.mkdir(path.join(outputDir, 'verification'), { recursive: true });
24
+ await fs.mkdir(path.join(outputDir, 'memory-ledger'), { recursive: true });
25
+ await fs.mkdir(path.join(outputDir, 'engine-trace'), { recursive: true });
26
+ await fs.mkdir(path.join(outputDir, 'task-io'), { recursive: true });
27
+ if (plannerPrompts || llmCalls.length > 0) {
28
+ await fs.mkdir(path.join(outputDir, 'planner'), { recursive: true });
29
+ await fs.mkdir(path.join(outputDir, 'planner', 'internal-context'), { recursive: true });
30
+ }
31
+ // Export metadata
32
+ const metadata = {
33
+ version: '0.5',
34
+ createdAt: new Date().toISOString(),
35
+ runId: engineTrace?.runId || `run-${Date.now()}`,
36
+ goalId: goal.id,
37
+ contextRef: context.id,
38
+ planId: selectedPlanId,
39
+ };
40
+ await fs.writeFile(path.join(outputDir, 'metadata.json'), JSON.stringify(metadata, null, 2));
41
+ // Export goal
42
+ await fs.writeFile(path.join(outputDir, 'goal', 'goal.json'), JSON.stringify(goal, null, 2));
43
+ // Export context
44
+ await fs.writeFile(path.join(outputDir, 'context', 'context.json'), JSON.stringify(context, null, 2));
45
+ // Export plans
46
+ for (let i = 0; i < plans.length; i++) {
47
+ const planFile = i === 0 ? 'planA.json' : `plan${String.fromCharCode(65 + i)}.json`;
48
+ await fs.writeFile(path.join(outputDir, 'plans', planFile), JSON.stringify(plans[i], null, 2));
49
+ }
50
+ // Export task specs
51
+ const selectedPlan = plans.find((p) => p.id === selectedPlanId);
52
+ if (selectedPlan) {
53
+ for (const taskSpec of selectedPlan.tasks) {
54
+ await fs.writeFile(path.join(outputDir, 'task-specs', `${taskSpec.id}.json`), JSON.stringify(taskSpec, null, 2));
55
+ }
56
+ }
57
+ // Export policy records (JSONL)
58
+ if (policyRecords.length > 0) {
59
+ const policyLines = policyRecords.map((r) => JSON.stringify(r)).join('\n');
60
+ await fs.writeFile(path.join(outputDir, 'policy', 'requests.jsonl'), policyLines);
61
+ }
62
+ // Export verification results
63
+ if (verificationResults.length > 0) {
64
+ await fs.writeFile(path.join(outputDir, 'verification', 'results.json'), JSON.stringify(verificationResults, null, 2));
65
+ }
66
+ // Export memory ledger (JSONL)
67
+ if (ledger.length > 0) {
68
+ const ledgerLines = ledger.map((entry) => JSON.stringify(entry)).join('\n');
69
+ await fs.writeFile(path.join(outputDir, 'memory-ledger', 'ledger.jsonl'), ledgerLines);
70
+ }
71
+ // Export engine trace
72
+ if (engineTrace) {
73
+ await fs.writeFile(path.join(outputDir, 'engine-trace', 'run.json'), JSON.stringify(engineTrace, null, 2));
74
+ }
75
+ // Export task I/O
76
+ for (const record of taskIO) {
77
+ await fs.writeFile(path.join(outputDir, 'task-io', `${record.taskId}.input.json`), JSON.stringify(record.input, null, 2));
78
+ await fs.writeFile(path.join(outputDir, 'task-io', `${record.taskId}.output.json`), JSON.stringify(record.output, null, 2));
79
+ }
80
+ // Export planner prompts
81
+ if (plannerPrompts) {
82
+ await fs.writeFile(path.join(outputDir, 'planner', 'messages.json'), JSON.stringify(plannerPrompts, null, 2));
83
+ }
84
+ // Export LLM calls (JSONL) - Phase 4
85
+ if (llmCalls.length > 0) {
86
+ const llmCallLines = llmCalls.map((call) => JSON.stringify(call)).join('\n');
87
+ await fs.writeFile(path.join(outputDir, 'planner', 'llm-calls.jsonl'), llmCallLines);
88
+ }
89
+ // Export internal context artifacts - Phase 4
90
+ if (internalContext.length > 0) {
91
+ await fs.writeFile(path.join(outputDir, 'planner', 'internal-context', 'manifest.json'), JSON.stringify(internalContext, null, 2));
92
+ }
93
+ return outputDir;
94
+ }
95
+ /**
96
+ * Load a replay bundle
97
+ */
98
+ static async load(bundleDir) {
99
+ // Load metadata
100
+ const metadataPath = path.join(bundleDir, 'metadata.json');
101
+ const metadata = JSON.parse(await fs.readFile(metadataPath, 'utf-8'));
102
+ // Load goal
103
+ const goalPath = path.join(bundleDir, 'goal', 'goal.json');
104
+ const goal = JSON.parse(await fs.readFile(goalPath, 'utf-8'));
105
+ // Load context
106
+ const contextPath = path.join(bundleDir, 'context', 'context.json');
107
+ const context = JSON.parse(await fs.readFile(contextPath, 'utf-8'));
108
+ // Load plans
109
+ const plansDir = path.join(bundleDir, 'plans');
110
+ const planFiles = await fs.readdir(plansDir);
111
+ const plans = await Promise.all(planFiles
112
+ .filter((f) => f.endsWith('.json'))
113
+ .map(async (f) => JSON.parse(await fs.readFile(path.join(plansDir, f), 'utf-8'))));
114
+ // Load ledger
115
+ const ledgerPath = path.join(bundleDir, 'memory-ledger', 'ledger.jsonl');
116
+ let ledger = [];
117
+ try {
118
+ const ledgerContent = await fs.readFile(ledgerPath, 'utf-8');
119
+ ledger = ledgerContent
120
+ .split('\n')
121
+ .filter((line) => line.trim())
122
+ .map((line) => JSON.parse(line));
123
+ }
124
+ catch {
125
+ // Ledger might not exist
126
+ }
127
+ // Load task I/O
128
+ const taskIODir = path.join(bundleDir, 'task-io');
129
+ let taskIO = [];
130
+ try {
131
+ const taskIOFiles = await fs.readdir(taskIODir);
132
+ const inputFiles = taskIOFiles.filter((f) => f.endsWith('.input.json'));
133
+ taskIO = await Promise.all(inputFiles.map(async (f) => {
134
+ const taskId = f.replace('.input.json', '');
135
+ const input = JSON.parse(await fs.readFile(path.join(taskIODir, f), 'utf-8'));
136
+ const output = JSON.parse(await fs.readFile(path.join(taskIODir, `${taskId}.output.json`), 'utf-8'));
137
+ return { taskId, capability: '', input, output, ts: '' };
138
+ }));
139
+ }
140
+ catch {
141
+ // Task I/O might not exist
142
+ }
143
+ // Load policy records
144
+ const policyPath = path.join(bundleDir, 'policy', 'requests.jsonl');
145
+ let policyRecords = [];
146
+ try {
147
+ const policyContent = await fs.readFile(policyPath, 'utf-8');
148
+ policyRecords = policyContent
149
+ .split('\n')
150
+ .filter((line) => line.trim())
151
+ .map((line) => JSON.parse(line));
152
+ }
153
+ catch {
154
+ // Policy records might not exist
155
+ }
156
+ // Load verification results
157
+ const verificationPath = path.join(bundleDir, 'verification', 'results.json');
158
+ let verificationResults = [];
159
+ try {
160
+ verificationResults = JSON.parse(await fs.readFile(verificationPath, 'utf-8'));
161
+ }
162
+ catch {
163
+ // Verification results might not exist
164
+ }
165
+ // Load engine trace
166
+ const engineTracePath = path.join(bundleDir, 'engine-trace', 'run.json');
167
+ let engineTrace;
168
+ try {
169
+ engineTrace = JSON.parse(await fs.readFile(engineTracePath, 'utf-8'));
170
+ }
171
+ catch {
172
+ // Engine trace might not exist
173
+ }
174
+ return {
175
+ metadata,
176
+ goal,
177
+ context,
178
+ plans,
179
+ ledger,
180
+ taskIO,
181
+ policyRecords,
182
+ verificationResults,
183
+ engineTrace,
184
+ };
185
+ }
186
+ /**
187
+ * Validate a replay bundle structure
188
+ */
189
+ static async validate(bundleDir) {
190
+ const errors = [];
191
+ // Check required files
192
+ const requiredFiles = [
193
+ 'metadata.json',
194
+ 'goal/goal.json',
195
+ 'context/context.json',
196
+ ];
197
+ for (const file of requiredFiles) {
198
+ try {
199
+ await fs.access(path.join(bundleDir, file));
200
+ }
201
+ catch {
202
+ errors.push(`Missing required file: ${file}`);
203
+ }
204
+ }
205
+ // Check plans directory
206
+ try {
207
+ const plansDir = path.join(bundleDir, 'plans');
208
+ const planFiles = await fs.readdir(plansDir);
209
+ if (planFiles.filter((f) => f.endsWith('.json')).length === 0) {
210
+ errors.push('No plan files found in plans directory');
211
+ }
212
+ }
213
+ catch {
214
+ errors.push('Plans directory not found or inaccessible');
215
+ }
216
+ return {
217
+ valid: errors.length === 0,
218
+ errors,
219
+ };
220
+ }
221
+ }
222
+ //# sourceMappingURL=exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exporter.js","sourceRoot":"","sources":["../src/exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { ReplayBundleExporter, type ReplayBundleMetadata, type ReplayBundleExportOptions, type PolicyRecord, type VerificationResult, type TaskIORecord, type EngineTrace, } from './exporter.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,WAAW,GACjB,MAAM,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ // Replay bundle export and import for ACM
2
+ export { ReplayBundleExporter, } from './exporter.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,OAAO,EACL,oBAAoB,GAOrB,MAAM,eAAe,CAAC"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@ddse/acm-replay",
3
+ "version": "0.5.0",
4
+ "description": "Replay bundle export and import for ACM",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "dependencies": {
15
+ "@ddse/acm-sdk": "0.5.0",
16
+ "@ddse/acm-runtime": "0.5.0"
17
+ },
18
+ "devDependencies": {
19
+ "@types/node": "^20.0.0",
20
+ "typescript": "^5.3.0"
21
+ },
22
+ "keywords": [
23
+ "acm",
24
+ "replay",
25
+ "audit",
26
+ "bundle"
27
+ ],
28
+ "license": "MIT",
29
+ "scripts": {
30
+ "build": "tsc",
31
+ "clean": "rm -rf dist",
32
+ "dev": "tsc --watch"
33
+ }
34
+ }
@@ -0,0 +1,420 @@
1
+ // Replay Bundle Exporter for ACM
2
+ import * as fs from 'fs/promises';
3
+ import * as path from 'path';
4
+ import type { Goal, Context, Plan, LedgerEntry } from '@ddse/acm-sdk';
5
+
6
+ /**
7
+ * Replay bundle metadata
8
+ */
9
+ export interface ReplayBundleMetadata {
10
+ version: string;
11
+ createdAt: string;
12
+ runId: string;
13
+ goalId: string;
14
+ contextRef: string;
15
+ planId: string;
16
+ }
17
+
18
+ /**
19
+ * Policy request/response for replay
20
+ */
21
+ export interface PolicyRecord {
22
+ id: string;
23
+ ts: string;
24
+ action: string;
25
+ input: any;
26
+ decision: boolean;
27
+ }
28
+
29
+ /**
30
+ * Verification result for replay
31
+ */
32
+ export interface VerificationResult {
33
+ taskId: string;
34
+ ts: string;
35
+ expressions: string[];
36
+ results: boolean[];
37
+ passed: boolean;
38
+ }
39
+
40
+ /**
41
+ * Task I/O record
42
+ */
43
+ export interface TaskIORecord {
44
+ taskId: string;
45
+ capability: string;
46
+ input: any;
47
+ output: any;
48
+ ts: string;
49
+ }
50
+
51
+ /**
52
+ * Engine trace record
53
+ */
54
+ export interface EngineTrace {
55
+ runId: string;
56
+ engine: string;
57
+ startedAt: string;
58
+ completedAt: string;
59
+ status: 'success' | 'failed' | 'partial';
60
+ tasks: Array<{
61
+ taskId: string;
62
+ status: string;
63
+ startedAt: string;
64
+ completedAt?: string;
65
+ error?: string;
66
+ }>;
67
+ }
68
+
69
+ /**
70
+ * Options for replay bundle export
71
+ */
72
+ export interface ReplayBundleExportOptions {
73
+ outputDir: string;
74
+ goal: Goal;
75
+ context: Context;
76
+ plans: Plan[];
77
+ selectedPlanId: string;
78
+ ledger: LedgerEntry[];
79
+ taskIO: TaskIORecord[];
80
+ policyRecords?: PolicyRecord[];
81
+ verificationResults?: VerificationResult[];
82
+ engineTrace?: EngineTrace;
83
+ plannerPrompts?: Array<{ role: string; content: string }>;
84
+ // Phase 4 additions
85
+ llmCalls?: Array<{
86
+ id: string;
87
+ ts: number;
88
+ type: 'planner' | 'task' | 'nucleus';
89
+ promptDigest: string;
90
+ model: string;
91
+ provider: string;
92
+ seed?: number;
93
+ toolCalls?: any[];
94
+ reasoning?: string;
95
+ }>;
96
+ internalContext?: Array<{
97
+ id: string;
98
+ type: string;
99
+ digest: string;
100
+ provenance?: any;
101
+ }>;
102
+ }
103
+
104
+ /**
105
+ * Replay Bundle Exporter
106
+ *
107
+ * Exports complete ACM execution artifacts to a structured directory
108
+ * for audit, compliance, and replay purposes.
109
+ */
110
+ export class ReplayBundleExporter {
111
+ /**
112
+ * Export a replay bundle
113
+ */
114
+ static async export(options: ReplayBundleExportOptions): Promise<string> {
115
+ const {
116
+ outputDir,
117
+ goal,
118
+ context,
119
+ plans,
120
+ selectedPlanId,
121
+ ledger,
122
+ taskIO,
123
+ policyRecords = [],
124
+ verificationResults = [],
125
+ engineTrace,
126
+ plannerPrompts,
127
+ llmCalls = [],
128
+ internalContext = [],
129
+ } = options;
130
+
131
+ // Create bundle directory structure
132
+ await fs.mkdir(outputDir, { recursive: true });
133
+ await fs.mkdir(path.join(outputDir, 'goal'), { recursive: true });
134
+ await fs.mkdir(path.join(outputDir, 'context'), { recursive: true });
135
+ await fs.mkdir(path.join(outputDir, 'plans'), { recursive: true });
136
+ await fs.mkdir(path.join(outputDir, 'task-specs'), { recursive: true });
137
+ await fs.mkdir(path.join(outputDir, 'policy'), { recursive: true });
138
+ await fs.mkdir(path.join(outputDir, 'verification'), { recursive: true });
139
+ await fs.mkdir(path.join(outputDir, 'memory-ledger'), { recursive: true });
140
+ await fs.mkdir(path.join(outputDir, 'engine-trace'), { recursive: true });
141
+ await fs.mkdir(path.join(outputDir, 'task-io'), { recursive: true });
142
+ if (plannerPrompts || llmCalls.length > 0) {
143
+ await fs.mkdir(path.join(outputDir, 'planner'), { recursive: true });
144
+ await fs.mkdir(path.join(outputDir, 'planner', 'internal-context'), { recursive: true });
145
+ }
146
+
147
+ // Export metadata
148
+ const metadata: ReplayBundleMetadata = {
149
+ version: '0.5',
150
+ createdAt: new Date().toISOString(),
151
+ runId: engineTrace?.runId || `run-${Date.now()}`,
152
+ goalId: goal.id,
153
+ contextRef: context.id,
154
+ planId: selectedPlanId,
155
+ };
156
+
157
+ await fs.writeFile(
158
+ path.join(outputDir, 'metadata.json'),
159
+ JSON.stringify(metadata, null, 2)
160
+ );
161
+
162
+ // Export goal
163
+ await fs.writeFile(
164
+ path.join(outputDir, 'goal', 'goal.json'),
165
+ JSON.stringify(goal, null, 2)
166
+ );
167
+
168
+ // Export context
169
+ await fs.writeFile(
170
+ path.join(outputDir, 'context', 'context.json'),
171
+ JSON.stringify(context, null, 2)
172
+ );
173
+
174
+ // Export plans
175
+ for (let i = 0; i < plans.length; i++) {
176
+ const planFile = i === 0 ? 'planA.json' : `plan${String.fromCharCode(65 + i)}.json`;
177
+ await fs.writeFile(
178
+ path.join(outputDir, 'plans', planFile),
179
+ JSON.stringify(plans[i], null, 2)
180
+ );
181
+ }
182
+
183
+ // Export task specs
184
+ const selectedPlan = plans.find((p) => p.id === selectedPlanId);
185
+ if (selectedPlan) {
186
+ for (const taskSpec of selectedPlan.tasks) {
187
+ await fs.writeFile(
188
+ path.join(outputDir, 'task-specs', `${taskSpec.id}.json`),
189
+ JSON.stringify(taskSpec, null, 2)
190
+ );
191
+ }
192
+ }
193
+
194
+ // Export policy records (JSONL)
195
+ if (policyRecords.length > 0) {
196
+ const policyLines = policyRecords.map((r) => JSON.stringify(r)).join('\n');
197
+ await fs.writeFile(
198
+ path.join(outputDir, 'policy', 'requests.jsonl'),
199
+ policyLines
200
+ );
201
+ }
202
+
203
+ // Export verification results
204
+ if (verificationResults.length > 0) {
205
+ await fs.writeFile(
206
+ path.join(outputDir, 'verification', 'results.json'),
207
+ JSON.stringify(verificationResults, null, 2)
208
+ );
209
+ }
210
+
211
+ // Export memory ledger (JSONL)
212
+ if (ledger.length > 0) {
213
+ const ledgerLines = ledger.map((entry) => JSON.stringify(entry)).join('\n');
214
+ await fs.writeFile(
215
+ path.join(outputDir, 'memory-ledger', 'ledger.jsonl'),
216
+ ledgerLines
217
+ );
218
+ }
219
+
220
+ // Export engine trace
221
+ if (engineTrace) {
222
+ await fs.writeFile(
223
+ path.join(outputDir, 'engine-trace', 'run.json'),
224
+ JSON.stringify(engineTrace, null, 2)
225
+ );
226
+ }
227
+
228
+ // Export task I/O
229
+ for (const record of taskIO) {
230
+ await fs.writeFile(
231
+ path.join(outputDir, 'task-io', `${record.taskId}.input.json`),
232
+ JSON.stringify(record.input, null, 2)
233
+ );
234
+ await fs.writeFile(
235
+ path.join(outputDir, 'task-io', `${record.taskId}.output.json`),
236
+ JSON.stringify(record.output, null, 2)
237
+ );
238
+ }
239
+
240
+ // Export planner prompts
241
+ if (plannerPrompts) {
242
+ await fs.writeFile(
243
+ path.join(outputDir, 'planner', 'messages.json'),
244
+ JSON.stringify(plannerPrompts, null, 2)
245
+ );
246
+ }
247
+
248
+ // Export LLM calls (JSONL) - Phase 4
249
+ if (llmCalls.length > 0) {
250
+ const llmCallLines = llmCalls.map((call) => JSON.stringify(call)).join('\n');
251
+ await fs.writeFile(
252
+ path.join(outputDir, 'planner', 'llm-calls.jsonl'),
253
+ llmCallLines
254
+ );
255
+ }
256
+
257
+ // Export internal context artifacts - Phase 4
258
+ if (internalContext.length > 0) {
259
+ await fs.writeFile(
260
+ path.join(outputDir, 'planner', 'internal-context', 'manifest.json'),
261
+ JSON.stringify(internalContext, null, 2)
262
+ );
263
+ }
264
+
265
+ return outputDir;
266
+ }
267
+
268
+ /**
269
+ * Load a replay bundle
270
+ */
271
+ static async load(bundleDir: string): Promise<{
272
+ metadata: ReplayBundleMetadata;
273
+ goal: Goal;
274
+ context: Context;
275
+ plans: Plan[];
276
+ ledger: LedgerEntry[];
277
+ taskIO: TaskIORecord[];
278
+ policyRecords: PolicyRecord[];
279
+ verificationResults: VerificationResult[];
280
+ engineTrace?: EngineTrace;
281
+ }> {
282
+ // Load metadata
283
+ const metadataPath = path.join(bundleDir, 'metadata.json');
284
+ const metadata = JSON.parse(await fs.readFile(metadataPath, 'utf-8'));
285
+
286
+ // Load goal
287
+ const goalPath = path.join(bundleDir, 'goal', 'goal.json');
288
+ const goal = JSON.parse(await fs.readFile(goalPath, 'utf-8'));
289
+
290
+ // Load context
291
+ const contextPath = path.join(bundleDir, 'context', 'context.json');
292
+ const context = JSON.parse(await fs.readFile(contextPath, 'utf-8'));
293
+
294
+ // Load plans
295
+ const plansDir = path.join(bundleDir, 'plans');
296
+ const planFiles = await fs.readdir(plansDir);
297
+ const plans = await Promise.all(
298
+ planFiles
299
+ .filter((f) => f.endsWith('.json'))
300
+ .map(async (f) => JSON.parse(await fs.readFile(path.join(plansDir, f), 'utf-8')))
301
+ );
302
+
303
+ // Load ledger
304
+ const ledgerPath = path.join(bundleDir, 'memory-ledger', 'ledger.jsonl');
305
+ let ledger: LedgerEntry[] = [];
306
+ try {
307
+ const ledgerContent = await fs.readFile(ledgerPath, 'utf-8');
308
+ ledger = ledgerContent
309
+ .split('\n')
310
+ .filter((line) => line.trim())
311
+ .map((line) => JSON.parse(line));
312
+ } catch {
313
+ // Ledger might not exist
314
+ }
315
+
316
+ // Load task I/O
317
+ const taskIODir = path.join(bundleDir, 'task-io');
318
+ let taskIO: TaskIORecord[] = [];
319
+ try {
320
+ const taskIOFiles = await fs.readdir(taskIODir);
321
+ const inputFiles = taskIOFiles.filter((f) => f.endsWith('.input.json'));
322
+
323
+ taskIO = await Promise.all(
324
+ inputFiles.map(async (f) => {
325
+ const taskId = f.replace('.input.json', '');
326
+ const input = JSON.parse(
327
+ await fs.readFile(path.join(taskIODir, f), 'utf-8')
328
+ );
329
+ const output = JSON.parse(
330
+ await fs.readFile(path.join(taskIODir, `${taskId}.output.json`), 'utf-8')
331
+ );
332
+ return { taskId, capability: '', input, output, ts: '' };
333
+ })
334
+ );
335
+ } catch {
336
+ // Task I/O might not exist
337
+ }
338
+
339
+ // Load policy records
340
+ const policyPath = path.join(bundleDir, 'policy', 'requests.jsonl');
341
+ let policyRecords: PolicyRecord[] = [];
342
+ try {
343
+ const policyContent = await fs.readFile(policyPath, 'utf-8');
344
+ policyRecords = policyContent
345
+ .split('\n')
346
+ .filter((line) => line.trim())
347
+ .map((line) => JSON.parse(line));
348
+ } catch {
349
+ // Policy records might not exist
350
+ }
351
+
352
+ // Load verification results
353
+ const verificationPath = path.join(bundleDir, 'verification', 'results.json');
354
+ let verificationResults: VerificationResult[] = [];
355
+ try {
356
+ verificationResults = JSON.parse(await fs.readFile(verificationPath, 'utf-8'));
357
+ } catch {
358
+ // Verification results might not exist
359
+ }
360
+
361
+ // Load engine trace
362
+ const engineTracePath = path.join(bundleDir, 'engine-trace', 'run.json');
363
+ let engineTrace: EngineTrace | undefined;
364
+ try {
365
+ engineTrace = JSON.parse(await fs.readFile(engineTracePath, 'utf-8'));
366
+ } catch {
367
+ // Engine trace might not exist
368
+ }
369
+
370
+ return {
371
+ metadata,
372
+ goal,
373
+ context,
374
+ plans,
375
+ ledger,
376
+ taskIO,
377
+ policyRecords,
378
+ verificationResults,
379
+ engineTrace,
380
+ };
381
+ }
382
+
383
+ /**
384
+ * Validate a replay bundle structure
385
+ */
386
+ static async validate(bundleDir: string): Promise<{ valid: boolean; errors: string[] }> {
387
+ const errors: string[] = [];
388
+
389
+ // Check required files
390
+ const requiredFiles = [
391
+ 'metadata.json',
392
+ 'goal/goal.json',
393
+ 'context/context.json',
394
+ ];
395
+
396
+ for (const file of requiredFiles) {
397
+ try {
398
+ await fs.access(path.join(bundleDir, file));
399
+ } catch {
400
+ errors.push(`Missing required file: ${file}`);
401
+ }
402
+ }
403
+
404
+ // Check plans directory
405
+ try {
406
+ const plansDir = path.join(bundleDir, 'plans');
407
+ const planFiles = await fs.readdir(plansDir);
408
+ if (planFiles.filter((f) => f.endsWith('.json')).length === 0) {
409
+ errors.push('No plan files found in plans directory');
410
+ }
411
+ } catch {
412
+ errors.push('Plans directory not found or inaccessible');
413
+ }
414
+
415
+ return {
416
+ valid: errors.length === 0,
417
+ errors,
418
+ };
419
+ }
420
+ }
package/src/index.ts ADDED
@@ -0,0 +1,10 @@
1
+ // Replay bundle export and import for ACM
2
+ export {
3
+ ReplayBundleExporter,
4
+ type ReplayBundleMetadata,
5
+ type ReplayBundleExportOptions,
6
+ type PolicyRecord,
7
+ type VerificationResult,
8
+ type TaskIORecord,
9
+ type EngineTrace,
10
+ } from './exporter.js';
package/tsconfig.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "outDir": "./dist",
5
+ "rootDir": "./src"
6
+ },
7
+ "include": ["src/**/*"],
8
+ "references": [
9
+ { "path": "../acm-sdk" },
10
+ { "path": "../acm-runtime" }
11
+ ]
12
+ }
@@ -0,0 +1 @@
1
+ {"fileNames":["../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../acm-sdk/dist/src/nucleus.d.ts","../acm-sdk/dist/src/types.d.ts","../acm-sdk/dist/src/tool.d.ts","../acm-sdk/dist/src/task.d.ts","../acm-sdk/dist/src/capability.d.ts","../acm-sdk/dist/src/registry.d.ts","../acm-sdk/dist/src/policy.d.ts","../acm-sdk/dist/src/stream.d.ts","../acm-sdk/dist/src/context.d.ts","../acm-sdk/dist/src/context-provider.d.ts","../acm-sdk/dist/src/utils.d.ts","../acm-sdk/dist/src/index.d.ts","./src/exporter.ts","./src/index.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/compatibility/disposable.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/compatibility/index.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/globals.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/web-globals/domexception.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/web-globals/events.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/header.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/readable.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/file.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/fetch.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/formdata.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/connector.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/client.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/errors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/dispatcher.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-dispatcher.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/global-origin.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool-stats.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/handlers.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/balanced-pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-interceptor.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-client.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-pool.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/mock-errors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-handler.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/retry-agent.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/api.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/interceptors.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/util.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cookies.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/patch.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/websocket.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/eventsource.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/filereader.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/diagnostics-channel.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/content-type.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/cache.d.ts","../../node_modules/.pnpm/undici-types@6.21.0/node_modules/undici-types/index.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/web-globals/fetch.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/assert.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/assert/strict.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/async_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/buffer.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/child_process.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/cluster.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/console.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/constants.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/crypto.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/dgram.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/dns.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/dns/promises.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/domain.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/events.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/fs.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/fs/promises.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/http.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/http2.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/https.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/inspector.generated.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/module.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/net.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/os.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/path.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/perf_hooks.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/process.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/punycode.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/querystring.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/readline.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/readline/promises.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/repl.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/sea.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/stream.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/stream/promises.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/stream/consumers.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/stream/web.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/string_decoder.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/test.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/timers.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/timers/promises.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/tls.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/trace_events.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/tty.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/url.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/util.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/v8.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/vm.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/wasi.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/worker_threads.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/zlib.d.ts","../../node_modules/.pnpm/@types+node@20.19.19/node_modules/@types/node/index.d.ts"],"fileIdsList":[[77,120,123],[77,122,123],[123],[77,123,128,156],[77,123,124,129,134,142,153,164],[77,123,124,125,134,142],[77,123],[72,73,74,77,123],[77,123,126,165],[77,123,127,128,135,143],[77,123,128,153,161],[77,123,129,131,134,142],[77,122,123,130],[77,123,131,132],[77,123,133,134],[77,122,123,134],[77,123,134,135,136,153,164],[77,123,134,135,136,149,153,156],[77,123,131,134,137,142,153,164],[77,123,134,135,137,138,142,153,161,164],[77,123,137,139,153,161,164],[75,76,77,78,79,80,81,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170],[77,123,134,140],[77,123,141,164,169],[77,123,131,134,142,153],[77,123,143],[77,123,144],[77,122,123,145],[77,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170],[77,123,147],[77,123,148],[77,123,134,149,150],[77,123,149,151,165,167],[77,123,134,153,154,156],[77,123,155,156],[77,123,153,154],[77,123,156],[77,123,157],[77,120,123,153,158],[77,123,134,159,160],[77,123,159,160],[77,123,128,142,153,161],[77,123,162],[77,123,142,163],[77,123,137,148,164],[77,123,128,165],[77,123,153,166],[77,123,141,167],[77,123,168],[77,118,123],[77,118,123,134,136,145,153,156,164,167,169],[77,123,153,170],[77,90,94,123,164],[77,90,123,153,164],[77,85,123],[77,87,90,123,161,164],[77,123,142,161],[77,123,171],[77,85,123,171],[77,87,90,123,142,164],[77,82,83,86,89,123,134,153,164],[77,90,97,123],[77,82,88,123],[77,90,111,112,123],[77,86,90,123,156,164,171],[77,111,123,171],[77,84,85,123,171],[77,90,123],[77,84,85,86,87,88,89,90,91,92,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,112,113,114,115,116,117,123],[77,90,105,123],[77,90,97,98,123],[77,88,90,98,99,123],[77,89,123],[77,82,85,90,123],[77,90,94,98,99,123],[77,94,123],[77,88,90,93,123,164],[77,82,87,90,97,123],[77,123,153],[77,85,90,111,123,169,171],[69,77,123,136,144],[70,77,123],[59,61,77,123],[58,59,60,77,123],[59,77,123],[58,59,60,61,62,63,64,65,66,67,68,77,123],[60,77,123],[58,59,77,123],[58,77,123],[59,62,77,123]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},"5ad07c262dfb2f14353e2f3ffc096600cad7c02a36f8bfb1011f0a034377feb0","777102e8edbfc06dd3f1b71ec30ee7d694ebb29f20f8e413383a41fe6804e1b2","d11a4c7da78f3ca2be8e9dcdbe007e5abd0dbd2ab82ae686c76772346bf8c620","75e2ff50a8320c8f80aef345259ee659ccc9d40504f848e9b24b1e304fc55352","1a88dfa5ab3bdecb302f94b4abdf1510c68699cf3437347a3462116cf37d8fb4","5d5df716a2e624c74357b49383a950b8ff0567890c28e62d3787011dd26eaf4d","4e863ccf9bf55d8b9120ce28e4faee052e191fa9fa2c9637d427682a9a72059c","45b1108af4c5adaa8e1cf58e6fcaa73fde57c72254c7ae5603673c04b364c522","e99d408704752e8bab84079cec1c33682b98715949145f0a95d2c98997d565ac","17d36096aa97a3177dbced126f752049a19e11778345a280227eb64c33972518","ca8bd23c8b8a2e6fc15fb248bfbc2db70faac477c5780265cc2ce96445f8fc8d","fbf4f020dab462fed68d3623ea47d3c9376b462d5d199ba4992351c6830e4f8c",{"version":"ec39036b0d6e40f8259287dc0c7f3613a6cf3812f52bc026cbec540fda634db5","signature":"4c6046df2d3cb8ac319fa1ce772145365e02c82d7fd225b7b838bedd3737eed4"},{"version":"4af4a04c21b641675b7939ddc4a3eb734968b6cbc892f45935c8d9cb90d3f23f","signature":"b328e97310e3b991827b736aea38d0868ea5267c956d003f24559f83460d442d"},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"49a5a44f2e68241a1d2bd9ec894535797998841c09729e506a7cbfcaa40f2180","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e2e0a2dfc6bfabffacba3cc3395aa8197f30893942a2625bd9923ea34a27a3c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"567b7f607f400873151d7bc63a049514b53c3c00f5f56e9e95695d93b66a138e","affectsGlobalScope":true,"impliedFormat":1},{"version":"823f9c08700a30e2920a063891df4e357c64333fdba6889522acc5b7ae13fc08","impliedFormat":1},{"version":"84c1930e33d1bb12ad01bcbe11d656f9646bd21b2fb2afd96e8e10615a021aef","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4b87f767c7bc841511113c876a6b8bf1fd0cb0b718c888ad84478b372ec486b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d04e3640dd9eb67f7f1e5bd3d0bf96c784666f7aefc8ac1537af6f2d38d4c29","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"2bf469abae4cc9c0f340d4e05d9d26e37f936f9c8ca8f007a6534f109dcc77e4","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"1d140fe7e071ea06038b6c5e01fea83f72d9d6d68e0d606a3d824323f5133388","affectsGlobalScope":true,"impliedFormat":1},{"version":"4c21aaa8257d7950a5b75a251d9075b6a371208fc948c9c8402f6690ef3b5b55","impliedFormat":1},{"version":"685657a3ec619ef12aa7f754eee3b28598d3bf9749da89839a72a343fffef5ff","impliedFormat":1},{"version":"0c52340a45f6a46b67d766210f921aed61a5f1defe9e708fa5d3389bdf743d98","impliedFormat":1},{"version":"de735eca2c51dd8b860254e9fdb6d9ec19fe402dfe597c23090841ce3937cfc5","impliedFormat":1},{"version":"fed70ffbe859d54d8c7e1ef8cc2bc38af99b00a273ebb69ac293d2cb656210bd","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"5155da3047ef977944d791a2188ff6e6c225f6975cc1910ab7bb6838ab84cede","impliedFormat":1},{"version":"93f437e1398a4f06a984f441f7fa7a9f0535c04399619b5c22e0b87bdee182cb","impliedFormat":1},{"version":"afbe24ab0d74694372baa632ecb28bb375be53f3be53f9b07ecd7fc994907de5","impliedFormat":1},{"version":"e16d218a30f6a6810b57f7e968124eaa08c7bb366133ea34bbf01e7cd6b8c0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb8692dea24c27821f77e397272d9ed2eda0b95e4a75beb0fdda31081d15a8ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"5b6844ad931dcc1d3aca53268f4bd671428421464b1286746027aede398094f2","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"125d792ec6c0c0f657d758055c494301cc5fdb327d9d9d5960b3f129aff76093","impliedFormat":1},{"version":"0225ecb9ed86bdb7a2c7fd01f1556906902929377b44483dc4b83e03b3ef227d","affectsGlobalScope":true,"impliedFormat":1},{"version":"1851a3b4db78664f83901bb9cac9e45e03a37bb5933cc5bf37e10bb7e91ab4eb","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"e31e51c55800014d926e3f74208af49cb7352803619855c89296074d1ecbb524","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"dfb96ba5177b68003deec9e773c47257da5c4c8a74053d8956389d832df72002","affectsGlobalScope":true,"impliedFormat":1},{"version":"92d3070580cf72b4bb80959b7f16ede9a3f39e6f4ef2ac87cfa4561844fdc69f","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3dffd70e6375b872f0b4e152de4ae682d762c61a24881ecc5eb9f04c5caf76f","impliedFormat":1},{"version":"613deebaec53731ff6b74fe1a89f094b708033db6396b601df3e6d5ab0ec0a47","impliedFormat":1},{"version":"d91a7d8b5655c42986f1bdfe2105c4408f472831c8f20cf11a8c3345b6b56c8c","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8a979b8af001c9fc2e774e7809d233c8ca955a28756f52ee5dee88ccb0611d2","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1}],"root":[70,71],"options":{"composite":true,"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":7,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"sourceMap":true,"strict":true,"target":9},"referencedMap":[[120,1],[121,1],[122,2],[77,3],[123,4],[124,5],[125,6],[72,7],[75,8],[73,7],[74,7],[126,9],[127,10],[128,11],[129,12],[130,13],[131,14],[132,14],[133,15],[134,16],[135,17],[136,18],[78,7],[76,7],[137,19],[138,20],[139,21],[171,22],[140,23],[141,24],[142,25],[143,26],[144,27],[145,28],[146,29],[147,30],[148,31],[149,32],[150,32],[151,33],[152,7],[153,34],[155,35],[154,36],[156,37],[157,38],[158,39],[159,40],[160,41],[161,42],[162,43],[163,44],[164,45],[165,46],[166,47],[167,48],[168,49],[79,7],[80,7],[81,7],[119,50],[169,51],[170,52],[56,7],[57,7],[11,7],[10,7],[2,7],[12,7],[13,7],[14,7],[15,7],[16,7],[17,7],[18,7],[19,7],[3,7],[20,7],[21,7],[4,7],[22,7],[26,7],[23,7],[24,7],[25,7],[27,7],[28,7],[29,7],[5,7],[30,7],[31,7],[32,7],[33,7],[6,7],[37,7],[34,7],[35,7],[36,7],[38,7],[7,7],[39,7],[44,7],[45,7],[40,7],[41,7],[42,7],[43,7],[8,7],[49,7],[46,7],[47,7],[48,7],[50,7],[9,7],[51,7],[52,7],[53,7],[55,7],[54,7],[1,7],[97,53],[107,54],[96,53],[117,55],[88,56],[87,57],[116,58],[110,59],[115,60],[90,61],[104,62],[89,63],[113,64],[85,65],[84,58],[114,66],[86,67],[91,68],[92,7],[95,68],[82,7],[118,69],[108,70],[99,71],[100,72],[102,73],[98,74],[101,75],[111,58],[93,76],[94,77],[103,78],[83,79],[106,70],[105,68],[109,7],[112,80],[70,81],[71,82],[62,83],[67,84],[66,85],[69,86],[58,85],[64,85],[63,87],[65,85],[61,88],[60,7],[59,89],[68,90]],"latestChangedDtsFile":"./dist/index.d.ts","version":"5.9.3"}