@ampersend_ai/ampersend-sdk 0.0.21 → 0.0.25

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.
Files changed (109) hide show
  1. package/dist/ampersend/agent-client.d.ts +81 -0
  2. package/dist/ampersend/agent-client.d.ts.map +1 -0
  3. package/dist/ampersend/agent-client.js +104 -0
  4. package/dist/ampersend/agent-client.js.map +1 -0
  5. package/dist/ampersend/agent.d.ts +119 -0
  6. package/dist/ampersend/agent.d.ts.map +1 -0
  7. package/dist/ampersend/agent.js +99 -0
  8. package/dist/ampersend/agent.js.map +1 -0
  9. package/dist/ampersend/client.d.ts +32 -8
  10. package/dist/ampersend/client.d.ts.map +1 -1
  11. package/dist/ampersend/client.js +81 -3
  12. package/dist/ampersend/client.js.map +1 -1
  13. package/dist/ampersend/curated-agent.d.ts +117 -0
  14. package/dist/ampersend/curated-agent.d.ts.map +1 -0
  15. package/dist/ampersend/curated-agent.js +149 -0
  16. package/dist/ampersend/curated-agent.js.map +1 -0
  17. package/dist/ampersend/env.d.ts +0 -15
  18. package/dist/ampersend/env.d.ts.map +1 -1
  19. package/dist/ampersend/env.js +0 -4
  20. package/dist/ampersend/env.js.map +1 -1
  21. package/dist/ampersend/index.d.ts +4 -0
  22. package/dist/ampersend/index.d.ts.map +1 -1
  23. package/dist/ampersend/index.js +6 -0
  24. package/dist/ampersend/index.js.map +1 -1
  25. package/dist/ampersend/marketplace.d.ts +53 -0
  26. package/dist/ampersend/marketplace.d.ts.map +1 -0
  27. package/dist/ampersend/marketplace.js +65 -0
  28. package/dist/ampersend/marketplace.js.map +1 -0
  29. package/dist/ampersend/treasurer.d.ts +4 -0
  30. package/dist/ampersend/treasurer.d.ts.map +1 -1
  31. package/dist/ampersend/treasurer.js +2 -2
  32. package/dist/ampersend/treasurer.js.map +1 -1
  33. package/dist/ampersend/types.d.ts +39 -6
  34. package/dist/ampersend/types.d.ts.map +1 -1
  35. package/dist/ampersend/types.js +19 -1
  36. package/dist/ampersend/types.js.map +1 -1
  37. package/dist/cli/ampersend.js +47 -2
  38. package/dist/cli/ampersend.js.map +1 -1
  39. package/dist/cli/commands/agent.d.ts +22 -0
  40. package/dist/cli/commands/agent.d.ts.map +1 -0
  41. package/dist/cli/commands/agent.js +144 -0
  42. package/dist/cli/commands/agent.js.map +1 -0
  43. package/dist/cli/commands/card.d.ts +125 -0
  44. package/dist/cli/commands/card.d.ts.map +1 -0
  45. package/dist/cli/commands/card.js +399 -0
  46. package/dist/cli/commands/card.js.map +1 -0
  47. package/dist/cli/commands/config.d.ts.map +1 -1
  48. package/dist/cli/commands/config.js +2 -21
  49. package/dist/cli/commands/config.js.map +1 -1
  50. package/dist/cli/commands/fetch.d.ts +76 -2
  51. package/dist/cli/commands/fetch.d.ts.map +1 -1
  52. package/dist/cli/commands/fetch.js +208 -133
  53. package/dist/cli/commands/fetch.js.map +1 -1
  54. package/dist/cli/commands/fund.d.ts +3 -0
  55. package/dist/cli/commands/fund.d.ts.map +1 -0
  56. package/dist/cli/commands/fund.js +22 -0
  57. package/dist/cli/commands/fund.js.map +1 -0
  58. package/dist/cli/commands/marketplace.d.ts +22 -0
  59. package/dist/cli/commands/marketplace.d.ts.map +1 -0
  60. package/dist/cli/commands/marketplace.js +136 -0
  61. package/dist/cli/commands/marketplace.js.map +1 -0
  62. package/dist/cli/commands/version.d.ts +3 -0
  63. package/dist/cli/commands/version.d.ts.map +1 -0
  64. package/dist/cli/commands/version.js +12 -0
  65. package/dist/cli/commands/version.js.map +1 -0
  66. package/dist/cli/config.d.ts +58 -10
  67. package/dist/cli/config.d.ts.map +1 -1
  68. package/dist/cli/config.js +110 -31
  69. package/dist/cli/config.js.map +1 -1
  70. package/dist/index.d.ts +2 -0
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +1 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/mcp/proxy/cli.js +1 -0
  75. package/dist/mcp/proxy/cli.js.map +1 -1
  76. package/dist/mcp/proxy/factory.d.ts +2 -0
  77. package/dist/mcp/proxy/factory.d.ts.map +1 -1
  78. package/dist/mcp/proxy/factory.js +10 -1
  79. package/dist/mcp/proxy/factory.js.map +1 -1
  80. package/dist/mcp/proxy/server/init.js +1 -1
  81. package/dist/mcp/proxy/server/init.js.map +1 -1
  82. package/dist/mcp/proxy/server/server.d.ts +3 -1
  83. package/dist/mcp/proxy/server/server.d.ts.map +1 -1
  84. package/dist/mcp/proxy/server/server.js +5 -2
  85. package/dist/mcp/proxy/server/server.js.map +1 -1
  86. package/dist/mcp/proxy/types.d.ts +7 -0
  87. package/dist/mcp/proxy/types.d.ts.map +1 -1
  88. package/dist/mcp/proxy/types.js.map +1 -1
  89. package/dist/version.d.ts +3 -1
  90. package/dist/version.d.ts.map +1 -1
  91. package/dist/version.js +3 -1
  92. package/dist/version.js.map +1 -1
  93. package/dist/x402/http/factory.d.ts +2 -2
  94. package/dist/x402/http/factory.d.ts.map +1 -1
  95. package/dist/x402/http/factory.js +14 -8
  96. package/dist/x402/http/factory.js.map +1 -1
  97. package/dist/x402/index.d.ts +2 -0
  98. package/dist/x402/index.d.ts.map +1 -1
  99. package/dist/x402/index.js +2 -0
  100. package/dist/x402/index.js.map +1 -1
  101. package/dist/x402/siwx.d.ts +55 -0
  102. package/dist/x402/siwx.d.ts.map +1 -0
  103. package/dist/x402/siwx.js +122 -0
  104. package/dist/x402/siwx.js.map +1 -0
  105. package/dist/x402/wallets/smart-account/cosigned.d.ts +9 -2
  106. package/dist/x402/wallets/smart-account/cosigned.d.ts.map +1 -1
  107. package/dist/x402/wallets/smart-account/cosigned.js +13 -4
  108. package/dist/x402/wallets/smart-account/cosigned.js.map +1 -1
  109. package/package.json +3 -2
