@stellar-agent-services/payment-client 0.1.0 → 0.1.1
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 +24 -1
- package/dist/client.d.ts +6 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +27 -7
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/policy.d.ts +6 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +19 -3
- package/dist/policy.js.map +1 -1
- package/dist/verification.d.ts +29 -0
- package/dist/verification.d.ts.map +1 -0
- package/dist/verification.js +26 -0
- package/dist/verification.js.map +1 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -36,6 +36,7 @@ The main entry point runs in Node and the browser. Journal storage depends on wh
|
|
|
36
36
|
| `src/x402-exact-stellar.ts` | The built-in payment method: x402 `exact` on Stellar, the only one Provider Standard v1 allows |
|
|
37
37
|
| `src/conformance.ts` | Checks that every signer and payment-method adapter must pass (`./conformance` entry point) |
|
|
38
38
|
| `src/policy.ts` | Spending policy with ERC-8196 field names; `checkPolicy()` fails closed |
|
|
39
|
+
| `src/verification.ts` | Application-trusted verification source; binds evidence to the approved manifest, payee, network and validity window [V1] |
|
|
39
40
|
| `src/journal.ts` | Append-only, hash-chained journal; job tokens kept apart in a `SecretStore` |
|
|
40
41
|
| `src/file-storage.ts` | Journal and job-token storage in files (`./node` entry point) |
|
|
41
42
|
| `src/browser-storage.ts` | Journal and job-token storage in IndexedDB (`./browser` entry point) |
|
|
@@ -67,9 +68,31 @@ Job Recovery: start the provider with `DRILL_LOSE_RESPONSE=1 REPORT_DELAY_SECOND
|
|
|
67
68
|
then run the `stellar-pay recover <job-id> --dev` command it prints. `stellar-pay jobs` and
|
|
68
69
|
`stellar-pay journal verify` show the journal.
|
|
69
70
|
|
|
71
|
+
`followPaymentUncertain: true` optionally follows an uncertain job within `followSeconds` while the provider
|
|
72
|
+
reconciles it [J13]. It only reads the original job and never pays again [J11]. The default returns uncertainty
|
|
73
|
+
immediately, so a UI can offer manual recovery. `provider-kit try` enables the bounded wait.
|
|
74
|
+
|
|
75
|
+
## Verification policy
|
|
76
|
+
|
|
77
|
+
Configured verification limits are checked at `quote()` and again at `pay()`, before signing [V1]. Install a
|
|
78
|
+
`verificationSource` in `PaymentClientOptions` to supply authenticated evidence. Without a source, or when it
|
|
79
|
+
returns missing, stale, mismatched or unreadable evidence, a payment requiring verification is blocked.
|
|
80
|
+
|
|
81
|
+
- `minVerificationScore` keeps ERC-8196's name and meaning: the **maximum allowed risk score**, 0–100, lower is
|
|
82
|
+
safer. It compares with the source's `riskScore`, not a receipt's higher-is-better conformance score.
|
|
83
|
+
- `stellar.minProviderLevel` is the minimum Provider Standard §8 level, 0–3.
|
|
84
|
+
- Even a configured value of zero requires evidence. Leaving both fields unset requires no source.
|
|
85
|
+
- Sources are trusted application code. They must authenticate validators and receipt/registry data, bind the
|
|
86
|
+
answer to the requested subject, set `checkedAt` and `expiresAt`, and bound their network calls. Never use a
|
|
87
|
+
provider's own claims as proof. No built-in registry/risk-source adapter is supplied yet.
|
|
88
|
+
- Recovery collects an already paid job without consulting the source or signing again [J11], [J13].
|
|
89
|
+
|
|
90
|
+
See [the design](../../docs/payment-client.md#verification-source) for the interface and trust boundary.
|
|
91
|
+
|
|
70
92
|
## Not done in the PoC
|
|
71
93
|
|
|
72
|
-
-
|
|
94
|
+
- No built-in Validation Registry or ERC-8126 risk-source adapter. Configured verification limits fail closed
|
|
95
|
+
until the application supplies its own trusted source.
|
|
73
96
|
- The wallet secret is a plain file (mode 600). Testnet only.
|
|
74
97
|
- No MCP server yet.
|
|
75
98
|
- Only the built-in signer and method. Adapters for other wallets come later, each in its own package.
|
package/dist/client.d.ts
CHANGED
|
@@ -3,12 +3,15 @@ import type { PaymentRequired, PaymentRequirements } from "@x402/core/types";
|
|
|
3
3
|
import type { Journal, SecretStore } from "./journal.js";
|
|
4
4
|
import { type PolicyViolation, type SpendingPolicy } from "./policy.js";
|
|
5
5
|
import type { PaymentMethod, Signer } from "./strategies.js";
|
|
6
|
+
import { type VerificationSource } from "./verification.js";
|
|
6
7
|
export interface PaymentClientOptions {
|
|
7
8
|
/** Who pays: localKeySigner(), or a wallet adapter. */
|
|
8
9
|
signer: Signer;
|
|
9
10
|
/** How to pay. The first method that matches the challenge is used. Default: x402ExactStellar(). */
|
|
10
11
|
methods?: PaymentMethod[];
|
|
11
12
|
policy: SpendingPolicy;
|
|
13
|
+
/** Trusted by the application. Required only when the policy sets verification minimums [V1]. */
|
|
14
|
+
verificationSource?: VerificationSource;
|
|
12
15
|
journal: Journal;
|
|
13
16
|
secrets: SecretStore;
|
|
14
17
|
fetch?: typeof fetch;
|
|
@@ -18,6 +21,8 @@ export interface PaymentClientOptions {
|
|
|
18
21
|
allowLocalhost?: boolean;
|
|
19
22
|
/** How long pay() and recover() follow a running job before returning it. Default 120 s. */
|
|
20
23
|
followSeconds?: number;
|
|
24
|
+
/** Also follow payment_uncertain within followSeconds. Default false: return uncertainty to the caller [J13]. */
|
|
25
|
+
followPaymentUncertain?: boolean;
|
|
21
26
|
/** Time between polls while following a job. Default: the provider's Retry-After, or 2000 ms. */
|
|
22
27
|
pollMs?: number;
|
|
23
28
|
/** How long quote() and pay() wait out a busy provider (429 or 503) before giving up. Default 30 s. */
|
|
@@ -115,7 +120,7 @@ export declare class PaymentClient {
|
|
|
115
120
|
private confirm;
|
|
116
121
|
/** The first installed method that pays the entry. A method that throws does not match (fail closed). */
|
|
117
122
|
private methodFor;
|
|
118
|
-
/**
|
|
123
|
+
/** Spending policy, trusted verification [V1], and the wallet's on-chain budget must all pass. */
|
|
119
124
|
private checkLimits;
|
|
120
125
|
/**
|
|
121
126
|
* Polls get-result until the job finishes or followSeconds pass, at the provider's Retry-After pace.
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAoBA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -17,11 +17,12 @@
|
|
|
17
17
|
//
|
|
18
18
|
// The signer and the payment methods are strategies (strategies.ts). Every safety step stays here, so
|
|
19
19
|
// it holds whichever ones are plugged in.
|
|
20
|
-
import { bindingHash, checkChallenge, createJobUrl, IDEMPOTENCY_KEY, JOB_TOKEN, jobResultUrl, parseRetryAfter, } from "@stellar-agent-services/protocol";
|
|
20
|
+
import { bindingHash, canonicalSha256, checkChallenge, createJobUrl, IDEMPOTENCY_KEY, JOB_TOKEN, jobResultUrl, parseRetryAfter, } from "@stellar-agent-services/protocol";
|
|
21
21
|
import { decodePaymentRequiredHeader, encodePaymentSignatureHeader } from "@x402/core/http";
|
|
22
22
|
import { loadManifest } from "./manifest.js";
|
|
23
23
|
import { checkPolicy, PAY_ACTION, policyHash } from "./policy.js";
|
|
24
24
|
import { X402_EXACT_STELLAR, x402ExactStellar } from "./x402-exact-stellar.js";
|
|
25
|
+
import { matchesVerification } from "./verification.js";
|
|
25
26
|
/** The payment may or may not have gone through. Run recover(jobId); never pay again. */
|
|
26
27
|
export class PaymentUncertainError extends Error {
|
|
27
28
|
jobId;
|
|
@@ -120,7 +121,7 @@ export class PaymentClient {
|
|
|
120
121
|
const method = this.methodFor(requirements);
|
|
121
122
|
if (method === undefined)
|
|
122
123
|
challengeViolations.push(noMethod(requirements));
|
|
123
|
-
const limits = await this.checkLimits(requirements);
|
|
124
|
+
const limits = await this.checkLimits(requirements, manifest, manifestUrl);
|
|
124
125
|
const quote = {
|
|
125
126
|
manifestUrl,
|
|
126
127
|
manifest,
|
|
@@ -184,7 +185,7 @@ export class PaymentClient {
|
|
|
184
185
|
if (method === undefined)
|
|
185
186
|
throw new PaymentRefusedError(noMethod(quote.requirements));
|
|
186
187
|
// Limits are checked again: another payment may have run since the quote.
|
|
187
|
-
const decision = await this.checkLimits(quote.requirements);
|
|
188
|
+
const decision = await this.checkLimits(quote.requirements, quote.manifest, quote.manifestUrl);
|
|
188
189
|
if (!decision.allowed) {
|
|
189
190
|
await journal.append("refused", quote.jobId, hash, { reasons: decision.violations.map((v) => `${v.field}: ${v.message}`) });
|
|
190
191
|
throw new PaymentRefusedError(decision.violations.map((v) => v.message).join("; "));
|
|
@@ -364,15 +365,34 @@ export class PaymentClient {
|
|
|
364
365
|
}
|
|
365
366
|
});
|
|
366
367
|
}
|
|
367
|
-
/**
|
|
368
|
-
async checkLimits(requirements) {
|
|
368
|
+
/** Spending policy, trusted verification [V1], and the wallet's on-chain budget must all pass. */
|
|
369
|
+
async checkLimits(requirements, manifest, manifestUrl) {
|
|
369
370
|
const { policy, journal, signer } = this.options;
|
|
370
371
|
const terms = pick(requirements);
|
|
372
|
+
let verification;
|
|
373
|
+
if (policy.minVerificationScore !== undefined || policy.stellar.minProviderLevel !== undefined) {
|
|
374
|
+
const subject = {
|
|
375
|
+
network: terms.network,
|
|
376
|
+
payTo: terms.payTo,
|
|
377
|
+
manifestUrl,
|
|
378
|
+
manifestSha256: await canonicalSha256(manifest),
|
|
379
|
+
...(manifest.provider.agentId === undefined ? {} : { agentId: manifest.provider.agentId }),
|
|
380
|
+
};
|
|
381
|
+
try {
|
|
382
|
+
const evidence = await this.options.verificationSource?.read({ ...subject });
|
|
383
|
+
if (matchesVerification(evidence, subject))
|
|
384
|
+
verification = evidence;
|
|
385
|
+
}
|
|
386
|
+
catch {
|
|
387
|
+
// An unavailable source is missing evidence, never permission to sign [V1].
|
|
388
|
+
}
|
|
389
|
+
}
|
|
371
390
|
const decision = checkPolicy(policy, {
|
|
372
391
|
action: PAY_ACTION,
|
|
373
392
|
...terms,
|
|
374
393
|
amount: terms.amount ?? "0",
|
|
375
394
|
spentLast24h: journal.spentSince(new Date(Date.now() - 86400_000)),
|
|
395
|
+
...(verification === undefined ? {} : { verification }),
|
|
376
396
|
});
|
|
377
397
|
if (signer.budget === undefined || terms.amount === undefined)
|
|
378
398
|
return { ...decision, walletBudget: undefined };
|
|
@@ -401,8 +421,8 @@ export class PaymentClient {
|
|
|
401
421
|
async follow(baseUrl, jobId, token, job, retryAfter) {
|
|
402
422
|
const deadline = Date.now() + (this.options.followSeconds ?? 120) * 1000;
|
|
403
423
|
while ((job.status !== "succeeded" && job.status !== "failed") || (job.status === "succeeded" && job.output === undefined)) {
|
|
404
|
-
// Only
|
|
405
|
-
if (job.status === "payment_uncertain" || Date.now() >= deadline)
|
|
424
|
+
// Only provider reconciliation resolves uncertainty [J13]. Opt-in polling reads that same job [J11].
|
|
425
|
+
if ((job.status === "payment_uncertain" && this.options.followPaymentUncertain !== true) || Date.now() >= deadline)
|
|
406
426
|
return job;
|
|
407
427
|
const wait = this.options.pollMs ?? retryAfter ?? 2000;
|
|
408
428
|
await sleep(Math.min(wait, deadline - Date.now()));
|
package/dist/client.js.map
CHANGED
|
@@ -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
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACvG,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,iGAAiG;AACjG,sGAAsG;AACtG,6GAA6G;AAC7G,EAAE;AACF,wGAAwG;AACxG,4BAA4B;AAC5B,EAAE;AACF,oGAAoG;AACpG,4FAA4F;AAE5F,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,iGAAiG;AACjG,sGAAsG;AACtG,6GAA6G;AAC7G,EAAE;AACF,wGAAwG;AACxG,4BAA4B;AAC5B,EAAE;AACF,oGAAoG;AACpG,4FAA4F;AAE5F,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
package/dist/policy.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface SpendingPolicy {
|
|
|
17
17
|
/** Unix seconds. */
|
|
18
18
|
validAfter: number;
|
|
19
19
|
validUntil: number;
|
|
20
|
+
/** ERC-8196 name: the maximum allowed provider risk score, 0–100, lower is safer (erc-compatibility.md T4). */
|
|
20
21
|
minVerificationScore?: number;
|
|
21
22
|
stellar: {
|
|
22
23
|
network: StellarNetwork;
|
|
@@ -38,6 +39,11 @@ export interface PaymentRequest {
|
|
|
38
39
|
payTo: string;
|
|
39
40
|
/** What this policy already paid in the last 24 hours. */
|
|
40
41
|
spentLast24h: bigint;
|
|
42
|
+
/** Already authenticated by the caller's trusted verification source [V1]. */
|
|
43
|
+
verification?: {
|
|
44
|
+
riskScore?: number;
|
|
45
|
+
level?: number;
|
|
46
|
+
};
|
|
41
47
|
now?: Date;
|
|
42
48
|
}
|
|
43
49
|
export interface PolicyViolation {
|
package/dist/policy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAOA,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEpG,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,+GAA+G;IAC/G,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,EAAE;QACP,OAAO,EAAE,cAAc,CAAC;QACxB,+FAA+F;QAC/F,MAAM,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,KAAK,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;QAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,4GAA4G;QAC5G,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,YAAY,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,mFAAmF;IACnF,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,UAAU,aAAa,CAAC;AAIrC,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAa,GAAG,cAAc,CAe7G;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAElE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,cAAc,CAqC3F"}
|
package/dist/policy.js
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
// A failed check blocks the payment; it never passes silently. Amounts are in the asset's base
|
|
4
4
|
// units (USDC: 7 decimals), not a native value.
|
|
5
5
|
//
|
|
6
|
-
//
|
|
7
|
-
// - minVerificationScore and stellar.minProviderLevel are stored but not enforced yet: they need the
|
|
8
|
-
// risk source and Validation Registry reads.
|
|
6
|
+
// Configured verification limits require trusted evidence [V1], including when set to zero.
|
|
9
7
|
import { canonicalSha256, USDC_ASSET } from "@stellar-agent-services/protocol";
|
|
10
8
|
export const PAY_ACTION = "x402.pay";
|
|
11
9
|
const DAY_SECONDS = 86400;
|
|
@@ -56,6 +54,24 @@ export function checkPolicy(policy, request) {
|
|
|
56
54
|
refuse("maxValuePerTx", "the amount is above the per-payment limit");
|
|
57
55
|
if (request.spentLast24h + amount > BigInt(policy.maxValuePerDay))
|
|
58
56
|
refuse("maxValuePerDay", "the payment would exceed the 24-hour limit");
|
|
57
|
+
for (const [field, limit, observed, maximum] of [
|
|
58
|
+
["minVerificationScore", policy.minVerificationScore, request.verification?.riskScore, 100],
|
|
59
|
+
["stellar.minProviderLevel", policy.stellar.minProviderLevel, request.verification?.level, 3],
|
|
60
|
+
]) {
|
|
61
|
+
if (limit === undefined)
|
|
62
|
+
continue;
|
|
63
|
+
if (!Number.isInteger(limit) || limit < 0 || limit > maximum) {
|
|
64
|
+
refuse(field, `[V1] the verification limit must be an integer from 0 to ${maximum}`);
|
|
65
|
+
}
|
|
66
|
+
else if (observed === undefined || !Number.isInteger(observed) || observed < 0 || observed > maximum) {
|
|
67
|
+
refuse(field, "[V1] trusted verification evidence is missing or invalid");
|
|
68
|
+
}
|
|
69
|
+
else if (field === "minVerificationScore" ? observed > limit : observed < limit) {
|
|
70
|
+
refuse(field, field === "minVerificationScore"
|
|
71
|
+
? "[V1] the provider exceeds the permitted risk score"
|
|
72
|
+
: "[V1] the provider is below the required verification level");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
59
75
|
const allowed = violations.length === 0;
|
|
60
76
|
return { allowed, violations, needsApproval: allowed && amount > BigInt(policy.stellar.autoApproveUpTo) };
|
|
61
77
|
}
|
package/dist/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,EAAE;AACF,+FAA+F;AAC/F,gDAAgD;AAChD,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ConformanceLevel, StellarNetwork } from "@stellar-agent-services/protocol";
|
|
2
|
+
export interface VerificationSubject {
|
|
3
|
+
network: StellarNetwork;
|
|
4
|
+
payTo: string;
|
|
5
|
+
manifestUrl: string;
|
|
6
|
+
/** SHA-256 of the approved manifest's RFC 8785 canonical JSON. */
|
|
7
|
+
manifestSha256: string;
|
|
8
|
+
agentId?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface ProviderVerification extends VerificationSubject {
|
|
11
|
+
/** RFC 3339: when the source checked this provider, and when its evidence becomes too old to use. */
|
|
12
|
+
checkedAt: string;
|
|
13
|
+
expiresAt: string;
|
|
14
|
+
/** ERC-8126 risk score, 0–100, lower is better. Separate from the §8 conformance score. */
|
|
15
|
+
riskScore?: number;
|
|
16
|
+
/** Provider Standard §8: 0, Described (1), Payable (2), Recoverable (3). */
|
|
17
|
+
level?: ConformanceLevel;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Installed by the application, never selected by a provider. A source must authenticate its trusted
|
|
21
|
+
* validators, verify receipt hashes against registry records when used, and apply bounded network timeouts.
|
|
22
|
+
* Return undefined when there is no trustworthy evidence. Do not copy a manifest's claims into an answer.
|
|
23
|
+
*/
|
|
24
|
+
export interface VerificationSource {
|
|
25
|
+
read(subject: VerificationSubject): Promise<ProviderVerification | undefined>;
|
|
26
|
+
}
|
|
27
|
+
/** Unknown, stale or mismatched evidence never satisfies a configured minimum [V1]. */
|
|
28
|
+
export declare function matchesVerification(evidence: ProviderVerification | undefined, subject: VerificationSubject, now?: number): evidence is ProviderVerification;
|
|
29
|
+
//# sourceMappingURL=verification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../src/verification.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEzF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,qGAAqG;IACrG,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;CAC/E;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,OAAO,EAAE,mBAAmB,EAC5B,GAAG,SAAa,GACf,QAAQ,IAAI,oBAAoB,CAgBlC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// The application's trusted verification source [V1]. Provider-supplied badges or receipts alone are not proof.
|
|
2
|
+
// Sources authenticate their validator and receipt/registry data; the core binds their answer to this payment.
|
|
3
|
+
/** Unknown, stale or mismatched evidence never satisfies a configured minimum [V1]. */
|
|
4
|
+
export function matchesVerification(evidence, subject, now = Date.now()) {
|
|
5
|
+
if (evidence === undefined || evidence === null || typeof evidence !== "object")
|
|
6
|
+
return false;
|
|
7
|
+
if (evidence.network !== subject.network || evidence.payTo !== subject.payTo ||
|
|
8
|
+
evidence.manifestUrl !== subject.manifestUrl || evidence.manifestSha256 !== subject.manifestSha256 ||
|
|
9
|
+
evidence.agentId !== subject.agentId)
|
|
10
|
+
return false;
|
|
11
|
+
if (evidence.riskScore !== undefined &&
|
|
12
|
+
(!Number.isInteger(evidence.riskScore) || evidence.riskScore < 0 || evidence.riskScore > 100))
|
|
13
|
+
return false;
|
|
14
|
+
if (evidence.level !== undefined &&
|
|
15
|
+
(!Number.isInteger(evidence.level) || evidence.level < 0 || evidence.level > 3))
|
|
16
|
+
return false;
|
|
17
|
+
// Requiring an explicit time zone avoids interpreting a source's dates in the machine's local zone.
|
|
18
|
+
const timestamp = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/;
|
|
19
|
+
if (typeof evidence.checkedAt !== "string" || typeof evidence.expiresAt !== "string" ||
|
|
20
|
+
!timestamp.test(evidence.checkedAt) || !timestamp.test(evidence.expiresAt))
|
|
21
|
+
return false;
|
|
22
|
+
const checkedAt = Date.parse(evidence.checkedAt);
|
|
23
|
+
const expiresAt = Date.parse(evidence.expiresAt);
|
|
24
|
+
return Number.isFinite(checkedAt) && Number.isFinite(expiresAt) && checkedAt <= now && now < expiresAt;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../src/verification.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAChH,+GAA+G;AAgC/G,uFAAuF;AACvF,MAAM,UAAU,mBAAmB,CACjC,QAA0C,EAC1C,OAA4B,EAC5B,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAEhB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9F,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;QACxE,QAAQ,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc;QAClG,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IACvD,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;QAChC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,IAAI,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChH,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;QAC5B,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAClG,oGAAoG;IACpG,MAAM,SAAS,GAAG,sEAAsE,CAAC;IACzF,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ;QAChF,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7F,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC;AACzG,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stellar-agent-services/payment-client",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Buyer-side payment client: approval, spending policy, hash-chained journal, payment and job recovery (PoC).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"build": "tsc -b"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@stellar-agent-services/protocol": "0.1.
|
|
41
|
+
"@stellar-agent-services/protocol": "0.1.1",
|
|
42
42
|
"@stellar/stellar-sdk": "16.4.1",
|
|
43
43
|
"@x402/core": "2.28.0",
|
|
44
44
|
"@x402/stellar": "2.28.0",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"stellar-pay": "./dist/cli.js"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@stellar-agent-services/provider-kit": "0.1.
|
|
51
|
+
"@stellar-agent-services/provider-kit": "0.1.1",
|
|
52
52
|
"fake-indexeddb": "6.2.5"
|
|
53
53
|
}
|
|
54
54
|
}
|