@capxul/cli 4.20.0-beta.30 → 4.20.0-beta.31

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 CHANGED
@@ -203,7 +203,7 @@ stops after that many seconds (1 to 3600) with exit 5 and the same command to ru
203
203
 
204
204
  ```sh
205
205
  capxul payment retry PAYMENT_ID --json
206
- capxul payment send rex@capxul.com 50 --release-at 2026-11-01 --json
206
+ capxul payment send rex@capxul.com 50 --json
207
207
  capxul payment cancel PAYMENT_ID --json
208
208
  capxul payment redirect PAYMENT_ID sam@acme.co --json
209
209
  capxul payment list --json
@@ -223,9 +223,12 @@ action. A failed Payment can be a completed observation. The timeout accepts
223
223
  1–3600 seconds and includes session restoration. A timeout or unavailable read
224
224
  prints exact get/wait commands. Waiting never resubmits a Payment.
225
225
 
226
- `send --release-at DATE` holds the payment in escrow until that date (midnight
227
- UTC), from your own Safe or from an Organization Budget. `cancel` returns a held
228
- payment to whoever funded it; `redirect` sends it to someone else. For an
226
+ Scheduled sends are unavailable while scheduled payments are rebuilt.
227
+ `send` has no release-date flag. The backend refuses scheduled timing with
228
+ `INVALID_INPUT` on `timing`: `scheduled payments are being rebuilt`.
229
+
230
+ Existing holds keep their claim, cancel and redirect operations. `cancel` returns
231
+ a held payment to whoever funded it; `redirect` sends it to someone else. For an
229
232
  Organization's held payment only an Owner may cancel or redirect it; anyone else,
230
233
  a Budget member included, is refused before anything is prepared. Both hand over
231
234
  to the approval page as `send` does, then read the Payment until the chain shows
@@ -1,7 +1,7 @@
1
1
  import { i as __exportAll, o as __require, r as __commonJSMin, s as __toESM } from "./lib-DnmstTkB.mjs";
2
2
  import { _ as scopeArgs, c as chooseEnvironment, d as environmentOf, f as explicitOrganization$2, g as parseWhere, h as networkName, i as whoamiLines, m as flagValues, n as headerLine, o as ENVIRONMENT_NAMES, p as flagValue, r as styleFor, s as STAGING_ORIGIN, t as PLAIN, u as describeWhere } from "./where-view-DuGbrSLp.mjs";
3
3
  import { n as readField, t as isRecord } from "./record-U7Yu4KQP.mjs";
4
- import { $ as callOperation, $n as toPermissionId, $t as AuthClientError, A as ConvexCallPortTag, An as redactUrlSecrets, At as toHandle, B as makePaymentsMethods, Bn as images, Bt as toCapxulResult, C as SmartAccountPortTag, Cn as PayrollGroupInputSchema, Ct as signerFailure, D as ConvexAccountLayer, Dn as ORGANIZATION_SETUP_STATUSES, Dt as toCountryCode, E as makeAccountsMethods, En as ORGANIZATION_SETUP_REASONS, Et as makeClientRequestMethods, F as decodePayrollRunInput, Fn as keepRefillOnChange, Ft as publicIdentityFailure, G as formatAssetAmount, Gn as toLowerHex, Gt as ClockPortTag, H as makeCheckoutMethods, Hn as PaymentDocumentOptionsSchema, Ht as ActorFailure, I as toPayrollGroupId, In as diagnostics, It as runIdentityFacade, J as toRaw, Jn as DurationMsSchema, Jt as observationRequestHeaders, K as parseAssetAmount, Kn as PAYMENT_DIRECTIONS, Kt as BetterAuthNodeLayer, L as makeAccountMethods, Ln as AppIdSchema, Lt as runPortEffect, M as bindProductTelemetryInvocation, Mn as CAPXUL_ERROR_CODES, Mt as validateHandle, N as registerProductTelemetryInvocation, Nn as isExpectedOutcome, Nt as makeAuthMethods, O as AccountReadPortTag, On as decodeChainCause, Ot as toKycTier, P as makeApprovalsMethods, Pn as toOrgId, Pt as askIdentity, Q as BASE_SEPOLIA_CHAIN_ID, Qn as toPermissionAssignmentId, Qt as sanitizeObservationContext, R as logDroppedEvent, Rn as toAllowedOrigin, Rt as sessionFromActor, S as ConvexSmartAccountLayer, Sn as PayrollGroupIdSchema, St as recoverRawDigestSigner, T as PonderIndexerAdapter, Tn as setups, Tt as makeCurrentUserMethods, U as makeTargetsMethods, Un as isBytes32, Ut as carryInvocationParentSpan, V as makeDestinationsMethods, Vn as toAccountId, Vt as formatTraceparent, Wn as isHex, Wt as SystemClockLayer, X as fingerprintPaymentIntent, Xn as toEpochMs, Xt as copyInvocationObservation, Y as isMoneyParseError, Yn as EpochMsSchema, Yt as attachInvocationObservation, Z as TOKENS, Zn as toBudgetId, Zt as readInvocationObservation, _ as makeMeMethods, _n as isCapxulOperation, _t as UNOBSERVABLE_SIGNER_STATUS, an as redactTelemetryProps, ar as toAddress, at as postHogFailureObservation, b as makePaymentDocumentsMethods, bn as details, bt as isSignerNotReadySignal, c as deserializeCapxulError, cn as CliCommandStartedTelemetryEventSchema, cr as CapxulError, ct as observationContextProps, dn as CLI_CAPABILITIES, dr as isFailureMode, dt as SDK_VERSION$1, en as AuthClientPortTag, er as ChainIdSchema, et as asCapxulError, fn as CLI_COMMAND_NAMES, fr as getFunctionName, ft as normalizeExceptionErrorKind, g as bootIdentityFlow, gn as CAPXUL_OPERATIONS, gt as version$2, h as executeIdentityProductObservation, hn as stampTelemetryEnvelope, ht as safeExceptionLabel, in as AuthCachePortTag, ir as isEvmAddress, it as CAPXUL_SDK_EXPECTED_OUTCOME_EVENT, j as convexCallErrorFromCapxul, jn as isCredentialField, jt as toPartyId, k as TelemetryPortTag, kn as redactSecrets, kt as toTesterKind, ln as CliDiagnosticCompletedTelemetryEventSchema, lr as isCapxulError, lt as withCapturedAttemptContext, mn as EXCEPTION_EVENT_NAME, mt as projectSdkException, n as makeOrgMethods, nn as toAuthUserId, nr as toAssetId, nt as failureDetail, o as ConvexOrganizationAdapter, on as TELEMETRY_EVENT_SCHEMAS, or as Errors, ot as observeFailedResult, p as decodePermissionIntent, pn as CLI_INVOCATION_KINDS, pt as normalizeExceptionOperation, q as requireAsset, qn as PAYMENT_STATUSES, qt as BetterAuthBrowserLayer, rn as toEmail, rr as toCurrencyCode, rt as failureEvidenceProps, s as OrgPortTag, sn as CliCommandCompletedTelemetryEventSchema, sr as absurd, st as observeSdkClient, t as ConvexOrganizationSetupAdapter, tn as detectAuthCacheAdapter, tr as currencySymbolFor, tt as toPublicError, un as CliFirstUsedTelemetryEventSchema, ur as FAILURE_MODES, ut as EXCEPTION_MESSAGE, v as paymentPhase, vn as normalizeCapxulOperation, vt as causeChain, w as makeHoldingsMethods, wn as FixedOfferDraftSchema, wt as resolveFailureMode, x as makeSmartAccountMethods, xn as onboardings, xt as openfortSignerNotReadyCode, y as makeActivityMethods, yn as OPERATIONS, yt as isEcdsaSignatureHex, z as makeOfframpMethods, zn as toPublishableKey, zt as runCapxulEffect } from "./organizations-Dkb73lVO.mjs";
4
+ import { $ as callOperation, $n as toPermissionId, $t as AuthClientError, A as ConvexCallPortTag, An as redactUrlSecrets, At as toHandle, B as makePaymentsMethods, Bn as images, Bt as toCapxulResult, C as SmartAccountPortTag, Cn as PayrollGroupInputSchema, Ct as signerFailure, D as ConvexAccountLayer, Dn as ORGANIZATION_SETUP_STATUSES, Dt as toCountryCode, E as makeAccountsMethods, En as ORGANIZATION_SETUP_REASONS, Et as makeClientRequestMethods, F as decodePayrollRunInput, Fn as keepRefillOnChange, Ft as publicIdentityFailure, G as formatAssetAmount, Gn as toLowerHex, Gt as ClockPortTag, H as makeCheckoutMethods, Hn as PaymentDocumentOptionsSchema, Ht as ActorFailure, I as toPayrollGroupId, In as diagnostics, It as runIdentityFacade, J as toRaw, Jn as DurationMsSchema, Jt as observationRequestHeaders, K as parseAssetAmount, Kn as PAYMENT_DIRECTIONS, Kt as BetterAuthNodeLayer, L as makeAccountMethods, Ln as AppIdSchema, Lt as runPortEffect, M as bindProductTelemetryInvocation, Mn as CAPXUL_ERROR_CODES, Mt as validateHandle, N as registerProductTelemetryInvocation, Nn as isExpectedOutcome, Nt as makeAuthMethods, O as AccountReadPortTag, On as decodeChainCause, Ot as toKycTier, P as makeApprovalsMethods, Pn as toOrgId, Pt as askIdentity, Q as BASE_SEPOLIA_CHAIN_ID, Qn as toPermissionAssignmentId, Qt as sanitizeObservationContext, R as logDroppedEvent, Rn as toAllowedOrigin, Rt as sessionFromActor, S as ConvexSmartAccountLayer, Sn as PayrollGroupIdSchema, St as recoverRawDigestSigner, T as PonderIndexerAdapter, Tn as setups, Tt as makeCurrentUserMethods, U as makeTargetsMethods, Un as isBytes32, Ut as carryInvocationParentSpan, V as makeDestinationsMethods, Vn as toAccountId, Vt as formatTraceparent, Wn as isHex, Wt as SystemClockLayer, X as fingerprintPaymentIntent, Xn as toEpochMs, Xt as copyInvocationObservation, Y as isMoneyParseError, Yn as EpochMsSchema, Yt as attachInvocationObservation, Z as TOKENS, Zn as toBudgetId, Zt as readInvocationObservation, _ as makeMeMethods, _n as isCapxulOperation, _t as UNOBSERVABLE_SIGNER_STATUS, an as redactTelemetryProps, ar as toAddress, at as postHogFailureObservation, b as makePaymentDocumentsMethods, bn as details, bt as isSignerNotReadySignal, c as deserializeCapxulError, cn as CliCommandStartedTelemetryEventSchema, cr as CapxulError, ct as observationContextProps, dn as CLI_CAPABILITIES, dr as isFailureMode, dt as SDK_VERSION$1, en as AuthClientPortTag, er as ChainIdSchema, et as asCapxulError, fn as CLI_COMMAND_NAMES, fr as getFunctionName, ft as normalizeExceptionErrorKind, g as bootIdentityFlow, gn as CAPXUL_OPERATIONS, gt as version$2, h as executeIdentityProductObservation, hn as stampTelemetryEnvelope, ht as safeExceptionLabel, in as AuthCachePortTag, ir as isEvmAddress, it as CAPXUL_SDK_EXPECTED_OUTCOME_EVENT, j as convexCallErrorFromCapxul, jn as isCredentialField, jt as toPartyId, k as TelemetryPortTag, kn as redactSecrets, kt as toTesterKind, ln as CliDiagnosticCompletedTelemetryEventSchema, lr as isCapxulError, lt as withCapturedAttemptContext, mn as EXCEPTION_EVENT_NAME, mt as projectSdkException, n as makeOrgMethods, nn as toAuthUserId, nr as toAssetId, nt as failureDetail, o as ConvexOrganizationAdapter, on as TELEMETRY_EVENT_SCHEMAS, or as Errors, ot as observeFailedResult, p as decodePermissionIntent, pn as CLI_INVOCATION_KINDS, pt as normalizeExceptionOperation, q as requireAsset, qn as PAYMENT_STATUSES, qt as BetterAuthBrowserLayer, rn as toEmail, rr as toCurrencyCode, rt as failureEvidenceProps, s as OrgPortTag, sn as CliCommandCompletedTelemetryEventSchema, sr as absurd, st as observeSdkClient, t as ConvexOrganizationSetupAdapter, tn as detectAuthCacheAdapter, tr as currencySymbolFor, tt as toPublicError, un as CliFirstUsedTelemetryEventSchema, ur as FAILURE_MODES, ut as EXCEPTION_MESSAGE, v as paymentPhase, vn as normalizeCapxulOperation, vt as causeChain, w as makeHoldingsMethods, wn as FixedOfferDraftSchema, wt as resolveFailureMode, x as makeSmartAccountMethods, xn as onboardings, xt as openfortSignerNotReadyCode, y as makeActivityMethods, yn as OPERATIONS, yt as isEcdsaSignatureHex, z as makeOfframpMethods, zn as toPublishableKey, zt as runCapxulEffect } from "./organizations-CbmvwYH7.mjs";
5
5
  import { t as require_lib } from "./lib-CoGPQsbr.mjs";
6
6
  import process$1, { arch, platform } from "node:process";
7
7
  import { fileURLToPath } from "node:url";
@@ -33727,8 +33727,8 @@ const terminalText = (value) => value.replace(/[\p{Cc}\p{Cf}]/gu, (character) =>
33727
33727
  const shellArgument = (value) => `'${value.replaceAll("'", "'\"'\"'")}'`;
