@capxul/sdk 2.3.2 → 2.5.0

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,4 +1,4 @@
1
- import { A as BlockNumber, B as MovementId, C as Address$1, D as AppId, E as AnonymousDistinctId, F as DocumentHash, G as PermissionId, H as PartyId, I as DurationMs, J as RoleKey, K as Profile, L as Email, M as ChainId, N as CountryCode, O as AuthSession, P as CurrencyCode, Q as WeiAmount, R as EpochMs, T as AllowedOrigin, U as PaymentCommandId, V as OrgId, W as PermissionAssignmentId, X as SmartAccount, Y as SessionToken, Z as TxHash, a as SignerStatusStore, b as CachedJwt, c as AccountProviderSource, g as SmartAccount$1, h as Session$1, it as CapxulErrorDetails, j as BudgetId, k as AuthUserId, l as AccountRequirement, m as Profile$1, n as CapxulSigner, nt as CapxulError, ot as Failure, p as CapxulResult, q as PublishableKey, rt as CapxulErrorCode, st as FailureMode, v as AuthCachePort, w as AllowanceKey, x as Account$1, z as Money } from "./signer-BejoR3bA.mjs";
1
+ import { $ as WeiAmount, A as BlockNumber, B as OrgId, C as Address$1, D as AppId, E as AnonymousDistinctId, F as DocumentHash, G as PermissionAssignmentId, H as PaymentCommandId, I as DurationMs, J as PublishableKey, K as PermissionId, L as Email, M as ChainId, N as CountryCode, O as AuthSession, P as CurrencyCode, Q as TxHash, R as EpochMs, T as AllowedOrigin, U as PayrollGroupId, V as PartyId, W as PayrollRunId, X as SessionToken, Y as RoleKey, Z as SmartAccount, a as SignerStatusStore, at as CapxulErrorDetails, b as CachedJwt, c as AccountProviderSource, ct as FailureMode, g as SmartAccount$1, h as Session$1, it as CapxulErrorCode, j as BudgetId, k as AuthUserId, l as AccountRequirement, m as Profile$1, n as CapxulSigner, p as CapxulResult, q as Profile, rt as CapxulError, st as Failure, v as AuthCachePort, w as AllowanceKey, x as Account$1, z as Money } from "./signer-CRzTIrau.mjs";
2
2
  import { Address, Hex } from "viem";
3
3
  import { Context, Effect, Layer, Schema, Scope, Tracer } from "effect";
4
4
  import { FunctionReference } from "convex/server";
@@ -359,7 +359,7 @@ type TelemetryEvent = {
359
359
  * a present `unknown` is loud), and sync v2 never synthesizes an artifact for
360
360
  * it.
361
361
  */
362
- declare const CAPXUL_ENVS: readonly ["development", "staging", "production", "unknown"];
362
+ declare const CAPXUL_ENVS: readonly ["development", "staging", "production", "unknown", "local"];
363
363
  type CapxulEnv = (typeof CAPXUL_ENVS)[number];