@@ -0,0 +1,136 @@
1
+ import { Schema } from "effect";
2
+ import { CuratedAgentDTO, MarketplaceClient, } from "../../ampersend/index.js";
3
+ import { DEFAULT_API_URL, getRuntimeConfig, loadCredentials } from "../config.js";
4
+ import { err, ok } from "../envelope.js";
5
+ // Decoded DTOs hold bigints (e.g. pricing_config.amount), which JSON.stringify
6
+ // can't serialize. Encode back to wire form before printing — the result is
7
+ // byte-identical to what came over the wire.
8
+ const encodeAgent = Schema.encodeSync(CuratedAgentDTO);
9
+ const encodeAgents = Schema.encodeSync(Schema.Array(CuratedAgentDTO));
10
+ const VALID_SOURCES = ["catalog", "bazaar", "ampersend", "registry"];
11
+ function resolveApiUrl() {
12
+ // Precedence: env var > config file > default. Mirrors `fetch.ts`.
13
+ return process.env.AMPERSEND_API_URL ?? getRuntimeConfig()?.apiUrl ?? DEFAULT_API_URL;
14
+ }
15
+ function isCuratedAgentSource(value) {
16
+ return VALID_SOURCES.includes(value);
17
+ }
18
+ function buildFilters(options) {
19
+ const filters = {};
20
+ if (options.source !== undefined) {
21
+ if (!isCuratedAgentSource(options.source)) {
22
+ return err("INVALID_SOURCE", `Invalid --source: ${options.source}. Must be one of: ${VALID_SOURCES.join(", ")}`);
23
+ }
24
+ filters.source = options.source;
25
+ }
26
+ if (options.category !== undefined)
27
+ filters.category = options.category;
28
+ if (options.search !== undefined)
29
+ filters.search = options.search;
30
+ if (options.network !== undefined)
31
+ filters.network = options.network;
32
+ return ok(filters);
33
+ }
34
+ export function buildClient() {
35
+ const result = loadCredentials();
36
+ if (!result.ok) {
37
+ console.log(JSON.stringify(result.error, null, 2));
38
+ process.exit(1);
39
+ }
40
+ const { agentAccount, agentKey } = result.credentials;
41
+ return new MarketplaceClient({
42
+ baseUrl: resolveApiUrl(),
43
+ agentAddress: agentAccount,
44
+ sessionKeyPrivateKey: agentKey,
45
+ });
46
+ }
47
+ // `marketplace show` reads a single agent from an unauthenticated endpoint, so
48
+ // it must work without setup. Build a credential-free client rather than going
49
+ // through `buildClient`, which exits when no agent is configured.
50
+ export function buildReadOnlyClient() {
51
+ return new MarketplaceClient({ baseUrl: resolveApiUrl() });
52
+ }
53
+ async function executeList(options) {
54
+ const filtersResult = buildFilters(options);
55
+ if (!filtersResult.ok) {
56
+ if (options.raw) {
57
+ console.error(`Error: ${filtersResult.error.message}`);
58
+ }
59
+ else {
60
+ console.log(JSON.stringify(filtersResult, null, 2));
61
+ }
62
+ process.exit(1);
63
+ }
64
+ const client = buildClient();
65
+ try {
66
+ const agents = await client.listAgents(filtersResult.data);
67
+ const wire = encodeAgents(agents);
68
+ if (options.raw) {
69
+ console.log(JSON.stringify(wire, null, 2));
70
+ }
71
+ else {
72
+ console.log(JSON.stringify(ok(wire), null, 2));
73
+ }
74
+ }
75
+ catch (error) {
76
+ const message = error instanceof Error ? error.message : String(error);
77
+ if (options.raw) {
78
+ console.error(`Error: ${message}`);
79
+ }
80
+ else {
81
+ console.log(JSON.stringify(err("API_ERROR", message), null, 2));
82
+ }
83
+ process.exit(1);
84
+ }
85
+ }
86
+ async function executeShow(id, options) {
87
+ const client = buildReadOnlyClient();
88
+ try {
89
+ const agent = await client.getAgent(id);
90
+ const wire = encodeAgent(agent);
91
+ if (options.raw) {
92
+ console.log(JSON.stringify(wire, null, 2));
93
+ }
94
+ else {
95
+ console.log(JSON.stringify(ok(wire), null, 2));
96
+ }
97
+ }
98
+ catch (error) {
99
+ const message = error instanceof Error ? error.message : String(error);
100
+ const code = message.startsWith("HTTP 404") ? "NOT_FOUND" : "API_ERROR";
101
+ if (options.raw) {
102
+ console.error(`Error: ${message}`);
103
+ }
104
+ else {
105
+ console.log(JSON.stringify(err(code, message), null, 2));
106
+ }
107
+ process.exit(1);
108
+ }
109
+ }
110
+ /**
111
+ * Register the marketplace subcommand on a Commander program
112
+ */
113
+ export function registerMarketplaceCommand(program) {
114
+ const marketplace = program.command("marketplace").description("Browse curated agents in the marketplace");
115
+ marketplace
116
+ .command("list")
117
+ .description("List curated agents, optionally filtered")
118
+ .option("--source <source>", `Filter by source (one of: ${VALID_SOURCES.join(", ")})`)
119
+ .option("--category <category>", "Filter by category")
120
+ .option("--search <query>", "Fuzzy search across name, description, tags, and category")
121
+ .option("--network <network>", "Filter by supported network (e.g. base, base-sepolia)")
122
+ .option("--raw", "Output raw JSON array instead of envelope", false)
123
+ .action(async (options) => {
124
+ await executeList(options);
125
+ });
126
+ marketplace
127
+ .command("show")
128
+ .description("Show details for a single curated agent")
129
+ .argument("<id>", "Curated agent id (UUID)")
130
+ .option("--raw", "Output raw JSON object instead of envelope", false)
131
+ .action(async (id, options) => {
132
+ await executeShow(id, options);
133
+ });
134
+ }
135
+ export { executeList, executeShow };
136
+ //# sourceMappingURL=marketplace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../src/cli/commands/marketplace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from "commander";
2
+ export declare function registerVersionCommand(program: Command): void;
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAQ7D"}
@@ -0,0 +1,12 @@
1
+ import { MIN_SKILL_VERSION, VERSION } from "../../version.js";
2
+ import { ok } from "../envelope.js";
3
+ export function registerVersionCommand(program) {
4
+ program
5
+ .command("version")
6
+ .description("Print CLI version and minimum supported skill version as JSON")
7
+ .action(() => {
8
+ console.log(JSON.stringify(ok({ cliVersion: VERSION, minSkillVersion: MIN_SKILL_VERSION }), null, 2));
9
+ process.exit(0);
10
+ });
11
+ }
12
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../../src/cli/commands/version.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,+DAA+D,CAAC;SAC5E,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACrG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACN,CAAC"}
@@ -1,5 +1,27 @@
1
- import { type Network } from "../ampersend/env.ts";
1
+ import { Schema } from "effect";
2
2
  import { type ConfigStatus, type JsonEnvelope } from "./envelope.ts";
