@capxul/mcp 4.2.0-rc.12 → 4.2.0-rc.14

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,11 +1,11 @@
1
1
  {
2
2
  "source": {
3
- "commit": "fd5b4d0f124c75f609e469b8673c61f84253c0dc",
4
- "tree": "d61f0f6b0c83dfc2d405ffc6b55eecf2e9d80f2d",
3
+ "commit": "ad9386dd8d539fea17964d05292fc0ca16495d2f",
4
+ "tree": "87b1723ed13d7be72487cbcbbfded24b0ac850e5",
5
5
  "branch": "codex/programme-rc",
6
6
  "repository": "https://github.com/Xelmar-tech/infrastructure",
7
7
  "lockfileSha256": "5870f53b72706d103220c1bcf733cb4fb71196aea32a9cfbdc277d73cc959264"
8
8
  },
9
9
  "name": "@capxul/mcp",
10
- "version": "4.2.0-rc.12"
10
+ "version": "4.2.0-rc.14"
11
11
  }
package/dist/main.mjs CHANGED
@@ -6947,6 +6947,8 @@ const CAPXUL_OPERATIONS = {
6947
6947
  cancelRequest: "financialOps.cancelRequest",
6948
6948
  createPayee: "financialOps.createPayee",
6949
6949
  declineRequest: "financialOps.declineRequest",
6950
+ emitInvoiceIssued: "financialOps.emitInvoiceIssued",
6951
+ emitInvoiceRequestTransitioned: "financialOps.emitInvoiceRequestTransitioned",
6950
6952
  emitPaymentWriterTelemetry: "financialOps.emitPaymentWriterTelemetry",
6951
6953
  issueRequest: "financialOps.issueRequest",
6952
6954
  recoverSettlementVerification: "financialOps.recoverSettlementVerification",
@@ -6957,6 +6959,7 @@ const CAPXUL_OPERATIONS = {
6957
6959
  current: "holdings.current",
6958
6960
  primary: "holdings.primary"
6959
6961
  },
6962
+ indexer: { reconcile: "indexer.reconcile" },
6960
6963
  identity: {
6961
6964
  accountAt: "identity.AccountAt",
6962
6965
  accountClaimed: "identity.AccountClaimed",
@@ -7046,6 +7049,7 @@ const CAPXUL_OPERATIONS = {
7046
7049
  createOrg: "org.createOrg",
7047
7050
  create: "org.create",
7048
7051
  detectAndAcceptPendingInvitations: "org.detectAndAcceptPendingInvitations",
7052
+ emitInviteProgressed: "org.emitInviteProgressed",
7049
7053
  expireInvitations: "org.expireInvitations",
7050
7054
  getLifecycle: "org.getLifecycle",
7051
7055
  getProofReceipt: "org.getProofReceipt",
@@ -7850,6 +7854,26 @@ const MovementScanIncidentProps = Schema.Struct({
7850
7854
  incident_kind: Schema.String,
7851
7855
  anchor_block_number: Schema.Number
7852
7856
  });
7857
+ /**
7858
+ * One durable row the reconciliation job corrected against Ponder (SPEC D9).
7859
+ *
7860
+ * Both block fields are optional and for the same reason: a correction INTO
7861
+ * drift (a Payment settled in Convex whose Ponder fact a reorg removed) has no
7862
+ * current block, and a correction that confirms a later fact has one.
7863
+ *
7864
+ * `projection_kind` is closed. A later ticket that reconciles a deploy, a
7865
+ * bootstrap or a grant outcome adds its kind here in the same change; an
7866
+ * unknown kind must not decode.
7867
+ */
7868
+ const IndexerDriftCorrectedProps = Schema.Struct({
7869
+ ...TelemetryEnvelopeProps,
7870
+ projection_kind: Schema.Literals(["member_authority", "payment_settlement"]),
7871
+ previous_state: Schema.String,
7872
+ current_state: Schema.String,
7873
+ previous_block: Schema.optional(Schema.Number),
7874
+ current_block: Schema.optional(Schema.Number),
7875
+ logical_event_id: Schema.optional(Schema.String)
7876
+ });
7853
7877
  Schema.Struct({
7854
7878
  name: Schema.Literal("auth_otp_requested"),
7855
7879
  props: AuthOtpRequestedProps
@@ -8054,6 +8078,10 @@ Schema.Struct({
8054
8078
  name: Schema.Literal("movement_scan_incident"),
8055
8079
  props: MovementScanIncidentProps
8056
8080
  });
8081
+ Schema.Struct({
8082
+ name: Schema.Literal("indexer_drift_corrected"),
8083
+ props: IndexerDriftCorrectedProps
8084
+ });
8057
8085
  /** The one spelling of "whose scope did this happen in" across every surface. */
8058
8086
  const ScopeKindSchema = Schema.Literals(["account", "organization"]);
8059
8087
  const AccountKindSchema = Schema.Literals(["personalSafe", "orgTreasury"]);
@@ -9644,6 +9672,13 @@ Schema.Struct({
9644
9672
  transfers: Schema.Array(TransferEvidenceSchema),
9645
9673
  requestCount: nonNegativeInteger("requestCount")
9646
9674
  });
9675
+ /**
9676
+ * `chainId:txHash:transactionLogOrdinal` — the indexer's own row id. The
9677
+ * ordinal is the position in the transaction's receipt logs, never the
9678
+ * block-global index that `eventLogIndex` carries.
9679
+ */
9680
+ const LOGICAL_EVENT_ID_RE = /^[1-9][0-9]{0,9}:0x[0-9a-f]{64}:(0|[1-9][0-9]{0,5})$/u;
9681
+ const LogicalEventIdSchema = Schema.String.pipe(Schema.refine((value) => LOGICAL_EVENT_ID_RE.test(value), { message: "must be chainId:txHash:transactionLogOrdinal" }));
9647
9682
  const VerifiedMoneyEvidenceCommonSchema = Schema.Struct({
9648
9683
  chainId: BaseSepoliaChainIdSchema,
9649
9684
  contractAddress: AddressSchema,
@@ -9652,7 +9687,17 @@ const VerifiedMoneyEvidenceCommonSchema = Schema.Struct({
9652
9687
  blockNumber: BlockNumberSchema,
9653
9688
  blockHash: Bytes32Schema,
9654
9689
  blockTimestamp: Uint48Schema,
9655
- eventLogIndex: LogIndexSchema
9690
+ /**
9691
+ * The block-global log index of the settled event, as
9692
+ * `eth_getTransactionReceipt` reports it. Both readers key on this value, and
9693
+ * the ledger de-duplicates a settlement on `(txHash, eventLogIndex)`.
9694
+ */
9695
+ eventLogIndex: LogIndexSchema,
9696
+ /**
9697
+ * The indexer row the fact was read from. Present only when the indexer
9698
+ * answered; the receipt-backed reader reads no row and sets nothing.
9699
+ */
9700
+ logicalEventId: Schema.optional(LogicalEventIdSchema)
9656
9701
  });
9657
9702
  const VerifiedPaymentEvidenceSchema = Schema.Struct({
9658
9703
  ...VerifiedMoneyEvidenceCommonSchema.fields,
@@ -11884,31 +11929,31 @@ function makeActorRelationshipMethods(deps) {
11884
11929
  reference: input.reference,
11885
11930
  ...input.memo === void 0 ? {} : { memo: input.memo },
11886
11931
  ...input.expiresAt === void 0 ? {} : { expiresAt: input.expiresAt }
11887
- }))), (request) => mapActorRequest(request, input.payer)), controls, CAPXUL_OPERATIONS.requests.issue, deps.runPromise);
11932
+ }))), (request) => mapActorRequest(request, input.payer)).pipe(Effect.tap(() => observeContactScope)), controls, CAPXUL_OPERATIONS.requests.issue, deps.runPromise);
11888
11933
  },