364
364
  interface TelemetryIdentifyInput {
365
365
  readonly distinctId: string;
@@ -377,7 +377,7 @@ interface TelemetryGroupInput {
377
377
  declare const EngineeringTelemetryBootstrapPolicy: Schema.Struct<{
378
378
  readonly host: Schema.refine<string, Schema.String>;
379
379
  readonly projectToken: Schema.refine<string, Schema.String>;
380
- readonly capxulEnv: Schema.Union<readonly [Schema.Literal<"development">, Schema.Literal<"staging">, Schema.Literal<"production">]>;
380
+ readonly capxulEnv: Schema.Union<readonly [Schema.Literal<"development">, Schema.Literal<"staging">, Schema.Literal<"production">, Schema.Literal<"local">]>;
381
381
  }>;
382
382
  type EngineeringTelemetryBootstrapPolicyV1 = Schema.Schema.Type<typeof EngineeringTelemetryBootstrapPolicy>;
383
383
  //#endregion
@@ -498,28 +498,14 @@ type AttachablePaymentDocumentEnvelopeV1 = Schema.Schema.Type<typeof AttachableP
498
498
  type LineItemV1 = Schema.Schema.Type<typeof LineItem>;
499
499
  //#endregion
500
500
  //#region ../wire/src/money.d.ts
501
- declare const MovementAnnotationSchema: Schema.Struct<{
502
- readonly movementId: Schema.Codec<MovementId, string, never, never>;
503
- readonly actor: Schema.Union<readonly [Schema.Struct<{
504
- readonly kind: Schema.Literal<"account">;
505
- readonly accountId: Schema.refine<string, Schema.String>;
506
- }>, Schema.Struct<{
507
- readonly kind: Schema.Literal<"organization">;
508
- readonly orgId: Schema.refine<string, Schema.String>;
509
- }>]>;
510
- readonly counterpartyLabel: Schema.optional<Schema.String>;
511
- readonly accountingCategory: Schema.optional<Schema.String>;
512
- readonly memo: Schema.optional<Schema.String>;
513
- readonly lastEditor: Schema.Union<readonly [Schema.Struct<{
514
- readonly kind: Schema.Literal<"account">;
515
- readonly accountId: Schema.refine<string, Schema.String>;
516
- }>, Schema.Struct<{
517
- readonly kind: Schema.Literal<"organization">;
518
- readonly orgId: Schema.refine<string, Schema.String>;
519
- }>]>;
520
- readonly updatedAt: Schema.refine<number, Schema.Number>;
521
- }>;
522
- type MovementAnnotation = Schema.Schema.Type<typeof MovementAnnotationSchema>;
501
+ declare const ActorRefSchema: Schema.Union<readonly [Schema.Struct<{
502
+ readonly kind: Schema.Literal<"account">;
503
+ readonly accountId: Schema.refine<string, Schema.String>;
504
+ }>, Schema.Struct<{
505
+ readonly kind: Schema.Literal<"organization">;
506
+ readonly orgId: Schema.refine<string, Schema.String>;
507
+ }>]>;
508
+ type ActorRef = Schema.Schema.Type<typeof ActorRefSchema>;
523
509
  declare const PermissionSchema: Schema.Struct<{
524
510
  readonly permissionId: Schema.Codec<PermissionId, string, never, never>;
525
511
  readonly orgId: Schema.refine<string, Schema.String>;
@@ -628,6 +614,8 @@ declare const SubmittedPermissionExecutionSchema: Schema.Struct<{
628
614
  }>>]>;
629
615
  }>;
630
616
  type SubmittedPermissionExecution = Schema.Schema.Type<typeof SubmittedPermissionExecutionSchema>;
617
+ declare const PayrollRunStatusSchema: Schema.Literals<readonly ["draft", "authorized", "settled"]>;
618
+ type PayrollRunStatus$1 = Schema.Schema.Type<typeof PayrollRunStatusSchema>;
631
619
  //#endregion
632
620
  //#region ../wire/src/observation-context.d.ts
633
621
  /**
@@ -1402,10 +1390,26 @@ interface DestinationsMethods {
1402
1390
  readonly id: string;
1403
1391
  }>>;
1404
1392
  }
1393
+ /** The one name for what an activity row IS. */
1394
+ type ActivityKind = "payment" | "movement";
1395
+ /** `createdAt` bounds in epoch milliseconds. Both ends are inclusive. */
1396
+ interface ActivityRange {
1397
+ readonly from?: number;
1398
+ readonly to?: number;
1399
+ }
1400
+ interface ActivityFilter {
1401
+ readonly kind?: ActivityKind;
1402
+ readonly direction?: PaymentDirection;
1403
+ /** Payment rows only. A status filter therefore excludes Movements, which have none. */
1404
+ readonly status?: readonly PaymentStatus[];
1405
+ }
1405
1406
  interface ActivityListParams {
1406
1407
  readonly actor?: ActorReference;
1407
1408
  readonly cursor?: string;
1409
+ /** 1..100, default 25. The backend rejects anything outside that band. */
1408
1410
  readonly limit?: number;
1411
+ readonly range?: ActivityRange;
1412
+ readonly filter?: ActivityFilter;
1409
1413
  }
1410
1414
  type ActivityReference = {
1411
1415
  readonly kind: "payment";
@@ -1419,7 +1423,8 @@ type ActivityItem = {
1419
1423
  readonly kind: "payment";
1420
1424
  readonly id: string;
1421
1425
  readonly ledgerKind: "Payment" | "Payout" | "Deposit";
1422
- readonly status: PaymentStatus;
1426
+ readonly status: PaymentStatus; /** What the payment is FOR. On the list row so a title needs no second read. */
1427
+ readonly paymentType: PaymentType;
1423
1428
  readonly amount: PaymentMoney;
1424
1429
  readonly direction: PaymentDirection;
1425
1430
  readonly counterpartyLabel: string;
@@ -1433,6 +1438,13 @@ type ActivityItem = {
1433
1438
  readonly kind: "movement";
1434
1439
  readonly id: string;
1435
1440
  readonly classification: "movement_only_outflow";
1441
+ readonly amount: PaymentMoney;
1442
+ readonly direction: PaymentDirection; /** Short-form counterparty address today. */
1443
+ readonly counterpartyLabel: string;
1444
+ readonly receipt: {
1445
+ readonly chainId: number;
1446
+ readonly transactionHash: string;
1447
+ };
1436
1448
  readonly createdAt: number;
1437
1449
  readonly updatedAt: number;
1438
1450
  };
@@ -1440,6 +1452,37 @@ interface ActivityPage {
1440
1452
  readonly items: readonly ActivityItem[];
1441
1453
  readonly cursor: string | null;
1442
1454
  readonly checkpoint: number;
1455
+ /** Server read time, so a consumer can say which of two reads is older. */
1456
+ readonly observedAt: number;
1457
+ }
1458
+ interface ActivitySummaryParams {
1459
+ readonly actor?: ActorReference;
1460
+ readonly window?: ActivityRange;
1461
+ }
1462
+ interface ActivitySummaryTotal {
1463
+ readonly currency: string;
1464
+ readonly decimals: number;
1465
+ /** Integer raw-unit strings. `net` is `in - out` and may be negative. */
1466
+ readonly in: string;
1467
+ readonly out: string;
1468
+ readonly net: string;
1469
+ /** The `in` share that is not yet terminal. */
1470
+ readonly pendingIn: string;
1471
+ }
1472
+ interface ActivitySummary {
1473
+ readonly window: {
1474
+ readonly from: number | null;
1475
+ readonly to: number | null;
1476
+ };
1477
+ /** One bucket per currency, and EMPTY when the window holds no activity. */
1478
+ readonly totals: readonly ActivitySummaryTotal[];
1479
+ /**
1480
+ * Every activity row in the window, whatever its direction or status. It
1481
+ * therefore counts rows that move no money into the totals — a payment the
1482
+ * actor sent to itself, and a cancelled one.
1483
+ */
1484
+ readonly count: number;
1485
+ readonly observedAt: number;
1443
1486
  }
1444
1487
  interface PaymentActivityEvidence {
1445
1488
  readonly chainId: 84532;
@@ -1478,19 +1521,35 @@ interface MovementActivityEvidence {
1478
1521
  readonly depositPaymentId: string | null;
1479
1522
  };
1480
1523
  }
1524
+ /**
1525
+ * The overlay one actor keeps over one activity row. `actor` and `lastEditor`
1526
+ * are the backend's own `ActorRef`, the same shape `MovementAnnotation` carried
1527
+ * before the overlay generalized past Movements.
1528
+ */
1529
+ interface ActivityAnnotation {
1530
+ readonly reference: ActivityReference;
1531
+ readonly actor: ActorRef;
1532
+ readonly counterpartyLabel?: string;
1533
+ readonly accountingCategory?: string;
1534
+ readonly memo?: string;
1535
+ readonly lastEditor: ActorRef;
1536
+ readonly updatedAt: number;
1537
+ }
1481
1538
  type ActivityDetail = {
1482
1539
  readonly kind: "payment";
1483
1540
  readonly payment: Payment;
1484
- readonly evidence: PaymentActivityEvidence;
1541
+ readonly annotation: ActivityAnnotation | null;
1542
+ readonly evidence: PaymentActivityEvidence | null;
1485
1543
  } | {
1486
1544
  readonly kind: "movement";
1487
1545
  readonly movementId: string;
1488
- readonly annotation: MovementAnnotation | null;
1546
+ readonly annotation: ActivityAnnotation | null;
1489
1547
  readonly evidence: MovementActivityEvidence;
1490
1548
  };
1491
1549
  interface ActivityAnnotationInput {
1492
1550
  readonly actor?: ActorReference;
1493
- readonly movementId: string;
1551
+ /** Any activity row, not only a Movement. */
1552
+ readonly reference: ActivityReference;
1494
1553
  readonly counterpartyLabel?: string;
1495
1554
  readonly accountingCategory?: string;
1496
1555
  readonly memo?: string;
@@ -1499,12 +1558,16 @@ interface ActivityMethods {
1499
1558
  list(params?: ActivityListParams, options?: {
1500
1559
  readonly signal?: AbortSignal;
1501
1560
  }): Promise<CapxulResult<ActivityPage>>;
1561
+ summary(params?: ActivitySummaryParams, options?: {
1562
+ readonly signal?: AbortSignal;
1563
+ }): Promise<CapxulResult<ActivitySummary>>;
1502
1564
  get(reference: ActivityReference, options?: {
1503
1565
  readonly signal?: AbortSignal;
1566
+ readonly actor?: ActorReference;
1504
1567
  }): Promise<CapxulResult<ActivityDetail | null>>;
1505
1568
  annotate(input: ActivityAnnotationInput, options?: {
1506
1569
  readonly signal?: AbortSignal;
1507
- }): Promise<CapxulResult<MovementAnnotation>>;
1570
+ }): Promise<CapxulResult<ActivityAnnotation>>;
1508
1571
  }
1509
1572
  interface OfframpQuoteInput {
1510
1573
  readonly actor?: ActorReference;
@@ -2004,6 +2067,114 @@ interface OrganizationPaymentsMethods {
2004
2067
  }): Promise<CapxulResult<readonly Payment[]>>;
2005
2068
  }
2006
2069
  //#endregion
2070
+ //#region src/surface/payroll.d.ts
2071
+ /** ADR-0022 R9: where the run stands on the shipped command lifecycle. */
2072
+ type PayrollRunStatus = PayrollRunStatus$1;
2073
+ /** One authorized payroll run. `total` is the sum of its items' nets. */
2074
+ interface PayrollRun {
2075
+ readonly id: PayrollRunId;
2076
+ readonly status: PayrollRunStatus;
2077
+ /** Epoch milliseconds. An instant run has `periodStart === periodEnd`. */
2078
+ readonly periodStart: number;
2079
+ readonly periodEnd: number;
2080
+ readonly total: Money;
2081
+ readonly recipientCount: number;
2082
+ }
2083
+ /**
2084
+ * An organization's runs, newest first, with the month total beside them.
2085
+ *
2086
+ * The aggregate travels WITH the list because the backend computes it over
2087
+ * every settled run in the calendar month while the list is one page. A
2088
+ * consumer that summed `runs` would under-report an employer past the page.
2089
+ */
2090
+ interface PayrollRuns {
2091
+ readonly runs: readonly PayrollRun[];
2092
+ /** Σ net of the runs that SETTLED this calendar month — the "Paid This Month" fact. */
2093
+ readonly settledThisMonth: Money;
2094
+ }
2095
+ /**
2096
+ * One saved recipient on a group. `amount` is the employer's TYPED text, not
2097
+ * minor units: a group is a draft the run composer prefills, and the run
2098
+ * engine is the one place that parses an amount into money.
2099
+ */
2100
+ interface PayrollGroupMember {
2101
+ /** The recipient's `PartyId` — the stable id (ADR-0022 R1), never an email. */
2102
+ readonly partyId: string;
2103
+ readonly amount: string;
2104
+ readonly currency: CurrencyCode;
2105
+ }
2106
+ /** A saved roster the employer pays again. Server-held, so every member sees it. */
2107
+ interface PayrollGroup {
2108
+ readonly id: PayrollGroupId;
2109
+ readonly name: string;
2110
+ /** A stored display preference; the consumer narrows it to its own union. */
2111
+ readonly tone: string;
2112
+ readonly members: readonly PayrollGroupMember[];
2113
+ }
2114
+ /** `id` absent creates a group; `id` present replaces that group in place. */
2115
+ interface PayrollGroupInput {
2116
+ readonly id?: PayrollGroupId;
2117
+ readonly name: string;
2118
+ readonly tone: string;
2119
+ readonly members: readonly PayrollGroupMember[];
2120
+ }
2121
+ /**
2122
+ * One person on one run. `net` is what they are paid; `gross` plus every
2123
+ * adjustment must equal it (ADR-0022 R8) and the backend refuses a run where
2124
+ * it does not. Both are minor-unit strings; an adjustment is signed.
2125
+ */
2126
+ interface PayrollRunItemInput {
2127
+ /**
2128
+ * The recipient. An email `Ref` or a party `Ref` in v1 — the backend refuses
2129
+ * any other kind, because the recipient is what the party is DERIVED from.
2130
+ */
2131
+ readonly to: Ref$1;
2132
+ /**
2133
+ * The caller's ASSERTION of the party `to` resolves to, never the authority
2134
+ * for it. The backend resolves `to` — an email through the invite path's
2135
+ * person-party ensure, a party `Ref` through the same recipient resolution
2136
+ * the batch runs — and refuses the run when this id is not that party, so
2137
+ * the money, the `employed` edge and the payslip's employee can never name
2138
+ * three different people.
2139
+ */
2140
+ readonly partyId: string;
2141
+ readonly gross: string;
2142
+ readonly net: string;
2143
+ readonly adjustments: readonly {
2144
+ readonly label: string;
2145
+ readonly amount: string;
2146
+ }[];
2147
+ }
2148
+ interface AuthorizeRunInput {
2149
+ /** The Budget the run spends from. The caller selects it; nothing is picked for them. */
2150
+ readonly permissionId: string;
2151
+ /** Epoch milliseconds. An instant run passes `start === end` — the payslip renders the date. */
2152
+ readonly period: {
2153
+ readonly start: number;
2154
+ readonly end: number;
2155
+ };
2156
+ readonly items: readonly PayrollRunItemInput[];
2157
+ /**
2158
+ * Supply one to reuse a key minted elsewhere. Left absent, the shipped
2159
+ * fingerprint lifecycle derives it from this intent, so a retry of the same
2160
+ * run replays the SAME command instead of paying twice.
2161
+ */
2162
+ readonly requestKey?: string;
2163
+ }
2164
+ type PayrollOptions = {
2165
+ readonly signal?: AbortSignal;
2166
+ };
2167
+ interface PayrollGroupsMethods {
2168
+ list(options?: PayrollOptions): Promise<CapxulResult<readonly PayrollGroup[]>>;
2169
+ save(input: PayrollGroupInput, options?: PayrollOptions): Promise<CapxulResult<PayrollGroup>>;
2170
+ remove(id: PayrollGroupId, options?: PayrollOptions): Promise<CapxulResult<void>>;
2171
+ }
2172
+ interface PayrollMethods {
2173
+ runs(options?: PayrollOptions): Promise<CapxulResult<PayrollRuns>>;
2174
+ authorizeRun(input: AuthorizeRunInput, options?: PayrollOptions): Promise<CapxulResult<PayrollRun>>;
2175
+ readonly groups: PayrollGroupsMethods;
2176
+ }
2177
+ //#endregion
2007
2178
  //#region src/surface/org.d.ts
2008
2179
  /** The membership state for one Organization member. */
2009
2180
  type MemberStatus = "pending" | "pending_safe" | "pending_grant" | "active" | "revoked" | "expired";
@@ -2153,6 +2324,13 @@ interface OrgScopedMethods extends ActorRelationshipMethods {
2153
2324
  */
2154
2325
  readonly permissions: PermissionMethods;
2155
2326
  readonly payments: OrganizationPaymentsMethods;
2327
+ /**
2328
+ * Pay the team: the runs this Organization has authorized, the verb that
2329
+ * authorizes one, and the saved groups a run is composed from (#1452).
2330
+ * `authorizeRun` is a payment command like any other — same Budget gate,
2331
+ * same signature, same request-key idempotency.
2332
+ */
2333
+ readonly payroll: PayrollMethods;
2156
2334
  auditLog(options?: {
2157
2335
  readonly signal?: AbortSignal;
2158
2336
  }): Promise<CapxulResult<readonly OrganizationAuditLogItem[]>>;
@@ -2253,6 +2431,19 @@ interface SystemMethods {
2253
2431
  }): Promise<CapxulResult<SystemHealth>>;
2254
2432
  }
