cascrow-sdk 0.4.0 → 0.8.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.
package/dist/client.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { TX_HASH_RE, V3_CLIENT_TEXT, v3HintFor, v3RefusalDetail } from "./v3.js";
1
2
  /**
2
3
  * Client deadlines, mirrored from `src/lib/latency-budget.ts` (SEC-073).
3
4
  *
@@ -53,6 +54,17 @@ function makeApiError(status, body, headers) {
53
54
  err.watchUrl = b.watch_url;
54
55
  if (typeof b.expected_done_in_seconds === "number")
55
56
  err.expectedDoneInSeconds = b.expected_done_in_seconds;
57
+ // A MilestoneEscrowV3 refusal says who can act and how (F-72): the body's actionable
58
+ // fields (G5), then the owner's words, role-aware on the body (H9).
59
+ const detail = v3RefusalDetail(body);
60
+ if (detail && !err.message.includes(detail))
61
+ err.message += ` — ${detail}`;
62
+ const hint = v3HintFor(err.code, body);
63
+ if (hint) {
64
+ err.hint = hint;
65
+ if (!err.message.includes(hint))
66
+ err.message += ` — ${hint}`;
67
+ }
56
68
  return err;
57
69
  }
58
70
  /** A body parsed without trusting it to be JSON: an HTML 502 is "HTTP 502 (non-JSON response from server)". */
