@intentfi/agent-sdk 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/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { IntentFiClient } from "./client";
2
- export type { ActiveSubmissionContext, ExecutionArtifactInput, Envelope, GatewayWalletType, PrepareActiveResult, SubmittedTransaction, TransportMode, WorkflowDetail, } from "./types";
1
+ export { DefaultX402PaymentManager, IntentFiClient } from "./client";
2
+ export type { ActiveOffchainContext, ActiveSubmissionContext, ExecutionArtifactInput, Envelope, GatewayWalletType, OffchainSubmissionResult, OffchainTypedData, PrepareActiveResult, SubmittedTransaction, TransportMode, WorkflowDetail, X402PaymentApproval, X402PaymentManager, X402PaymentPayload, X402PaymentPolicy, X402PaymentRequired, X402PaymentRequirement, X402PaymentRequestContext, X402PaymentSchemeHandler, X402SettlementResponse, } from "./types";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACrE,YAAY,EACV,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export { IntentFiClient } from "./client";
1
+ export { DefaultX402PaymentManager, IntentFiClient } from "./client";
package/dist/types.d.ts CHANGED
@@ -71,6 +71,52 @@ export type ActiveSubmissionContext = {
71
71
  }>;
72
72
  };
73
73
  };
74
+ export type OffchainTypedData = {
75
+ domain: Record<string, string | number | boolean | null>;
76
+ types: Record<string, Array<{
77
+ name: string;
78
+ type: string;
79
+ }>>;
80
+ primaryType: string;
81
+ message: Record<string, string | number | boolean | null>;
82
+ };
83
+ export type ActiveOffchainContext = {
84
+ protocolVersion: string;
85
+ submissionMode: "clientDirect";
86
+ workflowId: string;
87
+ batchId: string;
88
+ batchIndex: number;
89
+ operationId: string;
90
+ operationType: string;
91
+ status: string;
92
+ idempotencyKey: string;
93
+ typedData: OffchainTypedData;
94
+ submitRequestTemplate: {
95
+ url: string;
96
+ method: "POST";
97
+ headers: Record<string, string>;
98
+ };
99
+ reportAttestationTemplate: {
100
+ domainName: string;
101
+ domainVersion: string;
102
+ context: string;
103
+ hashSchemaVersion: string;
104
+ chainId: number;
105
+ expiresAtMs: number;
106
+ };
107
+ quoteExpiresAtMs?: number;
108
+ };
109
+ export type OffchainSubmissionResult = {
110
+ operationId: string;
111
+ status: string;
112
+ nextActionType: string;
113
+ externalOrderId?: string;
114
+ workflow?: WorkflowDetail;
115
+ wait?: {
116
+ kind: "ready" | "timeout";
117
+ retryAfterMs?: number;
118
+ };
119
+ };
74
120
  export type GatewayWalletType = "porto" | "base" | "eoa";
