@pome-sh/cli 0.23.20 → 0.23.21

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,6 +1,6 @@
1
1
  {
2
2
  "package": "pome-sh",
3
- "version": "0.23.20",
4
- "git_sha": "9f5921c921e420c86d2daa982f5c002a26efda2f",
5
- "build_time": "2026-08-12T14:51:02.664Z"
3
+ "version": "0.23.21",
4
+ "git_sha": "d43a18c54ee2082774e8a8fc9a60cd57e3dad784",
5
+ "build_time": "2026-08-12T15:48:56.168Z"
6
6
  }
@@ -183,7 +183,7 @@ async function checkTwinReachable(_configDir) {
183
183
  });
184
184
  let harness;
185
185
  try {
186
- const { bootTwin } = await import('./twinHarness-AP2RHK7S.js');
186
+ const { bootTwin } = await import('./twinHarness-XWT46NM5.js');
187
187
  harness = await bootTwin({
188
188
  twin: "github",
189
189
  seedState: void 0,
@@ -2,7 +2,7 @@ import { criterionSchema, finalizeResponseSchema, HostedDiscardRefusedError, Hos
2
2
  import { seedSchema, parseSeed, defaultSeedState as defaultSeedState$2 } from './chunk-KIUIKAVU.js';
3
3
  import { gmailSeedSchema, defaultSeedState } from './chunk-NJ246QPJ.js';
4
4
  import { linearSeedSchema, defaultSeedState as defaultSeedState$1 } from './chunk-ZKID2HS3.js';
5
- import { isTwinName, TWIN_REGISTRY } from './chunk-GMJT63BC.js';
5
+ import { isTwinName, TWIN_REGISTRY } from './chunk-N4FVASOY.js';
6
6
  import { toTwinHttpEventRow } from './chunk-OW7VVW6X.js';
7
7
  import { redactEvent, redactSecrets } from './chunk-SG6ZTIMT.js';
8
8
  import { mkdir, appendFile, writeFile, readFile } from 'node:fs/promises';
@@ -1,4 +1,4 @@
1
- import { TWIN_NAMES, isTwinName, TWIN_REGISTRY } from './chunk-GMJT63BC.js';
1
+ import { TWIN_NAMES, isTwinName, TWIN_REGISTRY } from './chunk-N4FVASOY.js';
2
2
  import { createFileBackedRecorderStore, createRecorderStore } from './chunk-OW7VVW6X.js';
3
3
 
4
4
  // src/recorder/recorder.ts
@@ -84,9 +84,9 @@ var TWIN_REGISTRY = {
84
84
  envName: "STRIPE",
85
85
  defaultPort: 3333,
86
86
  version: package_default3.version,
87
- defaultSeed: async () => (await import('./src-E6TRTNLF.js')).defaultSeed(),
87
+ defaultSeed: async () => (await import('./src-6JNLHNYE.js')).defaultSeed(),
88
88
  async boot({ seedState, runId, recorder, twinBaseUrl }) {
89
- const stripeTwin = await import('./src-E6TRTNLF.js');
89
+ const stripeTwin = await import('./src-6JNLHNYE.js');
90
90
  const { createApp } = await import('./server-KOR7UHEP.js');
91
91
  const {
92
92
  applySeed: applyStripeSeed,
@@ -1,5 +1,5 @@
1
1
  import { readManifest, normalizeManifestTwins } from './chunk-ABM3CMQB.js';
2
- import { createHostedClient, perTwinReturnedByCloud, parseTaskFile, runAgentCommand, writeRunArtifactsCore, toTwinHttpEvent, redactJsonl, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, evaluationCounts } from './chunk-XONTXAOF.js';
2
+ import { createHostedClient, perTwinReturnedByCloud, parseTaskFile, runAgentCommand, writeRunArtifactsCore, toTwinHttpEvent, redactJsonl, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, evaluationCounts } from './chunk-3E3DQ65T.js';
3
3
  import { MOUNTED_TWINS, HostedAuthError, HostedDiscardRefusedError, HostedQuotaError, HostedOrchError, HostedTrialError, agentResponseSchema } from './chunk-X66JOOO7.js';
4
4
  import { redactSecrets, redactEvent } from './chunk-SG6ZTIMT.js';
5
5
  import { existsSync } from 'node:fs';
@@ -1,7 +1,7 @@
1
1
  import { getAvailablePort } from './chunk-XDU6TD4O.js';
2
2
  import { buildEgressAllowlist, readBlockedEgress } from './chunk-CBFKZZBR.js';
3
- import { parseTaskFile, seedStateForTwin, runAgentCommand, writeRunArtifactsCore } from './chunk-XONTXAOF.js';
4
- import { createRecorder, bootTwin } from './chunk-4DG4M3CC.js';
3
+ import { parseTaskFile, seedStateForTwin, runAgentCommand, writeRunArtifactsCore } from './chunk-3E3DQ65T.js';
4
+ import { createRecorder, bootTwin } from './chunk-E33L264J.js';
5
5
  import { eventSchema } from './chunk-VBATFCWR.js';
6
6
  import { redactSecrets, redactEvent } from './chunk-SG6ZTIMT.js';
7
7
  import { serve } from '@hono/node-server';
@@ -1,16 +1,16 @@
1
1
  import { newGroupId, reassuranceBox, twinReadyLine, trialsHeaderLine, trialLine, summaryLines, evaluatingLine, criterionPhrase } from './chunk-RGZBC7NF.js';
2
2
  import { DemoCapacityError, capacityLabel, parseCapacityMarker, capacityKindFrom } from './chunk-ZX4WNSZ5.js';
3
- import { runTask, demoTaskPath, DEMO_TASK_NAME, DEMO_REPO } from './chunk-WPQJMMGF.js';
3
+ import { runTask, demoTaskPath, DEMO_TASK_NAME, DEMO_REPO } from './chunk-UBZLAZLA.js';
4
4
  import { getAvailablePort } from './chunk-XDU6TD4O.js';
5
5
  import './chunk-CBFKZZBR.js';
6
- import { createHostedClient, parseTaskFile, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, outcomeOf } from './chunk-XONTXAOF.js';
6
+ import { createHostedClient, parseTaskFile, uploadRunBlobs, scoreFromFinalizeResponse, scoreStatus, outcomeOf } from './chunk-3E3DQ65T.js';
7
7
  import './chunk-NW7HGA2K.js';
8
8
  import { HostedQuotaError, HostedOrchError } from './chunk-X66JOOO7.js';
9
9
  import './chunk-KIUIKAVU.js';
10
10
  import './chunk-NJ246QPJ.js';
11
11
  import './chunk-ZKID2HS3.js';
12
- import { bootTwin } from './chunk-4DG4M3CC.js';
13
- import './chunk-GMJT63BC.js';
12
+ import { bootTwin } from './chunk-E33L264J.js';
13
+ import './chunk-N4FVASOY.js';
14
14
  import './chunk-OW7VVW6X.js';
15
15
  import './chunk-VBATFCWR.js';
16
16
  import './chunk-SG6ZTIMT.js';
@@ -1,13 +1,13 @@
1
1
  import { newGroupId, criterionPhrase } from './chunk-RGZBC7NF.js';
2
- import { runTaskHosted, resolveRunAgentIdentity } from './chunk-VTJFAWUZ.js';
2
+ import { runTaskHosted, resolveRunAgentIdentity } from './chunk-SUXYXBA4.js';
3
3
  import './chunk-ABM3CMQB.js';
4
- import { createHostedClient, parseTaskFile, outcomeOf } from './chunk-XONTXAOF.js';
4
+ import { createHostedClient, parseTaskFile, outcomeOf } from './chunk-3E3DQ65T.js';
5
5
  import './chunk-NW7HGA2K.js';
6
6
  import { HostedQuotaError, HostedTrialError } from './chunk-X66JOOO7.js';
7
7
  import './chunk-KIUIKAVU.js';
8
8
  import './chunk-NJ246QPJ.js';
9
9
  import './chunk-ZKID2HS3.js';
10
- import './chunk-GMJT63BC.js';
10
+ import './chunk-N4FVASOY.js';
11
11
  import './chunk-OW7VVW6X.js';
12
12
  import './chunk-VBATFCWR.js';
13
13
  import './chunk-SG6ZTIMT.js';
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { DEFAULT_CONTROL_PLANE_URL, DEFAULT_DASHBOARD_URL, clearLocalCredentials, friendlyHostedError, runSessionCreate, runSessionList, runSessionStop, resolveCredentials, runTaskHosted, discoverRunSet, VERDICT_ARTIFACT_VERSION, persistCredentialsAfterLogin, DEFAULT_DOCS_SITE_ORIGIN, resolveSeams, resolveCachedAgentId, readLinkCache, postAgentResolver, writeLinkCache, ensurePomeGitignored } from '../../chunk-VTJFAWUZ.js';
2
+ import { DEFAULT_CONTROL_PLANE_URL, DEFAULT_DASHBOARD_URL, clearLocalCredentials, friendlyHostedError, runSessionCreate, runSessionList, runSessionStop, resolveCredentials, runTaskHosted, discoverRunSet, VERDICT_ARTIFACT_VERSION, persistCredentialsAfterLogin, DEFAULT_DOCS_SITE_ORIGIN, resolveSeams, resolveCachedAgentId, readLinkCache, postAgentResolver, writeLinkCache, ensurePomeGitignored } from '../../chunk-SUXYXBA4.js';
3
3
  import { readManifest, writeManifest, MANIFEST_JSON, readRequiredManifest, normalizeManifestTwins } from '../../chunk-ABM3CMQB.js';
4
- import { assetPath, runTask, resolvePackageRoot, DEMO_TASK_NAME, demoTaskPath } from '../../chunk-WPQJMMGF.js';
4
+ import { assetPath, runTask, resolvePackageRoot, DEMO_TASK_NAME, demoTaskPath } from '../../chunk-UBZLAZLA.js';
5
5
  import '../../chunk-XDU6TD4O.js';
6
6
  import '../../chunk-CBFKZZBR.js';
7
- import { parseTaskFile, scoreStatus, runScoreLine, readLatestRun, readMetaSummary, outcomeOf, readConfigTwins, scoreCountsSummary, markerFor, criterionMarkerLabel, twinSkipSuffix, readCodeCriteria, createHostedClient, toTwinHttpEvent, redactJsonl, scoreFromFinalizeResponse, parseGitHubSeedState, uploadRunBlobs, isPreSatisfied } from '../../chunk-XONTXAOF.js';
7
+ import { parseTaskFile, scoreStatus, runScoreLine, readLatestRun, readMetaSummary, outcomeOf, readConfigTwins, scoreCountsSummary, markerFor, criterionMarkerLabel, twinSkipSuffix, readCodeCriteria, createHostedClient, toTwinHttpEvent, redactJsonl, scoreFromFinalizeResponse, parseGitHubSeedState, uploadRunBlobs, isPreSatisfied } from '../../chunk-3E3DQ65T.js';
8
8
  import '../../chunk-NW7HGA2K.js';
9
9
  import { MOUNTED_TWINS, deriveAgentSlug, exitCodeFor, HostedUsageError, HostedOrchError, HostedAuthError, HostedQuotaError } from '../../chunk-X66JOOO7.js';
10
10
  import { TAPE_ASSERTABLE_TOOLS } from '../../chunk-FKZZWWYC.js';
@@ -15,8 +15,8 @@ import '../../chunk-NJ246QPJ.js';
15
15
  import { LINEAR_CHECKS } from '../../chunk-XBT6ZLBG.js';
16
16
  import '../../chunk-ZKID2HS3.js';
17
17
  import { oneOf, defineCheck, repoRef, VACUITY_SENTINEL_NUMBER, childStatePath, VACUITY_SENTINEL, statePath, templateSlots, renderCheck, checksDigest, checkPattern, checkNearMissPattern } from '../../chunk-JWJYNAWI.js';
18
- import '../../chunk-4DG4M3CC.js';
19
- import { TWIN_NAME_LIST, isTwinName, createGitHubSmokeApp } from '../../chunk-GMJT63BC.js';
18
+ import '../../chunk-E33L264J.js';
19
+ import { TWIN_NAME_LIST, isTwinName, createGitHubSmokeApp } from '../../chunk-N4FVASOY.js';
20
20
  import '../../chunk-OW7VVW6X.js';
21
21
  import { isLegacyEventRow, eventSchema } from '../../chunk-VBATFCWR.js';
22
22
  import { redactEvent, redactSecrets } from '../../chunk-SG6ZTIMT.js';
@@ -4541,7 +4541,7 @@ var DEFAULT_AGENT_COMMAND = `node ${DEFAULT_AGENT_FILE}`;
4541
4541
  var MANIFEST_SCHEMA_URL = "https://pome.sh/schemas/v1/pome.json";
4542
4542
  var MAX_UNREADABLE_PATHS_SHOWN = 5;
4543
4543
  function readPackageVersion() {
4544
- if ("0.23.20".length > 0) return "0.23.20";
4544
+ if ("0.23.21".length > 0) return "0.23.21";
4545
4545
  try {
4546
4546
  const here = dirname(fileURLToPath(import.meta.url));
4547
4547
  const candidates = [
@@ -4996,7 +4996,7 @@ function createProgram() {
4996
4996
  return;
4997
4997
  }
4998
4998
  {
4999
- const { runDoctorChecks } = await import('../../checks-6IM2MR26.js');
4999
+ const { runDoctorChecks } = await import('../../checks-3GNDXCIP.js');
5000
5000
  const { renderDoctorReport } = await import('../../render-ZQQ4UMNO.js');
5001
5001
  const doctorReport = await runDoctorChecks({ mode: useLocal ? "full" : "hosted" });
5002
5002
  if (!doctorReport.ok) {
@@ -5034,7 +5034,7 @@ function createProgram() {
5034
5034
  taskForRuns.config.runs
5035
5035
  );
5036
5036
  if (k > 1) {
5037
- const { runTrialGroup } = await import('../../runTrialGroup-YPRDJPBX.js');
5037
+ const { runTrialGroup } = await import('../../runTrialGroup-3YUZBWVX.js');
5038
5038
  const fileForRerun = relative(process.cwd(), file);
5039
5039
  const rerunCommand = defaultTask ? options.trials !== void 0 ? `pome run -n ${k}` : "pome run" : `pome run ${fileForRerun && !fileForRerun.startsWith("..") ? fileForRerun : file} -n ${k}`;
5040
5040
  const groupResult = await runTrialGroup({
@@ -5128,7 +5128,7 @@ function createProgram() {
5128
5128
  process.exitCode = 5;
5129
5129
  return;
5130
5130
  }
5131
- const { runDemo } = await import('../../runDemo-LRACCSBP.js');
5131
+ const { runDemo } = await import('../../runDemo-6B353L3B.js');
5132
5132
  const result = await runDemo({
5133
5133
  apiBase: opts.apiUrl.replace(/\/$/, ""),
5134
5134
  dashboardBase: process.env.POME_DASHBOARD_URL ?? DEFAULT_DASHBOARD_URL,
@@ -5146,7 +5146,7 @@ function createProgram() {
5146
5146
  program.command("doctor").description(
5147
5147
  "Check the agent\u2194twin wiring: pome.json (or pome.yaml) present + valid, the local twin boots + serves, requests routed to the twin (not a hardcoded production host), egress floor active. On failure prints one named cause (file:line where knowable) + one concrete fix and exits non-zero."
5148
5148
  ).action(async () => {
5149
- const { runDoctorChecks } = await import('../../checks-6IM2MR26.js');
5149
+ const { runDoctorChecks } = await import('../../checks-3GNDXCIP.js');
5150
5150
  const { renderDoctorReport } = await import('../../render-ZQQ4UMNO.js');
5151
5151
  const report = await runDoctorChecks();
5152
5152
  for (const line of renderDoctorReport(report, { passNote: true })) console.error(line);
@@ -5322,7 +5322,7 @@ function createProgram() {
5322
5322
  ).description(
5323
5323
  "Start a standalone twin as a long-lived foreground server (Ctrl-C to stop)"
5324
5324
  ).action(async (name, options) => {
5325
- const { runTwinStartCommand } = await import('../../twinStart-DNX6PXUE.js');
5325
+ const { runTwinStartCommand } = await import('../../twinStart-FU7LXQAA.js');
5326
5326
  await runTwinStartCommand(name, options);
5327
5327
  });
5328
5328
  twin.command("reset").argument("[name]", "Twin name (default: github)", "github").description("Reset standalone twin state").action(async (name) => {
@@ -2782,6 +2782,11 @@ function flattenCreated(created2) {
2782
2782
  }
2783
2783
  return out;
2784
2784
  }
2785
+
2786
+ // ../packages/twin-stripe/dist/src/upstream-types.js
2787
+ var STRIPE_REFUND_REASONS = ["duplicate", "fraudulent", "requested_by_customer"];
2788
+
2789
+ // ../packages/twin-stripe/dist/src/route-inputs.js
2785
2790
  var declareInputs = routeInputDeclarer("refuse");
2786
2791
  var ID_PATH = { id: z.string().min(1) };
2787
2792
  var LIST_QUERY = {
@@ -2818,7 +2823,7 @@ var CONFIRM_PAYMENT_INTENT_BODY = { payment_method: z.string().optional() };
2818
2823
  var CREATE_REFUND_BODY = {
2819
2824
  charge: z.string().optional(),
2820
2825
  amount: z.coerce.number().optional(),
2821
- reason: z.string().nullish()
2826
+ reason: z.enum(STRIPE_REFUND_REASONS).nullish()
2822
2827
  };
2823
2828
  var CUSTOMER_FIELDS_BODY = {
2824
2829
  name: z.string().nullish(),
@@ -3957,8 +3962,8 @@ var mcp_tools_list_meta_default = {
3957
3962
  method: "tools/list",
3958
3963
  protocol: "JSON-RPC 2.0 over Streamable HTTP",
3959
3964
  protocolVersion: "2025-06-18",
3960
- captureDate: "2026-08-06",
3961
- rawFileSha256: "7bb87c5d6d99fea8dad1069a501f9801811e42c7cf81723b6b3d4e75aacc5bba",
3965
+ captureDate: "2026-08-12",
3966
+ rawFileSha256: "5ce7a3dcecd7a2093bb3986472461f713a48b5c14e82163151ca4b108e4fa520",
3962
3967
  liveToolCount: 26,
3963
3968
  liveToolOrder: [
3964
3969
  "create_payment_intent",
@@ -3989,14 +3994,14 @@ var mcp_tools_list_meta_default = {
3989
3994
  "list_events"
3990
3995
  ],
3991
3996
  transcription: {
3992
- readFrom: "twin-stripe's own tools/list, booted on defaultSeed() and driven through Hono's app.request, read immediately before this table became fixture-driven (F-1325)",
3997
+ readFrom: "twin-stripe's own tools/list, booted on defaultSeed() and driven through Hono's app.request, read immediately before this table became fixture-driven (F-1325). Re-projected on 2026-08-12 for F-1484: every tool's inputSchema was rewritten from stripeToolInputSchema() of its zod schema \u2014 a no-op for 25 of the 26, and create_refund.reason's enum for the one. Names, descriptions and ordering are unchanged, and test/mcp-tool-fixture.test.ts boots the twin and asserts it serves exactly these bytes.",
3993
3998
  contentOrigin: "packages/twin-stripe/src/tools.ts \u2014 a hand-written TypeScript array of 26 tools. Each inputSchema is z.toJSONSchema() of that tool's zod schema, frozen here verbatim including the $schema key it emits.",
3994
3999
  comparedToUpstream: "never, and not comparable today. @stripe/mcp is a stdio-to-HTTP proxy that declares no tools of its own and the served listing is a function of the caller's Restricted API Key, so F-1326 recorded stripe as not-captured (fixtures/mcp-tools-list/stripe.status.json) rather than inventing a deployment-invariant table."
3995
4000
  },
3996
4001
  notes: [
3997
4002
  "Seeded from the code table rather than from upstream on purpose. F-1325 is name-neutral by construction: every byte this twin serves is identical before and after it."
3998
4003
  ],
3999
- canonicalFileSha256: "76d0bafab29a0ccc15730b7ee4d754bcec75d655891e3a2a21a11b4e7cfc8211",
4004
+ canonicalFileSha256: "6a294341065eb90138f26654ad00bf7b0b3750ee6c2f12df82a38fb91df7854f",
4000
4005
  files: {
4001
4006
  raw: "mcp-tools-list.raw.json",
4002
4007
  canonical: "mcp-tools-list.canonical.json"
@@ -4004,7 +4009,7 @@ var mcp_tools_list_meta_default = {
4004
4009
  };
4005
4010
 
4006
4011
  // ../packages/twin-stripe/dist/fixtures/mcp-tools-list.raw.json
4007
- var mcp_tools_list_raw_default = { jsonrpc: "2.0", id: 1, result: { tools: [{ name: "create_payment_intent", description: "Create a PaymentIntent: crypto-deposit (the x402 entry point) or card (optionally with payment_method / customer / confirm).", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { amount: { type: "integer", exclusiveMinimum: 0, maximum: 9007199254740991 }, currency: { type: "string", minLength: 1 }, payment_method_types: { minItems: 1, maxItems: 1, type: "array", items: { type: "string", enum: ["crypto", "card"] } }, payment_method_options: { type: "object", properties: { crypto: { type: "object", properties: { mode: { type: "string", const: "deposit" }, deposit_options: { type: "object", properties: { networks: { minItems: 1, type: "array", items: { type: "string" } } }, additionalProperties: false } }, required: ["mode"], additionalProperties: false } }, required: ["crypto"], additionalProperties: false }, payment_method: { type: "string" }, customer: { type: "string" }, confirm: { type: "boolean" }, metadata: { type: "object", propertyNames: { type: "string" }, additionalProperties: { type: "string" } }, capture_method: { type: "string" }, confirmation_method: { type: "string" } }, required: ["amount", "currency", "payment_method_types"], additionalProperties: false } }, { name: "retrieve_payment_intent", description: "Retrieve a PaymentIntent by id.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "list_payment_intents", description: "List PaymentIntents with optional filters.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] } }, additionalProperties: false } }, { name: "confirm_payment_intent", description: "Confirm a PaymentIntent. Card PIs attempt the charge synchronously (magic test PMs decline); crypto-deposit PIs are idempotent here.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 }, payment_method: { type: "string" } }, required: ["id"], additionalProperties: false } }, { name: "update_payment_intent", description: "Update a non-terminal PaymentIntent (amount, metadata, payment_method, customer). The card retry step: attach a new PM after a decline, then confirm again.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 }, amount: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, metadata: { type: "object", propertyNames: { type: "string" }, additionalProperties: { anyOf: [{ type: "string" }, { type: "null" }] } }, payment_method: { type: "string" }, customer: { type: "string" } }, required: ["id"], additionalProperties: false } }, { name: "cancel_payment_intent", description: "Cancel a PaymentIntent. Refused once succeeded.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "simulate_crypto_deposit", description: "Test helper: drive a crypto-deposit PI from requires_action through processing to succeeded.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "retrieve_charge", description: "Retrieve a Charge by id.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "list_charges", description: "List charges with optional payment_intent / customer / created filters.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] }, payment_intent: { type: "string" }, customer: { type: "string" } }, additionalProperties: false } }, { name: "create_refund", description: "Refund a charge, fully or partially. Stripe refuses a refund on a charge that is already fully refunded, or one that would exceed the remaining refundable amount.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { charge: { type: "string", minLength: 1 }, amount: { type: "integer", exclusiveMinimum: 0, maximum: 9007199254740991 }, reason: { type: "string" } }, required: ["charge"], additionalProperties: false } }, { name: "retrieve_refund", description: "Retrieve a Refund by id.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "list_refunds", description: "List refunds, optionally filtered by charge or payment_intent.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] }, charge: { type: "string" }, payment_intent: { type: "string" } }, additionalProperties: false } }, { name: "create_customer", description: "Create a customer. All fields optional, like real Stripe.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { name: { type: "string" }, email: { type: "string" }, description: { type: "string" }, phone: { type: "string" }, metadata: { type: "object", propertyNames: { type: "string" }, additionalProperties: { type: "string" } } }, additionalProperties: false } }, { name: "retrieve_customer", description: "Retrieve a Customer by id. Deleted customers return the {deleted: true} stub.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "update_customer", description: "Update a customer's fields. Metadata merges per-key; a null or empty value unsets the key.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 }, name: { type: "string" }, email: { type: "string" }, description: { type: "string" }, phone: { type: "string" }, metadata: { type: "object", propertyNames: { type: "string" }, additionalProperties: { anyOf: [{ type: "string" }, { type: "null" }] } } }, required: ["id"], additionalProperties: false } }, { name: "delete_customer", description: "Delete a customer (soft delete; its payment methods are detached).", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "list_customers", description: "List customers with optional email / created filters.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] }, email: { type: "string" } }, additionalProperties: false } }, { name: "list_customer_payment_methods", description: "List the payment methods attached to a customer.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { customer: { type: "string", minLength: 1 }, type: { type: "string" }, limit: { type: "integer", minimum: 1, maximum: 100 } }, required: ["customer"], additionalProperties: false } }, { name: "create_payment_method", description: "Create a card payment method from test card details (e.g. number 4242424242424242).", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { type: { type: "string", const: "card" }, card: { type: "object", properties: { number: { type: "string", minLength: 1 }, exp_month: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, exp_year: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, cvc: { type: "string" } }, required: ["number", "exp_month", "exp_year"], additionalProperties: false } }, required: ["type", "card"], additionalProperties: false } }, { name: "retrieve_payment_method", description: "Retrieve a PaymentMethod by id.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "attach_payment_method", description: "Attach a payment method to a customer. One customer per PM; a detached PM cannot be reattached.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 }, customer: { type: "string", minLength: 1 } }, required: ["id", "customer"], additionalProperties: false } }, { name: "detach_payment_method", description: "Detach a payment method from its customer.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "retrieve_balance", description: "Retrieve the current balance (available + pending per currency).", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: {}, additionalProperties: false } }, { name: "list_balance_transactions", description: "List balance transactions (charges, refunds, fees).", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] }, type: { type: "string" } }, additionalProperties: false } }, { name: "retrieve_event", description: "Retrieve an event by id.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "list_events", description: "List events. Filter by type and created.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] }, type: { type: "string" } }, additionalProperties: false } }] } };
4012
+ var mcp_tools_list_raw_default = { jsonrpc: "2.0", id: 1, result: { tools: [{ name: "create_payment_intent", description: "Create a PaymentIntent: crypto-deposit (the x402 entry point) or card (optionally with payment_method / customer / confirm).", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { amount: { type: "integer", exclusiveMinimum: 0, maximum: 9007199254740991 }, currency: { type: "string", minLength: 1 }, payment_method_types: { minItems: 1, maxItems: 1, type: "array", items: { type: "string", enum: ["crypto", "card"] } }, payment_method_options: { type: "object", properties: { crypto: { type: "object", properties: { mode: { type: "string", const: "deposit" }, deposit_options: { type: "object", properties: { networks: { minItems: 1, type: "array", items: { type: "string" } } }, additionalProperties: false } }, required: ["mode"], additionalProperties: false } }, required: ["crypto"], additionalProperties: false }, payment_method: { type: "string" }, customer: { type: "string" }, confirm: { type: "boolean" }, metadata: { type: "object", propertyNames: { type: "string" }, additionalProperties: { type: "string" } }, capture_method: { type: "string" }, confirmation_method: { type: "string" } }, required: ["amount", "currency", "payment_method_types"], additionalProperties: false } }, { name: "retrieve_payment_intent", description: "Retrieve a PaymentIntent by id.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "list_payment_intents", description: "List PaymentIntents with optional filters.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] } }, additionalProperties: false } }, { name: "confirm_payment_intent", description: "Confirm a PaymentIntent. Card PIs attempt the charge synchronously (magic test PMs decline); crypto-deposit PIs are idempotent here.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 }, payment_method: { type: "string" } }, required: ["id"], additionalProperties: false } }, { name: "update_payment_intent", description: "Update a non-terminal PaymentIntent (amount, metadata, payment_method, customer). The card retry step: attach a new PM after a decline, then confirm again.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 }, amount: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, metadata: { type: "object", propertyNames: { type: "string" }, additionalProperties: { anyOf: [{ type: "string" }, { type: "null" }] } }, payment_method: { type: "string" }, customer: { type: "string" } }, required: ["id"], additionalProperties: false } }, { name: "cancel_payment_intent", description: "Cancel a PaymentIntent. Refused once succeeded.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "simulate_crypto_deposit", description: "Test helper: drive a crypto-deposit PI from requires_action through processing to succeeded.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "retrieve_charge", description: "Retrieve a Charge by id.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "list_charges", description: "List charges with optional payment_intent / customer / created filters.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] }, payment_intent: { type: "string" }, customer: { type: "string" } }, additionalProperties: false } }, { name: "create_refund", description: "Refund a charge, fully or partially. Stripe refuses a refund on a charge that is already fully refunded, or one that would exceed the remaining refundable amount.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { charge: { type: "string", minLength: 1 }, amount: { type: "integer", exclusiveMinimum: 0, maximum: 9007199254740991 }, reason: { type: "string", enum: ["duplicate", "fraudulent", "requested_by_customer"] } }, required: ["charge"], additionalProperties: false } }, { name: "retrieve_refund", description: "Retrieve a Refund by id.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "list_refunds", description: "List refunds, optionally filtered by charge or payment_intent.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] }, charge: { type: "string" }, payment_intent: { type: "string" } }, additionalProperties: false } }, { name: "create_customer", description: "Create a customer. All fields optional, like real Stripe.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { name: { type: "string" }, email: { type: "string" }, description: { type: "string" }, phone: { type: "string" }, metadata: { type: "object", propertyNames: { type: "string" }, additionalProperties: { type: "string" } } }, additionalProperties: false } }, { name: "retrieve_customer", description: "Retrieve a Customer by id. Deleted customers return the {deleted: true} stub.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "update_customer", description: "Update a customer's fields. Metadata merges per-key; a null or empty value unsets the key.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 }, name: { type: "string" }, email: { type: "string" }, description: { type: "string" }, phone: { type: "string" }, metadata: { type: "object", propertyNames: { type: "string" }, additionalProperties: { anyOf: [{ type: "string" }, { type: "null" }] } } }, required: ["id"], additionalProperties: false } }, { name: "delete_customer", description: "Delete a customer (soft delete; its payment methods are detached).", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "list_customers", description: "List customers with optional email / created filters.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] }, email: { type: "string" } }, additionalProperties: false } }, { name: "list_customer_payment_methods", description: "List the payment methods attached to a customer.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { customer: { type: "string", minLength: 1 }, type: { type: "string" }, limit: { type: "integer", minimum: 1, maximum: 100 } }, required: ["customer"], additionalProperties: false } }, { name: "create_payment_method", description: "Create a card payment method from test card details (e.g. number 4242424242424242).", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { type: { type: "string", const: "card" }, card: { type: "object", properties: { number: { type: "string", minLength: 1 }, exp_month: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, exp_year: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, cvc: { type: "string" } }, required: ["number", "exp_month", "exp_year"], additionalProperties: false } }, required: ["type", "card"], additionalProperties: false } }, { name: "retrieve_payment_method", description: "Retrieve a PaymentMethod by id.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "attach_payment_method", description: "Attach a payment method to a customer. One customer per PM; a detached PM cannot be reattached.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 }, customer: { type: "string", minLength: 1 } }, required: ["id", "customer"], additionalProperties: false } }, { name: "detach_payment_method", description: "Detach a payment method from its customer.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "retrieve_balance", description: "Retrieve the current balance (available + pending per currency).", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: {}, additionalProperties: false } }, { name: "list_balance_transactions", description: "List balance transactions (charges, refunds, fees).", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] }, type: { type: "string" } }, additionalProperties: false } }, { name: "retrieve_event", description: "Retrieve an event by id.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { id: { type: "string", minLength: 1 } }, required: ["id"], additionalProperties: false } }, { name: "list_events", description: "List events. Filter by type and created.", inputSchema: { $schema: "https://json-schema.org/draft/2020-12/schema", type: "object", properties: { limit: { type: "integer", minimum: 1, maximum: 100 }, created: { anyOf: [{ type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, { type: "object", properties: { gt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, gte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lt: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 }, lte: { type: "integer", minimum: -9007199254740991, maximum: 9007199254740991 } }, additionalProperties: false }] }, type: { type: "string" } }, additionalProperties: false } }] } };
4008
4013
 
4009
4014
  // ../packages/twin-stripe/dist/src/tools.js
4010
4015
  var stripeToolFixture = loadMcpToolFixture({ raw: mcp_tools_list_raw_default, meta: mcp_tools_list_meta_default });
@@ -4108,7 +4113,10 @@ var toolArgumentSchemas = [
4108
4113
  schema: z.object({
4109
4114
  charge: z.string().min(1),
4110
4115
  amount: z.coerce.number().int().positive().optional(),
4111
- reason: z.string().optional()
4116
+ // F-1484 — Stripe's closed set, not a free string. `.optional()` is kept:
4117
+ // the vendor does not require the field, and narrowing the arity as well
4118
+ // as the value would refuse every refund the corpus actually makes.
4119
+ reason: z.enum(STRIPE_REFUND_REASONS).optional()
4112
4120
  })
4113
4121
  },
4114
4122
  {
@@ -0,0 +1,5 @@
1
+ export { UnsupportedTwinError, bootTwin } from './chunk-E33L264J.js';
2
+ export { STRIPE_LOCAL_ACCOUNT_ID } from './chunk-N4FVASOY.js';
3
+ import './chunk-OW7VVW6X.js';
4
+ import './chunk-VBATFCWR.js';
5
+ import './chunk-SG6ZTIMT.js';
@@ -1,5 +1,5 @@
1
- import { bootTwin } from './chunk-4DG4M3CC.js';
2
- import { isTwinName, TWIN_NAMES, defaultPortFor, TWIN_REGISTRY } from './chunk-GMJT63BC.js';
1
+ import { bootTwin } from './chunk-E33L264J.js';
2
+ import { isTwinName, TWIN_NAMES, defaultPortFor, TWIN_REGISTRY } from './chunk-N4FVASOY.js';
3
3
  import './chunk-OW7VVW6X.js';
4
4
  import './chunk-VBATFCWR.js';
5
5
  import './chunk-SG6ZTIMT.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pome-sh/cli",
3
- "version": "0.23.20",
3
+ "version": "0.23.21",
4
4
  "description": "Digital-twin testing for AI agents \u2014 run tasks against resettable local or hosted twins and record tool-call traces for evaluation on pome.sh.",
5
5
  "keywords": [
6
6
  "ai",
@@ -1,5 +0,0 @@
1
- export { UnsupportedTwinError, bootTwin } from './chunk-4DG4M3CC.js';
2
- export { STRIPE_LOCAL_ACCOUNT_ID } from './chunk-GMJT63BC.js';
3
- import './chunk-OW7VVW6X.js';
4
- import './chunk-VBATFCWR.js';
5
- import './chunk-SG6ZTIMT.js';