33728
33728
  //#endregion
33729
33729
  //#region src/runtime/version.ts
33730
- const cliVersion = "4.20.0-beta.30";
33731
- const sdkVersion = "4.20.0-beta.30";
33730
+ const cliVersion = "4.20.0-beta.31";
33731
+ const sdkVersion = "4.20.0-beta.31";
33732
33732
  const ReleaseVersion = Schema.String.check(Schema.isMaxLength(256), Schema.isPattern(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*)?$/u)).pipe(Schema.brand("CliReleaseVersion"));
33733
33733
  const parts = (version) => {
33734
33734
  const [core = "", ...prerelease] = version.split("+")[0].split("-");
@@ -37922,8 +37922,6 @@ const heldStepPreview = (approval, payee) => {
37922
37922
  "Fee none"
37923
37923
  ];
37924
37924
  };
37925
- /** `Release 1 Nov 2026 · held until then`, for a payment that waits for its date. */
37926
- const releaseLine = (at) => `Release ${shownDate(at)} · held until then`;
37927
37925
  /** Done: what moved where, and where the receipt is. */
37928
37926
  const heldLines = (outcome, payment, receipt, style = PLAIN) => {
37929
37927
  const amount = shownAmount(payment.amount);
@@ -37975,7 +37973,6 @@ const previewLines$1 = (approval, source) => {
37975
37973
  `From ${terminalText(source.budget ?? from.label)}${left}`,
37976
37974
  `To ${terminalText(named)}`,
37977
37975
  `Amount ${amount === null ? "nothing moves" : shownAmount(amount)}`,
37978
- ...source.releaseAt === void 0 ? [] : [releaseLine(source.releaseAt)],
37979
37976
  "Fee none"
37980
37977
  ];
37981
37978
  };