11889
11934
  list: (options) => {
11890
11935
  const controls = deps.invocationControls?.(options) ?? options;
11891
- return runPortEffect(mapReply(CAPXUL_OPERATIONS.requests.list, Effect.suspend(() => convexCall.query(fns.requestsList, copyInvocationObservation(controls, { actor }))), (requests) => requests.map((request) => mapActorRequest(request))), controls, CAPXUL_OPERATIONS.requests.list, deps.runPromise);
11936
+ return runPortEffect(mapReply(CAPXUL_OPERATIONS.requests.list, Effect.suspend(() => convexCall.query(fns.requestsList, copyInvocationObservation(controls, { actor }))), (requests) => requests.map((request) => mapActorRequest(request))).pipe(Effect.tap(() => observeContactScope)), controls, CAPXUL_OPERATIONS.requests.list, deps.runPromise);
11892
11937
  },
11893
11938
  get: (requestId, options) => {
11894
11939
  const controls = deps.invocationControls?.(options) ?? options;
11895
11940
  return runPortEffect(mapReply(CAPXUL_OPERATIONS.requests.get, Effect.suspend(() => convexCall.query(fns.requestsGet, copyInvocationObservation(controls, {
11896
11941
  actor,
11897
11942
  paymentRequestId: requestId
11898
- }))), (request) => request === null ? null : mapActorRequest(request)), controls, CAPXUL_OPERATIONS.requests.get, deps.runPromise);
11943
+ }))), (request) => request === null ? null : mapActorRequest(request)).pipe(Effect.tap(() => observeContactScope)), controls, CAPXUL_OPERATIONS.requests.get, deps.runPromise);
11899
11944
  },
