@the-ai-company/cbio-node-runtime 1.71.0 → 1.73.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/README.md +20 -35
- package/dist/clients/agent/client.d.ts +3 -6
- package/dist/clients/agent/client.js +15 -11
- package/dist/clients/agent/client.js.map +1 -1
- package/dist/clients/agent/contracts.d.ts +4 -4
- package/dist/clients/agent/index.d.ts +1 -1
- package/dist/clients/owner/client.js +12 -10
- package/dist/clients/owner/client.js.map +1 -1
- package/dist/clients/owner/contracts.d.ts +4 -4
- package/dist/public-types.d.ts +2 -2
- package/dist/public-types.js +1 -1
- package/dist/public-types.js.map +1 -1
- package/dist/runtime/bootstrap.js +22 -12
- package/dist/runtime/bootstrap.js.map +1 -1
- package/dist/runtime/index.d.ts +2 -2
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/storage/prefix.d.ts +1 -1
- package/dist/storage/prefix.js +2 -2
- package/dist/storage/prefix.js.map +1 -1
- package/dist/vault-core/contracts.d.ts +21 -142
- package/dist/vault-core/contracts.js +0 -19
- package/dist/vault-core/contracts.js.map +1 -1
- package/dist/vault-core/core.d.ts +9 -10
- package/dist/vault-core/core.js +93 -224
- package/dist/vault-core/core.js.map +1 -1
- package/dist/vault-core/defaults.d.ts +2 -4
- package/dist/vault-core/defaults.js +50 -47
- package/dist/vault-core/defaults.js.map +1 -1
- package/dist/vault-core/index.d.ts +2 -2
- package/dist/vault-core/index.js +1 -1
- package/dist/vault-core/index.js.map +1 -1
- package/dist/vault-core/persistence.d.ts +2 -4
- package/dist/vault-core/persistence.js +82 -55
- package/dist/vault-core/persistence.js.map +1 -1
- package/dist/vault-core/ports.d.ts +2 -4
- package/dist/vault-ingress/defaults.d.ts +2 -2
- package/dist/vault-ingress/defaults.js +3 -3
- package/dist/vault-ingress/defaults.js.map +1 -1
- package/dist/vault-ingress/index.d.ts +6 -6
- package/dist/vault-ingress/index.js +17 -29
- package/dist/vault-ingress/index.js.map +1 -1
- package/dist/vault-ingress/remote-transport.d.ts +2 -2
- package/dist/vault-ingress/remote-transport.js +7 -7
- package/dist/vault-ingress/remote-transport.js.map +1 -1
- package/dist/vault-ingress/server-utils.d.ts +1 -2
- package/dist/vault-ingress/server-utils.js +1 -1
- package/dist/vault-ingress/server-utils.js.map +1 -1
- package/docs/ARCHITECTURE.md +16 -14
- package/docs/REFERENCE.md +20 -37
- package/docs/api/README.md +5 -9
- package/docs/api/classes/IdentityError.md +1 -1
- package/docs/api/classes/OwnerClientError.md +1 -1
- package/docs/api/classes/PersistentVaultAgentIdentityRegistry.md +3 -3
- package/docs/api/classes/PersistentVaultAgentSecretGrantRegistry.md +6 -6
- package/docs/api/classes/PersistentVaultAuditLog.md +2 -2
- package/docs/api/classes/PersistentVaultSecretCustody.md +4 -4
- package/docs/api/classes/PersistentVaultSecretDestinationGrantRegistry.md +7 -7
- package/docs/api/classes/PersistentVaultSecretRepository.md +4 -6
- package/docs/api/classes/VaultCore.md +24 -24
- package/docs/api/classes/VaultCoreError.md +1 -1
- package/docs/api/enumerations/DispatchStatus.md +1 -1
- package/docs/api/enumerations/IdentityErrorCode.md +1 -1
- package/docs/api/enumerations/OwnerClientErrorCode.md +1 -1
- package/docs/api/functions/createAgentClient.md +1 -3
- package/docs/api/functions/createIdentity.md +1 -1
- package/docs/api/functions/createOwnerClient.md +1 -1
- package/docs/api/functions/createPersistentVaultCoreDependencies.md +1 -1
- package/docs/api/functions/createVault.md +1 -1
- package/docs/api/functions/createVaultCore.md +1 -1
- package/docs/api/functions/createVaultCoreDependencies.md +1 -1
- package/docs/api/functions/createVaultService.md +1 -1
- package/docs/api/functions/createWorkspaceStorage.md +1 -1
- package/docs/api/functions/deriveRootAgentId.md +1 -1
- package/docs/api/functions/deriveVaultWorkingKeyFromPassword.md +1 -1
- package/docs/api/functions/getDefaultWorkspaceDir.md +1 -1
- package/docs/api/functions/handleVaultAgentControlHttp.md +1 -1
- package/docs/api/functions/handleVaultAuditSse.md +1 -1
- package/docs/api/functions/handleVaultHttpDispatch.md +1 -1
- package/docs/api/functions/handleVaultPendingDispatchSse.md +1 -1
- package/docs/api/functions/initializeVaultCustody.md +1 -1
- package/docs/api/functions/listVaults.md +1 -1
- package/docs/api/functions/openOwnerSession.md +1 -1
- package/docs/api/functions/readVaultProfile.md +1 -1
- package/docs/api/functions/recoverVault.md +1 -1
- package/docs/api/functions/recoverVaultWorkingKey.md +1 -1
- package/docs/api/functions/restoreIdentity.md +1 -1
- package/docs/api/functions/updateVaultMetadata.md +1 -1
- package/docs/api/functions/writeVaultProfile.md +1 -1
- package/docs/api/interfaces/AgentClient.md +5 -5
- package/docs/api/interfaces/AgentDispatchIntent.md +1 -1
- package/docs/api/interfaces/AgentDispatchTransport.md +5 -5
- package/docs/api/interfaces/AgentIdentity.md +1 -1
- package/docs/api/interfaces/AgentIdentityRecord.md +2 -2
- package/docs/api/interfaces/AgentRequestRecord.md +93 -11
- package/docs/api/interfaces/AgentRuntimeManifest.md +1 -1
- package/docs/api/interfaces/AgentSecretGrant.md +3 -3
- package/docs/api/interfaces/AgentSigner.md +1 -1
- package/docs/api/interfaces/AuditEntry.md +9 -59
- package/docs/api/interfaces/CbioRuntime.md +1 -3
- package/docs/api/interfaces/CreateAgentClientOptions.md +1 -1
- package/docs/api/interfaces/CreateIdentityOptions.md +1 -1
- package/docs/api/interfaces/CreateOwnerClientOptions.md +1 -1
- package/docs/api/interfaces/CreatePersistentVaultCoreDependenciesOptions.md +1 -1
- package/docs/api/interfaces/CreateVaultOptions.md +1 -1
- package/docs/api/interfaces/CreatedVault.md +1 -1
- package/docs/api/interfaces/DefaultPolicyEngineOptions.md +1 -1
- package/docs/api/interfaces/DispatchAuthorization.md +3 -3
- package/docs/api/interfaces/DispatchInstruction.md +3 -3
- package/docs/api/interfaces/DispatchRequest.md +4 -4
- package/docs/api/interfaces/DispatchResult.md +2 -2
- package/docs/api/interfaces/IStorageProvider.md +1 -1
- package/docs/api/interfaces/InitializeVaultCustodyOptions.md +1 -1
- package/docs/api/interfaces/InitializedVaultCustody.md +1 -1
- package/docs/api/interfaces/OpenOwnerSessionOptions.md +1 -1
- package/docs/api/interfaces/OwnerAgentProvisionResult.md +1 -1
- package/docs/api/interfaces/OwnerAuditSubscription.md +3 -3
- package/docs/api/interfaces/OwnerClient.md +7 -7
- package/docs/api/interfaces/OwnerCreateSecretInput.md +1 -1
- package/docs/api/interfaces/OwnerPendingDispatchSubscription.md +1 -1
- package/docs/api/interfaces/OwnerRemoveSecretInput.md +1 -1
- package/docs/api/interfaces/OwnerRequestRecord.md +73 -11
- package/docs/api/interfaces/OwnerSensitiveActionConfirmation.md +1 -1
- package/docs/api/interfaces/OwnerSensitiveActionContext.md +1 -1
- package/docs/api/interfaces/OwnerSession.md +1 -1
- package/docs/api/interfaces/OwnerUpdateSecretInput.md +1 -1
- package/docs/api/interfaces/PendingDispatchEvent.md +1 -1
- package/docs/api/interfaces/RecoverVaultOptions.md +1 -1
- package/docs/api/interfaces/RecoveredVault.md +1 -1
- package/docs/api/interfaces/RequestRecord.md +8 -7
- package/docs/api/interfaces/RestoreIdentityOptions.md +1 -1
- package/docs/api/interfaces/SecretDestinationGrant.md +3 -3
- package/docs/api/interfaces/SecretRecord.md +7 -7
- package/docs/api/interfaces/Signer.md +1 -1
- package/docs/api/interfaces/VaultApproveDispatchInput.md +1 -1
- package/docs/api/interfaces/VaultAuditQueryInput.md +1 -1
- package/docs/api/interfaces/VaultCoreDependenciesOptions.md +1 -1
- package/docs/api/interfaces/VaultCreateAgentInput.md +1 -1
- package/docs/api/interfaces/VaultExportSecretInput.md +3 -3
- package/docs/api/interfaces/VaultGetRequestInput.md +1 -1
- package/docs/api/interfaces/VaultGrantAgentSecretInput.md +1 -1
- package/docs/api/interfaces/VaultGrantSecretDestinationInput.md +1 -1
- package/docs/api/interfaces/VaultImportAgentInput.md +1 -1
- package/docs/api/interfaces/VaultIssueSessionTokenInput.md +1 -1
- package/docs/api/interfaces/VaultListAgentsInput.md +1 -1
- package/docs/api/interfaces/VaultListGrantsInput.md +1 -1
- package/docs/api/interfaces/VaultListRequestsInput.md +1 -1
- package/docs/api/interfaces/VaultListSecretsInput.md +1 -1
- package/docs/api/interfaces/VaultMetadata.md +1 -1
- package/docs/api/interfaces/VaultObject.md +1 -1
- package/docs/api/interfaces/VaultPrincipal.md +1 -1
- package/docs/api/interfaces/VaultProfile.md +1 -1
- package/docs/api/interfaces/VaultReadAgentPrivateKeyInput.md +1 -1
- package/docs/api/interfaces/VaultReadSecretPlaintextInput.md +1 -1
- package/docs/api/interfaces/VaultRevokeAgentSecretInput.md +1 -1
- package/docs/api/interfaces/VaultRevokeSecretDestinationInput.md +1 -1
- package/docs/api/interfaces/VaultRevokeSessionTokenInput.md +1 -1
- package/docs/api/interfaces/VaultService.md +14 -14
- package/docs/api/interfaces/VaultUpdateAgentInput.md +1 -1
- package/docs/api/type-aliases/AgentId.md +1 -1
- package/docs/api/type-aliases/AgentRequestResult.md +1 -1
- package/docs/api/type-aliases/CbioRuntimeModule.md +1 -1
- package/docs/api/type-aliases/DispatchApprovalDecision.md +1 -1
- package/docs/api/type-aliases/GrantStatus.md +1 -1
- package/docs/api/type-aliases/SecretAlias.md +7 -0
- package/docs/api/type-aliases/SecretId.md +7 -0
- package/docs/api/type-aliases/SecretLifecycleStatus.md +1 -1
- package/docs/api/type-aliases/VaultId.md +7 -0
- package/docs/api/type-aliases/VaultPrincipalKind.md +1 -1
- package/docs/api/variables/DEFAULT_VAULT_KEY_CUSTODY_BLOB_KEY.md +1 -1
- package/docs/zh/README.md +33 -66
- package/package.json +1 -1
- package/docs/api/enumerations/AuditOperation.md +0 -101
- package/docs/api/interfaces/AgentVisibleRequestRecord.md +0 -59
- package/docs/api/interfaces/AgentVisibleSecretRecord.md +0 -65
- package/docs/api/interfaces/OwnerVisibleRequestRecord.md +0 -79
- package/docs/api/interfaces/SecretAlias.md +0 -11
- package/docs/api/interfaces/SecretId.md +0 -11
- package/docs/api/interfaces/VaultId.md +0 -11
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
2
|
import * as crypto from "node:crypto";
|
|
3
3
|
import * as fs from "node:fs";
|
|
4
|
-
import
|
|
4
|
+
import { createRequire } from "node:module";
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
5
6
|
import { DispatchStatus, } from "./contracts.js";
|
|
6
7
|
import { DefaultPolicyEngine, HttpDispatchExecutor, InMemoryReplayGuard, RandomIdGenerator, SignatureAgentProofVerifier, SystemClock, } from "./defaults.js";
|
|
7
8
|
export class SqliteSecretRepository {
|
|
@@ -15,21 +16,21 @@ export class SqliteSecretRepository {
|
|
|
15
16
|
VALUES (?, ?, ?, ?)
|
|
16
17
|
ON CONFLICT(secret_id) DO UPDATE SET record = excluded.record, alias = excluded.alias
|
|
17
18
|
`);
|
|
18
|
-
stmt.run(record.secret_id
|
|
19
|
+
stmt.run(record.secret_id, record.vault_id, record.alias, JSON.stringify(record));
|
|
19
20
|
}
|
|
20
21
|
async delete(secret_id) {
|
|
21
|
-
this.db.prepare(`DELETE FROM secrets WHERE secret_id = ?`).run(secret_id
|
|
22
|
+
this.db.prepare(`DELETE FROM secrets WHERE secret_id = ?`).run(secret_id);
|
|
22
23
|
}
|
|
23
24
|
async getByAlias(alias) {
|
|
24
|
-
const row = this.db.prepare(`SELECT record FROM secrets WHERE alias = ?`).get(alias
|
|
25
|
+
const row = this.db.prepare(`SELECT record FROM secrets WHERE alias = ?`).get(alias);
|
|
25
26
|
return row ? JSON.parse(row.record) : null;
|
|
26
27
|
}
|
|
27
28
|
async list(vault_id) {
|
|
28
|
-
const rows = this.db.prepare(`SELECT record FROM secrets WHERE vault_id = ?`).all(vault_id
|
|
29
|
+
const rows = this.db.prepare(`SELECT record FROM secrets WHERE vault_id = ?`).all(vault_id);
|
|
29
30
|
return rows.map(r => JSON.parse(r.record));
|
|
30
31
|
}
|
|
31
32
|
async getById(secret_id) {
|
|
32
|
-
const row = this.db.prepare(`SELECT record FROM secrets WHERE secret_id = ?`).get(secret_id
|
|
33
|
+
const row = this.db.prepare(`SELECT record FROM secrets WHERE secret_id = ?`).get(secret_id);
|
|
33
34
|
return row ? JSON.parse(row.record) : null;
|
|
34
35
|
}
|
|
35
36
|
}
|
|
@@ -52,10 +53,10 @@ export class SqliteSecretCustody {
|
|
|
52
53
|
tag: tag.toString('hex'),
|
|
53
54
|
ciphertext: encrypted.toString('hex')
|
|
54
55
|
});
|
|
55
|
-
this.db.prepare(`INSERT INTO custody (secret_id, encrypted_payload) VALUES (?, ?) ON CONFLICT(secret_id) DO UPDATE SET encrypted_payload = excluded.encrypted_payload`).run(secret_id
|
|
56
|
+
this.db.prepare(`INSERT INTO custody (secret_id, encrypted_payload) VALUES (?, ?) ON CONFLICT(secret_id) DO UPDATE SET encrypted_payload = excluded.encrypted_payload`).run(secret_id, payload);
|
|
56
57
|
}
|
|
57
58
|
async load(secret_id) {
|
|
58
|
-
const row = this.db.prepare(`SELECT encrypted_payload FROM custody WHERE secret_id = ?`).get(secret_id
|
|
59
|
+
const row = this.db.prepare(`SELECT encrypted_payload FROM custody WHERE secret_id = ?`).get(secret_id);
|
|
59
60
|
if (!row)
|
|
60
61
|
return null;
|
|
61
62
|
try {
|
|
@@ -72,7 +73,7 @@ export class SqliteSecretCustody {
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
async delete(secret_id) {
|
|
75
|
-
this.db.prepare(`DELETE FROM custody WHERE secret_id = ?`).run(secret_id
|
|
76
|
+
this.db.prepare(`DELETE FROM custody WHERE secret_id = ?`).run(secret_id);
|
|
76
77
|
}
|
|
77
78
|
}
|
|
78
79
|
export class SqliteAuditLog {
|
|
@@ -83,8 +84,8 @@ export class SqliteAuditLog {
|
|
|
83
84
|
this.db = db;
|
|
84
85
|
}
|
|
85
86
|
async append(entry) {
|
|
86
|
-
this.db.prepare(`INSERT INTO audit_logs (event_id, vault_id,
|
|
87
|
-
.run(entry.event_id, entry.vault_id, entry.
|
|
87
|
+
this.db.prepare(`INSERT INTO audit_logs (event_id, vault_id, function_name, actor_id, root_agent_id, secret_id, request_id, ts, entry) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
88
|
+
.run(entry.event_id, entry.vault_id, entry.function_name, entry.actor.id, entry.input?.root_agent_id || null, entry.input?.secret_id || null, entry.input?.request_id || null, entry.ts, JSON.stringify(entry));
|
|
88
89
|
const subs = this.subscribers.get(entry.vault_id);
|
|
89
90
|
if (subs) {
|
|
90
91
|
for (const cb of subs)
|
|
@@ -95,17 +96,13 @@ export class SqliteAuditLog {
|
|
|
95
96
|
let sql = `SELECT entry FROM audit_logs WHERE vault_id = ?`;
|
|
96
97
|
const params = [query.vault_id];
|
|
97
98
|
if (query.actor_id) {
|
|
98
|
-
sql += ` AND
|
|
99
|
-
params.push(
|
|
99
|
+
sql += ` AND actor_id = ?`;
|
|
100
|
+
params.push(query.actor_id);
|
|
100
101
|
}
|
|
101
102
|
if (query.root_agent_id) {
|
|
102
103
|
sql += ` AND root_agent_id = ?`;
|
|
103
104
|
params.push(query.root_agent_id);
|
|
104
105
|
}
|
|
105
|
-
if (query.secret_alias) {
|
|
106
|
-
sql += ` AND secret_alias = ?`;
|
|
107
|
-
params.push(query.secret_alias);
|
|
108
|
-
}
|
|
109
106
|
if (query.secret_id) {
|
|
110
107
|
sql += ` AND secret_id = ?`;
|
|
111
108
|
params.push(query.secret_id);
|
|
@@ -118,38 +115,57 @@ export class SqliteAuditLog {
|
|
|
118
115
|
sql += ` AND ts >= ?`;
|
|
119
116
|
params.push(query.since);
|
|
120
117
|
}
|
|
121
|
-
sql += ` ORDER BY ts ASC LIMIT 1000`;
|
|
118
|
+
sql += ` ORDER BY ts ASC LIMIT 1000`;
|
|
122
119
|
const rows = this.db.prepare(sql).all(...params);
|
|
123
120
|
return rows.map(r => JSON.parse(r.entry));
|
|
124
121
|
}
|
|
125
122
|
subscribe(vault_id, subscription) {
|
|
126
|
-
|
|
123
|
+
const replay = this.db.prepare(`SELECT entry FROM audit_logs WHERE vault_id = ? ORDER BY ts ASC LIMIT 1000`)
|
|
124
|
+
.all(vault_id);
|
|
125
|
+
for (const row of replay) {
|
|
126
|
+
const entry = JSON.parse(row.entry);
|
|
127
|
+
if (matchesAuditSubscription(entry, subscription)) {
|
|
128
|
+
subscription.onEvent(entry);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
let subs = this.subscribers.get(vault_id);
|
|
127
132
|
if (!subs) {
|
|
128
133
|
subs = new Set();
|
|
129
|
-
this.subscribers.set(vault_id
|
|
134
|
+
this.subscribers.set(vault_id, subs);
|
|
130
135
|
}
|
|
131
136
|
const callback = (entry) => {
|
|
132
137
|
if (subscription.afterEventId && entry.event_id <= subscription.afterEventId)
|
|
133
138
|
return;
|
|
134
|
-
if (subscription.
|
|
139
|
+
if (subscription.function_names && !subscription.function_names.includes(entry.function_name))
|
|
135
140
|
return;
|
|
136
|
-
if (subscription.root_agent_id && entry.root_agent_id !== subscription.root_agent_id)
|
|
141
|
+
if (subscription.root_agent_id && entry.input?.root_agent_id !== subscription.root_agent_id)
|
|
137
142
|
return;
|
|
138
|
-
if (subscription.request_id && entry.request_id !== subscription.request_id)
|
|
143
|
+
if (subscription.request_id && entry.input?.request_id !== subscription.request_id)
|
|
139
144
|
return;
|
|
140
145
|
subscription.onEvent(entry);
|
|
141
146
|
};
|
|
142
147
|
subs.add(callback);
|
|
143
148
|
return () => {
|
|
144
|
-
const current = this.subscribers.get(vault_id
|
|
149
|
+
const current = this.subscribers.get(vault_id);
|
|
145
150
|
if (current) {
|
|
146
151
|
current.delete(callback);
|
|
147
152
|
if (current.size === 0)
|
|
148
|
-
this.subscribers.delete(vault_id
|
|
153
|
+
this.subscribers.delete(vault_id);
|
|
149
154
|
}
|
|
150
155
|
};
|
|
151
156
|
}
|
|
152
157
|
}
|
|
158
|
+
function matchesAuditSubscription(entry, subscription) {
|
|
159
|
+
if (subscription.afterEventId && entry.event_id <= subscription.afterEventId)
|
|
160
|
+
return false;
|
|
161
|
+
if (subscription.function_names && !subscription.function_names.includes(entry.function_name))
|
|
162
|
+
return false;
|
|
163
|
+
if (subscription.root_agent_id && entry.input?.root_agent_id !== subscription.root_agent_id)
|
|
164
|
+
return false;
|
|
165
|
+
if (subscription.request_id && entry.input?.request_id !== subscription.request_id)
|
|
166
|
+
return false;
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
153
169
|
export class SqliteAgentIdentityRegistry {
|
|
154
170
|
db;
|
|
155
171
|
custody;
|
|
@@ -160,12 +176,12 @@ export class SqliteAgentIdentityRegistry {
|
|
|
160
176
|
async register(identity) {
|
|
161
177
|
const { private_key, ...metadata } = identity;
|
|
162
178
|
if (private_key) {
|
|
163
|
-
await this.custody.store(
|
|
179
|
+
await this.custody.store(identity.root_agent_id, private_key);
|
|
164
180
|
}
|
|
165
|
-
this.db.prepare(`INSERT INTO agents (vault_id, root_agent_id, record) VALUES (?, ?, ?) ON CONFLICT(vault_id, root_agent_id) DO UPDATE SET record = excluded.record`).run(identity.vault_id
|
|
181
|
+
this.db.prepare(`INSERT INTO agents (vault_id, root_agent_id, record) VALUES (?, ?, ?) ON CONFLICT(vault_id, root_agent_id) DO UPDATE SET record = excluded.record`).run(identity.vault_id, identity.root_agent_id, JSON.stringify(metadata));
|
|
166
182
|
}
|
|
167
183
|
async get(vault_id, root_agent_id) {
|
|
168
|
-
const row = this.db.prepare(`SELECT record FROM agents WHERE vault_id = ? AND root_agent_id = ?`).get(vault_id
|
|
184
|
+
const row = this.db.prepare(`SELECT record FROM agents WHERE vault_id = ? AND root_agent_id = ?`).get(vault_id, root_agent_id);
|
|
169
185
|
if (!row)
|
|
170
186
|
return null;
|
|
171
187
|
let record = JSON.parse(row.record);
|
|
@@ -173,28 +189,28 @@ export class SqliteAgentIdentityRegistry {
|
|
|
173
189
|
if (record.private_key) {
|
|
174
190
|
const pk = record.private_key;
|
|
175
191
|
delete record.private_key;
|
|
176
|
-
await this.custody.store(
|
|
177
|
-
this.db.prepare(`UPDATE agents SET record = ? WHERE vault_id = ? AND root_agent_id = ?`).run(JSON.stringify(record), vault_id
|
|
192
|
+
await this.custody.store(root_agent_id, pk);
|
|
193
|
+
this.db.prepare(`UPDATE agents SET record = ? WHERE vault_id = ? AND root_agent_id = ?`).run(JSON.stringify(record), vault_id, root_agent_id);
|
|
178
194
|
}
|
|
179
195
|
else {
|
|
180
|
-
const private_key = await this.custody.load(
|
|
196
|
+
const private_key = await this.custody.load(root_agent_id);
|
|
181
197
|
if (private_key)
|
|
182
198
|
record.private_key = private_key;
|
|
183
199
|
}
|
|
184
200
|
return record;
|
|
185
201
|
}
|
|
186
202
|
async list(vault_id) {
|
|
187
|
-
const rows = this.db.prepare(`SELECT record FROM agents WHERE vault_id = ?`).all(vault_id
|
|
203
|
+
const rows = this.db.prepare(`SELECT record FROM agents WHERE vault_id = ?`).all(vault_id);
|
|
188
204
|
return Promise.all(rows.map(async (r) => {
|
|
189
205
|
let record = JSON.parse(r.record);
|
|
190
206
|
if (record.private_key) {
|
|
191
207
|
const pk = record.private_key;
|
|
192
208
|
delete record.private_key;
|
|
193
|
-
await this.custody.store(
|
|
194
|
-
this.db.prepare(`UPDATE agents SET record = ? WHERE vault_id = ? AND root_agent_id = ?`).run(JSON.stringify(record), vault_id
|
|
209
|
+
await this.custody.store(record.root_agent_id, pk);
|
|
210
|
+
this.db.prepare(`UPDATE agents SET record = ? WHERE vault_id = ? AND root_agent_id = ?`).run(JSON.stringify(record), vault_id, record.root_agent_id);
|
|
195
211
|
}
|
|
196
212
|
else {
|
|
197
|
-
const private_key = await this.custody.load(
|
|
213
|
+
const private_key = await this.custody.load(record.root_agent_id);
|
|
198
214
|
if (private_key)
|
|
199
215
|
record.private_key = private_key;
|
|
200
216
|
}
|
|
@@ -208,15 +224,15 @@ export class SqliteAgentSecretGrantRegistry {
|
|
|
208
224
|
this.db = db;
|
|
209
225
|
}
|
|
210
226
|
async upsert(grant) {
|
|
211
|
-
this.db.prepare(`INSERT INTO grants (vault_id, root_agent_id, secret_id, record) VALUES (?, ?, ?, ?) ON CONFLICT(vault_id, root_agent_id, secret_id) DO UPDATE SET record = excluded.record`).run(grant.vault_id
|
|
227
|
+
this.db.prepare(`INSERT INTO grants (vault_id, root_agent_id, secret_id, record) VALUES (?, ?, ?, ?) ON CONFLICT(vault_id, root_agent_id, secret_id) DO UPDATE SET record = excluded.record`).run(grant.vault_id, grant.root_agent_id, grant.secret_id, JSON.stringify(grant));
|
|
212
228
|
}
|
|
213
229
|
async get(vault_id, root_agent_id, secret_id) {
|
|
214
|
-
const row = this.db.prepare(`SELECT record FROM grants WHERE vault_id = ? AND root_agent_id = ? AND secret_id = ?`).get(vault_id
|
|
230
|
+
const row = this.db.prepare(`SELECT record FROM grants WHERE vault_id = ? AND root_agent_id = ? AND secret_id = ?`).get(vault_id, root_agent_id, secret_id);
|
|
215
231
|
return row ? JSON.parse(row.record) : null;
|
|
216
232
|
}
|
|
217
233
|
async list(vault_id, root_agent_id) {
|
|
218
234
|
let sql = `SELECT record FROM grants WHERE vault_id = ?`;
|
|
219
|
-
const params = [vault_id
|
|
235
|
+
const params = [vault_id];
|
|
220
236
|
if (root_agent_id) {
|
|
221
237
|
sql += ` AND root_agent_id = ?`;
|
|
222
238
|
params.push(root_agent_id);
|
|
@@ -225,7 +241,7 @@ export class SqliteAgentSecretGrantRegistry {
|
|
|
225
241
|
return rows.map(r => JSON.parse(r.record));
|
|
226
242
|
}
|
|
227
243
|
async delete(vault_id, root_agent_id, secret_id) {
|
|
228
|
-
this.db.prepare(`DELETE FROM grants WHERE vault_id = ? AND root_agent_id = ? AND secret_id = ?`).run(vault_id
|
|
244
|
+
this.db.prepare(`DELETE FROM grants WHERE vault_id = ? AND root_agent_id = ? AND secret_id = ?`).run(vault_id, root_agent_id, secret_id);
|
|
229
245
|
}
|
|
230
246
|
}
|
|
231
247
|
export class SqliteSecretDestinationGrantRegistry {
|
|
@@ -234,24 +250,24 @@ export class SqliteSecretDestinationGrantRegistry {
|
|
|
234
250
|
this.db = db;
|
|
235
251
|
}
|
|
236
252
|
async upsert(grant) {
|
|
237
|
-
this.db.prepare(`INSERT INTO destination_grants (vault_id, secret_id, site_id, record) VALUES (?, ?, ?, ?) ON CONFLICT(vault_id, secret_id, site_id) DO UPDATE SET record = excluded.record`).run(grant.vault_id
|
|
253
|
+
this.db.prepare(`INSERT INTO destination_grants (vault_id, secret_id, site_id, record) VALUES (?, ?, ?, ?) ON CONFLICT(vault_id, secret_id, site_id) DO UPDATE SET record = excluded.record`).run(grant.vault_id, grant.secret_id, grant.site_id, JSON.stringify(grant));
|
|
238
254
|
}
|
|
239
255
|
async get(vault_id, secret_id, site_id) {
|
|
240
|
-
const row = this.db.prepare(`SELECT record FROM destination_grants WHERE vault_id = ? AND secret_id = ? AND site_id = ?`).get(vault_id
|
|
256
|
+
const row = this.db.prepare(`SELECT record FROM destination_grants WHERE vault_id = ? AND secret_id = ? AND site_id = ?`).get(vault_id, secret_id, site_id);
|
|
241
257
|
return row ? JSON.parse(row.record) : null;
|
|
242
258
|
}
|
|
243
259
|
async list(vault_id, secret_id) {
|
|
244
260
|
let sql = `SELECT record FROM destination_grants WHERE vault_id = ?`;
|
|
245
|
-
const params = [vault_id
|
|
261
|
+
const params = [vault_id];
|
|
246
262
|
if (secret_id) {
|
|
247
263
|
sql += ` AND secret_id = ?`;
|
|
248
|
-
params.push(secret_id
|
|
264
|
+
params.push(secret_id);
|
|
249
265
|
}
|
|
250
266
|
const rows = this.db.prepare(sql).all(...params);
|
|
251
267
|
return rows.map(r => JSON.parse(r.record));
|
|
252
268
|
}
|
|
253
269
|
async delete(vault_id, secret_id, site_id) {
|
|
254
|
-
this.db.prepare(`DELETE FROM destination_grants WHERE vault_id = ? AND secret_id = ? AND site_id = ?`).run(vault_id
|
|
270
|
+
this.db.prepare(`DELETE FROM destination_grants WHERE vault_id = ? AND secret_id = ? AND site_id = ?`).run(vault_id, secret_id, site_id);
|
|
255
271
|
}
|
|
256
272
|
}
|
|
257
273
|
export class SqliteRequestRecordRegistry {
|
|
@@ -262,20 +278,20 @@ export class SqliteRequestRecordRegistry {
|
|
|
262
278
|
this.db = db;
|
|
263
279
|
}
|
|
264
280
|
async save(record) {
|
|
265
|
-
this.db.prepare(`INSERT INTO requests (vault_id, request_id, root_agent_id, secret_id, record) VALUES (?, ?, ?, ?, ?) ON CONFLICT(request_id) DO UPDATE SET record = excluded.record, secret_id = excluded.secret_id`).run(record.vault_id
|
|
266
|
-
const subs = this.subscribers.get(record.vault_id
|
|
281
|
+
this.db.prepare(`INSERT INTO requests (vault_id, request_id, root_agent_id, secret_id, record) VALUES (?, ?, ?, ?, ?) ON CONFLICT(request_id) DO UPDATE SET record = excluded.record, secret_id = excluded.secret_id`).run(record.vault_id, record.request_id, record.root_agent_id, record.request.secret_id ?? null, JSON.stringify(record));
|
|
282
|
+
const subs = this.subscribers.get(record.vault_id);
|
|
267
283
|
if (subs) {
|
|
268
284
|
for (const cb of subs)
|
|
269
285
|
cb(record);
|
|
270
286
|
}
|
|
271
287
|
}
|
|
272
288
|
async get(vault_id, request_id) {
|
|
273
|
-
const row = this.db.prepare(`SELECT record FROM requests WHERE vault_id = ? AND request_id = ?`).get(vault_id
|
|
289
|
+
const row = this.db.prepare(`SELECT record FROM requests WHERE vault_id = ? AND request_id = ?`).get(vault_id, request_id);
|
|
274
290
|
return row ? JSON.parse(row.record) : null;
|
|
275
291
|
}
|
|
276
292
|
async list(vault_id, root_agent_id) {
|
|
277
293
|
let sql = `SELECT record FROM requests WHERE vault_id = ?`;
|
|
278
|
-
const params = [vault_id
|
|
294
|
+
const params = [vault_id];
|
|
279
295
|
if (root_agent_id) {
|
|
280
296
|
sql += ` AND root_agent_id = ?`;
|
|
281
297
|
params.push(root_agent_id);
|
|
@@ -284,7 +300,7 @@ export class SqliteRequestRecordRegistry {
|
|
|
284
300
|
return rows.map(r => JSON.parse(r.record));
|
|
285
301
|
}
|
|
286
302
|
subscribePending(vault_id, subscription) {
|
|
287
|
-
const rows = this.db.prepare(`SELECT record FROM requests WHERE vault_id = ?`).all(vault_id
|
|
303
|
+
const rows = this.db.prepare(`SELECT record FROM requests WHERE vault_id = ?`).all(vault_id);
|
|
288
304
|
const replay = rows.map(r => JSON.parse(r.record))
|
|
289
305
|
.filter((record) => record.execution.status === DispatchStatus.AWAITING_APPROVAL && !!record.pending_dispatch_event)
|
|
290
306
|
.map((record) => ({
|
|
@@ -296,10 +312,10 @@ export class SqliteRequestRecordRegistry {
|
|
|
296
312
|
.sort((a, b) => a.event_id.localeCompare(b.event_id));
|
|
297
313
|
for (const event of replay)
|
|
298
314
|
subscription.onEvent(event);
|
|
299
|
-
let subs = this.subscribers.get(vault_id
|
|
315
|
+
let subs = this.subscribers.get(vault_id);
|
|
300
316
|
if (!subs) {
|
|
301
317
|
subs = new Set();
|
|
302
|
-
this.subscribers.set(vault_id
|
|
318
|
+
this.subscribers.set(vault_id, subs);
|
|
303
319
|
}
|
|
304
320
|
const callback = (record) => {
|
|
305
321
|
if (record.execution.status !== DispatchStatus.AWAITING_APPROVAL || !record.pending_dispatch_event)
|
|
@@ -315,11 +331,11 @@ export class SqliteRequestRecordRegistry {
|
|
|
315
331
|
};
|
|
316
332
|
subs.add(callback);
|
|
317
333
|
return () => {
|
|
318
|
-
const current = this.subscribers.get(vault_id
|
|
334
|
+
const current = this.subscribers.get(vault_id);
|
|
319
335
|
if (current) {
|
|
320
336
|
current.delete(callback);
|
|
321
337
|
if (current.size === 0)
|
|
322
|
-
this.subscribers.delete(vault_id
|
|
338
|
+
this.subscribers.delete(vault_id);
|
|
323
339
|
}
|
|
324
340
|
};
|
|
325
341
|
}
|
|
@@ -376,6 +392,7 @@ const dbCache = new Map();
|
|
|
376
392
|
function initDb(baseDir) {
|
|
377
393
|
if (dbCache.has(baseDir))
|
|
378
394
|
return dbCache.get(baseDir);
|
|
395
|
+
const Database = require("better-sqlite3");
|
|
379
396
|
const dbPath = path.join(baseDir, "vault.sqlite");
|
|
380
397
|
const db = new Database(dbPath);
|
|
381
398
|
db.pragma('journal_mode = WAL');
|
|
@@ -412,7 +429,17 @@ function initDb(baseDir) {
|
|
|
412
429
|
db.exec(`
|
|
413
430
|
CREATE TABLE IF NOT EXISTS secrets (secret_id TEXT PRIMARY KEY, vault_id TEXT, alias TEXT UNIQUE, record TEXT);
|
|
414
431
|
CREATE TABLE IF NOT EXISTS custody (secret_id TEXT PRIMARY KEY, encrypted_payload TEXT);
|
|
415
|
-
CREATE TABLE IF NOT EXISTS audit_logs (
|
|
432
|
+
CREATE TABLE IF NOT EXISTS audit_logs (
|
|
433
|
+
event_id TEXT PRIMARY KEY,
|
|
434
|
+
vault_id TEXT,
|
|
435
|
+
function_name TEXT,
|
|
436
|
+
actor_id TEXT,
|
|
437
|
+
root_agent_id TEXT,
|
|
438
|
+
secret_id TEXT,
|
|
439
|
+
request_id TEXT,
|
|
440
|
+
ts TEXT,
|
|
441
|
+
entry TEXT
|
|
442
|
+
);
|
|
416
443
|
CREATE TABLE IF NOT EXISTS agents (vault_id TEXT, root_agent_id TEXT, record TEXT, PRIMARY KEY(vault_id, root_agent_id));
|
|
417
444
|
CREATE TABLE IF NOT EXISTS grants (vault_id TEXT, root_agent_id TEXT, secret_id TEXT, record TEXT, PRIMARY KEY(vault_id, root_agent_id, secret_id));
|
|
418
445
|
CREATE TABLE IF NOT EXISTS destination_grants (vault_id TEXT, secret_id TEXT, site_id TEXT, record TEXT, PRIMARY KEY(vault_id, secret_id, site_id));
|
|
@@ -433,7 +460,7 @@ export function createPersistentVaultCoreDependencies(storage, options) {
|
|
|
433
460
|
const agentRecords = new SqliteAgentIdentityRegistry(db, custody);
|
|
434
461
|
const sessionTokenRegistry = new SqliteSessionTokenRegistry(db);
|
|
435
462
|
return {
|
|
436
|
-
vault_id:
|
|
463
|
+
vault_id: options.vault_id,
|
|
437
464
|
ids: new RandomIdGenerator(),
|
|
438
465
|
clock: new SystemClock(),
|
|
439
466
|
agentRecords,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/vault-core/persistence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/vault-core/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,OAAO,EACL,cAAc,GAiBf,MAAM,gBAAgB,CAAC;AAcxB,OAAO,EACH,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,2BAA2B,EAE3B,WAAW,GACd,MAAM,eAAe,CAAC;AAIvB,MAAM,OAAO,sBAAsB;IACb;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,MAAoB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAI5B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACpF,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,SAAmB;QAC9B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAmC,CAAC;QACvH,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,QAAiB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAyB,CAAC;QACpH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,SAAmB;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAmC,CAAC;QAC/H,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;CACF;AAED,yBAAyB;AACzB,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC,MAAM,OAAO,mBAAmB;IAEV;IADZ,SAAS,CAAS;IAC1B,YAAoB,EAAqB,EAAE,UAAkB;QAAzC,OAAE,GAAF,EAAE,CAAmB;QACvC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,SAAmB,EAAE,SAAiB;QAChD,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACtB,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;YACxB,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sJAAsJ,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClM,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,SAAmB;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC,GAAG,CAAC,SAAS,CAA8C,CAAC;QACrJ,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACxE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACvF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,SAAmB;QAC9B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5E,CAAC;CACF;AAED,MAAM,OAAO,cAAc;IAGL;IAFZ,MAAM,CAAC,WAAW,GAAG,IAAI,GAAG,EAA4C,CAAC;IACjF,IAAY,WAAW,KAAK,OAAO,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IAChE,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAC7C,KAAK,CAAC,MAAM,CAAC,KAAiB;QAC5B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0JAA0J,CAAC;aACxK,GAAG,CACF,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,KAAK,CAAC,EAAE,EACd,KAAK,CAAC,KAAK,EAAE,aAAa,IAAI,IAAI,EAClC,KAAK,CAAC,KAAK,EAAE,SAAS,IAAI,IAAI,EAC9B,KAAK,CAAC,KAAK,EAAE,UAAU,IAAI,IAAI,EAC/B,KAAK,CAAC,EAAE,EACR,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CACtB,CAAC;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,MAAM,EAAE,IAAI,IAAI;gBAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,KAAiB;QAC3B,IAAI,GAAG,GAAG,iDAAiD,CAAC;QAC5D,MAAM,MAAM,GAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAAC,GAAG,IAAI,mBAAmB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAAC,CAAC;QAChF,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YAAC,GAAG,IAAI,wBAAwB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAAC,CAAC;QAC/F,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAAC,GAAG,IAAI,oBAAoB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QACnF,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YAAC,GAAG,IAAI,qBAAqB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAAC,CAAC;QACtF,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAAC,GAAG,IAAI,cAAc,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QACrE,GAAG,IAAI,6BAA6B,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAwB,CAAC;QACxE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,SAAS,CAAC,QAAiB,EAAE,YAAoC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4EAA4E,CAAC;aACzG,GAAG,CAAC,QAAQ,CAAwB,CAAC;QACxC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAe,CAAC;YAClD,IAAI,wBAAwB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;gBAClD,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAAE,EAAE;YACrC,IAAI,YAAY,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,YAAY;gBAAE,OAAO;YACrF,IAAI,YAAY,CAAC,cAAc,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;gBAAE,OAAO;YACtG,IAAI,YAAY,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,EAAE,aAAa,KAAK,YAAY,CAAC,aAAa;gBAAE,OAAO;YACpG,IAAI,YAAY,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,KAAK,YAAY,CAAC,UAAU;gBAAE,OAAO;YAC3F,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,OAAO,GAAG,EAAE;YACV,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;oBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;;AAGH,SAAS,wBAAwB,CAAC,KAAiB,EAAE,YAAoC;IACvF,IAAI,YAAY,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAC3F,IAAI,YAAY,CAAC,cAAc,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5G,IAAI,YAAY,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,EAAE,aAAa,KAAK,YAAY,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IAC1G,IAAI,YAAY,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,KAAK,YAAY,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACjG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,2BAA2B;IAClB;IAA+B;IAAnD,YAAoB,EAAqB,EAAU,OAAsB;QAArD,OAAE,GAAF,EAAE,CAAmB;QAAU,YAAO,GAAP,OAAO,CAAe;IAAG,CAAC;IAC7E,KAAK,CAAC,QAAQ,CAAC,QAA6B;QAC1C,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAC9C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mJAAmJ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChP,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,QAAiB,EAAE,aAAqB;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAmC,CAAC;QACjK,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpC,0FAA0F;QAC1F,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;YAC9B,OAAO,MAAM,CAAC,WAAW,CAAC;YAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAChJ,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3D,IAAI,WAAW;gBAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;QACpD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,QAAiB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAyB,CAAC;QACnH,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC9B,OAAO,MAAM,CAAC,WAAW,CAAC;gBAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;gBACnD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;YACzJ,CAAC;iBAAM,CAAC;gBACJ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAClE,IAAI,WAAW;oBAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;YACtD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAED,MAAM,OAAO,8BAA8B;IACrB;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAC7C,KAAK,CAAC,MAAM,CAAC,KAAuB;QAClC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4KAA4K,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACjR,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,QAAiB,EAAE,aAAqB,EAAE,SAAmB;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sFAAsF,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAmC,CAAC;QAC9L,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,QAAiB,EAAE,aAAsB;QAClD,IAAI,GAAG,GAAG,8CAA8C,CAAC;QACzD,MAAM,MAAM,GAAU,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,aAAa,EAAE,CAAC;YAAC,GAAG,IAAI,wBAAwB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAAC,CAAC;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAyB,CAAC;QACzE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,QAAiB,EAAE,aAAqB,EAAE,SAAmB;QACxE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,+EAA+E,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IAC3I,CAAC;CACF;AAED,MAAM,OAAO,oCAAoC;IAC3B;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAC7C,KAAK,CAAC,MAAM,CAAC,KAA6B;QACxC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4KAA4K,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3Q,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,QAAiB,EAAE,SAAmB,EAAE,OAAe;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4FAA4F,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAmC,CAAC;QAC9L,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,QAAiB,EAAE,SAAoB;QAChD,IAAI,GAAG,GAAG,0DAA0D,CAAC;QACrE,MAAM,MAAM,GAAU,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,SAAS,EAAE,CAAC;YAAC,GAAG,IAAI,oBAAoB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAyB,CAAC;QACzE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,QAAiB,EAAE,SAAmB,EAAE,OAAe;QAClE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qFAAqF,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3I,CAAC;CACF;AAED,MAAM,OAAO,2BAA2B;IAGlB;IAFZ,MAAM,CAAC,WAAW,GAAG,IAAI,GAAG,EAAgD,CAAC;IACrF,IAAY,WAAW,KAAK,OAAO,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7E,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAC7C,KAAK,CAAC,IAAI,CAAC,MAAqB;QAC9B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qMAAqM,CAAC,CAAC,GAAG,CACxN,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,EAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CACvB,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,MAAM,EAAE,IAAI,IAAI;gBAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,QAAiB,EAAE,UAAkB;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mEAAmE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAmC,CAAC;QAC7J,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,QAAiB,EAAE,aAAsB;QAClD,IAAI,GAAG,GAAG,gDAAgD,CAAC;QAC3D,MAAM,MAAM,GAAU,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,aAAa,EAAE,CAAC;YAAC,GAAG,IAAI,wBAAwB,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAAC,CAAC;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAyB,CAAC;QACzE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,gBAAgB,CAAC,QAAiB,EAAE,YAA8C;QAChF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,gDAAgD,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAyB,CAAC;QACrH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAkB,CAAC;aAChE,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,cAAc,CAAC,iBAAiB,IAAI,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC;aACnH,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAChB,QAAQ,EAAE,MAAM,CAAC,sBAAuB,CAAC,QAAQ;YACjD,UAAU,EAAE,MAAM,CAAC,sBAAuB,CAAC,UAAU;YACrD,MAAM;SACkB,CAAA,CAAC;aAC1B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC;aAC3F,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAExD,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,MAAqB,EAAE,EAAE;YACzC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,cAAc,CAAC,iBAAiB,IAAI,CAAC,MAAM,CAAC,sBAAsB;gBAAE,OAAO;YAC3G,MAAM,KAAK,GAAyB;gBAClC,QAAQ,EAAE,MAAM,CAAC,sBAAsB,CAAC,QAAQ;gBAChD,UAAU,EAAE,MAAM,CAAC,sBAAsB,CAAC,UAAU;gBACpD,MAAM;aACP,CAAC;YACF,IAAI,YAAY,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,YAAY;gBAAE,OAAO;YACrF,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,OAAO,GAAG,EAAE;YACV,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACzB,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;oBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;;AAGH,MAAM,OAAO,0BAA0B;IACjB;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAC7C,KAAK,CAAC,KAAK,CAAC,aAAqB;QAC/B,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAuB,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACjG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,sKAAsK,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1O,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,KAAa,EAAE,aAAqB;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kEAAkE,CAAC,CAAC,GAAG,CAAC,KAAK,CAA0D,CAAC;QACpK,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC1D,IAAI,GAAG,CAAC,aAAa,KAAK,aAAa;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QACxF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IACrD,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,aAAsB;QAC/B,IAAI,GAAG,GAAG,mCAAmC,CAAC;QAC9C,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,IAAI,aAAa,EAAE,CAAC;YAAC,GAAG,IAAI,0BAA0B,CAAC;YAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAAC,CAAC;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAyB,CAAC;QACzE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,CAAC,MAAM,kCAAkC,GAAG,mBAAmB,CAAC;AAYtE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAA+G,EAAE,OAA+B;IAC3L,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IACzD,MAAM,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAA0D,EAAE,WAAmB;IAC1H,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC3D,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnD,OAAO,UAAU,CAAC;AACpB,CAAC;AAYD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;AAErD,SAAS,MAAM,CAAC,OAAe;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;IACvD,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEhC,+CAA+C;IAC/C,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,gHAAgH,CAAC,CAAC,GAAG,EAAuB,CAAC;IAE7K,IAAI,YAAY,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAC9E,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClB,uBAAuB;YACvB,EAAE,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YACnD,EAAE,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;YAE3E,uBAAuB;YACvB,EAAE,CAAC,IAAI,CAAC,uIAAuI,CAAC,CAAC;YACjJ,EAAE,CAAC,IAAI,CAAC,uIAAuI,CAAC,CAAC;YAEjJ,gDAAgD;YAChD,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,EAAE,CAAC,IAAI,CAAC;;;;;OAKP,CAAC,CAAC;YAEH,qBAAqB;YACrB,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACjC,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QAC/C,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;IAED,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;GAmBP,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACzB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,qCAAqC,CAAC,OAAiC,EAAE,OAAqD;IAC5I,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACrC,+DAA+D;IAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,IAAI,2BAA2B,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,oBAAoB,GAAG,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE,IAAI,iBAAiB,EAAE;QAC5B,KAAK,EAAE,IAAI,WAAW,EAAE;QACxB,YAAY;QACZ,kBAAkB,EAAE,IAAI,8BAA8B,CAAC,EAAE,CAAC;QAC1D,wBAAwB,EAAE,IAAI,oCAAoC,CAAC,EAAE,CAAC;QACtE,KAAK,EAAE,IAAI,cAAc,CAAC,EAAE,CAAC;QAC7B,QAAQ,EAAE,IAAI,2BAA2B,CAAC,EAAE,CAAC;QAC7C,OAAO;QACP,OAAO,EAAE,IAAI,sBAAsB,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,IAAI,mBAAmB,EAAE;QACjC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC;QAClF,kBAAkB,EAAE,IAAI,2BAA2B,CAAC,YAAY,EAAE,oBAAoB,EAAE,OAAO,CAAC,aAAa,CAAC;QAC9G,oBAAoB;QACpB,QAAQ,EAAE,IAAI,oBAAoB,CAChC,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,UAAU,CACnB;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentSecretGrant, SecretDestinationGrant, OwnerPendingDispatchSubscription, OwnerAuditSubscription, RequestRecord, AgentIdentityRecord, AuditEntry, AuditQuery, DispatchInstruction, DispatchRequest, DispatchResult, SessionTokenInspectionResult, SecretAlias, SecretId, SecretRecord, StoredSessionToken, VaultWriteSecretCommand, VaultId } from "./contracts.js";
|
|
1
|
+
import type { AgentSecretGrant, SecretDestinationGrant, OwnerPendingDispatchSubscription, OwnerAuditSubscription, RequestRecord, AgentIdentityRecord, AuditEntry, AuditQuery, DispatchInstruction, DispatchRequest, DispatchResult, SessionTokenInspectionResult, SecretAlias, SecretId, SecretVersion, SecretRecord, StoredSessionToken, VaultWriteSecretCommand, VaultId } from "./contracts.js";
|
|
2
2
|
export interface SecretRepository {
|
|
3
3
|
save(record: SecretRecord): Promise<void>;
|
|
4
4
|
delete(secret_id: SecretId): Promise<void>;
|
|
@@ -30,9 +30,7 @@ export interface Clock {
|
|
|
30
30
|
}
|
|
31
31
|
export interface IdGenerator {
|
|
32
32
|
newSecretId(): SecretId;
|
|
33
|
-
newVersion():
|
|
34
|
-
value: string;
|
|
35
|
-
};
|
|
33
|
+
newVersion(): SecretVersion;
|
|
36
34
|
newAuditEntryId(): string;
|
|
37
35
|
newRequestId(action?: string): string;
|
|
38
36
|
}
|
|
@@ -11,8 +11,8 @@ export declare class LocalVaultTransport implements AgentDispatchTransport {
|
|
|
11
11
|
agent_secrets: readonly import("../vault-core/contracts.js").AgentSecretGrant[];
|
|
12
12
|
secret_destinations: readonly import("../vault-core/contracts.js").SecretDestinationGrant[];
|
|
13
13
|
}>;
|
|
14
|
-
agentListSecrets(request: import("../vault-core/index.js").AgentListSecretsRequest): Promise<readonly import("../vault-core/contracts.js").
|
|
15
|
-
agentListRequests(request: import("../vault-core/index.js").AgentListRequestsRequest): Promise<readonly import("../vault-core/contracts.js").
|
|
14
|
+
agentListSecrets(request: import("../vault-core/index.js").AgentListSecretsRequest): Promise<readonly import("../vault-core/contracts.js").SecretRecord[]>;
|
|
15
|
+
agentListRequests(request: import("../vault-core/index.js").AgentListRequestsRequest): Promise<readonly import("../vault-core/contracts.js").AgentRequestRecord[]>;
|
|
16
16
|
agentGetRequest(request: import("../vault-core/index.js").AgentGetRequestRequest): Promise<import("../vault-core/contracts.js").AgentRequestRecord>;
|
|
17
17
|
agentGetRuntimeManifest(request: import("../vault-core/index.js").AgentGetRuntimeManifestRequest): Promise<import("../vault-core/contracts.js").AgentRuntimeManifest>;
|
|
18
18
|
}
|
|
@@ -8,12 +8,12 @@ export class LocalVaultTransport {
|
|
|
8
8
|
}
|
|
9
9
|
async agentDispatch(request) {
|
|
10
10
|
const response = await this._vault.agentHandleDispatch({
|
|
11
|
-
vault_id: request.vault_id
|
|
11
|
+
vault_id: request.vault_id,
|
|
12
12
|
request_id: request.request_id,
|
|
13
13
|
requested_at: request.requested_at,
|
|
14
14
|
root_agent_id: request.agent.id,
|
|
15
15
|
reason: request.reason,
|
|
16
|
-
|
|
16
|
+
secret_id: request.secret_id,
|
|
17
17
|
target_url: request.target_url,
|
|
18
18
|
method: request.method,
|
|
19
19
|
headers: request.headers,
|
|
@@ -28,7 +28,7 @@ export class LocalVaultTransport {
|
|
|
28
28
|
async agentListGrants(request) {
|
|
29
29
|
const response = await this._vault.agentHandleControl({
|
|
30
30
|
action: "get_manifest",
|
|
31
|
-
vault_id: request.vault_id
|
|
31
|
+
vault_id: request.vault_id,
|
|
32
32
|
request_id: request.request_id,
|
|
33
33
|
requested_at: request.requested_at,
|
|
34
34
|
root_agent_id: request.agent.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/vault-ingress/defaults.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAErD,KAAK,CAAC,aAAa,CACjB,OAAyD;QAEzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;YACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/vault-ingress/defaults.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACD;IAA7B,YAA6B,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAG,CAAC;IAErD,KAAK,CAAC,aAAa,CACjB,OAAyD;QAEzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;YACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;SAC1E,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAgE;QACpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;YACpD,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/B,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE;SAC1E,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,OAAQ,QAAQ,CAAC,MAAgE,CAAC,MAAM,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAiE;QACtF,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAkE;QACxF,OAAO,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAgE;QACpF,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,uBAAuB,CAAC,OAAwE;QACpG,OAAO,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;CACF"}
|
|
@@ -8,7 +8,7 @@ export interface VaultAgentDispatchRequest {
|
|
|
8
8
|
requested_at: string;
|
|
9
9
|
root_agent_id: string;
|
|
10
10
|
reason: string;
|
|
11
|
-
|
|
11
|
+
secret_id?: string;
|
|
12
12
|
target_url: string;
|
|
13
13
|
method: string;
|
|
14
14
|
headers?: Record<string, string>;
|
|
@@ -145,15 +145,15 @@ export interface VaultService {
|
|
|
145
145
|
ownerUpdateSecret(request: import("../vault-core/index.js").OwnerUpdateSecretCommand): Promise<SecretRecord>;
|
|
146
146
|
ownerRemoveSecret(request: import("../vault-core/index.js").OwnerDeleteSecretCommand): Promise<void>;
|
|
147
147
|
ownerReadAudit(request: OwnerAuditRequest): Promise<readonly import("../vault-core/index.js").AuditEntry[]>;
|
|
148
|
-
ownerExportSecret(request: OwnerExportSecretRequest): Promise<OwnerSecretExport>;
|
|
148
|
+
ownerExportSecret(request: OwnerExportSecretRequest): Promise<readonly OwnerSecretExport[]>;
|
|
149
149
|
ownerListAgents(request: OwnerListAgentsRequest): Promise<readonly AgentIdentityRecord[]>;
|
|
150
|
-
ownerListRequests(request: import("../vault-core/index.js").OwnerListRequestsRequest): Promise<readonly import("../vault-core/index.js").
|
|
150
|
+
ownerListRequests(request: import("../vault-core/index.js").OwnerListRequestsRequest): Promise<readonly import("../vault-core/index.js").OwnerRequestRecord[]>;
|
|
151
151
|
ownerGetRequest(request: import("../vault-core/index.js").OwnerGetRequestRequest): Promise<import("../vault-core/index.js").OwnerRequestRecord>;
|
|
152
152
|
ownerListSecrets(request: {
|
|
153
153
|
vault_id: VaultId;
|
|
154
154
|
owner: VaultPrincipal;
|
|
155
155
|
request_id?: string;
|
|
156
|
-
}): Promise<readonly import("../vault-core/index.js").
|
|
156
|
+
}): Promise<readonly import("../vault-core/index.js").SecretRecord[]>;
|
|
157
157
|
ownerGrantAgentSecret(request: import("../vault-core/index.js").OwnerGrantAgentSecretCommand): Promise<import("../vault-core/index.js").AgentSecretGrant>;
|
|
158
158
|
ownerGrantSecretDestination(request: import("../vault-core/index.js").OwnerGrantSecretDestinationCommand): Promise<import("../vault-core/index.js").SecretDestinationGrant>;
|
|
159
159
|
ownerRevokeAgentSecret(request: import("../vault-core/index.js").OwnerRevokeAgentSecretCommand): Promise<void>;
|
|
@@ -177,8 +177,8 @@ export interface VaultService {
|
|
|
177
177
|
ownerApproveDispatch(request: import("../vault-core/index.js").OwnerApproveDispatchCommand): Promise<DispatchResult | null>;
|
|
178
178
|
ownerOnPendingDispatch(subscription: import("../vault-core/index.js").OwnerPendingDispatchSubscription): () => void;
|
|
179
179
|
ownerOnAudit(subscription: import("../vault-core/index.js").OwnerAuditSubscription): () => void;
|
|
180
|
-
agentListSecrets(request: import("../vault-core/index.js").AgentListSecretsRequest): Promise<readonly import("../vault-core/index.js").
|
|
181
|
-
agentListRequests(request: import("../vault-core/index.js").AgentListRequestsRequest): Promise<readonly import("../vault-core/index.js").
|
|
180
|
+
agentListSecrets(request: import("../vault-core/index.js").AgentListSecretsRequest): Promise<readonly import("../vault-core/index.js").SecretRecord[]>;
|
|
181
|
+
agentListRequests(request: import("../vault-core/index.js").AgentListRequestsRequest): Promise<readonly import("../vault-core/index.js").AgentRequestRecord[]>;
|
|
182
182
|
agentGetRequest(request: import("../vault-core/index.js").AgentGetRequestRequest): Promise<import("../vault-core/index.js").AgentRequestResult>;
|
|
183
183
|
agentGetRuntimeManifest(request: import("../vault-core/index.js").AgentGetRuntimeManifestRequest): Promise<import("../vault-core/index.js").AgentRuntimeManifest>;
|
|
184
184
|
agentHandleDispatch(request: VaultAgentDispatchRequest): Promise<VaultAgentDispatchResponse | VaultAgentDispatchErrorResponse>;
|