@@ -44339,28 +44336,11 @@ const readPaymentInput = (source) => Effect.gen(function* () {
44339
44336
  }).pipe(Effect.mapError((error) => error instanceof UpdateUnavailable ? inputRequired("Payment input exceeds 64 KiB.") : error));
44340
44337
  //#endregion
44341
44338
  //#region src/commands/payment/subcommands/send/execute.ts
44342
- /**
44343
- * `--release-at`: a date (midnight UTC) or an ISO time, still to come. The
44344
- * payment is held until then; an Owner can cancel or redirect it meanwhile.
44345
- */
44346
- const readReleaseAt = (value) => Effect.gen(function* () {
44347
- const text = value.trim();
44348
- const at = /^\d{4}-\d{2}-\d{2}$/u.test(text) ? Date.parse(`${text}T00:00:00Z`) : /^\d{4}-\d{2}-\d{2}T/u.test(text) ? Date.parse(text) : NaN;
44349
- if (Number.isNaN(at)) return yield* inputRequired("Provide --release-at as a date like 2026-11-01.");
44350
- if (at <= (yield* Clock.currentTimeMillis)) return yield* inputRequired("--release-at must be a date still to come.");
44351
- return at;
44352
- });
44353
- /** A held payment's timing, or nothing for one that pays at once. */
44354
- const releaseTiming = (at) => at === void 0 ? {} : { timing: {
44355
- kind: "scheduled",
44356
- at
44357
- } };
44358
44339
  /** The checks every send makes before a client: one source of the payment, the key and the follow time. */