11900
11945
  cancel: (requestId, options) => {
11901
11946
  const controls = deps.invocationControls?.(options) ?? options;
11902
11947
  return runPortEffect(mapReply(CAPXUL_OPERATIONS.requests.cancel, Effect.suspend(() => convexCall.mutation(fns.requestsCancel, copyInvocationObservation(controls, {
11903
11948
  actor,
11904
11949
  paymentRequestId: requestId
11905
- }))), (request) => mapActorRequest(request)), controls, CAPXUL_OPERATIONS.requests.cancel, deps.runPromise);
11950
+ }))), (request) => mapActorRequest(request)).pipe(Effect.tap(() => observeContactScope)), controls, CAPXUL_OPERATIONS.requests.cancel, deps.runPromise);
11906
11951
  }
11907
11952
  },
11908
11953
  inbox: {
11909
11954
  list: (options) => {
11910
11955
  const controls = deps.invocationControls?.(options) ?? options;
11911
- return runPortEffect(mapReply(CAPXUL_OPERATIONS.inbox.list, Effect.suspend(() => convexCall.query(fns.inboxList, copyInvocationObservation(controls, { actor }))), (items) => items.map(mapInboxItem)), controls, CAPXUL_OPERATIONS.inbox.list, deps.runPromise);
11956
+ return runPortEffect(mapReply(CAPXUL_OPERATIONS.inbox.list, Effect.suspend(() => convexCall.query(fns.inboxList, copyInvocationObservation(controls, { actor }))), (items) => items.map(mapInboxItem)).pipe(Effect.tap(() => observeContactScope)), controls, CAPXUL_OPERATIONS.inbox.list, deps.runPromise);
11912
11957
  },
11913
11958
  approve: (input, options) => {
11914
11959
  const controls = deps.invocationControls?.(options) ?? options;
@@ -11920,14 +11965,14 @@ function makeActorRelationshipMethods(deps) {
11920
11965
  }))).pipe(Effect.flatMap((prepared) => {
11921
11966
  const result = mapApprovedInboxPayment(prepared, input);
11922
11967
  return result.ok ? Effect.succeed(result.value) : Effect.fail({ publicError: result.error });
11923
- })), controls, CAPXUL_OPERATIONS.inbox.approve, deps.runPromise);
11968
+ }), Effect.tap(() => observeContactScope)), controls, CAPXUL_OPERATIONS.inbox.approve, deps.runPromise);
11924
11969
  },