3
+ /**
4
+ * Resolved credentials for an authenticated command. Tries env vars first
5
+ * (so a deploy can override without touching the local config file), then
6
+ * the config file written by `setup` / `config set`.
7
+ */
8
+ export interface ResolvedCredentials {
9
+ agentAccount: `0x${string}`;
10
+ agentKey: `0x${string}`;
11
+ apiUrl?: string;
12
+ }
13
+ /**
14
+ * Shared by every CLI command that needs to talk to the API as an agent.
15
+ * Returns an `err` envelope when the local config isn't ready, so the
16
+ * caller can print it and exit.
17
+ */
18
+ export declare function loadCredentials(): {
19
+ ok: true;
20
+ credentials: ResolvedCredentials;
21
+ } | {
22
+ ok: false;
23
+ error: JsonEnvelope<never>;
24
+ };
3
25
  export declare const CONFIG_FILE: string;
4
26
  export type { ConfigStatus };
5
27
  /** Default API URL (production) */
@@ -10,14 +32,31 @@ export interface PendingApproval {
10
32
  agentKey: `0x${string}`;
11
33
  expiresAt: string;
12
34
  }
35
+ /**
36
+ * Cached Laso Bearer token for `card details`/`list`, so a warm read costs
37
+ * nothing. Stamped with the identity (`agentKey`) and `apiUrl` it was minted
38
+ * under: `readLasoToken` treats it as absent if either no longer matches the
39
+ * active config (covers env-var overrides) or it has expired. Self-correcting,
40
+ * so the identity/URL write paths only need to drop it, not re-thread it.
41
+ *
42
+ * Schema is the source of truth; the `LasoToken` type is derived from it so the
43
+ * two can't drift (the same pattern as the schemas in `src/ampersend/`).
44
+ */
45
+ declare const LasoTokenSchema: Schema.Struct<{
46
+ idToken: typeof Schema.String;
47
+ expiresAt: typeof Schema.String;
48
+ agentKey: Schema.TemplateLiteral<`0x${string}`>;
49
+ apiUrl: Schema.optional<typeof Schema.String>;
50
+ }>;
51
+ export type LasoToken = typeof LasoTokenSchema.Type;
13
52
  /** Stored configuration V1 */