2255
2433
  //#endregion
2434
+ //#region src/domain/money/primary-holding.d.ts
2435
+ /**
2436
+ * The one asset a screen shows when it can show only one. `symbol` is the
2437
+ * TOKEN symbol the chain reported (`"USDX"`); `available.currency` is the
2438
+ * consumer `CurrencyCode` that token stands for (`"USD"`). They are separate
2439
+ * fields because they are separate facts.
2440
+ */
2441
+ interface Holding {
2442
+ readonly id: string;
2443
+ readonly symbol: string;
2444
+ readonly available: Money;
2445
+ }
2446
+ //#endregion
2256
2447
  //#region src/surface/holdings.d.ts
2257
2448
  interface HoldingsMethods {
2258
2449
  current(input?: {
@@ -2260,6 +2451,17 @@ interface HoldingsMethods {
2260
2451
  }, options?: {
2261
2452
  readonly signal?: AbortSignal;
2262
2453
  }): Promise<CapxulResult<CurrentHoldings>>;
2454
+ /**
2455
+ * The designated display asset — the payable row holding the most money, or
2456
+ * `null` when the snapshot carries no renderable row. Reads the same
2457
+ * snapshot as `current` and picks from it; an empty answer is a value, not
2458
+ * an error.
2459
+ */
2460
+ primary(input?: {
2461
+ readonly actor?: ActorReference;
2462
+ }, options?: {
2463
+ readonly signal?: AbortSignal;
2464
+ }): Promise<CapxulResult<Holding | null>>;
2263
2465
  }
2264
2466
  //#endregion
2265
2467
  //#region src/surface/_shared/effect-actor-bridge.d.ts
@@ -2530,4 +2732,4 @@ interface ObservationAdapter {
2530
2732
  /** Stable PostHog event used for typed failures that are expected product outcomes. */
2531
2733
  declare const CAPXUL_SDK_EXPECTED_OUTCOME_EVENT = "capxul_sdk_expected_outcome";
2532
2734
  //#endregion
2533
- export { AccountMethods as $, RecipientResolution as $t, OrganizationAccount as A, isClaimed as An, FinancialOpsMethods as At, PermissionAssignInput as B, Payment as Bt, InviteMemberInput as C, Destination$1 as Cn, DestinationAddInput as Ct, OrgScopedMethods as D, Readiness as Dn, DestinationRail as Dt, OrgMethods as E, OrgLane as En, DestinationPayload as Et, RoleView as F, OfframpQuote as Ft, PermissionReplaceInput as G, PaymentDocumentVerification as Gt, PermissionCreateInput as H, PaymentDocumentKind as Ht, OrganizationPaymentBatchInput as I, OfframpQuoteInput as It, Budget as J, PaymentStatus as Jt, PermissionRevokeInput as K, PaymentDocumentsMethods as Kt, OrganizationPaymentInput as L, OfframpStatus as Lt, ResendInviteTokenInput as M, IdentityTransition as Mn, MeMethods as Mt, RoleDefinition as N, InvocationControls as Nn, MeProfile as Nt, OrgTemplate as O, StateLabel as On, DestinationRemoveInput as Ot, RoleSpendCap as P, OfframpMethods as Pt, AccountsMethods as Q, PaymentsPayInput as Qt, OrganizationPaymentItemInput as R, Payee as Rt, DetectPendingOrgInvitationsResult as S, CAPXUL_PAYMENTS_V2_ADDRESS as Sn, Destination as St, MemberView as T, IdentityState as Tn, DestinationListInput as Tt, PermissionMethods as U, PaymentDocumentRef as Ut, PermissionChangeInput as V, PaymentDirection as Vt, PermissionOptions as W, PaymentDocumentRender as Wt, OrgMeMethod as X, PaymentType as Xt, OrgMe as Y, PaymentTiming as Yt, OrgMeOptions as Z, PaymentsMethods as Zt, SystemHealth as _, SubmittedPermissionExecution as _n, ActivityMethods as _t, SdkFailureObservation as a, fingerprintPaymentIntent as an, ActorRequestsMethods as at, CurrentUserMethods as b, TelemetryIdentifyInput as bn, ActorReference as bt, PostHogObservabilityOptions as c, isSettingUpLifecycle as cn, AddressBookLabelInput as ct, CreateCapxulClientInput as d, AuthMethods as dn, InboxItem as dt, RecipientResolutionKind as en, ActorProfile as et, IdentityProfileDetails as f, OrgLifecycle as fn, InboxMethods as ft, SystemMethods as g, Permission as gn, ActivityListParams as gt, HoldingsMethods as h, MovementAnnotation as hn, ActivityItem as ht, ObservationDelivery as i, TargetsMethods as in, ActorRequestIssueInput as it, OrganizationAuditLogItem as j, isRestoring as jn, HandlesMethods as jt, OrgView as k, destination as kn, DestinationsMethods as kt, postHogObservability as l, IdentityMethods as ln, AddressBookMethods as lt, IdentityRuntimeSendResult as m, CurrentHoldings as mn, ActivityDetail as mt, ObservationAdapter as n, ResolvedTarget as nn, ActorRelationshipMethods as nt, HostObservability as o, AccountLifecycle as on, AddressBookAddInput as ot, IdentityRuntime as p, OrgSetupStep as pn, ActivityAnnotationInput as pt, PermissionReadResult as q, PaymentMoney as qt, ObservationContext as r, TargetReference as rn, ActorRequest as rt, PostHogObservabilityClient as s, AccountSetupStep as sn, AddressBookEntry as st, CAPXUL_SDK_EXPECTED_OUTCOME_EVENT as t, Ref$1 as tn, ActorProfileMethods as tt, CapxulClient as u, SmartAccountMethods as un, InboxApproveInput as ut, MediaMethods as v, TelemetryEvent as vn, ActivityPage as vt, MemberStatus as w, IdentityEvent as wn, DestinationKind as wt, CreateOrgInput as x, TelemetryPort as xn, DepositInstructions as xt, CurrentUserContext as y, TelemetryGroupInput as yn, ActivityReference as yt, OrganizationPaymentsMethods as z, PayeesMethods as zt };
2735
+ export { PermissionChangeInput as $, Readiness as $n, MovementActivityEvidence as $t, OrgView as A, IdentityMethods as An, ActivityKind as At, PayrollGroupMember as B, PAYMENT_DIRECTIONS as Bn, DepositInstructions as Bt, DetectPendingOrgInvitationsResult as C, ResolvedTarget as Cn, InboxItem as Ct, OrgMethods as D, AccountLifecycle as Dn, ActivityDetail as Dt, MemberView as E, fingerprintPaymentIntent as En, ActivityAnnotationInput as Et, RoleSpendCap as F, ActorRef as Fn, ActivityReference as Ft, PayrollRunItemInput as G, TelemetryGroupInput as Gn, DestinationPayload as Gt, PayrollMethods as H, PaymentStatus$1 as Hn, DestinationAddInput as Ht, RoleView as I, CurrentHoldings as In, ActivitySummary as It, OrganizationPaymentBatchInput as J, CAPXUL_PAYMENTS_V2_ADDRESS as Jn, DestinationsMethods as Jt, PayrollRunStatus as K, TelemetryIdentifyInput as Kn, DestinationRail as Kt, AuthorizeRunInput as L, Permission as Ln, ActivitySummaryParams as Lt, OrganizationAuditLogItem as M, AuthMethods as Mn, ActivityMethods as Mt, ResendInviteTokenInput as N, OrgLifecycle as Nn, ActivityPage as Nt, OrgScopedMethods as O, AccountSetupStep as On, ActivityFilter as Ot, RoleDefinition as P, OrgSetupStep as Pn, ActivityRange as Pt, PermissionAssignInput as Q, OrgLane as Qn, MeProfile as Qt, PayrollGroup as R, SubmittedPermissionExecution as Rn, ActivitySummaryTotal as Rt, CreateOrgInput as S, Ref$1 as Sn, InboxApproveInput as St, MemberStatus as T, TargetsMethods as Tn, ActivityAnnotation as Tt, PayrollOptions as U, RequestStatus as Un, DestinationKind as Ut, PayrollGroupsMethods as V, PAYMENT_STATUSES as Vn, Destination as Vt, PayrollRun as W, TelemetryEvent as Wn, DestinationListInput as Wt, OrganizationPaymentItemInput as X, IdentityEvent as Xn, HandlesMethods as Xt, OrganizationPaymentInput as Y, Destination$1 as Yn, FinancialOpsMethods as Yt, OrganizationPaymentsMethods as Z, IdentityState as Zn, MeMethods as Zt, SystemMethods as _, PaymentType as _n, ActorRequestsMethods as _t, SdkFailureObservation as a, PayeesMethods as an, InvocationControls as ar, PermissionReadResult as at, CurrentUserContext as b, RecipientResolution as bn, AddressBookLabelInput as bt, PostHogObservabilityOptions as c, PaymentDirection as cn, OrgMeMethod as ct, CreateCapxulClientInput as d, PaymentDocumentRender as dn, AccountMethods as dt, OfframpMethods as en, StateLabel as er, PermissionCreateInput as et, IdentityProfileDetails as f, PaymentDocumentVerification as fn, ActorProfile as ft, Holding as g, PaymentTiming as gn, ActorRequestIssueInput as gt, HoldingsMethods as h, PaymentStatus as hn, ActorRequest as ht, ObservationDelivery as i, Payee as in, IdentityTransition as ir, PermissionRevokeInput as it, OrganizationAccount as j, SmartAccountMethods as jn, ActivityListParams as jt, OrgTemplate as k, isSettingUpLifecycle as kn, ActivityItem as kt, postHogObservability as l, PaymentDocumentKind as ln, OrgMeOptions as lt, IdentityRuntimeSendResult as m, PaymentMoney as mn, ActorRelationshipMethods as mt, ObservationAdapter as n, OfframpQuoteInput as nn, isClaimed as nr, PermissionOptions as nt, HostObservability as o, Payment as on, Budget as ot, IdentityRuntime as p, PaymentDocumentsMethods as pn, ActorProfileMethods as pt, PayrollRuns as q, TelemetryPort as qn, DestinationRemoveInput as qt, ObservationContext as r, OfframpStatus as rn, isRestoring as rr, PermissionReplaceInput as rt, PostHogObservabilityClient as s, PaymentActivityEvidence as sn, OrgMe as st, CAPXUL_SDK_EXPECTED_OUTCOME_EVENT as t, OfframpQuote as tn, destination as tr, PermissionMethods as tt, CapxulClient as u, PaymentDocumentRef as un, AccountsMethods as ut, SystemHealth as v, PaymentsMethods as vn, AddressBookAddInput as vt, InviteMemberInput as w, TargetReference as wn, InboxMethods as wt, CurrentUserMethods as x, RecipientResolutionKind as xn, AddressBookMethods as xt, MediaMethods as y, PaymentsPayInput as yn, AddressBookEntry as yt, PayrollGroupInput as z, InboxStatus as zn, ActorReference as zt };
@@ -192,11 +192,12 @@ type AuthUserId = Brand<string, "AuthUserId">;
192
192
  type AnonymousDistinctId = Brand<string, "AnonymousDistinctId">;
193
193
  type AccountId = Brand<string, "AccountId">;
194
194
  type PartyId = Brand<string, "PartyId">;
195
- type MovementId = Brand<string, "MovementId">;
196
195
  type PermissionId = Brand<string, "PermissionId">;
197
196
  type PermissionAssignmentId = Brand<string, "PermissionAssignmentId">;
198
197
  type BudgetId = Brand<string, "BudgetId">;
199
198
  type PaymentCommandId = Brand<string, "PaymentCommandId">;
199
+ type PayrollRunId = Brand<string, "PayrollRunId">;
200
+ type PayrollGroupId = Brand<string, "PayrollGroupId">;
200
201
  type OrgId = Brand<string, "OrgId">;
201
202
  type AppId = Brand<string, "AppId">;
202
203
  type AllowedOrigin = Brand<string, "AllowedOrigin">;
@@ -407,4 +408,4 @@ interface Eip1193RequestProvider {
407
408
  */
408
409
  declare function injectedWalletSigner(provider: Eip1193RequestProvider): CapxulSigner;
409
410
  //#endregion
410
- export { toAddress as $, BlockNumber as A, MovementId as B, Address$1 as C, AppId as D, AnonymousDistinctId as E, DocumentHash as F, PermissionId as G, PartyId as H, DurationMs as I, RoleKey as J, Profile$1 as K, Email as L, ChainId as M, CountryCode as N, AuthSession as O, CurrencyCode as P, WeiAmount as Q, EpochMs as R, AccountId as S, AllowedOrigin as T, PaymentCommandId as U, OrgId as V, PermissionAssignmentId as W, SmartAccount$1 as X, SessionToken as Y, TxHash as Z, AuthCacheError as _, SignerStatusStore as a, Errors as at, CachedJwt as b, AccountProviderSource as c, isCapxulError as ct, eip1193AccountProvider as d, toCountryCode as et, localPrivateKeyAccountProvider as f, SmartAccount as g, Session as h, SignerStatus as i, CapxulErrorDetails as it, BudgetId as j, AuthUserId as k, AccountRequirement as l, Profile as m, CapxulSigner as n, CapxulError as nt, injectedWalletSigner as o, Failure as ot, CapxulResult as p, PublishableKey as q, Eip1193RequestProvider as r, CapxulErrorCode as rt, AccountProvider as s, FailureMode as st, CapxulDigestSigner as t, CAPXUL_ERROR_CODES as tt, Eip1193Provider as u, AuthCachePort as v, AllowanceKey as w, Account$1 as x, AuthCachePortTag as y, Money as z };
411
+ export { WeiAmount as $, BlockNumber as A, OrgId as B, Address$1 as C, AppId as D, AnonymousDistinctId as E, DocumentHash as F, PermissionAssignmentId as G, PaymentCommandId as H, DurationMs as I, PublishableKey as J, PermissionId as K, Email as L, ChainId as M, CountryCode as N, AuthSession as O, CurrencyCode as P, TxHash as Q, EpochMs as R, AccountId as S, AllowedOrigin as T, PayrollGroupId as U, PartyId as V, PayrollRunId as W, SessionToken as X, RoleKey as Y, SmartAccount$1 as Z, AuthCacheError as _, SignerStatusStore as a, CapxulErrorDetails as at, CachedJwt as b, AccountProviderSource as c, FailureMode as ct, eip1193AccountProvider as d, toAddress as et, localPrivateKeyAccountProvider as f, SmartAccount as g, Session as h, SignerStatus as i, CapxulErrorCode as it, BudgetId as j, AuthUserId as k, AccountRequirement as l, isCapxulError as lt, Profile as m, CapxulSigner as n, CAPXUL_ERROR_CODES as nt, injectedWalletSigner as o, Errors as ot, CapxulResult as p, Profile$1 as q, Eip1193RequestProvider as r, CapxulError as rt, AccountProvider as s, Failure as st, CapxulDigestSigner as t, toCountryCode as tt, Eip1193Provider as u, AuthCachePort as v, AllowanceKey as w, Account$1 as x, AuthCachePortTag as y, Money as z };
@@ -1,4 +1,4 @@
1
- import { Mn as IdentityTransition, bn as TelemetryIdentifyInput, n as ObservationAdapter, u as CapxulClient, vn as TelemetryEvent, yn as TelemetryGroupInput } from "../observation-CLhrvkF6.mjs";
1
+ import { Gn as TelemetryGroupInput, Kn as TelemetryIdentifyInput, Wn as TelemetryEvent, ir as IdentityTransition, n as ObservationAdapter, u as CapxulClient } from "../observation-CyNjyQxv.mjs";
2
2
  import { Effect, Layer } from "effect";
3
3
 
4
4
  //#region src/testing/telemetry/RecordingTelemetryAdapter.d.ts
@@ -1,5 +1,5 @@
1
- import { E as authClientPortFromPromiseAdapter, M as fromWei, T as bootstrapErrorFromCapxul, Y as deriveCapxulSafeAddress, _ as wireChainId, f as redactTelemetryEvent, g as accountReadErrorFromCapxul, j as toWei, m as smartAccountErrorFromCapxul, t as assembleCapxulClient, x as convexCallErrorFromCapxul, y as identityErrorFromCapxul } from "../create-capxul-client-DgvnboPR.mjs";
2
- import { C as toDurationMs, D as toJwtToken, E as toEpochSeconds, I as CapxulError, N as toSessionToken, O as toKycTier, R as Errors, T as toEpochMs, _ as toAppId, b as toChainId, g as toAllowedOrigin, h as toAddress, j as toPublishableKey, m as toAccountId, t as InMemoryAuthCacheAdapter, v as toAuthUserId, w as toEmail, x as toCountryCode } from "../InMemoryAuthCacheAdapter-qMpBOGb3.mjs";
1
+ import { E as authClientPortFromPromiseAdapter, M as fromWei, T as bootstrapErrorFromCapxul, Z as deriveCapxulSafeAddress, _ as wireChainId, f as redactTelemetryEvent, g as accountReadErrorFromCapxul, j as toWei, m as smartAccountErrorFromCapxul, t as assembleCapxulClient, x as convexCallErrorFromCapxul, y as identityErrorFromCapxul } from "../create-capxul-client-Btl4qyNC.mjs";
2
+ import { B as Errors, C as toDurationMs, D as toJwtToken, E as toEpochSeconds, F as toSessionToken, N as toPublishableKey, O as toKycTier, R as CapxulError, T as toEpochMs, _ as toAppId, b as toChainId, g as toAllowedOrigin, h as toAddress, m as toAccountId, t as InMemoryAuthCacheAdapter, v as toAuthUserId, w as toEmail, x as toCountryCode } from "../InMemoryAuthCacheAdapter-D5Cv0yz0.mjs";
3
3
  import { keccak256 } from "viem";
4
4
  import { Effect, Result, Semaphore } from "effect";
5
5
  import { getFunctionName } from "convex/server";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capxul/sdk",
3
- "version": "2.3.2",
3
+ "version": "2.5.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/Xelmar-tech/infrastructure.git",
@@ -46,12 +46,12 @@
46
46
  "typescript": "npm:@typescript/typescript6@6.0.2",
47
47
  "vite-plus": "0.1.23",
48
48
  "vitest": "npm:@voidzero-dev/vite-plus-test@0.1.23",
49
- "@capxul/config": "0.2.0",
50
- "@capxul/errors": "0.0.1",
51
- "@capxul/typescript-config": "0.0.0",
52
49
  "@capxul/types": "0.2.0",
53
- "@capxul/wire": "0.4.0",
54
- "@capxul/observability": "2.3.2"
50
+ "@capxul/typescript-config": "0.0.0",
51
+ "@capxul/config": "0.2.0",
52
+ "@capxul/observability": "2.5.0",
53
+ "@capxul/wire": "0.5.0",
54
+ "@capxul/errors": "0.0.1"
55
55
  },
56
56
  "_permissionlessPinReason": "permissionless.toSafeSmartAccount is pinned to 0.3.4 for live Safe deployment E2E. Counterfactual address fixtures captured 2026-05-17 in packages/backend/convex/_shared/__tests__/counterfactual.test.ts and packages/config/tests/safe.test.ts must be re-verified before upgrading.",
57
57
  "scripts": {