11925
11970
  decline: (requestId, options) => {
11926
11971
  const controls = deps.invocationControls?.(options) ?? options;
11927
11972
  return runPortEffect(mapReply(CAPXUL_OPERATIONS.inbox.decline, Effect.suspend(() => convexCall.mutation(fns.inboxDecline, copyInvocationObservation(controls, {
11928
11973
  actor,
11929
11974
  paymentRequestId: requestId
11930
- }))), mapInboxItem), controls, CAPXUL_OPERATIONS.inbox.decline, deps.runPromise);
11975
+ }))), mapInboxItem).pipe(Effect.tap(() => observeContactScope)), controls, CAPXUL_OPERATIONS.inbox.decline, deps.runPromise);
11931
11976
  }
11932
11977
  },
11933
11978
  profile: {
@@ -12783,7 +12828,7 @@ function subscribeActivity(deps, actor, controls, onChange) {
12783
12828
  }
12784
12829
  //#endregion
12785
12830
  //#region ../../packages/sdk/package.json
12786
- var version$1 = "4.2.0-rc.12";
12831
+ var version$1 = "4.2.0-rc.14";
12787
12832
  //#endregion
12788
12833
  //#region ../../packages/sdk/src/telemetry/exception-projection.ts
12789
12834
  /** Fixed fallback for failures that have no safe message. */
@@ -14036,10 +14081,12 @@ function makeFinancialOpsMethods(deps) {
14036
14081
  return runPortEffect(Effect.suspend(() => deps.convexCall.query(fns.depositInstructions, copyInvocationObservation(controls, {}))).pipe(Effect.tap((instructions) => emitDepositInitiated(deps.telemetry, instructions, controls))), controls, CAPXUL_OPERATIONS.me.depositInstructions, deps.runPromise);
14037
14082
  }
14038
14083
  },
