x402-proxy 0.8.4 → 0.8.5

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/CHANGELOG.md CHANGED
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.8.5] - 2026-03-24
11
+
12
+ ### Fixed
13
+ - OpenClaw plugin: models now appear in `openclaw models` list - replaced invalid `models` field on `registerProvider()` with a `catalog` hook returning `ProviderCatalogResult`, which is required by OpenClaw's provider discovery filter
14
+
10
15
  ## [0.8.4] - 2026-03-24
11
16
 
12
17
  ### Fixed
@@ -237,6 +242,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
237
242
  - Re-exports from `@x402/fetch`, `@x402/svm`, `@x402/evm`
238
243
 
239
244
  [Unreleased]: https://github.com/cascade-protocol/x402-proxy/compare/v0.8.4...HEAD
245
+ [0.8.5]: https://github.com/cascade-protocol/x402-proxy/compare/v0.8.4...v0.8.5
240
246
  [0.8.4]: https://github.com/cascade-protocol/x402-proxy/compare/v0.8.3...v0.8.4
241
247
  [0.8.3]: https://github.com/cascade-protocol/x402-proxy/compare/v0.8.2...v0.8.3
242
248
  [0.8.2]: https://github.com/cascade-protocol/x402-proxy/compare/v0.8.1...v0.8.2
package/dist/bin/cli.js CHANGED
@@ -860,7 +860,7 @@ Add to your MCP client config (Claude, Cursor, etc.):
860
860
  }
861
861
  const remoteClient = new Client({
862
862
  name: "x402-proxy",
863
- version: "0.8.4"
863
+ version: "0.8.5"
864
864
  });
865
865
  const x402Mcp = new x402MCPClient(remoteClient, x402PaymentClient, {
866
866
  autoPayment: true,
@@ -898,7 +898,7 @@ Add to your MCP client config (Claude, Cursor, etc.):
898
898
  }
899
899
  const localServer = new Server({
900
900
  name: "x402-proxy",
901
- version: "0.8.4"
901
+ version: "0.8.5"
902
902
  }, { capabilities: {
903
903
  tools: tools.length > 0 ? {} : void 0,
904
904
  resources: remoteResources.length > 0 ? {} : void 0
@@ -993,7 +993,7 @@ Add to your MCP client config (Claude, Cursor, etc.):
993
993
  }));
994
994
  const remoteClient = new Client({
995
995
  name: "x402-proxy",
996
- version: "0.8.4"
996
+ version: "0.8.5"
997
997
  });
998
998
  await connectTransport(remoteClient);
999
999
  const mppClient = McpClient.wrap(remoteClient, { methods: wrappedMethods });
@@ -1008,7 +1008,7 @@ Add to your MCP client config (Claude, Cursor, etc.):
1008
1008
  }
1009
1009
  const localServer = new Server({
1010
1010
  name: "x402-proxy",
1011
- version: "0.8.4"
1011
+ version: "0.8.5"
1012
1012
  }, { capabilities: {
1013
1013
  tools: tools.length > 0 ? {} : void 0,
1014
1014
  resources: remoteResources.length > 0 ? {} : void 0
@@ -1220,7 +1220,7 @@ const routes = buildRouteMap({
1220
1220
  });
1221
1221
  const app = buildApplication(routes, {
1222
1222
  name: "x402-proxy",
1223
- versionInfo: { currentVersion: "0.8.4" },
1223
+ versionInfo: { currentVersion: "0.8.5" },
1224
1224
  scanner: { caseStyle: "allow-kebab-for-camel" }
1225
1225
  });
1226
1226
 
@@ -17,6 +17,14 @@ type ModelEntry = {
17
17
  };
18
18
  //#endregion
19
19
  //#region src/openclaw/plugin.d.ts
20
+ type ProviderCatalogResult = {
21
+ provider: {
22
+ baseUrl: string;
23
+ api?: string;
24
+ authHeader?: boolean;
25
+ models: Array<Omit<ModelEntry, "provider">>;
26
+ };
27
+ } | null;
20
28
  type OpenClawPluginApi = {
21
29
  pluginConfig?: Record<string, unknown>;
22
30
  logger: {
@@ -27,13 +35,9 @@ type OpenClawPluginApi = {
27
35
  id: string;
28
36
  label: string;
29
37
  auth: unknown[];
30
- models: {
31
- baseUrl: string;
32
- api: string;
33
- authHeader: boolean;
34
- models: Array<Omit<ModelEntry, "provider"> & {
35
- input: Array<"text" | "image">;
36
- }>;
38
+ catalog: {
39
+ order?: "simple" | "profile" | "paired" | "late";
40
+ run: (ctx: unknown) => Promise<ProviderCatalogResult>;
37
41
  };
38
42
  }) => void;
39
43
  registerTool: (tool: unknown) => void;
@@ -726,7 +726,7 @@ function createWalletCommand(ctx) {
726
726
  try {
727
727
  const snap = await getWalletSnapshot(ctx.rpcUrl, walletAddress, ctx.historyPath);
728
728
  const solscanUrl = `https://solscan.io/account/${walletAddress}`;
729
- const lines = [`x402-proxy v0.8.4`];
729
+ const lines = [`x402-proxy v0.8.5`];
730
730
  const defaultModel = ctx.allModels[0];
731
731
  if (defaultModel) lines.push("", `**Model** - ${defaultModel.name} (${defaultModel.provider})`);
732
732
  lines.push("", `**[Wallet](${solscanUrl})**`, `\`${walletAddress}\``);
@@ -1026,11 +1026,14 @@ function register(api) {
1026
1026
  id: name,
1027
1027
  label: `${name} (x402)`,
1028
1028
  auth: [],
1029
- models: {
1030
- baseUrl: prov.baseUrl,
1031
- api: "openai-completions",
1032
- authHeader: false,
1033
- models: prov.models
1029
+ catalog: {
1030
+ order: "simple",
1031
+ run: async () => ({ provider: {
1032
+ baseUrl: prov.baseUrl,
1033
+ api: "openai-completions",
1034
+ authHeader: false,
1035
+ models: prov.models
1036
+ } })
1034
1037
  }
1035
1038
  });
1036
1039
  api.logger.info(`x402-proxy: ${Object.keys(raw).join(", ")} - ${allModels.length} models, ${upstreamOrigins.length} x402 endpoints`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "x402-proxy",
3
- "version": "0.8.4",
3
+ "version": "0.8.5",
4
4
  "description": "curl for x402 paid APIs. Auto-pays any endpoint on Base, Solana, and Tempo. Also works as an OpenClaw plugin.",
5
5
  "type": "module",
6
6
  "sideEffects": false,