@devflow-tools/database 0.16.28 → 0.16.29

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/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.16.29](https://github.com/shilongfeicool/dev-flow/compare/v0.16.28...v0.16.29) (2026-07-29)
7
+
8
+
9
+ ### Features
10
+
11
+ * **retrieval:** enforce actions and track verified outcomes ([5e2756a](https://github.com/shilongfeicool/dev-flow/commit/5e2756ababaa246cd78ea7bc6877f59e5972e5db))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [0.16.28](https://github.com/shilongfeicool/dev-flow/compare/v0.16.27...v0.16.28) (2026-07-29)
7
18
 
8
19
  **Note:** Version bump only for package @devflow-tools/database
@@ -0,0 +1,53 @@
1
+ import { mkdtempSync, rmSync } from 'node:fs';
2
+ import { tmpdir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { afterEach, describe, expect, it } from 'vitest';
5
+ import { DevFlowDatabase, type RetrievalLedgerEventRecord } from '../src/index.js';
6
+
7
+ describe('retrieval ledger', () => {
8
+ const directories: string[] = [];
9
+
10
+ afterEach(() => {
11
+ for (const directory of directories.splice(0)) rmSync(directory, { recursive: true, force: true });
12
+ });
13
+
14
+ it('is append-only and idempotent per immutable event identity', () => {
15
+ const database = createDatabase();
16
+ const selected = event({ id: 'selected-a', stage: 'selected' });
17
+ expect(database.appendRetrievalLedgerEvent(selected)).toBe(true);
18
+ expect(database.appendRetrievalLedgerEvent({ ...selected, reason: 'changed' })).toBe(false);
19
+ expect(database.appendRetrievalLedgerEvent(event({ id: 'exposed-a', stage: 'exposed' }))).toBe(true);
20
+ expect(database.listRetrievalLedgerEvents({ projectRoot: '/project' })).toEqual(expect.arrayContaining([
21
+ expect.objectContaining({ id: 'selected-a', stage: 'selected', reason: undefined }),
22
+ expect.objectContaining({ id: 'exposed-a', stage: 'exposed' }),
23
+ ]));
24
+ database.close();
25
+ });
26
+
27
+ it('rejects score loss between returned evidence and persisted selected evidence', () => {
28
+ const database = createDatabase();
29
+ expect(() => database.appendRetrievalLedgerEvent(event({
30
+ id: 'score-loss',
31
+ stage: 'selected',
32
+ finalScore: 0,
33
+ payload: { returnedFinalScore: 0.81 },
34
+ }))).toThrow('RETRIEVAL_LEDGER_INVALID_FINAL_SCORE');
35
+ database.close();
36
+ });
37
+
38
+ function createDatabase(): DevFlowDatabase {
39
+ const directory = mkdtempSync(join(tmpdir(), 'devflow-retrieval-ledger-'));
40
+ directories.push(directory);
41
+ return new DevFlowDatabase(join(directory, 'devflow.db'));
42
+ }
43
+
44
+ function event(overrides: Partial<RetrievalLedgerEventRecord>): RetrievalLedgerEventRecord {
45
+ return {
46
+ id: 'event-a', projectRoot: '/project', sessionId: 'session-a', executionId: 'execution-a',
47
+ requestId: 'request-a', contextReceipt: 'context-a', sourceType: 'memory', sourceId: 'memory-a',
48
+ stage: 'candidate', rank: 1, rawScore: 0.7, normalizedScore: 0.75, finalScore: 0.8,
49
+ applicability: ['formatting'], toolEvidence: [], payload: { returnedFinalScore: 0.8 }, createdAt: 100,
50
+ ...overrides,
51
+ };
52
+ }
53
+ });
@@ -4,6 +4,7 @@ import { type FailHostActionInput, type HostActionRecord, type ReportHostActionI
4
4
  import { type AppendRetrievalCycleInput, type CreateRetrievalSessionInput, type RetrievalCycleRecord, type RetrievalSessionRecord, type RetrievalSessionState } from './retrieval-sessions';
5
5
  import { type AddLearningCandidateEvidenceInput, type LearningCandidateEvidenceRecord, type LearningCandidateRecord, type LearningCandidateState, type LearningCandidateVersionRecord, type TransitionLearningCandidateInput, type UpsertLearningCandidateInput } from './learning-candidates';
6
6
  import { type CreateWorkflowWorkerInput, type EnqueueWorkflowMergeInput, type TransitionWorkflowWorkerInput, type WorkflowMergeRecord, type WorkflowMergeState, type WorkflowWorkerEventRecord, type WorkflowWorkerRecord } from './workflow-workers';
7
+ import type { RetrievalLedgerEventRecord } from './retrieval-ledger';
7
8
  export interface BenchmarkReportRecord {
8
9
  runId: string;
9
10
  suiteId: string;
@@ -82,6 +83,33 @@ export interface ContextReceiptRecord {
82
83
  selectedFiles?: string[];
83
84
  memoryIds?: string[];
84
85
  canonicalNextAction?: string;
86
+ canonicalAction?: {
87
+ tool: string;
88
+ input: Record<string, unknown>;
89
+ status: 'required' | 'recommended' | 'unsupported' | 'degraded';
90
+ required: boolean;
91
+ reason?: string;
92
+ binding: Record<string, unknown> & {
93
+ requiredContextReceipt: string;
94
+ };
95
+ verificationPlan: Array<Record<string, unknown>>;
96
+ };
97
+ actionAttempts?: Array<{
98
+ id: string;
99
+ tool: string;
100
+ status: 'succeeded' | 'failed' | 'timeout' | 'unavailable';
101
+ attemptedAt: number;
102
+ toolUseId?: string;
103
+ reason?: string;
104
+ }>;
105
+ actionSatisfiedAt?: number;
106
+ actionDegradation?: {
107
+ missedTool: string;
108
+ failedAttemptCount: number;
109
+ reason: string;
110
+ authorizedByContextReceipt: string;
111
+ authorizedAt: number;
112
+ };
85
113
  requestId?: string;
86
114
  }
87
115
  export interface ContextSelectionEventRecord {
@@ -96,6 +124,14 @@ export interface ContextSelectionEventRecord {
96
124
  toolUseId?: string;
97
125
  selectedAt: number;
98
126
  }
127
+ export interface PolicyVerificationBaselineRecord {
128
+ projectRoot: string;
129
+ kind: string;
130
+ commandHash: string;
131
+ diagnosticHashes: string[];
132
+ sourceRevision?: string;
133
+ updatedAt: number;
134
+ }
99
135
  export interface MemoryDistillCheckpointRecord {
100
136
  id: string;
101
137
  projectRoot: string;
@@ -383,6 +419,13 @@ export declare class DevFlowDatabase {
383
419
  getContextReceipt(projectRoot: string, sessionId: string, executionId: string): ContextReceiptRecord | null;
384
420
  getActiveContextReceipt(projectRoot: string, sessionId: string, executionId?: string, now?: number): ContextReceiptRecord | null;
385
421
  recordContextSelectionEvent(event: ContextSelectionEventRecord): boolean;
422
+ appendRetrievalLedgerEvent(event: RetrievalLedgerEventRecord): boolean;
423
+ listRetrievalLedgerEvents(options: {
424
+ projectRoot: string;
425
+ sessionId?: string;
426
+ executionId?: string;
427
+ requestId?: string;
428
+ }): RetrievalLedgerEventRecord[];
386
429
  listContextSelectionEvents(options: {
387
430
  projectRoot: string;
388
431
  sessionId?: string;
@@ -390,6 +433,8 @@ export declare class DevFlowDatabase {
390
433
  requestId?: string;
391
434
  }): ContextSelectionEventRecord[];
392
435
  deleteContextReceipt(projectRoot: string, sessionId: string, executionId?: string): number;
436
+ getPolicyVerificationBaseline(projectRoot: string, kind: string, commandHash: string): PolicyVerificationBaselineRecord | null;
437
+ upsertPolicyVerificationBaseline(record: PolicyVerificationBaselineRecord): void;
393
438
  purgeExpiredContextReceipts(now?: number): number;
394
439
  beginMemoryTurn(input: Omit<MemoryTurnRecord, 'status' | 'memoryIds'>): MemoryTurnRecord;
395
440
  upsertSessionObligation(record: SessionObligationRecord): SessionObligationRecord;
package/dist/database.js CHANGED
@@ -289,6 +289,10 @@ class DevFlowDatabase {
289
289
  selected_files TEXT NOT NULL DEFAULT '[]',
290
290
  memory_ids TEXT NOT NULL DEFAULT '[]',
291
291
  canonical_next_action TEXT,
292
+ canonical_action_json TEXT,
293
+ action_attempts TEXT NOT NULL DEFAULT '[]',
294
+ action_satisfied_at INTEGER,
295
+ action_degradation_json TEXT,
292
296
  request_id TEXT,
293
297
  PRIMARY KEY (project_root, session_id, execution_id)
294
298
  );
@@ -312,6 +316,29 @@ class DevFlowDatabase {
312
316
  CREATE INDEX IF NOT EXISTS idx_context_selection_identity
313
317
  ON devflow_context_selection_events(project_root, session_id, execution_id, request_id);
314
318
 
319
+ CREATE TABLE IF NOT EXISTS devflow_retrieval_ledger (
320
+ id TEXT PRIMARY KEY,
321
+ project_root TEXT NOT NULL, session_id TEXT NOT NULL, execution_id TEXT, turn_id TEXT,
322
+ request_id TEXT NOT NULL, context_receipt TEXT NOT NULL, source_type TEXT NOT NULL,
323
+ source_id TEXT NOT NULL, stage TEXT NOT NULL, rank INTEGER, raw_score REAL,
324
+ normalized_score REAL, final_score REAL, applicability TEXT NOT NULL DEFAULT '[]',
325
+ reason TEXT, tool_evidence TEXT NOT NULL DEFAULT '[]', verification_receipt TEXT,
326
+ payload TEXT NOT NULL DEFAULT '{}', created_at INTEGER NOT NULL
327
+ );
328
+ CREATE INDEX IF NOT EXISTS idx_retrieval_ledger_identity ON devflow_retrieval_ledger(
329
+ project_root, session_id, execution_id, request_id, context_receipt, source_type, source_id, created_at
330
+ );
331
+
332
+ CREATE TABLE IF NOT EXISTS devflow_policy_verification_baselines (
333
+ project_root TEXT NOT NULL,
334
+ kind TEXT NOT NULL,
335
+ command_hash TEXT NOT NULL,
336
+ diagnostic_hashes TEXT NOT NULL DEFAULT '[]',
337
+ source_revision TEXT,
338
+ updated_at INTEGER NOT NULL,
339
+ PRIMARY KEY (project_root, kind, command_hash)
340
+ );
341
+
315
342
  CREATE TABLE IF NOT EXISTS devflow_retrieval_sessions (
316
343
  id TEXT PRIMARY KEY,
317
344
  request_id TEXT NOT NULL UNIQUE,
@@ -785,6 +812,22 @@ class DevFlowDatabase {
785
812
  this.db.exec('ALTER TABLE devflow_context_receipts ADD COLUMN canonical_next_action TEXT');
786
813
  }
787
814
  catch { }
815
+ try {
816
+ this.db.exec('ALTER TABLE devflow_context_receipts ADD COLUMN canonical_action_json TEXT');
817
+ }
818
+ catch { }
819
+ try {
820
+ this.db.exec("ALTER TABLE devflow_context_receipts ADD COLUMN action_attempts TEXT NOT NULL DEFAULT '[]'");
821
+ }
822
+ catch { }
823
+ try {
824
+ this.db.exec('ALTER TABLE devflow_context_receipts ADD COLUMN action_satisfied_at INTEGER');
825
+ }
826
+ catch { }
827
+ try {
828
+ this.db.exec('ALTER TABLE devflow_context_receipts ADD COLUMN action_degradation_json TEXT');
829
+ }
830
+ catch { }
788
831
  try {
789
832
  this.db.exec('ALTER TABLE devflow_context_receipts ADD COLUMN request_id TEXT');
790
833
  }
@@ -1475,12 +1518,20 @@ class DevFlowDatabase {
1475
1518
  const fallbackReasons = [...new Set([
1476
1519
  ...directFallbacks.map(() => 'direct_tool_during_context'),
1477
1520
  ...hookFallbacks.map(fallback => `daemon_${fallback.reason}`),
1521
+ ...(execution?.fallbackReasons ?? []),
1478
1522
  ])];
1479
1523
  const eventReceiptIds = collectCanonicalReceiptIds(events.map(event => event.output));
1480
1524
  const existingMetadata = execution?.metadata && typeof execution.metadata === 'object'
1481
1525
  ? execution.metadata
1482
1526
  : {};
1483
1527
  const mergedMetadata = mergeExecutionMetadata(existingMetadata, metadata ?? {});
1528
+ const requiredActionDegradations = Array.isArray(mergedMetadata.requiredActionDegradations)
1529
+ ? mergedMetadata.requiredActionDegradations
1530
+ : [];
1531
+ const degradedRequiredTools = requiredActionDegradations
1532
+ .map(item => item.missedTool)
1533
+ .filter((tool) => typeof tool === 'string');
1534
+ const requiredActionFailureCount = requiredActionDegradations.reduce((count, item) => (Math.max(count, typeof item.failedAttemptCount === 'number' ? item.failedAttemptCount : 0)), 0);
1484
1535
  const suppliedMemoryReceiptIds = [existingMetadata.memoryReceiptIds, metadata?.memoryReceiptIds]
1485
1536
  .flatMap(value => Array.isArray(value) ? value : [])
1486
1537
  .filter((id) => typeof id === 'string');
@@ -1506,8 +1557,8 @@ class DevFlowDatabase {
1506
1557
  ? Math.max(0, finishedAt - execution.startedAt)
1507
1558
  : row?.first_at != null && row?.last_at != null ? row.last_at - row.first_at : 0,
1508
1559
  mcpComplianceRate: obligation.rate,
1509
- missedMcpTools: obligation.missedTools,
1510
- failedToolCalls: failures.length,
1560
+ missedMcpTools: [...new Set([...obligation.missedTools, ...degradedRequiredTools])],
1561
+ failedToolCalls: Math.max(failures.length, requiredActionFailureCount),
1511
1562
  blockedToolCalls: blocked.length,
1512
1563
  fallbackCount: directFallbacks.length + hookFallbacks.length,
1513
1564
  fallbackReasons,
@@ -1515,8 +1566,8 @@ class DevFlowDatabase {
1515
1566
  ...mergedMetadata,
1516
1567
  applicableObligations: obligation.applicable,
1517
1568
  satisfiedObligations: obligation.satisfied,
1518
- missedTools: obligation.missedTools,
1519
- actualFailureCount: failures.length,
1569
+ missedTools: [...new Set([...obligation.missedTools, ...degradedRequiredTools])],
1570
+ actualFailureCount: Math.max(failures.length, requiredActionFailureCount),
1520
1571
  blockedCount: blocked.length,
1521
1572
  fallbackCount: directFallbacks.length + hookFallbacks.length,
1522
1573
  fallbackReasons,
@@ -2803,8 +2854,9 @@ class DevFlowDatabase {
2803
2854
  this.db.prepare(`
2804
2855
  INSERT INTO devflow_context_receipts
2805
2856
  (project_root, session_id, execution_id, context_hash, issued_at, expires_at,
2806
- selected_files, memory_ids, canonical_next_action, request_id)
2807
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2857
+ selected_files, memory_ids, canonical_next_action, canonical_action_json,
2858
+ action_attempts, action_satisfied_at, action_degradation_json, request_id)
2859
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2808
2860
  ON CONFLICT(project_root, session_id, execution_id) DO UPDATE SET
2809
2861
  context_hash = excluded.context_hash,
2810
2862
  issued_at = excluded.issued_at,
@@ -2812,13 +2864,18 @@ class DevFlowDatabase {
2812
2864
  selected_files = excluded.selected_files,
2813
2865
  memory_ids = excluded.memory_ids,
2814
2866
  canonical_next_action = excluded.canonical_next_action,
2867
+ canonical_action_json = excluded.canonical_action_json,
2868
+ action_attempts = excluded.action_attempts,
2869
+ action_satisfied_at = excluded.action_satisfied_at,
2870
+ action_degradation_json = excluded.action_degradation_json,
2815
2871
  request_id = excluded.request_id
2816
- `).run(receipt.projectRoot, receipt.sessionId, receipt.executionId, receipt.contextHash, receipt.issuedAt, receipt.expiresAt, JSON.stringify(receipt.selectedFiles ?? []), JSON.stringify(receipt.memoryIds ?? []), receipt.canonicalNextAction ?? null, receipt.requestId ?? null);
2872
+ `).run(receipt.projectRoot, receipt.sessionId, receipt.executionId, receipt.contextHash, receipt.issuedAt, receipt.expiresAt, JSON.stringify(receipt.selectedFiles ?? []), JSON.stringify(receipt.memoryIds ?? []), receipt.canonicalNextAction ?? null, receipt.canonicalAction ? JSON.stringify(receipt.canonicalAction) : null, JSON.stringify(receipt.actionAttempts ?? []), receipt.actionSatisfiedAt ?? null, receipt.actionDegradation ? JSON.stringify(receipt.actionDegradation) : null, receipt.requestId ?? null);
2817
2873
  }
2818
2874
  getContextReceipt(projectRoot, sessionId, executionId) {
2819
2875
  const row = this.db.prepare(`
2820
2876
  SELECT project_root, session_id, execution_id, context_hash, issued_at, expires_at,
2821
- selected_files, memory_ids, canonical_next_action, request_id
2877
+ selected_files, memory_ids, canonical_next_action, canonical_action_json,
2878
+ action_attempts, action_satisfied_at, action_degradation_json, request_id
2822
2879
  FROM devflow_context_receipts
2823
2880
  WHERE project_root = ? AND session_id = ? AND execution_id = ?
2824
2881
  `).get(projectRoot, sessionId, executionId);
@@ -2832,6 +2889,10 @@ class DevFlowDatabase {
2832
2889
  selectedFiles: parseJsonStringArray(row.selected_files),
2833
2890
  memoryIds: parseJsonStringArray(row.memory_ids),
2834
2891
  canonicalNextAction: row.canonical_next_action ?? undefined,
2892
+ canonicalAction: parseJsonObject(row.canonical_action_json),
2893
+ actionAttempts: parseJsonArray(row.action_attempts),
2894
+ actionSatisfiedAt: row.action_satisfied_at ?? undefined,
2895
+ actionDegradation: parseJsonObject(row.action_degradation_json),
2835
2896
  requestId: row.request_id ?? undefined,
2836
2897
  } : null;
2837
2898
  }
@@ -2842,7 +2903,8 @@ class DevFlowDatabase {
2842
2903
  : [projectRoot, sessionId, now];
2843
2904
  const row = this.db.prepare(`
2844
2905
  SELECT project_root, session_id, execution_id, context_hash, issued_at, expires_at,
2845
- selected_files, memory_ids, canonical_next_action, request_id
2906
+ selected_files, memory_ids, canonical_next_action, canonical_action_json,
2907
+ action_attempts, action_satisfied_at, action_degradation_json, request_id
2846
2908
  FROM devflow_context_receipts
2847
2909
  WHERE project_root = ? AND session_id = ? ${executionClause} AND expires_at > ?
2848
2910
  ORDER BY issued_at DESC
@@ -2858,6 +2920,10 @@ class DevFlowDatabase {
2858
2920
  selectedFiles: parseJsonStringArray(row.selected_files),
2859
2921
  memoryIds: parseJsonStringArray(row.memory_ids),
2860
2922
  canonicalNextAction: row.canonical_next_action ?? undefined,
2923
+ canonicalAction: parseJsonObject(row.canonical_action_json),
2924
+ actionAttempts: parseJsonArray(row.action_attempts),
2925
+ actionSatisfiedAt: row.action_satisfied_at ?? undefined,
2926
+ actionDegradation: parseJsonObject(row.action_degradation_json),
2861
2927
  requestId: row.request_id ?? undefined,
2862
2928
  } : null;
2863
2929
  }
@@ -2869,6 +2935,47 @@ class DevFlowDatabase {
2869
2935
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2870
2936
  `).run(event.id, event.projectRoot, event.sessionId, event.executionId, event.requestId ?? null, event.selectionType, event.candidateId, event.toolName, event.toolUseId ?? null, event.selectedAt).changes > 0;
2871
2937
  }
2938
+ appendRetrievalLedgerEvent(event) {
2939
+ if ((event.stage === 'selected' || event.stage === 'exposed')
2940
+ && typeof event.payload.returnedFinalScore === 'number'
2941
+ && event.payload.returnedFinalScore > 0
2942
+ && event.finalScore === 0) {
2943
+ throw new Error(`RETRIEVAL_LEDGER_INVALID_FINAL_SCORE:${event.sourceType}:${event.sourceId}`);
2944
+ }
2945
+ return this.db.prepare(`
2946
+ INSERT OR IGNORE INTO devflow_retrieval_ledger (
2947
+ id, project_root, session_id, execution_id, turn_id, request_id, context_receipt,
2948
+ source_type, source_id, stage, rank, raw_score, normalized_score, final_score,
2949
+ applicability, reason, tool_evidence, verification_receipt, payload, created_at
2950
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2951
+ `).run(event.id, event.projectRoot, event.sessionId, event.executionId ?? null, event.turnId ?? null, event.requestId, event.contextReceipt, event.sourceType, event.sourceId, event.stage, event.rank ?? null, event.rawScore ?? null, event.normalizedScore ?? null, event.finalScore ?? null, JSON.stringify(event.applicability), event.reason ?? null, JSON.stringify(event.toolEvidence), event.verificationReceipt ?? null, JSON.stringify(event.payload), event.createdAt).changes > 0;
2952
+ }
2953
+ listRetrievalLedgerEvents(options) {
2954
+ const predicates = ['project_root = ?'];
2955
+ const params = [options.projectRoot];
2956
+ for (const [column, value] of [
2957
+ ['session_id', options.sessionId], ['execution_id', options.executionId], ['request_id', options.requestId],
2958
+ ]) {
2959
+ if (value) {
2960
+ predicates.push(`${column} = ?`);
2961
+ params.push(value);
2962
+ }
2963
+ }
2964
+ return this.db.prepare(`SELECT * FROM devflow_retrieval_ledger
2965
+ WHERE ${predicates.join(' AND ')} ORDER BY created_at ASC, id ASC`).all(...params)
2966
+ .map(row => ({
2967
+ id: row.id, projectRoot: row.project_root, sessionId: row.session_id,
2968
+ executionId: row.execution_id ?? undefined, turnId: row.turn_id ?? undefined,
2969
+ requestId: row.request_id, contextReceipt: row.context_receipt,
2970
+ sourceType: row.source_type, sourceId: row.source_id, stage: row.stage,
2971
+ rank: row.rank ?? undefined, rawScore: row.raw_score ?? undefined,
2972
+ normalizedScore: row.normalized_score ?? undefined, finalScore: row.final_score ?? undefined,
2973
+ applicability: parseJsonStringArray(row.applicability), reason: row.reason ?? undefined,
2974
+ toolEvidence: parseJsonStringArray(row.tool_evidence),
2975
+ verificationReceipt: row.verification_receipt ?? undefined,
2976
+ payload: parseJsonObject(row.payload) ?? {}, createdAt: row.created_at,
2977
+ }));
2978
+ }
2872
2979
  listContextSelectionEvents(options) {
2873
2980
  const predicates = ['project_root = ?'];
2874
2981
  const params = [options.projectRoot];
@@ -2909,6 +3016,31 @@ class DevFlowDatabase {
2909
3016
  WHERE project_root = ? AND session_id = ?`)
2910
3017
  .run(projectRoot, sessionId).changes;
2911
3018
  }
3019
+ getPolicyVerificationBaseline(projectRoot, kind, commandHash) {
3020
+ const row = this.db.prepare(`
3021
+ SELECT * FROM devflow_policy_verification_baselines
3022
+ WHERE project_root = ? AND kind = ? AND command_hash = ?
3023
+ `).get(projectRoot, kind, commandHash);
3024
+ return row ? {
3025
+ projectRoot: String(row.project_root),
3026
+ kind: String(row.kind),
3027
+ commandHash: String(row.command_hash),
3028
+ diagnosticHashes: parseJsonStringArray(row.diagnostic_hashes),
3029
+ sourceRevision: typeof row.source_revision === 'string' ? row.source_revision : undefined,
3030
+ updatedAt: Number(row.updated_at),
3031
+ } : null;
3032
+ }
3033
+ upsertPolicyVerificationBaseline(record) {
3034
+ this.db.prepare(`
3035
+ INSERT INTO devflow_policy_verification_baselines
3036
+ (project_root, kind, command_hash, diagnostic_hashes, source_revision, updated_at)
3037
+ VALUES (?, ?, ?, ?, ?, ?)
3038
+ ON CONFLICT(project_root, kind, command_hash) DO UPDATE SET
3039
+ diagnostic_hashes = excluded.diagnostic_hashes,
3040
+ source_revision = excluded.source_revision,
3041
+ updated_at = excluded.updated_at
3042
+ `).run(record.projectRoot, record.kind, record.commandHash, JSON.stringify([...new Set(record.diagnosticHashes)].sort()), record.sourceRevision ?? null, record.updatedAt);
3043
+ }
2912
3044
  purgeExpiredContextReceipts(now = Date.now()) {
2913
3045
  return this.db.prepare('DELETE FROM devflow_context_receipts WHERE expires_at <= ?')
2914
3046
  .run(now).changes;
@@ -3662,6 +3794,14 @@ function parseJsonStringArray(value) {
3662
3794
  ? parsed.filter((item) => typeof item === 'string')
3663
3795
  : [];
3664
3796
  }
3797
+ function parseJsonObject(value) {
3798
+ const parsed = parseJson(value);
3799
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : undefined;
3800
+ }
3801
+ function parseJsonArray(value) {
3802
+ const parsed = parseJson(value);
3803
+ return Array.isArray(parsed) ? parsed : [];
3804
+ }
3665
3805
  function deriveQuery(input) {
3666
3806
  if (!input || typeof input !== 'object')
3667
3807
  return null;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { DevFlowDatabase, getGlobalDevFlowDbPath, openGlobalDevFlowDatabase, } from './database';
2
- export type { BenchmarkReportMetaRecord, BenchmarkReportRecord, FeedbackRecord, GovernanceAuditRecord, GovernanceRuleRecord, HookFallbackRecord, HookReceiptRecord, ContextReceiptRecord, ContextSelectionEventRecord, MemoryDistillCheckpointRecord, MemoryTurnRecord, MemoryTurnStatus, TelemetryFailureRecord, } from './database';
2
+ export type { BenchmarkReportMetaRecord, BenchmarkReportRecord, FeedbackRecord, GovernanceAuditRecord, GovernanceRuleRecord, HookFallbackRecord, HookReceiptRecord, ContextReceiptRecord, ContextSelectionEventRecord, PolicyVerificationBaselineRecord, MemoryDistillCheckpointRecord, MemoryTurnRecord, MemoryTurnStatus, TelemetryFailureRecord, } from './database';
3
3
  export type { EnqueueWorkInput, LeaseWorkInput, RequestSessionClosureInput, SessionClosureRecord, SessionClosureState, WorkError, WorkItemRecord, WorkKind, WorkQueueHealth, WorkState, } from './work-queue';
4
+ export type { RetrievalLedgerEventRecord, RetrievalLedgerSourceType, RetrievalLedgerStage, } from './retrieval-ledger';
4
5
  export { hostActionReportsEqual, isHostActionState, mapHostActionRow, serializeHostActionReport, } from './host-actions';
5
6
  export { RETRIEVAL_MAX_CYCLES, isRetrievalSessionState } from './retrieval-sessions';
6
7
  export type { AppendRetrievalCycleInput, CreateRetrievalSessionInput, RetrievalCycleRecord, RetrievalGapKind, RetrievalGapRecord, RetrievalSessionRecord, RetrievalSessionState, } from './retrieval-sessions';
@@ -0,0 +1,24 @@
1
+ export type RetrievalLedgerStage = 'eligible' | 'candidate' | 'selected' | 'exposed' | 'adopted' | 'positive_outcome' | 'negative_outcome' | 'unknown' | 'rejected';
2
+ export type RetrievalLedgerSourceType = 'code' | 'memory' | 'knowledge' | 'action';
3
+ export interface RetrievalLedgerEventRecord {
4
+ id: string;
5
+ projectRoot: string;
6
+ sessionId: string;
7
+ executionId?: string;
8
+ turnId?: string;
9
+ requestId: string;
10
+ contextReceipt: string;
11
+ sourceType: RetrievalLedgerSourceType;
12
+ sourceId: string;
13
+ stage: RetrievalLedgerStage;
14
+ rank?: number;
15
+ rawScore?: number;
16
+ normalizedScore?: number;
17
+ finalScore?: number;
18
+ applicability: string[];
19
+ reason?: string;
20
+ toolEvidence: string[];
21
+ verificationReceipt?: string;
22
+ payload: Record<string, unknown>;
23
+ createdAt: number;
24
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,4 @@
1
- export type WorkKind = 'memory.explicit_commit' | 'memory.explicit_enrichment' | 'memory.turn_capture' | 'memory.turn_distill' | 'memory.vector_backfill' | 'context.prefetch' | 'learning.analyze_session' | 'workflow.worker_start' | 'workflow.worker_monitor' | 'workflow.worker_verify' | 'workflow.worker_merge' | 'workflow.worker_cleanup' | 'session.bootstrap' | 'session.finalize' | 'telemetry.reconcile';
1
+ export type WorkKind = 'memory.explicit_commit' | 'memory.explicit_enrichment' | 'memory.turn_capture' | 'memory.turn_distill' | 'memory.vector_backfill' | 'context.prefetch' | 'verification.policy' | 'learning.analyze_session' | 'workflow.worker_start' | 'workflow.worker_monitor' | 'workflow.worker_verify' | 'workflow.worker_merge' | 'workflow.worker_cleanup' | 'session.bootstrap' | 'session.finalize' | 'telemetry.reconcile';
2
2
  export type WorkState = 'pending' | 'leased' | 'completed' | 'failed' | 'dead_letter';
3
3
  export interface WorkError {
4
4
  category: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/database",
3
- "version": "0.16.28",
3
+ "version": "0.16.29",
4
4
  "description": "DevFlow SQLite database package",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -13,5 +13,5 @@
13
13
  "typescript": "^5.5.0",
14
14
  "vitest": "^2.0.0"
15
15
  },
16
- "gitHead": "730a5299fc2b96d0f7435e51cae8d0669d31fe2f"
16
+ "gitHead": "7a0def7e75bdc9462308824e450f1a33e5e75b34"
17
17
  }
package/src/database.ts CHANGED
@@ -69,6 +69,7 @@ import {
69
69
  type WorkflowWorkerEventRecord,
70
70
  type WorkflowWorkerRecord,
71
71
  } from './workflow-workers';
72
+ import type { RetrievalLedgerEventRecord } from './retrieval-ledger';
72
73
 
73
74
  export interface BenchmarkReportRecord {
74
75
  runId: string;
@@ -191,6 +192,31 @@ export interface ContextReceiptRecord {
191
192
  selectedFiles?: string[];
192
193
  memoryIds?: string[];
193
194
  canonicalNextAction?: string;
195
+ canonicalAction?: {
196
+ tool: string;
197
+ input: Record<string, unknown>;
198
+ status: 'required' | 'recommended' | 'unsupported' | 'degraded';
199
+ required: boolean;
200
+ reason?: string;
201
+ binding: Record<string, unknown> & { requiredContextReceipt: string };
202
+ verificationPlan: Array<Record<string, unknown>>;
203
+ };
204
+ actionAttempts?: Array<{
205
+ id: string;
206
+ tool: string;
207
+ status: 'succeeded' | 'failed' | 'timeout' | 'unavailable';
208
+ attemptedAt: number;
209
+ toolUseId?: string;
210
+ reason?: string;
211
+ }>;
212
+ actionSatisfiedAt?: number;
213
+ actionDegradation?: {
214
+ missedTool: string;
215
+ failedAttemptCount: number;
216
+ reason: string;
217
+ authorizedByContextReceipt: string;
218
+ authorizedAt: number;
219
+ };
194
220
  requestId?: string;
195
221
  }
196
222
 
@@ -207,6 +233,15 @@ export interface ContextSelectionEventRecord {
207
233
  selectedAt: number;
208
234
  }
209
235
 
236
+ export interface PolicyVerificationBaselineRecord {
237
+ projectRoot: string;
238
+ kind: string;
239
+ commandHash: string;
240
+ diagnosticHashes: string[];
241
+ sourceRevision?: string;
242
+ updatedAt: number;
243
+ }
244
+
210
245
  export interface MemoryDistillCheckpointRecord {
211
246
  id: string;
212
247
  projectRoot: string;
@@ -492,6 +527,10 @@ export class DevFlowDatabase {
492
527
  selected_files TEXT NOT NULL DEFAULT '[]',
493
528
  memory_ids TEXT NOT NULL DEFAULT '[]',
494
529
  canonical_next_action TEXT,
530
+ canonical_action_json TEXT,
531
+ action_attempts TEXT NOT NULL DEFAULT '[]',
532
+ action_satisfied_at INTEGER,
533
+ action_degradation_json TEXT,
495
534
  request_id TEXT,
496
535
  PRIMARY KEY (project_root, session_id, execution_id)
497
536
  );
@@ -515,6 +554,29 @@ export class DevFlowDatabase {
515
554
  CREATE INDEX IF NOT EXISTS idx_context_selection_identity
516
555
  ON devflow_context_selection_events(project_root, session_id, execution_id, request_id);
517
556
 
557
+ CREATE TABLE IF NOT EXISTS devflow_retrieval_ledger (
558
+ id TEXT PRIMARY KEY,
559
+ project_root TEXT NOT NULL, session_id TEXT NOT NULL, execution_id TEXT, turn_id TEXT,
560
+ request_id TEXT NOT NULL, context_receipt TEXT NOT NULL, source_type TEXT NOT NULL,
561
+ source_id TEXT NOT NULL, stage TEXT NOT NULL, rank INTEGER, raw_score REAL,
562
+ normalized_score REAL, final_score REAL, applicability TEXT NOT NULL DEFAULT '[]',
563
+ reason TEXT, tool_evidence TEXT NOT NULL DEFAULT '[]', verification_receipt TEXT,
564
+ payload TEXT NOT NULL DEFAULT '{}', created_at INTEGER NOT NULL
565
+ );
566
+ CREATE INDEX IF NOT EXISTS idx_retrieval_ledger_identity ON devflow_retrieval_ledger(
567
+ project_root, session_id, execution_id, request_id, context_receipt, source_type, source_id, created_at
568
+ );
569
+
570
+ CREATE TABLE IF NOT EXISTS devflow_policy_verification_baselines (
571
+ project_root TEXT NOT NULL,
572
+ kind TEXT NOT NULL,
573
+ command_hash TEXT NOT NULL,
574
+ diagnostic_hashes TEXT NOT NULL DEFAULT '[]',
575
+ source_revision TEXT,
576
+ updated_at INTEGER NOT NULL,
577
+ PRIMARY KEY (project_root, kind, command_hash)
578
+ );
579
+
518
580
  CREATE TABLE IF NOT EXISTS devflow_retrieval_sessions (
519
581
  id TEXT PRIMARY KEY,
520
582
  request_id TEXT NOT NULL UNIQUE,
@@ -931,6 +993,10 @@ export class DevFlowDatabase {
931
993
  try { this.db.exec("ALTER TABLE devflow_context_receipts ADD COLUMN selected_files TEXT NOT NULL DEFAULT '[]'"); } catch {}
932
994
  try { this.db.exec("ALTER TABLE devflow_context_receipts ADD COLUMN memory_ids TEXT NOT NULL DEFAULT '[]'"); } catch {}
933
995
  try { this.db.exec('ALTER TABLE devflow_context_receipts ADD COLUMN canonical_next_action TEXT'); } catch {}
996
+ try { this.db.exec('ALTER TABLE devflow_context_receipts ADD COLUMN canonical_action_json TEXT'); } catch {}
997
+ try { this.db.exec("ALTER TABLE devflow_context_receipts ADD COLUMN action_attempts TEXT NOT NULL DEFAULT '[]'"); } catch {}
998
+ try { this.db.exec('ALTER TABLE devflow_context_receipts ADD COLUMN action_satisfied_at INTEGER'); } catch {}
999
+ try { this.db.exec('ALTER TABLE devflow_context_receipts ADD COLUMN action_degradation_json TEXT'); } catch {}
934
1000
  try { this.db.exec('ALTER TABLE devflow_context_receipts ADD COLUMN request_id TEXT'); } catch {}
935
1001
  this.db.exec('UPDATE devflow_rules SET updated_at = created_at WHERE updated_at IS NULL');
936
1002
  this.db.exec('CREATE INDEX IF NOT EXISTS idx_devflow_rules_gate ON devflow_rules(gate, enabled)');
@@ -1786,12 +1852,22 @@ export class DevFlowDatabase {
1786
1852
  const fallbackReasons = [...new Set([
1787
1853
  ...directFallbacks.map(() => 'direct_tool_during_context'),
1788
1854
  ...hookFallbacks.map(fallback => `daemon_${fallback.reason}`),
1855
+ ...(execution?.fallbackReasons ?? []),
1789
1856
  ])];
1790
1857
  const eventReceiptIds = collectCanonicalReceiptIds(events.map(event => event.output));
1791
1858
  const existingMetadata = execution?.metadata && typeof execution.metadata === 'object'
1792
1859
  ? execution.metadata as Record<string, unknown>
1793
1860
  : {};
1794
1861
  const mergedMetadata = mergeExecutionMetadata(existingMetadata, metadata ?? {});
1862
+ const requiredActionDegradations = Array.isArray(mergedMetadata.requiredActionDegradations)
1863
+ ? mergedMetadata.requiredActionDegradations as Array<Record<string, unknown>>
1864
+ : [];
1865
+ const degradedRequiredTools = requiredActionDegradations
1866
+ .map(item => item.missedTool)
1867
+ .filter((tool): tool is string => typeof tool === 'string');
1868
+ const requiredActionFailureCount = requiredActionDegradations.reduce((count, item) => (
1869
+ Math.max(count, typeof item.failedAttemptCount === 'number' ? item.failedAttemptCount : 0)
1870
+ ), 0);
1795
1871
  const suppliedMemoryReceiptIds = [existingMetadata.memoryReceiptIds, metadata?.memoryReceiptIds]
1796
1872
  .flatMap(value => Array.isArray(value) ? value : [])
1797
1873
  .filter((id): id is string => typeof id === 'string');
@@ -1817,8 +1893,8 @@ export class DevFlowDatabase {
1817
1893
  ? Math.max(0, finishedAt - execution.startedAt)
1818
1894
  : row?.first_at != null && row?.last_at != null ? row.last_at - row.first_at : 0,
1819
1895
  mcpComplianceRate: obligation.rate,
1820
- missedMcpTools: obligation.missedTools,
1821
- failedToolCalls: failures.length,
1896
+ missedMcpTools: [...new Set([...obligation.missedTools, ...degradedRequiredTools])],
1897
+ failedToolCalls: Math.max(failures.length, requiredActionFailureCount),
1822
1898
  blockedToolCalls: blocked.length,
1823
1899
  fallbackCount: directFallbacks.length + hookFallbacks.length,
1824
1900
  fallbackReasons,
@@ -1826,8 +1902,8 @@ export class DevFlowDatabase {
1826
1902
  ...mergedMetadata,
1827
1903
  applicableObligations: obligation.applicable,
1828
1904
  satisfiedObligations: obligation.satisfied,
1829
- missedTools: obligation.missedTools,
1830
- actualFailureCount: failures.length,
1905
+ missedTools: [...new Set([...obligation.missedTools, ...degradedRequiredTools])],
1906
+ actualFailureCount: Math.max(failures.length, requiredActionFailureCount),
1831
1907
  blockedCount: blocked.length,
1832
1908
  fallbackCount: directFallbacks.length + hookFallbacks.length,
1833
1909
  fallbackReasons,
@@ -3466,8 +3542,9 @@ export class DevFlowDatabase {
3466
3542
  this.db.prepare(`
3467
3543
  INSERT INTO devflow_context_receipts
3468
3544
  (project_root, session_id, execution_id, context_hash, issued_at, expires_at,
3469
- selected_files, memory_ids, canonical_next_action, request_id)
3470
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
3545
+ selected_files, memory_ids, canonical_next_action, canonical_action_json,
3546
+ action_attempts, action_satisfied_at, action_degradation_json, request_id)
3547
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
3471
3548
  ON CONFLICT(project_root, session_id, execution_id) DO UPDATE SET
3472
3549
  context_hash = excluded.context_hash,
3473
3550
  issued_at = excluded.issued_at,
@@ -3475,6 +3552,10 @@ export class DevFlowDatabase {
3475
3552
  selected_files = excluded.selected_files,
3476
3553
  memory_ids = excluded.memory_ids,
3477
3554
  canonical_next_action = excluded.canonical_next_action,
3555
+ canonical_action_json = excluded.canonical_action_json,
3556
+ action_attempts = excluded.action_attempts,
3557
+ action_satisfied_at = excluded.action_satisfied_at,
3558
+ action_degradation_json = excluded.action_degradation_json,
3478
3559
  request_id = excluded.request_id
3479
3560
  `).run(
3480
3561
  receipt.projectRoot,
@@ -3486,6 +3567,10 @@ export class DevFlowDatabase {
3486
3567
  JSON.stringify(receipt.selectedFiles ?? []),
3487
3568
  JSON.stringify(receipt.memoryIds ?? []),
3488
3569
  receipt.canonicalNextAction ?? null,
3570
+ receipt.canonicalAction ? JSON.stringify(receipt.canonicalAction) : null,
3571
+ JSON.stringify(receipt.actionAttempts ?? []),
3572
+ receipt.actionSatisfiedAt ?? null,
3573
+ receipt.actionDegradation ? JSON.stringify(receipt.actionDegradation) : null,
3489
3574
  receipt.requestId ?? null,
3490
3575
  );
3491
3576
  }
@@ -3497,7 +3582,8 @@ export class DevFlowDatabase {
3497
3582
  ): ContextReceiptRecord | null {
3498
3583
  const row = this.db.prepare(`
3499
3584
  SELECT project_root, session_id, execution_id, context_hash, issued_at, expires_at,
3500
- selected_files, memory_ids, canonical_next_action, request_id
3585
+ selected_files, memory_ids, canonical_next_action, canonical_action_json,
3586
+ action_attempts, action_satisfied_at, action_degradation_json, request_id
3501
3587
  FROM devflow_context_receipts
3502
3588
  WHERE project_root = ? AND session_id = ? AND execution_id = ?
3503
3589
  `).get(projectRoot, sessionId, executionId) as any;
@@ -3511,6 +3597,10 @@ export class DevFlowDatabase {
3511
3597
  selectedFiles: parseJsonStringArray(row.selected_files),
3512
3598
  memoryIds: parseJsonStringArray(row.memory_ids),
3513
3599
  canonicalNextAction: row.canonical_next_action ?? undefined,
3600
+ canonicalAction: parseJsonObject(row.canonical_action_json),
3601
+ actionAttempts: parseJsonArray(row.action_attempts),
3602
+ actionSatisfiedAt: row.action_satisfied_at ?? undefined,
3603
+ actionDegradation: parseJsonObject(row.action_degradation_json),
3514
3604
  requestId: row.request_id ?? undefined,
3515
3605
  } : null;
3516
3606
  }
@@ -3527,7 +3617,8 @@ export class DevFlowDatabase {
3527
3617
  : [projectRoot, sessionId, now];
3528
3618
  const row = this.db.prepare(`
3529
3619
  SELECT project_root, session_id, execution_id, context_hash, issued_at, expires_at,
3530
- selected_files, memory_ids, canonical_next_action, request_id
3620
+ selected_files, memory_ids, canonical_next_action, canonical_action_json,
3621
+ action_attempts, action_satisfied_at, action_degradation_json, request_id
3531
3622
  FROM devflow_context_receipts
3532
3623
  WHERE project_root = ? AND session_id = ? ${executionClause} AND expires_at > ?
3533
3624
  ORDER BY issued_at DESC
@@ -3543,6 +3634,10 @@ export class DevFlowDatabase {
3543
3634
  selectedFiles: parseJsonStringArray(row.selected_files),
3544
3635
  memoryIds: parseJsonStringArray(row.memory_ids),
3545
3636
  canonicalNextAction: row.canonical_next_action ?? undefined,
3637
+ canonicalAction: parseJsonObject(row.canonical_action_json),
3638
+ actionAttempts: parseJsonArray(row.action_attempts),
3639
+ actionSatisfiedAt: row.action_satisfied_at ?? undefined,
3640
+ actionDegradation: parseJsonObject(row.action_degradation_json),
3546
3641
  requestId: row.request_id ?? undefined,
3547
3642
  } : null;
3548
3643
  }
@@ -3567,6 +3662,55 @@ export class DevFlowDatabase {
3567
3662
  ).changes > 0;
3568
3663
  }
3569
3664
 
3665
+ appendRetrievalLedgerEvent(event: RetrievalLedgerEventRecord): boolean {
3666
+ if ((event.stage === 'selected' || event.stage === 'exposed')
3667
+ && typeof event.payload.returnedFinalScore === 'number'
3668
+ && event.payload.returnedFinalScore > 0
3669
+ && event.finalScore === 0) {
3670
+ throw new Error(`RETRIEVAL_LEDGER_INVALID_FINAL_SCORE:${event.sourceType}:${event.sourceId}`);
3671
+ }
3672
+ return this.db.prepare(`
3673
+ INSERT OR IGNORE INTO devflow_retrieval_ledger (
3674
+ id, project_root, session_id, execution_id, turn_id, request_id, context_receipt,
3675
+ source_type, source_id, stage, rank, raw_score, normalized_score, final_score,
3676
+ applicability, reason, tool_evidence, verification_receipt, payload, created_at
3677
+ ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
3678
+ `).run(
3679
+ event.id, event.projectRoot, event.sessionId, event.executionId ?? null, event.turnId ?? null,
3680
+ event.requestId, event.contextReceipt, event.sourceType, event.sourceId, event.stage,
3681
+ event.rank ?? null, event.rawScore ?? null, event.normalizedScore ?? null,
3682
+ event.finalScore ?? null, JSON.stringify(event.applicability), event.reason ?? null,
3683
+ JSON.stringify(event.toolEvidence), event.verificationReceipt ?? null,
3684
+ JSON.stringify(event.payload), event.createdAt,
3685
+ ).changes > 0;
3686
+ }
3687
+
3688
+ listRetrievalLedgerEvents(options: {
3689
+ projectRoot: string; sessionId?: string; executionId?: string; requestId?: string;
3690
+ }): RetrievalLedgerEventRecord[] {
3691
+ const predicates = ['project_root = ?'];
3692
+ const params: unknown[] = [options.projectRoot];
3693
+ for (const [column, value] of [
3694
+ ['session_id', options.sessionId], ['execution_id', options.executionId], ['request_id', options.requestId],
3695
+ ] as const) {
3696
+ if (value) { predicates.push(`${column} = ?`); params.push(value); }
3697
+ }
3698
+ return (this.db.prepare(`SELECT * FROM devflow_retrieval_ledger
3699
+ WHERE ${predicates.join(' AND ')} ORDER BY created_at ASC, id ASC`).all(...params) as any[])
3700
+ .map(row => ({
3701
+ id: row.id, projectRoot: row.project_root, sessionId: row.session_id,
3702
+ executionId: row.execution_id ?? undefined, turnId: row.turn_id ?? undefined,
3703
+ requestId: row.request_id, contextReceipt: row.context_receipt,
3704
+ sourceType: row.source_type, sourceId: row.source_id, stage: row.stage,
3705
+ rank: row.rank ?? undefined, rawScore: row.raw_score ?? undefined,
3706
+ normalizedScore: row.normalized_score ?? undefined, finalScore: row.final_score ?? undefined,
3707
+ applicability: parseJsonStringArray(row.applicability), reason: row.reason ?? undefined,
3708
+ toolEvidence: parseJsonStringArray(row.tool_evidence),
3709
+ verificationReceipt: row.verification_receipt ?? undefined,
3710
+ payload: parseJsonObject(row.payload) ?? {}, createdAt: row.created_at,
3711
+ }));
3712
+ }
3713
+
3570
3714
  listContextSelectionEvents(options: {
3571
3715
  projectRoot: string;
3572
3716
  sessionId?: string;
@@ -3613,6 +3757,44 @@ export class DevFlowDatabase {
3613
3757
  .run(projectRoot, sessionId).changes;
3614
3758
  }
3615
3759
 
3760
+ getPolicyVerificationBaseline(
3761
+ projectRoot: string,
3762
+ kind: string,
3763
+ commandHash: string,
3764
+ ): PolicyVerificationBaselineRecord | null {
3765
+ const row = this.db.prepare(`
3766
+ SELECT * FROM devflow_policy_verification_baselines
3767
+ WHERE project_root = ? AND kind = ? AND command_hash = ?
3768
+ `).get(projectRoot, kind, commandHash) as Record<string, unknown> | undefined;
3769
+ return row ? {
3770
+ projectRoot: String(row.project_root),
3771
+ kind: String(row.kind),
3772
+ commandHash: String(row.command_hash),
3773
+ diagnosticHashes: parseJsonStringArray(row.diagnostic_hashes),
3774
+ sourceRevision: typeof row.source_revision === 'string' ? row.source_revision : undefined,
3775
+ updatedAt: Number(row.updated_at),
3776
+ } : null;
3777
+ }
3778
+
3779
+ upsertPolicyVerificationBaseline(record: PolicyVerificationBaselineRecord): void {
3780
+ this.db.prepare(`
3781
+ INSERT INTO devflow_policy_verification_baselines
3782
+ (project_root, kind, command_hash, diagnostic_hashes, source_revision, updated_at)
3783
+ VALUES (?, ?, ?, ?, ?, ?)
3784
+ ON CONFLICT(project_root, kind, command_hash) DO UPDATE SET
3785
+ diagnostic_hashes = excluded.diagnostic_hashes,
3786
+ source_revision = excluded.source_revision,
3787
+ updated_at = excluded.updated_at
3788
+ `).run(
3789
+ record.projectRoot,
3790
+ record.kind,
3791
+ record.commandHash,
3792
+ JSON.stringify([...new Set(record.diagnosticHashes)].sort()),
3793
+ record.sourceRevision ?? null,
3794
+ record.updatedAt,
3795
+ );
3796
+ }
3797
+
3616
3798
  purgeExpiredContextReceipts(now = Date.now()): number {
3617
3799
  return this.db.prepare('DELETE FROM devflow_context_receipts WHERE expires_at <= ?')
3618
3800
  .run(now).changes;
@@ -4626,6 +4808,16 @@ function parseJsonStringArray(value: unknown): string[] {
4626
4808
  : [];
4627
4809
  }
4628
4810
 
4811
+ function parseJsonObject<T>(value: unknown): T | undefined {
4812
+ const parsed = parseJson(value);
4813
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed as T : undefined;
4814
+ }
4815
+
4816
+ function parseJsonArray<T>(value: unknown): T[] {
4817
+ const parsed = parseJson(value);
4818
+ return Array.isArray(parsed) ? parsed as T[] : [];
4819
+ }
4820
+
4629
4821
  function deriveQuery(input: unknown): string | null {
4630
4822
  if (!input || typeof input !== 'object') return null;
4631
4823
  const record = input as Record<string, unknown>;
package/src/index.ts CHANGED
@@ -13,6 +13,7 @@ export type {
13
13
  HookReceiptRecord,
14
14
  ContextReceiptRecord,
15
15
  ContextSelectionEventRecord,
16
+ PolicyVerificationBaselineRecord,
16
17
  MemoryDistillCheckpointRecord,
17
18
  MemoryTurnRecord,
18
19
  MemoryTurnStatus,
@@ -30,6 +31,11 @@ export type {
30
31
  WorkQueueHealth,
31
32
  WorkState,
32
33
  } from './work-queue';
34
+ export type {
35
+ RetrievalLedgerEventRecord,
36
+ RetrievalLedgerSourceType,
37
+ RetrievalLedgerStage,
38
+ } from './retrieval-ledger';
33
39
  export {
34
40
  hostActionReportsEqual,
35
41
  isHostActionState,
@@ -0,0 +1,28 @@
1
+ export type RetrievalLedgerStage =
2
+ | 'eligible' | 'candidate' | 'selected' | 'exposed' | 'adopted'
3
+ | 'positive_outcome' | 'negative_outcome' | 'unknown' | 'rejected';
4
+
5
+ export type RetrievalLedgerSourceType = 'code' | 'memory' | 'knowledge' | 'action';
6
+
7
+ export interface RetrievalLedgerEventRecord {
8
+ id: string;
9
+ projectRoot: string;
10
+ sessionId: string;
11
+ executionId?: string;
12
+ turnId?: string;
13
+ requestId: string;
14
+ contextReceipt: string;
15
+ sourceType: RetrievalLedgerSourceType;
16
+ sourceId: string;
17
+ stage: RetrievalLedgerStage;
18
+ rank?: number;
19
+ rawScore?: number;
20
+ normalizedScore?: number;
21
+ finalScore?: number;
22
+ applicability: string[];
23
+ reason?: string;
24
+ toolEvidence: string[];
25
+ verificationReceipt?: string;
26
+ payload: Record<string, unknown>;
27
+ createdAt: number;
28
+ }
package/src/work-queue.ts CHANGED
@@ -5,6 +5,7 @@ export type WorkKind =
5
5
  | 'memory.turn_distill'
6
6
  | 'memory.vector_backfill'
7
7
  | 'context.prefetch'
8
+ | 'verification.policy'
8
9
  | 'learning.analyze_session'
9
10
  | 'workflow.worker_start'
10
11
  | 'workflow.worker_monitor'
@@ -1 +1 @@
1
- {"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/types.ts","./src/node-sqlite.ts","./src/work-queue.ts","./src/obligation-ledger.ts","./src/host-actions.ts","./src/retrieval-sessions.ts","./src/learning-candidates.ts","./src/workflow-workers.ts","./src/database.ts","./src/index.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","../../node_modules/buffer/index.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/web-globals/streams.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","../../node_modules/@types/better-sqlite3/index.d.ts","../../node_modules/@types/d3-array/index.d.ts","../../node_modules/@types/d3-color/index.d.ts","../../node_modules/@types/d3-selection/index.d.ts","../../node_modules/@types/d3-drag/index.d.ts","../../node_modules/@types/d3-ease/index.d.ts","../../node_modules/@types/d3-interpolate/index.d.ts","../../node_modules/@types/d3-path/index.d.ts","../../node_modules/@types/d3-time/index.d.ts","../../node_modules/@types/d3-scale/index.d.ts","../../node_modules/@types/d3-shape/index.d.ts","../../node_modules/@types/d3-timer/index.d.ts","../../node_modules/@types/d3-transition/index.d.ts","../../node_modules/@types/d3-zoom/index.d.ts","../../node_modules/@types/dagre/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/long/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/parse-json/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/turndown/index.d.ts","../../node_modules/@types/validator/lib/isboolean.d.ts","../../node_modules/@types/validator/lib/isemail.d.ts","../../node_modules/@types/validator/lib/isfqdn.d.ts","../../node_modules/@types/validator/lib/isiban.d.ts","../../node_modules/@types/validator/lib/isiso31661alpha2.d.ts","../../node_modules/@types/validator/lib/isiso4217.d.ts","../../node_modules/@types/validator/lib/isiso6391.d.ts","../../node_modules/@types/validator/lib/istaxid.d.ts","../../node_modules/@types/validator/lib/isurl.d.ts","../../node_modules/@types/validator/index.d.ts","../../../../node_modules/@types/html-minifier-terser/index.d.ts","../../../../node_modules/@types/json-schema/index.d.ts","../../../../node_modules/@types/q/index.d.ts","../../../../node_modules/@types/source-list-map/index.d.ts","../../../../node_modules/@types/tapable/index.d.ts","../../../../node_modules/@types/uglify-js/node_modules/source-map/source-map.d.ts","../../../../node_modules/@types/uglify-js/index.d.ts","../../../../node_modules/anymatch/index.d.ts","../../../../node_modules/@types/webpack/node_modules/source-map/source-map.d.ts","../../../../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts","../../../../node_modules/@types/webpack-sources/lib/source.d.ts","../../../../node_modules/@types/webpack-sources/lib/compatsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/concatsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/originalsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/prefixsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/rawsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/replacesource.d.ts","../../../../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts","../../../../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/index.d.ts","../../../../node_modules/@types/webpack-sources/lib/cachedsource.d.ts","../../../../node_modules/@types/webpack-sources/index.d.ts","../../../../node_modules/@types/webpack/index.d.ts"],"fileIdsList":[[61,111,128,129,161],[61,111,128,129],[61,111,128,129,165,174],[61,111,128,129,164],[61,111,128,129,170],[61,111,128,129,169],[61,111,128,129,165,168,174],[61,111,128,129,186],[61,111,128,129,183,184,185],[61,111,128,129,189,190,191,192,193,194,195,196,197],[61,108,109,111,128,129],[61,110,111,128,129],[111,128,129],[61,111,116,128,129,146],[61,111,112,117,122,128,129,131,143,154],[61,111,112,113,122,128,129,131],[56,57,58,61,111,128,129],[61,111,114,128,129,155],[61,111,115,116,123,128,129,132],[61,111,116,128,129,143,151],[61,111,117,119,122,128,129,131],[61,110,111,118,128,129],[61,111,119,120,128,129],[61,111,121,122,128,129],[61,110,111,122,128,129],[61,111,122,123,124,128,129,143,154],[61,111,122,123,124,128,129,138,143,146],[61,103,111,119,122,125,128,129,131,143,154],[61,111,122,123,125,126,128,129,131,143,151,154],[61,111,125,127,128,129,143,151,154],[59,60,61,62,63,64,65,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,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],[61,111,122,128,129],[61,111,128,129,130,154],[61,111,119,122,128,129,131,143],[61,111,128,129,132],[61,111,128,129,133],[61,110,111,128,129,134],[61,108,109,110,111,112,113,114,115,116,117,118,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],[61,111,128,129,136],[61,111,128,129,137],[61,111,122,128,129,138,139],[61,111,128,129,138,140,155,157],[61,111,123,128,129],[61,111,122,128,129,143,144,146],[61,111,128,129,145,146],[61,111,128,129,143,144],[61,111,128,129,146],[61,111,128,129,147],[61,108,111,128,129,143,148,154],[61,111,122,128,129,149,150],[61,111,128,129,149,150],[61,111,116,128,129,131,143,151],[61,111,128,129,152],[61,111,128,129,131,153],[61,111,125,128,129,137,154],[61,111,116,128,129,155],[61,111,128,129,143,156],[61,111,128,129,130,157],[61,111,128,129,158],[61,103,111,128,129],[61,103,111,122,124,128,129,134,143,146,154,156,157,159],[61,111,128,129,143,160],[61,75,79,111,128,129,154],[61,75,111,128,129,143,154],[61,70,111,128,129],[61,72,75,111,128,129,151,154],[61,111,128,129,131,151],[61,70,111,128,129,161],[61,72,75,111,128,129,131,154],[61,67,68,71,74,111,122,128,129,143,154],[61,75,82,111,128,129],[61,67,73,111,128,129],[61,75,96,97,111,128,129],[61,71,75,111,128,129,146,154,161],[61,96,111,128,129,161],[61,69,70,111,128,129,161],[61,75,111,128,129],[61,69,70,71,72,73,74,75,76,77,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,97,98,99,100,101,102,111,128,129],[61,75,90,111,128,129],[61,75,82,83,111,128,129],[61,73,75,83,84,111,128,129],[61,74,111,128,129],[61,67,70,75,111,128,129],[61,75,79,83,84,111,128,129],[61,79,111,128,129],[61,73,75,78,111,128,129,154],[61,67,72,75,82,111,128,129],[61,111,128,129,143],[61,70,75,96,111,128,129,159,161],[47,48,49,50,51,52,53,61,111,116,123,128,129,132,133],[48,49,50,51,52,53,54,61,111,128,129],[46,61,111,128,129,142],[61,111,128,129,204],[61,111,128,129,161,209,210,211,212,213,214,215,216,217,218,219],[61,111,128,129,208,209,218],[61,111,128,129,209,218],[61,111,128,129,202,208,209,218],[61,111,128,129,208,209,210,211,212,213,214,215,216,217,219],[61,111,128,129,209],[61,111,116,128,129,208,218],[61,111,116,128,129,161,203,204,205,206,220]],"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":"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":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f0b1a4ab354a2e47e1396af5bc2663a77cd9f91eb857b9f0fdfcd77cc95c8d0","signature":"651a6436cc80d726a120b278fcef7487a66061442629a7c83b27977438c3ed36"},{"version":"b9d331dfe00d6d48dc659913e8df3e13e7e62fc256a6257b5b124dc3ed2ef800","signature":"0feb10f692fd32988f9dd8a9ffec4b9fb63dab713b60e0e8731f2492bced488e"},{"version":"bb29a106969be8f2dbeb456be94429a1e99b210ca4786bae653f45b7101d34a1","signature":"8351a13f5eb67883ed611fe58c4df676199a8c64bd53064e0c7f10dd149a840b"},{"version":"b490ef6391f64aa28bc452b907462163b63d412d8984630e0777970aed7fa8d5","signature":"27311437b7dae1bcf4f30ac52f5c7527f265438d3ad7184b46daf2f8f5417307"},{"version":"e04476f981a2bff5bc302e1776f5ece8eece3801e1188fb07126e661aa79e907","signature":"ba77c208cf696473912bd2f84cb93c2b61f7faf108712db69c838e23bb77bac1"},{"version":"16f19f92edb90e4ab2d034e856179a1a581bbd45e3fb25ab2531eb2d9315718d","signature":"060aada36f7239e7c8ae86b2164bb1b0e5c83c997eaae2dfcd120db7698f2406"},{"version":"f03144cf63c05642505945e36379d05b2dea254c4f9c2ba70085f3ffcea3e9f9","signature":"6766c9a574d2c656494cb8beb29fcb1701e6719366f7255d56cf723267ffd585"},{"version":"fcfa8c24b48dc6922c4b46daa657bfab22cdc2f610b4608174ddbd69fcea3085","signature":"dc34d797db0f2b3b97a86c8e9e7d5b1d55faa42d203759a08b080f2dce805274"},{"version":"3cebdc960f77f906a581b46921d3506657009b5c98eb2f85ea876add15911b0e","signature":"7556ea18108b6421e2db75d3035309fb8543b481265ab9d1145d1cf079112300"},{"version":"5533f7101ddcf9cfac635f7b56f80307e00f91b1112cde77ed18495b5e51b535","signature":"aba4cb6b1fe4466c59c5c284d93d930eb165affc1b6af23193d556a9fd3e8e4b"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","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":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"d61e0a64cd175208ac0b83670151a9a6b5916f0d1ffcdc5c29c90b1cebfc5045","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1},{"version":"c2a6a737189ced24ffe0634e9239b087e4c26378d0490f95141b9b9b042b746c","impliedFormat":1},{"version":"b1538a92b9bae8d230267210c5db38c2eb6bdb352128a3ce3aa8c6acf9fc9622","impliedFormat":1},{"version":"6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490","impliedFormat":1},{"version":"469532350a366536390c6eb3bde6839ec5c81fe1227a6b7b6a70202954d70c40","impliedFormat":1},{"version":"54e79224429e911b5d6aeb3cf9097ec9fd0f140d5a1461bbdece3066b17c232c","impliedFormat":1},{"version":"ff09b6fbdcf74d8af4e131b8866925c5e18d225540b9b19ce9485ca93e574d84","impliedFormat":1},{"version":"d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d","impliedFormat":1},{"version":"2c378d9368abcd2eba8c29b294d40909845f68557bc0b38117e4f04fc56e5f9c","impliedFormat":1},{"version":"56208c500dcb5f42be7e18e8cb578f257a1a89b94b3280c506818fed06391805","impliedFormat":1},{"version":"0c94c2e497e1b9bcfda66aea239d5d36cd980d12a6d9d59e66f4be1fa3da5d5a","impliedFormat":1},{"version":"9b048390bcffe88c023a4cd742a720b41d4cd7df83bc9270e6f2339bf38de278","affectsGlobalScope":true,"impliedFormat":1},{"version":"1f366bde16e0513fa7b64f87f86689c4d36efd85afce7eb24753e9c99b91c319","impliedFormat":1},{"version":"421c3f008f6ef4a5db2194d58a7b960ef6f33e94b033415649cd557be09ef619","impliedFormat":1},{"version":"57568ff84b8ba1a4f8c817141644b49252cc39ec7b899e4bfba0ec0557c910a0","impliedFormat":1},{"version":"443d1020635af05e3cb8c45974bc76f03a8b11f95563774b26afb51b1a8666d7","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"0e60e0cbf2283adfd5a15430ae548cd2f662d581b5da6ecd98220203e7067c70","impliedFormat":1},{"version":"8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","impliedFormat":1},{"version":"fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"09ddcfcfbe77a8232d155ca1030005106b1328f6210df43629d0be750da07c16","affectsGlobalScope":true,"impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"f80cb0ced191be0a08767ee613ec61b89d193ab698c7c0c8133b49a183c5ea26","impliedFormat":1},{"version":"c6cdcd12d577032b84eed1de4d2de2ae343463701a25961b202cff93989439fb","impliedFormat":1},{"version":"3dc633586d48fcd04a4f8acdbf7631b8e4a334632f252d5707e04b299069721e","impliedFormat":1},{"version":"3322858f01c0349ee7968a5ce93a1ca0c154c4692aa8f1721dc5192a9191a168","impliedFormat":1},{"version":"6dde0a77adad4173a49e6de4edd6ef70f5598cbebb5c80d76c111943854636ca","impliedFormat":1},{"version":"09acacae732e3cc67a6415026cfae979ebe900905500147a629837b790a366b3","impliedFormat":1},{"version":"f7b622759e094a3c2e19640e0cb233b21810d2762b3e894ef7f415334125eb22","impliedFormat":1},{"version":"99236ea5c4c583082975823fd19bcce6a44963c5c894e20384bc72e7eccf9b03","impliedFormat":1},{"version":"f6688a02946a3f7490aa9e26d76d1c97a388e42e77388cbab010b69982c86e9e","impliedFormat":1},{"version":"9f642953aba68babd23de41de85d4e97f0c39ef074cb8ab8aa7d55237f62aff6","impliedFormat":1},{"version":"159d95163a0ed369175ae7838fa21a9e9e703de5fdb0f978721293dd403d9f4a","impliedFormat":1},{"version":"6767cce098e1e6369c26258b7a1f9e569c5467d501a47a090136d5ea6e80ae6d","impliedFormat":1},{"version":"3a1e165b22a1cb8df82c44c9a09502fd2b33f160cd277de2cd3a055d8e5c6b27","impliedFormat":1},{"version":"f9a2dd6a6084665f093ed0e9664b8e673be2a45e342a59dd4e0e4e552e68a9ad","impliedFormat":1},{"version":"67fc055eb86a0632e2e072838f889ffe1754083cb13c8c80a06a7d895d877aae","impliedFormat":1},{"version":"d558a0fe921ebcc88d3212c2c42108abf9f0d694d67ebdeba37d7728c044f579","impliedFormat":1},{"version":"2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579","impliedFormat":1},{"version":"bee79f5862fe1278d2ba275298862bce3f7abf1e59d9c669c4b9a4b2bba96956","impliedFormat":1},{"version":"4fb0b7d532aa6fb850b6cd2f1ee4f00802d877b5c66a51903bc1fb0624126349","impliedFormat":1},{"version":"2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579","impliedFormat":1},{"version":"b90c59ac4682368a01c83881b814738eb151de8a58f52eb7edadea2bcffb11b9","impliedFormat":1},{"version":"8560a87b2e9f8e2c3808c8f6172c9b7eb6c9b08cb9f937db71c285ecf292c81d","impliedFormat":1},{"version":"ffe3931ff864f28d80ae2f33bd11123ad3d7bad9896b910a1e61504cc093e1f5","impliedFormat":1},{"version":"083c1bd82f8dc3a1ed6fc9e8eaddf141f7c05df418eca386598821e045253af9","impliedFormat":1},{"version":"274ebe605bd7f71ce161f9f5328febc7d547a2929f803f04b44ec4a7d8729517","impliedFormat":1},{"version":"6ca0207e70d985a24396583f55836b10dc181063ab6069733561bfde404d1bad","impliedFormat":1},{"version":"5908142efeaab38ffdf43927ee0af681ae77e0d7672b956dfb8b6c705dbfe106","impliedFormat":1},{"version":"f772b188b943549b5c5eb803133314b8aa7689eced80eed0b70e2f30ca07ab9c","impliedFormat":1},{"version":"0026b816ef05cfbf290e8585820eef0f13250438669107dfc44482bac007b14f","impliedFormat":1},{"version":"8ef5aad624890acfe0fa48230edce255f00934016d16acb8de0edac0ea5b21bb","impliedFormat":1},{"version":"9af6248ff4baf0c1ddc62bb0bc43197437bd5fb2c95ff8e10e4cf2e699ea45c1","impliedFormat":1},{"version":"d84398556ba4595ee6be554671da142cfe964cbdebb2f0c517a10f76f2b016c0","impliedFormat":1},{"version":"89b42f8ee5d387a39db85ee2c7123a391c3ede266a2bcd502c85ad55626c3b2b","impliedFormat":1},{"version":"99c7f3bbc03f6eb3e663c26c104d639617620c2925e76fc284f7bedf1877fa2b","impliedFormat":1}],"root":[[46,55]],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"strict":true,"target":7},"referencedMap":[[162,1],[163,2],[164,2],[166,3],[167,2],[168,4],[169,2],[171,5],[165,2],[172,6],[170,2],[173,2],[174,3],[175,7],[176,2],[177,2],[178,2],[179,2],[180,2],[181,2],[182,2],[183,2],[187,8],[184,2],[186,9],[188,2],[198,10],[189,2],[190,2],[191,2],[192,2],[193,2],[194,2],[195,2],[196,2],[197,2],[66,2],[185,2],[44,2],[45,2],[9,2],[8,2],[2,2],[10,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[3,2],[18,2],[19,2],[4,2],[20,2],[24,2],[21,2],[22,2],[23,2],[25,2],[26,2],[27,2],[5,2],[28,2],[29,2],[30,2],[31,2],[6,2],[35,2],[32,2],[33,2],[34,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[108,11],[109,11],[110,12],[61,13],[111,14],[112,15],[113,16],[56,2],[59,17],[57,2],[58,2],[114,18],[115,19],[116,20],[117,21],[118,22],[119,23],[120,23],[121,24],[122,25],[123,26],[124,27],[62,2],[60,2],[125,28],[126,29],[127,30],[161,31],[128,32],[129,2],[130,33],[131,34],[132,35],[133,36],[134,37],[135,38],[136,39],[137,40],[138,41],[139,41],[140,42],[141,2],[142,43],[143,44],[145,45],[144,46],[146,47],[147,48],[148,49],[149,50],[150,51],[151,52],[152,53],[153,54],[154,55],[155,56],[156,57],[157,58],[158,59],[63,2],[64,2],[65,2],[104,60],[105,2],[106,2],[107,47],[159,61],[160,62],[82,63],[92,64],[81,63],[102,65],[73,66],[72,67],[101,1],[95,68],[100,69],[75,70],[89,71],[74,72],[98,73],[70,74],[69,1],[99,75],[71,76],[76,77],[77,2],[80,77],[67,2],[103,78],[93,79],[84,80],[85,81],[87,82],[83,83],[86,84],[96,1],[78,85],[79,86],[88,87],[68,88],[91,79],[90,77],[94,2],[97,89],[54,90],[50,2],[55,91],[52,2],[47,92],[49,2],[51,2],[46,2],[48,2],[53,2],[199,2],[200,2],[201,2],[202,2],[203,2],[205,93],[204,2],[220,94],[219,95],[210,96],[211,97],[218,98],[212,97],[213,96],[214,96],[215,96],[216,99],[209,100],[217,95],[208,2],[221,101],[207,2],[206,2]],"latestChangedDtsFile":"./dist/workflow-workers.d.ts","version":"5.9.3"}
1
+ {"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/types.ts","./src/node-sqlite.ts","./src/work-queue.ts","./src/obligation-ledger.ts","./src/host-actions.ts","./src/retrieval-sessions.ts","./src/learning-candidates.ts","./src/workflow-workers.ts","./src/retrieval-ledger.ts","./src/database.ts","./src/index.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","../../node_modules/buffer/index.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/web-globals/streams.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","../../node_modules/@types/better-sqlite3/index.d.ts","../../node_modules/@types/d3-array/index.d.ts","../../node_modules/@types/d3-color/index.d.ts","../../node_modules/@types/d3-selection/index.d.ts","../../node_modules/@types/d3-drag/index.d.ts","../../node_modules/@types/d3-ease/index.d.ts","../../node_modules/@types/d3-interpolate/index.d.ts","../../node_modules/@types/d3-path/index.d.ts","../../node_modules/@types/d3-time/index.d.ts","../../node_modules/@types/d3-scale/index.d.ts","../../node_modules/@types/d3-shape/index.d.ts","../../node_modules/@types/d3-timer/index.d.ts","../../node_modules/@types/d3-transition/index.d.ts","../../node_modules/@types/d3-zoom/index.d.ts","../../node_modules/@types/dagre/index.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/long/index.d.ts","../../node_modules/@types/minimatch/index.d.ts","../../node_modules/@types/minimist/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/parse-json/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/react/index.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/turndown/index.d.ts","../../node_modules/@types/validator/lib/isboolean.d.ts","../../node_modules/@types/validator/lib/isemail.d.ts","../../node_modules/@types/validator/lib/isfqdn.d.ts","../../node_modules/@types/validator/lib/isiban.d.ts","../../node_modules/@types/validator/lib/isiso31661alpha2.d.ts","../../node_modules/@types/validator/lib/isiso4217.d.ts","../../node_modules/@types/validator/lib/isiso6391.d.ts","../../node_modules/@types/validator/lib/istaxid.d.ts","../../node_modules/@types/validator/lib/isurl.d.ts","../../node_modules/@types/validator/index.d.ts","../../../../node_modules/@types/html-minifier-terser/index.d.ts","../../../../node_modules/@types/json-schema/index.d.ts","../../../../node_modules/@types/q/index.d.ts","../../../../node_modules/@types/source-list-map/index.d.ts","../../../../node_modules/@types/tapable/index.d.ts","../../../../node_modules/@types/uglify-js/node_modules/source-map/source-map.d.ts","../../../../node_modules/@types/uglify-js/index.d.ts","../../../../node_modules/anymatch/index.d.ts","../../../../node_modules/@types/webpack/node_modules/source-map/source-map.d.ts","../../../../node_modules/@types/webpack-sources/node_modules/source-map/source-map.d.ts","../../../../node_modules/@types/webpack-sources/lib/source.d.ts","../../../../node_modules/@types/webpack-sources/lib/compatsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/concatsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/originalsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/prefixsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/rawsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/replacesource.d.ts","../../../../node_modules/@types/webpack-sources/lib/sizeonlysource.d.ts","../../../../node_modules/@types/webpack-sources/lib/sourcemapsource.d.ts","../../../../node_modules/@types/webpack-sources/lib/index.d.ts","../../../../node_modules/@types/webpack-sources/lib/cachedsource.d.ts","../../../../node_modules/@types/webpack-sources/index.d.ts","../../../../node_modules/@types/webpack/index.d.ts"],"fileIdsList":[[62,112,129,130,162],[62,112,129,130],[62,112,129,130,166,175],[62,112,129,130,165],[62,112,129,130,171],[62,112,129,130,170],[62,112,129,130,166,169,175],[62,112,129,130,187],[62,112,129,130,184,185,186],[62,112,129,130,190,191,192,193,194,195,196,197,198],[62,109,110,112,129,130],[62,111,112,129,130],[112,129,130],[62,112,117,129,130,147],[62,112,113,118,123,129,130,132,144,155],[62,112,113,114,123,129,130,132],[57,58,59,62,112,129,130],[62,112,115,129,130,156],[62,112,116,117,124,129,130,133],[62,112,117,129,130,144,152],[62,112,118,120,123,129,130,132],[62,111,112,119,129,130],[62,112,120,121,129,130],[62,112,122,123,129,130],[62,111,112,123,129,130],[62,112,123,124,125,129,130,144,155],[62,112,123,124,125,129,130,139,144,147],[62,104,112,120,123,126,129,130,132,144,155],[62,112,123,124,126,127,129,130,132,144,152,155],[62,112,126,128,129,130,144,152,155],[60,61,62,63,64,65,66,105,106,107,108,109,110,111,112,113,114,115,116,117,118,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],[62,112,123,129,130],[62,112,129,130,131,155],[62,112,120,123,129,130,132,144],[62,112,129,130,133],[62,112,129,130,134],[62,111,112,129,130,135],[62,109,110,111,112,113,114,115,116,117,118,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],[62,112,129,130,137],[62,112,129,130,138],[62,112,123,129,130,139,140],[62,112,129,130,139,141,156,158],[62,112,124,129,130],[62,112,123,129,130,144,145,147],[62,112,129,130,146,147],[62,112,129,130,144,145],[62,112,129,130,147],[62,112,129,130,148],[62,109,112,129,130,144,149,155],[62,112,123,129,130,150,151],[62,112,129,130,150,151],[62,112,117,129,130,132,144,152],[62,112,129,130,153],[62,112,129,130,132,154],[62,112,126,129,130,138,155],[62,112,117,129,130,156],[62,112,129,130,144,157],[62,112,129,130,131,158],[62,112,129,130,159],[62,104,112,129,130],[62,104,112,123,125,129,130,135,144,147,155,157,158,160],[62,112,129,130,144,161],[62,76,80,112,129,130,155],[62,76,112,129,130,144,155],[62,71,112,129,130],[62,73,76,112,129,130,152,155],[62,112,129,130,132,152],[62,71,112,129,130,162],[62,73,76,112,129,130,132,155],[62,68,69,72,75,112,123,129,130,144,155],[62,76,83,112,129,130],[62,68,74,112,129,130],[62,76,97,98,112,129,130],[62,72,76,112,129,130,147,155,162],[62,97,112,129,130,162],[62,70,71,112,129,130,162],[62,76,112,129,130],[62,70,71,72,73,74,75,76,77,78,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,98,99,100,101,102,103,112,129,130],[62,76,91,112,129,130],[62,76,83,84,112,129,130],[62,74,76,84,85,112,129,130],[62,75,112,129,130],[62,68,71,76,112,129,130],[62,76,80,84,85,112,129,130],[62,80,112,129,130],[62,74,76,79,112,129,130,155],[62,68,73,76,83,112,129,130],[62,112,129,130,144],[62,71,76,97,112,129,130,160,162],[47,48,49,50,51,52,53,54,62,112,117,124,129,130,133,134],[48,49,50,51,52,53,54,55,62,112,129,130],[46,62,112,129,130,143],[62,112,129,130,205],[62,112,129,130,162,210,211,212,213,214,215,216,217,218,219,220],[62,112,129,130,209,210,219],[62,112,129,130,210,219],[62,112,129,130,203,209,210,219],[62,112,129,130,209,210,211,212,213,214,215,216,217,218,220],[62,112,129,130,210],[62,112,117,129,130,209,219],[62,112,117,129,130,162,204,205,206,207,221]],"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":"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":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"4f0b1a4ab354a2e47e1396af5bc2663a77cd9f91eb857b9f0fdfcd77cc95c8d0","signature":"651a6436cc80d726a120b278fcef7487a66061442629a7c83b27977438c3ed36"},{"version":"b9d331dfe00d6d48dc659913e8df3e13e7e62fc256a6257b5b124dc3ed2ef800","signature":"0feb10f692fd32988f9dd8a9ffec4b9fb63dab713b60e0e8731f2492bced488e"},{"version":"77257e880d0cd2fd16e58a0a450113771bf37d672df82cd4e548482a3e8b6d65","signature":"19710d137cac1d8a698d0e66d5146df3ebeaec35b4b31c4ae8d676387e03bb01"},{"version":"b490ef6391f64aa28bc452b907462163b63d412d8984630e0777970aed7fa8d5","signature":"27311437b7dae1bcf4f30ac52f5c7527f265438d3ad7184b46daf2f8f5417307"},{"version":"e04476f981a2bff5bc302e1776f5ece8eece3801e1188fb07126e661aa79e907","signature":"ba77c208cf696473912bd2f84cb93c2b61f7faf108712db69c838e23bb77bac1"},{"version":"16f19f92edb90e4ab2d034e856179a1a581bbd45e3fb25ab2531eb2d9315718d","signature":"060aada36f7239e7c8ae86b2164bb1b0e5c83c997eaae2dfcd120db7698f2406"},{"version":"f03144cf63c05642505945e36379d05b2dea254c4f9c2ba70085f3ffcea3e9f9","signature":"6766c9a574d2c656494cb8beb29fcb1701e6719366f7255d56cf723267ffd585"},{"version":"fcfa8c24b48dc6922c4b46daa657bfab22cdc2f610b4608174ddbd69fcea3085","signature":"dc34d797db0f2b3b97a86c8e9e7d5b1d55faa42d203759a08b080f2dce805274"},{"version":"ae976a4b78fd8b40976dcb9bc38fac906e2dad058cec80c2ca76c65a14b1625f","signature":"4f852c68971f8fb51de7d0fb0e5ba5e6fb9b7f2a9b1f6587ed076214161ebb64"},{"version":"1e76bd310c84f2eb59d186490787fbdcb7837158c82df72e4989215fec9f0a84","signature":"cc96aed3f1121465b6044253238c567496828eee0dc0c6697abb18c284785864"},{"version":"ef68e013559c22166722e8c14949bd55d48b1cd13d8db6cc00c52d033905301c","signature":"b96a9c690212ba6a1ae40609308299a132d1cca51f195f46ff917e19ed5a654d"},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","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":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"78dbea00e90d2df8ea3dbef0cc379d95b8be9b71cd6bde4c28728f306811803b","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e1e46d0a9837ee058c100501080c920fa98081ea3956af0374308ba6f22a33e","impliedFormat":1},{"version":"272ca407e0c9068bdc5152552d876e68037ceae3de62e529306403e973dec8e1","impliedFormat":1},{"version":"fa7834c715d5357e4540cee40ce96c3250ddb67a7b879a6b7fa0e86d6696f121","impliedFormat":1},{"version":"22dfb07a7ab15b66ac043829056fe70124844636ae719551812ac631ba04985b","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a6f137d651076822d4fe884287e68fd61785a0d3d1fdb250a5059b691fa897db","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"8b479a130ccb62e98f11f136d3ac80f2984fdc07616516d29881f3061f2dd472","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"bceb58df66ab8fb00170df20cd813978c5ab84be1d285710c4eb005d8e9d8efb","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"0cb167c371eaa8c869f8a7656a7296f2e4fae43b4d8b803a680236b24794e5f9","impliedFormat":1},{"version":"0a839dba0287cc0481ad4beedd48a1c64acf1e212ae865d1315f7007ca215161","impliedFormat":1},{"version":"38dc4655376cd1a4bd6bb3763d92949233e33d38d3dd3cbea7bbf218175a38ef","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"d61e0a64cd175208ac0b83670151a9a6b5916f0d1ffcdc5c29c90b1cebfc5045","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"48a679952eefe4cb776d5a0e1ccba2d3eb53b57448bbb7abc1fcebcbd5440188","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"2d14da6ecb49bf828d83948765ec2d3a579d476bbb9645e749610baa6ec880ca","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"0aef708fb4c7a6b915e8305cbfac40cd207b032dbaabe9a01889a5fff3254681","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"ad9bdafb4e7abf14cc53ce7970486a84c87831e62891e5dfe798ddcd55e84701","affectsGlobalScope":true,"impliedFormat":1},{"version":"358765d5ea8afd285d4fd1532e78b88273f18cb3f87403a9b16fef61ac9fdcfe","impliedFormat":1},{"version":"71d3ae6a5e73ca4130762560425e00984ebaff64d5353a3333d1bb7eb86ef336","impliedFormat":1},{"version":"c2a6a737189ced24ffe0634e9239b087e4c26378d0490f95141b9b9b042b746c","impliedFormat":1},{"version":"b1538a92b9bae8d230267210c5db38c2eb6bdb352128a3ce3aa8c6acf9fc9622","impliedFormat":1},{"version":"6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490","impliedFormat":1},{"version":"469532350a366536390c6eb3bde6839ec5c81fe1227a6b7b6a70202954d70c40","impliedFormat":1},{"version":"54e79224429e911b5d6aeb3cf9097ec9fd0f140d5a1461bbdece3066b17c232c","impliedFormat":1},{"version":"ff09b6fbdcf74d8af4e131b8866925c5e18d225540b9b19ce9485ca93e574d84","impliedFormat":1},{"version":"d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d","impliedFormat":1},{"version":"2c378d9368abcd2eba8c29b294d40909845f68557bc0b38117e4f04fc56e5f9c","impliedFormat":1},{"version":"56208c500dcb5f42be7e18e8cb578f257a1a89b94b3280c506818fed06391805","impliedFormat":1},{"version":"0c94c2e497e1b9bcfda66aea239d5d36cd980d12a6d9d59e66f4be1fa3da5d5a","impliedFormat":1},{"version":"9b048390bcffe88c023a4cd742a720b41d4cd7df83bc9270e6f2339bf38de278","affectsGlobalScope":true,"impliedFormat":1},{"version":"1f366bde16e0513fa7b64f87f86689c4d36efd85afce7eb24753e9c99b91c319","impliedFormat":1},{"version":"421c3f008f6ef4a5db2194d58a7b960ef6f33e94b033415649cd557be09ef619","impliedFormat":1},{"version":"57568ff84b8ba1a4f8c817141644b49252cc39ec7b899e4bfba0ec0557c910a0","impliedFormat":1},{"version":"443d1020635af05e3cb8c45974bc76f03a8b11f95563774b26afb51b1a8666d7","impliedFormat":1},{"version":"751764bb94219b4ce8f5475dc35d3de2e432fea01a0c9610cd7f69ad05e398c6","impliedFormat":1},{"version":"0e60e0cbf2283adfd5a15430ae548cd2f662d581b5da6ecd98220203e7067c70","impliedFormat":1},{"version":"8841e2aa774b89bd23302dede20663306dc1b9902431ac64b24be8b8d0e3f649","impliedFormat":1},{"version":"fbca5ffaebf282ec3cdac47b0d1d4a138a8b0bb32105251a38acb235087d3318","impliedFormat":1},{"version":"22293bd6fa12747929f8dfca3ec1684a3fe08638aa18023dd286ab337e88a592","impliedFormat":1},{"version":"916be7d770b0ae0406be9486ac12eb9825f21514961dd050594c4b250617d5a8","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"09ddcfcfbe77a8232d155ca1030005106b1328f6210df43629d0be750da07c16","affectsGlobalScope":true,"impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"f80cb0ced191be0a08767ee613ec61b89d193ab698c7c0c8133b49a183c5ea26","impliedFormat":1},{"version":"c6cdcd12d577032b84eed1de4d2de2ae343463701a25961b202cff93989439fb","impliedFormat":1},{"version":"3dc633586d48fcd04a4f8acdbf7631b8e4a334632f252d5707e04b299069721e","impliedFormat":1},{"version":"3322858f01c0349ee7968a5ce93a1ca0c154c4692aa8f1721dc5192a9191a168","impliedFormat":1},{"version":"6dde0a77adad4173a49e6de4edd6ef70f5598cbebb5c80d76c111943854636ca","impliedFormat":1},{"version":"09acacae732e3cc67a6415026cfae979ebe900905500147a629837b790a366b3","impliedFormat":1},{"version":"f7b622759e094a3c2e19640e0cb233b21810d2762b3e894ef7f415334125eb22","impliedFormat":1},{"version":"99236ea5c4c583082975823fd19bcce6a44963c5c894e20384bc72e7eccf9b03","impliedFormat":1},{"version":"f6688a02946a3f7490aa9e26d76d1c97a388e42e77388cbab010b69982c86e9e","impliedFormat":1},{"version":"9f642953aba68babd23de41de85d4e97f0c39ef074cb8ab8aa7d55237f62aff6","impliedFormat":1},{"version":"159d95163a0ed369175ae7838fa21a9e9e703de5fdb0f978721293dd403d9f4a","impliedFormat":1},{"version":"6767cce098e1e6369c26258b7a1f9e569c5467d501a47a090136d5ea6e80ae6d","impliedFormat":1},{"version":"3a1e165b22a1cb8df82c44c9a09502fd2b33f160cd277de2cd3a055d8e5c6b27","impliedFormat":1},{"version":"f9a2dd6a6084665f093ed0e9664b8e673be2a45e342a59dd4e0e4e552e68a9ad","impliedFormat":1},{"version":"67fc055eb86a0632e2e072838f889ffe1754083cb13c8c80a06a7d895d877aae","impliedFormat":1},{"version":"d558a0fe921ebcc88d3212c2c42108abf9f0d694d67ebdeba37d7728c044f579","impliedFormat":1},{"version":"2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579","impliedFormat":1},{"version":"bee79f5862fe1278d2ba275298862bce3f7abf1e59d9c669c4b9a4b2bba96956","impliedFormat":1},{"version":"4fb0b7d532aa6fb850b6cd2f1ee4f00802d877b5c66a51903bc1fb0624126349","impliedFormat":1},{"version":"2887592574fcdfd087647c539dcb0fbe5af2521270dad4a37f9d17c16190d579","impliedFormat":1},{"version":"b90c59ac4682368a01c83881b814738eb151de8a58f52eb7edadea2bcffb11b9","impliedFormat":1},{"version":"8560a87b2e9f8e2c3808c8f6172c9b7eb6c9b08cb9f937db71c285ecf292c81d","impliedFormat":1},{"version":"ffe3931ff864f28d80ae2f33bd11123ad3d7bad9896b910a1e61504cc093e1f5","impliedFormat":1},{"version":"083c1bd82f8dc3a1ed6fc9e8eaddf141f7c05df418eca386598821e045253af9","impliedFormat":1},{"version":"274ebe605bd7f71ce161f9f5328febc7d547a2929f803f04b44ec4a7d8729517","impliedFormat":1},{"version":"6ca0207e70d985a24396583f55836b10dc181063ab6069733561bfde404d1bad","impliedFormat":1},{"version":"5908142efeaab38ffdf43927ee0af681ae77e0d7672b956dfb8b6c705dbfe106","impliedFormat":1},{"version":"f772b188b943549b5c5eb803133314b8aa7689eced80eed0b70e2f30ca07ab9c","impliedFormat":1},{"version":"0026b816ef05cfbf290e8585820eef0f13250438669107dfc44482bac007b14f","impliedFormat":1},{"version":"8ef5aad624890acfe0fa48230edce255f00934016d16acb8de0edac0ea5b21bb","impliedFormat":1},{"version":"9af6248ff4baf0c1ddc62bb0bc43197437bd5fb2c95ff8e10e4cf2e699ea45c1","impliedFormat":1},{"version":"d84398556ba4595ee6be554671da142cfe964cbdebb2f0c517a10f76f2b016c0","impliedFormat":1},{"version":"89b42f8ee5d387a39db85ee2c7123a391c3ede266a2bcd502c85ad55626c3b2b","impliedFormat":1},{"version":"99c7f3bbc03f6eb3e663c26c104d639617620c2925e76fc284f7bedf1877fa2b","impliedFormat":1}],"root":[[46,56]],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"strict":true,"target":7},"referencedMap":[[163,1],[164,2],[165,2],[167,3],[168,2],[169,4],[170,2],[172,5],[166,2],[173,6],[171,2],[174,2],[175,3],[176,7],[177,2],[178,2],[179,2],[180,2],[181,2],[182,2],[183,2],[184,2],[188,8],[185,2],[187,9],[189,2],[199,10],[190,2],[191,2],[192,2],[193,2],[194,2],[195,2],[196,2],[197,2],[198,2],[67,2],[186,2],[44,2],[45,2],[9,2],[8,2],[2,2],[10,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[3,2],[18,2],[19,2],[4,2],[20,2],[24,2],[21,2],[22,2],[23,2],[25,2],[26,2],[27,2],[5,2],[28,2],[29,2],[30,2],[31,2],[6,2],[35,2],[32,2],[33,2],[34,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[109,11],[110,11],[111,12],[62,13],[112,14],[113,15],[114,16],[57,2],[60,17],[58,2],[59,2],[115,18],[116,19],[117,20],[118,21],[119,22],[120,23],[121,23],[122,24],[123,25],[124,26],[125,27],[63,2],[61,2],[126,28],[127,29],[128,30],[162,31],[129,32],[130,2],[131,33],[132,34],[133,35],[134,36],[135,37],[136,38],[137,39],[138,40],[139,41],[140,41],[141,42],[142,2],[143,43],[144,44],[146,45],[145,46],[147,47],[148,48],[149,49],[150,50],[151,51],[152,52],[153,53],[154,54],[155,55],[156,56],[157,57],[158,58],[159,59],[64,2],[65,2],[66,2],[105,60],[106,2],[107,2],[108,47],[160,61],[161,62],[83,63],[93,64],[82,63],[103,65],[74,66],[73,67],[102,1],[96,68],[101,69],[76,70],[90,71],[75,72],[99,73],[71,74],[70,1],[100,75],[72,76],[77,77],[78,2],[81,77],[68,2],[104,78],[94,79],[85,80],[86,81],[88,82],[84,83],[87,84],[97,1],[79,85],[80,86],[89,87],[69,88],[92,79],[91,77],[95,2],[98,89],[55,90],[50,2],[56,91],[52,2],[47,92],[49,2],[54,2],[51,2],[46,2],[48,2],[53,2],[200,2],[201,2],[202,2],[203,2],[204,2],[206,93],[205,2],[221,94],[220,95],[211,96],[212,97],[219,98],[213,97],[214,96],[215,96],[216,96],[217,99],[210,100],[218,95],[209,2],[222,101],[208,2],[207,2]],"latestChangedDtsFile":"./dist/database.d.ts","version":"5.9.3"}