14
53
  export interface StoredConfigV1 {
15
54
  version: 1;
16
55
  agentKey?: `0x${string}`;
17
56
  agentAccount?: `0x${string}`;
18
- network?: Network;
19
57
  apiUrl?: string;
20
58
  pendingApproval?: PendingApproval;
59
+ lasoToken?: LasoToken;
21
60
  }
22
61
  /** Current stored config type */
23
62
  export type StoredConfig = StoredConfigV1;
@@ -25,9 +64,9 @@ export type StoredConfig = StoredConfigV1;
25
64
  export interface RuntimeConfig {
26
65
  agentKey?: `0x${string}`;
27
66
  agentAccount?: `0x${string}`;
28
- network?: Network;
29
67
  apiUrl?: string;
30
68
  pendingApproval?: PendingApproval;
69
+ lasoToken?: LasoToken;
31
70
  status: ConfigStatus;
32
71
  }
33
72
  /**
@@ -72,12 +111,6 @@ export declare function setConfig(secret: string): JsonEnvelope<{
72
111
  export declare function setApiUrl(apiUrl: string | undefined): JsonEnvelope<{
73
112
  apiUrl: string;
74
113
  }>;
75
- /**
76
- * Set network in config. Pass undefined to clear (revert to default "base").
77
- */
78
- export declare function setNetwork(network: string | undefined): JsonEnvelope<{
79
- network: Network;
80
- }>;
81
114
  /**
82
115
  * Store a pending approval in config.
83
116
  * Called by `setup start`.
@@ -96,6 +129,22 @@ export declare function promotePending(agentAccount: `0x${string}`): JsonEnvelop
96
129
  agentAccount: string;
97
130
  status: ConfigStatus;
98
131
  }>;
132
+ /**
133
+ * Cache a Laso Bearer token, preserving the rest of the config file.
134
+ * The token is stamped with the identity/URL it was minted under so
135
+ * `readLasoToken` can reject it after an env-var or config change.
136
+ *
137
+ * No-op when credentials come purely from env vars (no file to write): the
138
+ * config file is the only cache, and we don't create one just to hold a token.
139
+ */
140
+ export declare function storeLasoToken(token: LasoToken): void;
141
+ /**
142
+ * Read the cached Laso token, or null if there's no usable one. Treated as
143
+ * absent when: no token cached, expired, or its stamped `agentKey`/`apiUrl`
144
+ * no longer match the active credentials (covers env-var overrides and any
145
+ * write path that forgot to drop it). Self-correcting by construction.
146
+ */
147
+ export declare function readLasoToken(active: ResolvedCredentials): LasoToken | null;
99
148
  /** Configuration source */
