@aifinpay/agent 2.3.0 → 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.
- package/PAYMENT_RECEIPTS.md +194 -19
- package/README.md +58 -27
- package/dist/agentHistory.d.ts +9 -0
- package/dist/agentHistory.d.ts.map +1 -1
- package/dist/agentHistory.js +110 -16
- package/dist/agentHistory.js.map +1 -1
- package/dist/aifp1.d.ts +124 -17
- package/dist/aifp1.d.ts.map +1 -1
- package/dist/aifp1.js +580 -82
- package/dist/aifp1.js.map +1 -1
- package/dist/deploymentErrors.d.ts +5 -0
- package/dist/deploymentErrors.d.ts.map +1 -0
- package/dist/deploymentErrors.js +8 -0
- package/dist/deploymentErrors.js.map +1 -0
- package/dist/deploymentResolver.d.ts +2 -3
- package/dist/deploymentResolver.d.ts.map +1 -1
- package/dist/deploymentResolver.js +2 -6
- package/dist/deploymentResolver.js.map +1 -1
- package/dist/facilitators/index.d.ts +1 -1
- package/dist/facilitators/index.d.ts.map +1 -1
- package/dist/generated/solanaV14Deployments.generated.d.ts +1 -0
- package/dist/generated/solanaV14Deployments.generated.d.ts.map +1 -1
- package/dist/generated/solanaV14Deployments.generated.js +4 -2
- package/dist/generated/solanaV14Deployments.generated.js.map +1 -1
- package/dist/index.d.ts +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -3
- package/dist/index.js.map +1 -1
- package/dist/paymentChains.d.ts +95 -0
- package/dist/paymentChains.d.ts.map +1 -0
- package/dist/paymentChains.js +116 -0
- package/dist/paymentChains.js.map +1 -0
- package/dist/settlement.d.ts +5 -5
- package/dist/settlementSolanaV14.d.ts +135 -0
- package/dist/settlementSolanaV14.d.ts.map +1 -0
- package/dist/settlementSolanaV14.js +733 -0
- package/dist/settlementSolanaV14.js.map +1 -0
- package/dist/settlementV14.d.ts +9 -2
- package/dist/settlementV14.d.ts.map +1 -1
- package/dist/settlementV14.js +81 -14
- package/dist/settlementV14.js.map +1 -1
- package/dist/solanaDeploymentResolver.d.ts +2 -1
- package/dist/solanaDeploymentResolver.d.ts.map +1 -1
- package/dist/solanaDeploymentResolver.js +1 -32
- package/dist/solanaDeploymentResolver.js.map +1 -1
- package/dist/spendLedger.d.ts +74 -33
- package/dist/spendLedger.d.ts.map +1 -1
- package/dist/spendLedger.js +523 -130
- package/dist/spendLedger.js.map +1 -1
- package/dist/unifiedAgent.d.ts +17 -8
- package/dist/unifiedAgent.d.ts.map +1 -1
- package/dist/unifiedAgent.js +227 -42
- package/dist/unifiedAgent.js.map +1 -1
- package/package.json +3 -3
package/dist/spendLedger.d.ts
CHANGED
|
@@ -1,54 +1,95 @@
|
|
|
1
|
+
/** Exact trusted purchase context; a quote cannot select the ledger or cap. */
|
|
2
|
+
export interface SpendLedgerBinding {
|
|
3
|
+
apiBaseUrl: string;
|
|
4
|
+
paymentIssuer: string;
|
|
5
|
+
payer: string;
|
|
6
|
+
merchantId: string;
|
|
7
|
+
scope: string;
|
|
8
|
+
resource: string;
|
|
9
|
+
networkMode: string;
|
|
10
|
+
chain: string;
|
|
11
|
+
asset: string;
|
|
12
|
+
token: string;
|
|
13
|
+
grossAmount: string;
|
|
14
|
+
quoteId: string;
|
|
15
|
+
/** Trusted factory identity shared by EVM/Solana payer keys. */
|
|
16
|
+
walletIdentity?: string;
|
|
17
|
+
/** Independently sourced pre-sign rate/cap, bound only for Solana accounting. */
|
|
18
|
+
solanaAdmissionRateUsd?: string;
|
|
19
|
+
solanaMaxFeeLamports?: string;
|
|
20
|
+
solanaTransactionFeeLamports?: string;
|
|
21
|
+
/** Makes older parsers refuse the durable pre-quote phase. */
|
|
22
|
+
quoteAdmissionVersion?: "1";
|
|
23
|
+
}
|
|
24
|
+
export interface QuoteAdmission {
|
|
25
|
+
id: string;
|
|
26
|
+
ownerContext: string;
|
|
27
|
+
requestBody: string;
|
|
28
|
+
statement: string;
|
|
29
|
+
quoteJson?: string;
|
|
30
|
+
phase: "pending" | "monetary" | "terminal";
|
|
31
|
+
terminal?: "not-admitted" | "expired-unbroadcast";
|
|
32
|
+
wasReserved?: true;
|
|
33
|
+
originalBinding: SpendLedgerBinding;
|
|
34
|
+
}
|
|
1
35
|
export interface SpendLedger {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
reserve(usd: number, cap: number, windowMs: number): Promise<string | null>;
|
|
10
|
-
/** The payment happened. `actualUsd` corrects the estimate when known. */
|
|
36
|
+
reserve(usd: number, cap: number, windowMs: number, binding?: SpendLedgerBinding, admissionId?: string): Promise<string | null>;
|
|
37
|
+
beginQuoteAdmission?(binding: SpendLedgerBinding, ownerContext: string, create: () => Promise<{
|
|
38
|
+
requestBody: string;
|
|
39
|
+
statement: string;
|
|
40
|
+
}>): Promise<QuoteAdmission>;
|
|
41
|
+
adoptQuoteAdmission?(id: string, binding: SpendLedgerBinding, ownerContext: string, quoteJson: string): Promise<void>;
|
|
42
|
+
closeQuoteAdmission?(id: string, binding: SpendLedgerBinding, ownerContext: string, terminal: "not-admitted" | "expired-unbroadcast", quoteJson?: string): Promise<void>;
|
|
11
43
|
commit(id: string, actualUsd?: number): Promise<void>;
|
|
12
|
-
/**
|
|
44
|
+
/** Caller must prove settlement never broadcast or reverted. */
|
|
13
45
|
release(id: string): Promise<void>;
|
|
14
|
-
/** Settled plus outstanding, over the window. */
|
|
15
46
|
total(windowMs: number): Promise<number>;
|
|
47
|
+
/** Required by capped v1.4 callers; old custom adapters fail before broadcast. */
|
|
48
|
+
prepare?(id: string, txRef: string, binding: SpendLedgerBinding): Promise<void>;
|
|
49
|
+
assertRecovery?(id: string, txRef: string, binding: SpendLedgerBinding): Promise<void>;
|
|
50
|
+
complete?(id: string, txRef: string, binding: SpendLedgerBinding): Promise<void>;
|
|
51
|
+
/** Exact canonical finalized failure only; retains an immutable fee-only ID. */
|
|
52
|
+
finalizeFailure?(id: string, txRef: string, binding: SpendLedgerBinding, feeUsd: number): Promise<void>;
|
|
16
53
|
}
|
|
17
|
-
/**
|
|
18
|
-
* In-process ledger. Correct for one process, forgotten on restart.
|
|
19
|
-
*
|
|
20
|
-
* Kept because it is the right answer when no daily cap is set — there is
|
|
21
|
-
* nothing to remember — and because a test should not need a filesystem.
|
|
22
|
-
*/
|
|
54
|
+
/** One-process implementation; use one shared instance or the local file ledger. */
|
|
23
55
|
export declare class MemorySpendLedger implements SpendLedger {
|
|
24
56
|
private entries;
|
|
25
|
-
|
|
57
|
+
private tail;
|
|
58
|
+
private serial;
|
|
59
|
+
reserve(usd: number, cap: number, windowMs: number, binding?: SpendLedgerBinding, admissionId?: string): Promise<string | null>;
|
|
26
60
|
commit(id: string, actualUsd?: number): Promise<void>;
|
|
27
61
|
release(id: string): Promise<void>;
|
|
28
62
|
total(windowMs: number): Promise<number>;
|
|
63
|
+
prepare(id: string, txRef: string, binding: SpendLedgerBinding): Promise<void>;
|
|
64
|
+
assertRecovery(id: string, txRef: string, binding: SpendLedgerBinding): Promise<void>;
|
|
65
|
+
complete(id: string, txRef: string, binding: SpendLedgerBinding): Promise<void>;
|
|
66
|
+
finalizeFailure(id: string, txRef: string, binding: SpendLedgerBinding, feeUsd: number): Promise<void>;
|
|
67
|
+
beginQuoteAdmission(binding: SpendLedgerBinding, context: string, create: () => Promise<{
|
|
68
|
+
requestBody: string;
|
|
69
|
+
statement: string;
|
|
70
|
+
}>): Promise<QuoteAdmission>;
|
|
71
|
+
adoptQuoteAdmission(id: string, binding: SpendLedgerBinding, context: string, quoteJson: string): Promise<void>;
|
|
72
|
+
closeQuoteAdmission(id: string, binding: SpendLedgerBinding, context: string, terminal: "not-admitted" | "expired-unbroadcast", quoteJson?: string): Promise<void>;
|
|
29
73
|
}
|
|
30
|
-
/**
|
|
31
|
-
* A ledger on disk, so a restart does not hand the agent its allowance again.
|
|
32
|
-
*
|
|
33
|
-
* Read-modify-write is guarded by an exclusive lock file, which is atomic on a
|
|
34
|
-
* local filesystem: `open(..., "wx")` either creates the file or fails, with no
|
|
35
|
-
* window in between. That covers several processes on one host, which is what
|
|
36
|
-
* a restart, a cron and a worker pool actually are.
|
|
37
|
-
*
|
|
38
|
-
* It does NOT cover several hosts — a lock file on a network filesystem is not
|
|
39
|
-
* a lock. An agent fleet spanning machines should pass its own SpendLedger
|
|
40
|
-
* backed by something that can answer for all of them; that is why this is an
|
|
41
|
-
* interface rather than a class the SDK insists on.
|
|
42
|
-
*/
|
|
74
|
+
/** Shared cap for processes on one local filesystem; never a cross-host lock. */
|
|
43
75
|
export declare class FileSpendLedger implements SpendLedger {
|
|
44
76
|
private readonly path;
|
|
45
77
|
constructor(path: string);
|
|
46
|
-
/** Default location, one file per agent address. */
|
|
47
78
|
static forAgent(address: string): FileSpendLedger;
|
|
48
79
|
private withLock;
|
|
49
|
-
reserve(usd: number, cap: number, windowMs: number): Promise<string | null>;
|
|
80
|
+
reserve(usd: number, cap: number, windowMs: number, binding?: SpendLedgerBinding, admissionId?: string): Promise<string | null>;
|
|
50
81
|
commit(id: string, actualUsd?: number): Promise<void>;
|
|
51
82
|
release(id: string): Promise<void>;
|
|
52
83
|
total(windowMs: number): Promise<number>;
|
|
84
|
+
prepare(id: string, txRef: string, binding: SpendLedgerBinding): Promise<void>;
|
|
85
|
+
assertRecovery(id: string, txRef: string, binding: SpendLedgerBinding): Promise<void>;
|
|
86
|
+
complete(id: string, txRef: string, binding: SpendLedgerBinding): Promise<void>;
|
|
87
|
+
finalizeFailure(id: string, txRef: string, binding: SpendLedgerBinding, feeUsd: number): Promise<void>;
|
|
88
|
+
beginQuoteAdmission(binding: SpendLedgerBinding, context: string, create: () => Promise<{
|
|
89
|
+
requestBody: string;
|
|
90
|
+
statement: string;
|
|
91
|
+
}>): Promise<QuoteAdmission>;
|
|
92
|
+
adoptQuoteAdmission(id: string, binding: SpendLedgerBinding, context: string, quoteJson: string): Promise<void>;
|
|
93
|
+
closeQuoteAdmission(id: string, binding: SpendLedgerBinding, context: string, terminal: "not-admitted" | "expired-unbroadcast", quoteJson?: string): Promise<void>;
|
|
53
94
|
}
|
|
54
95
|
//# sourceMappingURL=spendLedger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spendLedger.d.ts","sourceRoot":"","sources":["../src/spendLedger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spendLedger.d.ts","sourceRoot":"","sources":["../src/spendLedger.ts"],"names":[],"mappings":"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"}
|