@@ -147,7 +159,7 @@ function normalizeCriteria(value) {
147
159
  /** Every `action` the verification stream can send. Kept next to the check so the
148
160
  * two cannot drift: adding a value to `VerificationResult["action"]` without adding
149
161
  * it here makes this file fail to compile. */
150
- const STREAM_ACTIONS = ["VERIFIED", "PENDING_REVIEW", "REJECTED", "COMPLETED", "SUPERSEDED"];
162
+ const STREAM_ACTIONS = ["VERIFIED", "PENDING_REVIEW", "REJECTED", "COMPLETED", "SUPERSEDED", "V3_RECOMMENDATION", "NOT_COMPLETABLE_WITHOUT_ESCROW"];
151
163
  /**
152
164
  * The stream's `action`, or a thrown error — never an invented verdict.
153
165
  *
@@ -209,7 +221,10 @@ function approvedWithoutThisVerdict(s) {
209
221
  * without `running` (an older server) the old reading stays.
210
222
  */
211
223
  function parkedForHuman(s) {
212
- return Boolean(s.pending) && s.running !== true && s.milestoneStatus === "PENDING_REVIEW";
224
+ // Never a MilestoneEscrowV3 proof (post-review L2): no human review decides one — the
225
+ // milestone's status is the fold's, from the chain, and a PENDING_REVIEW there is no
226
+ // queue this proof waits in.
227
+ return s.escrowVersion !== 3 && Boolean(s.pending) && s.running !== true && s.milestoneStatus === "PENDING_REVIEW";
213
228
  }
214
229
  export class CascrowClient {
215
230
  apiKey;
@@ -218,6 +233,42 @@ export class CascrowClient {
218
233
  this.apiKey = options.apiKey;
219
234
  this.baseUrl = options.baseUrl ?? "https://cascrow.com";
220
235
  }
236
+ /**
237
+ * MilestoneEscrowV3 — the remote half. cascrow prepares and reads; YOU sign and
238
+ * send with your own key. This SDK never signs: use the separate, pinned
239
+ * `cascrow-signer` package (`npx cascrow-signer@<pin> …`, see CASCROW_SIGNER_PIN),
240
+ * which checks every prepared transaction against its own chain and contract.
241
+ */
242
+ v3 = {
243
+ /** As PAYER: offer terms for a milestone. 409 `OFFER_EXISTS` names the open offer. */
244
+ offer: (input) => this.request("POST", "/api/escrow/v3/offer", input),
245
+ /** As PAYEE: the frozen offer to check and sign (EIP-712). 409 `V3_NOT_OFFERED` before the payer offered. */
246
+ acceptance: (milestoneId) => this.request("GET", `/api/escrow/v3/acceptance?milestoneId=${encodeURIComponent(milestoneId)}`),
247
+ /** As PAYEE: hand over the acceptance signature — binding until acceptBy. */
248
+ submitAcceptance: (offerId, signature) => this.request("POST", "/api/escrow/v3/acceptance", { offerId, signature }),
249
+ /** An UNSIGNED transaction. Rebuild `data` and check `to`/`chainId` yourself before signing. */
250
+ prepare: (milestoneId, action, extra = {}) => {
251
+ const q = new URLSearchParams({ milestoneId, action });
252
+ if (extra.proofHash)
253
+ q.set("proofHash", extra.proofHash);
254
+ if (extra.reasonHash)
255
+ q.set("reasonHash", extra.reasonHash);
256
+ if (extra.newDeadline !== undefined)
257
+ q.set("newDeadline", String(extra.newDeadline));
258
+ return this.request("GET", `/api/escrow/v3/prepare?${q.toString()}`);
259
+ },
260
+ /** After YOU broadcast: the hash as a hint to re-read the chain. Only a hash — never a signed transaction. */
261
+ reportTx: (milestoneId, txHash) => {
262
+ // Refused before any request, with the same stable code both MCP surfaces use (L3).
263
+ if (!TX_HASH_RE.test(txHash))
264
+ return Promise.reject(makeApiError(0, { error: V3_CLIENT_TEXT.reportTxOnlyHash, code: "NOT_A_TX_HASH" }));
265
+ return this.request("POST", "/api/escrow/v3/sync", { milestoneId, txHash });
266
+ },
267
+ /** cascrow's signed, NON-BINDING AI recommendation for a claim. 409 `ATTESTATION_PENDING` while the panel runs. */
268
+ attestation: (escrowId, claimIndex) => this.request("GET", `/api/escrow/v3/attestation?${new URLSearchParams({ escrowId, claimIndex: String(claimIndex) }).toString()}`),
269
+ /** As PAYER: open claims you can still object to (same as `v3Claims()`). */
270
+ claims: () => this.request("GET", "/api/agent/v3-claims"),
271
+ };
221
272
  authHeaders() {
222
273
  return this.apiKey ? { Authorization: `Bearer ${this.apiKey}` } : {};
223
274
  }
@@ -287,7 +338,7 @@ export class CascrowClient {
287
338
  if (!res.ok || isNonJson(data)) {
288
339
  const err = makeApiError(res.status, data, res.headers);
289
340
  // A platform error page on a POST (the 504 when a route hits its own
290
- // maxDuration — escrow-fund's is 120 s) does not mean the call failed: the
341
+ // maxDuration — escrow/finish waits on the chain) does not mean the call failed: the
291
342
  // function may have moved money before it was killed.
292
343
  if (method !== "GET" && res.status >= 500 && isNonJson(data)) {
293
344
  err.message += ". The request may still have completed on the server — check the contract (getContract) before repeating it.";
@@ -343,11 +394,14 @@ export class CascrowClient {
343
394
  };
344
395
  }),
345
396
  agentReviewMode: input.agentReviewMode,
397
+ ...(input.reviewWindowDays !== undefined ? { reviewWindowDays: input.reviewWindowDays } : {}),
398
+ ...(input.panelDecidesAlone !== undefined ? { panelDecidesAlone: input.panelDecidesAlone } : {}),
346
399
  });
347
400
  return {
348
401
  contractId: data.contractId,
349
402
  inviteCode: data.inviteLink ?? null,
350
403
  inviteLink: data.inviteLink ?? null,
404
+ reviewTerms: data.reviewTerms ?? null,
351
405
  };
352
406
  }
353
407
  /** Get a contract's current status and all milestone states. */