100
149
  export type CredentialSource = "env" | "file" | "none";
101
150
  /** Data returned by getStatus */
@@ -105,7 +154,6 @@ export interface StatusData {
105
154
  configPath?: string;
106
155
  agentKeyAddress?: string;
107
156
  agentAccount?: string;
108
- network?: Network;
109
157
  apiUrl?: string;
110
158
  pendingApproval?: {
111
159
  agentKeyAddress: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,47 @@ import { join } from "node:path";
4
4
  import { Schema } from "effect";
5
5
  import { isAddress } from "viem";
6
6
  import { privateKeyToAddress } from "viem/accounts";
7
- import { NETWORKS, parseEnvConfig } from "../ampersend/env.js";
7
+ import { parseEnvConfig } from "../ampersend/env.js";
8
8
  import { err, ok } from "./envelope.js";
9
+ /**
10
+ * Shared by every CLI command that needs to talk to the API as an agent.
11
+ * Returns an `err` envelope when the local config isn't ready, so the
12
+ * caller can print it and exit.
13
+ */
14
+ export function loadCredentials() {
15
+ try {
16
+ const envConfig = parseEnvConfig();
17
+ return {
18
+ ok: true,
19
+ credentials: {
20
+ agentAccount: envConfig.AGENT_ACCOUNT,
21
+ agentKey: envConfig.AGENT_KEY,
22
+ ...(envConfig.API_URL ? { apiUrl: envConfig.API_URL } : {}),
23
+ },
24
+ };
25
+ }
26
+ catch {
27
+ // Fall back to config file
28
+ }
29
+ const fileConfig = getRuntimeConfig();
30
+ if (fileConfig?.status === "ready" && fileConfig.agentAccount && fileConfig.agentKey) {
31
+ const apiUrl = process.env.AMPERSEND_API_URL ?? fileConfig.apiUrl;
32
+ return {
33
+ ok: true,
34
+ credentials: {
35
+ agentAccount: fileConfig.agentAccount,
36
+ agentKey: fileConfig.agentKey,
37
+ ...(apiUrl ? { apiUrl } : {}),
38
+ },
39
+ };
40
+ }
41
+ const status = fileConfig?.status ?? "not_initialized";
42
+ const code = status === "not_initialized" ? "NOT_CONFIGURED" : "SETUP_INCOMPLETE";
43
+ return {
44
+ ok: false,
45
+ error: err(code, 'Run "ampersend setup start" or "ampersend config set" to configure', { status }),
46
+ };
47
+ }
9
48
  /** Config directory and file paths */
10
49
  const CONFIG_DIR = join(homedir(), ".ampersend");
11
50
  export const CONFIG_FILE = join(CONFIG_DIR, "config.json");
@@ -16,18 +55,37 @@ const APPROVAL_EXPIRY_MS = 30 * 60 * 1000;
16
55
  /** Default API URL (production) */
17
56
  export const DEFAULT_API_URL = "https://api.ampersend.ai";
18
57
  const HexString = Schema.TemplateLiteral(Schema.Literal("0x"), Schema.String);
19
- /** Schema for validating stored config read from disk */
58
+ /**
59
+ * Cached Laso Bearer token for `card details`/`list`, so a warm read costs
60
+ * nothing. Stamped with the identity (`agentKey`) and `apiUrl` it was minted
61
+ * under: `readLasoToken` treats it as absent if either no longer matches the
62
+ * active config (covers env-var overrides) or it has expired. Self-correcting,
63
+ * so the identity/URL write paths only need to drop it, not re-thread it.
64
+ *
65
+ * Schema is the source of truth; the `LasoToken` type is derived from it so the
66
+ * two can't drift (the same pattern as the schemas in `src/ampersend/`).
67
+ */
68
+ const LasoTokenSchema = Schema.Struct({
69
+ idToken: Schema.String,
70
+ expiresAt: Schema.String, // ISO timestamp
71
+ agentKey: HexString,
72
+ apiUrl: Schema.optional(Schema.String),
73
+ });
74
+ /** Schema for validating stored config read from disk.
75
+ *
76
+ * Effect Schema strips unknown keys, so legacy fields like `network` written
77
+ * by older versions are silently dropped on next write. */
20
78
  const StoredConfigSchema = Schema.Struct({
21
79
  version: Schema.Literal(1),
22
80
  agentKey: Schema.optional(HexString),
23
81
  agentAccount: Schema.optional(HexString),
24
- network: Schema.optional(Schema.Literal(...NETWORKS)),
25
82
  apiUrl: Schema.optional(Schema.String),
26
83
  pendingApproval: Schema.optional(Schema.Struct({
27
84
  token: Schema.String,
28
85
  agentKey: HexString,
29
86
  expiresAt: Schema.String,
30
87
  })),
88
+ lasoToken: Schema.optional(LasoTokenSchema),
31
89
  });
32
90
  /**
33
91
  * Ensure config directory exists with secure permissions
@@ -114,10 +172,11 @@ export function setConfig(secret) {
114
172
  return err("INVALID_ADDRESS", "Invalid Ethereum address format for agent account");
115
173
  }
116
174
  const existing = readConfig();
175
+ // lasoToken intentionally not carried over: changing the active identity
176
+ // invalidates any cached Laso token (it's stamped with the old agentKey).
117
177
  writeConfig({
118
178
  agentKey: agentKey,
119
179
  agentAccount: agentAccount,
120
- ...(existing?.network ? { network: existing.network } : {}),
121
180
  ...(existing?.apiUrl ? { apiUrl: existing.apiUrl } : {}),
122
181
  // Preserve pending approval if any
123
182
  ...(existing?.pendingApproval ? { pendingApproval: existing.pendingApproval } : {}),
@@ -142,32 +201,17 @@ export function setApiUrl(apiUrl) {
142
201
  }
143
202
  }
144
203
  const existing = readConfig();
204
+ // lasoToken intentionally not carried over: changing the API URL points reads
205
+ // at a different Laso/facilitator context, so a token minted under the old
206
+ // URL no longer applies.
145
207
  writeConfig({
146
208
  ...(existing?.agentKey ? { agentKey: existing.agentKey } : {}),
147
209
  ...(existing?.agentAccount ? { agentAccount: existing.agentAccount } : {}),
148
- ...(existing?.network ? { network: existing.network } : {}),
149
210
  ...(existing?.pendingApproval ? { pendingApproval: existing.pendingApproval } : {}),
150
211
  ...(apiUrl != null ? { apiUrl } : {}),
151
212
  });
152
213
  return ok({ apiUrl: apiUrl ?? DEFAULT_API_URL });
153
214
  }
154
- /**
155
- * Set network in config. Pass undefined to clear (revert to default "base").
156
- */
157
- export function setNetwork(network) {
158
- if (network != null && !NETWORKS.includes(network)) {
159
- return err("INVALID_NETWORK", `Invalid network. Must be one of: ${NETWORKS.join(", ")}`);
160
- }
161
- const existing = readConfig();
162
- writeConfig({
163
- ...(existing?.agentKey ? { agentKey: existing.agentKey } : {}),
164
- ...(existing?.agentAccount ? { agentAccount: existing.agentAccount } : {}),
165
- ...(existing?.apiUrl ? { apiUrl: existing.apiUrl } : {}),
166
- ...(existing?.pendingApproval ? { pendingApproval: existing.pendingApproval } : {}),
167
- ...(network != null ? { network: network } : {}),
168
- });
169
- return ok({ network: network ?? "base" });
170
- }
171
215
  /**
172
216
  * Store a pending approval in config.
173
217
  * Called by `setup start`.
@@ -177,8 +221,10 @@ export function storePendingApproval(pending) {
177
221
  writeConfig({
178
222
  ...(existing?.agentKey ? { agentKey: existing.agentKey } : {}),
179
223
  ...(existing?.agentAccount ? { agentAccount: existing.agentAccount } : {}),
180
- ...(existing?.network ? { network: existing.network } : {}),
181
224
  ...(existing?.apiUrl ? { apiUrl: existing.apiUrl } : {}),
225
+ // Active identity is unchanged by a pending approval, so a cached Laso
226
+ // token stays valid — preserve it.
227
+ ...(existing?.lasoToken ? { lasoToken: existing.lasoToken } : {}),
182
228
  pendingApproval: pending,
183
229
  });
184
230
  }
@@ -201,7 +247,10 @@ export function promotePending(agentAccount) {
201
247
  if (!existing?.pendingApproval) {
202
248
  return err("NO_PENDING", "No pending approval to promote");
203
249
  }
204
- const { agentKey: _oldKey, pendingApproval, version: _version, ...rest } = existing;
250
+ // Drop lasoToken alongside the old key: the active identity changes here, so
251
+ // a token minted under the previous key no longer matches. readLasoToken
252
+ // would reject it anyway; dropping it keeps the file honest.
253
+ const { agentKey: _oldKey, lasoToken: _lasoToken, pendingApproval, version: _version, ...rest } = existing;
205
254
  const agentKeyAddress = privateKeyToAddress(pendingApproval.agentKey);
206
255
  // Promote: pending key becomes active, pending cleared
207
256
  writeConfig({
@@ -216,6 +265,43 @@ export function promotePending(agentAccount) {
216
265
  status: "ready",
217
266
  });
218
267
  }
268
+ /**
269
+ * Cache a Laso Bearer token, preserving the rest of the config file.
270
+ * The token is stamped with the identity/URL it was minted under so
271
+ * `readLasoToken` can reject it after an env-var or config change.
272
+ *
273
+ * No-op when credentials come purely from env vars (no file to write): the
274
+ * config file is the only cache, and we don't create one just to hold a token.
275
+ */
276
+ export function storeLasoToken(token) {
277
+ const existing = readConfig();
278
+ if (!existing)
279
+ return;
280
+ const { version: _version, ...rest } = existing;
281
+ writeConfig({ ...rest, lasoToken: token });
282
+ }
283
+ /**
284
+ * Read the cached Laso token, or null if there's no usable one. Treated as
285
+ * absent when: no token cached, expired, or its stamped `agentKey`/`apiUrl`
286
+ * no longer match the active credentials (covers env-var overrides and any
287
+ * write path that forgot to drop it). Self-correcting by construction.
288
+ */
289
+ export function readLasoToken(active) {
290
+ const stored = readConfig()?.lasoToken;
291
+ if (!stored)
292
+ return null;
293
+ if (new Date(stored.expiresAt).getTime() <= Date.now())
294
+ return null;
295
+ if (stored.agentKey !== active.agentKey)
296
+ return null;
297
+ // apiUrl absent on either side means production default; normalize so an
298
+ // explicit prod URL and an implicit one are treated as the same context.
299
+ const storedUrl = stored.apiUrl ?? DEFAULT_API_URL;
300
+ const activeUrl = active.apiUrl ?? DEFAULT_API_URL;
301
+ if (storedUrl !== activeUrl)
302
+ return null;
303
+ return stored;
304
+ }
219
305
  /**
220
306
  * Get current configuration status.
221
307
  * Checks env vars first (takes precedence), then config file.
@@ -232,7 +318,6 @@ export function getStatus() {
232
318
  credentialSource: "env",
233
319
  agentKeyAddress,
234
320
  agentAccount,
235
- network: envConfig.NETWORK,
236
321
  };
237
322
  if (existsSync(CONFIG_FILE)) {
238
323
  result.configPath = CONFIG_FILE;
@@ -264,12 +349,6 @@ export function getStatus() {
264
349
  if (config.agentAccount) {
265
350
  result.agentAccount = config.agentAccount;
266
351
  }
267
- // Determine effective network (env var takes precedence over file)
268
- const envNetwork = process.env.AMPERSEND_NETWORK;
269
- const effectiveNetwork = envNetwork ?? config.network;
270
- if (effectiveNetwork) {
271
- result.network = effectiveNetwork;
272
- }
273
352
  if (effectiveApiUrl && effectiveApiUrl !== DEFAULT_API_URL) {
274
353
  result.apiUrl = effectiveApiUrl;
275
354
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,4 +9,6 @@ export { initializeProxyServer } from "./mcp/proxy/index.ts";
9
9
  export { Client } from "./mcp/client/index.ts";
10
10
  export { AmpersendX402Client, PaymentDeclinedError, UnsupportedProtocolError } from "./x402/http/index.ts";
11
11
  export type { AmpersendNetworks } from "./x402/http/index.ts";
12
+ export { createSiwxSigner, wrapFetchWithAmpersendSiwx } from "./x402/siwx.ts";
13
+ export type { SiwxSignerConfig } from "./x402/siwx.ts";
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,GAClC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACtF,OAAO,EAAE,wBAAwB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC5F,OAAO,EAAE,yBAAyB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAGhG,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAClG,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGrE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC1G,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,GAClC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACtF,OAAO,EAAE,wBAAwB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC5F,OAAO,EAAE,yBAAyB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAGhG,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAClG,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGrE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAC1G,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AAC7E,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -8,4 +8,5 @@ export { AccountWallet, SmartAccountWallet, WalletError } from "./x402/index.js"
8
8
  export { initializeProxyServer } from "./mcp/proxy/index.js";
9
9
  export { Client } from "./mcp/client/index.js";
10
10
  export { AmpersendX402Client, PaymentDeclinedError, UnsupportedProtocolError } from "./x402/http/index.js";
11
+ export { createSiwxSigner, wrapFetchWithAmpersendSiwx } from "./x402/siwx.js";
11
12
  //# 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,qCAAqC;AACrC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GAInB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAA2B,MAAM,wBAAwB,CAAA;AACtF,OAAO,EAAE,wBAAwB,EAA4B,MAAM,yBAAyB,CAAA;AAC5F,OAAO,EAAE,yBAAyB,EAAgC,MAAM,wBAAwB,CAAA;AAMhG,2BAA2B;AAC3B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GAInB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,oBAAoB,EAA2B,MAAM,wBAAwB,CAAA;AACtF,OAAO,EAAE,wBAAwB,EAA4B,MAAM,yBAAyB,CAAA;AAC5F,OAAO,EAAE,yBAAyB,EAAgC,MAAM,wBAAwB,CAAA;AAMhG,2BAA2B;AAC3B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE1G,OAAO,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA"}
@@ -79,6 +79,7 @@ function parseOptions(args, envPrefix = "TS__MCP_PROXY__") {
79
79
  ? createAmpersendTreasurer({
80
80
  apiUrl: envConfig.AMPERSEND_API_URL,
81
81
  walletConfig,
82
+ clientName: "ampersend-mcp-proxy",
82
83
  })
83
84
  : createNaiveTreasurer(walletConfig);
84
85
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/mcp/proxy/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/mcp/proxy/cli.ts"],"names":[],"mappings":"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"}