14039
- targets: { resolve: async (reference, options) => {
14040
- const recipient = normalizeTargetForBackend(reference, "reference");
14041
- if (!recipient.ok) return recipient;
14042
- return mapOk(await runIfActive(options?.signal, CAPXUL_OPERATIONS.recipient.resolve, () => deps.convexCall.query(fns.resolveRecipient, { recipient: recipient.value })), resolvedTargetFromResolution);
14084
+ targets: { resolve: (reference, options) => {
14085
+ const controls = deps.invocationControls?.(options) ?? options;
14086
+ return runPortEffect(projectReply(Effect.suspend(() => {
14087
+ const recipient = normalizeTargetForBackend(reference, "reference");
14088
+ return recipient.ok ? deps.convexCall.query(fns.resolveRecipient, copyInvocationObservation(controls, { recipient: recipient.value })) : Effect.fail({ publicError: recipient.error });
14089
+ }), resolvedTargetFromResolution), controls, CAPXUL_OPERATIONS.recipient.resolve, deps.runPromise);
14043
14090
  } },
14044
14091
  destinations: {
14045
14092
  add: (input, options) => {
@@ -14102,8 +14149,14 @@ function makeFinancialOpsMethods(deps) {
14102
14149
  kind: "claim",
14103
14150
  paymentId
14104
14151
  }, deps.invocationControls?.(options) ?? options, CAPXUL_OPERATIONS.payments.claim),
14105
- list: async (options) => mapOk(await runIfActive(options?.signal, CAPXUL_OPERATIONS.payments.list, () => deps.convexCall.query(fns.listPayments, {})), (payments) => payments.map(normalizePaymentTiming)),
14106
- get: async (paymentId, options) => mapOk(await runIfActive(options?.signal, CAPXUL_OPERATIONS.payments.get, () => deps.convexCall.query(fns.getPayment, { paymentId })), (payment) => payment === null ? null : normalizePaymentTiming(payment)),
14152
+ list: (options) => {
14153
+ const controls = deps.invocationControls?.(options) ?? options;
14154
+ return runPortEffect(projectReply(Effect.suspend(() => deps.convexCall.query(fns.listPayments, copyInvocationObservation(controls, {}))), (payments) => payments.map(normalizePaymentTiming)), controls, CAPXUL_OPERATIONS.payments.list, deps.runPromise);
14155
+ },
14156
+ get: (paymentId, options) => {
14157
+ const controls = deps.invocationControls?.(options) ?? options;
14158
+ return runPortEffect(projectReply(Effect.suspend(() => deps.convexCall.query(fns.getPayment, copyInvocationObservation(controls, { paymentId }))), (payment) => payment === null ? null : normalizePaymentTiming(payment)), controls, CAPXUL_OPERATIONS.payments.get, deps.runPromise);
14159
+ },
14107
14160
  cancel: (paymentId, options) => runLifecycle({
14108
14161
  kind: "cancel",
14109
14162
  paymentId
@@ -14471,6 +14524,22 @@ function normalizePaymentTiming(payment) {
14471
14524
  timing: payment.timing ?? payment.release ?? { kind: "instant" }
14472
14525
  };
14473
14526
  }
14527
+ /**
14528
+ * `mapOk`, moved inside the observed Effect (R09 #1967).
14529
+ *
14530
+ * The projection can refuse — `toAddress` and `toPartyId` throw on a malformed
14531
+ * reply — and every verb on this surface returns a `CapxulResult`, so that
14532
+ * throw stays a value here (ADR-0023). The error identity is `mapOk`'s: a
14533
+ * `CapxulError` passes through, anything else becomes `Errors.unknown(cause)`.
14534
+ * Running it inside the runner is what puts the decode failure on the same
14535
+ * operation record as the read that produced the reply.
14536
+ */
14537
+ function projectReply(program, project) {
14538
+ return program.pipe(Effect.flatMap((value) => Effect.try({
14539
+ try: () => project(value),
14540
+ catch: (cause) => ({ publicError: cause instanceof CapxulError ? cause : Errors.unknown(cause) })
14541
+ })));
14542
+ }
14474
14543
  function mapOk(result, f) {
14475
14544
  if (!result.ok) return result;
14476
14545
  try {
@@ -19121,6 +19190,8 @@ const OBSERVED_CONVEX_QUERIES = /* @__PURE__ */ new Set([
19121
19190
  "movement/activity:summary",
19122
19191
  "movement/activity:get",
19123
19192
  "financialOps/queries:depositInstructions",
19193
+ "financialOps/queries:listPayments",
19194
+ "financialOps/queries:getPayment",
19124
19195
  "financialOps/destinations:list",
19125
19196
  "financialOps/queries:verifyPaymentDocument",
19126
19197
  "financialOps/queries:renderStoredDocument",
@@ -19845,11 +19916,11 @@ var ConvexOrganizationAdapter = class {
19845
19916
  return this.listMembers(input).pipe(Effect.map((members) => members.filter((member) => member.status === "pending" || member.status === "pending_safe" || member.status === "pending_grant")));
19846
19917
  }
19847
19918
  inviteMember(input) {
19848
- return this.#convex.action(this.#fns.inviteMember, {
19919
+ return this.#convex.action(this.#fns.inviteMember, copyInvocationObservation(input, {
19849
19920
  orgId: input.orgId,
19850
19921
  email: input.input.email,
19851
19922
  role: input.input.role
19852
- }).pipe(Effect.mapError((error) => orgErrorFromCapxul("inviteMember", error.publicError, error)), Effect.map(brandOrgMember), Effect.catchDefect((cause) => Effect.fail(toOrgError("inviteMember", cause))));
19923
+ })).pipe(Effect.mapError((error) => orgErrorFromCapxul("inviteMember", error.publicError, error)), Effect.map(brandOrgMember), Effect.catchDefect((cause) => Effect.fail(toOrgError("inviteMember", cause))));
19853
19924
  }
19854
19925
  resendInviteToken(input) {
19855
19926
  return this.#convex.mutation(this.#fns.resendInvite, {
@@ -45808,18 +45879,6 @@ function emitOrgCreateFailed(telemetry, error) {
45808
45879
  }
45809
45880
  });
45810
45881
  }
45811
- function emitOrgInviteSent(telemetry, input) {
45812
- const domain = emailDomain$1(input.email);
45813
- return emitOrgTelemetry(telemetry, {
45814
- name: "org_invite_sent",
45815
- props: {
45816
- org_id: input.orgId,
45817
- ...domain === void 0 ? {} : { email_domain: domain },
45818
- role: input.role,
45819
- status: input.status
45820
- }
45821
- });
45822
- }
45823
45882
  function reportOrgTelemetryFailure(kind, name, cause) {
45824
45883
  if (!isOrgTelemetryDebugEnabled()) return;
45825
45884
  globalThis.console?.warn?.("[capxul] org telemetry dropped", {
@@ -45995,25 +46054,26 @@ function listMembersProgram(orgId) {
45995
46054
  return [];
45996
46055
  });
45997
46056
  }
46057
+ /**
46058
+ * R06 (#1964): the SDK no longer emits `org_invite_sent`. The backend action
46059
+ * that writes the invitation is its ONE producer, so a hermetic call — which
46060
+ * writes nothing — can no longer report an invitation that never happened, and
46061
+ * a live call is counted once instead of twice. The captured attempt rides the
46062
+ * port input, so the durable event carries the correlation this call ran under.
46063
+ */
45998
46064
  function inviteMemberProgram(orgId, input) {
45999
46065
  return Effect.gen(function* () {
46000
46066
  const deps = yield* OrgDepsTag;
46001
- const member = deps.orgPort !== void 0 ? yield* deps.orgPort.inviteMember({
46002
- orgId,
46003
- input
46004
- }).pipe(Effect.mapError((error) => error.publicError)) : hermeticMember({
46067
+ if (deps.orgPort === void 0) return hermeticMember({
46005
46068
  orgId,
46006
46069
  email: input.email,
46007
46070
  role: input.role,
46008
46071
  status: "pending"
46009
46072
  });
46010
- yield* Effect.promise(() => emitOrgInviteSent(deps.telemetry, {
46073
+ return yield* deps.orgPort.inviteMember(copyInvocationObservation(deps.invocationSource, {
46011
46074
  orgId,
46012
- email: input.email,
46013
- role: member.role,
46014
- status: member.status
46015
- }));
46016
- return member;
46075
+ input
46076
+ })).pipe(Effect.mapError((error) => error.publicError));
46017
46077
  });
46018
46078
  }
46019
46079
  function detectAndAcceptPendingInvitationsProgram() {
@@ -46280,11 +46340,15 @@ function makeOrgMethods(deps) {
46280
46340
  return toCapxulResult(listRolesProgram(orgId), layer);
46281
46341
  },
46282
46342
  invite(_input, _options) {
46283
- if (_options?.signal?.aborted) return Promise.resolve({
46343
+ const controls = deps.invocationControls?.(_options) ?? _options;
46344
+ if (controls?.signal?.aborted) return Promise.resolve({
46284
46345
  ok: false,
46285
46346
  error: Errors.cancelled({ operation: CAPXUL_OPERATIONS.org.invite })
46286
46347
  });
46287
- return toCapxulResult(inviteMemberProgram(orgId, _input), layer);
46348
+ return runCapxulEffect(inviteMemberProgram(orgId, _input).pipe(Effect.provide(orgDepsLayer({
46349
+ ...orgDeps,
46350
+ ...controls === void 0 ? {} : { invocationSource: controls }
46351
+ }))), controls, CAPXUL_OPERATIONS.org.invite, deps.runPromise);
46288
46352
  },
46289
46353
  auditLog(_options) {
46290
46354
  if (_options?.signal?.aborted) return Promise.resolve({
@@ -47221,6 +47285,7 @@ function identity(row) {
47221
47285
  chainId: toChainId(integer(row, "chain_id")),
47222
47286
  txHash: toTxHash(hex(row, "tx_hash")),
47223
47287
  transactionLogOrdinal: integer(row, "transaction_log_ordinal"),
47288
+ logIndex: integer(row, "log_index"),
47224
47289
  blockNumber: big(row, "block_number"),
47225
47290
  blockHash: hex(row, "block_hash"),
47226
47291
  timestamp: big(row, "timestamp")
@@ -47303,8 +47368,8 @@ function decodeStatus(body) {
47303
47368
  * that allowlist changes, this file changes with it or every read fails 403.
47304
47369
  */
47305
47370
  const HEADS = {
47306
- transfer: "select \"id\", \"chain_id\", \"tx_hash\", \"transaction_log_ordinal\", \"block_number\", \"block_hash\", \"timestamp\", \"asset_id\", \"token\", \"from\", \"to\", \"amount\" from \"transfer\" where (\"transfer\".\"from\" = $1 or \"transfer\".\"to\" = $2) order by \"transfer\".\"block_number\" desc, \"transfer\".\"id\" desc",
47307
- payment: "select \"id\", \"chain_id\", \"tx_hash\", \"transaction_log_ordinal\", \"block_number\", \"block_hash\", \"timestamp\", \"contract\", \"settlement_id\", \"sender\", \"recipient\", \"asset_id\", \"token\", \"amount\", \"kind\", \"document_hash\" from \"payment\" where (\"payment\".\"sender\" = $1 or \"payment\".\"recipient\" = $2) order by \"payment\".\"block_number\" desc, \"payment\".\"id\" desc",
47371
+ transfer: "select \"id\", \"chain_id\", \"tx_hash\", \"transaction_log_ordinal\", \"log_index\", \"block_number\", \"block_hash\", \"timestamp\", \"asset_id\", \"token\", \"from\", \"to\", \"amount\" from \"transfer\" where (\"transfer\".\"from\" = $1 or \"transfer\".\"to\" = $2) order by \"transfer\".\"block_number\" desc, \"transfer\".\"id\" desc",
47372
+ payment: "select \"id\", \"chain_id\", \"tx_hash\", \"transaction_log_ordinal\", \"log_index\", \"block_number\", \"block_hash\", \"timestamp\", \"contract\", \"settlement_id\", \"sender\", \"recipient\", \"asset_id\", \"token\", \"amount\", \"kind\", \"document_hash\" from \"payment\" where (\"payment\".\"sender\" = $1 or \"payment\".\"recipient\" = $2) order by \"payment\".\"block_number\" desc, \"payment\".\"id\" desc",
47308
47373
  balance: "select \"chain_id\", \"asset_id\", \"to\", \"amount\" from \"balance\" where \"balance\".\"to\" = $1"
47309
47374
  };
47310
47375
  /** How many times the statement binds the Safe address. */
@@ -48949,7 +49014,7 @@ function stdioIdentity(env = process.env, options = {}) {
48949
49014
  }
48950
49015
  //#endregion
48951
49016
  //#region package.json
48952
- var version = "4.2.0-rc.12";
49017
+ var version = "4.2.0-rc.14";
48953
49018
  //#endregion
48954
49019
  //#region src/deps.ts
48955
49020
  const NO_IDENTITY = async () => void 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capxul/mcp",
3
- "version": "4.2.0-rc.12",
3
+ "version": "4.2.0-rc.14",
4
4
  "private": false,
5
5
  "description": "Capxul MCP server for auth, Account readiness, identity, Organizations, relationships, requests, destinations, and testnet funding over Streamable HTTP.",
6
6
  "keywords": [
@@ -50,9 +50,9 @@
50
50
  "typescript": "npm:@typescript/typescript6@6.0.2",
51
51
  "vite": "npm:@voidzero-dev/vite-plus-core@0.3.0",
52
52
  "vite-plus": "0.3.0",
53
- "@capxul/sdk": "4.2.0-rc.12",
53
+ "@capxul/config": "0.3.0",
54
54
  "@capxul/typescript-config": "0.0.0",
55
- "@capxul/config": "0.3.0"
55
+ "@capxul/sdk": "4.2.0-rc.14"
56
56
  },
57
57
  "scripts": {
58
58
  "dev": "vp exec tsx src/main.ts serve",