@@ -359,7 +413,16 @@ export class CascrowClient {
359
413
  const qs = options.role ? `?role=${encodeURIComponent(options.role)}` : "";
360
414
  return this.request("GET", `/api/agent/my-contracts${qs}`);
361
415
  }
362
- /** Join an existing contract as the Builder using an invite code. */
416
+ /**
417
+ * Join an existing contract as the Builder using an invite code.
418
+ *
419
+ * `activated: true` — a $0 verification contract: it is active (`status: "FUNDED"`)
420
+ * and you can submit proof now. `activated: false` — the milestones carry an amount:
421
+ * wait for the payer's MilestoneEscrowV3 offer and accept it with your own wallet key
422
+ * (`npx cascrow-signer@0.2.0 accept --milestone <id>`, or `client.v3.acceptance` +
423
+ * `client.v3.submitAcceptance`); proof is accepted once the payer has funded it.
424
+ * `joinedLine(result)` renders that as one sentence.
425
+ */
363
426
  async joinContract(inviteCode) {
364
427
  return this.request("POST", "/api/contracts/join", { inviteCode });
365
428
  }
@@ -384,14 +447,47 @@ export class CascrowClient {
384
447
  async reviewContract(contractId, decision, milestoneId) {
385
448
  return this.request("POST", "/api/contracts/review", milestoneId ? { contractId, decision, milestoneId } : { contractId, decision });
386
449
  }
450
+ /**
451
+ * Ask for a person at cascrow to review a verification outcome (Art. 22(3) GDPR) —
452
+ * as the funder OR the builder, at any time, on any milestone the panel decided. A
453
+ * person decides within one month (`dueAt`); both parties receive the decision with
454
+ * its reasons (webhook `human_review.decided`, or read it with {@link humanReviews}).
455
+ * On a verification-only contract the decision can complete, reject or revoke a
456
+ * completion (withdrawing its certificate); on a MilestoneEscrowV3 milestone it is a
457
+ * statement and changes nothing on chain. `milestoneId` is required once the contract
458
+ * has more than one milestone. A request already open on that milestone is NOT
459
+ * thrown: it returns `{ status: "ALREADY_OPEN", dueAt }` — there is nothing to retry.
460
+ */
461
+ async requestHumanReview(contractId, opts = {}) {
462
+ try {
463
+ return await this.request("POST", "/api/human-review", {
464
+ contractId,
465
+ ...(opts.milestoneId ? { milestoneId: opts.milestoneId } : {}),
466
+ ...(opts.reason ? { reason: opts.reason } : {}),
467
+ });
468
+ }
469
+ catch (err) {
470
+ const e = err;
471
+ if (e && e.code === "HUMAN_REVIEW_ALREADY_OPEN") {
472
+ const dueAt = e.body?.dueAt;
473
+ return { status: "ALREADY_OPEN", dueAt: typeof dueAt === "string" ? dueAt : null };
474
+ }
475
+ throw err;
476
+ }
477
+ }
478
+ /** The human-review requests on a contract you are a party to, newest first, with their decisions. */
479
+ async humanReviews(contractId) {
480
+ return this.request("GET", `/api/human-review?contractId=${encodeURIComponent(contractId)}`);
481
+ }
387
482
  /**
388
483
  * The contracts on which THIS agent, as funder, still owes a manual verdict.
389
484
  *
390
485
  * The pull behind the `manual_review.required` webhook. A webhook that does
391
486
  * not arrive — the agent was down, the endpoint 500'd, the subscription was
392
487
  * never made — is a decision that never gets made, and `cron/cancel-expired`
393
- * then auto-approves the milestone after 48 h (agent contracts) or 14 days
394
- * (human) and releases the escrow. The whole point of the 60–85 confidence
488
+ * then completes the milestone after 48 h (agent contracts in MANUAL_AUTO or
489
+ * AUTO) or 14 days (every other contract) — verification-only contracts, so
490
+ * no money moves, and nobody decided it. The whole point of the 60–85 confidence
395
491
  * band is that somebody looks.
396
492
  *
397
493
  * Every browser surface the funder has for this asks
@@ -410,6 +506,16 @@ export class CascrowClient {
410
506
  async reviewQueue() {
411
507
  return this.request("GET", "/api/agent/review-queue");
412
508
  }
509
+ /**
510
+ * As the PAYER of a MilestoneEscrowV3 escrow: the claims that release it to the
511
+ * builder unless your own wallet calls `object(escrowId)` before
512
+ * `objectionDeadline` — the pull behind the `claim.submitted` webhook. cascrow
513
+ * cannot object for you. Throws with code `V3_INDEX_STALE` (503) while the index
514
+ * is not current; read the chain directly then.
515
+ */
516
+ async v3Claims() {
517
+ return this.request("GET", "/api/agent/v3-claims");
518
+ }
413
519
  /** Check for pending contract invites sent to this agent. */
414
520
  async checkInvites() {
415
521
  return this.request("GET", "/api/agent/pending-invites");
@@ -419,35 +525,16 @@ export class CascrowClient {
419
525
  return this.request("POST", "/api/agent/handoff", input);
420
526
  }
421
527
  // ─── Funding ────────────────────────────────────────────────────────────────
422
- /** Fund (activate) a milestone via MetaMask/browser flow so it can receive proof. */
423
- async fundMilestone(contractId, milestoneId) {
424
- return this.request("POST", "/api/agent/fund-milestone", milestoneId ? { contractId, milestoneId } : { contractId });
425
- }
426
- /**
427
- * Fund a milestone with real on-chain RLUSD escrow using the agent's own EVM
428
- * private key.
429
- *
430
- * **The escrowed amount is the milestone's own `amountUSD`.** The route
431
- * destructures `{ contractId, milestoneId, agentPrivateKey }` and funds
432
- * `milestone.amountUSD`; a body `amountUSD` has never been read.
433
- *
434
- * SEC-120 removed the parameter from both MCP tool schemas, the OpenAPI spec
435
- * and the CLI — and stopped here, at the one surface where the demand was
436
- * enforced by the COMPILER rather than merely written down: `amountUSD:
437
- * number`, no `?`, and `input` forwarded whole. That is the same defect the
438
- * removal was about, at the door that states it most strongly, and it
439
- * survived because the correction was checked against the places that
440
- * document the parameter rather than against the places that require it.
441
- *
442
- * It is deprecated rather than deleted: deleting it would break compilation
443
- * for every existing caller, which is a worse answer than telling them the
444
- * truth. It is no longer forwarded, so the request body now says what the
445
- * server actually reads.
446
- */
447
- async escrowFund(input) {
448
- const { contractId, agentPrivateKey, milestoneId } = input;
449
- return this.request("POST", "/api/agent/escrow-fund", { contractId, agentPrivateKey, milestoneId });
450
- }
528
+ // `fundMilestone()` was removed in 0.7.0 (cascrow Phase 6, owner decision 16): a
529
+ // $0 verification contract is active by itself once the builder has joined, and a
530
+ // milestone with an amount is a MilestoneEscrowV3 escrow its payer funds with one
531
+ // transaction from their own machine (`npx cascrow-signer fund --milestone <id>`,
532
+ // after `client.v3.offer` and the builder's acceptance). The SDK signs nothing.
533
+ //
534
+ // `escrowFund()` was removed in 0.5.0 (cascrow Phase 5): it sent the agent's
535
+ // private key to cascrow, which signed the deposit server-side. cascrow never
536
+ // accepts, creates, stores or signs with anyone's key; the server answers the old
537
+ // path with 410 CUSTODY_PATH_REMOVED.
451
538
  // ─── Proof & verification ───────────────────────────────────────────────────
452
539
  /**
453
540
  * Submit a text proof report for a milestone. Verification starts by itself —
@@ -576,13 +663,29 @@ export class CascrowClient {
576
663
  // a VERIFIED with a hold or a compliance block did not, and a COMPLETED
577
664
  // that someone else released did. SEC-058 / SEC-059.
578
665
  ...(msg.alreadyReleased === true ? { alreadyReleased: true } : {}),
579
- ...(typeof msg.releaseHoldUntil === "string" ? { releaseHoldUntil: msg.releaseHoldUntil } : {}),
666
+ // The panel approved a milestone nothing can complete (an amount without a
667
+ // MilestoneEscrowV3 escrow): the server's sentence and remedy, forwarded.
668
+ ...(msg.action === "NOT_COMPLETABLE_WITHOUT_ESCROW"
669
+ ? {
670
+ ...(typeof msg.error === "string" ? { error: msg.error } : {}),
671
+ ...(typeof msg.remedy === "string" ? { remedy: msg.remedy } : {}),
672
+ }
673
+ : {}),
580
674
  ...(msg.complianceBlocked === true ? { complianceBlocked: true } : {}),
581
675
  ...(msg.timedOut === true ? { timedOut: true } : {}),
582
676
  // With `action: "SUPERSEDED"`: the milestone was closed (e.g. EXPIRED)
583
677
  // before this verification could settle it, rather than decided by
584
678
  // another proof.
585
679
  ...(typeof msg.settledAs === "string" ? { settledAs: msg.settledAs } : {}),
680
+ // MilestoneEscrowV3: the claim-relevant answer is the SUBMISSION's verdict,
681
+ // not `decision` (the panel on this one file). Absent → PENDING, never YES.
682
+ ...(msg.action === "V3_RECOMMENDATION"
683
+ ? {
684
+ manifestHash: typeof msg.manifestHash === "string" ? msg.manifestHash : null,
685
+ submissionVerdict: msg.submissionVerdict === "YES" || msg.submissionVerdict === "NO" ? msg.submissionVerdict : "PENDING",
686
+ claimReady: msg.claimReady === true,
687
+ }
688
+ : {}),
586
689
  };
587
690
  }
588
691
  else if (msg.type === "error") {
@@ -616,7 +719,9 @@ export class CascrowClient {
616
719
  }
617
720
  /**
618
721
  * Submit proof and get an immediate verdict in one call — runs the full
619
- * 5-model pipeline and, on approval, releases funds and mints the NFT.
722
+ * 5-model pipeline. On approval a verification-only milestone completes and its NFT
723
+ * is minted; for a MilestoneEscrowV3 milestone the verdict is a recommendation
724
+ * (`verdict: "v3_recommendation"`) and moves no money.
620
725
  */
621
726
  async mcpSubmit(input) {
622
727
  const data = await this.request("POST", "/api/mcp/submit", {
@@ -633,11 +738,13 @@ export class CascrowClient {
633
738
  // Ordered so the two verdict-less responses are classified before the field that
634
739
  // is missing on both is read. A `?? "rejected"` here would be the same
635
740
  // wrong-direction default `requireAction` above was written to remove.
636
- const verdict = data.decided === "elsewhere"
637
- ? "decided_elsewhere"
638
- : data.panelUnavailable
639
- ? "panel_unavailable"
640
- : data.verdict;
741
+ const verdict = data.action === "V3_RECOMMENDATION"
742
+ ? "v3_recommendation"
743
+ : data.decided === "elsewhere"
744
+ ? "decided_elsewhere"
745
+ : data.panelUnavailable
746
+ ? "panel_unavailable"
747
+ : data.verdict;
641
748
  if (!verdict) {
642
749
  throw new Error("mcp/submit answered 200 with no verdict and no known refusal state — upgrade cascrow-sdk.");
643
750
  }
@@ -647,8 +754,15 @@ export class CascrowClient {
647
754
  reasoning: data.reasoning ?? "",
648
755
  onChainUrl: data.on_chain_url ?? null,
649
756
  proofId: data.proof_id ?? null,
650
- releaseHoldUntil: data.release_hold_until ?? null,
651
757
  settledAs: verdict === "decided_elsewhere" && typeof data.settledAs === "string" ? data.settledAs : null,
758
+ ...(verdict === "v3_recommendation"
759
+ ? {
760
+ decision: data.decision ?? null,
761
+ manifestHash: data.manifestHash ?? null,
762
+ submissionVerdict: data.submissionVerdict === "YES" || data.submissionVerdict === "NO" ? data.submissionVerdict : "PENDING",
763
+ claimReady: data.claimReady === true,
764
+ }
765
+ : {}),
652
766
  };
653
767
  }
654
768
  /**
@@ -752,7 +866,9 @@ export class CascrowClient {
752
866
  // Approved or paid without a YES from this proof: nothing is left for it to
753
867
  // decide, whether or not it has a verdict of its own.
754
868
  const elsewhere = status ? approvedWithoutThisVerdict(status) : false;
755
- if (status && (!status.pending || closed || elsewhere)) {
869
+ // No verdict can complete this milestone: final, whatever `pending` says.
870
+ const notCompletable = status?.notCompletableWithoutEscrow === true && closed === null;
871
+ if (status && (!status.pending || closed || elsewhere || notCompletable)) {
756
872
  return {
757
873
  pending: false,
758
874
  // `?? "NO"` before: an ABSENT decision was reported as a rejection, the one
@@ -766,11 +882,22 @@ export class CascrowClient {
766
882
  // contestable, unpaid approval reached a caller as a completed payout
767
883
  // (SEC-058, at the fourth door of three that were fixed).
768
884
  milestoneStatus: status.milestoneStatus,
769
- releaseHoldUntil: status.releaseHoldUntil ?? null,
885
+ notCompletableWithoutEscrow: notCompletable,
770
886
  milestoneClosed: closed !== null,
771
887
  terminalStatus: closed,
772
888
  terminalReason: closed ? (status.terminalReason ?? null) : null,
773
889
  approvedWithoutThisVerdict: elsewhere,
890
+ // MilestoneEscrowV3: the claim-relevant answer is the SUBMISSION's verdict, not
891
+ // this proof's `decision` (post-review G4) — forwarded, never derived here.
892
+ ...(status.escrowVersion !== undefined ? { escrowVersion: status.escrowVersion } : {}),
893
+ ...(status.escrowVersion === 3
894
+ ? {
895
+ submissionId: status.submissionId ?? null,
896
+ manifestHash: status.manifestHash ?? null,
897
+ submissionVerdict: status.submissionVerdict ?? "PENDING",
898
+ claimReady: status.claimReady === true,
899
+ }
900
+ : {}),
774
901
  reasoning: status.reasoning,
775
902
  };
776
903
  }
@@ -818,9 +945,27 @@ export class CascrowClient {
818
945
  const qs = params.toString();
819
946
  return this.request("GET", `/api/agent/discover${qs ? `?${qs}` : ""}`);
820
947
  }
821
- /** Configure this agent's discovery settings, skills, and callback URL. */
948
+ /**
949
+ * Configure this agent's discovery settings, whether its name is shown on the
950
+ * public check page of its certificates, skills, and callback URL.
951
+ *
952
+ * Turning `discoverable` or `showNameOnCertificates` ON publishes the account
953
+ * holder's name and needs their consent. Without `consentVersion` the server
954
+ * changes nothing and answers 400 `CONSENT_REQUIRED` with the exact text to
955
+ * show and the version to send; `GET /api/agent/settings` returns the same texts.
956
+ * Send `consentVersion` only after the account holder agreed. Turning either
957
+ * off needs nothing.
958
+ */
822
959
  async setDiscoverable(options) {
823
960
  return this.request("PATCH", "/api/agent/settings", options);
824
961
  }
962
+ /**
963
+ * Replace this agent's callback signing secret and return the new one, once.
964
+ * The previous secret stops verifying immediately. 409 `NO_CALLBACK_URL` when
965
+ * no callback URL is set (set one with `setDiscoverable({ callbackUrl })`).
966
+ */
967
+ async rotateCallbackSecret() {
968
+ return this.request("POST", "/api/agent/settings/callback-secret", {});
969
+ }
825
970
  }
826
971
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,8 @@
1
1
  export { CascrowClient } from "./client.js";
2
2
  export type { CascrowClientOptions, WatchResult } from "./client.js";
3
3
  export * from "./types.js";
4
+ export { V3_CLIENT_TEXT, CASCROW_SIGNER_PIN, v3HintFor, v3RefusalDetail, joinedLine } from "./v3.js";
5
+ export type { V3Action, V3PreparedTx, V3OfferInput, V3AcceptanceData, V3Attestation } from "./v3.js";
6
+ export { verifyCascrowSignature, CASCROW_SIGNATURE_HEADER, CASCROW_TIMESTAMP_HEADER, CASCROW_REPLAY_WINDOW_SECONDS } from "./signature.js";
7
+ export type { CascrowSignatureCheck } from "./signature.js";
4
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrE,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrE,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrG,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrG,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC3I,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,5 @@
1
1
  export { CascrowClient } from "./client.js";
2
2
  export * from "./types.js";
3
+ export { V3_CLIENT_TEXT, CASCROW_SIGNER_PIN, v3HintFor, v3RefusalDetail, joinedLine } from "./v3.js";
4
+ export { verifyCascrowSignature, CASCROW_SIGNATURE_HEADER, CASCROW_TIMESTAMP_HEADER, CASCROW_REPLAY_WINDOW_SECONDS } from "./signature.js";
3
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErG,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Verify a webhook or agent callback from cascrow.
3
+ *
4
+ * Every outbound POST carries two headers:
5
+ *
6
+ * X-Cascrow-Timestamp: 2026-10-20T12:00:00.000Z (ISO 8601)
7
+ * X-Cascrow-Signature: sha256=<hex HMAC-SHA256(secret, "t=" + <unix ms of that timestamp> + "." + <raw body>)>
8
+ *
9
+ * The secret is the endpoint's (POST /api/webhooks) or the agent's callback
10
+ * secret (PATCH /api/agent/settings when the callback URL is first set, or
11
+ * POST /api/agent/settings/callback-secret). Pass the RAW body — the exact bytes
12
+ * received, before any JSON parsing — or the MAC will not match.
13
+ *
14
+ * A request whose timestamp is more than `toleranceSeconds` (default 300) away
15
+ * from now is refused: that is the replay window. Dedupe on the event's
16
+ * `data.outboxId` where present; a signature proves origin and freshness, not
17
+ * that you have not seen the request before.
18
+ *
19
+ * Uses WebCrypto (`globalThis.crypto.subtle`, Node 19+ and every browser/edge
20
+ * runtime); on Node 18 it falls back to `node:crypto`'s webcrypto.
21
+ *
22
+ * ```ts
23
+ * import { verifyCascrowSignature } from "cascrow-sdk";
24
+ * const ok = await verifyCascrowSignature({
25
+ * secret: process.env.CASCROW_CALLBACK_SECRET!,
26
+ * body: rawBody,
27
+ * signature: req.headers["x-cascrow-signature"],
28
+ * timestamp: req.headers["x-cascrow-timestamp"],
29
+ * });
30
+ * if (!ok.ok) return res.status(401).end();
31
+ * ```
32
+ */
33
+ export type CascrowSignatureCheck = {
34
+ ok: true;
35
+ } | {
36
+ ok: false;
37
+ reason: "missing_header" | "bad_timestamp" | "outside_window" | "bad_signature";
38
+ };
39
+ export declare const CASCROW_SIGNATURE_HEADER = "X-Cascrow-Signature";
40
+ export declare const CASCROW_TIMESTAMP_HEADER = "X-Cascrow-Timestamp";
41
+ export declare const CASCROW_REPLAY_WINDOW_SECONDS = 300;
42
+ export declare function verifyCascrowSignature(params: {
43
+ secret: string;
44
+ body: string | Uint8Array;
45
+ signature: string | string[] | null | undefined;
46
+ timestamp: string | string[] | null | undefined;
47
+ /** Seconds a timestamp may be off in either direction. Default 300. */
48
+ toleranceSeconds?: number;
49
+ /** For tests. Default: the current time. */
50
+ now?: Date;
51
+ }): Promise<CascrowSignatureCheck>;
52
+ //# sourceMappingURL=signature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,GAAG,gBAAgB,GAAG,eAAe,CAAA;CAAE,CAAC;AAEnG,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAC9D,eAAO,MAAM,6BAA6B,MAAM,CAAC;AA4BjD,wBAAsB,sBAAsB,CAAC,MAAM,EAAE;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgBjC"}
@@ -0,0 +1,50 @@
1
+ export const CASCROW_SIGNATURE_HEADER = "X-Cascrow-Signature";
2
+ export const CASCROW_TIMESTAMP_HEADER = "X-Cascrow-Timestamp";
3
+ export const CASCROW_REPLAY_WINDOW_SECONDS = 300;
4
+ async function subtle() {
5
+ const g = globalThis.crypto;
6
+ if (g?.subtle)
7
+ return g.subtle;
8
+ const spec = "node:crypto";
9
+ const mod = (await import(spec));
10
+ if (!mod.webcrypto?.subtle)
11
+ throw new Error("no WebCrypto available to verify a cascrow signature");
12
+ return mod.webcrypto.subtle;
13
+ }
14
+ function toHex(buf) {
15
+ return [...new Uint8Array(buf)].map((b) => b.toString(16).padStart(2, "0")).join("");
16
+ }
17
+ /** Constant-time over equal lengths; unequal lengths are unequal. */
18
+ function equal(a, b) {
19
+ if (a.length !== b.length)
20
+ return false;
21
+ let diff = 0;
22
+ for (let i = 0; i < a.length; i++)
23
+ diff |= a.charCodeAt(i) ^ b.charCodeAt(i);
24
+ return diff === 0;
25
+ }
26
+ function headerValue(v) {
27
+ if (Array.isArray(v))
28
+ return v.length === 1 ? v[0] : null;
29
+ return v ?? null;
30
+ }
31
+ export async function verifyCascrowSignature(params) {
32
+ const signature = headerValue(params.signature)?.trim() ?? null;
33
+ const timestamp = headerValue(params.timestamp)?.trim() ?? null;
34
+ if (!signature || !timestamp || !params.secret)
35
+ return { ok: false, reason: "missing_header" };
36
+ const ms = Date.parse(timestamp);
37
+ if (!Number.isFinite(ms))
38
+ return { ok: false, reason: "bad_timestamp" };
39
+ const now = (params.now ?? new Date()).getTime();
40
+ const tolerance = (params.toleranceSeconds ?? CASCROW_REPLAY_WINDOW_SECONDS) * 1000;
41
+ if (Math.abs(now - ms) > tolerance)
42
+ return { ok: false, reason: "outside_window" };
43
+ const enc = new TextEncoder();
44
+ const body = typeof params.body === "string" ? params.body : new TextDecoder().decode(params.body);
45
+ const s = await subtle();
46
+ const key = await s.importKey("raw", enc.encode(params.secret), { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
47
+ const mac = await s.sign("HMAC", key, enc.encode(`t=${ms}.${body}`));
48
+ return equal(`sha256=${toHex(mac)}`, signature) ? { ok: true } : { ok: false, reason: "bad_signature" };
49
+ }
50
+ //# sourceMappingURL=signature.js.map