@temporalabs/treasury 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,153 +1,126 @@
1
- # Agent Treasury
1
+ # Open Agent Treasury
2
2
 
3
- **Treasury management system for AI agents.** By Tempora Labs.
3
+ **The open-source treasury management system (TMS) for AI agents.** Built by Tempora Labs and contributors.
4
4
 
5
5
  [![ci](https://github.com/TemporaLabs/treasury/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/TemporaLabs/treasury/actions/workflows/ci.yml)
6
6
  [![DCO](https://github.com/TemporaLabs/treasury/actions/workflows/dco.yml/badge.svg)](https://github.com/TemporaLabs/treasury/actions/workflows/dco.yml)
7
7
 
8
- Agent Treasury gives an agent the tools to manage on-chain capital, starting with earning yield on
9
- idle USDC. Its first skill, **Earn**, lets an agent inspect Tempora-curated vaults on Base, check
10
- what a position is worth and how much of it is withdrawable now, and prepare deposits and
11
- withdrawals. The agent's own wallet stays the account and the agent's own signer stays the only
12
- thing that can move money — Agent Treasury prepares unsigned transactions; it never signs.
8
+ <p align="center">
9
+ <img src="docs/assets/oat-mascot.svg" alt="Open Agent Treasury mascot: a blue pirate robot holding a purple treasure chest" width="320" height="320">
10
+ </p>
13
11
 
14
- > **Experimental — pre-1.0.** Behaviour may change between versions. Review every transaction before
15
- > signing it, and read [`docs/risks.md`](docs/risks.md) before a first deposit.
16
12
 
17
- ## Why
13
+ Open Agent Treasury (OAT) helps agents manage on-chain capital. Its first skill, **Earn**, lets
14
+ agents inspect Tempora-curated vaults on Base, track USDC positions, and prepare deposits and
15
+ withdrawals. It ships as an agent plugin, an MCP server, and a TypeScript/JavaScript library.
18
16
 
19
- Agents are starting to hold real balances — budgets, revenue, working capital — and most of it sits
20
- idle in a wallet. Treasury management is the discipline of knowing what money is available,
21
- deciding what must stay available, controlling how it moves, and putting genuine surplus to work
22
- within a risk budget. Agent Treasury gives an agent that discipline as tools, with the rule a
23
- treasurer works under built in: it can measure, decide and prepare, and only the owner's signer can
24
- execute.
17
+ **OAT prepares transactions. Your signer executes them.** It never holds private keys, signs,
18
+ or sends transactions. You decide how much capital an agent may put to work.
25
19
 
26
- ## The first skill: Earn
20
+ > **Experimental — pre-1.0. Real funds, real risk.** Returns are variable, capital is at risk,
21
+ > and withdrawals depend on available liquidity. Review every transaction before signing and
22
+ > read the [risks](docs/risks.md) before depositing.
27
23
 
28
- Agent Treasury ships one skill today, **`earn`** — put idle USDC to work in a Tempora vault and
29
- manage the position.
24
+ ## What you can do
30
25
 
31
- - **Deposit.** Idle USDC goes into a Tempora vault. Before anything is built, the skill shows the
32
- terms once and checks, by simulating the deposit, that this account is actually allowed in.
33
- - **Hold.** The position earns the vault's variable yield. The skill reports what it is worth, what
34
- went in and what it has earned, read from the vault's own on-chain records — never a guess.
35
- - **Withdraw.** Some or all, subject to the vault's available liquidity. No vault offered today has a
36
- lock-up or queues withdrawals: a withdrawal settles in the same transaction, and the skill
37
- measures what can be withdrawn *right now* before you sign.
26
+ - **Inspect vaults:** check assets, fees, and deposit access.
27
+ - **Prepare a deposit:** review terms and simulate access before building unsigned calls.
28
+ - **Track a position:** see its value, deposits, and earnings from on-chain records.
29
+ - **Prepare a withdrawal:** check how much is withdrawable now and build unsigned calls.
38
30
 
39
- What amount is surplus is the operator's call, not the skill's: a balance in a wallet is not
40
- permission to invest it. Everything is USDC in, USDC out, and every action comes back as
41
- **unsigned** transactions for the agent's own signer:
31
+ Earn currently supports **USDC in, USDC out** through Tempora's ERC-4626 vaults on Base.
32
+ See the [eight `earn_*` tools](docs/tools.md) for inputs, outputs, and limits.
42
33
 
43
- ```
44
- agent ──▶ Agent Treasury ──▶ { requires_signature: true, status: "unsigned", calls: [...] }
45
- │
46
- your signer — a wallet, a policy engine, a token-bound account
47
- │
48
- Base
49
- ```
50
-
51
- Agent Treasury cannot sign, send or transfer, and there is no tool that would let it. A test fails
52
- the build if anything in this package reads a private key.
53
-
54
- ## Where the money goes
34
+ ## Quick start
55
35
 
56
- A Tempora vault is an ERC-4626 vault on Base, curated by Tempora Labs, that lends USDC into
57
- on-chain lending markets. **Cash Plus USDC** is the offering: stablecoin only, no lock-up, yield
58
- from lending, positions readable on-chain by anyone. These are experimental, yield-bearing vault
59
- positions, not bank savings accounts: returns are variable, capital is at risk, and a withdrawal
60
- depends on the liquidity available when it is made.
36
+ **Requires Node.js 22+ on your `PATH`.** Use a keyed Base RPC; the public fallback rate-limits quickly.
61
37
 
62
- | vault | chassis | deposits | address |
63
- |---|---|---|---|
64
- | **Cash Plus USDC (Test 2)** — the default | Morpho Vault V2 | open to any account | [`0x040fCA…134Cf`](https://basescan.org/address/0x040fCA12673778FEED5DA7b2ccFbbAb0cc0134Cf) |
65
- | Cash Plus USDC (Test 2A) | IPOR Fusion | whitelist-gated | [`0x1516D2…299ef`](https://basescan.org/address/0x1516D2c082b9cc9af852B1Ebc828f168F27299ef) |
38
+ ### Claude Code
66
39
 
67
- **The default is Cash Plus USDC (Test 2).** It lends through Morpho on Base, keeps a liquid balance
68
- for withdrawals, and any account can deposit. "Test" is in the name on purpose: these are the
69
- test-series vaults — real contracts, real USDC, real positions — operated by Tempora while the
70
- product is proven. The full detail, with the block each fact was measured at, is in
71
- [`docs/vaults.md`](docs/vaults.md).
40
+ ```bash
41
+ export TREASURY_RPC_BASE=https://... # replace with your Base RPC URL
42
+ claude plugin marketplace add TemporaLabs/treasury@v0.1.1
43
+ claude plugin install treasury@treasury
44
+ ```
72
45
 
73
- **Liquidity.** No vault offered today has a lock-up. A withdrawal is paid from the
74
- vault's liquid balance and then by unwinding positions in the same transaction; under stress part
75
- of a position may take longer, and the skill measures what is exitable now rather than promising.
46
+ Restart your Claude Code session after installing so the MCP tools connect. Keep the `TemporaLabs/treasury@v0.1.1` ref
47
+ explicit so the install stays on a release rather than tracking the default branch. Upgrading an
48
+ earlier install? Run `claude plugin marketplace remove treasury` first, then the two `claude plugin` lines above
49
+ ([details](docs/install.md#upgrading-an-earlier-install)).
76
50
 
77
- **Yield.** A floating USDC lending rate — what the vault's positions earn, less any vault fee. The
78
- default charged no fee and was earning **4.4% net APY** (30-day average 4.4%) when measured on
79
- 2026-09-17 through Morpho's public API — by a human, not by this client, which quotes no rate at
80
- all. The skill reports the share price and what your own position has earned, from the vault's
81
- events. The live rate is
82
- on-chain, and a yield is always a measurement of the past, not a promise.
51
+ The plugin is the [`plugin/`](plugin/) folder of this repository: its manifests, the Earn skill, and a
52
+ copy of this repository's own server bundle, made in the same commit.
83
53
 
84
- **Fees and interest.** The default is a Tempora-curated destination. Its fees are readable on-chain
85
- — none was set at the last measurement — and Tempora can set them as curator. Agent Treasury offers it
86
- because it is Tempora's, not because it is the best-yielding vault available.
54
+ ### Other MCP hosts
87
55
 
88
- ## An example
56
+ ```bash
57
+ npm install @temporalabs/treasury@0.1.1
58
+ ```
89
59
 
60
+ Add the server to your host's MCP configuration, replacing the path and RPC URL:
61
+
62
+ ```json
63
+ {
64
+ "mcpServers": {
65
+ "treasury": {
66
+ "command": "node",
67
+ "args": ["<absolute-project-path>/node_modules/@temporalabs/treasury/dist/mcp-server.mjs"],
68
+ "env": { "TREASURY_RPC_BASE": "https://..." }
69
+ }
70
+ }
71
+ }
90
72
  ```
91
- you Put 25 USDC to work.
92
73
 
93
- agent Cash Plus USDC (Test 2) is open to this account. 25 USDC buys <shares> at today's
94
- share price. Two transactions to sign, in order:
95
- { requires_signature: true, status: "unsigned",
96
- calls: [ approve(USDC → vault, 25 USDC), deposit(25 USDC, account) ] }
74
+ Running the bundle by path, as shown, works for every version; from v0.1.1 the `treasury-mcp` command also starts the server.
75
+ For library usage, host setup, and troubleshooting, see [installation](docs/install.md).
97
76
 
98
- you Sign them — or don't. Nothing has happened yet.
77
+ ### Try it
99
78
 
100
- …later…
79
+ Ask your agent:
101
80
 
102
- you What is it worth, and how much can I take out today?
81
+ > Show me the available vaults and their risks. Then prepare a 25 USDC deposit into the default vault.
103
82
 
104
- agent 25.09 USDC; 25.09 withdrawable now. Put in 25.00, earned 0.09.
105
- ```
83
+ OAT returns unsigned calls for your signer to review and execute. Preparing a deposit moves no money.
84
+ Later, ask: **“What is my position worth, and how much can I withdraw now?”**
106
85
 
107
- ## Install
86
+ ## Vaults
108
87
 
109
- **Claude Code** — pin to a release tag; a tag is immutable, so the install cannot drift:
88
+ The default, **Cash Plus USDC (Test 2)**, uses Morpho Vault V2 and is open to any account.
110
89
 
111
- ```bash
112
- claude plugin marketplace add TemporaLabs/treasury-plugin@v0.1.0
113
- claude plugin install treasury@treasury
114
- export TREASURY_RPC_BASE=https://... # a keyed Base RPC; unset = the public RPC, which rate-limits quickly
115
- ```
90
+ Explore the default vault in the [Morpho dashboard](https://app.morpho.org/base/vault/0x040fCA12673778FEED5DA7b2ccFbbAb0cc0134Cf/tempora-labs-cash-plus-usdc-test-2#overview) for a visual overview.
91
+
92
+ **Cash Plus USDC (Test 2A)** uses IPOR Fusion and requires whitelist access. Both are experimental
93
+ vaults using real USDC, not bank savings accounts. Neither currently has a lock-up, but liquidity
94
+ can limit withdrawals.
116
95
 
117
- Before a release is tagged, pin its release branch instead —
118
- `claude plugin marketplace add TemporaLabs/treasury-plugin@release/v0.1.0`. Dropping the `@<ref>`
119
- suffix tracks the plugin repository's default branch.
96
+ Tempora Labs curates these vaults and can set fees. OAT offers Tempora's vaults; it does not compare
97
+ them against the market or promise the best yield. It reports your position's value and earnings,
98
+ not a quoted APY.
120
99
 
121
- The plugin is packaged in [TemporaLabs/treasury-plugin](https://github.com/TemporaLabs/treasury-plugin)
122
- from this repository's releases. Any other MCP host runs the same bundled server —
123
- [`docs/install.md`](docs/install.md).
100
+ See [vault details](docs/vaults.md) for addresses, access rules, fees, and dated measurements.
124
101
 
125
102
  ## Security
126
103
 
127
- - **No keys, no custody.** Funds move only in transactions your signer approves, from your account.
128
- - **No telemetry.** The server calls the RPC you configure and nothing else — no analytics, no
129
- yield API, no vendor. A keyed RPC URL is treated as a secret and never repeated in output.
130
- - **A verifiable bundle.** The server is rebuilt in CI and must match byte-for-byte; every build
131
- carries a provenance attestation you can check —
132
- [`docs/runbooks/verify_the_bundle.md`](docs/runbooks/verify_the_bundle.md).
133
- - **Found a vulnerability?** [`SECURITY.md`](SECURITY.md) — privately, never as a public issue.
104
+ - **No keys or custody:** your wallet holds the position; only your signer can move funds.
105
+ - **Direct RPC access:** no Tempora service in the request path and no telemetry. Keyed RPC URLs are redacted.
106
+ - **Verifiable builds:** CI checks the committed bundle; [verify its provenance](docs/runbooks/verify_the_bundle.md).
107
+ - **Private vulnerability reporting:** follow [SECURITY.md](SECURITY.md), not a public issue.
134
108
 
135
109
  ## Documentation
136
110
 
137
- [`docs/`](docs/README.md) — install, the tools under the skill, the vaults, the risks,
138
- configuration, the security model, and a runbook for signing and sending.
139
- Release notes: [`CHANGELOG.md`](CHANGELOG.md).
111
+ - [Tool reference](docs/tools.md) · [Configuration](docs/configuration.md)
112
+ - [Risks](docs/risks.md) · [Security model](docs/security-model.md)
113
+ - [Signing and sending](docs/runbooks/sign_and_send.md) · [All docs](docs/README.md) · [Changelog](CHANGELOG.md)
140
114
 
141
115
  ## Contributing
142
116
 
143
- Pull requests are welcome. Commits carry a `Signed-off-by` trailer (`git commit -s`) certifying the
144
- [Developer Certificate of Origin](DCO.md). How to build, test and what a change must keep true:
145
- [`CONTRIBUTING.md`](CONTRIBUTING.md).
117
+ Feedback and pull requests are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for development,
118
+ testing, and contribution guidelines. Every commit needs a `Signed-off-by` trailer (`git commit -s`)
119
+ certifying the [Developer Certificate of Origin](DCO.md).
146
120
 
147
121
  ## Licence
148
122
 
149
- Agent Treasury is open source under the [Apache License, Version 2.0](LICENSE). Use it, modify it,
150
- redistribute it — inside commercial agents, wallets and hosted services — keeping [`LICENSE`](LICENSE)
151
- and [`NOTICE`](NOTICE). The Tempora names and marks are not licensed (section 6): a fork may say it is based on
152
- Agent Treasury; it may not present itself as the official distribution. Tempora's fund-operations infrastructure is separate and is not
153
- part of this repository. More: [`docs/licensing.md`](docs/licensing.md).
123
+ [Apache-2.0](LICENSE). Keep [LICENSE](LICENSE) and [NOTICE](NOTICE) when redistributing.
124
+ The licence does not grant rights to Tempora's names or marks; forks must not claim to be the
125
+ official distribution. Tempora's fund-operations infrastructure is separate from this repository.
126
+ See [licensing](docs/licensing.md) for details.
@@ -1,28 +1,3 @@
1
- /**
2
- * Agent Treasury — MCP server (earn skill).
3
- *
4
- * Read tools, quotes, and UNSIGNED call builders only. There is no `sign` and no `send` tool, and
5
- * there will not be one here: the skill supplies intent, the consumer supplies the signer. Anything
6
- * that holds a key lives outside this process and receives the calls this server emits.
7
- *
8
- * Eight tools, all `earn_`-prefixed so later skills can sit beside them
9
- * in one namespace:
10
- *
11
- * earn_vaults earn_terms earn_quote (direction) earn_status (no args = health)
12
- * earn_balance earn_claim earn_prepare_deposit earn_prepare_withdraw
13
- *
14
- * Two contracts worth stating here because they are easy to erode:
15
- *
16
- * 1. `earn_prepare_*` return an ENVELOPE, `{ requires_signature, status: "unsigned", calls }`,
17
- * not a bare array. This cannot stop a model reporting "deposited" — nothing at this boundary
18
- * can — but it makes an unsigned build structurally distinguishable from a completed one, so a
19
- * consumer or a test can assert on it. Wrapped HERE only: `buildDeposit`/`buildWithdraw` still
20
- * return arrays, so a direct library consumer (see docs/runbooks/sign_and_send.md) gets the
21
- * naked calls exactly as before.
22
- * 2. The address argument is `account` everywhere. It was `depositor`, `owner` and `principal` in
23
- * three different tools. `receiver` stays distinct because it genuinely is: `account` owns the
24
- * shares, `receiver` is where the money lands.
25
- */
26
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
27
2
  /**
28
3
  * What a signer must do for these calls to land exactly once. Each rule is a failure measured on a
@@ -23,6 +23,8 @@
23
23
  * three different tools. `receiver` stays distinct because it genuinely is: `account` owns the
24
24
  * shares, `receiver` is where the money lands.
25
25
  */
26
+ import { realpathSync } from "node:fs";
27
+ import { fileURLToPath } from "node:url";
26
28
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
27
29
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
28
30
  import { z } from "zod";
@@ -228,7 +230,7 @@ export function buildServer() {
228
230
  }));
229
231
  server.registerTool("earn_quote", {
230
232
  title: "Quote a deposit or a withdrawal",
231
- description: "Pre-trade quote, in USDC. direction=deposit: expected shares (previewDeposit), share price, and the access verdict from a simulated deposit(). This client quotes no rate: an ERC-4626 vault exposes none, and it calls no yield API. direction=withdraw: shares burned (previewWithdraw), shares held, a simulated withdraw() verdict, maxWithdraw advisory only (Morpho V2 returns 0 by design), and queue depth. Run before the matching earn_prepare_* tool.",
233
+ description: "Pre-trade quote, in USDC. direction=deposit: expected shares (previewDeposit), share price, and the access verdict from a simulated deposit(). This client quotes no rate: an ERC-4626 vault exposes none, and it calls no yield API. direction=withdraw: shares burned (previewWithdraw), shares held, a simulated withdraw() verdict, `instantLiquidity` — the vault's own liquid balance of the asset, which is chassis-specific in BOTH directions: a Fusion vault without instant-withdrawal fuses pays only from it, so there it is the ceiling maxWithdraw() does not know; a Morpho V2 vault holds almost none and still pays out of its markets, so there it is near zero and NOT a ceiling — the simulated verdict is what decides — maxWithdraw advisory only (Morpho V2 returns 0 by design), and queue depth. Run before the matching earn_prepare_* tool.",
232
234
  inputSchema: {
233
235
  vault: vaultArg,
234
236
  account: accountArg,
@@ -293,7 +295,7 @@ export function buildServer() {
293
295
  }));
294
296
  server.registerTool("earn_balance", {
295
297
  title: "Earn position",
296
- description: "Shares held (exact string + display), current USDC value, WHAT CAN ACTUALLY BE WITHDRAWN NOW (`exit`, measured by simulating the withdrawal — `usdcValue` is what the position is worth, `exit.exitableNow` is what the vault can pay; on a Fusion vault without instant-withdrawal fuses they differ by 10x and `maxWithdraw()` reports the larger one), entry basis and accrued yield derived from the vault's own Deposit/Withdraw events for this account, and share price. `scan.complete` says whether the event window covered the whole position; `sharesExact` is what earn_prepare_withdraw({ all }) needs. `scan.depositTxs` and `scan.withdrawTxs` carry the transactions behind those events — `{ txHash, blockNumber, amountUsdc }`, oldest first — so an operator can be shown an explorer link without anyone rebuilding the log query; each list holds at most the 100 most recent, while `scan.deposits`/`scan.withdrawals` stay the totals.",
298
+ description: "Shares held (exact string + display), current USDC value, WHAT CAN ACTUALLY BE WITHDRAWN NOW (`exit`, measured by simulating the withdrawal — `usdcValue` is what the position is worth, `exit.exitableNow` is what the vault can pay, `exit.instantLiquidity` is the vault's own liquid balance of the asset, chassis-specific in both directions — a Fusion vault without instant-withdrawal fuses pays only from it, so there it is the ceiling and `usdcValue` can exceed `exitableNow` by 10x while `maxWithdraw()` — `exit.maxWithdrawSays` — reports the larger one; a Morpho V2 vault holds almost none and still pays out of its markets, so there a near-zero `instantLiquidity` is not a ceiling and `exitableNow` is the verdict), entry basis and accrued yield derived from the vault's own Deposit/Withdraw events for this account, and share price. `scan.complete` says whether the event window covered the whole position; `sharesExact` is what earn_prepare_withdraw({ all }) needs. `scan.depositTxs` and `scan.withdrawTxs` carry the transactions behind those events — `{ txHash, blockNumber, amountUsdc }`, oldest first — so an operator can be shown an explorer link without anyone rebuilding the log query; each list holds at most the 100 most recent, while `scan.deposits`/`scan.withdrawals` stay the totals.",
297
299
  inputSchema: {
298
300
  vault: vaultArg,
299
301
  account: accountArg,
@@ -334,7 +336,27 @@ async function main() {
334
336
  const server = buildServer();
335
337
  await server.connect(new StdioServerTransport());
336
338
  }
337
- if (process.argv[1] && /server\.(ts|mjs|js)$/.test(process.argv[1])) {
339
+ /**
340
+ * True only when THIS module is the file Node was asked to run. The comparison is by resolved path,
341
+ * not by name: an earlier guard tested `process.argv[1]` against `/server\.(ts|mjs|js)$/`, which is
342
+ * the basename of whatever was invoked — so the published bin (`treasury-mcp`, a symlink npm makes)
343
+ * never matched and exited silently (#22), while any unrelated script named `*server.mjs` that merely
344
+ * imported this module matched and seized stdio. Node resolves the main module's symlink before
345
+ * evaluating it, so `import.meta.url` is already the real path and the two sides agree for a bin.
346
+ * Anything unresolvable is treated as "not the entry point": the module loads and does nothing.
347
+ */
348
+ function isEntryPoint() {
349
+ const invoked = process.argv[1];
350
+ if (!invoked)
351
+ return false;
352
+ try {
353
+ return realpathSync(invoked) === realpathSync(fileURLToPath(import.meta.url));
354
+ }
355
+ catch {
356
+ return false;
357
+ }
358
+ }
359
+ if (isEntryPoint()) {
338
360
  main().catch((e) => {
339
361
  // Defence-in-depth: HARDENED, NOT TESTED. main() only builds the server and connects a stdio
340
362
  // transport — every RPC URL is resolved inside a handler body, so nothing reachable here can
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -17061,6 +17061,10 @@ var init_call = __esm({
17061
17061
  }
17062
17062
  });
17063
17063
 
17064
+ // src/mcp/server.ts
17065
+ import { realpathSync as realpathSync3 } from "fs";
17066
+ import { fileURLToPath as fileURLToPath3 } from "url";
17067
+
17064
17068
  // node_modules/zod/v3/helpers/util.js
17065
17069
  var util;
17066
17070
  (function(util2) {
@@ -55121,8 +55125,8 @@ function publicRpcHint(chainId) {
55121
55125
  }
55122
55126
 
55123
55127
  // src/registry.ts
55124
- import { readFileSync } from "fs";
55125
- import { fileURLToPath } from "url";
55128
+ import { readFileSync, realpathSync } from "fs";
55129
+ import { fileURLToPath, pathToFileURL } from "url";
55126
55130
 
55127
55131
  // src/registry-schema.ts
55128
55132
  var address = external_exports.string().refine((s) => isAddress(s, { strict: true }), { message: "not a checksummed EVM address" }).transform((s) => getAddress(s));
@@ -55240,7 +55244,7 @@ var EARN = {
55240
55244
  };
55241
55245
 
55242
55246
  // src/registry.ts
55243
- var REGISTRY_URL = new URL("../registry/vaults.json", import.meta.url);
55247
+ var REGISTRY_URL = new URL("../registry/vaults.json", pathToFileURL(realpathSync(fileURLToPath(import.meta.url))));
55244
55248
  var cached2;
55245
55249
  function loadRegistry() {
55246
55250
  if (cached2) return cached2;
@@ -55291,9 +55295,9 @@ function linksFor(vault) {
55291
55295
  }
55292
55296
 
55293
55297
  // src/version.ts
55294
- import { readFileSync as readFileSync2 } from "fs";
55295
- import { fileURLToPath as fileURLToPath2 } from "url";
55296
- var PACKAGE_JSON_URL = new URL("../package.json", import.meta.url);
55298
+ import { readFileSync as readFileSync2, realpathSync as realpathSync2 } from "fs";
55299
+ import { fileURLToPath as fileURLToPath2, pathToFileURL as pathToFileURL2 } from "url";
55300
+ var PACKAGE_JSON_URL = new URL("../package.json", pathToFileURL2(realpathSync2(fileURLToPath2(import.meta.url))));
55297
55301
  var PACKAGE_VERSION = JSON.parse(readFileSync2(fileURLToPath2(PACKAGE_JSON_URL), "utf8")).version;
55298
55302
 
55299
55303
  // src/abi/erc4626.ts
@@ -56145,7 +56149,7 @@ function buildServer() {
56145
56149
  "earn_quote",
56146
56150
  {
56147
56151
  title: "Quote a deposit or a withdrawal",
56148
- description: "Pre-trade quote, in USDC. direction=deposit: expected shares (previewDeposit), share price, and the access verdict from a simulated deposit(). This client quotes no rate: an ERC-4626 vault exposes none, and it calls no yield API. direction=withdraw: shares burned (previewWithdraw), shares held, a simulated withdraw() verdict, maxWithdraw advisory only (Morpho V2 returns 0 by design), and queue depth. Run before the matching earn_prepare_* tool.",
56152
+ description: "Pre-trade quote, in USDC. direction=deposit: expected shares (previewDeposit), share price, and the access verdict from a simulated deposit(). This client quotes no rate: an ERC-4626 vault exposes none, and it calls no yield API. direction=withdraw: shares burned (previewWithdraw), shares held, a simulated withdraw() verdict, `instantLiquidity` \u2014 the vault's own liquid balance of the asset, which is chassis-specific in BOTH directions: a Fusion vault without instant-withdrawal fuses pays only from it, so there it is the ceiling maxWithdraw() does not know; a Morpho V2 vault holds almost none and still pays out of its markets, so there it is near zero and NOT a ceiling \u2014 the simulated verdict is what decides \u2014 maxWithdraw advisory only (Morpho V2 returns 0 by design), and queue depth. Run before the matching earn_prepare_* tool.",
56149
56153
  inputSchema: {
56150
56154
  vault: vaultArg,
56151
56155
  account: accountArg,
@@ -56210,7 +56214,7 @@ function buildServer() {
56210
56214
  "earn_balance",
56211
56215
  {
56212
56216
  title: "Earn position",
56213
- description: "Shares held (exact string + display), current USDC value, WHAT CAN ACTUALLY BE WITHDRAWN NOW (`exit`, measured by simulating the withdrawal \u2014 `usdcValue` is what the position is worth, `exit.exitableNow` is what the vault can pay; on a Fusion vault without instant-withdrawal fuses they differ by 10x and `maxWithdraw()` reports the larger one), entry basis and accrued yield derived from the vault's own Deposit/Withdraw events for this account, and share price. `scan.complete` says whether the event window covered the whole position; `sharesExact` is what earn_prepare_withdraw({ all }) needs. `scan.depositTxs` and `scan.withdrawTxs` carry the transactions behind those events \u2014 `{ txHash, blockNumber, amountUsdc }`, oldest first \u2014 so an operator can be shown an explorer link without anyone rebuilding the log query; each list holds at most the 100 most recent, while `scan.deposits`/`scan.withdrawals` stay the totals.",
56217
+ description: "Shares held (exact string + display), current USDC value, WHAT CAN ACTUALLY BE WITHDRAWN NOW (`exit`, measured by simulating the withdrawal \u2014 `usdcValue` is what the position is worth, `exit.exitableNow` is what the vault can pay, `exit.instantLiquidity` is the vault's own liquid balance of the asset, chassis-specific in both directions \u2014 a Fusion vault without instant-withdrawal fuses pays only from it, so there it is the ceiling and `usdcValue` can exceed `exitableNow` by 10x while `maxWithdraw()` \u2014 `exit.maxWithdrawSays` \u2014 reports the larger one; a Morpho V2 vault holds almost none and still pays out of its markets, so there a near-zero `instantLiquidity` is not a ceiling and `exitableNow` is the verdict), entry basis and accrued yield derived from the vault's own Deposit/Withdraw events for this account, and share price. `scan.complete` says whether the event window covered the whole position; `sharesExact` is what earn_prepare_withdraw({ all }) needs. `scan.depositTxs` and `scan.withdrawTxs` carry the transactions behind those events \u2014 `{ txHash, blockNumber, amountUsdc }`, oldest first \u2014 so an operator can be shown an explorer link without anyone rebuilding the log query; each list holds at most the 100 most recent, while `scan.deposits`/`scan.withdrawals` stay the totals.",
56214
56218
  inputSchema: {
56215
56219
  vault: vaultArg,
56216
56220
  account: accountArg,
@@ -56255,7 +56259,16 @@ async function main() {
56255
56259
  const server = buildServer();
56256
56260
  await server.connect(new StdioServerTransport());
56257
56261
  }
56258
- if (process.argv[1] && /server\.(ts|mjs|js)$/.test(process.argv[1])) {
56262
+ function isEntryPoint() {
56263
+ const invoked = process.argv[1];
56264
+ if (!invoked) return false;
56265
+ try {
56266
+ return realpathSync3(invoked) === realpathSync3(fileURLToPath3(import.meta.url));
56267
+ } catch {
56268
+ return false;
56269
+ }
56270
+ }
56271
+ if (isEntryPoint()) {
56259
56272
  main().catch((e) => {
56260
56273
  process.stderr.write(`treasury mcp: ${redactEndpoints(String(e))}
56261
56274
  `);
package/dist/registry.js CHANGED
@@ -1,8 +1,9 @@
1
- import { readFileSync } from "node:fs";
2
- import { fileURLToPath } from "node:url";
1
+ import { readFileSync, realpathSync } from "node:fs";
2
+ import { fileURLToPath, pathToFileURL } from "node:url";
3
3
  import { registrySchema, erc4626Chassis } from "./registry-schema.js";
4
4
  import { EARN } from "./config/earn.js";
5
- const REGISTRY_URL = new URL("../registry/vaults.json", import.meta.url);
5
+ // From this file's real path, not a symlink's: see PACKAGE_JSON_URL in version.ts.
6
+ const REGISTRY_URL = new URL("../registry/vaults.json", pathToFileURL(realpathSync(fileURLToPath(import.meta.url))));
6
7
  let cached;
7
8
  /** Parses and validates the shipped registry. Throws on any schema violation — a registry that does not parse is not a registry. */
8
9
  export function loadRegistry() {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAkC,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEzE,IAAI,MAA4B,CAAC;AAEjC,oIAAoI;AACpI,MAAM,UAAU,YAAY;IAC1B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAY,CAAC;IACrF,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,CAAuB;IAC3D,MAAM,GAAG,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,YAAY,EAAE,CAAC,MAAM,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACjE,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,YAAY,EAAE;aACzB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,aAAa,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,QAAQ,CAAC;QAClF,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,YAAY,4CAA4C,MAAM,2BAA2B,CAAC,CAAC;IAC3I,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,YAAY,EAAE,CAAC,MAAM,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAkC,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,mFAAmF;AACnF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,yBAAyB,EAAE,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAErH,IAAI,MAA4B,CAAC;AAEjC,oIAAoI;AACpI,MAAM,UAAU,YAAY;IAC1B,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAY,CAAC;IACrF,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,CAAuB;IAC3D,MAAM,GAAG,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,YAAY,EAAE,CAAC,MAAM,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAc;IACrC,MAAM,CAAC,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACjE,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,KAAK,GAAG,YAAY,EAAE;aACzB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,aAAa,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,QAAQ,CAAC;QAClF,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,YAAY,4CAA4C,MAAM,2BAA2B,CAAC,CAAC;IAC3I,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,YAAY,CAAC,MAAe;IAC1C,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,YAAY,EAAE,CAAC,MAAM,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAC3D,CAAC;AACJ,CAAC"}
package/dist/version.js CHANGED
@@ -6,9 +6,12 @@
6
6
  *
7
7
  * Same resolution trick as registry.ts: this file sits at src/ top level and the bundle at dist/
8
8
  * top level, so `../package.json` is the package manifest at the repository root from both.
9
+ * Resolved from this file's REAL path: under `--preserve-symlinks-main`, `import.meta.url` is the
10
+ * path of a symlink to the bundle (npm's `.bin/treasury-mcp`), and `../package.json` from there is a
11
+ * file in whatever directory holds the link.
9
12
  */
10
- import { readFileSync } from "node:fs";
11
- import { fileURLToPath } from "node:url";
12
- const PACKAGE_JSON_URL = new URL("../package.json", import.meta.url);
13
+ import { readFileSync, realpathSync } from "node:fs";
14
+ import { fileURLToPath, pathToFileURL } from "node:url";
15
+ const PACKAGE_JSON_URL = new URL("../package.json", pathToFileURL(realpathSync(fileURLToPath(import.meta.url))));
13
16
  export const PACKAGE_VERSION = JSON.parse(readFileSync(fileURLToPath(PACKAGE_JSON_URL), "utf8")).version;
14
17
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAErE,MAAM,CAAC,MAAM,eAAe,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAC,OAAO,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEjH,MAAM,CAAC,MAAM,eAAe,GAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAC,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temporalabs/treasury",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,14 +34,16 @@
34
34
  "node": ">=22"
35
35
  },
36
36
  "scripts": {
37
- "prepack": "npm run build && git diff --exit-code -- dist/mcp-server.mjs",
38
- "build": "tsc -b && tsup && tsx scripts/third-party-notices.ts --write",
37
+ "prepack": "npm run build && git diff --exit-code -- dist/mcp-server.mjs THIRD_PARTY_NOTICES.md",
38
+ "build": "tsc -b && tsup && tsx scripts/third-party-notices.ts --write && bash scripts/sync-plugin.sh",
39
39
  "typecheck": "tsc -b && tsc -p tsconfig.scripts.json",
40
40
  "test": "tsc -b && tsc -p tsconfig.scripts.json && vitest run",
41
41
  "test:fork": "tsc -b && TREASURY_FORK=1 vitest run --testTimeout 300000 tests/fork.test.ts",
42
42
  "mcp": "tsx src/mcp/server.ts",
43
43
  "registry:check": "tsx scripts/registry-check.ts",
44
- "notices:check": "tsx scripts/third-party-notices.ts"
44
+ "notices:check": "tsx scripts/third-party-notices.ts",
45
+ "plugin:check": "bash scripts/sync-plugin.sh --check && bash scripts/check-versions.sh",
46
+ "lint:skill": "bash scripts/lint-skill.sh"
45
47
  },
46
48
  "dependencies": {
47
49
  "@modelcontextprotocol/sdk": "^1.20.0",