44359
44340
  const readSendFlags = (input) => Effect.gen(function* () {
44360
44341
  if (input.source !== void 0 && (input.to !== void 0 || input.amount !== void 0)) return yield* inputRequired("Use <to> <amount> or --input, not both.");
44361
44342
  if (input.to !== void 0) yield* readRecipient$1(input.to);
44362
44343
  return {
44363
- releaseAt: input.releaseAt === void 0 ? void 0 : yield* readReleaseAt(input.releaseAt),
44364
44344
  requestKey: input.requestKey === void 0 ? void 0 : yield* readRequestKey(input.requestKey),
44365
44345
  timeoutSeconds: input.timeoutSeconds === void 0 ? void 0 : yield* readWriteTimeout(input.timeoutSeconds)
44366
44346
  };
@@ -44388,7 +44368,6 @@ const execute$15 = (config, input) => Effect.gen(function* () {
44388
44368
  const payment = input.source === void 0 ? yield* readWords(input, account) : yield* readPaymentInput(input.source);
44389
44369
  const approval = yield* withWaiting(Effect.promise((signal) => client.approvals.prepare({
44390
44370
  ...payment,
44391
- ...releaseTiming(flags.releaseAt),
44392
44371
  ...flags.requestKey === void 0 ? {} : { requestKey: flags.requestKey }
44393
44372
  }, { signal })).pipe(Effect.flatMap(resultValue), Effect.mapError(namingRecipient(payment.to))), {
44394
44373
  ...runtime,
@@ -44402,7 +44381,6 @@ const execute$15 = (config, input) => Effect.gen(function* () {
44402
44381
  value: held.available
44403
44382
  },
44404
44383
  recipient: typedEmail(payment.to),
44405
- releaseAt: flags.releaseAt,
44406
44384
  timeoutSeconds: flags.timeoutSeconds
44407
44385
  });
44408
44386
  });
@@ -44585,7 +44563,6 @@ const execute$14 = (config, orgId, input) => Effect.gen(function* () {
44585
44563
  ...payment,
44586
44564
  organizationId: orgId,
44587
44565
  permissionId: String(budget.id),
44588
- ...releaseTiming(flags.releaseAt),
44589
44566
  ...flags.requestKey === void 0 ? {} : { requestKey: flags.requestKey }
44590
44567
  }, { signal })).pipe(Effect.flatMap(resultValue), Effect.mapError(namingRecipient(payment.to)), Effect.mapError(naming)), {
44591
44568
  ...runtime,
@@ -44597,7 +44574,6 @@ const execute$14 = (config, orgId, input) => Effect.gen(function* () {
44597
44574
  budget: budget.label,
44598
44575
  left: left ?? void 0,
44599
44576
  recipient: typedEmail(payment.to),
44600
- releaseAt: flags.releaseAt,
44601
44577
  timeoutSeconds: flags.timeoutSeconds
44602
44578
  });
44603
44579
  });
@@ -44611,7 +44587,6 @@ const command$14 = Command.make("send", {
44611
44587
  email: emailFlag,
44612
44588
  input: sourceFlag,
44613
44589
  requestKey: requestKeyFlag,
44614
- releaseAt: Flag.String("release-at").pipe(Flag.withDescription("hold it until this date, like 2026-11-01 (midnight UTC)"), Flag.optional),
44615
44590
  timeoutSeconds: Flag.Int("timeout-seconds").pipe(Flag.withDescription("how long to follow it (default: until the approval lapses)"), Flag.optional)
44616
44591
  }, (flags) => {
44617
44592
  const input = {
@@ -44623,7 +44598,6 @@ const command$14 = Command.make("send", {
44623
44598
  email: Option.getOrUndefined(flags.email),
44624
44599
  source: Option.getOrUndefined(flags.input),
44625
44600
  requestKey: Option.getOrUndefined(flags.requestKey),
44626
- releaseAt: Option.getOrUndefined(flags.releaseAt),
44627
44601
  timeoutSeconds: Option.getOrUndefined(flags.timeoutSeconds)
44628
44602
  };
44629
44603
  return dispatch("send", {
@@ -46469,4 +46443,4 @@ const runCli = (platform) => Effect.uninterruptibleMask((restore) => Effect.gen(
46469
46443
  //#endregion
46470
46444
  export { runCli };
46471
46445
 
46472
- //# sourceMappingURL=entry-Cp3LiVYn.mjs.map
46446
+ //# sourceMappingURL=entry-CmnyAyYp.mjs.map