@vorionsys/atsf-core 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -12
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +463 -35
- package/dist/api/server.js.map +1 -1
- package/dist/arbitration/index.d.ts.map +1 -1
- package/dist/arbitration/index.js +8 -6
- package/dist/arbitration/index.js.map +1 -1
- package/dist/audit/key-manager.d.ts +118 -0
- package/dist/audit/key-manager.d.ts.map +1 -0
- package/dist/audit/key-manager.js +565 -0
- package/dist/audit/key-manager.js.map +1 -0
- package/dist/basis/evaluator.d.ts +31 -0
- package/dist/basis/evaluator.d.ts.map +1 -1
- package/dist/basis/evaluator.js +205 -10
- package/dist/basis/evaluator.js.map +1 -1
- package/dist/basis/parser.d.ts +210 -210
- package/dist/basis/parser.js.map +1 -1
- package/dist/carbon-aware/carbon-metrics.d.ts +151 -0
- package/dist/carbon-aware/carbon-metrics.d.ts.map +1 -0
- package/dist/carbon-aware/carbon-metrics.js +370 -0
- package/dist/carbon-aware/carbon-metrics.js.map +1 -0
- package/dist/carbon-aware/carbon-router.d.ts +101 -0
- package/dist/carbon-aware/carbon-router.d.ts.map +1 -0
- package/dist/carbon-aware/carbon-router.js +400 -0
- package/dist/carbon-aware/carbon-router.js.map +1 -0
- package/dist/chain/index.d.ts +147 -0
- package/dist/chain/index.d.ts.map +1 -0
- package/dist/chain/index.js +219 -0
- package/dist/chain/index.js.map +1 -0
- package/dist/cognigate/index.d.ts +33 -4
- package/dist/cognigate/index.d.ts.map +1 -1
- package/dist/cognigate/index.js +199 -24
- package/dist/cognigate/index.js.map +1 -1
- package/dist/common/adapters.d.ts +172 -0
- package/dist/common/adapters.d.ts.map +1 -0
- package/dist/common/adapters.js +329 -0
- package/dist/common/adapters.js.map +1 -0
- package/dist/common/config.d.ts +168 -163
- package/dist/common/config.d.ts.map +1 -1
- package/dist/common/config.js +2 -0
- package/dist/common/config.js.map +1 -1
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +1 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/types.d.ts +67 -16
- package/dist/common/types.d.ts.map +1 -1
- package/dist/common/types.js +4 -0
- package/dist/common/types.js.map +1 -1
- package/dist/enforce/index.d.ts +226 -16
- package/dist/enforce/index.d.ts.map +1 -1
- package/dist/enforce/index.js +196 -49
- package/dist/enforce/index.js.map +1 -1
- package/dist/governance/fluid-workflow.d.ts +217 -0
- package/dist/governance/fluid-workflow.d.ts.map +1 -0
- package/dist/governance/fluid-workflow.js +491 -0
- package/dist/governance/fluid-workflow.js.map +1 -0
- package/dist/governance/index.d.ts +1 -0
- package/dist/governance/index.d.ts.map +1 -1
- package/dist/governance/index.js +1 -0
- package/dist/governance/index.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/intent/index.d.ts +127 -10
- package/dist/intent/index.d.ts.map +1 -1
- package/dist/intent/index.js +121 -16
- package/dist/intent/index.js.map +1 -1
- package/dist/langchain/executor.d.ts +19 -5
- package/dist/langchain/executor.d.ts.map +1 -1
- package/dist/langchain/executor.js +287 -36
- package/dist/langchain/executor.js.map +1 -1
- package/dist/langchain/index.d.ts +2 -1
- package/dist/langchain/index.d.ts.map +1 -1
- package/dist/langchain/index.js +3 -1
- package/dist/langchain/index.js.map +1 -1
- package/dist/langchain/tools.d.ts.map +1 -1
- package/dist/langchain/tools.js +2 -1
- package/dist/langchain/tools.js.map +1 -1
- package/dist/langchain/types.d.ts +41 -0
- package/dist/langchain/types.d.ts.map +1 -1
- package/dist/layers/index.d.ts +1 -1
- package/dist/layers/index.d.ts.map +1 -1
- package/dist/persistence/file.d.ts +35 -3
- package/dist/persistence/file.d.ts.map +1 -1
- package/dist/persistence/file.js +138 -11
- package/dist/persistence/file.js.map +1 -1
- package/dist/persistence/index.d.ts +11 -1
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +25 -1
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/sqlite.d.ts +135 -0
- package/dist/persistence/sqlite.d.ts.map +1 -0
- package/dist/persistence/sqlite.js +372 -0
- package/dist/persistence/sqlite.js.map +1 -0
- package/dist/persistence/supabase.d.ts +93 -0
- package/dist/persistence/supabase.d.ts.map +1 -0
- package/dist/persistence/supabase.js +219 -0
- package/dist/persistence/supabase.js.map +1 -0
- package/dist/persistence/types.d.ts +5 -1
- package/dist/persistence/types.d.ts.map +1 -1
- package/dist/phase6/ceiling.d.ts +177 -0
- package/dist/phase6/ceiling.d.ts.map +1 -0
- package/dist/phase6/ceiling.js +463 -0
- package/dist/phase6/ceiling.js.map +1 -0
- package/dist/phase6/context.d.ts +207 -0
- package/dist/phase6/context.d.ts.map +1 -0
- package/dist/phase6/context.js +603 -0
- package/dist/phase6/context.js.map +1 -0
- package/dist/phase6/index.d.ts +79 -0
- package/dist/phase6/index.d.ts.map +1 -0
- package/dist/phase6/index.js +152 -0
- package/dist/phase6/index.js.map +1 -0
- package/dist/phase6/presets.d.ts +148 -0
- package/dist/phase6/presets.d.ts.map +1 -0
- package/dist/phase6/presets.js +467 -0
- package/dist/phase6/presets.js.map +1 -0
- package/dist/phase6/provenance.d.ts +148 -0
- package/dist/phase6/provenance.d.ts.map +1 -0
- package/dist/phase6/provenance.js +545 -0
- package/dist/phase6/provenance.js.map +1 -0
- package/dist/phase6/role-gates/index.d.ts +7 -0
- package/dist/phase6/role-gates/index.d.ts.map +1 -0
- package/dist/phase6/role-gates/index.js +7 -0
- package/dist/phase6/role-gates/index.js.map +1 -0
- package/dist/phase6/role-gates/kernel.d.ts +84 -0
- package/dist/phase6/role-gates/kernel.d.ts.map +1 -0
- package/dist/phase6/role-gates/kernel.js +258 -0
- package/dist/phase6/role-gates/kernel.js.map +1 -0
- package/dist/phase6/role-gates/policy.d.ts +110 -0
- package/dist/phase6/role-gates/policy.d.ts.map +1 -0
- package/dist/phase6/role-gates/policy.js +157 -0
- package/dist/phase6/role-gates/policy.js.map +1 -0
- package/dist/phase6/role-gates.d.ts +164 -0
- package/dist/phase6/role-gates.d.ts.map +1 -0
- package/dist/phase6/role-gates.js +536 -0
- package/dist/phase6/role-gates.js.map +1 -0
- package/dist/phase6/types.d.ts +1827 -0
- package/dist/phase6/types.d.ts.map +1 -0
- package/dist/phase6/types.js +450 -0
- package/dist/phase6/types.js.map +1 -0
- package/dist/phase6/weight-presets/canonical.d.ts +93 -0
- package/dist/phase6/weight-presets/canonical.d.ts.map +1 -0
- package/dist/phase6/weight-presets/canonical.js +122 -0
- package/dist/phase6/weight-presets/canonical.js.map +1 -0
- package/dist/phase6/weight-presets/deltas.d.ts +144 -0
- package/dist/phase6/weight-presets/deltas.d.ts.map +1 -0
- package/dist/phase6/weight-presets/deltas.js +184 -0
- package/dist/phase6/weight-presets/deltas.js.map +1 -0
- package/dist/phase6/weight-presets/index.d.ts +8 -0
- package/dist/phase6/weight-presets/index.d.ts.map +1 -0
- package/dist/phase6/weight-presets/index.js +8 -0
- package/dist/phase6/weight-presets/index.js.map +1 -0
- package/dist/phase6/weight-presets/merger.d.ts +79 -0
- package/dist/phase6/weight-presets/merger.d.ts.map +1 -0
- package/dist/phase6/weight-presets/merger.js +161 -0
- package/dist/phase6/weight-presets/merger.js.map +1 -0
- package/dist/proof/index.d.ts +50 -1
- package/dist/proof/index.d.ts.map +1 -1
- package/dist/proof/index.js +122 -3
- package/dist/proof/index.js.map +1 -1
- package/dist/proof/merkle.d.ts +195 -0
- package/dist/proof/merkle.d.ts.map +1 -0
- package/dist/proof/merkle.js +412 -0
- package/dist/proof/merkle.js.map +1 -0
- package/dist/proof/zk-proofs.d.ts +218 -0
- package/dist/proof/zk-proofs.d.ts.map +1 -0
- package/dist/proof/zk-proofs.js +531 -0
- package/dist/proof/zk-proofs.js.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts +98 -0
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/audit.js +160 -0
- package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/index.d.ts +6 -0
- package/dist/trust-engine/ceiling-enforcement/index.d.ts.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/index.js +6 -0
- package/dist/trust-engine/ceiling-enforcement/index.js.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +112 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.js +158 -0
- package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -0
- package/dist/trust-engine/context-policy/enforcement.d.ts +62 -0
- package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -0
- package/dist/trust-engine/context-policy/enforcement.js +104 -0
- package/dist/trust-engine/context-policy/enforcement.js.map +1 -0
- package/dist/trust-engine/context-policy/factory.d.ts +75 -0
- package/dist/trust-engine/context-policy/factory.d.ts.map +1 -0
- package/dist/trust-engine/context-policy/factory.js +130 -0
- package/dist/trust-engine/context-policy/factory.js.map +1 -0
- package/dist/trust-engine/context-policy/index.d.ts +6 -0
- package/dist/trust-engine/context-policy/index.d.ts.map +1 -0
- package/dist/trust-engine/context-policy/index.js +6 -0
- package/dist/trust-engine/context-policy/index.js.map +1 -0
- package/dist/trust-engine/creation-modifiers/index.d.ts +5 -0
- package/dist/trust-engine/creation-modifiers/index.d.ts.map +1 -0
- package/dist/trust-engine/creation-modifiers/index.js +5 -0
- package/dist/trust-engine/creation-modifiers/index.js.map +1 -0
- package/dist/trust-engine/creation-modifiers/types.d.ts +112 -0
- package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -0
- package/dist/trust-engine/creation-modifiers/types.js +166 -0
- package/dist/trust-engine/creation-modifiers/types.js.map +1 -0
- package/dist/trust-engine/decay-profiles.d.ts +159 -0
- package/dist/trust-engine/decay-profiles.d.ts.map +1 -0
- package/dist/trust-engine/decay-profiles.js +210 -0
- package/dist/trust-engine/decay-profiles.js.map +1 -0
- package/dist/trust-engine/index.d.ts +144 -5
- package/dist/trust-engine/index.d.ts.map +1 -1
- package/dist/trust-engine/index.js +320 -15
- package/dist/trust-engine/index.js.map +1 -1
- package/dist/trust-engine/phase6-types.d.ts +123 -0
- package/dist/trust-engine/phase6-types.d.ts.map +1 -0
- package/dist/trust-engine/phase6-types.js +88 -0
- package/dist/trust-engine/phase6-types.js.map +1 -0
- package/package.json +26 -10
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supabase/PostgreSQL Persistence Provider
|
|
3
|
+
*
|
|
4
|
+
* Database-backed storage for trust records using Supabase or any PostgreSQL client.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
8
|
+
import { createLogger } from '../common/logger.js';
|
|
9
|
+
const logger = createLogger({ component: 'persistence-supabase' });
|
|
10
|
+
/**
|
|
11
|
+
* Supabase/PostgreSQL persistence provider
|
|
12
|
+
*/
|
|
13
|
+
export class SupabasePersistenceProvider {
|
|
14
|
+
name = 'supabase';
|
|
15
|
+
client;
|
|
16
|
+
tableName;
|
|
17
|
+
debug;
|
|
18
|
+
constructor(config) {
|
|
19
|
+
this.client = config.client;
|
|
20
|
+
this.tableName = config.tableName ?? 'trust_scores';
|
|
21
|
+
this.debug = config.debug ?? false;
|
|
22
|
+
}
|
|
23
|
+
async initialize() {
|
|
24
|
+
// Verify connection by attempting a simple query
|
|
25
|
+
try {
|
|
26
|
+
const result = await this.client
|
|
27
|
+
.from(this.tableName)
|
|
28
|
+
.select('entity_id')
|
|
29
|
+
.range(0, 0);
|
|
30
|
+
if (result.error) {
|
|
31
|
+
// Table might not exist, log warning but don't fail
|
|
32
|
+
logger.warn({ table: this.tableName, error: result.error.message }, 'Trust scores table may not exist. Run migrations to create it.');
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
logger.info({ table: this.tableName }, 'Supabase persistence initialized');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
logger.warn({ err }, 'Failed to verify Supabase connection');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async save(record) {
|
|
43
|
+
const row = this.recordToRow(record);
|
|
44
|
+
const result = await this.client
|
|
45
|
+
.from(this.tableName)
|
|
46
|
+
.upsert(row, { onConflict: 'entity_id' });
|
|
47
|
+
if (result.error) {
|
|
48
|
+
logger.error({ error: result.error, entityId: record.entityId }, 'Failed to save trust record');
|
|
49
|
+
throw new Error(`Failed to save trust record: ${result.error.message}`);
|
|
50
|
+
}
|
|
51
|
+
if (this.debug) {
|
|
52
|
+
logger.debug({ entityId: record.entityId, score: record.score }, 'Saved trust record');
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async get(entityId) {
|
|
56
|
+
const result = await this.client
|
|
57
|
+
.from(this.tableName)
|
|
58
|
+
.select('*')
|
|
59
|
+
.eq('entity_id', entityId)
|
|
60
|
+
.single();
|
|
61
|
+
if (result.error) {
|
|
62
|
+
if (result.error.code === 'PGRST116') {
|
|
63
|
+
// No rows found
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
logger.error({ error: result.error, entityId }, 'Failed to get trust record');
|
|
67
|
+
throw new Error(`Failed to get trust record: ${result.error.message}`);
|
|
68
|
+
}
|
|
69
|
+
if (!result.data) {
|
|
70
|
+
return undefined;
|
|
71
|
+
}
|
|
72
|
+
return this.rowToRecord(result.data);
|
|
73
|
+
}
|
|
74
|
+
async delete(entityId) {
|
|
75
|
+
const result = await this.client
|
|
76
|
+
.from(this.tableName)
|
|
77
|
+
.delete()
|
|
78
|
+
.eq('entity_id', entityId);
|
|
79
|
+
if (result.error) {
|
|
80
|
+
logger.error({ error: result.error, entityId }, 'Failed to delete trust record');
|
|
81
|
+
throw new Error(`Failed to delete trust record: ${result.error.message}`);
|
|
82
|
+
}
|
|
83
|
+
return true;
|
|
84
|
+
}
|
|
85
|
+
async listIds() {
|
|
86
|
+
const result = await this.client
|
|
87
|
+
.from(this.tableName)
|
|
88
|
+
.select('entity_id');
|
|
89
|
+
if (result.error) {
|
|
90
|
+
logger.error({ error: result.error }, 'Failed to list entity IDs');
|
|
91
|
+
throw new Error(`Failed to list entity IDs: ${result.error.message}`);
|
|
92
|
+
}
|
|
93
|
+
const data = result.data;
|
|
94
|
+
return data?.map((row) => row.entity_id) ?? [];
|
|
95
|
+
}
|
|
96
|
+
async query(options = {}) {
|
|
97
|
+
let query = this.client.from(this.tableName).select('*');
|
|
98
|
+
// Apply filters
|
|
99
|
+
if (options.minLevel !== undefined) {
|
|
100
|
+
query = query.gte('level', options.minLevel);
|
|
101
|
+
}
|
|
102
|
+
if (options.maxLevel !== undefined) {
|
|
103
|
+
query = query.lte('level', options.maxLevel);
|
|
104
|
+
}
|
|
105
|
+
if (options.minScore !== undefined) {
|
|
106
|
+
query = query.gte('score', options.minScore);
|
|
107
|
+
}
|
|
108
|
+
if (options.maxScore !== undefined) {
|
|
109
|
+
query = query.lte('score', options.maxScore);
|
|
110
|
+
}
|
|
111
|
+
// Apply sorting
|
|
112
|
+
const sortBy = options.sortBy ?? 'score';
|
|
113
|
+
const sortOrder = options.sortOrder ?? 'desc';
|
|
114
|
+
const columnMap = {
|
|
115
|
+
score: 'score',
|
|
116
|
+
level: 'level',
|
|
117
|
+
lastCalculatedAt: 'last_calculated_at',
|
|
118
|
+
};
|
|
119
|
+
query = query.order(columnMap[sortBy] ?? 'score', { ascending: sortOrder === 'asc' });
|
|
120
|
+
// Apply pagination
|
|
121
|
+
if (options.limit !== undefined || options.offset !== undefined) {
|
|
122
|
+
const offset = options.offset ?? 0;
|
|
123
|
+
const limit = options.limit ?? 100;
|
|
124
|
+
query = query.range(offset, offset + limit - 1);
|
|
125
|
+
}
|
|
126
|
+
const result = await query;
|
|
127
|
+
if (result.error) {
|
|
128
|
+
logger.error({ error: result.error }, 'Failed to query trust records');
|
|
129
|
+
throw new Error(`Failed to query trust records: ${result.error.message}`);
|
|
130
|
+
}
|
|
131
|
+
const rows = result.data;
|
|
132
|
+
return rows?.map((row) => this.rowToRecord(row)) ?? [];
|
|
133
|
+
}
|
|
134
|
+
async exists(entityId) {
|
|
135
|
+
const result = await this.client
|
|
136
|
+
.from(this.tableName)
|
|
137
|
+
.select('entity_id')
|
|
138
|
+
.eq('entity_id', entityId)
|
|
139
|
+
.single();
|
|
140
|
+
return !result.error && result.data !== null;
|
|
141
|
+
}
|
|
142
|
+
async count() {
|
|
143
|
+
const result = await this.client
|
|
144
|
+
.from(this.tableName)
|
|
145
|
+
.select('entity_id');
|
|
146
|
+
if (result.error) {
|
|
147
|
+
logger.error({ error: result.error }, 'Failed to count trust records');
|
|
148
|
+
throw new Error(`Failed to count trust records: ${result.error.message}`);
|
|
149
|
+
}
|
|
150
|
+
const data = result.data;
|
|
151
|
+
return data?.length ?? 0;
|
|
152
|
+
}
|
|
153
|
+
async clear() {
|
|
154
|
+
// Delete all records - be careful with this!
|
|
155
|
+
const result = await this.client
|
|
156
|
+
.from(this.tableName)
|
|
157
|
+
.delete()
|
|
158
|
+
.gte('score', 0); // This matches all records
|
|
159
|
+
if (result.error) {
|
|
160
|
+
logger.error({ error: result.error }, 'Failed to clear trust records');
|
|
161
|
+
throw new Error(`Failed to clear trust records: ${result.error.message}`);
|
|
162
|
+
}
|
|
163
|
+
logger.info({ table: this.tableName }, 'Cleared all trust records');
|
|
164
|
+
}
|
|
165
|
+
async close() {
|
|
166
|
+
// Supabase client doesn't need explicit closing
|
|
167
|
+
logger.info('Supabase persistence closed');
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Convert a TrustRecord to a database row
|
|
171
|
+
*/
|
|
172
|
+
recordToRow(record) {
|
|
173
|
+
return {
|
|
174
|
+
entity_id: record.entityId,
|
|
175
|
+
score: record.score,
|
|
176
|
+
level: record.level,
|
|
177
|
+
components: { ...record.components },
|
|
178
|
+
signals: record.signals,
|
|
179
|
+
last_calculated_at: record.lastCalculatedAt,
|
|
180
|
+
history: record.history,
|
|
181
|
+
recent_failures: record.recentFailures,
|
|
182
|
+
recent_successes: record.recentSuccesses ?? [],
|
|
183
|
+
peak_score: record.peakScore ?? record.score,
|
|
184
|
+
consecutive_successes: record.consecutiveSuccesses ?? 0,
|
|
185
|
+
updated_at: new Date().toISOString(),
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Convert a database row to a TrustRecord
|
|
190
|
+
*/
|
|
191
|
+
rowToRecord(row) {
|
|
192
|
+
const components = row.components;
|
|
193
|
+
return {
|
|
194
|
+
entityId: row.entity_id,
|
|
195
|
+
score: row.score,
|
|
196
|
+
level: row.level,
|
|
197
|
+
components: {
|
|
198
|
+
behavioral: components.behavioral ?? 0.5,
|
|
199
|
+
compliance: components.compliance ?? 0.5,
|
|
200
|
+
identity: components.identity ?? 0.5,
|
|
201
|
+
context: components.context ?? 0.5,
|
|
202
|
+
},
|
|
203
|
+
signals: row.signals,
|
|
204
|
+
lastCalculatedAt: row.last_calculated_at,
|
|
205
|
+
history: row.history,
|
|
206
|
+
recentFailures: row.recent_failures ?? [],
|
|
207
|
+
recentSuccesses: row.recent_successes ?? [],
|
|
208
|
+
peakScore: row.peak_score ?? row.score,
|
|
209
|
+
consecutiveSuccesses: row.consecutive_successes ?? 0,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Create a new Supabase persistence provider
|
|
215
|
+
*/
|
|
216
|
+
export function createSupabaseProvider(config) {
|
|
217
|
+
return new SupabasePersistenceProvider(config);
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=supabase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/persistence/supabase.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,10 +80,14 @@ export interface PersistenceProvider {
|
|
|
80
80
|
*/
|
|
81
81
|
export interface PersistenceConfig {
|
|
82
82
|
/** Provider type */
|
|
83
|
-
type: 'memory' | 'file' | 'sqlite';
|
|
83
|
+
type: 'memory' | 'file' | 'sqlite' | 'supabase';
|
|
84
84
|
/** File path for file/sqlite providers */
|
|
85
85
|
path?: string;
|
|
86
86
|
/** Auto-save interval in ms (0 = disabled) */
|
|
87
87
|
autoSaveIntervalMs?: number;
|
|
88
|
+
/** Database client for supabase provider */
|
|
89
|
+
client?: unknown;
|
|
90
|
+
/** Table name for supabase provider */
|
|
91
|
+
tableName?: string;
|
|
88
92
|
}
|
|
89
93
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,kBAAkB,CAAC;IAChD,qBAAqB;IACrB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEpD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1D;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/persistence/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,kBAAkB,CAAC;IAChD,qBAAqB;IACrB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAEpD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1D;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;IAChD,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Q1: Ceiling Enforcement (Hybrid Dual-Layer + Regulatory Observability)
|
|
3
|
+
*
|
|
4
|
+
* Implements three-layer enforcement:
|
|
5
|
+
* - Kernel Layer: Structure validation (cannot bypass)
|
|
6
|
+
* - Policy Layer: Authorization via governance rules
|
|
7
|
+
* - Regulatory Layer: Observability for gaming detection
|
|
8
|
+
*
|
|
9
|
+
* Key Features:
|
|
10
|
+
* - Dual logging (raw + clamped scores)
|
|
11
|
+
* - Gaming detection via variance analysis
|
|
12
|
+
* - Regulatory audit ledger with retention
|
|
13
|
+
* - Hash-chained event immutability
|
|
14
|
+
*
|
|
15
|
+
* @packageDocumentation
|
|
16
|
+
*/
|
|
17
|
+
import { type TrustComputationEvent, type RegulatoryAuditEntry, type CeilingSource, type AgentContext, TrustTier, RegulatoryFramework } from './types.js';
|
|
18
|
+
/**
|
|
19
|
+
* Ceiling sources in priority order (lowest ceiling wins)
|
|
20
|
+
*/
|
|
21
|
+
export interface CeilingContext {
|
|
22
|
+
agentContext: AgentContext;
|
|
23
|
+
attestationCeiling?: number;
|
|
24
|
+
customCeiling?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Calculate effective ceiling from all sources
|
|
28
|
+
*/
|
|
29
|
+
export declare function calculateEffectiveCeiling(context: CeilingContext): CeilingSource;
|
|
30
|
+
/**
|
|
31
|
+
* Kernel validation result
|
|
32
|
+
*/
|
|
33
|
+
export interface KernelValidationResult {
|
|
34
|
+
valid: boolean;
|
|
35
|
+
rawScore: number;
|
|
36
|
+
clampedScore: number;
|
|
37
|
+
ceilingApplied: boolean;
|
|
38
|
+
ceilingSource: CeilingSource;
|
|
39
|
+
reason?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Kernel layer enforcement - validates structure and applies ceiling
|
|
43
|
+
* This layer cannot be bypassed.
|
|
44
|
+
*/
|
|
45
|
+
export declare function enforceKernelCeiling(rawScore: number, ceilingContext: CeilingContext): KernelValidationResult;
|
|
46
|
+
/**
|
|
47
|
+
* Policy layer context
|
|
48
|
+
*/
|
|
49
|
+
export interface PolicyContext {
|
|
50
|
+
agentId: string;
|
|
51
|
+
requestedAction?: string;
|
|
52
|
+
requiredTier?: TrustTier;
|
|
53
|
+
policyOverrides?: Map<string, unknown>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Policy validation result
|
|
57
|
+
*/
|
|
58
|
+
export interface PolicyValidationResult {
|
|
59
|
+
valid: boolean;
|
|
60
|
+
appliedPolicies: string[];
|
|
61
|
+
deniedBy?: string;
|
|
62
|
+
reason?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Policy layer enforcement - applies policy-as-code rules
|
|
66
|
+
*/
|
|
67
|
+
export declare function enforcePolicyCeiling(clampedScore: number, tier: TrustTier, policyContext: PolicyContext): PolicyValidationResult;
|
|
68
|
+
/**
|
|
69
|
+
* Gaming detection thresholds
|
|
70
|
+
*/
|
|
71
|
+
export declare const GAMING_DETECTION_THRESHOLDS: {
|
|
72
|
+
varianceAnomaly: number;
|
|
73
|
+
frequencyAnomaly: number;
|
|
74
|
+
patternWindowMs: number;
|
|
75
|
+
oscillationThreshold: number;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Gaming detection state per agent
|
|
79
|
+
*/
|
|
80
|
+
interface GamingDetectionState {
|
|
81
|
+
recentEvents: Array<{
|
|
82
|
+
timestamp: Date;
|
|
83
|
+
rawScore: number;
|
|
84
|
+
clampedScore: number;
|
|
85
|
+
tier: TrustTier;
|
|
86
|
+
}>;
|
|
87
|
+
lastCleanup: Date;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Detect gaming indicators
|
|
91
|
+
*/
|
|
92
|
+
export declare function detectGamingIndicators(rawScore: number, clampedScore: number, tier: TrustTier, state: GamingDetectionState): {
|
|
93
|
+
varianceAnomaly: boolean;
|
|
94
|
+
frequencyAnomaly: boolean;
|
|
95
|
+
patternAnomaly: boolean;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Determine retention requirements
|
|
99
|
+
*/
|
|
100
|
+
export declare function getRetentionRequirements(framework: RegulatoryFramework, hasAnomaly: boolean): {
|
|
101
|
+
required: boolean;
|
|
102
|
+
retentionDays: number;
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Create trust computation event with dual logging
|
|
106
|
+
*/
|
|
107
|
+
export declare function createTrustComputationEvent(agentId: string, rawScore: number, ceilingContext: CeilingContext, policyContext: PolicyContext, previousEventHash?: string): Promise<TrustComputationEvent>;
|
|
108
|
+
/**
|
|
109
|
+
* Create regulatory audit entry
|
|
110
|
+
*/
|
|
111
|
+
export declare function createRegulatoryAuditEntry(event: TrustComputationEvent, gamingIndicators: {
|
|
112
|
+
varianceAnomaly: boolean;
|
|
113
|
+
frequencyAnomaly: boolean;
|
|
114
|
+
patternAnomaly: boolean;
|
|
115
|
+
}, framework: RegulatoryFramework, ledgerSequence: number, previousEntryHash?: string): Promise<RegulatoryAuditEntry>;
|
|
116
|
+
/**
|
|
117
|
+
* Service for managing ceiling enforcement and regulatory audit
|
|
118
|
+
*/
|
|
119
|
+
export declare class CeilingEnforcementService {
|
|
120
|
+
private events;
|
|
121
|
+
private lastEventHash;
|
|
122
|
+
private auditLedger;
|
|
123
|
+
private gamingState;
|
|
124
|
+
private regulatoryFramework;
|
|
125
|
+
constructor(framework?: RegulatoryFramework);
|
|
126
|
+
/**
|
|
127
|
+
* Compute trust with ceiling enforcement
|
|
128
|
+
*/
|
|
129
|
+
computeTrust(agentId: string, rawScore: number, ceilingContext: CeilingContext, policyContext?: PolicyContext): Promise<{
|
|
130
|
+
event: TrustComputationEvent;
|
|
131
|
+
auditEntry: RegulatoryAuditEntry;
|
|
132
|
+
}>;
|
|
133
|
+
/**
|
|
134
|
+
* Get computation events for an agent
|
|
135
|
+
*/
|
|
136
|
+
getEvents(agentId: string): readonly TrustComputationEvent[];
|
|
137
|
+
/**
|
|
138
|
+
* Get audit ledger entries
|
|
139
|
+
*/
|
|
140
|
+
getAuditLedger(filter?: {
|
|
141
|
+
agentId?: string;
|
|
142
|
+
complianceStatus?: RegulatoryAuditEntry['complianceStatus'];
|
|
143
|
+
startDate?: Date;
|
|
144
|
+
endDate?: Date;
|
|
145
|
+
}): readonly RegulatoryAuditEntry[];
|
|
146
|
+
/**
|
|
147
|
+
* Verify audit ledger integrity
|
|
148
|
+
*/
|
|
149
|
+
verifyLedgerIntegrity(): Promise<{
|
|
150
|
+
valid: boolean;
|
|
151
|
+
brokenAt?: number;
|
|
152
|
+
issues: string[];
|
|
153
|
+
}>;
|
|
154
|
+
/**
|
|
155
|
+
* Get agents with gaming flags
|
|
156
|
+
*/
|
|
157
|
+
getGamingAlerts(): Array<{
|
|
158
|
+
agentId: string;
|
|
159
|
+
alertCount: number;
|
|
160
|
+
latestStatus: RegulatoryAuditEntry['complianceStatus'];
|
|
161
|
+
}>;
|
|
162
|
+
/**
|
|
163
|
+
* Get statistics
|
|
164
|
+
*/
|
|
165
|
+
getStats(): {
|
|
166
|
+
totalEvents: number;
|
|
167
|
+
totalAuditEntries: number;
|
|
168
|
+
complianceBreakdown: Record<RegulatoryAuditEntry['complianceStatus'], number>;
|
|
169
|
+
agentsWithAlerts: number;
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Create a new ceiling enforcement service
|
|
174
|
+
*/
|
|
175
|
+
export declare function createCeilingEnforcementService(framework?: RegulatoryFramework): CeilingEnforcementService;
|
|
176
|
+
export { type TrustComputationEvent, type RegulatoryAuditEntry, type CeilingSource, type EnforcementLayer, RegulatoryFramework, } from './types.js';
|
|
177
|
+
//# sourceMappingURL=ceiling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ceiling.d.ts","sourceRoot":"","sources":["../../src/phase6/ceiling.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAElB,KAAK,YAAY,EACjB,SAAS,EAET,mBAAmB,EAMpB,MAAM,YAAY,CAAC;AAwBpB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAoChF;AA0BD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,GAC7B,sBAAsB,CA2BxB;AAMD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,SAAS,EACf,aAAa,EAAE,aAAa,GAC3B,sBAAsB,CAyBxB;AAMD;;GAEG;AACH,eAAO,MAAM,2BAA2B;;;;;CAKvC,CAAC;AAEF;;GAEG;AACH,UAAU,oBAAoB;IAC5B,YAAY,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,CAAC;IAClG,WAAW,EAAE,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,oBAAoB,GAC1B;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CA4BlF;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,mBAAmB,EAC9B,UAAU,EAAE,OAAO,GAClB;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAe9C;AAMD;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,qBAAqB,CAAC,CA+DhC;AAMD;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,qBAAqB,EAC5B,gBAAgB,EAAE;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,EAClG,SAAS,EAAE,mBAAmB,EAC9B,cAAc,EAAE,MAAM,EACtB,iBAAiB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,oBAAoB,CAAC,CA+D/B;AAMD;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,WAAW,CAAgD;IACnE,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,SAAS,GAAE,mBAA8C;IAIrE;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,cAAc,EAC9B,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC;QACT,KAAK,EAAE,qBAAqB,CAAC;QAC7B,UAAU,EAAE,oBAAoB,CAAC;KAClC,CAAC;IA8CF;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,qBAAqB,EAAE;IAI5D;;OAEG;IACH,cAAc,CAAC,MAAM,CAAC,EAAE;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QAC5D,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,OAAO,CAAC,EAAE,IAAI,CAAC;KAChB,GAAG,SAAS,oBAAoB,EAAE;IAmBnC;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC;QACrC,KAAK,EAAE,OAAO,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IA+BF;;OAEG;IACH,eAAe,IAAI,KAAK,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;KACxD,CAAC;IAkBF;;OAEG;IACH,QAAQ,IAAI;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9E,gBAAgB,EAAE,MAAM,CAAC;KAC1B;CAuBF;AAED;;GAEG;AACH,wBAAgB,+BAA+B,CAC7C,SAAS,GAAE,mBAA8C,GACxD,yBAAyB,CAE3B;AAMD,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
|