@agenticprimitives/treasury-service-agent 0.0.0-alpha.4
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/LICENSE +21 -0
- package/README.md +70 -0
- package/dist/benchmarks/benchmark.d.ts +28 -0
- package/dist/benchmarks/benchmark.d.ts.map +1 -0
- package/dist/benchmarks/benchmark.js +26 -0
- package/dist/benchmarks/benchmark.js.map +1 -0
- package/dist/benchmarks/suite.d.ts +11 -0
- package/dist/benchmarks/suite.d.ts.map +1 -0
- package/dist/benchmarks/suite.js +166 -0
- package/dist/benchmarks/suite.js.map +1 -0
- package/dist/capabilities.d.ts +68 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +68 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/catalog-defi.d.ts +29 -0
- package/dist/catalog-defi.d.ts.map +1 -0
- package/dist/catalog-defi.js +79 -0
- package/dist/catalog-defi.js.map +1 -0
- package/dist/catalog.d.ts +86 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +199 -0
- package/dist/catalog.js.map +1 -0
- package/dist/dispatch/delegation-authority.d.ts +58 -0
- package/dist/dispatch/delegation-authority.d.ts.map +1 -0
- package/dist/dispatch/delegation-authority.js +62 -0
- package/dist/dispatch/delegation-authority.js.map +1 -0
- package/dist/grant.d.ts +34 -0
- package/dist/grant.d.ts.map +1 -0
- package/dist/grant.js +40 -0
- package/dist/grant.js.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/intents/intent-types.d.ts +65 -0
- package/dist/intents/intent-types.d.ts.map +1 -0
- package/dist/intents/intent-types.js +44 -0
- package/dist/intents/intent-types.js.map +1 -0
- package/dist/intents/resolved-treasury-order.d.ts +38 -0
- package/dist/intents/resolved-treasury-order.d.ts.map +1 -0
- package/dist/intents/resolved-treasury-order.js +2 -0
- package/dist/intents/resolved-treasury-order.js.map +1 -0
- package/dist/intents/treasury-intent-resolver.d.ts +30 -0
- package/dist/intents/treasury-intent-resolver.d.ts.map +1 -0
- package/dist/intents/treasury-intent-resolver.js +113 -0
- package/dist/intents/treasury-intent-resolver.js.map +1 -0
- package/dist/payments/order-to-mandate.d.ts +31 -0
- package/dist/payments/order-to-mandate.d.ts.map +1 -0
- package/dist/payments/order-to-mandate.js +46 -0
- package/dist/payments/order-to-mandate.js.map +1 -0
- package/dist/plans.d.ts +27 -0
- package/dist/plans.d.ts.map +1 -0
- package/dist/plans.js +47 -0
- package/dist/plans.js.map +1 -0
- package/dist/plugins/defi-plugin.d.ts +54 -0
- package/dist/plugins/defi-plugin.d.ts.map +1 -0
- package/dist/plugins/defi-plugin.js +30 -0
- package/dist/plugins/defi-plugin.js.map +1 -0
- package/dist/profiles.d.ts +92 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +60 -0
- package/dist/profiles.js.map +1 -0
- package/dist/receipt.d.ts +16 -0
- package/dist/receipt.d.ts.map +1 -0
- package/dist/receipt.js +16 -0
- package/dist/receipt.js.map +1 -0
- package/dist/risk/risk-policy.d.ts +44 -0
- package/dist/risk/risk-policy.d.ts.map +1 -0
- package/dist/risk/risk-policy.js +50 -0
- package/dist/risk/risk-policy.js.map +1 -0
- package/dist/schemas.d.ts +68 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +24 -0
- package/dist/schemas.js.map +1 -0
- package/dist/solvers/broker.d.ts +24 -0
- package/dist/solvers/broker.d.ts.map +1 -0
- package/dist/solvers/broker.js +43 -0
- package/dist/solvers/broker.js.map +1 -0
- package/dist/solvers/digest.d.ts +5 -0
- package/dist/solvers/digest.d.ts.map +1 -0
- package/dist/solvers/digest.js +27 -0
- package/dist/solvers/digest.js.map +1 -0
- package/dist/solvers/plan-validation.d.ts +40 -0
- package/dist/solvers/plan-validation.d.ts.map +1 -0
- package/dist/solvers/plan-validation.js +66 -0
- package/dist/solvers/plan-validation.js.map +1 -0
- package/dist/solvers/quote-ranking.d.ts +47 -0
- package/dist/solvers/quote-ranking.d.ts.map +1 -0
- package/dist/solvers/quote-ranking.js +48 -0
- package/dist/solvers/quote-ranking.js.map +1 -0
- package/dist/solvers/solver-port.d.ts +104 -0
- package/dist/solvers/solver-port.d.ts.map +1 -0
- package/dist/solvers/solver-port.js +2 -0
- package/dist/solvers/solver-port.js.map +1 -0
- package/dist/strategy/strategy-controller.d.ts +36 -0
- package/dist/strategy/strategy-controller.d.ts.map +1 -0
- package/dist/strategy/strategy-controller.js +66 -0
- package/dist/strategy/strategy-controller.js.map +1 -0
- package/dist/strategy/strategy-definition.d.ts +55 -0
- package/dist/strategy/strategy-definition.d.ts.map +1 -0
- package/dist/strategy/strategy-definition.js +39 -0
- package/dist/strategy/strategy-definition.js.map +1 -0
- package/dist/strategy/triggers.d.ts +27 -0
- package/dist/strategy/triggers.d.ts.map +1 -0
- package/dist/strategy/triggers.js +22 -0
- package/dist/strategy/triggers.js.map +1 -0
- package/package.json +54 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Agentic Trust Labs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# @agenticprimitives/treasury-service-agent
|
|
2
|
+
|
|
3
|
+
> **Status:** experimental (spec 284 PR-A — relocated from `packages/treasury`).
|
|
4
|
+
|
|
5
|
+
The intent-native **DeFi Treasury Agent**: an intent compiler + DeFi skill fabric + solver broker +
|
|
6
|
+
settlement coordinator (see [spec 284](../../specs/284-intent-native-treasury-agent.md)). A **domain
|
|
7
|
+
composition** over [`@agenticprimitives/service-agent`](../../packages/service-agent), not a generic
|
|
8
|
+
`packages/*` primitive.
|
|
9
|
+
|
|
10
|
+
PR-A ships the **catalog/profiles baseline** — the wallet-operation surface as **vendor-neutral skill
|
|
11
|
+
definitions, plans, and profiles** (this is the `payments` profile of the larger agent). Intent resolution,
|
|
12
|
+
solver brokering, DAG execution, autonomous strategies, and risk land in later phases. **Catalog =
|
|
13
|
+
definitions + plans only — no provider implementations.** Concrete providers (EVM transfer/sign,
|
|
14
|
+
swap/perp/prediction venues, market data, RPC) live in external repos (ADR-0037) and register into the host;
|
|
15
|
+
the demo apps ship fakes.
|
|
16
|
+
|
|
17
|
+
## What's inside
|
|
18
|
+
|
|
19
|
+
- **`TREASURY_CAPABILITIES`** — the logical capability vocabulary skills require (`account.read`,
|
|
20
|
+
`transfer.execute`, `signing.sign`, `swap.execute`, …).
|
|
21
|
+
- **Catalog** — ~26 skills across service / network / account / market-data / signing / transaction /
|
|
22
|
+
transfer / swap / perp / prediction / delegation / entitlement. Each declares an `effect`
|
|
23
|
+
(`read|sign|spend|trade|admin`), a default `exposure`, required capabilities, and a `compile()` → plan.
|
|
24
|
+
- **Profiles** — `readonly`, `payments`, `markets`, `administration`, `full`.
|
|
25
|
+
- **`TreasuryAuthorityScope` + `treasuryScopeToCaveatTerms`** — the neutral input to the connect-treasury
|
|
26
|
+
ceremony; the ceremony maps the abstract caveat terms onto real `delegation` caveats.
|
|
27
|
+
- **`summarizeTreasuryReceipt`** — projects the generic `ExecutionReceipt` into a treasury audit summary.
|
|
28
|
+
|
|
29
|
+
## Gating
|
|
30
|
+
|
|
31
|
+
| skill kind | exposure | gates |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| service / network / market-data | public | none |
|
|
34
|
+
| account / quote / positions / simulate / entitlement.check | authenticated | entitlement |
|
|
35
|
+
| transfer / swap.execute / perp / prediction.bet | authenticated | entitlement ∩ delegation ∩ policy (+ ledger reserve/finalize) |
|
|
36
|
+
| signing / transaction.send / delegation.* / entitlement.issue/consume | **private** | entitlement ∩ delegation ∩ policy |
|
|
37
|
+
|
|
38
|
+
Gates are fail-closed and monotonic — the first denial throws and nothing further runs. Asserting a skill
|
|
39
|
+
proves the host can run it; per-call authority is still decided fresh at invoke.
|
|
40
|
+
|
|
41
|
+
## Example
|
|
42
|
+
|
|
43
|
+
```ts
|
|
44
|
+
import { ServiceAgent, createPrimitiveRegistry } from '@agenticprimitives/service-agent';
|
|
45
|
+
import { paymentsProfile, ASSET_TYPE } from '@agenticprimitives/treasury';
|
|
46
|
+
|
|
47
|
+
const registry = createPrimitiveRegistry();
|
|
48
|
+
registry.register(myTransferProvider); // advertises 'transfer.execute' (external / fake)
|
|
49
|
+
// …register account/network/market-data providers…
|
|
50
|
+
|
|
51
|
+
const agent = new ServiceAgent({
|
|
52
|
+
descriptor: { id: treasurySaAddress, name: 'Treasury', version: '1.0.0' },
|
|
53
|
+
primitives: registry,
|
|
54
|
+
entitlements, delegations, policies, ledger, // injected: tool-policy / delegation / entitlements / ledger
|
|
55
|
+
});
|
|
56
|
+
agent.defineProfile(paymentsProfile);
|
|
57
|
+
await agent.assert(); // asserts the skills whose providers are present
|
|
58
|
+
|
|
59
|
+
const receipt = await agent.invoke({
|
|
60
|
+
skillId: 'treasury.transfer.native',
|
|
61
|
+
input: { account: treasurySaAddress, network: 'eip155:84532', to, asset: { type: ASSET_TYPE.native }, amount: '100' },
|
|
62
|
+
idempotencyKey: 'transfer-0001',
|
|
63
|
+
});
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## What lives elsewhere
|
|
67
|
+
|
|
68
|
+
- The framework (registry, plan runner, `ServiceAgent`, assertion) → `@agenticprimitives/service-agent`.
|
|
69
|
+
- Providers → external repos (ADR-0037); fakes → the demo apps (PR3) + this package's tests.
|
|
70
|
+
- The connect-treasury ceremony + a treasury UI → demo-sso-next / demo-web-payment (PR4).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface BenchmarkCase {
|
|
2
|
+
name: string;
|
|
3
|
+
run: () => Promise<boolean> | boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface Benchmark {
|
|
6
|
+
id: string;
|
|
7
|
+
description: string;
|
|
8
|
+
cases: BenchmarkCase[];
|
|
9
|
+
}
|
|
10
|
+
export interface CaseResult {
|
|
11
|
+
name: string;
|
|
12
|
+
pass: boolean;
|
|
13
|
+
detail?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface BenchmarkResult {
|
|
16
|
+
id: string;
|
|
17
|
+
total: number;
|
|
18
|
+
passed: number;
|
|
19
|
+
results: CaseResult[];
|
|
20
|
+
}
|
|
21
|
+
export declare function runBenchmark(b: Benchmark): Promise<BenchmarkResult>;
|
|
22
|
+
export declare function runBenchmarks(benchmarks: Benchmark[]): Promise<{
|
|
23
|
+
benchmarks: BenchmarkResult[];
|
|
24
|
+
total: number;
|
|
25
|
+
passed: number;
|
|
26
|
+
allPassed: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
//# sourceMappingURL=benchmark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/benchmarks/benchmark.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACvC;AACD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AACD,MAAM,WAAW,UAAU;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;AAC5E,MAAM,WAAW,eAAe;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE;AAErG,wBAAsB,YAAY,CAAC,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,CAWzE;AAED,wBAAsB,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAM1J"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Benchmark harness (spec 284 PR-F). A first-class, shippable treasury benchmark suite (inspired by the
|
|
2
|
+
// on-chain evaluation approach in leading agent stacks) — the package ships the harness + cases so CI,
|
|
3
|
+
// demos, and downstream hosts can score correctness, not just unit-test individual functions. A case that
|
|
4
|
+
// throws counts as a failure (its error is the detail). No ambient Date/Math — pass any clock via cases.
|
|
5
|
+
export async function runBenchmark(b) {
|
|
6
|
+
const results = [];
|
|
7
|
+
for (const c of b.cases) {
|
|
8
|
+
try {
|
|
9
|
+
const pass = await c.run();
|
|
10
|
+
results.push({ name: c.name, pass });
|
|
11
|
+
}
|
|
12
|
+
catch (e) {
|
|
13
|
+
results.push({ name: c.name, pass: false, detail: e instanceof Error ? e.message : String(e) });
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return { id: b.id, total: results.length, passed: results.filter((r) => r.pass).length, results };
|
|
17
|
+
}
|
|
18
|
+
export async function runBenchmarks(benchmarks) {
|
|
19
|
+
const out = [];
|
|
20
|
+
for (const b of benchmarks)
|
|
21
|
+
out.push(await runBenchmark(b));
|
|
22
|
+
const total = out.reduce((a, r) => a + r.total, 0);
|
|
23
|
+
const passed = out.reduce((a, r) => a + r.passed, 0);
|
|
24
|
+
return { benchmarks: out, total, passed, allPassed: total === passed };
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=benchmark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark.js","sourceRoot":"","sources":["../../src/benchmarks/benchmark.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,uGAAuG;AACvG,0GAA0G;AAC1G,yGAAyG;AAczG,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,CAAY;IAC7C,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACpG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAuB;IACzD,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,UAAU;QAAE,GAAG,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrD,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Benchmark } from './benchmark.js';
|
|
2
|
+
export declare function intentBench(): Benchmark;
|
|
3
|
+
export declare function planBench(): Benchmark;
|
|
4
|
+
export declare function safetyBench(): Benchmark;
|
|
5
|
+
export declare function authorityBench(): Benchmark;
|
|
6
|
+
export declare function defiBench(): Benchmark;
|
|
7
|
+
export declare function recoveryBench(): Benchmark;
|
|
8
|
+
export declare function accountingBench(): Benchmark;
|
|
9
|
+
/** All seven treasury benchmarks. */
|
|
10
|
+
export declare function treasuryBenchmarks(): Benchmark[];
|
|
11
|
+
//# sourceMappingURL=suite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suite.d.ts","sourceRoot":"","sources":["../../src/benchmarks/suite.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AA+ChD,wBAAgB,WAAW,IAAI,SAAS,CAYvC;AACD,wBAAgB,SAAS,IAAI,SAAS,CASrC;AACD,wBAAgB,WAAW,IAAI,SAAS,CAWvC;AACD,wBAAgB,cAAc,IAAI,SAAS,CAS1C;AACD,wBAAgB,SAAS,IAAI,SAAS,CAQrC;AACD,wBAAgB,aAAa,IAAI,SAAS,CAWzC;AACD,wBAAgB,eAAe,IAAI,SAAS,CAU3C;AAED,qCAAqC;AACrC,wBAAgB,kBAAkB,IAAI,SAAS,EAAE,CAEhD"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
// The 7 treasury benchmarks (spec 284 PR-F). Each exercises the shipped primitives end-to-end against
|
|
2
|
+
// fakes — IntentBench (resolution + confirmation gate), PlanBench (solver select + ranking), SafetyBench
|
|
3
|
+
// (reject poisoned quotes / substitution / smuggling), AuthorityBench (entitlement/delegation/suspension),
|
|
4
|
+
// DeFiBench (deferred assert + spend), RecoveryBench (failure policies), AccountingBench (ledger + receipt).
|
|
5
|
+
// Shipped so CI/demos/hosts can SCORE correctness. Self-contained fakes; no real venue, no ambient clock.
|
|
6
|
+
import { ServiceAgent, createPrimitiveRegistry, runPlan, primitivePlan, ref, DelegationDeniedError, EntitlementDeniedError, SkillSuspendedError, } from '@agenticprimitives/service-agent';
|
|
7
|
+
import { buildTreasuryIntent } from '../intents/intent-types.js';
|
|
8
|
+
import { TreasuryIntentResolver } from '../intents/treasury-intent-resolver.js';
|
|
9
|
+
import { SolverBroker } from '../solvers/broker.js';
|
|
10
|
+
import { rankQuotes } from '../solvers/quote-ranking.js';
|
|
11
|
+
import { commitSimulation, validatePlanQuote, validatePreSign } from '../solvers/plan-validation.js';
|
|
12
|
+
import { structuralDigest } from '../solvers/digest.js';
|
|
13
|
+
import { installPlugin, PluginManifestError } from '../plugins/defi-plugin.js';
|
|
14
|
+
import { TREASURY_CAPABILITIES as CAP, ASSET_TYPE } from '../capabilities.js';
|
|
15
|
+
import { transferNative } from '../catalog.js';
|
|
16
|
+
import { lendingSupply } from '../catalog-defi.js';
|
|
17
|
+
import { yieldProfile } from '../profiles.js';
|
|
18
|
+
import { summarizeTreasuryReceipt } from '../receipt.js';
|
|
19
|
+
import { aggregateExposure, evaluateRisk } from '../risk/risk-policy.js';
|
|
20
|
+
const AGENT = '0x0000000000000000000000000000000000000001';
|
|
21
|
+
const allow = async (_r) => ({ allow: true });
|
|
22
|
+
const deny = (reason) => async (_r) => ({ allow: false, reason });
|
|
23
|
+
const fakeLedger = { reserve: async (a) => ({ reservationId: `res-${a.idempotencyKey}` }), finalize: async (a) => ({ journalId: `jnl-${a.reservationId}` }) };
|
|
24
|
+
const DESC = { id: AGENT, name: 'Bench Treasury', version: '1.0.0' };
|
|
25
|
+
const CTX = { nowSeconds: 1000, allowedAssumptions: ['usdc-peg'], allowedRepresentations: ['native-dag', 'opaque-calldata', 'offchain-order'] };
|
|
26
|
+
const transferProvider = (healthy = true) => ({
|
|
27
|
+
primitiveId: 'p-transfer', capabilities: [{ id: CAP.transferExecute, version: '1.0.0', constraints: { assetTypes: [ASSET_TYPE.native, ASSET_TYPE.erc20] } }],
|
|
28
|
+
async execute() { return { txHash: '0xfeed' }; }, async healthy() { return healthy; },
|
|
29
|
+
});
|
|
30
|
+
const DEFI_CAPS = [CAP.lendingRead, CAP.lendingExecute];
|
|
31
|
+
const fakeDefiPlugin = (extraCap) => ({
|
|
32
|
+
manifest: () => ({ pluginId: 'fake-defi', version: '1.0.0', capabilities: DEFI_CAPS, chainNamespaces: ['eip155'], networks: ['eip155:8453'], planKinds: ['native-dag'], supportsQuote: true, supportsSimulation: true, supportsCancellation: false, supportsRecovery: true, auditBoundary: 'ext:fake@1' }),
|
|
33
|
+
assertions: async () => DEFI_CAPS.map((c) => ({ capability: c, healthy: true })),
|
|
34
|
+
providers: () => [{ primitiveId: 'p-defi', capabilities: [...DEFI_CAPS, ...(extraCap ? [extraCap] : [])].map((id) => ({ id, version: '1.0.0' })), async execute() { return { txHash: '0xdefi' }; } }],
|
|
35
|
+
health: async () => ({ healthy: true }),
|
|
36
|
+
});
|
|
37
|
+
async function swapOrder() {
|
|
38
|
+
const payload = { kind: 'swap', portfolioId: 'p', objective: {}, acceptance: [], validUntil: 5000, idempotencyKey: 'k' };
|
|
39
|
+
const intent = buildTreasuryIntent({ id: 'i', expressedBy: AGENT, payload, constraints: [{ code: 'maximum-slippage-bps', value: 40, source: 'user-asserted' }] });
|
|
40
|
+
const r = await new TreasuryIntentResolver({ resolverAgentId: AGENT, nowSeconds: () => 1000 }).resolve(intent);
|
|
41
|
+
return r.order;
|
|
42
|
+
}
|
|
43
|
+
function makeQuote(o) {
|
|
44
|
+
const representation = o.representation ?? 'native-dag';
|
|
45
|
+
const plan = o.plan ?? { planId: `pl-${o.quoteId}`, intentId: 'i', representation, steps: [], variables: [], assumptions: o.assumptions ?? [], expectedOutcome: o.expectedOutcome ?? { asset: 'USDC', amount: '1000' } };
|
|
46
|
+
const q = { quoteId: o.quoteId, solverId: o.solverId, representation, plan, assumptions: o.assumptions ?? [], expectedOutcome: o.expectedOutcome ?? { asset: 'USDC', amount: '1000' }, fees: o.fees ?? [], gas: o.gas ?? [], risks: o.risks ?? [], signals: o.signals, stateAnchor: { blockNumbers: {}, observedAt: 0 }, expiresAt: o.expiresAt ?? 9999, planDigest: '', quoteDigest: '' };
|
|
47
|
+
q.planDigest = structuralDigest(q.plan);
|
|
48
|
+
const { quoteDigest: _omit, ...rest } = q;
|
|
49
|
+
q.quoteDigest = structuralDigest(rest);
|
|
50
|
+
return q;
|
|
51
|
+
}
|
|
52
|
+
const solver = (id, quotes) => ({ solverId: id, async supports() { return { supported: true }; }, async quote() { return quotes; } });
|
|
53
|
+
function paymentsAgent(opts = {}) {
|
|
54
|
+
const reg = createPrimitiveRegistry();
|
|
55
|
+
reg.register(transferProvider(opts.healthy ?? true));
|
|
56
|
+
const agent = new ServiceAgent({ descriptor: DESC, primitives: reg, entitlements: { evaluate: opts.entitle ?? allow }, delegations: { evaluate: opts.delegate ?? allow }, policies: { evaluate: allow }, ledger: fakeLedger });
|
|
57
|
+
agent.define(transferNative);
|
|
58
|
+
return agent;
|
|
59
|
+
}
|
|
60
|
+
const TRANSFER_INPUT = { account: '0xacct', network: 'eip155:8453', to: '0xbob', asset: { type: ASSET_TYPE.native }, amount: '100' };
|
|
61
|
+
// ── benchmarks ────────────────────────────────────────────────────────────────
|
|
62
|
+
export function intentBench() {
|
|
63
|
+
const resolver = () => new TreasuryIntentResolver({ resolverAgentId: AGENT, nowSeconds: () => 1000 });
|
|
64
|
+
const mk = (over, c) => buildTreasuryIntent({ id: 'i', expressedBy: AGENT, payload: { kind: 'swap', portfolioId: 'p', objective: {}, acceptance: [], validUntil: 5000, idempotencyKey: 'k', ...over }, constraints: c });
|
|
65
|
+
return {
|
|
66
|
+
id: 'TreasuryIntentBench', description: 'resolve canonical intents + confirmation gate',
|
|
67
|
+
cases: [
|
|
68
|
+
{ name: 'resolves clean intent', run: async () => (await resolver().resolve(mk({}, [{ code: 'maximum-slippage-bps', value: 40, source: 'user-asserted' }]))).status === 'resolved' },
|
|
69
|
+
{ name: 'gates unconfirmed inferred-hard constraint', run: async () => { const r = await resolver().resolve(mk({}, [{ code: 'bridging-allowed', value: false, source: 'llm-inferred' }])); return r.status === 'needs-confirmation' && r.order === null; } },
|
|
70
|
+
{ name: 'rejects expired intent', run: async () => (await resolver().resolve(mk({ validUntil: 10 }, []))).status === 'rejected' },
|
|
71
|
+
],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export function planBench() {
|
|
75
|
+
return {
|
|
76
|
+
id: 'TreasuryPlanBench', description: 'solver broker select + deterministic ranking',
|
|
77
|
+
cases: [
|
|
78
|
+
{ name: 'selects lowest-cost quote', run: async () => { const o = await swapOrder(); const a = makeQuote({ quoteId: 'a', solverId: 's1', fees: [{ kind: 'p', asset: 'USDC', amount: '10' }] }); const b = makeQuote({ quoteId: 'b', solverId: 's2', fees: [{ kind: 'p', asset: 'USDC', amount: '40' }] }); const res = await new SolverBroker().register(solver('s1', [a])).register(solver('s2', [b])).solve(o, CTX); return res.selection.selectedQuoteId === 'a'; } },
|
|
79
|
+
{ name: 'ranking is deterministic + ties break on quoteId', run: () => { const a = makeQuote({ quoteId: 'a', solverId: 's' }); const b = makeQuote({ quoteId: 'b', solverId: 's' }); return rankQuotes([b, a]).map((r) => r.quote.quoteId).join() === 'a,b'; } },
|
|
80
|
+
{ name: 'selection receipt records score components', run: async () => { const o = await swapOrder(); const a = makeQuote({ quoteId: 'a', solverId: 's' }); const res = await new SolverBroker().register(solver('s', [a])).solve(o, CTX); return 'netOutcome' in (res.selection.candidates[0]?.components ?? {}); } },
|
|
81
|
+
],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export function safetyBench() {
|
|
85
|
+
return {
|
|
86
|
+
id: 'TreasurySafetyBench', description: 'reject poisoned quotes, substitution, smuggling',
|
|
87
|
+
cases: [
|
|
88
|
+
{ name: 'rejects tampered plan digest', run: async () => { const o = await swapOrder(); const q = makeQuote({ quoteId: 'q', solverId: 's' }); q.planDigest = 'sd_bad'; return !validatePlanQuote(q, o, CTX).valid; } },
|
|
89
|
+
{ name: 'rejects over-slippage-ceiling quote', run: async () => { const o = await swapOrder(); const q = makeQuote({ quoteId: 'q', solverId: 's', signals: { slippageBps: 50 } }); return validatePlanQuote(q, o, CTX).violations.some((v) => v.startsWith('exceeds-maximumSlippageBps')); } },
|
|
90
|
+
{ name: 'rejects disallowed assumption', run: async () => { const o = await swapOrder(); const q = makeQuote({ quoteId: 'q', solverId: 's', assumptions: [{ name: 'sketchy', trustLevel: 'asserted' }] }); return validatePlanQuote(q, o, CTX).violations.includes('assumption-not-allowed:sketchy'); } },
|
|
91
|
+
{ name: 'rejects pre-sign destination substitution', run: () => { const f = { target: '0xrouter', sender: '0xt', network: 'eip155:8453' }; const c = commitSimulation({ quoteId: 'q', stepId: 's', simulatedAt: 1, fields: f, expectedEffects: [] }); return !validatePreSign(c, { ...f, target: '0xEVIL' }).valid; } },
|
|
92
|
+
{ name: 'rejects plugin capability smuggling', run: () => { try {
|
|
93
|
+
installPlugin(createPrimitiveRegistry(), fakeDefiPlugin('signing.sign'));
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
return e instanceof PluginManifestError;
|
|
98
|
+
} } },
|
|
99
|
+
],
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export function authorityBench() {
|
|
103
|
+
return {
|
|
104
|
+
id: 'TreasuryAuthorityBench', description: 'entitlement / delegation / suspension gating',
|
|
105
|
+
cases: [
|
|
106
|
+
{ name: 'denies on entitlement', run: async () => { const a = paymentsAgent({ entitle: deny('no') }); await a.assert(); try {
|
|
107
|
+
await a.invoke({ skillId: 'treasury.transfer.native', input: TRANSFER_INPUT, idempotencyKey: 'k' });
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
return e instanceof EntitlementDeniedError;
|
|
112
|
+
} } },
|
|
113
|
+
{ name: 'denies on delegation', run: async () => { const a = paymentsAgent({ delegate: deny('no') }); await a.assert(); try {
|
|
114
|
+
await a.invoke({ skillId: 'treasury.transfer.native', input: TRANSFER_INPUT, idempotencyKey: 'k' });
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
catch (e) {
|
|
118
|
+
return e instanceof DelegationDeniedError;
|
|
119
|
+
} } },
|
|
120
|
+
{ name: 'suspended skill rejects at invoke', run: async () => { const a = paymentsAgent({ healthy: false }); await a.assert(); try {
|
|
121
|
+
await a.invoke({ skillId: 'treasury.transfer.native', input: TRANSFER_INPUT, idempotencyKey: 'k' });
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
catch (e) {
|
|
125
|
+
return e instanceof SkillSuspendedError;
|
|
126
|
+
} } },
|
|
127
|
+
],
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
export function defiBench() {
|
|
131
|
+
return {
|
|
132
|
+
id: 'TreasuryDeFiBench', description: 'deferred DeFi assertion + spend',
|
|
133
|
+
cases: [
|
|
134
|
+
{ name: 'DeFi skill deferred until plugin installed', run: async () => { const reg = createPrimitiveRegistry(); const a = new ServiceAgent({ descriptor: DESC, primitives: reg, entitlements: { evaluate: allow }, delegations: { evaluate: allow }, policies: { evaluate: allow }, ledger: fakeLedger }); a.defineProfile(yieldProfile); const before = await a.assert(); const unavailable = before.unavailable.some((u) => u.skillId === 'treasury.lending.supply'); installPlugin(reg, fakeDefiPlugin()); const after = await a.reconcile(); return unavailable && after.asserted.some((s) => s.skillId === 'treasury.lending.supply'); } },
|
|
135
|
+
{ name: 'DeFi spend completes', run: async () => { const reg = createPrimitiveRegistry(); installPlugin(reg, fakeDefiPlugin()); const a = new ServiceAgent({ descriptor: DESC, primitives: reg, entitlements: { evaluate: allow }, delegations: { evaluate: allow }, policies: { evaluate: allow }, ledger: fakeLedger }); a.define(lendingSupply); await a.assert(); const r = await a.invoke({ skillId: 'treasury.lending.supply', input: { account: '0xa', network: 'eip155:8453', amount: '500' }, idempotencyKey: 'k' }); return r.status === 'completed'; } },
|
|
136
|
+
],
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
export function recoveryBench() {
|
|
140
|
+
const reg = () => { const r = createPrimitiveRegistry(); r.register({ primitiveId: 'p-boom', capabilities: [{ id: 'cap.boom', version: '1' }], async execute() { throw new Error('boom'); } }); r.register({ primitiveId: 'p-ok', capabilities: [{ id: 'cap.ok', version: '1' }], async execute() { return { ok: true }; } }); return r; };
|
|
141
|
+
const deps = (r) => ({ registry: r, context: { agentId: AGENT } });
|
|
142
|
+
return {
|
|
143
|
+
id: 'TreasuryRecoveryBench', description: 'failure policies: abort / ignore / compensate',
|
|
144
|
+
cases: [
|
|
145
|
+
{ name: 'abort fails the plan', run: async () => (await runPlan(primitivePlan('p').step('x', 'cap.boom', {}).build(), deps(reg()))).status === 'failed' },
|
|
146
|
+
{ name: 'ignore continues', run: async () => { const res = await runPlan(primitivePlan('p').step('x', 'cap.boom', {}, { failure: { mode: 'ignore', expectedReason: 'best-effort' } }).step('y', 'cap.ok', {}).output({ y: ref('y') }), deps(reg())); return res.status === 'completed' && res.failures?.[0]?.handled === 'ignored'; } },
|
|
147
|
+
{ name: 'compensate recovers', run: async () => { const res = await runPlan(primitivePlan('p').step('x', 'cap.boom', {}, { failure: { mode: 'compensate', compensationStepId: 'undo' } }).step('undo', 'cap.ok', {}).output({ undo: ref('undo') }), deps(reg())); return res.status === 'completed' && res.failures?.[0]?.handled === 'compensated'; } },
|
|
148
|
+
],
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
export function accountingBench() {
|
|
152
|
+
return {
|
|
153
|
+
id: 'TreasuryAccountingBench', description: 'ledger reserve/finalize + receipt + reconciliation match',
|
|
154
|
+
cases: [
|
|
155
|
+
{ name: 'reserve/finalize produce a journal id', run: async () => { const a = paymentsAgent(); await a.assert(); const r = await a.invoke({ skillId: 'treasury.transfer.native', input: TRANSFER_INPUT, idempotencyKey: 'k1' }); return r.execution.outputs.journal === 'jnl-res-k1'; } },
|
|
156
|
+
{ name: 'receipt summary emits the canonical audit event', run: async () => { const a = paymentsAgent(); await a.assert(); const r = await a.invoke({ skillId: 'treasury.transfer.native', input: TRANSFER_INPUT, idempotencyKey: 'k2' }); return summarizeTreasuryReceipt(r).auditEvent === 'treasury.transfer.native.completed'; } },
|
|
157
|
+
{ name: 'allocations reconcile to net (gross − fees)', run: () => { const gross = 1000, fees = 5, net = gross - fees; const allocations = [600, 395]; return allocations.reduce((x, y) => x + y, 0) === net; } },
|
|
158
|
+
{ name: 'risk engine flags an over-exposure', run: () => evaluateRisk(aggregateExposure({ totalValue: '100', perProtocol: { aave: 1200 } }), { maxProtocolExposureBps: 1000 }).allowed === false },
|
|
159
|
+
],
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/** All seven treasury benchmarks. */
|
|
163
|
+
export function treasuryBenchmarks() {
|
|
164
|
+
return [intentBench(), planBench(), safetyBench(), authorityBench(), defiBench(), recoveryBench(), accountingBench()];
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=suite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"suite.js","sourceRoot":"","sources":["../../src/benchmarks/suite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
export declare const TREASURY_CAPABILITIES: {
|
|
2
|
+
/** Read account inventory / balances / activity. */
|
|
3
|
+
readonly accountRead: "account.read";
|
|
4
|
+
/** Read network metadata + status. */
|
|
5
|
+
readonly networkRead: "network.read";
|
|
6
|
+
/** Read market data (price, ohlcv). */
|
|
7
|
+
readonly marketDataRead: "market-data.read";
|
|
8
|
+
/** Produce a signature over a message / typed-data digest (key material stays inside the provider). */
|
|
9
|
+
readonly sign: "signing.sign";
|
|
10
|
+
/** Dry-run a transaction without broadcasting. */
|
|
11
|
+
readonly txSimulate: "transaction.simulate";
|
|
12
|
+
/** Broadcast a raw transaction. */
|
|
13
|
+
readonly txSend: "transaction.send";
|
|
14
|
+
/** Move value (native or token) — the payments/x402 rail at the host. */
|
|
15
|
+
readonly transferExecute: "transfer.execute";
|
|
16
|
+
/** Quote a swap (read). */
|
|
17
|
+
readonly swapQuote: "swap.quote";
|
|
18
|
+
/** Execute a swap (trade). */
|
|
19
|
+
readonly swapExecute: "swap.execute";
|
|
20
|
+
/** Read perp positions. */
|
|
21
|
+
readonly perpRead: "perp.read";
|
|
22
|
+
/** Open / close a perp position (trade). */
|
|
23
|
+
readonly perpExecute: "perp.execute";
|
|
24
|
+
/** Read prediction markets. */
|
|
25
|
+
readonly predictionRead: "prediction.read";
|
|
26
|
+
/** Place a prediction-market bet (trade). */
|
|
27
|
+
readonly predictionExecute: "prediction.execute";
|
|
28
|
+
/** Mint / revoke delegations the treasury issues to others. */
|
|
29
|
+
readonly delegationManage: "delegation.manage";
|
|
30
|
+
/** Read entitlements. */
|
|
31
|
+
readonly entitlementRead: "entitlement.read";
|
|
32
|
+
/** Issue / consume entitlements. */
|
|
33
|
+
readonly entitlementManage: "entitlement.manage";
|
|
34
|
+
/** Read portfolio snapshot / value / exposure. */
|
|
35
|
+
readonly portfolioRead: "portfolio.read";
|
|
36
|
+
/** Rebalance a portfolio toward target allocations. */
|
|
37
|
+
readonly portfolioRebalance: "portfolio.rebalance";
|
|
38
|
+
/** Read lending positions / health. */
|
|
39
|
+
readonly lendingRead: "lending.read";
|
|
40
|
+
/** Supply / withdraw / borrow / repay on a lending market. */
|
|
41
|
+
readonly lendingExecute: "lending.execute";
|
|
42
|
+
/** Read staking positions. */
|
|
43
|
+
readonly stakingRead: "staking.read";
|
|
44
|
+
/** Stake / unstake / claim rewards. */
|
|
45
|
+
readonly stakingExecute: "staking.execute";
|
|
46
|
+
/** Read liquidity positions. */
|
|
47
|
+
readonly liquidityRead: "liquidity.read";
|
|
48
|
+
/** Add / remove liquidity, collect fees. */
|
|
49
|
+
readonly liquidityExecute: "liquidity.execute";
|
|
50
|
+
/** Read vault positions. */
|
|
51
|
+
readonly vaultRead: "vault.read";
|
|
52
|
+
/** Deposit / withdraw / migrate a vault position. */
|
|
53
|
+
readonly vaultExecute: "vault.execute";
|
|
54
|
+
/** Quote a cross-chain bridge route (read). */
|
|
55
|
+
readonly bridgeQuote: "bridge.quote";
|
|
56
|
+
/** Read bridge transfer status. */
|
|
57
|
+
readonly bridgeRead: "bridge.read";
|
|
58
|
+
/** Execute / recover a cross-chain bridge transfer. */
|
|
59
|
+
readonly bridgeExecute: "bridge.execute";
|
|
60
|
+
};
|
|
61
|
+
export type TreasuryCapabilityId = (typeof TREASURY_CAPABILITIES)[keyof typeof TREASURY_CAPABILITIES];
|
|
62
|
+
/** Asset classes used in capability constraints + normalized schemas (no vendor types). */
|
|
63
|
+
export declare const ASSET_TYPE: {
|
|
64
|
+
readonly native: "native";
|
|
65
|
+
readonly erc20: "erc20";
|
|
66
|
+
};
|
|
67
|
+
export type AssetType = (typeof ASSET_TYPE)[keyof typeof ASSET_TYPE];
|
|
68
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,qBAAqB;IAChC,oDAAoD;;IAEpD,sCAAsC;;IAEtC,uCAAuC;;IAEvC,uGAAuG;;IAEvG,kDAAkD;;IAElD,mCAAmC;;IAEnC,yEAAyE;;IAEzE,2BAA2B;;IAE3B,8BAA8B;;IAE9B,2BAA2B;;IAE3B,4CAA4C;;IAE5C,+BAA+B;;IAE/B,6CAA6C;;IAE7C,+DAA+D;;IAE/D,yBAAyB;;IAEzB,oCAAoC;;IAIpC,kDAAkD;;IAElD,uDAAuD;;IAEvD,uCAAuC;;IAEvC,8DAA8D;;IAE9D,8BAA8B;;IAE9B,uCAAuC;;IAEvC,gCAAgC;;IAEhC,4CAA4C;;IAE5C,4BAA4B;;IAE5B,qDAAqD;;IAErD,+CAA+C;;IAE/C,mCAAmC;;IAEnC,uDAAuD;;CAE/C,CAAC;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAEtG,2FAA2F;AAC3F,eAAO,MAAM,UAAU;;;CAAgD,CAAC;AACxE,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// Treasury capability ids (spec 283). These are the LOGICAL capabilities a treasury skill requires; a host
|
|
2
|
+
// asserts a skill only when an installed provider (Primitive) advertises the matching capability. Providers
|
|
3
|
+
// are EXTERNAL (ADR-0037) — this catalog never imports or implements one. Keep this list the single source
|
|
4
|
+
// of the capability vocabulary so the catalog and any provider author agree on the strings.
|
|
5
|
+
export const TREASURY_CAPABILITIES = {
|
|
6
|
+
/** Read account inventory / balances / activity. */
|
|
7
|
+
accountRead: 'account.read',
|
|
8
|
+
/** Read network metadata + status. */
|
|
9
|
+
networkRead: 'network.read',
|
|
10
|
+
/** Read market data (price, ohlcv). */
|
|
11
|
+
marketDataRead: 'market-data.read',
|
|
12
|
+
/** Produce a signature over a message / typed-data digest (key material stays inside the provider). */
|
|
13
|
+
sign: 'signing.sign',
|
|
14
|
+
/** Dry-run a transaction without broadcasting. */
|
|
15
|
+
txSimulate: 'transaction.simulate',
|
|
16
|
+
/** Broadcast a raw transaction. */
|
|
17
|
+
txSend: 'transaction.send',
|
|
18
|
+
/** Move value (native or token) — the payments/x402 rail at the host. */
|
|
19
|
+
transferExecute: 'transfer.execute',
|
|
20
|
+
/** Quote a swap (read). */
|
|
21
|
+
swapQuote: 'swap.quote',
|
|
22
|
+
/** Execute a swap (trade). */
|
|
23
|
+
swapExecute: 'swap.execute',
|
|
24
|
+
/** Read perp positions. */
|
|
25
|
+
perpRead: 'perp.read',
|
|
26
|
+
/** Open / close a perp position (trade). */
|
|
27
|
+
perpExecute: 'perp.execute',
|
|
28
|
+
/** Read prediction markets. */
|
|
29
|
+
predictionRead: 'prediction.read',
|
|
30
|
+
/** Place a prediction-market bet (trade). */
|
|
31
|
+
predictionExecute: 'prediction.execute',
|
|
32
|
+
/** Mint / revoke delegations the treasury issues to others. */
|
|
33
|
+
delegationManage: 'delegation.manage',
|
|
34
|
+
/** Read entitlements. */
|
|
35
|
+
entitlementRead: 'entitlement.read',
|
|
36
|
+
/** Issue / consume entitlements. */
|
|
37
|
+
entitlementManage: 'entitlement.manage',
|
|
38
|
+
// ── DeFi families (spec 284 PR-E) — deferred-asserted until a provider/plugin advertises them ──
|
|
39
|
+
/** Read portfolio snapshot / value / exposure. */
|
|
40
|
+
portfolioRead: 'portfolio.read',
|
|
41
|
+
/** Rebalance a portfolio toward target allocations. */
|
|
42
|
+
portfolioRebalance: 'portfolio.rebalance',
|
|
43
|
+
/** Read lending positions / health. */
|
|
44
|
+
lendingRead: 'lending.read',
|
|
45
|
+
/** Supply / withdraw / borrow / repay on a lending market. */
|
|
46
|
+
lendingExecute: 'lending.execute',
|
|
47
|
+
/** Read staking positions. */
|
|
48
|
+
stakingRead: 'staking.read',
|
|
49
|
+
/** Stake / unstake / claim rewards. */
|
|
50
|
+
stakingExecute: 'staking.execute',
|
|
51
|
+
/** Read liquidity positions. */
|
|
52
|
+
liquidityRead: 'liquidity.read',
|
|
53
|
+
/** Add / remove liquidity, collect fees. */
|
|
54
|
+
liquidityExecute: 'liquidity.execute',
|
|
55
|
+
/** Read vault positions. */
|
|
56
|
+
vaultRead: 'vault.read',
|
|
57
|
+
/** Deposit / withdraw / migrate a vault position. */
|
|
58
|
+
vaultExecute: 'vault.execute',
|
|
59
|
+
/** Quote a cross-chain bridge route (read). */
|
|
60
|
+
bridgeQuote: 'bridge.quote',
|
|
61
|
+
/** Read bridge transfer status. */
|
|
62
|
+
bridgeRead: 'bridge.read',
|
|
63
|
+
/** Execute / recover a cross-chain bridge transfer. */
|
|
64
|
+
bridgeExecute: 'bridge.execute',
|
|
65
|
+
};
|
|
66
|
+
/** Asset classes used in capability constraints + normalized schemas (no vendor types). */
|
|
67
|
+
export const ASSET_TYPE = { native: 'native', erc20: 'erc20' };
|
|
68
|
+
//# sourceMappingURL=capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../src/capabilities.ts"],"names":[],"mappings":"AAAA,2GAA2G;AAC3G,4GAA4G;AAC5G,2GAA2G;AAC3G,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,oDAAoD;IACpD,WAAW,EAAE,cAAc;IAC3B,sCAAsC;IACtC,WAAW,EAAE,cAAc;IAC3B,uCAAuC;IACvC,cAAc,EAAE,kBAAkB;IAClC,uGAAuG;IACvG,IAAI,EAAE,cAAc;IACpB,kDAAkD;IAClD,UAAU,EAAE,sBAAsB;IAClC,mCAAmC;IACnC,MAAM,EAAE,kBAAkB;IAC1B,yEAAyE;IACzE,eAAe,EAAE,kBAAkB;IACnC,2BAA2B;IAC3B,SAAS,EAAE,YAAY;IACvB,8BAA8B;IAC9B,WAAW,EAAE,cAAc;IAC3B,2BAA2B;IAC3B,QAAQ,EAAE,WAAW;IACrB,4CAA4C;IAC5C,WAAW,EAAE,cAAc;IAC3B,+BAA+B;IAC/B,cAAc,EAAE,iBAAiB;IACjC,6CAA6C;IAC7C,iBAAiB,EAAE,oBAAoB;IACvC,+DAA+D;IAC/D,gBAAgB,EAAE,mBAAmB;IACrC,yBAAyB;IACzB,eAAe,EAAE,kBAAkB;IACnC,oCAAoC;IACpC,iBAAiB,EAAE,oBAAoB;IAEvC,kGAAkG;IAClG,kDAAkD;IAClD,aAAa,EAAE,gBAAgB;IAC/B,uDAAuD;IACvD,kBAAkB,EAAE,qBAAqB;IACzC,uCAAuC;IACvC,WAAW,EAAE,cAAc;IAC3B,8DAA8D;IAC9D,cAAc,EAAE,iBAAiB;IACjC,8BAA8B;IAC9B,WAAW,EAAE,cAAc;IAC3B,uCAAuC;IACvC,cAAc,EAAE,iBAAiB;IACjC,gCAAgC;IAChC,aAAa,EAAE,gBAAgB;IAC/B,4CAA4C;IAC5C,gBAAgB,EAAE,mBAAmB;IACrC,4BAA4B;IAC5B,SAAS,EAAE,YAAY;IACvB,qDAAqD;IACrD,YAAY,EAAE,eAAe;IAC7B,+CAA+C;IAC/C,WAAW,EAAE,cAAc;IAC3B,mCAAmC;IACnC,UAAU,EAAE,aAAa;IACzB,uDAAuD;IACvD,aAAa,EAAE,gBAAgB;CACvB,CAAC;AAIX,2FAA2F;AAC3F,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAW,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type AnySkillDefinition } from '@agenticprimitives/service-agent';
|
|
2
|
+
export declare const portfolioSnapshot: AnySkillDefinition;
|
|
3
|
+
export declare const portfolioValue: AnySkillDefinition;
|
|
4
|
+
export declare const portfolioExposure: AnySkillDefinition;
|
|
5
|
+
export declare const portfolioRebalance: AnySkillDefinition;
|
|
6
|
+
export declare const lendingPosition: AnySkillDefinition;
|
|
7
|
+
export declare const lendingSupply: AnySkillDefinition;
|
|
8
|
+
export declare const lendingRepay: AnySkillDefinition;
|
|
9
|
+
export declare const lendingWithdraw: AnySkillDefinition;
|
|
10
|
+
export declare const lendingBorrow: AnySkillDefinition;
|
|
11
|
+
export declare const stakingPosition: AnySkillDefinition;
|
|
12
|
+
export declare const stakingStake: AnySkillDefinition;
|
|
13
|
+
export declare const stakingUnstake: AnySkillDefinition;
|
|
14
|
+
export declare const stakingClaim: AnySkillDefinition;
|
|
15
|
+
export declare const liquidityPosition: AnySkillDefinition;
|
|
16
|
+
export declare const liquidityAdd: AnySkillDefinition;
|
|
17
|
+
export declare const liquidityRemove: AnySkillDefinition;
|
|
18
|
+
export declare const liquidityCollectFees: AnySkillDefinition;
|
|
19
|
+
export declare const vaultPosition: AnySkillDefinition;
|
|
20
|
+
export declare const vaultDeposit: AnySkillDefinition;
|
|
21
|
+
export declare const vaultWithdraw: AnySkillDefinition;
|
|
22
|
+
export declare const vaultMigrate: AnySkillDefinition;
|
|
23
|
+
export declare const bridgeQuote: AnySkillDefinition;
|
|
24
|
+
export declare const bridgeStatus: AnySkillDefinition;
|
|
25
|
+
export declare const bridgeExecute: AnySkillDefinition;
|
|
26
|
+
export declare const bridgeRecover: AnySkillDefinition;
|
|
27
|
+
/** Every DeFi-family skill, in catalog order. */
|
|
28
|
+
export declare const DEFI_SKILLS: AnySkillDefinition[];
|
|
29
|
+
//# sourceMappingURL=catalog-defi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog-defi.d.ts","sourceRoot":"","sources":["../src/catalog-defi.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,KAAK,kBAAkB,EAA8B,MAAM,kCAAkC,CAAC;AAsCpH,eAAO,MAAM,iBAAiB,oBAAoF,CAAC;AACnH,eAAO,MAAM,cAAc,oBAA8E,CAAC;AAC1G,eAAO,MAAM,iBAAiB,oBAAoF,CAAC;AACnH,eAAO,MAAM,kBAAkB,oBAAqG,CAAC;AAGrI,eAAO,MAAM,eAAe,oBAA8E,CAAC;AAC3G,eAAO,MAAM,aAAa,oBAAwF,CAAC;AACnH,eAAO,MAAM,YAAY,oBAAyE,CAAC;AACnG,eAAO,MAAM,eAAe,oBAA0F,CAAC;AACvH,eAAO,MAAM,aAAa,oBAA+E,CAAC;AAG1G,eAAO,MAAM,eAAe,oBAA8E,CAAC;AAC3G,eAAO,MAAM,YAAY,oBAAoE,CAAC;AAC9F,eAAO,MAAM,cAAc,oBAAiF,CAAC;AAC7G,eAAO,MAAM,YAAY,oBAA6F,CAAC;AAGvH,eAAO,MAAM,iBAAiB,oBAAoF,CAAC;AACnH,eAAO,MAAM,YAAY,oBAA8E,CAAC;AACxG,eAAO,MAAM,eAAe,oBAA6F,CAAC;AAC1H,eAAO,MAAM,oBAAoB,oBAAkG,CAAC;AAGpI,eAAO,MAAM,aAAa,oBAAwE,CAAC;AACnG,eAAO,MAAM,YAAY,oBAA6E,CAAC;AACvG,eAAO,MAAM,aAAa,oBAA0F,CAAC;AACrH,eAAO,MAAM,YAAY,oBAAuG,CAAC;AAGjI,eAAO,MAAM,WAAW,oBAAsE,CAAC;AAC/F,eAAO,MAAM,YAAY,oBAAuE,CAAC;AACjG,eAAO,MAAM,aAAa,oBAAsF,CAAC;AACjH,eAAO,MAAM,aAAa,oBAAgH,CAAC;AAE3I,iDAAiD;AACjD,eAAO,MAAM,WAAW,EAAE,kBAAkB,EAO3C,CAAC"}
|