75
121
  export type ExecutionCallInput = {
76
122
  executionCallIndex: number;
@@ -108,4 +154,75 @@ export type SubmittedTransaction = {
108
154
  manifestCallIndex: number;
109
155
  txHash: string;
110
156
  };
157
+ export type X402ExtensionValue = {
158
+ info: Record<string, unknown>;
159
+ schema: Record<string, unknown>;
160
+ };
161
+ export type X402Extensions = Record<string, X402ExtensionValue>;
162
+ export type X402ResourceInfo = {
163
+ url: string;
164
+ description?: string;
165
+ mimeType?: string;
166
+ };
167
+ export type X402PaymentRequirement = {
168
+ scheme: string;
169
+ network: string;
170
+ amount: string;
171
+ asset: string;
172
+ payTo: string;
173
+ maxTimeoutSeconds: number;
174
+ extra?: Record<string, unknown>;
175
+ };
176
+ export type X402PaymentRequired = {
177
+ x402Version: 2;
178
+ error?: string;
179
+ resource: X402ResourceInfo;
180
+ accepts: X402PaymentRequirement[];
181
+ extensions?: X402Extensions;
182
+ };
183
+ export type X402PaymentPayload = {
184
+ x402Version: 2;
185
+ resource?: X402ResourceInfo;
186
+ accepted: X402PaymentRequirement;
187
+ payload: Record<string, unknown>;
188
+ extensions?: X402Extensions;
189
+ };
190
+ export type X402SettlementResponse = {
191
+ success: boolean;
192
+ errorReason?: string;
193
+ payer?: string;
194
+ transaction: string;
195
+ network: string;
196
+ extensions?: X402Extensions;
197
+ };
198
+ export type X402PaymentRequestContext = {
199
+ transport: TransportMode;
200
+ operation: string;
201
+ idempotencyKey?: string;
202
+ paymentRequired: X402PaymentRequired;
203
+ requirement: X402PaymentRequirement;
204
+ };
205
+ export type X402PaymentSchemeHandler = (args: {
206
+ context: X402PaymentRequestContext;
207
+ }) => Promise<Record<string, unknown>>;
208
+ export type X402PaymentApproval = (args: {
209
+ context: X402PaymentRequestContext;
210
+ }) => Promise<boolean> | boolean;
211
+ export type X402PaymentPolicy = {
212
+ maxAmountAtomic?: bigint;
213
+ allowedNetworks?: string[];
214
+ };
215
+ export type X402PaymentManager = {
216
+ buildPaymentPayload(args: {
217
+ transport: TransportMode;
218
+ operation: string;
219
+ idempotencyKey?: string;
220
+ paymentRequired: X402PaymentRequired;
221
+ }): Promise<X402PaymentPayload>;
222
+ onSettlement?(args: {
223
+ transport: TransportMode;
224
+ operation: string;
225
+ settlement: X402SettlementResponse;
226
+ }): Promise<void> | void;
227
+ };
111
228
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Hex } from "viem";
2
+ import type { X402PaymentSchemeHandler } from "./types";
3
+ type CliExactX402SignerConfig = {
4
+ payer: string;
5
+ privateKey: Hex;
6
+ minValiditySeconds?: number;
7
+ };
8
+ export declare function createCliExactX402SchemeHandler(config: CliExactX402SignerConfig): X402PaymentSchemeHandler;
9
+ export {};
10
+ //# sourceMappingURL=x402Signing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x402Signing.d.ts","sourceRoot":"","sources":["../src/x402Signing.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,KAAK,EAEV,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,GAAG,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AASF,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,wBAAwB,GAC/B,wBAAwB,CAoD1B"}
@@ -0,0 +1,107 @@
1
+ import { createHash } from "node:crypto";
2
+ import { privateKeyToAccount } from "viem/accounts";
3
+ const DEFAULT_MIN_VALIDITY_SECONDS = 30;
4
+ export function createCliExactX402SchemeHandler(config) {
5
+ const payer = normalizeLowercaseAddress(config.payer, "x402 payer");
6
+ const signer = privateKeyToAccount(config.privateKey);
7
+ const signerAddress = signer.address.toLowerCase();
8
+ if (signerAddress !== payer) {
9
+ throw new Error(`x402 payer (${payer}) does not match signer address (${signerAddress}).`);
10
+ }
11
+ const minValiditySeconds = Math.max(1, Math.trunc(config.minValiditySeconds ?? DEFAULT_MIN_VALIDITY_SECONDS));
12
+ const payloadCache = new Map();
13
+ return async ({ context }) => {
14
+ const cacheKey = buildCacheKey(context);
15
+ const now = Math.floor(Date.now() / 1000);
16
+ const cached = payloadCache.get(cacheKey);
17
+ if (cached && cached.validBeforeUnixSeconds > now) {
18
+ return cached.payload;
19
+ }
20
+ const validAfter = String(now);
21
+ const validityWindowSeconds = resolveValidityWindowSeconds(context.requirement.maxTimeoutSeconds, minValiditySeconds);
22
+ const validBeforeUnixSeconds = now + validityWindowSeconds;
23
+ const validBefore = String(validBeforeUnixSeconds);
24
+ const nonce = deriveDeterministicNonce({ context, payer, validAfter, validBefore });
25
+ const authorization = {
26
+ from: payer,
27
+ to: context.requirement.payTo,
28
+ value: context.requirement.amount,
29
+ validAfter,
30
+ validBefore,
31
+ nonce,
32
+ };
33
+ const signature = await signer.signMessage({
34
+ message: buildSignatureMessage({ context, authorization }),
35
+ });
36
+ const payload = {
37
+ signature,
38
+ authorization,
39
+ };
40
+ payloadCache.set(cacheKey, {
41
+ payload,
42
+ validBeforeUnixSeconds,
43
+ });
44
+ return payload;
45
+ };
46
+ }
47
+ function buildCacheKey(context) {
48
+ return sha256Hex(stableStringify({
49
+ transport: context.transport,
50
+ operation: context.operation,
51
+ idempotencyKey: context.idempotencyKey ?? null,
52
+ requirement: context.requirement,
53
+ }));
54
+ }
55
+ function deriveDeterministicNonce(args) {
56
+ return `0x${sha256Hex(stableStringify({
57
+ type: "intentfi-x402-cli-nonce-v1",
58
+ payer: args.payer,
59
+ transport: args.context.transport,
60
+ operation: args.context.operation,
61
+ idempotencyKey: args.context.idempotencyKey ?? null,
62
+ requirement: args.context.requirement,
63
+ validAfter: args.validAfter,
64
+ validBefore: args.validBefore,
65
+ }))}`;
66
+ }
67
+ function buildSignatureMessage(args) {
68
+ const digest = sha256Hex(stableStringify({
69
+ type: "intentfi-x402-cli-exact-signature-v1",
70
+ transport: args.context.transport,
71
+ operation: args.context.operation,
72
+ idempotencyKey: args.context.idempotencyKey ?? null,
73
+ requirement: args.context.requirement,
74
+ authorization: args.authorization,
75
+ }));
76
+ return `intentfi:x402:exact:${digest}`;
77
+ }
78
+ function normalizeLowercaseAddress(value, field) {
79
+ const normalized = value.trim().toLowerCase();
80
+ if (!/^0x[0-9a-f]{40}$/.test(normalized)) {
81
+ throw new Error(`${field} must be a lowercase 0x-prefixed EVM address.`);
82
+ }
83
+ return normalized;
84
+ }
85
+ function sha256Hex(value) {
86
+ return createHash("sha256").update(value).digest("hex");
87
+ }
88
+ function resolveValidityWindowSeconds(maxTimeoutSeconds, fallbackSeconds) {
89
+ const normalized = Math.trunc(maxTimeoutSeconds);
90
+ if (normalized > 0) {
91
+ // maxTimeoutSeconds is a server-advertised upper bound; never exceed it.
92
+ return normalized;
93
+ }
94
+ return fallbackSeconds;
95
+ }
96
+ function stableStringify(value) {
97
+ if (value === null || typeof value !== "object") {
98
+ return JSON.stringify(value);
99
+ }
100
+ if (Array.isArray(value)) {
101
+ return `[${value.map((entry) => stableStringify(entry)).join(",")}]`;
102
+ }
103
+ const record = value;
104
+ const keys = Object.keys(record).sort();
105
+ const entries = keys.map((key) => `${JSON.stringify(key)}:${stableStringify(record[key])}`);
106
+ return `{${entries.join(",")}}`;
107
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentfi/agent-sdk",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "TypeScript SDK and CLI for the IntentFi agentic DeFi gateway — create, monitor, and execute intent-based workflows via REST or MCP",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -30,12 +30,12 @@
30
30
  "README.md"
31
31
  ],
32
32
  "bin": {
33
- "intentfi": "./dist/cli.js"
33
+ "intentfi": "dist/cli.js"
34
34
  },
35
35
  "scripts": {
36
36
  "build": "tsc -p tsconfig.build.json",
37
37
  "prepublishOnly": "npm run build",
38
- "typecheck": "tsc --noEmit"
38
+ "typecheck": "tsc --noEmit && tsc -p tsconfig.parity.json --noEmit"
39
39
  },
40
40
  "dependencies": {
41
41
  "viem": "^2.45.1"