@agentlensai/server 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/db/anonymous-id-manager.d.ts +44 -0
- package/dist/db/anonymous-id-manager.d.ts.map +1 -0
- package/dist/db/anonymous-id-manager.js +90 -0
- package/dist/db/anonymous-id-manager.js.map +1 -0
- package/dist/db/capability-store.d.ts +78 -0
- package/dist/db/capability-store.d.ts.map +1 -0
- package/dist/db/capability-store.js +201 -0
- package/dist/db/capability-store.js.map +1 -0
- package/dist/db/guardrail-store.d.ts +34 -0
- package/dist/db/guardrail-store.d.ts.map +1 -0
- package/dist/db/guardrail-store.js +221 -0
- package/dist/db/guardrail-store.js.map +1 -0
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrate.js +200 -0
- package/dist/db/migrate.js.map +1 -1
- package/dist/db/schema.sqlite.d.ts +1719 -1
- package/dist/db/schema.sqlite.d.ts.map +1 -1
- package/dist/db/schema.sqlite.js +141 -1
- package/dist/db/schema.sqlite.js.map +1 -1
- package/dist/db/sqlite-store.d.ts +12 -0
- package/dist/db/sqlite-store.d.ts.map +1 -1
- package/dist/db/sqlite-store.js +47 -0
- package/dist/db/sqlite-store.js.map +1 -1
- package/dist/db/tenant-scoped-store.d.ts +1 -0
- package/dist/db/tenant-scoped-store.d.ts.map +1 -1
- package/dist/db/tenant-scoped-store.js +3 -0
- package/dist/db/tenant-scoped-store.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/guardrails/actions.d.ts +28 -0
- package/dist/lib/guardrails/actions.d.ts.map +1 -0
- package/dist/lib/guardrails/actions.js +126 -0
- package/dist/lib/guardrails/actions.js.map +1 -0
- package/dist/lib/guardrails/conditions.d.ts +13 -0
- package/dist/lib/guardrails/conditions.d.ts.map +1 -0
- package/dist/lib/guardrails/conditions.js +188 -0
- package/dist/lib/guardrails/conditions.js.map +1 -0
- package/dist/lib/guardrails/engine.d.ts +24 -0
- package/dist/lib/guardrails/engine.d.ts.map +1 -0
- package/dist/lib/guardrails/engine.js +122 -0
- package/dist/lib/guardrails/engine.js.map +1 -0
- package/dist/lib/redaction/human-review-layer.d.ts +37 -0
- package/dist/lib/redaction/human-review-layer.d.ts.map +1 -0
- package/dist/lib/redaction/human-review-layer.js +62 -0
- package/dist/lib/redaction/human-review-layer.js.map +1 -0
- package/dist/lib/redaction/index.d.ts +12 -0
- package/dist/lib/redaction/index.d.ts.map +1 -0
- package/dist/lib/redaction/index.js +12 -0
- package/dist/lib/redaction/index.js.map +1 -0
- package/dist/lib/redaction/pii-detection-layer.d.ts +30 -0
- package/dist/lib/redaction/pii-detection-layer.d.ts.map +1 -0
- package/dist/lib/redaction/pii-detection-layer.js +183 -0
- package/dist/lib/redaction/pii-detection-layer.js.map +1 -0
- package/dist/lib/redaction/pipeline.d.ts +26 -0
- package/dist/lib/redaction/pipeline.d.ts.map +1 -0
- package/dist/lib/redaction/pipeline.js +91 -0
- package/dist/lib/redaction/pipeline.js.map +1 -0
- package/dist/lib/redaction/secret-detection-layer.d.ts +10 -0
- package/dist/lib/redaction/secret-detection-layer.d.ts.map +1 -0
- package/dist/lib/redaction/secret-detection-layer.js +79 -0
- package/dist/lib/redaction/secret-detection-layer.js.map +1 -0
- package/dist/lib/redaction/secret-patterns.d.ts +29 -0
- package/dist/lib/redaction/secret-patterns.d.ts.map +1 -0
- package/dist/lib/redaction/secret-patterns.js +133 -0
- package/dist/lib/redaction/secret-patterns.js.map +1 -0
- package/dist/lib/redaction/semantic-denylist-layer.d.ts +10 -0
- package/dist/lib/redaction/semantic-denylist-layer.d.ts.map +1 -0
- package/dist/lib/redaction/semantic-denylist-layer.js +64 -0
- package/dist/lib/redaction/semantic-denylist-layer.js.map +1 -0
- package/dist/lib/redaction/tenant-deidentification-layer.d.ts +10 -0
- package/dist/lib/redaction/tenant-deidentification-layer.d.ts.map +1 -0
- package/dist/lib/redaction/tenant-deidentification-layer.js +64 -0
- package/dist/lib/redaction/tenant-deidentification-layer.js.map +1 -0
- package/dist/lib/redaction/url-path-scrubbing-layer.d.ts +14 -0
- package/dist/lib/redaction/url-path-scrubbing-layer.d.ts.map +1 -0
- package/dist/lib/redaction/url-path-scrubbing-layer.js +156 -0
- package/dist/lib/redaction/url-path-scrubbing-layer.js.map +1 -0
- package/dist/routes/agents.d.ts +4 -3
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +31 -12
- package/dist/routes/agents.js.map +1 -1
- package/dist/routes/audit.d.ts +15 -0
- package/dist/routes/audit.d.ts.map +1 -0
- package/dist/routes/audit.js +177 -0
- package/dist/routes/audit.js.map +1 -0
- package/dist/routes/capabilities.d.ts +15 -0
- package/dist/routes/capabilities.d.ts.map +1 -0
- package/dist/routes/capabilities.js +86 -0
- package/dist/routes/capabilities.js.map +1 -0
- package/dist/routes/community.d.ts +24 -0
- package/dist/routes/community.d.ts.map +1 -0
- package/dist/routes/community.js +190 -0
- package/dist/routes/community.js.map +1 -0
- package/dist/routes/delegation.d.ts +20 -0
- package/dist/routes/delegation.d.ts.map +1 -0
- package/dist/routes/delegation.js +108 -0
- package/dist/routes/delegation.js.map +1 -0
- package/dist/routes/discovery.d.ts +19 -0
- package/dist/routes/discovery.d.ts.map +1 -0
- package/dist/routes/discovery.js +96 -0
- package/dist/routes/discovery.js.map +1 -0
- package/dist/routes/guardrails.d.ts +18 -0
- package/dist/routes/guardrails.d.ts.map +1 -0
- package/dist/routes/guardrails.js +184 -0
- package/dist/routes/guardrails.js.map +1 -0
- package/dist/routes/redaction-test.d.ts +14 -0
- package/dist/routes/redaction-test.d.ts.map +1 -0
- package/dist/routes/redaction-test.js +33 -0
- package/dist/routes/redaction-test.js.map +1 -0
- package/dist/routes/trust.d.ts +16 -0
- package/dist/routes/trust.d.ts.map +1 -0
- package/dist/routes/trust.js +23 -0
- package/dist/routes/trust.js.map +1 -0
- package/dist/services/community-service.d.ts +277 -0
- package/dist/services/community-service.d.ts.map +1 -0
- package/dist/services/community-service.js +785 -0
- package/dist/services/community-service.js.map +1 -0
- package/dist/services/delegation-service.d.ts +149 -0
- package/dist/services/delegation-service.d.ts.map +1 -0
- package/dist/services/delegation-service.js +605 -0
- package/dist/services/delegation-service.js.map +1 -0
- package/dist/services/discovery-service.d.ts +39 -0
- package/dist/services/discovery-service.d.ts.map +1 -0
- package/dist/services/discovery-service.js +186 -0
- package/dist/services/discovery-service.js.map +1 -0
- package/dist/services/trust-service.d.ts +59 -0
- package/dist/services/trust-service.d.ts.map +1 -0
- package/dist/services/trust-service.js +139 -0
- package/dist/services/trust-service.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guardrail Store (v0.8.0 — Story 1.2)
|
|
3
|
+
*
|
|
4
|
+
* CRUD operations for guardrail rules, runtime state, and trigger history.
|
|
5
|
+
* All operations are tenant-scoped.
|
|
6
|
+
*/
|
|
7
|
+
import { sql } from 'drizzle-orm';
|
|
8
|
+
export class GuardrailStore {
|
|
9
|
+
db;
|
|
10
|
+
constructor(db) {
|
|
11
|
+
this.db = db;
|
|
12
|
+
}
|
|
13
|
+
// ─── Rules ───────────────────────────────────────────────
|
|
14
|
+
createRule(rule) {
|
|
15
|
+
this.db.run(sql `
|
|
16
|
+
INSERT INTO guardrail_rules (
|
|
17
|
+
id, tenant_id, name, description, enabled,
|
|
18
|
+
condition_type, condition_config, action_type, action_config,
|
|
19
|
+
agent_id, cooldown_minutes, dry_run, created_at, updated_at
|
|
20
|
+
) VALUES (
|
|
21
|
+
${rule.id}, ${rule.tenantId}, ${rule.name}, ${rule.description ?? null},
|
|
22
|
+
${rule.enabled ? 1 : 0},
|
|
23
|
+
${rule.conditionType}, ${JSON.stringify(rule.conditionConfig)},
|
|
24
|
+
${rule.actionType}, ${JSON.stringify(rule.actionConfig)},
|
|
25
|
+
${rule.agentId ?? null}, ${rule.cooldownMinutes},
|
|
26
|
+
${rule.dryRun ? 1 : 0},
|
|
27
|
+
${rule.createdAt}, ${rule.updatedAt}
|
|
28
|
+
)
|
|
29
|
+
`);
|
|
30
|
+
}
|
|
31
|
+
getRule(tenantId, ruleId) {
|
|
32
|
+
const row = this.db.get(sql `
|
|
33
|
+
SELECT * FROM guardrail_rules WHERE id = ${ruleId} AND tenant_id = ${tenantId}
|
|
34
|
+
`);
|
|
35
|
+
return row ? this._mapRule(row) : null;
|
|
36
|
+
}
|
|
37
|
+
listRules(tenantId, agentId) {
|
|
38
|
+
if (agentId) {
|
|
39
|
+
const rows = this.db.all(sql `
|
|
40
|
+
SELECT * FROM guardrail_rules WHERE tenant_id = ${tenantId} AND agent_id = ${agentId} ORDER BY created_at DESC
|
|
41
|
+
`);
|
|
42
|
+
return rows.map((r) => this._mapRule(r));
|
|
43
|
+
}
|
|
44
|
+
const rows = this.db.all(sql `
|
|
45
|
+
SELECT * FROM guardrail_rules WHERE tenant_id = ${tenantId} ORDER BY created_at DESC
|
|
46
|
+
`);
|
|
47
|
+
return rows.map((r) => this._mapRule(r));
|
|
48
|
+
}
|
|
49
|
+
listEnabledRules(tenantId, agentId) {
|
|
50
|
+
if (agentId) {
|
|
51
|
+
const rows = this.db.all(sql `
|
|
52
|
+
SELECT * FROM guardrail_rules
|
|
53
|
+
WHERE tenant_id = ${tenantId} AND enabled = 1
|
|
54
|
+
AND (agent_id IS NULL OR agent_id = ${agentId})
|
|
55
|
+
ORDER BY created_at ASC
|
|
56
|
+
`);
|
|
57
|
+
return rows.map((r) => this._mapRule(r));
|
|
58
|
+
}
|
|
59
|
+
const rows = this.db.all(sql `
|
|
60
|
+
SELECT * FROM guardrail_rules
|
|
61
|
+
WHERE tenant_id = ${tenantId} AND enabled = 1
|
|
62
|
+
ORDER BY created_at ASC
|
|
63
|
+
`);
|
|
64
|
+
return rows.map((r) => this._mapRule(r));
|
|
65
|
+
}
|
|
66
|
+
updateRule(tenantId, ruleId, updates) {
|
|
67
|
+
const existing = this.getRule(tenantId, ruleId);
|
|
68
|
+
if (!existing)
|
|
69
|
+
return false;
|
|
70
|
+
const merged = { ...existing, ...updates, updatedAt: new Date().toISOString() };
|
|
71
|
+
this.db.run(sql `
|
|
72
|
+
UPDATE guardrail_rules SET
|
|
73
|
+
name = ${merged.name},
|
|
74
|
+
description = ${merged.description ?? null},
|
|
75
|
+
enabled = ${merged.enabled ? 1 : 0},
|
|
76
|
+
condition_type = ${merged.conditionType},
|
|
77
|
+
condition_config = ${JSON.stringify(merged.conditionConfig)},
|
|
78
|
+
action_type = ${merged.actionType},
|
|
79
|
+
action_config = ${JSON.stringify(merged.actionConfig)},
|
|
80
|
+
agent_id = ${merged.agentId ?? null},
|
|
81
|
+
cooldown_minutes = ${merged.cooldownMinutes},
|
|
82
|
+
dry_run = ${merged.dryRun ? 1 : 0},
|
|
83
|
+
updated_at = ${merged.updatedAt}
|
|
84
|
+
WHERE id = ${ruleId} AND tenant_id = ${tenantId}
|
|
85
|
+
`);
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
deleteRule(tenantId, ruleId) {
|
|
89
|
+
const existing = this.getRule(tenantId, ruleId);
|
|
90
|
+
if (!existing)
|
|
91
|
+
return false;
|
|
92
|
+
this.db.run(sql `DELETE FROM guardrail_rules WHERE id = ${ruleId} AND tenant_id = ${tenantId}`);
|
|
93
|
+
// Also clean up state and history
|
|
94
|
+
this.db.run(sql `DELETE FROM guardrail_state WHERE rule_id = ${ruleId} AND tenant_id = ${tenantId}`);
|
|
95
|
+
this.db.run(sql `DELETE FROM guardrail_trigger_history WHERE rule_id = ${ruleId} AND tenant_id = ${tenantId}`);
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
// ─── State ───────────────────────────────────────────────
|
|
99
|
+
getState(tenantId, ruleId) {
|
|
100
|
+
const row = this.db.get(sql `
|
|
101
|
+
SELECT * FROM guardrail_state WHERE rule_id = ${ruleId} AND tenant_id = ${tenantId}
|
|
102
|
+
`);
|
|
103
|
+
return row ? this._mapState(row) : null;
|
|
104
|
+
}
|
|
105
|
+
upsertState(state) {
|
|
106
|
+
this.db.run(sql `
|
|
107
|
+
INSERT INTO guardrail_state (rule_id, tenant_id, last_triggered_at, trigger_count, last_evaluated_at, current_value)
|
|
108
|
+
VALUES (${state.ruleId}, ${state.tenantId}, ${state.lastTriggeredAt ?? null},
|
|
109
|
+
${state.triggerCount}, ${state.lastEvaluatedAt ?? null}, ${state.currentValue ?? null})
|
|
110
|
+
ON CONFLICT (rule_id, tenant_id) DO UPDATE SET
|
|
111
|
+
last_triggered_at = ${state.lastTriggeredAt ?? null},
|
|
112
|
+
trigger_count = ${state.triggerCount},
|
|
113
|
+
last_evaluated_at = ${state.lastEvaluatedAt ?? null},
|
|
114
|
+
current_value = ${state.currentValue ?? null}
|
|
115
|
+
`);
|
|
116
|
+
}
|
|
117
|
+
// ─── Trigger History ─────────────────────────────────────
|
|
118
|
+
insertTrigger(trigger) {
|
|
119
|
+
this.db.run(sql `
|
|
120
|
+
INSERT INTO guardrail_trigger_history (
|
|
121
|
+
id, rule_id, tenant_id, triggered_at, condition_value, condition_threshold,
|
|
122
|
+
action_executed, action_result, metadata
|
|
123
|
+
) VALUES (
|
|
124
|
+
${trigger.id}, ${trigger.ruleId}, ${trigger.tenantId}, ${trigger.triggeredAt},
|
|
125
|
+
${trigger.conditionValue}, ${trigger.conditionThreshold},
|
|
126
|
+
${trigger.actionExecuted ? 1 : 0}, ${trigger.actionResult ?? null},
|
|
127
|
+
${JSON.stringify(trigger.metadata)}
|
|
128
|
+
)
|
|
129
|
+
`);
|
|
130
|
+
}
|
|
131
|
+
listTriggerHistory(tenantId, opts) {
|
|
132
|
+
const limit = opts?.limit ?? 50;
|
|
133
|
+
const offset = opts?.offset ?? 0;
|
|
134
|
+
let triggers;
|
|
135
|
+
let total;
|
|
136
|
+
if (opts?.ruleId) {
|
|
137
|
+
triggers = this.db
|
|
138
|
+
.all(sql `
|
|
139
|
+
SELECT * FROM guardrail_trigger_history
|
|
140
|
+
WHERE tenant_id = ${tenantId} AND rule_id = ${opts.ruleId}
|
|
141
|
+
ORDER BY triggered_at DESC
|
|
142
|
+
LIMIT ${limit} OFFSET ${offset}
|
|
143
|
+
`)
|
|
144
|
+
.map((r) => this._mapTrigger(r));
|
|
145
|
+
const countRow = this.db.get(sql `
|
|
146
|
+
SELECT COUNT(*) as count FROM guardrail_trigger_history
|
|
147
|
+
WHERE tenant_id = ${tenantId} AND rule_id = ${opts.ruleId}
|
|
148
|
+
`);
|
|
149
|
+
total = countRow?.count ?? 0;
|
|
150
|
+
}
|
|
151
|
+
else {
|
|
152
|
+
triggers = this.db
|
|
153
|
+
.all(sql `
|
|
154
|
+
SELECT * FROM guardrail_trigger_history
|
|
155
|
+
WHERE tenant_id = ${tenantId}
|
|
156
|
+
ORDER BY triggered_at DESC
|
|
157
|
+
LIMIT ${limit} OFFSET ${offset}
|
|
158
|
+
`)
|
|
159
|
+
.map((r) => this._mapTrigger(r));
|
|
160
|
+
const countRow = this.db.get(sql `
|
|
161
|
+
SELECT COUNT(*) as count FROM guardrail_trigger_history
|
|
162
|
+
WHERE tenant_id = ${tenantId}
|
|
163
|
+
`);
|
|
164
|
+
total = countRow?.count ?? 0;
|
|
165
|
+
}
|
|
166
|
+
return { triggers, total };
|
|
167
|
+
}
|
|
168
|
+
getRecentTriggers(tenantId, ruleId, limit = 5) {
|
|
169
|
+
return this.db
|
|
170
|
+
.all(sql `
|
|
171
|
+
SELECT * FROM guardrail_trigger_history
|
|
172
|
+
WHERE tenant_id = ${tenantId} AND rule_id = ${ruleId}
|
|
173
|
+
ORDER BY triggered_at DESC
|
|
174
|
+
LIMIT ${limit}
|
|
175
|
+
`)
|
|
176
|
+
.map((r) => this._mapTrigger(r));
|
|
177
|
+
}
|
|
178
|
+
// ─── Mappers ─────────────────────────────────────────────
|
|
179
|
+
_mapRule(row) {
|
|
180
|
+
return {
|
|
181
|
+
id: row['id'],
|
|
182
|
+
tenantId: row['tenant_id'],
|
|
183
|
+
name: row['name'],
|
|
184
|
+
description: row['description'] || undefined,
|
|
185
|
+
enabled: row['enabled'] === 1 || row['enabled'] === true,
|
|
186
|
+
conditionType: row['condition_type'],
|
|
187
|
+
conditionConfig: JSON.parse(row['condition_config'] || '{}'),
|
|
188
|
+
actionType: row['action_type'],
|
|
189
|
+
actionConfig: JSON.parse(row['action_config'] || '{}'),
|
|
190
|
+
agentId: row['agent_id'] || undefined,
|
|
191
|
+
cooldownMinutes: row['cooldown_minutes'] ?? 15,
|
|
192
|
+
dryRun: row['dry_run'] === 1 || row['dry_run'] === true,
|
|
193
|
+
createdAt: row['created_at'],
|
|
194
|
+
updatedAt: row['updated_at'],
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
_mapState(row) {
|
|
198
|
+
return {
|
|
199
|
+
ruleId: row['rule_id'],
|
|
200
|
+
tenantId: row['tenant_id'],
|
|
201
|
+
lastTriggeredAt: row['last_triggered_at'] || undefined,
|
|
202
|
+
triggerCount: row['trigger_count'] ?? 0,
|
|
203
|
+
lastEvaluatedAt: row['last_evaluated_at'] || undefined,
|
|
204
|
+
currentValue: row['current_value'] != null ? row['current_value'] : undefined,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
_mapTrigger(row) {
|
|
208
|
+
return {
|
|
209
|
+
id: row['id'],
|
|
210
|
+
ruleId: row['rule_id'],
|
|
211
|
+
tenantId: row['tenant_id'],
|
|
212
|
+
triggeredAt: row['triggered_at'],
|
|
213
|
+
conditionValue: row['condition_value'],
|
|
214
|
+
conditionThreshold: row['condition_threshold'],
|
|
215
|
+
actionExecuted: row['action_executed'] === 1 || row['action_executed'] === true,
|
|
216
|
+
actionResult: row['action_result'] || undefined,
|
|
217
|
+
metadata: JSON.parse(row['metadata'] || '{}'),
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=guardrail-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guardrail-store.js","sourceRoot":"","sources":["../../src/db/guardrail-store.ts"],"names":[],"mappings":"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"}
|
package/dist/db/migrate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAypBhD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB,CAoBA"}
|
package/dist/db/migrate.js
CHANGED
|
@@ -417,6 +417,206 @@ export function runMigrations(db) {
|
|
|
417
417
|
db.run(sql `CREATE INDEX IF NOT EXISTS idx_benchmark_variants_tenant_tag ON benchmark_variants(tenant_id, tag)`);
|
|
418
418
|
db.run(sql `CREATE INDEX IF NOT EXISTS idx_benchmark_results_benchmark_id ON benchmark_results(benchmark_id)`);
|
|
419
419
|
db.run(sql `CREATE INDEX IF NOT EXISTS idx_benchmark_results_tenant_id ON benchmark_results(tenant_id)`);
|
|
420
|
+
// ─── Guardrail tables (v0.8.0 — Phase 3) ──────────────────
|
|
421
|
+
db.run(sql `
|
|
422
|
+
CREATE TABLE IF NOT EXISTS guardrail_rules (
|
|
423
|
+
id TEXT PRIMARY KEY,
|
|
424
|
+
tenant_id TEXT NOT NULL,
|
|
425
|
+
name TEXT NOT NULL,
|
|
426
|
+
description TEXT,
|
|
427
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
428
|
+
condition_type TEXT NOT NULL,
|
|
429
|
+
condition_config TEXT NOT NULL DEFAULT '{}',
|
|
430
|
+
action_type TEXT NOT NULL,
|
|
431
|
+
action_config TEXT NOT NULL DEFAULT '{}',
|
|
432
|
+
agent_id TEXT,
|
|
433
|
+
cooldown_minutes INTEGER NOT NULL DEFAULT 15,
|
|
434
|
+
dry_run INTEGER NOT NULL DEFAULT 0,
|
|
435
|
+
created_at TEXT NOT NULL,
|
|
436
|
+
updated_at TEXT NOT NULL
|
|
437
|
+
)
|
|
438
|
+
`);
|
|
439
|
+
db.run(sql `
|
|
440
|
+
CREATE TABLE IF NOT EXISTS guardrail_state (
|
|
441
|
+
rule_id TEXT NOT NULL,
|
|
442
|
+
tenant_id TEXT NOT NULL,
|
|
443
|
+
last_triggered_at TEXT,
|
|
444
|
+
trigger_count INTEGER NOT NULL DEFAULT 0,
|
|
445
|
+
last_evaluated_at TEXT,
|
|
446
|
+
current_value REAL,
|
|
447
|
+
PRIMARY KEY (rule_id, tenant_id)
|
|
448
|
+
)
|
|
449
|
+
`);
|
|
450
|
+
db.run(sql `
|
|
451
|
+
CREATE TABLE IF NOT EXISTS guardrail_trigger_history (
|
|
452
|
+
id TEXT PRIMARY KEY,
|
|
453
|
+
rule_id TEXT NOT NULL,
|
|
454
|
+
tenant_id TEXT NOT NULL,
|
|
455
|
+
triggered_at TEXT NOT NULL,
|
|
456
|
+
condition_value REAL NOT NULL,
|
|
457
|
+
condition_threshold REAL NOT NULL,
|
|
458
|
+
action_executed INTEGER NOT NULL DEFAULT 0,
|
|
459
|
+
action_result TEXT,
|
|
460
|
+
metadata TEXT NOT NULL DEFAULT '{}'
|
|
461
|
+
)
|
|
462
|
+
`);
|
|
463
|
+
// Guardrail indexes
|
|
464
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_guardrail_rules_tenant ON guardrail_rules(tenant_id)`);
|
|
465
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_guardrail_rules_tenant_enabled ON guardrail_rules(tenant_id, enabled)`);
|
|
466
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_guardrail_state_tenant ON guardrail_state(tenant_id)`);
|
|
467
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_guardrail_trigger_history_tenant ON guardrail_trigger_history(tenant_id)`);
|
|
468
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_guardrail_trigger_history_rule ON guardrail_trigger_history(rule_id, triggered_at)`);
|
|
469
|
+
// ─── Agent model override & pause columns (B1 — Story 1.2) ──────
|
|
470
|
+
// Idempotent: only adds columns if they don't already exist
|
|
471
|
+
const agentColsB1 = db.all(sql `PRAGMA table_info(agents)`);
|
|
472
|
+
const agentColNamesB1 = new Set(agentColsB1.map((c) => c.name));
|
|
473
|
+
if (!agentColNamesB1.has('model_override')) {
|
|
474
|
+
db.run(sql `ALTER TABLE agents ADD COLUMN model_override TEXT`);
|
|
475
|
+
}
|
|
476
|
+
if (!agentColNamesB1.has('paused_at')) {
|
|
477
|
+
db.run(sql `ALTER TABLE agents ADD COLUMN paused_at TEXT`);
|
|
478
|
+
}
|
|
479
|
+
if (!agentColNamesB1.has('pause_reason')) {
|
|
480
|
+
db.run(sql `ALTER TABLE agents ADD COLUMN pause_reason TEXT`);
|
|
481
|
+
}
|
|
482
|
+
// Partial index for finding paused agents efficiently
|
|
483
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_agents_paused ON agents(tenant_id, paused_at) WHERE paused_at IS NOT NULL`);
|
|
484
|
+
// ─── Phase 4: Sharing & Discovery tables (Stories 1.3) ──────────
|
|
485
|
+
db.run(sql `
|
|
486
|
+
CREATE TABLE IF NOT EXISTS sharing_config (
|
|
487
|
+
tenant_id TEXT PRIMARY KEY,
|
|
488
|
+
enabled INTEGER NOT NULL DEFAULT 0,
|
|
489
|
+
human_review_enabled INTEGER NOT NULL DEFAULT 0,
|
|
490
|
+
pool_endpoint TEXT,
|
|
491
|
+
anonymous_contributor_id TEXT,
|
|
492
|
+
purge_token TEXT,
|
|
493
|
+
rate_limit_per_hour INTEGER NOT NULL DEFAULT 50,
|
|
494
|
+
volume_alert_threshold INTEGER NOT NULL DEFAULT 100,
|
|
495
|
+
updated_at TEXT NOT NULL
|
|
496
|
+
)
|
|
497
|
+
`);
|
|
498
|
+
db.run(sql `
|
|
499
|
+
CREATE TABLE IF NOT EXISTS agent_sharing_config (
|
|
500
|
+
tenant_id TEXT NOT NULL,
|
|
501
|
+
agent_id TEXT NOT NULL,
|
|
502
|
+
enabled INTEGER NOT NULL DEFAULT 0,
|
|
503
|
+
categories TEXT NOT NULL DEFAULT '[]',
|
|
504
|
+
updated_at TEXT NOT NULL,
|
|
505
|
+
PRIMARY KEY (tenant_id, agent_id)
|
|
506
|
+
)
|
|
507
|
+
`);
|
|
508
|
+
db.run(sql `
|
|
509
|
+
CREATE TABLE IF NOT EXISTS deny_list_rules (
|
|
510
|
+
id TEXT PRIMARY KEY,
|
|
511
|
+
tenant_id TEXT NOT NULL,
|
|
512
|
+
pattern TEXT NOT NULL,
|
|
513
|
+
is_regex INTEGER NOT NULL DEFAULT 0,
|
|
514
|
+
reason TEXT NOT NULL,
|
|
515
|
+
created_at TEXT NOT NULL
|
|
516
|
+
)
|
|
517
|
+
`);
|
|
518
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_deny_list_rules_tenant ON deny_list_rules(tenant_id)`);
|
|
519
|
+
db.run(sql `
|
|
520
|
+
CREATE TABLE IF NOT EXISTS sharing_audit_log (
|
|
521
|
+
id TEXT PRIMARY KEY,
|
|
522
|
+
tenant_id TEXT NOT NULL,
|
|
523
|
+
event_type TEXT NOT NULL,
|
|
524
|
+
lesson_id TEXT,
|
|
525
|
+
anonymous_lesson_id TEXT,
|
|
526
|
+
lesson_hash TEXT,
|
|
527
|
+
redaction_findings TEXT,
|
|
528
|
+
query_text TEXT,
|
|
529
|
+
result_ids TEXT,
|
|
530
|
+
pool_endpoint TEXT,
|
|
531
|
+
initiated_by TEXT,
|
|
532
|
+
timestamp TEXT NOT NULL
|
|
533
|
+
)
|
|
534
|
+
`);
|
|
535
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_sharing_audit_tenant_ts ON sharing_audit_log(tenant_id, timestamp)`);
|
|
536
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_sharing_audit_type ON sharing_audit_log(tenant_id, event_type)`);
|
|
537
|
+
db.run(sql `
|
|
538
|
+
CREATE TABLE IF NOT EXISTS sharing_review_queue (
|
|
539
|
+
id TEXT PRIMARY KEY,
|
|
540
|
+
tenant_id TEXT NOT NULL,
|
|
541
|
+
lesson_id TEXT NOT NULL,
|
|
542
|
+
original_title TEXT NOT NULL,
|
|
543
|
+
original_content TEXT NOT NULL,
|
|
544
|
+
redacted_title TEXT NOT NULL,
|
|
545
|
+
redacted_content TEXT NOT NULL,
|
|
546
|
+
redaction_findings TEXT NOT NULL,
|
|
547
|
+
status TEXT NOT NULL DEFAULT 'pending',
|
|
548
|
+
reviewed_by TEXT,
|
|
549
|
+
reviewed_at TEXT,
|
|
550
|
+
created_at TEXT NOT NULL,
|
|
551
|
+
expires_at TEXT NOT NULL
|
|
552
|
+
)
|
|
553
|
+
`);
|
|
554
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_review_queue_tenant_status ON sharing_review_queue(tenant_id, status)`);
|
|
555
|
+
db.run(sql `
|
|
556
|
+
CREATE TABLE IF NOT EXISTS anonymous_id_map (
|
|
557
|
+
tenant_id TEXT NOT NULL,
|
|
558
|
+
agent_id TEXT NOT NULL,
|
|
559
|
+
anonymous_agent_id TEXT NOT NULL,
|
|
560
|
+
valid_from TEXT NOT NULL,
|
|
561
|
+
valid_until TEXT NOT NULL,
|
|
562
|
+
PRIMARY KEY (tenant_id, agent_id, valid_from)
|
|
563
|
+
)
|
|
564
|
+
`);
|
|
565
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_anon_map_anon_id ON anonymous_id_map(anonymous_agent_id)`);
|
|
566
|
+
db.run(sql `
|
|
567
|
+
CREATE TABLE IF NOT EXISTS capability_registry (
|
|
568
|
+
id TEXT PRIMARY KEY,
|
|
569
|
+
tenant_id TEXT NOT NULL,
|
|
570
|
+
agent_id TEXT NOT NULL,
|
|
571
|
+
task_type TEXT NOT NULL,
|
|
572
|
+
custom_type TEXT,
|
|
573
|
+
input_schema TEXT NOT NULL,
|
|
574
|
+
output_schema TEXT NOT NULL,
|
|
575
|
+
quality_metrics TEXT NOT NULL DEFAULT '{}',
|
|
576
|
+
estimated_latency_ms INTEGER,
|
|
577
|
+
estimated_cost_usd REAL,
|
|
578
|
+
max_input_bytes INTEGER,
|
|
579
|
+
scope TEXT NOT NULL DEFAULT 'internal',
|
|
580
|
+
enabled INTEGER NOT NULL DEFAULT 1,
|
|
581
|
+
accept_delegations INTEGER NOT NULL DEFAULT 0,
|
|
582
|
+
inbound_rate_limit INTEGER NOT NULL DEFAULT 10,
|
|
583
|
+
outbound_rate_limit INTEGER NOT NULL DEFAULT 20,
|
|
584
|
+
created_at TEXT NOT NULL,
|
|
585
|
+
updated_at TEXT NOT NULL
|
|
586
|
+
)
|
|
587
|
+
`);
|
|
588
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_capability_tenant_agent ON capability_registry(tenant_id, agent_id)`);
|
|
589
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_capability_task_type ON capability_registry(tenant_id, task_type)`);
|
|
590
|
+
db.run(sql `
|
|
591
|
+
CREATE TABLE IF NOT EXISTS delegation_log (
|
|
592
|
+
id TEXT PRIMARY KEY,
|
|
593
|
+
tenant_id TEXT NOT NULL,
|
|
594
|
+
direction TEXT NOT NULL,
|
|
595
|
+
agent_id TEXT NOT NULL,
|
|
596
|
+
anonymous_target_id TEXT,
|
|
597
|
+
anonymous_source_id TEXT,
|
|
598
|
+
task_type TEXT NOT NULL,
|
|
599
|
+
status TEXT NOT NULL,
|
|
600
|
+
request_size_bytes INTEGER,
|
|
601
|
+
response_size_bytes INTEGER,
|
|
602
|
+
execution_time_ms INTEGER,
|
|
603
|
+
cost_usd REAL,
|
|
604
|
+
created_at TEXT NOT NULL,
|
|
605
|
+
completed_at TEXT
|
|
606
|
+
)
|
|
607
|
+
`);
|
|
608
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_delegation_tenant_ts ON delegation_log(tenant_id, created_at)`);
|
|
609
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_delegation_agent ON delegation_log(tenant_id, agent_id)`);
|
|
610
|
+
db.run(sql `CREATE INDEX IF NOT EXISTS idx_delegation_status ON delegation_log(tenant_id, status)`);
|
|
611
|
+
// ─── Discovery Config (Story 5.4) ──────────────────────
|
|
612
|
+
db.run(sql `
|
|
613
|
+
CREATE TABLE IF NOT EXISTS discovery_config (
|
|
614
|
+
tenant_id TEXT PRIMARY KEY,
|
|
615
|
+
min_trust_threshold INTEGER NOT NULL DEFAULT 60,
|
|
616
|
+
delegation_enabled INTEGER NOT NULL DEFAULT 0,
|
|
617
|
+
updated_at TEXT NOT NULL
|
|
618
|
+
)
|
|
619
|
+
`);
|
|
420
620
|
}
|
|
421
621
|
/**
|
|
422
622
|
* Verify that WAL mode is enabled.
|
package/dist/db/migrate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/db/migrate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,EAAY;IACxC,2DAA2D;IAC3D,gEAAgE;IAChE,oDAAoD;IACpD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;GAaT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;GAmBT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;GAWT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;GAaT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;GAUT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;GAWT,CAAC,CAAC;IAEH,iCAAiC;IACjC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,sEAAsE,CAAC,CAAC;IAClF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,wEAAwE,CAAC,CAAC;IACpF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,oEAAoE,CAAC,CAAC;IAChF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,kEAAkE,CAAC,CAAC;IAC9E,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,mFAAmF,CAAC,CAAC;IAC/F,EAAE,CAAC,GAAG,CACJ,GAAG,CAAA,gGAAgG,CACpG,CAAC;IACF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,wEAAwE,CAAC,CAAC;IACpF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,4EAA4E,CAAC,CAAC;IACxF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,oEAAoE,CAAC,CAAC;IAChF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,oEAAoE,CAAC,CAAC;IAChF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,gFAAgF,CAAC,CAAC;IAE5F,2DAA2D;IAC3D,gDAAgD;IAChD,qEAAqE;IACrE,MAAM,cAAc,GAAG,EAAE,CAAC,GAAG,CAAmB,GAAG,CAAA,6BAA6B,CAAC,CAAC;IAClF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9C,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,2EAA2E,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,CAAC,EAAE,CAAC;QAClD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,+EAA+E,CAAC,CAAC;IAC7F,CAAC;IACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACnD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,gFAAgF,CAAC,CAAC;IAC9F,CAAC;IAED,6DAA6D;IAC7D,4DAA4D;IAE5D,qBAAqB;IACrB,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAmB,GAAG,CAAA,6BAA6B,CAAC,CAAC;IACjF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,2EAA2E,CAAC,CAAC;IACzF,CAAC;IAED,mBAAmB;IACnB,MAAM,YAAY,GAAG,EAAE,CAAC,GAAG,CAAmB,GAAG,CAAA,2BAA2B,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,yEAAyE,CAAC,CAAC;IACvF,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACzC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,2EAA2E,CAAC,CAAC;IACzF,CAAC;IAED,mBAAmB;IACnB,MAAM,YAAY,GAAG,EAAE,CAAC,GAAG,CAAmB,GAAG,CAAA,2BAA2B,CAAC,CAAC;IAC9E,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,yEAAyE,CAAC,CAAC;IACvF,CAAC;IAED,wBAAwB;IACxB,MAAM,gBAAgB,GAAG,EAAE,CAAC,GAAG,CAAmB,GAAG,CAAA,gCAAgC,CAAC,CAAC;IACvF,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3C,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,8EAA8E,CAAC,CAAC;IAC5F,CAAC;IAED,0BAA0B;IAC1B,MAAM,mBAAmB,GAAG,EAAE,CAAC,GAAG,CAAmB,GAAG,CAAA,kCAAkC,CAAC,CAAC;IAC5F,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9C,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,gFAAgF,CAAC,CAAC;IAC9F,CAAC;IAED,2BAA2B;IAC3B,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,sEAAsE,CAAC,CAAC;IAClF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,uFAAuF,CAAC,CAAC;IACnG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,iGAAiG,CAAC,CAAC;IAC7G,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,0EAA0E,CAAC,CAAC;IACtF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,uFAAuF,CAAC,CAAC;IACnG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,2FAA2F,CAAC,CAAC;IACvG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,sEAAsE,CAAC,CAAC;IAElF,+DAA+D;IAC/D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;GAaT,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,2EAA2E,CAAC,CAAC;IACvF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,wFAAwF,CAAC,CAAC;IACpG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,+FAA+F,CAAC,CAAC;IAE3G,sEAAsE;IACtE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;GAaT,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,yFAAyF,CAAC,CAAC;IAErG,6DAA6D;IAC7D,mEAAmE;IACnE,kEAAkE;IAElE,qDAAqD;IACrD,2CAA2C;IAC3C,MAAM,cAAc,GAAG,EAAE,CAAC,GAAG,CAC3B,GAAG,CAAA,sEAAsE,CAC1E,CAAC;IACF,IAAI,cAAc,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACzE,kEAAkE;QAClE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,4CAA4C,CAAC,CAAC;QACxD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,8CAA8C,CAAC,CAAC;QAC1D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,0CAA0C,CAAC,CAAC;QACtD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,6CAA6C,CAAC,CAAC;QACzD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,gDAAgD,CAAC,CAAC;QAC5D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,kDAAkD,CAAC,CAAC;QAE9D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;KAmBT,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;KAOT,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,qBAAqB,CAAC,CAAC;QACjC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,6CAA6C,CAAC,CAAC;QAEzD,mBAAmB;QACnB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,0DAA0D,CAAC,CAAC;QACtE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,8DAA8D,CAAC,CAAC;QAC1E,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,sDAAsD,CAAC,CAAC;QAClE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,4DAA4D,CAAC,CAAC;QACxE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,yEAAyE,CAAC,CAAC;QACrF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,6EAA6E,CAAC,CAAC;IAC3F,CAAC;IAED,mDAAmD;IACnD,MAAM,YAAY,GAAG,EAAE,CAAC,GAAG,CACzB,GAAG,CAAA,oEAAoE,CACxE,CAAC;IACF,IAAI,YAAY,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACrE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,2CAA2C,CAAC,CAAC;QAEvD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;KAWT,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;KAKT,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,mBAAmB,CAAC,CAAC;QAC/B,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,yCAAyC,CAAC,CAAC;QAErD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,wDAAwD,CAAC,CAAC;IACtE,CAAC;IAED,4DAA4D;IAC5D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;GAmBT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,qEAAqE,CAAC,CAAC;IACjF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,qFAAqF,CAAC,CAAC;IACjG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,wFAAwF,CAAC,CAAC;IACpG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,4FAA4F,CAAC,CAAC;IAExG,2DAA2D;IAC3D,wEAAwE;IACxE,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAC1B,GAAG,CAAA,qEAAqE,CACzE,CAAC;IACF,IAAI,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACvE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,yCAAyC,CAAC,CAAC;QACrD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,+CAA+C,CAAC,CAAC;QAC3D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,kDAAkD,CAAC,CAAC;QAC9D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,oDAAoD,CAAC,CAAC;QAEhE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;KAmBT,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;KAMT,CAAC,CAAC;QACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,oBAAoB,CAAC,CAAC;QAChC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,2CAA2C,CAAC,CAAC;QAEvD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,uDAAuD,CAAC,CAAC;QACnE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,uEAAuE,CAAC,CAAC;QACnF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,0EAA0E,CAAC,CAAC;QACtF,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,8EAA8E,CAAC,CAAC;IAC5F,CAAC;IAED,oEAAoE;IACpE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,gHAAgH,CAAC,CAAC;IAE5H,qEAAqE;IACrE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;GAgBT,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,2GAA2G,CAAC,CAAC;IAEvH,+DAA+D;IAC/D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;GAgBT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;GAWT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;GAUT,CAAC,CAAC;IAEH,oBAAoB;IACpB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,8EAA8E,CAAC,CAAC;IAC1F,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,0FAA0F,CAAC,CAAC;IACtG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,oGAAoG,CAAC,CAAC;IAChH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,oGAAoG,CAAC,CAAC;IAChH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,kGAAkG,CAAC,CAAC;IAC9G,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,4FAA4F,CAAC,CAAC;IAExG,6DAA6D;IAC7D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;GAiBT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;GAUT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;GAYT,CAAC,CAAC;IAEH,oBAAoB;IACpB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,qFAAqF,CAAC,CAAC;IACjG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,sGAAsG,CAAC,CAAC;IAClH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,qFAAqF,CAAC,CAAC;IACjG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,yGAAyG,CAAC,CAAC;IACrH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,mHAAmH,CAAC,CAAC;IAE/H,mEAAmE;IACnE,4DAA4D;IAC5D,MAAM,WAAW,GAAG,EAAE,CAAC,GAAG,CAAmB,GAAG,CAAA,2BAA2B,CAAC,CAAC;IAC7E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3C,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,mDAAmD,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,8CAA8C,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QACzC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,iDAAiD,CAAC,CAAC;IAC/D,CAAC;IAED,sDAAsD;IACtD,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,0GAA0G,CAAC,CAAC;IAEtH,mEAAmE;IAEnE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;GAYT,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;GAST,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;GAST,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,qFAAqF,CAAC,CAAC;IAEjG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;GAeT,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,mGAAmG,CAAC,CAAC;IAC/G,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,+FAA+F,CAAC,CAAC;IAE3G,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;GAgBT,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,sGAAsG,CAAC,CAAC;IAElH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;GAST,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,yFAAyF,CAAC,CAAC;IAErG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;GAqBT,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,oGAAoG,CAAC,CAAC;IAChH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,kGAAkG,CAAC,CAAC;IAE9G,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;GAiBT,CAAC,CAAC;IACH,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,8FAA8F,CAAC,CAAC;IAC1G,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,wFAAwF,CAAC,CAAC;IACpG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA,uFAAuF,CAAC,CAAC;IAEnG,0DAA0D;IAC1D,EAAE,CAAC,GAAG,CAAC,GAAG,CAAA;;;;;;;GAOT,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,EAAY;IAOxC,MAAM,WAAW,GACf,EAAE,CAAC,GAAG,CAA2B,GAAG,CAAA,qBAAqB,CAAC,EAAE,YAAY,IAAI,EAAE,CAAC;IACjF,MAAM,WAAW,GAAG,EAAE,CAAC,GAAG,CAA0B,GAAG,CAAA,oBAAoB,CAAC,EAAE,WAAW,IAAI,CAAC,CAAC,CAAC;IAChG,MAAM,SAAS,GAAG,EAAE,CAAC,GAAG,CAAyB,GAAG,CAAA,mBAAmB,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC;IAC1F,wDAAwD;IACxD,MAAM,WAAW,GAAG,EAAE,CAAC,GAAG,CAAsB,GAAG,CAAA,qBAAqB,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC;IACxF,MAAM,WAAW,GACf,EAAE,CAAC,GAAG,CAA2B,GAAG,CAAA,qBAAqB,CAAC,EAAE,YAAY,KAAK,CAAC,CAAC;IAEjF,gDAAgD;IAChD,MAAM,SAAS,GAA2B,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;IAE3F,OAAO;QACL,WAAW;QACX,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC;QAC1D,SAAS;QACT,WAAW;QACX,WAAW;KACZ,CAAC;AACJ,CAAC"}
|