@dfm-fi/agent 0.2.1083 → 0.2.1088
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 +18 -10
- package/dist/api-client.d.ts +50 -10
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +78 -14
- package/dist/api-client.js.map +1 -1
- package/dist/control-flow.test.d.ts +2 -0
- package/dist/control-flow.test.d.ts.map +1 -0
- package/dist/control-flow.test.js +259 -0
- package/dist/control-flow.test.js.map +1 -0
- package/dist/create-flow.d.ts +0 -2
- package/dist/create-flow.d.ts.map +1 -1
- package/dist/create-flow.js +3 -3
- package/dist/create-flow.js.map +1 -1
- package/dist/examples/launch-deposit-redeem.js +4 -5
- package/dist/examples/launch-deposit-redeem.js.map +1 -1
- package/dist/keyless.d.ts +2 -1
- package/dist/keyless.d.ts.map +1 -1
- package/dist/keyless.js.map +1 -1
- package/dist/manager-flow.d.ts +52 -17
- package/dist/manager-flow.d.ts.map +1 -1
- package/dist/manager-flow.js +177 -4
- package/dist/manager-flow.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +220 -62
- package/dist/mcp-server.js.map +1 -1
- package/dist/money-path.test.js +12 -0
- package/dist/money-path.test.js.map +1 -1
- package/dist/types.d.ts +18 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/zap-v2-flow.d.ts.map +1 -1
- package/dist/zap-v2-flow.js +13 -1
- package/dist/zap-v2-flow.js.map +1 -1
- package/dist/zap-v2-flow.pending.test.js +28 -0
- package/dist/zap-v2-flow.pending.test.js.map +1 -1
- package/package.json +2 -2
- package/skills.md +42 -16
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { runAcceptAdminTransfer, reconcileKeylessUpdateVaultPolicy, runUpdateVaultPolicy, validateVaultPolicy, } from './manager-flow.js';
|
|
2
|
+
let failures = 0;
|
|
3
|
+
function assert(condition, message) {
|
|
4
|
+
if (condition) {
|
|
5
|
+
console.log(` ✓ ${message}`);
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
console.error(` ✗ ${message}`);
|
|
9
|
+
failures++;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
async function expectReject(operation, expected, message) {
|
|
13
|
+
try {
|
|
14
|
+
await operation();
|
|
15
|
+
assert(false, `${message} (did not reject)`);
|
|
16
|
+
}
|
|
17
|
+
catch (thrownObject) {
|
|
18
|
+
const reason = thrownObject instanceof Error ? thrownObject.message : String(thrownObject);
|
|
19
|
+
assert(expected.test(reason), `${message} (${reason})`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function expectValidationReject(policy, expected, message) {
|
|
23
|
+
try {
|
|
24
|
+
validateVaultPolicy(policy);
|
|
25
|
+
assert(false, `${message} (did not reject)`);
|
|
26
|
+
}
|
|
27
|
+
catch (thrownObject) {
|
|
28
|
+
const reason = thrownObject instanceof Error ? thrownObject.message : String(thrownObject);
|
|
29
|
+
assert(expected.test(reason), `${message} (${reason})`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const config = {};
|
|
33
|
+
const vault = 'Vau1t1111111111111111111111111111111111111';
|
|
34
|
+
const signatureOne = '5'.repeat(88);
|
|
35
|
+
const signatureTwo = '6'.repeat(88);
|
|
36
|
+
const prepared = (transaction) => ({
|
|
37
|
+
transaction,
|
|
38
|
+
blockhash: `blockhash-${transaction}`,
|
|
39
|
+
lastValidBlockHeight: 123,
|
|
40
|
+
preparedTxId: `prepared-${transaction}`,
|
|
41
|
+
});
|
|
42
|
+
const policy = {
|
|
43
|
+
assetMode: 0,
|
|
44
|
+
maxAssetBps: 6_000,
|
|
45
|
+
minAssetBps: 500,
|
|
46
|
+
maxRebalanceBps: 2_000,
|
|
47
|
+
minRebalanceIntervalSecs: 300,
|
|
48
|
+
maxRebalancesPerDay: 5,
|
|
49
|
+
maxRebalancesPerWeek: 15,
|
|
50
|
+
launchBlackoutSecs: 3_600,
|
|
51
|
+
minAssets: 2,
|
|
52
|
+
maxAssets: 10,
|
|
53
|
+
};
|
|
54
|
+
const signingDependencies = (signatures, sequence) => ({
|
|
55
|
+
signBase64Transaction: (_config, transaction) => {
|
|
56
|
+
sequence.push(`sign:${transaction}`);
|
|
57
|
+
return `signed:${transaction}`;
|
|
58
|
+
},
|
|
59
|
+
submitSignedTx: async (_config, signedTransaction) => {
|
|
60
|
+
sequence.push(`submit:${signedTransaction}`);
|
|
61
|
+
const signature = signatures.shift();
|
|
62
|
+
if (!signature)
|
|
63
|
+
throw new Error('missing test signature');
|
|
64
|
+
return signature;
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
console.log('case: policy bounds reject every out-of-range integer and invalid relation');
|
|
68
|
+
validateVaultPolicy(policy);
|
|
69
|
+
const invalidPolicies = [
|
|
70
|
+
[{ ...policy, assetMode: 4 }, /assetMode/, 'assetMode > 3'],
|
|
71
|
+
[{ ...policy, maxAssetBps: 10_001 }, /maxAssetBps/, 'maxAssetBps > 10000'],
|
|
72
|
+
[{ ...policy, minAssetBps: -1 }, /minAssetBps/, 'minAssetBps < 0'],
|
|
73
|
+
[{ ...policy, maxRebalanceBps: 0.5 }, /maxRebalanceBps/, 'fractional maxRebalanceBps'],
|
|
74
|
+
[
|
|
75
|
+
{ ...policy, minRebalanceIntervalSecs: Number.MAX_SAFE_INTEGER + 1 },
|
|
76
|
+
/minRebalanceIntervalSecs/,
|
|
77
|
+
'unsafe minRebalanceIntervalSecs',
|
|
78
|
+
],
|
|
79
|
+
[{ ...policy, maxRebalancesPerDay: 11 }, /maxRebalancesPerDay/, 'daily cap > 10'],
|
|
80
|
+
[{ ...policy, maxRebalancesPerWeek: 31 }, /maxRebalancesPerWeek/, 'weekly cap > 30'],
|
|
81
|
+
[{ ...policy, launchBlackoutSecs: 2_592_001 }, /launchBlackoutSecs/, 'blackout > 30d'],
|
|
82
|
+
[{ ...policy, minAssets: 11 }, /minAssets/, 'minAssets > product cap 10'],
|
|
83
|
+
[{ ...policy, maxAssets: 11 }, /maxAssets/, 'maxAssets > product cap 10'],
|
|
84
|
+
[
|
|
85
|
+
{ ...policy, minAssetBps: 6_001, maxAssetBps: 6_000 },
|
|
86
|
+
/minAssetBps cannot exceed/,
|
|
87
|
+
'minimum weight exceeds maximum',
|
|
88
|
+
],
|
|
89
|
+
[
|
|
90
|
+
{ ...policy, minAssets: 8, maxAssets: 7 },
|
|
91
|
+
/minAssets cannot exceed/,
|
|
92
|
+
'minimum asset count exceeds maximum',
|
|
93
|
+
],
|
|
94
|
+
];
|
|
95
|
+
for (const [invalidPolicy, expected, message] of invalidPolicies) {
|
|
96
|
+
expectValidationReject(invalidPolicy, expected, message);
|
|
97
|
+
}
|
|
98
|
+
console.log('case: local admin acceptance signs, lands, then confirms before success');
|
|
99
|
+
{
|
|
100
|
+
const sequence = [];
|
|
101
|
+
const api = {
|
|
102
|
+
prepareAcceptAdminTransfer: async () => {
|
|
103
|
+
sequence.push('prepare');
|
|
104
|
+
return prepared('accept');
|
|
105
|
+
},
|
|
106
|
+
confirmAcceptAdminTransfer: async (_vault, signature) => {
|
|
107
|
+
sequence.push(`confirm:${signature}`);
|
|
108
|
+
return { status: 'confirmed', signature, vaultAdmin: 'NewAdmin11111111111111111111111111111111111' };
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
const result = await runAcceptAdminTransfer(config, api, vault, undefined, signingDependencies([signatureOne], sequence));
|
|
112
|
+
assert(result.reconciled === true, 'success is marked reconciled');
|
|
113
|
+
assert(sequence.join('|') ===
|
|
114
|
+
`prepare|sign:accept|submit:signed:accept|confirm:${signatureOne}`, 'post-chain confirm runs after submit');
|
|
115
|
+
}
|
|
116
|
+
console.log('case: local admin acceptance never reports success when confirm fails');
|
|
117
|
+
{
|
|
118
|
+
const api = {
|
|
119
|
+
prepareAcceptAdminTransfer: async () => prepared('accept'),
|
|
120
|
+
confirmAcceptAdminTransfer: async () => {
|
|
121
|
+
throw new Error('indexer unavailable');
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
await expectReject(() => runAcceptAdminTransfer(config, api, vault, undefined, signingDependencies([signatureOne], [])), new RegExp(`transaction ${signatureOne} landed.*Do not submit another`, 'i'), 'landed acceptance with failed reconciliation is an error with recovery guidance');
|
|
125
|
+
}
|
|
126
|
+
console.log('case: landed admin signature retries confirm only');
|
|
127
|
+
{
|
|
128
|
+
let prepareCalls = 0;
|
|
129
|
+
let confirmedSignature = '';
|
|
130
|
+
const api = {
|
|
131
|
+
prepareAcceptAdminTransfer: async () => {
|
|
132
|
+
prepareCalls++;
|
|
133
|
+
return prepared('must-not-run');
|
|
134
|
+
},
|
|
135
|
+
confirmAcceptAdminTransfer: async (_vault, signature) => {
|
|
136
|
+
confirmedSignature = signature;
|
|
137
|
+
return { status: 'confirmed', signature, vaultAdmin: 'NewAdmin11111111111111111111111111111111111' };
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
await runAcceptAdminTransfer(config, api, vault, signatureOne);
|
|
141
|
+
assert(prepareCalls === 0, 'recovery does not prepare or submit another acceptance');
|
|
142
|
+
assert(confirmedSignature === signatureOne, 'recovery confirms the supplied landed signature');
|
|
143
|
+
}
|
|
144
|
+
console.log('case: legacy policy creates one transaction and reconciles it');
|
|
145
|
+
{
|
|
146
|
+
const sequence = [];
|
|
147
|
+
const api = {
|
|
148
|
+
getOnchainPolicy: async () => null,
|
|
149
|
+
prepareCreateVaultPolicy: async () => {
|
|
150
|
+
sequence.push('prepare:create');
|
|
151
|
+
return prepared('create');
|
|
152
|
+
},
|
|
153
|
+
confirmVaultPolicy: async (_vault, signature) => {
|
|
154
|
+
sequence.push(`confirm:${signature}`);
|
|
155
|
+
return { onChain: true };
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
const result = await runUpdateVaultPolicy(config, api, vault, policy, undefined, signingDependencies([signatureOne], sequence));
|
|
159
|
+
assert(result.mode === 'create' && result.reconciled, 'legacy policy returns reconciled create');
|
|
160
|
+
assert(sequence.at(-1) === `confirm:${signatureOne}`, 'create is reconciled after landing');
|
|
161
|
+
}
|
|
162
|
+
console.log('case: existing policy proposes then accepts in order and confirms final signature');
|
|
163
|
+
{
|
|
164
|
+
const sequence = [];
|
|
165
|
+
let proposedEffectiveAt = 0;
|
|
166
|
+
let acceptedEffectiveAt = 0;
|
|
167
|
+
const api = {
|
|
168
|
+
getOnchainPolicy: async () => ({ pendingProposedAt: 0, pendingEffectiveAt: 0 }),
|
|
169
|
+
prepareProposeVaultPolicy: async (_vault, amendment) => {
|
|
170
|
+
proposedEffectiveAt = amendment.effectiveAt;
|
|
171
|
+
sequence.push('prepare:propose');
|
|
172
|
+
return prepared('propose');
|
|
173
|
+
},
|
|
174
|
+
prepareAcceptVaultPolicy: async (_vault, amendment) => {
|
|
175
|
+
acceptedEffectiveAt = amendment.effectiveAt;
|
|
176
|
+
sequence.push('prepare:accept');
|
|
177
|
+
return prepared('accept');
|
|
178
|
+
},
|
|
179
|
+
confirmVaultPolicy: async (_vault, signature) => {
|
|
180
|
+
sequence.push(`confirm:${signature}`);
|
|
181
|
+
return { onChain: true };
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
const result = await runUpdateVaultPolicy(config, api, vault, policy, undefined, signingDependencies([signatureOne, signatureTwo], sequence));
|
|
185
|
+
assert(result.mode === 'amend', 'existing policy chooses amendment mode');
|
|
186
|
+
assert(proposedEffectiveAt > 0 && proposedEffectiveAt === acceptedEffectiveAt, 'proposal and acceptance commit the same effectiveAt');
|
|
187
|
+
assert(sequence.join('|') ===
|
|
188
|
+
`prepare:propose|prepare:accept|sign:propose|submit:signed:propose|sign:accept|submit:signed:accept|confirm:${signatureTwo}`, 'ordered proposal and acceptance reconcile only after the final signature');
|
|
189
|
+
}
|
|
190
|
+
console.log('case: pending policy prepares only acceptance with chain-pinned effectiveAt');
|
|
191
|
+
{
|
|
192
|
+
let proposeCalls = 0;
|
|
193
|
+
let acceptedEffectiveAt = 0;
|
|
194
|
+
const api = {
|
|
195
|
+
getOnchainPolicy: async () => ({ pendingProposedAt: 99, pendingEffectiveAt: 123_456 }),
|
|
196
|
+
prepareProposeVaultPolicy: async () => {
|
|
197
|
+
proposeCalls++;
|
|
198
|
+
return prepared('must-not-run');
|
|
199
|
+
},
|
|
200
|
+
prepareAcceptVaultPolicy: async (_vault, amendment) => {
|
|
201
|
+
acceptedEffectiveAt = amendment.effectiveAt;
|
|
202
|
+
return prepared('accept');
|
|
203
|
+
},
|
|
204
|
+
confirmVaultPolicy: async () => ({ onChain: true }),
|
|
205
|
+
};
|
|
206
|
+
const result = await runUpdateVaultPolicy(config, api, vault, policy, undefined, signingDependencies([signatureTwo], []));
|
|
207
|
+
assert(result.mode === 'accept', 'pending proposal chooses accept mode');
|
|
208
|
+
assert(proposeCalls === 0, 'pending recovery never proposes a second policy');
|
|
209
|
+
assert(acceptedEffectiveAt === 123_456, 'acceptance uses chain-pinned effectiveAt');
|
|
210
|
+
}
|
|
211
|
+
console.log('case: partial amendment reports landed proposal and does not confirm');
|
|
212
|
+
{
|
|
213
|
+
let submitCalls = 0;
|
|
214
|
+
let confirmCalls = 0;
|
|
215
|
+
const api = {
|
|
216
|
+
getOnchainPolicy: async () => ({ pendingProposedAt: 0, pendingEffectiveAt: 0 }),
|
|
217
|
+
prepareProposeVaultPolicy: async () => prepared('propose'),
|
|
218
|
+
prepareAcceptVaultPolicy: async () => prepared('accept'),
|
|
219
|
+
confirmVaultPolicy: async () => {
|
|
220
|
+
confirmCalls++;
|
|
221
|
+
return { onChain: true };
|
|
222
|
+
},
|
|
223
|
+
};
|
|
224
|
+
await expectReject(() => runUpdateVaultPolicy(config, api, vault, policy, undefined, {
|
|
225
|
+
signBase64Transaction: (_config, transaction) => transaction,
|
|
226
|
+
submitSignedTx: async () => {
|
|
227
|
+
submitCalls++;
|
|
228
|
+
if (submitCalls === 1)
|
|
229
|
+
return signatureOne;
|
|
230
|
+
throw new Error('second transaction rejected');
|
|
231
|
+
},
|
|
232
|
+
}), new RegExp(`proposal ${signatureOne} landed.*exact same policy values`, 'i'), 'partial amendment cannot be mistaken for no change');
|
|
233
|
+
assert(confirmCalls === 0, 'a partial proposal is not reported as reconciled completion');
|
|
234
|
+
}
|
|
235
|
+
console.log('case: keyless policy confirms complete writes and preserves pending status');
|
|
236
|
+
{
|
|
237
|
+
let confirmCalls = 0;
|
|
238
|
+
const completeApi = {
|
|
239
|
+
confirmVaultPolicy: async () => {
|
|
240
|
+
confirmCalls++;
|
|
241
|
+
return { onChain: true };
|
|
242
|
+
},
|
|
243
|
+
};
|
|
244
|
+
const complete = await reconcileKeylessUpdateVaultPolicy(completeApi, vault, policy, { signature: signatureTwo, status: 'complete' });
|
|
245
|
+
assert(complete.reconciled && confirmCalls === 1, 'keyless completion is independently reconciled');
|
|
246
|
+
const pendingApi = {
|
|
247
|
+
confirmVaultPolicy: async () => {
|
|
248
|
+
throw new Error('must not report a partial proposal as complete');
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
const pending = await reconcileKeylessUpdateVaultPolicy(pendingApi, vault, policy, { signature: signatureOne, status: 'pending', note: 'proposal landed' });
|
|
252
|
+
assert(pending.status === 'pending' && pending.reconciled === false, 'keyless partial proposal remains pending and unreconciled');
|
|
253
|
+
}
|
|
254
|
+
if (failures > 0) {
|
|
255
|
+
console.error(`\n${failures} control-flow assertion(s) FAILED`);
|
|
256
|
+
process.exit(1);
|
|
257
|
+
}
|
|
258
|
+
console.log('\ncontrol-flow: all assertions passed');
|
|
259
|
+
//# sourceMappingURL=control-flow.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-flow.test.js","sourceRoot":"","sources":["../src/control-flow.test.ts"],"names":[],"mappings":"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"}
|
package/dist/create-flow.d.ts
CHANGED
|
@@ -29,8 +29,6 @@ export interface LaunchVaultParams {
|
|
|
29
29
|
name: string;
|
|
30
30
|
symbol: string;
|
|
31
31
|
assets: CreateAssetInput[];
|
|
32
|
-
/** DTF type — defaults to 'index' (the only live type). */
|
|
33
|
-
dtfType?: string;
|
|
34
32
|
/** Category enum (0-7, 255). Defaults to 255 (uncategorized/other). */
|
|
35
33
|
category?: number;
|
|
36
34
|
description?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-flow.d.ts","sourceRoot":"","sources":["../src/create-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"create-flow.d.ts","sourceRoot":"","sources":["../src/create-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4GAA4G;IAC5G,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE;IACN,qBAAqB,CAAC,EAAE,OAAO,qBAAqB,CAAC;IACrD,yBAAyB,CAAC,EAAE,OAAO,yBAAyB,CAAC;IAC7D,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;CACxC,GACA,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA0CjD;AAID;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAsBpE;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAqG5B"}
|
package/dist/create-flow.js
CHANGED
|
@@ -56,8 +56,8 @@ const MAX_ASSETS = 10; // mainnet basket cap (product cap below the zap-v2 tx-si
|
|
|
56
56
|
* everything; this is a courtesy layer.)
|
|
57
57
|
*/
|
|
58
58
|
export function validateLaunchParams(params) {
|
|
59
|
-
if (!params.assets || params.assets.length
|
|
60
|
-
throw new Error('launch_vault needs at least
|
|
59
|
+
if (!params.assets || params.assets.length < 2) {
|
|
60
|
+
throw new Error('launch_vault needs at least 2 basket assets.');
|
|
61
61
|
}
|
|
62
62
|
if (params.assets.length > MAX_ASSETS) {
|
|
63
63
|
throw new Error(`Basket has ${params.assets.length} assets — the mainnet cap is ${MAX_ASSETS} ` +
|
|
@@ -89,7 +89,7 @@ export async function runLaunchVault(config, api, params) {
|
|
|
89
89
|
const prepared = await api.prepareCreateVault({
|
|
90
90
|
name: params.name,
|
|
91
91
|
symbol: params.symbol,
|
|
92
|
-
dtfType:
|
|
92
|
+
dtfType: 'index',
|
|
93
93
|
category: params.category ?? 255,
|
|
94
94
|
assets: params.assets,
|
|
95
95
|
description: params.description,
|
package/dist/create-flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-flow.js","sourceRoot":"","sources":["../src/create-flow.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"create-flow.js","sourceRoot":"","sources":["../src/create-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,16 +34,15 @@ import { SiwsSession } from '../session.js';
|
|
|
34
34
|
import { DfmApiClient } from '../api-client.js';
|
|
35
35
|
import { runLaunchVault } from '../create-flow.js';
|
|
36
36
|
import { runDeposit, runRedeem } from '../zap-v2-flow.js';
|
|
37
|
-
// A tiny 2-asset basket of
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
// 10000 bps. Fees are
|
|
37
|
+
// A tiny 2-asset basket of established mints (open universe — no pre-registration
|
|
38
|
+
// or Pyth feed). Listing is validated inline against the live factory/fund-tier
|
|
39
|
+
// rules; freeze authority is a disclosed risk and not a v1 hard block. Weights sum to
|
|
40
|
+
// 10000 bps. Fees are read from the factory; callers cannot override them.
|
|
41
41
|
const ETH = '7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs'; // Wormhole WETH
|
|
42
42
|
const JUP = 'JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN'; // Jupiter
|
|
43
43
|
const DEMO_BASKET = {
|
|
44
44
|
name: 'Agent Demo DTF',
|
|
45
45
|
symbol: 'AGTDEMO',
|
|
46
|
-
dtfType: 'index',
|
|
47
46
|
category: 255,
|
|
48
47
|
assets: [
|
|
49
48
|
{ mint: ETH, symbol: 'ETH', mintBps: 5000 },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launch-deposit-redeem.js","sourceRoot":"","sources":["../../src/examples/launch-deposit-redeem.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAA0B,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE1D,
|
|
1
|
+
{"version":3,"file":"launch-deposit-redeem.js","sourceRoot":"","sources":["../../src/examples/launch-deposit-redeem.ts"],"names":[],"mappings":"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"}
|
package/dist/keyless.d.ts
CHANGED
|
@@ -48,7 +48,8 @@ export declare function hasLocalKeypair(config: AgentConfig): boolean;
|
|
|
48
48
|
export declare function isKeylessMode(_config?: AgentConfig): boolean;
|
|
49
49
|
/** Shape returned by `POST /agent/operating/execute`. */
|
|
50
50
|
export interface KeylessExecResult {
|
|
51
|
-
|
|
51
|
+
/** Absent only for a successful already-satisfied no-op. */
|
|
52
|
+
signature?: string;
|
|
52
53
|
status: string;
|
|
53
54
|
note?: string;
|
|
54
55
|
}
|
package/dist/keyless.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyless.d.ts","sourceRoot":"","sources":["../src/keyless.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE5D;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAG5D;AAED,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"keyless.d.ts","sourceRoot":"","sources":["../src/keyless.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAI5C;AAED,qFAAqF;AACrF,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE5D;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAG5D;AAED,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,yBAAyB,CACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,eAAe,EACpB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAGnC;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAO2B,CAAC"}
|
package/dist/keyless.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyless.js","sourceRoot":"","sources":["../src/keyless.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;IACrD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;IACrD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,qBAAqB,CAAC;AACrE,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/C,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAClD,CAAC;
|
|
1
|
+
{"version":3,"file":"keyless.js","sourceRoot":"","sources":["../src/keyless.ts"],"names":[],"mappings":"AAgCA;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;IACrD,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,EAAE,CAAC;IACrD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,eAAe,CAAC,MAAmB;IACjD,OAAO,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,qBAAqB,CAAC;AACrE,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,OAAqB;IACjD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/C,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAClD,CAAC;AAkBD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAmB,EACnB,GAAoB,EACpB,IAAY,EACZ,IAA6B;IAE7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,OAAO,GAAG,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAC7B,+EAA+E;IAC/E,4DAA4D;IAC5D,gFAAgF;IAChF,gFAAgF;IAChF,4EAA4E;IAC5E,gFAAgF;IAChF,wDAAwD,CAAC"}
|
package/dist/manager-flow.d.ts
CHANGED
|
@@ -1,26 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Vault
|
|
3
|
-
*
|
|
4
|
-
* (AssetManagement page); exposing them lets an agent manage a vault it
|
|
5
|
-
* launched, not just trade it.
|
|
2
|
+
* Vault manager lifecycle drivers for basket changes, rebalancing, admin
|
|
3
|
+
* handoffs, and constitutional policy updates.
|
|
6
4
|
*
|
|
7
5
|
* ⚠️ GATED behind DFM_AGENT_WRITE_ENABLED. SECURITY MODEL:
|
|
8
|
-
* -
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* -
|
|
12
|
-
*
|
|
13
|
-
* timelock).
|
|
14
|
-
* - `transfer_admin` is the one HIGH-SENSITIVITY action: it hands vault control
|
|
15
|
-
* to another key (the new admin must still ACCEPT to complete it). It only
|
|
16
|
-
* ever affects the agent's own vault, but a prompt-injected agent could be
|
|
17
|
-
* coaxed into starting a transfer — so the tool warns loudly + is write-gated,
|
|
18
|
-
* and a human reviewing the agent's actions is the final guard.
|
|
6
|
+
* - Admin actions require the acting signer to administer the vault. Acceptance
|
|
7
|
+
* instead requires that signer to equal the pending new admin.
|
|
8
|
+
* - Basket and policy limits are checked by this package, the API, and chain.
|
|
9
|
+
* - Admin handoffs, basket redirections, and policy changes are exposed as
|
|
10
|
+
* explicit-human-only MCP tools.
|
|
19
11
|
* REVIEW: real-money / control path — parent must review before enabling.
|
|
20
12
|
*/
|
|
21
13
|
import type { AgentConfig } from './config.js';
|
|
22
14
|
import type { DfmApiClient } from './api-client.js';
|
|
23
|
-
import type { CreateAssetInput, ConvergeLegTx, ReconfigureTargetInput } from './types.js';
|
|
15
|
+
import type { CreateAssetInput, ConvergeLegTx, ReconfigureTargetInput, VaultPolicyInput } from './types.js';
|
|
16
|
+
import { signBase64Transaction } from './signing.js';
|
|
17
|
+
import { submitSignedTx } from './submit.js';
|
|
18
|
+
import type { KeylessExecResult } from './keyless.js';
|
|
24
19
|
export interface UpdateAssetsResult {
|
|
25
20
|
ok: boolean;
|
|
26
21
|
vault: string;
|
|
@@ -36,6 +31,28 @@ export interface TransferAdminResult {
|
|
|
36
31
|
newAdmin: string;
|
|
37
32
|
message: string;
|
|
38
33
|
}
|
|
34
|
+
export interface AcceptAdminTransferResult {
|
|
35
|
+
ok: true;
|
|
36
|
+
reconciled: true;
|
|
37
|
+
vault: string;
|
|
38
|
+
signature: string;
|
|
39
|
+
vaultAdmin: string;
|
|
40
|
+
message: string;
|
|
41
|
+
}
|
|
42
|
+
export interface UpdateVaultPolicyResult {
|
|
43
|
+
ok: true;
|
|
44
|
+
reconciled: true;
|
|
45
|
+
vault: string;
|
|
46
|
+
mode: 'create' | 'amend' | 'accept' | 'reconcile';
|
|
47
|
+
signatures: string[];
|
|
48
|
+
message: string;
|
|
49
|
+
}
|
|
50
|
+
export interface KeylessUpdateVaultPolicyResult {
|
|
51
|
+
signature: string;
|
|
52
|
+
status: string;
|
|
53
|
+
note?: string;
|
|
54
|
+
reconciled: boolean;
|
|
55
|
+
}
|
|
39
56
|
export interface InitRebalancerResult {
|
|
40
57
|
ok: boolean;
|
|
41
58
|
vault: string;
|
|
@@ -77,7 +94,7 @@ export interface ReconfigureResult {
|
|
|
77
94
|
message: string;
|
|
78
95
|
}
|
|
79
96
|
/**
|
|
80
|
-
* Validate a FULL-REPLACE basket client-side
|
|
97
|
+
* Validate a FULL-REPLACE product basket client-side: 2..10
|
|
81
98
|
* assets, allocations sum to exactly 10000 bps, no duplicate mints, each weight
|
|
82
99
|
* 1..10000. Fast, clear failures before the network round-trip.
|
|
83
100
|
*/
|
|
@@ -97,6 +114,24 @@ export declare function runUpdateVaultAssets(config: AgentConfig, api: DfmApiCli
|
|
|
97
114
|
* the human explicitly asked. Only affects a vault the test wallet admins.
|
|
98
115
|
*/
|
|
99
116
|
export declare function runTransferAdmin(config: AgentConfig, api: DfmApiClient, vault: string, newAdmin: string): Promise<TransferAdminResult>;
|
|
117
|
+
type ControlFlowDependencies = {
|
|
118
|
+
signBase64Transaction?: typeof signBase64Transaction;
|
|
119
|
+
submitSignedTx?: typeof submitSignedTx;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Complete a pending admin handoff and reconcile the new authority from chain.
|
|
123
|
+
* A previously landed signature can be supplied to retry only reconciliation.
|
|
124
|
+
*/
|
|
125
|
+
export declare function runAcceptAdminTransfer(config: AgentConfig, api: DfmApiClient, vault: string, landedSignature?: string, dependencies?: ControlFlowDependencies): Promise<AcceptAdminTransferResult>;
|
|
126
|
+
/** Mirror the product and on-chain bounds before preparing a policy write. */
|
|
127
|
+
export declare function validateVaultPolicy(policy: VaultPolicyInput): void;
|
|
128
|
+
/**
|
|
129
|
+
* Create, amend, or finish a pending policy write, then reconcile its Mongo
|
|
130
|
+
* shadow from chain. A landed signature retries reconciliation without a write.
|
|
131
|
+
*/
|
|
132
|
+
export declare function runUpdateVaultPolicy(config: AgentConfig, api: DfmApiClient, vault: string, policy: VaultPolicyInput, landedSignature?: string, dependencies?: ControlFlowDependencies): Promise<UpdateVaultPolicyResult>;
|
|
133
|
+
/** Verify and reconcile the result returned by the generic keyless executor. */
|
|
134
|
+
export declare function reconcileKeylessUpdateVaultPolicy(api: DfmApiClient, vault: string, policy: VaultPolicyInput, result: KeylessExecResult): Promise<KeylessUpdateVaultPolicyResult>;
|
|
100
135
|
/**
|
|
101
136
|
* Enable rebalancing for a vault the test wallet ADMINS — prepares + signs the
|
|
102
137
|
* creator-signed `initialize_rebalancer` (the creator pays the RebalancerConfig
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-flow.d.ts","sourceRoot":"","sources":["../src/manager-flow.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"manager-flow.d.ts","sourceRoot":"","sources":["../src/manager-flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,cAAc,EAAyB,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAStD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,IAAI,CAAC;IACT,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,IAAI,CAAC;IACT,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;IAClD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,KAAK,CAAC;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC9D,wEAAwE;IACxE,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAI,CA+BtE;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,EAAE,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAoC7B;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CAoB9B;AAED,KAAK,uBAAuB,GAAG;IAC7B,qBAAqB,CAAC,EAAE,OAAO,qBAAqB,CAAC;IACrD,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;CACxC,CAAC;AA4BF;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,uBAAuB,GACrC,OAAO,CAAC,yBAAyB,CAAC,CA8BpC;AAaD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CA2BlE;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,EACxB,eAAe,CAAC,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,uBAAuB,GACrC,OAAO,CAAC,uBAAuB,CAAC,CAyFlC;AAED,gFAAgF;AAChF,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAAC,8BAA8B,CAAC,CAoBzC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,oBAAoB,CAAC,CAoB/B;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,wBAAwB,CAAC,CAsCnC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,sBAAsB,EAAE,EACjC,cAAc,CAAC,EAAE,MAAM,EAKvB,KAAK,CAAC,EAAE;IACN,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,oBAAoB,CAAC,EAAE,OAAO,oBAAoB,CAAC;CACpD,GACA,OAAO,CAAC,iBAAiB,CAAC,CAyG5B;AAED;;;;GAIG;AACH,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,aAAa,EAAE,EACrB,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB"}
|