@arnaudjnn/billing-tools 25.8.0 → 25.8.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.
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAOjD,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU;yBA6BjB,MAAM,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,OAAO,CAAC;wBAiCjE,MAAM,EAAE;EAMlC"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYpE,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAUjD,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI,CAAC;AAMrD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,UAAU;yBA8BjB,MAAM,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAAO,CAAC,OAAO,CAAC;wBAwCjE,MAAM,EAAE;EAMlC"}
package/dist/dispatch.js CHANGED
@@ -2,6 +2,9 @@ import { z } from "zod";
2
2
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
  export class ToolValidationError extends Error {
4
4
  }
5
+ function isSchema(v) {
6
+ return !!v && typeof v.safeParse === "function";
7
+ }
5
8
  export function createDispatcher(register) {
6
9
  let handlers = null;
7
10
  function init() {
@@ -23,10 +26,11 @@ export function createDispatcher(register) {
23
26
  validator = null;
24
27
  }
25
28
  }
29
+ const tool = origTool(...args);
26
30
  if (typeof cb === "function" && typeof name === "string") {
27
- map.set(name, { cb: cb, validator });
31
+ map.set(name, { cb: cb, validator, tool: tool ?? null });
28
32
  }
29
- return origTool(...args);
33
+ return tool;
30
34
  };
31
35
  register(server);
32
36
  handlers = map;
@@ -40,8 +44,15 @@ export function createDispatcher(register) {
40
44
  args = Object.fromEntries(Object.entries(args).filter(([, v]) => v !== null && v !== undefined));
41
45
  }
42
46
  let callArgs = args;
43
- if (entry.validator) {
44
- const parsed = entry.validator.safeParse(args ?? {});
47
+ // Validate the way the MCP server does: against the registered tool's own
48
+ // inputSchema, read at CALL time. For a raw shape that is the SDK's object
49
+ // of it — the same as `validator` — but a host may replace it after
50
+ // registering (a passthrough object, so an argument the tool does not
51
+ // declare reaches the handler and can be REPORTED rather than silently
52
+ // stripped). Rebuilding z.object(shape) here made /api/v0 disagree with MCP.
53
+ const validator = isSchema(entry.tool?.inputSchema) ? entry.tool.inputSchema : entry.validator;
54
+ if (validator) {
55
+ const parsed = validator.safeParse(args ?? {});
45
56
  if (!parsed.success) {
46
57
  const detail = parsed.error.issues
47
58
  .map((i) => `${i.path.join(".") || "(root)"}: ${i.message}`)
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arnaudjnn/billing-tools",
3
- "version": "25.8.0",
3
+ "version": "25.8.1",
4
4
  "description": "The get-paid engine for Stripe + WorkOS apps, for humans and AI agents. Drop-in API-key auth, credit + subscription billing, auth.md agent registration, and MPP machine payments, as MCP tools, a REST API, and a CLI. Framework-agnostic, storage-pluggable.",
5
5
  "license": "MIT",
6
6
  "author": "Arnaud Jeannin",