@aifinpay/mcp 2.12.1 → 2.14.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 +33 -9
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -2
- package/dist/config.js.map +1 -1
- package/dist/directory.d.ts +55 -0
- package/dist/directory.d.ts.map +1 -0
- package/dist/directory.js +56 -0
- package/dist/directory.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/merchant-site.d.ts +9 -1
- package/dist/merchant-site.d.ts.map +1 -1
- package/dist/merchant-site.js +11 -4
- package/dist/merchant-site.js.map +1 -1
- package/dist/native-price.d.ts +1 -1
- package/dist/native-price.d.ts.map +1 -1
- package/dist/native-price.js +4 -0
- package/dist/native-price.js.map +1 -1
- package/dist/pay-chains.d.ts +4 -0
- package/dist/pay-chains.d.ts.map +1 -1
- package/dist/pay-chains.js.map +1 -1
- package/dist/tools/agent-claim-self.d.ts +14 -7
- package/dist/tools/agent-claim-self.d.ts.map +1 -1
- package/dist/tools/agent-claim-self.js +64 -25
- package/dist/tools/agent-claim-self.js.map +1 -1
- package/dist/tools/directory.d.ts +275 -0
- package/dist/tools/directory.d.ts.map +1 -0
- package/dist/tools/directory.js +253 -0
- package/dist/tools/directory.js.map +1 -0
- package/dist/tools/payable-fetch.d.ts.map +1 -1
- package/dist/tools/payable-fetch.js +14 -4
- package/dist/tools/payable-fetch.js.map +1 -1
- package/dist/tools/production-control.d.ts.map +1 -1
- package/dist/tools/production-control.js +4 -1
- package/dist/tools/production-control.js.map +1 -1
- package/package.json +3 -3
- package/skills/SKILL.md +99 -82
package/README.md
CHANGED
|
@@ -4,8 +4,8 @@ AiFinPay MCP server for persistent agent identity, Agent Passport resolution,
|
|
|
4
4
|
route discovery and non-signing settlement invoices. Canonical domain:
|
|
5
5
|
**aifinpay.io**.
|
|
6
6
|
|
|
7
|
-
Version **2.
|
|
8
|
-
and canonical skill 2.
|
|
7
|
+
Version **2.13.0** is prepared in this checkout, on the published agent 2.9.0
|
|
8
|
+
and canonical skill 2.11.0 (AiFinPay/skill 0490615, published 2026-10-22). The separate canonical producer's final immutable
|
|
9
9
|
source pin is a required handoff, not a moving-branch substitution.
|
|
10
10
|
The published baseline checked2026-10-04 was MCP2.5.0. Package publication and
|
|
11
11
|
real registry dependency/lock refresh remain release gates; a source-cohort
|
|
@@ -227,10 +227,14 @@ client missing from this table can be reported with its exact name.
|
|
|
227
227
|
## Link the agent to its owner's dashboard
|
|
228
228
|
|
|
229
229
|
The owner sees the agent's balance, payments and receipts at
|
|
230
|
-
https://dash.aifinpay.io → My Agents. There, **Claim via MCP**
|
|
231
|
-
one-time URL; pass it to `agent_claim_self
|
|
232
|
-
|
|
233
|
-
no
|
|
230
|
+
https://dash.aifinpay.io → My Agents. There, **Link an agent → Claim via MCP**
|
|
231
|
+
generates a one-time URL; pass it to `agent_claim_self`, which redeems it with
|
|
232
|
+
a POST to `/api/auth/claim`. Opening the URL in a browser, or pasting it into a
|
|
233
|
+
chat that has no AiFinPay MCP, links nothing; such an agent is linked by signed
|
|
234
|
+
message in My Agents instead. An account with 2FA on links the same way: the
|
|
235
|
+
URL was made in a session that already passed the second factor. The tool contacts
|
|
236
|
+
only AiFinPay origins, signs only the claim challenge for this agent's own
|
|
237
|
+
address, and moves no funds. The owner-selected payment family must be confirmed successfully;
|
|
234
238
|
the second wallet is best-effort. Use the selected wallet's Fund panel for
|
|
235
239
|
available networks and assets; binding does not activate a disabled network.
|
|
236
240
|
Offer this to the owner after `init` (step 4 above): from then on the owner
|
|
@@ -284,6 +288,23 @@ the tool says not to retry. `dev_payment_quote` is registered
|
|
|
284
288
|
only with `AIFINPAY_MODE=dev`. Legacy `agent_call`, `agent_quote`,
|
|
285
289
|
`pay_with_split` and `quote_split` remain unregistered.
|
|
286
290
|
|
|
291
|
+
### Read-only directory profile
|
|
292
|
+
|
|
293
|
+
`createDirectoryServer()` is a second, separate server: the one listed in the
|
|
294
|
+
OpenAI ChatGPT App Directory at `https://mcp.aifinpay.io/directory/mcp`. It has
|
|
295
|
+
no agent identity, needs no auth and moves no money. Its nine tools wrap public
|
|
296
|
+
`api.aifinpay.io` GET endpoints (`AIFINPAY_API_BASE` overrides the base), and
|
|
297
|
+
each is `readOnlyHint: true` with an `outputSchema`: `list_providers`,
|
|
298
|
+
`provider_info`, `provider_status`, `service_coverage`, `network_stats`,
|
|
299
|
+
`leaderboard`, `quote_cost` (a fee breakdown, no payment), `verify_passport`
|
|
300
|
+
and `agent_profile`. `@aifinpay/mcp-http` serves it when
|
|
301
|
+
`AIFINPAY_MCP_PROFILE=directory`.
|
|
302
|
+
|
|
303
|
+
```ts
|
|
304
|
+
import { createDirectoryServer } from "@aifinpay/mcp";
|
|
305
|
+
const { server } = await createDirectoryServer();
|
|
306
|
+
```
|
|
307
|
+
|
|
287
308
|
## Persistent wallet selection
|
|
288
309
|
|
|
289
310
|
The CLI (`init` and stdio), programmatic server and `agent_reload` use the same
|
|
@@ -508,7 +529,10 @@ MIT.
|
|
|
508
529
|
## Additional EVM networks in the 2.8.1 source candidate
|
|
509
530
|
|
|
510
531
|
Owner `AIFINPAY_PAY_CHAIN` accepts polygon, base, optimism, arbitrum, avalanche,
|
|
511
|
-
bnb, unichain, xrplevm and
|
|
532
|
+
bnb, unichain, xrplevm, robinhood, arc and arctestnet (2.14.0). Arc pays only in
|
|
533
|
+
USDC, which is also its gas: `AIFINPAY_MAX_GAS` is in USDC (e.g. `0.05`), EURC is
|
|
534
|
+
refused, and no price feed is read. `arctestnet` requires `AIFINPAY_MODE=dev`;
|
|
535
|
+
every EVM mainnet requires live mode. `AIFINPAY_MAX_GAS` is in the selected native
|
|
512
536
|
POL/ETH/AVAX/BNB/XRP currency; the legacy POL cap applies only on Polygon. Assets
|
|
513
537
|
must be pinned for that chain, including BNB 18-decimal USDC/USDT and Robinhood
|
|
514
538
|
18-decimal USDe/6-decimal USDG. XRPL EVM has native XRP only. Metadata comes from
|
|
@@ -539,8 +563,8 @@ the new bound preparation/recovery/completion hooks; absence refuses payment.
|
|
|
539
563
|
|
|
540
564
|
Version2.7 targets NodeSDK2.5 and canonical skill2.8. These are coordinated
|
|
541
565
|
release targets; source integration does not establish npm publication or
|
|
542
|
-
activate a network.
|
|
543
|
-
|
|
566
|
+
activate a network. From agent 2.10.0 (deployments 2.1.0) the Solana entries are
|
|
567
|
+
enabled (ADR-007). `payable_fetch` retains the SDK availability check and cannot
|
|
544
568
|
override it.
|
|
545
569
|
|
|
546
570
|
For a separately accepted and served Solana route, the owner sets
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;iGAC6F;IAC7F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;iGAE6F;IAC7F,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;sEACkE;IAClE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;0EACsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACrC,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;yFACqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;;;;;;;uEAamE;IACnE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;kFAE8E;IAC9E,eAAe,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAEvC;;;;;;;;;8CAS0C;IAC1C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,qDAAqD;IACrD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAqC7C;AA4ED;;;2BAG2B;AAC3B,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC;;;mFAGmF;AACnF,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAUzC;;kCAEkC;AAClC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGvD,6CAA6C;AAC7C,MAAM,WAAW,SAAS;IACxB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;iGAC6F;IAC7F,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;iGAE6F;IAC7F,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;sEACkE;IAClE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;0EACsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACrC,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;yFACqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;;;;;;;;;uEAamE;IACnE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;kFAE8E;IAC9E,eAAe,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAEvC;;;;;;;;;8CAS0C;IAC1C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,qDAAqD;IACrD,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjE;AAED,wBAAgB,iBAAiB,IAAI,SAAS,CAqC7C;AA4ED;;;2BAG2B;AAC3B,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC;;;mFAGmF;AACnF,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAUzC;;kCAEkC;AAClC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA6F/D"}
|
package/dist/config.js
CHANGED
|
@@ -139,8 +139,12 @@ export function validatePaymentConfig(config) {
|
|
|
139
139
|
if (!config.paymentsEnabled)
|
|
140
140
|
throw new Error("Payments disabled by the owner (AIFINPAY_PAYMENTS_ENABLED=0)");
|
|
141
141
|
const chain = payChain(config.payChain);
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
// A testnet pays only in dev mode and a mainnet only in live mode, so one can
|
|
143
|
+
// never stand in for the other (Solana checks its cluster the same way below).
|
|
144
|
+
if (chain.name !== "solana" && (config.devMode === true) !== (chain.testnet === true))
|
|
145
|
+
throw new Error(chain.testnet
|
|
146
|
+
? `${chain.name} is a testnet: set AIFINPAY_MODE=dev to pay on it`
|
|
147
|
+
: "MCP receipt payments on EVM mainnets support live mode only");
|
|
144
148
|
if (config.rpcUrl !== undefined) {
|
|
145
149
|
let rpc;
|
|
146
150
|
try {
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createDirectoryServer — the READ-ONLY MCP server submitted to the OpenAI
|
|
3
|
+
* ChatGPT App Directory. Distinct from `createServer` (the full BYO-MCP
|
|
4
|
+
* connector with payment execution): this one exposes ONLY the read-only
|
|
5
|
+
* directory tools, requires NO agent identity and NO auth, and never moves
|
|
6
|
+
* money — so it is reviewable under OpenAI's directory policy (Obsidian/32 /34).
|
|
7
|
+
*
|
|
8
|
+
* One codebase, two profiles: the HTTP wrapper picks this when
|
|
9
|
+
* AIFINPAY_MCP_PROFILE=directory.
|
|
10
|
+
*/
|
|
11
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
12
|
+
export interface DirectoryServerConfig {
|
|
13
|
+
/** Public API base for the wrapped GET endpoints. Defaults to production. */
|
|
14
|
+
apiBase?: string;
|
|
15
|
+
/** Per-request timeout (ms). */
|
|
16
|
+
timeoutMs?: number;
|
|
17
|
+
log?: (level: "info" | "warn" | "error", msg: string) => void;
|
|
18
|
+
}
|
|
19
|
+
export declare function createDirectoryServer(config?: DirectoryServerConfig): Promise<{
|
|
20
|
+
server: Server<{
|
|
21
|
+
method: string;
|
|
22
|
+
params?: {
|
|
23
|
+
[x: string]: unknown;
|
|
24
|
+
_meta?: {
|
|
25
|
+
[x: string]: unknown;
|
|
26
|
+
progressToken?: string | number | undefined;
|
|
27
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
28
|
+
taskId: string;
|
|
29
|
+
} | undefined;
|
|
30
|
+
} | undefined;
|
|
31
|
+
} | undefined;
|
|
32
|
+
}, {
|
|
33
|
+
method: string;
|
|
34
|
+
params?: {
|
|
35
|
+
[x: string]: unknown;
|
|
36
|
+
_meta?: {
|
|
37
|
+
[x: string]: unknown;
|
|
38
|
+
progressToken?: string | number | undefined;
|
|
39
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
40
|
+
taskId: string;
|
|
41
|
+
} | undefined;
|
|
42
|
+
} | undefined;
|
|
43
|
+
} | undefined;
|
|
44
|
+
}, {
|
|
45
|
+
[x: string]: unknown;
|
|
46
|
+
_meta?: {
|
|
47
|
+
[x: string]: unknown;
|
|
48
|
+
progressToken?: string | number | undefined;
|
|
49
|
+
"io.modelcontextprotocol/related-task"?: {
|
|
50
|
+
taskId: string;
|
|
51
|
+
} | undefined;
|
|
52
|
+
} | undefined;
|
|
53
|
+
}>;
|
|
54
|
+
}>;
|
|
55
|
+
//# sourceMappingURL=directory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory.d.ts","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/D;AAwBD,wBAAsB,qBAAqB,CAAC,MAAM,GAAE,qBAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2B7E"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* createDirectoryServer — the READ-ONLY MCP server submitted to the OpenAI
|
|
3
|
+
* ChatGPT App Directory. Distinct from `createServer` (the full BYO-MCP
|
|
4
|
+
* connector with payment execution): this one exposes ONLY the read-only
|
|
5
|
+
* directory tools, requires NO agent identity and NO auth, and never moves
|
|
6
|
+
* money — so it is reviewable under OpenAI's directory policy (Obsidian/32 /34).
|
|
7
|
+
*
|
|
8
|
+
* One codebase, two profiles: the HTTP wrapper picks this when
|
|
9
|
+
* AIFINPAY_MCP_PROFILE=directory.
|
|
10
|
+
*/
|
|
11
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
12
|
+
import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
13
|
+
import { directoryTools, runDirectoryTool, DIRECTORY_API_BASE } from "./tools/directory.js";
|
|
14
|
+
// Server-wide instructions returned at initialize. ChatGPT/Codex use these as a
|
|
15
|
+
// cross-tool guide (OpenAI readiness checklist item; the audit found it ABSENT
|
|
16
|
+
// on the connector server). States the read-only contract, networks, and limits.
|
|
17
|
+
const DIRECTORY_INSTRUCTIONS = [
|
|
18
|
+
"AiFinPay is payment infrastructure for AI agents. THIS server is the",
|
|
19
|
+
"read-only directory surface: it answers questions about the AiFinPay agent",
|
|
20
|
+
"economy and prices AI services — it does NOT move money, hold funds, sign",
|
|
21
|
+
"transactions, or execute any payment. Every tool is read-only.",
|
|
22
|
+
"",
|
|
23
|
+
"Use it to: list available AI providers and their per-call prices",
|
|
24
|
+
"(list_providers / provider_info / provider_status / service_coverage),",
|
|
25
|
+
"preview a fee-on-top cost breakdown without paying (quote_cost), read public",
|
|
26
|
+
"protocol stats (network_stats) and the on-chain agent leaderboard",
|
|
27
|
+
"(leaderboard), verify an agent's AgentPassport (verify_passport), and look up",
|
|
28
|
+
"a public agent profile (agent_profile).",
|
|
29
|
+
"",
|
|
30
|
+
"Networks: Polygon and Solana mainnet. Data is public on-chain / registry",
|
|
31
|
+
"information. To actually execute a payment, an agent uses the separate",
|
|
32
|
+
"AiFinPay connector or SDK — not this directory app. Requests are rate limited;",
|
|
33
|
+
"on HTTP 429 (rate_limit_exceeded), back off and retry.",
|
|
34
|
+
].join("\n");
|
|
35
|
+
export async function createDirectoryServer(config = {}) {
|
|
36
|
+
const log = config.log ?? ((lvl, msg) => process.stderr.write(`[${lvl}] ${msg}\n`));
|
|
37
|
+
const ctx = {
|
|
38
|
+
apiBase: (config.apiBase || DIRECTORY_API_BASE).replace(/\/$/, ""),
|
|
39
|
+
timeoutMs: config.timeoutMs ?? 15000,
|
|
40
|
+
log,
|
|
41
|
+
};
|
|
42
|
+
const server = new Server({ name: "@aifinpay/mcp-directory", version: "1.0.0" }, {
|
|
43
|
+
capabilities: { tools: {} },
|
|
44
|
+
instructions: DIRECTORY_INSTRUCTIONS,
|
|
45
|
+
});
|
|
46
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
47
|
+
tools: directoryTools(),
|
|
48
|
+
}));
|
|
49
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
50
|
+
const { name, arguments: args } = request.params;
|
|
51
|
+
return runDirectoryTool(ctx, name, args ?? {});
|
|
52
|
+
});
|
|
53
|
+
log("info", `[aifinpay-mcp-directory] read-only profile · api=${ctx.apiBase}`);
|
|
54
|
+
return { server };
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory.js","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAyB,MAAM,sBAAsB,CAAC;AAUnH,gFAAgF;AAChF,+EAA+E;AAC/E,iFAAiF;AACjF,MAAM,sBAAsB,GAAG;IAC7B,sEAAsE;IACtE,4EAA4E;IAC5E,2EAA2E;IAC3E,gEAAgE;IAChE,EAAE;IACF,kEAAkE;IAClE,wEAAwE;IACxE,8EAA8E;IAC9E,mEAAmE;IACnE,+EAA+E;IAC/E,yCAAyC;IACzC,EAAE;IACF,0EAA0E;IAC1E,wEAAwE;IACxE,gFAAgF;IAChF,wDAAwD;CACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAM,GAA0B,EAAE;IAC5E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IACpF,MAAM,GAAG,GAAqB;QAC5B,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAClE,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;QACpC,GAAG;KACJ,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,OAAO,EAAE,EACrD;QACE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3B,YAAY,EAAE,sBAAsB;KACrC,CACF,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,cAAc,EAAE;KACxB,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACjD,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,EAAE,oDAAoD,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/E,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,4 +23,6 @@ export { createServer } from "./server.js";
|
|
|
23
23
|
export type { ToolContext } from "./server.js";
|
|
24
24
|
export type { McpConfig } from "./config.js";
|
|
25
25
|
export { loadConfigFromEnv } from "./config.js";
|
|
26
|
+
export { createDirectoryServer } from "./directory.js";
|
|
27
|
+
export type { DirectoryServerConfig } from "./directory.js";
|
|
26
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -21,4 +21,7 @@
|
|
|
21
21
|
*/
|
|
22
22
|
export { createServer } from "./server.js";
|
|
23
23
|
export { loadConfigFromEnv } from "./config.js";
|
|
24
|
+
// Read-only directory profile — the surface submitted to the OpenAI ChatGPT App
|
|
25
|
+
// Directory (no agent, no auth, no payment execution). See directory.ts.
|
|
26
|
+
export { createDirectoryServer } from "./directory.js";
|
|
24
27
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,gFAAgF;AAChF,yEAAyE;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/merchant-site.d.ts
CHANGED
|
@@ -13,10 +13,18 @@
|
|
|
13
13
|
* the 402's, and the check runs in onPrepared — before anything is signed into
|
|
14
14
|
* the journal or broadcast — so a refusal pays nothing.
|
|
15
15
|
*/
|
|
16
|
+
/** "unconfirmed": the lookup failed; "unverified": no DNS proof; "other_site":
|
|
17
|
+
* verified, but for a host other than the one being paid for. */
|
|
18
|
+
export type UnverifiedMerchantSiteKind = "unconfirmed" | "unverified" | "other_site";
|
|
16
19
|
export declare class UnverifiedMerchantSiteError extends Error {
|
|
17
20
|
readonly merchantId: string;
|
|
18
21
|
readonly reason: string;
|
|
19
|
-
|
|
22
|
+
readonly kind: UnverifiedMerchantSiteKind;
|
|
23
|
+
/** Origin of the URL being paid for: what the owner would allowlist. */
|
|
24
|
+
readonly origin: string;
|
|
25
|
+
constructor(merchantId: string, reason: string, kind: UnverifiedMerchantSiteKind,
|
|
26
|
+
/** Origin of the URL being paid for: what the owner would allowlist. */
|
|
27
|
+
origin: string);
|
|
20
28
|
}
|
|
21
29
|
export declare function assertVerifiedMerchantSite(opts: {
|
|
22
30
|
fetchImpl: (input: string, init?: RequestInit) => Promise<Response>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merchant-site.d.ts","sourceRoot":"","sources":["../src/merchant-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,qBAAa,2BAA4B,SAAQ,KAAK;aAElC,UAAU,EAAE,MAAM;aAClB,MAAM,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"merchant-site.d.ts","sourceRoot":"","sources":["../src/merchant-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;kEACkE;AAClE,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;AAErF,qBAAa,2BAA4B,SAAQ,KAAK;aAElC,UAAU,EAAE,MAAM;aAClB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,0BAA0B;IAChD,wEAAwE;aACxD,MAAM,EAAE,MAAM;IALhC,YACkB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,0BAA0B;IAChD,wEAAwE;IACxD,MAAM,EAAE,MAAM,EAI/B;CACF;AAcD,wBAAsB,0BAA0B,CAAC,IAAI,EAAE;IACrD,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpE,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,GAAG,EAAE,GAAG,CAAC;IACT,+EAA+E;IAC/E,QAAQ,EAAE,SAAS,GAAG,QAAQ,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BhB"}
|
package/dist/merchant-site.js
CHANGED
|
@@ -16,10 +16,16 @@
|
|
|
16
16
|
export class UnverifiedMerchantSiteError extends Error {
|
|
17
17
|
merchantId;
|
|
18
18
|
reason;
|
|
19
|
-
|
|
19
|
+
kind;
|
|
20
|
+
origin;
|
|
21
|
+
constructor(merchantId, reason, kind,
|
|
22
|
+
/** Origin of the URL being paid for: what the owner would allowlist. */
|
|
23
|
+
origin) {
|
|
20
24
|
super(`Not paid: merchant ${merchantId} ${reason}. Nothing was signed or sent.`);
|
|
21
25
|
this.merchantId = merchantId;
|
|
22
26
|
this.reason = reason;
|
|
27
|
+
this.kind = kind;
|
|
28
|
+
this.origin = origin;
|
|
23
29
|
this.name = "UnverifiedMerchantSiteError";
|
|
24
30
|
}
|
|
25
31
|
}
|
|
@@ -45,14 +51,15 @@ export async function assertVerifiedMerchantSite(opts) {
|
|
|
45
51
|
catch {
|
|
46
52
|
body = null;
|
|
47
53
|
}
|
|
54
|
+
const origin = opts.url.origin;
|
|
48
55
|
if (!body || body.merchant_id !== merchantId)
|
|
49
|
-
throw new UnverifiedMerchantSiteError(merchantId, "could not be confirmed with AiFinPay");
|
|
56
|
+
throw new UnverifiedMerchantSiteError(merchantId, "could not be confirmed with AiFinPay", "unconfirmed", origin);
|
|
50
57
|
if (body.site_verified !== true)
|
|
51
|
-
throw new UnverifiedMerchantSiteError(merchantId, "has not verified its site with AiFinPay");
|
|
58
|
+
throw new UnverifiedMerchantSiteError(merchantId, "has not verified its site with AiFinPay", "unverified", origin);
|
|
52
59
|
if (opts.pathMode === "direct") {
|
|
53
60
|
const site = hostOf(body.site_url);
|
|
54
61
|
if (!site || site !== opts.url.hostname.toLowerCase())
|
|
55
|
-
throw new UnverifiedMerchantSiteError(merchantId, `is verified for ${site ?? "no https site"}, not ${opts.url.hostname}
|
|
62
|
+
throw new UnverifiedMerchantSiteError(merchantId, `is verified for ${site ?? "no https site"}, not ${opts.url.hostname}`, "other_site", origin);
|
|
56
63
|
}
|
|
57
64
|
}
|
|
58
65
|
//# sourceMappingURL=merchant-site.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merchant-site.js","sourceRoot":"","sources":["../src/merchant-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"merchant-site.js","sourceRoot":"","sources":["../src/merchant-site.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAElC,UAAU;IACV,MAAM;IACN,IAAI;IAEJ,MAAM;IALxB,YACkB,UAAkB,EAClB,MAAc,EACd,IAAgC;IAChD,wEAAwE;IACxD,MAAc;QAE9B,KAAK,CAAC,sBAAsB,UAAU,IAAI,MAAM,+BAA+B,CAAC,CAAC;0BANjE,UAAU;sBACV,MAAM;oBACN,IAAI;sBAEJ,MAAM;QAGtB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAID,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,IAUhD;IACC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC5B,IAAI,IAAI,GAAwB,IAAI,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAC9B,IAAI,GAAG,CAAC,iBAAiB,kBAAkB,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAC7E,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAC/D,CAAC;QACF,IAAI,GAAG,CAAC,EAAE;YAAE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiB,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IAC/B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU;QAC1C,MAAM,IAAI,2BAA2B,CAAC,UAAU,EAAE,sCAAsC,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;IACnH,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI;QAC7B,MAAM,IAAI,2BAA2B,CAAC,UAAU,EAAE,yCAAyC,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACrH,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE;YACnD,MAAM,IAAI,2BAA2B,CACnC,UAAU,EACV,mBAAmB,IAAI,IAAI,eAAe,SAAS,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EACtE,YAAY,EACZ,MAAM,CACP,CAAC;IACN,CAAC;AACH,CAAC"}
|
package/dist/native-price.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export declare const CHAINLINK_POL_USD_POLYGON: `0x${string}` | undefined;
|
|
|
21
21
|
export interface NativePrice {
|
|
22
22
|
usd: number;
|
|
23
23
|
observedAtMs: number;
|
|
24
|
-
source: `chainlink-${string}` | "coinbase" | "coingecko";
|
|
24
|
+
source: `chainlink-${string}` | "coinbase" | "coingecko" | "usd-peg";
|
|
25
25
|
}
|
|
26
26
|
type FetchImpl = (input: string, init?: RequestInit) => Promise<Response>;
|
|
27
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-price.d.ts","sourceRoot":"","sources":["../src/native-price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,yBAAyB,2BAAwC,CAAC;AAO/E,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,MAAM,EAAE,GAAG,UAAU,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"native-price.d.ts","sourceRoot":"","sources":["../src/native-price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,yBAAyB,2BAAwC,CAAC;AAO/E,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,aAAa,MAAM,EAAE,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;CACtE;AAED,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAoE1E;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE;IAC/C,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,WAAW,CAAC,CAyBvB;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAE3G"}
|
package/dist/native-price.js
CHANGED
|
@@ -98,6 +98,10 @@ async function fromCoinGecko(fetchImpl, chain) {
|
|
|
98
98
|
*/
|
|
99
99
|
export async function independentNativeUsd(opts) {
|
|
100
100
|
const { chain } = opts;
|
|
101
|
+
// Arc's gas token is USDC itself (10^18 units = $1). Funding advice and gas
|
|
102
|
+
// are already USD; a market feed would only add a host and noise.
|
|
103
|
+
if (chain.stablecoinOnly)
|
|
104
|
+
return { usd: 1, observedAtMs: Date.now(), source: "usd-peg" };
|
|
101
105
|
const attempts = [];
|
|
102
106
|
const rpc = opts.rpc;
|
|
103
107
|
if (rpc && chain.chainlinkNativeUsd)
|
package/dist/native-price.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-price.js","sourceRoot":"","sources":["../src/native-price.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"native-price.js","sourceRoot":"","sources":["../src/native-price.ts"],"names":[],"mappings":"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"}
|
package/dist/pay-chains.d.ts
CHANGED
|
@@ -24,6 +24,10 @@ export interface PayChain {
|
|
|
24
24
|
coingeckoId: string;
|
|
25
25
|
/** Upper bound of a plausible native/USD price; anything above is refused. */
|
|
26
26
|
maxSaneUsd: number;
|
|
27
|
+
/** Gas token is the pinned stablecoin itself (Arc USDC): pay only in the token. */
|
|
28
|
+
stablecoinOnly?: true;
|
|
29
|
+
/** Test network: payable only with AIFINPAY_MODE=dev, never with live money. */
|
|
30
|
+
testnet?: true;
|
|
27
31
|
}
|
|
28
32
|
export declare const PAY_CHAINS: Readonly<Record<Aifp1V14Chain, PayChain>>;
|
|
29
33
|
export declare const SOLANA_PAY_CHAIN: Readonly<PayChain>;
|
package/dist/pay-chains.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay-chains.d.ts","sourceRoot":"","sources":["../src/pay-chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErE;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,aAAa,GAAG,QAAQ,CAAC;IAC/B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"pay-chains.d.ts","sourceRoot":"","sources":["../src/pay-chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErE;;;;;;;;GAQG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,aAAa,GAAG,QAAQ,CAAC;IAC/B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACnC,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,gFAAgF;IAChF,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAkBD,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAA4B,CAAC;AAE9F,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAQ9C,CAAC;AACH,eAAO,MAAM,eAAe,UAAyC,CAAC;AAEtE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAM3D"}
|
package/dist/pay-chains.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pay-chains.js","sourceRoot":"","sources":["../src/pay-chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAsB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"pay-chains.js","sourceRoot":"","sources":["../src/pay-chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAsB,MAAM,iBAAiB,CAAC;AAiCrE,4EAA4E;AAC5E,2EAA2E;AAC3E,MAAM,SAAS,GAAG,EAAqC,CAAC;AACxD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAoB,EAAE,CAAC;IAClE,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,GAAG,UAAU;QACb,IAAI;QACJ,YAAY,EAAE,GAAG,UAAU,CAAC,MAAM,MAAM;QACxC,GAAG,CAAC,IAAI,KAAK,SAAS;YACpB,CAAC,CAAC,EAAE,kBAAkB,EAAE,4CAAqD,EAAE;YAC/E,CAAC,CAAC,IAAI,KAAK,MAAM;gBACf,CAAC,CAAC,EAAE,kBAAkB,EAAE,4CAAqD,EAAE;gBAC/E,CAAC,CAAC,EAAE,CAAC;KACV,CAAC,CAAC;AACL,CAAC;AACD,MAAM,CAAC,MAAM,UAAU,GAA8C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,gBAAgB,GAAuB,MAAM,CAAC,MAAM,CAAC;IAChE,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,qCAAqC;IACjD,YAAY,EAAE,SAAS;IACvB,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,OAAO;CACpB,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,CAAC;AAEtE,MAAM,UAAU,QAAQ,CAAC,IAAwB;IAC/C,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC;IAC/C,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,SAAS,CAAkB,CAAC;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3E,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -4,17 +4,25 @@ import type { ToolContext } from "../server.js";
|
|
|
4
4
|
* autonomously by signing a claim challenge with its own key.
|
|
5
5
|
*
|
|
6
6
|
* Flow (executed inside the tool, no copy-paste between UIs):
|
|
7
|
-
* 1.
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* 3. Agent calls this tool with the magic_link_url
|
|
12
|
-
* 4. Tool
|
|
7
|
+
* 1. The owner opens dash.aifinpay.io → My Agents → Link an agent →
|
|
8
|
+
* Claim via MCP and generates a one-time URL (POST /api/me/claim-url),
|
|
9
|
+
* e.g. `https://dash.aifinpay.io/api/auth/verify?token=…`
|
|
10
|
+
* 2. The owner gives that URL to the agent: "link yourself to my account"
|
|
11
|
+
* 3. Agent calls this tool with the URL as magic_link_url
|
|
12
|
+
* 4. Tool POSTs the token to /api/auth/claim → server answers with a
|
|
13
|
+
* ten-minute agent-claim grant cookie (not a session)
|
|
13
14
|
* 5. Tool requests a challenge for the owner-selected payment family
|
|
14
15
|
* 6. Tool signs only that address's claim (EIP-191 or Ed25519)
|
|
15
16
|
* 7. Tool POSTs to /api/me/agents/claim → server verifies signature →
|
|
16
17
|
* agent attached to user's watchlist
|
|
17
18
|
*
|
|
19
|
+
* Step 4 used to GET the URL. The backend redeems a claim link on that GET
|
|
20
|
+
* only when the request carries no browser Sec-Fetch headers, so a runtime
|
|
21
|
+
* whose fetch adds them was sent to the confirm page and linked nothing.
|
|
22
|
+
* The POST route is told apart by its own path and the link's flow. A
|
|
23
|
+
* backend without it (404/405) still gets the GET, so this works against any
|
|
24
|
+
* deployment.
|
|
25
|
+
*
|
|
18
26
|
* Optional `label` field gives the agent a friendly name in the user's UI.
|
|
19
27
|
*
|
|
20
28
|
* Security model:
|
|
@@ -57,7 +65,6 @@ export declare function runAgentClaimSelf(ctx: ToolContext, args: Record<string,
|
|
|
57
65
|
text: string;
|
|
58
66
|
}[];
|
|
59
67
|
} | {
|
|
60
|
-
isError?: undefined;
|
|
61
68
|
content: {
|
|
62
69
|
type: string;
|
|
63
70
|
text: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-claim-self.d.ts","sourceRoot":"","sources":["../../src/tools/agent-claim-self.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD
|
|
1
|
+
{"version":3,"file":"agent-claim-self.d.ts","sourceRoot":"","sources":["../../src/tools/agent-claim-self.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,kBAAkB;IAE9B,IAAI;IACJ,WAAW;IAOX,WAAW;QACT,IAAI;QACJ,UAAU;YACR,cAAc;gBACZ,IAAI;gBACJ,WAAW;;YAKb,KAAK;gBACH,IAAI;gBACJ,WAAW;;;QAGf,QAAQ;;IAGV,WAAW;QAAI,YAAY;QAAS,aAAa;QAAS,eAAe;;IACzE,YAAY;QAAI,IAAI;;EAEvB;AAgGD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;GA4KtF"}
|