@dfm-fi/agent 0.2.1321 → 0.2.1423

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
@@ -41,26 +41,20 @@ the agent.
41
41
 
42
42
  ## Security model (read first)
43
43
 
44
- - **RECOMMENDED: `DFM_API_KEY` (keyless).** No Solana keypair anywhere on this
45
- machine — writes route to the DFM backend and sign with **your Privy operating
46
- wallet**, behind that wallet's own policy caps + a pre-sign simulation, and the
47
- key is revocable instantly. See [Install](#install). Everything below this
48
- point describes the **legacy local-keypair** mode (`DFM_AGENT_KEYPAIR_PATH`),
49
- kept for existing installs and local dev/test wallets.
50
- - The agent authenticates as **its own test wallet**, whose keypair is loaded
51
- **locally by you** from a file path (`DFM_AGENT_KEYPAIR_PATH`) or an inline env
52
- (`DFM_AGENT_KEYPAIR_JSON`). The keypair **never crosses the MCP boundary** — it
53
- is never a tool argument, never in a tool result, never logged. Only the
54
- **public key** is ever surfaced.
55
- - **Never** use the protocol wallet (`9GjE…`) here. Use a **dedicated throwaway
56
- test wallet** funded with a few dollars of USDC. The harness hard-refuses to
57
- load the known protocol pubkey as a tripwire.
58
- - No access allowlist exists. SIWS sign-in is open to any wallet; the only
59
- wallet gate left is `OPS_ADMIN_WALLETS`, which guards `/ops` and the agent
60
- config, not ordinary use.
61
- - All **real-money WRITE tools** (deposit / redeem) are **gated behind
62
- `DFM_AGENT_WRITE_ENABLED=true` and default OFF**. With write off, those tools
63
- refuse and never touch the chain or load the keypair.
44
+ - **All MCP fund operations require a DFM app wallet.** Launch, deposit, redeem,
45
+ rebalance, basket changes, policy changes and escrow recovery use the server's
46
+ operating-wallet executor, with the owner's policy caps and simulation checks.
47
+ - **`DFM_API_KEY` is the recommended authentication mode.** A local keypair can
48
+ authenticate through SIWS and sign an explicit top-up into the app wallet.
49
+ It never substitutes for the app wallet during a fund operation, including
50
+ when `DFM_AGENT_FORCE_LOCAL_SIGNING=true` was configured by an older install.
51
+ - Missing, pending, revoked or unavailable wallets fail closed. Rejected signing
52
+ never falls back to the local keypair. Admin handoffs without an app-wallet
53
+ executor are refused; an already-landed signature can still be reconciled.
54
+ - The protocol wallet (`9GjE…`) is refused as an agent identity. Real-money tools
55
+ also require `DFM_AGENT_WRITE_ENABLED=true`.
56
+ - The local prepare/sign flow examples below describe development primitives;
57
+ the MCP production surface always uses app-wallet execution for fund operations.
64
58
 
65
59
  ## Auth + signing flow (how it works)
66
60
 
package/dist/keyless.d.ts CHANGED
@@ -16,8 +16,7 @@
16
16
  *
17
17
  * WHEN IT ENGAGES — two different questions, do not conflate them:
18
18
  * • `isKeylessMode` is about the CREDENTIAL: an API key is set and no local
19
- * keypair is configured. It still gates the tools that have no server-side
20
- * path at all.
19
+ * keypair is configured. It identifies the API-key authentication mode.
21
20
  * • `shouldExecuteViaAppWallet` is about WHO PAYS, and it is the one that
22
21
  * decides who signs a WRITE. An ACTIVE app wallet wins even when a local
23
22
  * keypair exists.
@@ -54,58 +53,16 @@ export declare function hasExplicitKeypair(): boolean;
54
53
  export declare function hasLocalKeypair(config: AgentConfig): boolean;
55
54
  /** True when writes must go through the server-side operating wallet. */
56
55
  export declare function isKeylessMode(_config?: AgentConfig): boolean;
57
- /**
58
- * The operator INSISTS on the legacy local-signing lane.
59
- *
60
- * The only way back to "my keypair pays", kept for the local autonomous agents
61
- * that were built against it. Everything else routes through the app wallet.
62
- */
63
- export declare function forceLocalSigning(): boolean;
64
- /**
65
- * WHO PAYS — and why this is no longer "keyless or not".
66
- *
67
- * A keypair on disk used to decide the lane by itself: `isKeylessMode` is false
68
- * whenever `DFM_AGENT_KEYPAIR_PATH` is set, so every write signed with THAT
69
- * wallet. Measured on mainnet 2026-08-31 with the published npx package: the
70
- * keypair wallet held 0 USDC and 0.0029 SOL while the user's app wallet held
71
- * 17.52 USDC, and `launch_vault` died in simulation with
72
- * `custom program error: 0x1` and a truncated log — no wallet named, no amount,
73
- * no next step. The agent had funds and could not reach them (Diego: *"no puede
74
- * ni lanzar ni agarrar 6vch... tiene que ser solo la app wallet"*).
75
- *
76
- * So the app wallet is THE lane whenever the identity has an active one,
77
- * regardless of how the process authenticated. The local keypair survives only
78
- * as a deliberate opt-out (`DFM_AGENT_FORCE_LOCAL_SIGNING=true`) or for an
79
- * identity that has no app wallet at all — the two cases where it is the only
80
- * thing that can sign.
81
- *
82
- * `appWalletStatus` is what `GET /agent/operating` reports: 'active' means the
83
- * server will sign with it. 'pending' or 'revoked' must NOT route here — the
84
- * server would refuse, and the refusal would read as a broken tool rather than
85
- * a wallet that needs arming.
86
- */
56
+ /** App-wallet readiness; a local signing override never selects the payer. */
87
57
  export declare function shouldExecuteViaAppWallet(config: AgentConfig, appWalletStatus: string | null | undefined): boolean;
88
- /**
89
- * MAY THIS IDENTITY LAUNCH A FUND — the one write where the local keypair is
90
- * never an answer.
91
- *
92
- * Diego, 2026-09-02: *"no se puede lanzar un dtf si no tenes usuario en dfm"*.
93
- * A DTF's `vault_admin` is its creator FOREVER, and that creator is what
94
- * registers the fund to an account — holders, leaderboard, creator fees. The API
95
- * refuses to register a vault whose creator is not a DFM app wallet, so a
96
- * locally-signed launch does not produce an unregistered fund: it produces an
97
- * ORPHAN the creator paid ~2 USDC plus rent for and can never claim.
98
- *
99
- * Note what this deliberately does NOT consult: `forceLocalSigning`. The opt-out
100
- * exists so the local autonomous agents can keep paying their own way for
101
- * ordinary writes; it is not a way around an identity rule. Everything else
102
- * still honours it — see {@link shouldExecuteViaAppWallet}.
103
- *
104
- * This is permissionless, not permissioned: anyone can get an app wallet, no
105
- * allowlist and no approval. The requirement is HAVING an identity, never being
106
- * granted one.
107
- */
108
- export declare function mayLaunchViaAppWallet(config: AgentConfig, appWalletStatus: string | null | undefined): boolean;
58
+ export declare const mayLaunchViaAppWallet: typeof shouldExecuteViaAppWallet;
59
+ /** All MCP fund operations use this boundary; missing/revoked wallets fail closed. */
60
+ export declare function executeAppWalletWrite(config: AgentConfig, api: {
61
+ getOperatingWallet(): Promise<{
62
+ status?: string;
63
+ } | null>;
64
+ executeViaOperatingWallet(tool: string, args: Record<string, unknown>): Promise<KeylessExecResult>;
65
+ }, tool: string, args: Record<string, unknown>): Promise<KeylessExecResult>;
109
66
  /** Shape returned by `POST /agent/operating/execute`. */
110
67
  export interface KeylessExecResult {
111
68
  /** Absent only for a successful already-satisfied no-op. */
@@ -1 +1 @@
1
- {"version":3,"file":"keyless.d.ts","sourceRoot":"","sources":["../src/keyless.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;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;;;;;GAKG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAG3C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACzC,OAAO,CAIT;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACzC,OAAO,CAMT;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;IACd,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAU2B,CAAC"}
1
+ {"version":3,"file":"keyless.d.ts","sourceRoot":"","sources":["../src/keyless.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;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,8EAA8E;AAC9E,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,WAAW,EACnB,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACzC,OAAO,CAGT;AAED,eAAO,MAAM,qBAAqB,kCAA4B,CAAC;AAE/D,sFAAsF;AACtF,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE;IACH,kBAAkB,IAAI,OAAO,CAAC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAC1D,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpG,EACD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAQ5B;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;IACd,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAU2B,CAAC"}
package/dist/keyless.js CHANGED
@@ -24,73 +24,23 @@ export function isKeylessMode(_config) {
24
24
  const apiKey = process.env.DFM_API_KEY?.trim();
25
25
  return Boolean(apiKey) && !hasExplicitKeypair();
26
26
  }
27
- /**
28
- * The operator INSISTS on the legacy local-signing lane.
29
- *
30
- * The only way back to "my keypair pays", kept for the local autonomous agents
31
- * that were built against it. Everything else routes through the app wallet.
32
- */
33
- export function forceLocalSigning() {
34
- const raw = process.env.DFM_AGENT_FORCE_LOCAL_SIGNING?.trim().toLowerCase();
35
- return raw === 'true' || raw === '1';
36
- }
37
- /**
38
- * WHO PAYS — and why this is no longer "keyless or not".
39
- *
40
- * A keypair on disk used to decide the lane by itself: `isKeylessMode` is false
41
- * whenever `DFM_AGENT_KEYPAIR_PATH` is set, so every write signed with THAT
42
- * wallet. Measured on mainnet 2026-08-31 with the published npx package: the
43
- * keypair wallet held 0 USDC and 0.0029 SOL while the user's app wallet held
44
- * 17.52 USDC, and `launch_vault` died in simulation with
45
- * `custom program error: 0x1` and a truncated log — no wallet named, no amount,
46
- * no next step. The agent had funds and could not reach them (Diego: *"no puede
47
- * ni lanzar ni agarrar 6vch... tiene que ser solo la app wallet"*).
48
- *
49
- * So the app wallet is THE lane whenever the identity has an active one,
50
- * regardless of how the process authenticated. The local keypair survives only
51
- * as a deliberate opt-out (`DFM_AGENT_FORCE_LOCAL_SIGNING=true`) or for an
52
- * identity that has no app wallet at all — the two cases where it is the only
53
- * thing that can sign.
54
- *
55
- * `appWalletStatus` is what `GET /agent/operating` reports: 'active' means the
56
- * server will sign with it. 'pending' or 'revoked' must NOT route here — the
57
- * server would refuse, and the refusal would read as a broken tool rather than
58
- * a wallet that needs arming.
59
- */
27
+ /** App-wallet readiness; a local signing override never selects the payer. */
60
28
  export function shouldExecuteViaAppWallet(config, appWalletStatus) {
61
- if (forceLocalSigning())
62
- return false;
63
29
  if (isKeylessMode(config))
64
30
  return true;
65
31
  return appWalletStatus === 'active';
66
32
  }
67
- /**
68
- * MAY THIS IDENTITY LAUNCH A FUND — the one write where the local keypair is
69
- * never an answer.
70
- *
71
- * Diego, 2026-09-02: *"no se puede lanzar un dtf si no tenes usuario en dfm"*.
72
- * A DTF's `vault_admin` is its creator FOREVER, and that creator is what
73
- * registers the fund to an account — holders, leaderboard, creator fees. The API
74
- * refuses to register a vault whose creator is not a DFM app wallet, so a
75
- * locally-signed launch does not produce an unregistered fund: it produces an
76
- * ORPHAN the creator paid ~2 USDC plus rent for and can never claim.
77
- *
78
- * Note what this deliberately does NOT consult: `forceLocalSigning`. The opt-out
79
- * exists so the local autonomous agents can keep paying their own way for
80
- * ordinary writes; it is not a way around an identity rule. Everything else
81
- * still honours it — see {@link shouldExecuteViaAppWallet}.
82
- *
83
- * This is permissionless, not permissioned: anyone can get an app wallet, no
84
- * allowlist and no approval. The requirement is HAVING an identity, never being
85
- * granted one.
86
- */
87
- export function mayLaunchViaAppWallet(config, appWalletStatus) {
88
- // Keyless: there is no local keypair, so the server is the only signer either
89
- // way. Let it through and let the server answer for the wallet's state — its
90
- // refusal is specific, ours here would be a guess.
91
- if (isKeylessMode(config))
92
- return true;
93
- return appWalletStatus === 'active';
33
+ export const mayLaunchViaAppWallet = shouldExecuteViaAppWallet;
34
+ /** All MCP fund operations use this boundary; missing/revoked wallets fail closed. */
35
+ export async function executeAppWalletWrite(config, api, tool, args) {
36
+ const wallet = await api.getOperatingWallet();
37
+ if (!shouldExecuteViaAppWallet(config, wallet?.status)) {
38
+ throw new Error('OPERATING_WALLET_REQUIRED: an active DFM app wallet is required. Local signing is disabled for fund operations.');
39
+ }
40
+ const result = await api.executeViaOperatingWallet(tool, args);
41
+ if (!result)
42
+ throw new Error('App-wallet execution returned no result. Inspect operation status before retrying.');
43
+ return result;
94
44
  }
95
45
  /**
96
46
  * The hint shown when a keyless write is refused. Every branch is actionable —
@@ -1 +1 @@
1
- {"version":3,"file":"keyless.js","sourceRoot":"","sources":["../src/keyless.ts"],"names":[],"mappings":"AAwCA;;;;;;;;;;;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;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5E,OAAO,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAmB,EACnB,eAA0C;IAE1C,IAAI,iBAAiB,EAAE;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,eAAe,KAAK,QAAQ,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAmB,EACnB,eAA0C;IAE1C,8EAA8E;IAC9E,6EAA6E;IAC7E,mDAAmD;IACnD,IAAI,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,eAAe,KAAK,QAAQ,CAAC;AACtC,CAAC;AAcD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB;AAC7B,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;IAC9E,eAAe;IACf,gFAAgF;IAChF,gFAAgF;IAChF,4EAA4E;IAC5E,gFAAgF;IAChF,wDAAwD,CAAC"}
1
+ {"version":3,"file":"keyless.js","sourceRoot":"","sources":["../src/keyless.ts"],"names":[],"mappings":"AAuCA;;;;;;;;;;;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;AAED,8EAA8E;AAC9E,MAAM,UAAU,yBAAyB,CACvC,MAAmB,EACnB,eAA0C;IAE1C,IAAI,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,eAAe,KAAK,QAAQ,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAE/D,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAmB,EACnB,GAGC,EACD,IAAY,EACZ,IAA6B;IAE7B,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,kBAAkB,EAAE,CAAC;IAC9C,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,iHAAiH,CAAC,CAAC;IACrI,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACnH,OAAO,MAAM,CAAC;AAChB,CAAC;AAcD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB;AAC7B,4EAA4E;AAC5E,+EAA+E;AAC/E,8EAA8E;AAC9E,8EAA8E;IAC9E,eAAe;IACf,gFAAgF;IAChF,gFAAgF;IAChF,4EAA4E;IAC5E,gFAAgF;IAChF,wDAAwD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AAy/CA;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjD"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":";AAmvCA;;;;GAIG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjD"}
@@ -54,11 +54,8 @@ import { z } from 'zod';
54
54
  import { loadConfig } from './config.js';
55
55
  import { SiwsSession } from './session.js';
56
56
  import { DfmApiClient } from './api-client.js';
57
- import { runDeposit, runRedeem } from './zap-v2-flow.js';
58
- import { runLaunchVault } from './create-flow.js';
59
- import { isKeylessMode, shouldExecuteViaAppWallet, mayLaunchViaAppWallet, KEYLESS_SETUP_HINT, } from './keyless.js';
60
- import { runCancel, runUpdateEnvelope } from './recovery-flow.js';
61
- import { runTransferAdmin, runInitRebalancer, runRebalanceToTargets, runUpdateVaultAssets, runAcceptAdminTransfer, runUpdateVaultPolicy, reconcileKeylessUpdateVaultPolicy, } from './manager-flow.js';
57
+ import { isKeylessMode, shouldExecuteViaAppWallet, executeAppWalletWrite, KEYLESS_SETUP_HINT, } from './keyless.js';
58
+ import { runAcceptAdminTransfer, runUpdateVaultPolicy, reconcileKeylessUpdateVaultPolicy, } from './manager-flow.js';
62
59
  import { submitSignedTx } from './submit.js';
63
60
  import { signBase64Transaction } from './signing.js';
64
61
  import { buildWalletIdentity, resolveZapStatusWallet, withActingWalletAlias, withPortfolioWalletAlias, } from './wallet-identity.js';
@@ -522,15 +519,10 @@ function writeGate() {
522
519
  * to install the very keypair the credential model exists to avoid.
523
520
  */
524
521
  function keylessUnsupported(tool) {
525
- if (!isKeylessMode(config))
522
+ // Explicit owner-signed top-ups are the sole transaction-signing exception.
523
+ if (tool === 'app_wallet_fund' && !isKeylessMode(config))
526
524
  return null;
527
- return errText(`${tool} is not available in KEYLESS mode (a DFM_API_KEY with no local keypair). ` +
528
- `It has no server-side autonomous path yet, so there is nothing here that can ` +
529
- `sign it. Keyless writes today: deposit, redeem, launch_vault, update_vault_assets, ` +
530
- `update_vault_policy, rebalance_to_targets, zap_v2_cancel, ` +
531
- `zap_v2_update_envelope. ` +
532
- `For this one, either run the MCP with a local keypair, or drive it from the web app ` +
533
- `where you sign with your own wallet.`);
525
+ return errText(`${tool} has no app-wallet signing path in this agent. Local signing cannot override that requirement.`);
534
526
  }
535
527
  /**
536
528
  * Resolve both wallet roles from the server on each call. The app wallet may
@@ -547,61 +539,13 @@ async function resolveWalletIdentity() {
547
539
  return buildWalletIdentity(null, localSignIn);
548
540
  }
549
541
  }
550
- /**
551
- * The app wallet's status, read FRESH on every ask.
552
- *
553
- * It used to be cached for the process lifetime, on the reasoning that the
554
- * answer "cannot change mid-session without the operator restarting". This
555
- * same server exposes `app_wallet_rearm`, so it plainly can: read `revoked`,
556
- * re-arm, and the cache keeps serving the stale value while the new wallet sits
557
- * ACTIVE — every later write falls to the local signer until a restart. Under
558
- * WHO PAYS that is not a missed optimisation, it is signing with the wrong
559
- * wallet, and the chain rejects it because the app wallet owns the escrow.
560
- *
561
- * One extra round trip per money write is the correct price.
562
- *
563
- * It does NOT swallow a failed lookup. There is a real difference between "the
564
- * server answered, and there is no app wallet" (null → sign locally) and "I
565
- * could not find out who pays" (throw). Mapping the second onto the first —
566
- * which a `.catch(() => null)` here did — means a 500 or a timeout silently
567
- * re-selects the external wallet in the mixed setup: the exact bug this rule
568
- * exists to close, reappearing on a bad network moment. The callers all sit
569
- * inside a try/catch that reports the failure, which is the right outcome:
570
- * refuse to guess rather than sign with a wallet chosen blind.
571
- */
572
- function readAppWalletStatus() {
573
- return api.getOperatingWallet().then((op) => op?.status ?? null);
574
- }
575
- async function keylessWrite(tool, args, opts) {
576
- // WHO PAYS. Not "is this process keyless" any more: an active app wallet is
577
- // the lane even when a local keypair is present, because the keypair wallet is
578
- // not where the user's money is. See keyless.ts for the mainnet measurement
579
- // that forced this.
580
- const status = await readAppWalletStatus();
581
- const viaAppWallet = opts?.appWalletOnly
582
- ? mayLaunchViaAppWallet(config, status)
583
- : shouldExecuteViaAppWallet(config, status);
584
- if (!viaAppWallet) {
585
- if (opts?.appWalletOnly) {
586
- return errText(`${tool} requires your DFM app wallet — it will not sign with a local ` +
587
- `keypair, and DFM_AGENT_FORCE_LOCAL_SIGNING does not override this.\n` +
588
- `A fund's creator is fixed on-chain at creation and is what registers ` +
589
- `the fund to you (holders, leaderboard, creator fees). A launch signed ` +
590
- `by any other wallet produces a fund nobody can claim.\n` +
591
- `Getting an app wallet is open to anyone and takes a minute:\n${KEYLESS_SETUP_HINT}`);
592
- }
593
- return null;
594
- }
542
+ async function keylessWrite(tool, args) {
595
543
  try {
596
- const res = await api.executeViaOperatingWallet(tool, args);
597
- return res ? text(res) : null;
544
+ return text(await executeAppWalletWrite(config, api, tool, args));
598
545
  }
599
546
  catch (e) {
600
547
  const message = e.message;
601
- // Validation/transaction errors are not fixed by reconnecting or funding a
602
- // wallet. Only append the setup checklist when the failure actually points
603
- // at auth, custody, activation, or permission setup.
604
- const setupRelevant = /DFM API (401|403|409|501)\b|operating wallet|read-only|allowedOps|custody unavailable/i.test(message);
548
+ const setupRelevant = /OPERATING_WALLET_REQUIRED|DFM API (401|403|409|501)\b|operating wallet|read-only|allowedOps|custody unavailable/i.test(message);
605
549
  return errText(`${tool} failed (app wallet): ${message}${setupRelevant ? `\n${KEYLESS_SETUP_HINT}` : ''}`);
606
550
  }
607
551
  }
@@ -656,40 +600,15 @@ async ({ name, symbol, assets, category, description, metadata }) => {
656
600
  const gate = writeGate();
657
601
  if (!gate.ok)
658
602
  return gate.result;
659
- const keyless = await keylessWrite('launch_vault', { name, symbol, assets, category, description, ...(metadata === false && { metadata }) },
660
- // THE LAW (Diego, 2026-09-02): "no se puede lanzar un dtf si no tenes
661
- // usuario en dfm". Permissionless stays permissionless — anyone can get an
662
- // app wallet, no allowlist, no approval — but the launch must carry the
663
- // identity DFM assigned, because that identity IS the registration.
664
- { appWalletOnly: true });
665
- if (keyless)
666
- return keyless;
667
- try {
668
- const res = await runLaunchVault(config, api, {
669
- name,
670
- symbol,
671
- // map the agent-facing `allocationBps` → the API's `mintBps`.
672
- assets: assets.map((a) => ({
673
- mint: a.mint,
674
- symbol: a.symbol,
675
- mintBps: a.allocationBps,
676
- })),
677
- category,
678
- description,
679
- });
680
- return text(res);
681
- }
682
- catch (e) {
683
- return errText(`launch_vault failed: ${e.message}`);
684
- }
603
+ return keylessWrite('launch_vault', { name, symbol, assets, category, description, ...(metadata === false && { metadata }) });
685
604
  });
686
605
  // ─── WRITE TOOL: deposit (zap-in) ─────────────────────────────────────────
687
606
  server.registerTool('deposit', {
688
607
  title: 'Deposit USDC → vault (zap-in lifecycle)',
689
608
  description: 'REAL-MONEY (gated). Drive a full zap-v2 deposit: open (pull USDC, pin plan) ' +
690
609
  '→ wait while the backend orchestrator cranks the USDC→asset swaps → close ' +
691
- '(mint shares). The agent signs only the two user-side boundary TXs locally ' +
692
- 'with its test keypair. `usdcAmount` is RAW 6-decimal units (e.g. "12000000" ' +
610
+ '(mint shares). The server signs the boundary transactions with your app wallet. ' +
611
+ ' `usdcAmount` is RAW 6-decimal units (e.g. "12000000" ' +
693
612
  '= $12). First deposit into a vault must clear ~$12 after slippage.',
694
613
  inputSchema: {
695
614
  vault: z.string().regex(BASE58, 'Invalid base58 vault address'),
@@ -704,35 +623,19 @@ server.registerTool('deposit', {
704
623
  annotations: { title: 'DFM zap-in deposit', readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
705
624
  },
706
625
  // REVIEW: real-money path — parent must review before enabling.
707
- async ({ vault, usdcAmount, slippageBps, expirySecs, pollTimeoutSecs }) => {
626
+ async ({ vault, usdcAmount, slippageBps, expirySecs }) => {
708
627
  const gate = writeGate();
709
628
  if (!gate.ok)
710
629
  return gate.result;
711
- const keyless = await keylessWrite('deposit', { vault, usdcAmount, slippageBps, expirySecs });
712
- if (keyless)
713
- return keyless;
714
- try {
715
- const user = session.walletAddress;
716
- const res = await runDeposit(config, api, user, vault, usdcAmount, {
717
- slippageBps,
718
- expirySecs,
719
- poll: pollTimeoutSecs ? { timeoutSecs: pollTimeoutSecs } : undefined,
720
- });
721
- return text(res);
722
- }
723
- catch (e) {
724
- return errText(`deposit failed: ${e.message}\n` +
725
- `If the escrow is still open, inspect it with zap_status, then recover with ` +
726
- `zap_v2_update_envelope (loosen floors) or zap_v2_cancel (return holdings).`);
727
- }
630
+ return keylessWrite('deposit', { vault, usdcAmount, slippageBps, expirySecs });
728
631
  });
729
632
  // ─── WRITE TOOL: redeem (zap-out) ─────────────────────────────────────────
730
633
  server.registerTool('redeem', {
731
634
  title: 'Redeem shares → USDC (zap-out lifecycle)',
732
635
  description: 'REAL-MONEY (gated). Drive a full zap-v2 redeem: open (burn shares → escrow ' +
733
636
  'basket, oracle-free pro-rata) → wait while the orchestrator cranks the ' +
734
- 'asset→USDC swaps → close (exit fee, pay net USDC). The agent signs only the ' +
735
- 'two boundary TXs locally. `shares` is RAW 6-decimal units.',
637
+ 'asset→USDC swaps → close (exit fee, pay net USDC). Your app wallet signs ' +
638
+ 'both boundary transactions on the server. `shares` is RAW 6-decimal units.',
736
639
  inputSchema: {
737
640
  vault: z.string().regex(BASE58, 'Invalid base58 vault address'),
738
641
  shares: rawShares6dp,
@@ -746,27 +649,11 @@ server.registerTool('redeem', {
746
649
  annotations: { title: 'DFM zap-out redeem', readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
747
650
  },
748
651
  // REVIEW: real-money path — parent must review before enabling.
749
- async ({ vault, shares, slippageBps, expirySecs, pollTimeoutSecs }) => {
652
+ async ({ vault, shares, slippageBps, expirySecs }) => {
750
653
  const gate = writeGate();
751
654
  if (!gate.ok)
752
655
  return gate.result;
753
- const keyless = await keylessWrite('redeem', { vault, shares, slippageBps, expirySecs });
754
- if (keyless)
755
- return keyless;
756
- try {
757
- const user = session.walletAddress;
758
- const res = await runRedeem(config, api, user, vault, shares, {
759
- slippageBps,
760
- expirySecs,
761
- poll: pollTimeoutSecs ? { timeoutSecs: pollTimeoutSecs } : undefined,
762
- });
763
- return text(res);
764
- }
765
- catch (e) {
766
- return errText(`redeem failed: ${e.message}\n` +
767
- `If the escrow is still open, inspect it with zap_status, then recover with ` +
768
- `zap_v2_update_envelope or zap_v2_cancel.`);
769
- }
656
+ return keylessWrite('redeem', { vault, shares, slippageBps, expirySecs });
770
657
  });
771
658
  // ─── WRITE TOOLS: stall recovery (cancel / update-envelope) ───────────────
772
659
  // Fully wired in BOTH lanes (#77 ask 2): an ACTIVE app wallet executes them
@@ -791,29 +678,7 @@ async ({ vault }) => {
791
678
  const gate = writeGate();
792
679
  if (!gate.ok)
793
680
  return gate.result;
794
- try {
795
- // #77 ask 2 — a dead-legged AGENT deposit used to have no way out: this
796
- // refused in keyless mode ("no server-side autonomous path yet"), so an
797
- // escrow the agent itself opened could only be recovered by ops. That was
798
- // a gap in WIRING, not a missing capability — `ConfirmService.buildFor`
799
- // has built `zap_v2_cancel` for the operating wallet all along.
800
- //
801
- // Routed through `keylessWrite`, NOT `isKeylessMode`. WHO PAYS: an ACTIVE
802
- // app wallet is the lane even when a local keypair exists, because the
803
- // escrow belongs to the wallet that opened the deposit. Gating on
804
- // `isKeylessMode` (which requires NO local keypair) broke the exact mixed
805
- // case this fix exists for — API key + active app wallet + local keypair —
806
- // by falling through to a local signer that is not the escrow's owner.
807
- const viaWallet = await keylessWrite('zap_v2_cancel', { vault });
808
- if (viaWallet)
809
- return viaWallet;
810
- const res = await runCancel(config, api, session.walletAddress, vault);
811
- return text(res);
812
- }
813
- catch (e) {
814
- return errText(`zap_v2_cancel failed: ${e.message}` +
815
- (isKeylessMode(config) ? `\n${KEYLESS_SETUP_HINT}` : ''));
816
- }
681
+ return keylessWrite('zap_v2_cancel', { vault });
817
682
  });
818
683
  server.registerTool('zap_v2_update_envelope', {
819
684
  title: 'Loosen pinned floors on a stalled zap-v2 escrow',
@@ -836,31 +701,7 @@ async ({ vault, loosenPct, newSlippageBps, extendSecs }) => {
836
701
  const gate = writeGate();
837
702
  if (!gate.ok)
838
703
  return gate.result;
839
- try {
840
- // #77 ask 2 — the OTHER half of agent self-recovery. A stalled escrow has
841
- // two exits: loosen the pinned floors so the leg can still fill, or cancel
842
- // and take the holdings back. Wiring only the cancel would leave the agent
843
- // able to abandon a deposit but never to rescue one — and loosening is the
844
- // outcome the depositor actually wants. Same WHO PAYS routing as above.
845
- const viaWallet = await keylessWrite('zap_v2_update_envelope', {
846
- vault,
847
- loosenPct,
848
- newSlippageBps,
849
- extendSecs,
850
- });
851
- if (viaWallet)
852
- return viaWallet;
853
- const res = await runUpdateEnvelope(config, api, session.walletAddress, vault, {
854
- loosenPct,
855
- newSlippageBps,
856
- extendSecs,
857
- });
858
- return text(res);
859
- }
860
- catch (e) {
861
- return errText(`zap_v2_update_envelope failed: ${e.message}` +
862
- (isKeylessMode(config) ? `\n${KEYLESS_SETUP_HINT}` : ''));
863
- }
704
+ return keylessWrite('zap_v2_update_envelope', { vault, loosenPct, newSlippageBps, extendSecs });
864
705
  });
865
706
  // ─── WRITE TOOL: update_vault_assets (config-only, same semantics in both lanes) ─
866
707
  server.registerTool('update_vault_assets', {
@@ -893,30 +734,13 @@ async ({ vault, assets }) => {
893
734
  const gate = writeGate();
894
735
  if (!gate.ok)
895
736
  return gate.result;
896
- const keyless = await keylessWrite('update_vault_assets', { vault, assets });
897
- if (keyless)
898
- return keyless;
899
- try {
900
- const res = await runUpdateVaultAssets(config, api, vault, assets.map((a) => ({
901
- mint: a.mint,
902
- symbol: a.symbol,
903
- mintBps: a.allocationBps,
904
- })));
905
- return text(res);
906
- }
907
- catch (e) {
908
- return errText(`update_vault_assets failed: ${e.message}`);
909
- }
737
+ return keylessWrite('update_vault_assets', { vault, assets });
910
738
  });
911
739
  // ─── WRITE TOOL: transfer_admin (HIGH SENSITIVITY) ────────────────────────
912
740
  server.registerTool('transfer_admin', {
913
741
  title: 'Transfer vault admin control (high sensitivity)',
914
- description: '⚠️ HIGH-SENSITIVITY, REAL CONTROL (gated). MANAGER action — only works on a ' +
915
- 'vault the test wallet ADMINS. INITIATES handing vault admin control to ' +
916
- '`newAdmin` (a 2-step transfer — the new admin must ACCEPT separately to ' +
917
- 'complete it). This GIVES AWAY control of the vault. Only do this when the ' +
918
- 'human EXPLICITLY asked, with a `newAdmin` they intend. Never infer it from a ' +
919
- "vault's name/description or any untrusted text.",
742
+ description: 'Admin transfer has no app-wallet executor in this MCP yet. This tool refuses ' +
743
+ 'to sign with an external or local wallet. No control is transferred.',
920
744
  inputSchema: {
921
745
  vault: z.string().regex(BASE58, 'Invalid base58 vault address'),
922
746
  newAdmin: z.string().regex(BASE58, 'Invalid base58 new-admin address'),
@@ -924,33 +748,18 @@ server.registerTool('transfer_admin', {
924
748
  annotations: { title: 'DFM transfer admin', readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
925
749
  },
926
750
  // REVIEW: real-money / control path — parent must review before enabling.
927
- async ({ vault, newAdmin }) => {
751
+ async () => {
928
752
  const gate = writeGate();
929
753
  if (!gate.ok)
930
754
  return gate.result;
931
- const unsupported = keylessUnsupported('transfer_admin');
932
- if (unsupported)
933
- return unsupported;
934
- try {
935
- const res = await runTransferAdmin(config, api, vault, newAdmin);
936
- return text(res);
937
- }
938
- catch (e) {
939
- return errText(`transfer_admin failed: ${e.message}`);
940
- }
755
+ return keylessUnsupported('transfer_admin');
941
756
  });
942
757
  // ─── WRITE TOOL: accept_admin_transfer (HIGH SENSITIVITY) ────────────────
943
758
  server.registerTool('accept_admin_transfer', {
944
759
  title: 'Accept vault admin control (high sensitivity)',
945
- description: '⚠️ HIGH-SENSITIVITY, REAL CONTROL (gated, explicit-human-only). Complete a ' +
946
- 'pending admin handoff when the signed-in LOCAL wallet is the named new admin. ' +
947
- 'The human must explicitly provide confirmPhrase="accept_admin_transfer" in ' +
948
- 'the same request. Local mode prepares, signs, submits, then calls the post-chain ' +
949
- 'confirm endpoint; it reports success only after that endpoint verifies the ' +
950
- 'transaction and reconciles the new admin. A keyless operating wallet cannot sign ' +
951
- 'a new acceptance because the backend has no operating-executor mapping for this ' +
952
- 'tool. `landedSignature` is recovery-only: it retries reconciliation without ' +
953
- 'submitting another transaction.',
760
+ description: 'Reconcile an already-landed admin acceptance using landedSignature. New ' +
761
+ 'acceptances have no app-wallet executor in this MCP and are refused. ' +
762
+ 'No transaction is signed locally. confirmPhrase must be accept_admin_transfer.',
954
763
  inputSchema: {
955
764
  vault: z.string().regex(BASE58, 'Invalid base58 vault address'),
956
765
  confirmPhrase: z.literal('accept_admin_transfer'),
@@ -968,10 +777,7 @@ server.registerTool('accept_admin_transfer', {
968
777
  if (args.landedSignature) {
969
778
  return text(await runAcceptAdminTransfer(config, api, args.vault, args.landedSignature));
970
779
  }
971
- const unsupported = keylessUnsupported('accept_admin_transfer');
972
- if (unsupported)
973
- return unsupported;
974
- return text(await runAcceptAdminTransfer(config, api, args.vault));
780
+ return keylessUnsupported('accept_admin_transfer');
975
781
  }
976
782
  catch (e) {
977
783
  return errText(`accept_admin_transfer failed: ${e.message}`);
@@ -1028,22 +834,11 @@ server.registerTool('update_vault_policy', {
1028
834
  if (args.landedSignature) {
1029
835
  return text(await runUpdateVaultPolicy(config, api, args.vault, policy, args.landedSignature));
1030
836
  }
1031
- // WHO PAYS, not `isKeylessMode`. An ACTIVE app wallet is the lane even
1032
- // when a local keypair exists — it is the vault's admin in that setup, so
1033
- // a locally-signed policy update would be rejected on-chain. This cannot
1034
- // use `keylessWrite` because it needs the RAW result to reconcile against,
1035
- // so it shares the predicate rather than the wrapper.
1036
- if (shouldExecuteViaAppWallet(config, await readAppWalletStatus())) {
1037
- const result = await api.executeViaOperatingWallet('update_vault_policy', {
1038
- vault: args.vault,
1039
- ...policy,
1040
- });
1041
- if (!result) {
1042
- return errText('update_vault_policy did not enter the configured keyless lane.');
1043
- }
1044
- return text(await reconcileKeylessUpdateVaultPolicy(api, args.vault, policy, result));
1045
- }
1046
- return text(await runUpdateVaultPolicy(config, api, args.vault, policy));
837
+ const result = await executeAppWalletWrite(config, api, 'update_vault_policy', {
838
+ vault: args.vault,
839
+ ...policy,
840
+ });
841
+ return text(await reconcileKeylessUpdateVaultPolicy(api, args.vault, policy, result));
1047
842
  }
1048
843
  catch (e) {
1049
844
  return errText(`update_vault_policy failed: ${e.message}` +
@@ -1228,23 +1023,7 @@ server.registerTool('init_rebalancer', {
1228
1023
  const gate = writeGate();
1229
1024
  if (!gate.ok)
1230
1025
  return gate.result;
1231
- try {
1232
- // The server-side path existed end to end — `OPERATING_TOOL_KINDS`,
1233
- // `TOOL_TO_OPERATING_OP`, and a `dispatch` that calls
1234
- // `prepareInitRebalancer` with the operating wallet — and only the MCP's
1235
- // refusal stood in front of it. It never belonged there: this creates the
1236
- // vault's RebalancerConfig and pays its rent; it transfers no admin and
1237
- // moves no funds between wallets.
1238
- const viaWallet = await keylessWrite('init_rebalancer', { vault });
1239
- if (viaWallet)
1240
- return viaWallet;
1241
- const res = await runInitRebalancer(config, api, vault);
1242
- return text(res);
1243
- }
1244
- catch (e) {
1245
- return errText(`init_rebalancer failed: ${e.message}` +
1246
- (isKeylessMode(config) ? `\n${KEYLESS_SETUP_HINT}` : ''));
1247
- }
1026
+ return keylessWrite('init_rebalancer', { vault });
1248
1027
  });
1249
1028
  // ─── WRITE TOOL: rebalance_to_targets (#57 — converge to config targets) ──────
1250
1029
  // CONFIG IS THE SINGLE SOURCE OF TRUTH. The free-form `rebalance {in,out,amount}`
@@ -1286,21 +1065,7 @@ async ({ vault, slippageBps }) => {
1286
1065
  const gate = writeGate();
1287
1066
  if (!gate.ok)
1288
1067
  return gate.result;
1289
- try {
1290
- // KEYLESS: the server signs every converge leg with the operating wallet
1291
- // (orchestrateRebalance — ordered, 5s cooldown between legs). This is not
1292
- // merely a convenience here: a vault LAUNCHED through the operating wallet
1293
- // has that wallet as its on-chain `vault_admin`, so no locally-held key
1294
- // could rebalance it at all.
1295
- const keyless = await keylessWrite('rebalance_to_targets', { vault, slippageBps });
1296
- if (keyless)
1297
- return keyless;
1298
- const res = await runRebalanceToTargets(config, api, vault, slippageBps);
1299
- return text(res);
1300
- }
1301
- catch (e) {
1302
- return errText(`rebalance_to_targets failed: ${e.message}`);
1303
- }
1068
+ return keylessWrite('rebalance_to_targets', { vault, slippageBps });
1304
1069
  });
1305
1070
  // ─── Start ────────────────────────────────────────────────────────────────
1306
1071
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
@@ -1,60 +1,56 @@
1
- /**
2
- * WHO PAYS for a write — the question the agent could not answer.
3
- *
4
- * Measured on mainnet with the published npx package (2026-08-31): with
5
- * `DFM_AGENT_KEYPAIR_PATH` set, every write signed with the KEYPAIR wallet
6
- * (0 USDC, 0.0029 SOL) while the user's app wallet held 17.52 USDC, and
7
- * `launch_vault` died as `custom program error: 0x1`. The agent had funds and
8
- * could not reach them. An active app wallet is the lane now, whatever the auth.
9
- */
10
1
  import assert from 'node:assert/strict';
11
- import { shouldExecuteViaAppWallet, forceLocalSigning, mayLaunchViaAppWallet, } from './keyless.js';
2
+ import { executeAppWalletWrite, shouldExecuteViaAppWallet, mayLaunchViaAppWallet } from './keyless.js';
12
3
  const config = {};
13
- const env = { ...process.env };
14
- const reset = () => {
4
+ const names = ['DFM_API_KEY', 'DFM_AGENT_KEYPAIR_PATH', 'DFM_AGENT_FORCE_LOCAL_SIGNING'];
5
+ const saved = names.map((name) => process.env[name]);
6
+ try {
15
7
  delete process.env.DFM_API_KEY;
8
+ process.env.DFM_AGENT_KEYPAIR_PATH = '/tmp/auth-only-wallet.json';
9
+ process.env.DFM_AGENT_FORCE_LOCAL_SIGNING = 'true';
10
+ let status = 'active';
11
+ let executions = 0;
12
+ const calls = [];
13
+ const api = {
14
+ getOperatingWallet: async () => status ? { status } : null,
15
+ executeViaOperatingWallet: async (tool) => {
16
+ executions++;
17
+ calls.push(tool);
18
+ return { signature: 'APP_WALLET_SIGNATURE', status: 'complete' };
19
+ },
20
+ };
21
+ // Exercise the actual boundary used by MCP, including its retired override.
22
+ for (const tool of ['launch_vault', 'deposit', 'redeem', 'rebalance_to_targets',
23
+ 'init_rebalancer', 'update_vault_assets', 'zap_v2_cancel', 'zap_v2_update_envelope', 'update_vault_policy']) {
24
+ status = 'active';
25
+ assert.equal(shouldExecuteViaAppWallet(config, status), true);
26
+ assert.equal(mayLaunchViaAppWallet(config, status), true);
27
+ assert.equal((await executeAppWalletWrite(config, api, tool, {})).signature, 'APP_WALLET_SIGNATURE');
28
+ const before = executions;
29
+ for (status of ['pending', 'revoked', undefined]) {
30
+ await assert.rejects(executeAppWalletWrite(config, api, tool, {}), /OPERATING_WALLET_REQUIRED/);
31
+ assert.equal(executions, before, 'an unavailable app wallet never reaches any signer');
32
+ }
33
+ }
34
+ assert.equal(calls.length, 9);
35
+ await assert.rejects(executeAppWalletWrite(config, {
36
+ ...api, getOperatingWallet: async () => { throw new Error('lookup failed'); },
37
+ }, 'deposit', {}), /lookup failed/);
38
+ status = 'active';
39
+ await assert.rejects(executeAppWalletWrite(config, {
40
+ ...api, executeViaOperatingWallet: async () => { throw new Error('signature refused'); },
41
+ }, 'redeem', {}), /signature refused/);
42
+ process.env.DFM_API_KEY = 'dfm_test';
16
43
  delete process.env.DFM_AGENT_KEYPAIR_PATH;
17
- delete process.env.DFM_AGENT_KEYPAIR_JSON;
18
- delete process.env.DFM_AGENT_FORCE_LOCAL_SIGNING;
19
- };
20
- reset();
21
- // THE REGRESSION: a keypair on disk no longer hijacks the money lane.
22
- process.env.DFM_AGENT_KEYPAIR_PATH = '/tmp/agent-wallet.json';
23
- assert.equal(shouldExecuteViaAppWallet(config, 'active'), true, 'an ACTIVE app wallet must pay even when a local keypair is configured');
24
- // A wallet that cannot sign yet must NOT be routed to: the server would refuse,
25
- // and the refusal reads as a broken tool instead of a wallet needing arming.
26
- assert.equal(shouldExecuteViaAppWallet(config, 'pending'), false);
27
- assert.equal(shouldExecuteViaAppWallet(config, 'revoked'), false);
28
- assert.equal(shouldExecuteViaAppWallet(config, null), false);
29
- // The deliberate opt-out for the local autonomous agents built against it.
30
- process.env.DFM_AGENT_FORCE_LOCAL_SIGNING = 'true';
31
- assert.equal(forceLocalSigning(), true);
32
- assert.equal(shouldExecuteViaAppWallet(config, 'active'), false);
33
- delete process.env.DFM_AGENT_FORCE_LOCAL_SIGNING;
34
- // Keyless (API key, no keypair) is unchanged: it routes even before the status
35
- // read resolves, because there is nothing else that could sign.
36
- reset();
37
- process.env.DFM_API_KEY = 'dfm_test';
38
- assert.equal(shouldExecuteViaAppWallet(config, null), true);
39
- // ── LAUNCH is app-wallet-only, and the opt-out does NOT reach it ────────────
40
- // Diego, 2026-09-02: "no se puede lanzar un dtf si no tenes usuario en dfm".
41
- // A vault's creator is fixed on-chain forever and is what registers the fund to
42
- // an account, so a locally-signed launch is an ORPHAN the creator paid ~2 USDC
43
- // plus rent for and can never claim. Refusing costs nothing.
44
- reset();
45
- process.env.DFM_AGENT_KEYPAIR_PATH = '/tmp/agent-wallet.json';
46
- process.env.DFM_AGENT_FORCE_LOCAL_SIGNING = 'true';
47
- assert.equal(shouldExecuteViaAppWallet(config, 'active'), false, 'ordinary writes still honour the local-signing opt-out');
48
- assert.equal(mayLaunchViaAppWallet(config, 'active'), true, 'LAUNCH ignores the opt-out — an identity rule is not a payment preference');
49
- // No app wallet at all: refuse rather than sign locally and mint an orphan.
50
- assert.equal(mayLaunchViaAppWallet(config, null), false);
51
- assert.equal(mayLaunchViaAppWallet(config, 'pending'), false);
52
- assert.equal(mayLaunchViaAppWallet(config, 'revoked'), false);
53
- // Keyless: no keypair exists, so the server is the only signer either way —
54
- // let it through and let the server's own refusal be the specific one.
55
- reset();
56
- process.env.DFM_API_KEY = 'dfm_test';
57
- assert.equal(mayLaunchViaAppWallet(config, null), true);
58
- Object.assign(process.env, env);
59
- console.log('✓ who-pays: the app wallet is the lane, and LAUNCH requires it (13 cases)');
44
+ status = 'revoked';
45
+ await assert.rejects(executeAppWalletWrite(config, {
46
+ ...api, executeViaOperatingWallet: async () => { throw new Error('server: wallet revoked'); },
47
+ }, 'deposit', {}), /wallet revoked/);
48
+ console.log('✓ app-wallet-only: all 9 fund operations, unavailable wallets, local override, lookup and signing failures');
49
+ }
50
+ finally {
51
+ names.forEach((name, i) => { if (saved[i] === undefined)
52
+ delete process.env[name];
53
+ else
54
+ process.env[name] = saved[i]; });
55
+ }
60
56
  //# sourceMappingURL=who-pays.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"who-pays.test.js","sourceRoot":"","sources":["../src/who-pays.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"who-pays.test.js","sourceRoot":"","sources":["../src/who-pays.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dfm-fi/agent",
3
- "version": "0.2.1321",
3
+ "version": "0.2.1423",
4
4
  "description": "DFM v2 MCP server — drive the full DTF launch → deposit → redeem (+ manage) lifecycle from an AI agent against the live API.",
5
5
  "type": "module",
6
6
  "bin": {
package/skills.md CHANGED
@@ -60,11 +60,12 @@ Lead with the answer, then the evidence that makes it checkable.
60
60
 
61
61
  ## Tools
62
62
 
63
- Kim's in-app registry exposes **29 tools** (12 READ + 17 WRITE). External agents mount the official MCP and MUST treat its runtime `listTools` result as the available subset; the two surfaces intentionally are not assumed to be identical. READ tools are free and touch no funds; WRITE tools move only the caller's own funds or administered vaults.
63
+ Kim's in-app registry exposes **31 tools** (13 READ + 18 WRITE). External agents mount the official MCP and MUST treat its runtime `listTools` result as the available subset; the two surfaces intentionally are not assumed to be identical. READ tools are free and touch no funds; WRITE tools move only the caller's own funds or administered vaults.
64
64
 
65
- **READ (12)** — safe, no funds, no gate:
65
+ **READ (13)** — safe, no funds, no gate:
66
66
  - `whoami` — The user's display name, primary DFM app wallet, separate sign-in/funding wallet, cluster, and write status. Call FIRST in a session; when an app wallet exists, do not present the sign-in wallet as their DFM wallet.
67
67
  - `app_wallet` — The user's APP WALLET (operating/sub-wallet): whether they have one, its status, its LIVE on-chain SOL + USDC, and what they must do next. Call this before telling a user why an autonomous action was refused — the usual reason is no wallet, not activated, or an empty float, and each has a different fix.
68
+ - `list_app_wallet_assets` — EVERY token the app wallet holds — DTF shares included — with amount, decimals, USD value and whether the mint is one of our fund shares. `app_wallet` answers USDC and SOL only (that is what the float is), so it cannot see a single share. Use this when the user asks what they hold, or before proposing a withdrawal.
68
69
  - `list_dtfs` — Browse live DTF vaults (optional category filter).
69
70
  - `get_vault` — One vault: weights, deviations, fees, TVL, NAV.
70
71
  - `get_portfolio` — The user's DTF positions across vaults. Authentication uses the sign-in identity, but holdings resolve to the app wallet when one exists.
@@ -76,7 +77,8 @@ Kim's in-app registry exposes **29 tools** (12 READ + 17 WRITE). External agents
76
77
  - `remember` — Save a durable fact about this user for future conversations (e.g. their risk preference, a standing instruction like "never put me in memecoins", a naming convention they like). key is a short stable slug (e.g. "risk-preference"); re-using a key REPLACES the old value. Only remember something the user actually said or a fact you are confident about — never invent one.
77
78
  - `recall` — Read back what you remember about this user. Pass `query` to search by keyword, or omit it to see everything remembered. Call this early in a conversation about preferences/standing instructions rather than asking the user to repeat themselves.
78
79
 
79
- **WRITE (17)** — REAL money; only ever your OWN funds / vaults you admin:
80
+ **WRITE (18)** — REAL money; only ever your OWN funds / vaults you admin:
81
+ - `withdraw_asset` — REAL MONEY. Send ONE token from the APP WALLET back to the user, and only to the user: the destination is pinned server-side to their signed-in wallet and is NOT a parameter — you choose WHAT moves, never where it goes. Defaults to the full balance; pass `amount` in RAW base units (never a UI amount — a 9-decimal token does not survive a float) to send part. Confirm the mint with list_app_wallet_assets first; a mint the wallet does not hold is an error, not a no-op.
80
82
  - `app_wallet_withdraw` — Sweep the app wallet's USDC + SOL back to the user's OWN wallet. The destination is pinned server-side to their signed-in wallet — it cannot send anywhere else. Works even when other writes are refused (stale grant, expired), so the float is never trapped. ALWAYS do this before app_wallet_rearm.
81
83
  - `app_wallet_rearm` — Supersede the app-wallet grant and mint a fresh one. THIS CREATES A NEW ADDRESS with an empty balance — anything left in the old wallet stays there. Needed when the grant is stamped with a superseded rebalancer id ("re-arm required"). Refuses while the current wallet still holds funds: withdraw first. Requires confirmPhrase="rearm_app_wallet".
82
84
  - `app_wallet_fund` — Move USDC and/or SOL from the user's OWN wallet into their app wallet so it can pay for launches, deposits and fees. This is the one signature the app-wallet model cannot avoid — it is their money leaving their wallet. Amounts are human units (usdc 12.5, sol 0.05); send SOL too, the app wallet pays its own fees.