@402flow/sdk 0.1.0-alpha.14 → 0.1.0-alpha.16

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 CHANGED
@@ -1,6 +1,8 @@
1
1
  # @402flow/sdk
2
2
 
3
- Node.js SDK for making governed paid HTTP requests through the 402flow control plane.
3
+ Paid HTTP SDK for AI agents with an inspectable prepare/execute flow.
4
+
5
+ It uses the 402flow control plane as the governance and execution backend, but the main developer surface is a small client for preparing and executing paid HTTP requests.
4
6
 
5
7
  ## Install
6
8
 
@@ -8,9 +10,11 @@ Node.js SDK for making governed paid HTTP requests through the 402flow control p
8
10
  npm install @402flow/sdk
9
11
  ```
10
12
 
13
+ The published package supports Node 20+.
14
+
11
15
  ## Overview
12
16
 
13
- `@402flow/sdk` is built for AI agents and other callers that need to check, prepare, and execute paid HTTP requests without embedding control-plane or protocol-specific logic in the host.
17
+ `@402flow/sdk` is built for AI agents and other callers that need to inspect, prepare, and execute paid HTTP requests without embedding payment-protocol or governance logic in the host.
14
18
 
15
19
  The SDK has one core client, `AgentPayClient`, and three main calls:
16
20
 
@@ -25,16 +29,46 @@ Use `preparePaidRequest(...)` plus `executePreparedRequest(...)` when the caller
25
29
 
26
30
  The package also includes `AgentHarness`, an optional preparedId-based wrapper for tool hosts. It is a convenience layer on top of `AgentPayClient`, not part of the core client API.
27
31
 
32
+ ## Runtime Notes
33
+
34
+ Two constraints matter early in real integrations:
35
+
36
+ 1. paid prepare and execute flows require replayable request bodies
37
+ 2. the current replayable body types are `string` and `URLSearchParams`
38
+
39
+ That means JSON payloads should be sent as strings, and form-style payloads should be sent as `URLSearchParams`.
40
+
41
+ The SDK exports small helpers for that:
42
+
43
+ ```ts
44
+ import {
45
+ createFormUrlEncodedBody,
46
+ createJsonRequestBody,
47
+ } from '@402flow/sdk';
48
+
49
+ const jsonBody = createJsonRequestBody({
50
+ prompt: 'foggy coastline',
51
+ });
52
+
53
+ const formBody = createFormUrlEncodedBody({
54
+ prompt: 'foggy coastline',
55
+ style: 'noir',
56
+ tags: ['coast', 'mist'],
57
+ });
58
+ ```
59
+
60
+ `FormData`, `Blob`, streams, and framework-specific body wrappers are not currently accepted in paid flows because the SDK has to replay the exact request body through preparation and execution. Convert those upstream into a stable string or `URLSearchParams` first.
61
+
28
62
  ## Create A Client
29
63
 
30
- Create one `AgentPayClient` per agent identity. The client binds the organization and agent selectors up front, and each request only carries request-specific context.
64
+ Create one `AgentPayClient` per agent identity. The client binds the 402flow control-plane location and the organization plus agent selectors up front, and each request only carries request-specific context.
31
65
 
32
66
  ### Bootstrap key
33
67
 
34
68
  For most SDK integrations, bootstrap-key auth is the recommended mode. The SDK exchanges it for a short-lived runtime token, caches that token, and refreshes it automatically before expiry.
35
69
 
36
70
  ```ts
37
- import { AgentPayClient } from '@402flow/sdk';
71
+ import { AgentPayClient, createJsonRequestBody } from '@402flow/sdk';
38
72
 
39
73
  const client = new AgentPayClient({
40
74
  controlPlaneBaseUrl: 'https://402flow.ai',
@@ -76,7 +110,7 @@ try {
76
110
  headers: {
77
111
  'content-type': 'application/json',
78
112
  },
79
- body: JSON.stringify({
113
+ body: createJsonRequestBody({
80
114
  date: '2026-03-25',
81
115
  }),
82
116
  },
@@ -86,8 +120,8 @@ try {
86
120
  },
87
121
  );
88
122
 
89
- const paidContent = await result.response.json();
90
- console.log('paid content:', paidContent);
123
+ const merchantBody = await result.response.json();
124
+ console.log('merchant response body:', merchantBody);
91
125
  } catch (error) {
92
126
  console.error('paid request failed', error);
93
127
  throw error;
@@ -96,11 +130,87 @@ try {
96
130
 
97
131
  If the merchant does not require payment for that exact request, the SDK returns a passthrough response. If the merchant returns a payable challenge, the SDK resolves payment through the control plane and returns a durable paid outcome.
98
132
 
133
+ `result.response` is the merchant HTTP response body, so its JSON shape is merchant-defined. SDK-owned paid metadata such as `paidRequestId`, `paymentAttemptId`, `receiptId`, and `receipt` stays on the returned SDK result rather than being injected into the merchant JSON body.
134
+
135
+ This means x402 and the SDK give you a stable place for the paid merchant response, but not a universal merchant-independent field name for the fulfilled content itself.
136
+
137
+ For the planned 402flow demo merchant specifically:
138
+
139
+ 1. simulated paid content lives under `merchantBody.content`
140
+ 2. debugging payment summary fields live under `merchantBody.payment`
141
+ 3. echoed accepted request input lives under `merchantBody.request`
142
+
143
+ ### How Agents Know What They Paid For
144
+
145
+ Practically, an agent should treat the merchant response in three layers:
146
+
147
+ 1. the SDK result carries durable payment metadata such as `receiptId` and `receipt`
148
+ 2. `result.response` carries the merchant fulfillment payload
149
+ 3. the merchant contract decides where the useful paid content lives inside that fulfillment payload
150
+
151
+ For the 402flow demo merchant, the rule is simple:
152
+
153
+ 1. read `merchantBody.content` for the simulated paid content
154
+ 2. read `merchantBody.payment` for debugging-oriented payment summary fields
155
+ 3. read `merchantBody.request` for the echoed accepted request shape
156
+
157
+ For arbitrary merchants, there is no x402-level guarantee that paid content lives under `content`, `data`, `result`, or any other universal field. The agent needs one of these sources of truth:
158
+
159
+ 1. parsed merchant challenge details from `prepared.challengeDetails` when the merchant publishes discovery data in the x402 challenge
160
+ 2. merchant-authoritative preparation hints from `prepared.hints`
161
+ 3. the merchant's out-of-band documented response contract
162
+ 4. caller-supplied `externalMetadata` when the caller already knows the endpoint schema
163
+
164
+ Important distinction:
165
+
166
+ 1. today, merchant challenge metadata can give the SDK authoritative request-shape hints such as body type, body fields, query params, examples, and notes
167
+ 2. today, it does not give the SDK a universal fulfilled-response schema for where paid content will live in the merchant response body
168
+
169
+ In other words:
170
+
171
+ 1. x402 tells the system how to pay
172
+ 2. the SDK preserves the resulting merchant response body
173
+ 3. the merchant contract tells the agent how to interpret that body
174
+
175
+ If an agent does not have enough contract information to interpret the returned merchant body safely, it should not invent a payload shape. It should surface the raw merchant body and explain what contract detail is still missing.
176
+
177
+ ### What The Agent Can See During Preparation
178
+
179
+ Yes, the agent can get merchant-authoritative request-shape hints when the merchant challenge includes them and the host uses `preparePaidRequest()`.
180
+
181
+ The SDK also exposes a parsed challenge summary on ready preparations:
182
+
183
+ 1. `prepared.challengeDetails.resource` for spec-level resource metadata like `url`, `description`, and `mimeType`
184
+ 2. `prepared.challengeDetails.accepts` for the full advertised payment candidates, not just the normalized primary requirement
185
+ 3. `prepared.challengeDetails.extensions` for merchant-published extensions such as Bazaar discovery metadata
186
+
187
+ Those hints are returned on `prepared.hints` and can include:
188
+
189
+ 1. `requestBodyType`
190
+ 2. `requestBodyExample`
191
+ 3. `requestBodyFields`
192
+ 4. `requestQueryParams`
193
+ 5. `requestPathParams`
194
+ 6. `notes`
195
+
196
+ Each hint includes attribution so the agent can tell whether it came from:
197
+
198
+ 1. `merchant_challenge` with authoritative status
199
+ 2. `external_metadata` with advisory status
200
+
201
+ So, practically:
202
+
203
+ 1. if you want the agent to see merchant-provided request-shape guidance, use `preparePaidRequest()` and pass both `prepared.challengeDetails` and `prepared.hints` through your host flow
204
+ 2. if the merchant publishes Bazaar discovery data, the host or agent can inspect `prepared.challengeDetails.extensions?.bazaar` for input and output examples straight from the challenge
205
+ 3. if you want the agent to know where fulfilled paid content lives in the final merchant response, that still needs a merchant-specific contract such as docs, host knowledge, or a convention like the demo merchant's `content` field
206
+
99
207
  ## Preparation Flow
100
208
 
101
209
  Use `preparePaidRequest()` when the caller needs a first-class pre-execution result before paying.
102
210
 
103
211
  ```ts
212
+ import { createJsonRequestBody } from '@402flow/sdk';
213
+
104
214
  const prepared = await client.preparePaidRequest(
105
215
  'https://merchant.example.com/images/generate',
106
216
  {
@@ -108,7 +218,7 @@ const prepared = await client.preparePaidRequest(
108
218
  headers: {
109
219
  'content-type': 'application/json',
110
220
  },
111
- body: JSON.stringify({
221
+ body: createJsonRequestBody({
112
222
  prompt: 'foggy coastline',
113
223
  }),
114
224
  },
@@ -130,7 +240,7 @@ This flow is useful when:
130
240
 
131
241
  1. an agent needs request-shape hints before attempting execution
132
242
  2. the caller wants normalized payment terms before paying
133
- 3. the caller wants to merge optional `discoveryMetadata` it already has from another system
243
+ 3. the caller wants to merge optional `externalMetadata` it already has from another system
134
244
 
135
245
  The common loop is:
136
246
 
@@ -142,6 +252,8 @@ The common loop is:
142
252
  If your system already has endpoint metadata, you can pass it in as optional context:
143
253
 
144
254
  ```ts
255
+ import { createJsonRequestBody } from '@402flow/sdk';
256
+
145
257
  const prepared = await client.preparePaidRequest(
146
258
  'https://merchant.example.com/images/generate',
147
259
  {
@@ -149,28 +261,26 @@ const prepared = await client.preparePaidRequest(
149
261
  headers: {
150
262
  'content-type': 'application/json',
151
263
  },
152
- body: JSON.stringify({
264
+ body: createJsonRequestBody({
153
265
  prompt: 'foggy coastline',
154
266
  }),
155
267
  },
156
268
  {
157
- discoveryMetadata: {
158
- provider: {
159
- requestBodyType: 'json',
160
- requestBodyFields: [
161
- {
162
- name: 'prompt',
163
- type: 'string',
164
- required: true,
165
- },
166
- ],
167
- },
269
+ externalMetadata: {
270
+ requestBodyType: 'json',
271
+ requestBodyFields: [
272
+ {
273
+ name: 'prompt',
274
+ type: 'string',
275
+ required: true,
276
+ },
277
+ ],
168
278
  },
169
279
  },
170
280
  );
171
281
  ```
172
282
 
173
- `discoveryMetadata` is optional caller context. It improves preparation when the caller already has structured endpoint knowledge, but it is not required for normal SDK use.
283
+ `externalMetadata` is optional caller context. It improves preparation when the caller already has structured endpoint knowledge, but it is not required for normal SDK use.
174
284
 
175
285
  ### What `ready` Means
176
286
 
@@ -187,6 +297,8 @@ That distinction matters:
187
297
  If preparation returns `kind === 'ready'`, execute that exact prepared request with `executePreparedRequest(prepared, ...)`.
188
298
 
189
299
  ```ts
300
+ import { createJsonRequestBody } from '@402flow/sdk';
301
+
190
302
  const prepared = await client.preparePaidRequest(
191
303
  'https://merchant.example.com/images/generate',
192
304
  {
@@ -194,7 +306,7 @@ const prepared = await client.preparePaidRequest(
194
306
  headers: {
195
307
  'content-type': 'application/json',
196
308
  },
197
- body: JSON.stringify({
309
+ body: createJsonRequestBody({
198
310
  prompt: 'foggy coastline',
199
311
  }),
200
312
  },
@@ -225,6 +337,8 @@ The preparation result distinguishes four important things:
225
337
 
226
338
  Each prepared hint carries `attribution` so callers can distinguish live merchant-authoritative data from advisory caller-supplied metadata.
227
339
 
340
+ In this model, payment terms come from the merchant challenge, optional request-shape enrichment comes from `externalMetadata`, and live confirmation is represented by the prepared `probe` result.
341
+
228
342
  ## Result And Error Semantics
229
343
 
230
344
  `fetchPaid()` and `executePreparedRequest()` either:
@@ -265,14 +379,44 @@ Most agent frameworks only need a small orchestration policy:
265
379
  ```text
266
380
  When using @402flow/sdk:
267
381
  - Always prepare a paid request before executing it.
268
- - If preparation returns revise_request, inspect validationIssues and hints, revise the request, and prepare again.
269
- - Do not invent discoveryMetadata unless the caller already has it from another system.
270
- - Use merchant-challenge hints to understand request shape, but use the task and available business context to choose actual parameter values.
271
- - Execute only after preparation shows the request is ready.
382
+ - Execute only when preparation returns nextAction as execute.
383
+ - If preparation returns treat_as_passthrough, do not pay and explain that paid execution is not required.
384
+ - If preparation returns revise_request, use validationIssues and hints to revise only when the task provides enough information; otherwise stop and explain what is still missing.
385
+ - Use externalMetadata only when the caller already has it from another system, and treat it as advisory when merchant-challenge hints disagree.
386
+ - Do not invent missing business parameters or execute the same prepared request twice unless the caller explicitly asks for a retry.
387
+ - After execution, read the stored execution result and report denied, pending, failed, or inconclusive outcomes clearly.
272
388
  ```
273
389
 
274
390
  That is the portable core SDK story. It should work across OpenAI, Claude, LangGraph, MCP, or custom workflows without requiring host-specific packaging in the SDK contract itself.
275
391
 
392
+ ## Tiny OpenAI Tools Host
393
+
394
+ If you want a minimal real host integration instead of the larger evaluation harness, use the tiny OpenAI Responses example in `examples/openai-tools-quickstart.mjs`.
395
+
396
+ For repo-local example runs, create `.env` from `.env.example` in the SDK root. The SDK examples load that file directly, so scenario runs stay self-contained in this repo whether they point at a local control plane or a hosted environment.
397
+
398
+ It keeps the host story narrow:
399
+
400
+ 1. create an `AgentPayClient`
401
+ 2. wrap it with optional `AgentHarness` so tool calls can pass `preparedId`
402
+ 3. expose `prepare_paid_request`, `execute_prepared_request`, and `get_execution_result`
403
+
404
+ Run it with one prompt. Either populate `.env` from `.env.example`, or export the same values in your shell for a one-off run:
405
+
406
+ ```bash
407
+ cp .env.example .env
408
+ export OPENAI_API_KEY="..."
409
+ export X402FLOW_CONTROL_PLANE_BASE_URL="https://402flow.ai"
410
+ export X402FLOW_ORGANIZATION="acme-labs"
411
+ export X402FLOW_AGENT="reporting-worker"
412
+ export X402FLOW_BOOTSTRAP_KEY="..."
413
+
414
+ npm run example:openai-tools-quickstart -- \
415
+ "Prepare and execute a paid POST request to https://nickeljoke.vercel.app/api/joke with JSON body {\"topic\":\"sdk integration\",\"tone\":\"dry\",\"audience\":\"platform engineers\"}"
416
+ ```
417
+
418
+ Use this when you want the shortest real host integration path. Use the full evaluation harness only when you need scenarios, transcripts, or repeated eval runs.
419
+
276
420
  ## Optional `AgentHarness`
277
421
 
278
422
  `AgentHarness` is an optional preparedId-based wrapper for tool hosts that do not want to manage in-flight prepared request objects themselves. It is a convenience layer on top of `AgentPayClient`, not a required abstraction.
@@ -24,7 +24,7 @@
24
24
  * - Execution is rejected locally unless the stored preparation is still active,
25
25
  * kind === 'ready', and nextAction === 'execute'.
26
26
  */
27
- import type { PaidRequestChallenge, SdkPreparationDiscoveryMetadata, SdkMerchantResponse, SdkPreparedNextAction, SdkPreparedPaidRequest, SdkPreparedPaymentRequirement, SdkPreparedRequestHints, SdkPreparedValidationIssue } from './contracts.js';
27
+ import type { PaidRequestChallenge, SdkExternalMetadata, SdkMerchantResponse, SdkPreparedChallengeDetails, SdkPreparedNextAction, SdkPreparedPaidRequest, SdkPreparedPaymentRequirement, SdkPreparedRequestHints, SdkPreparedValidationIssue } from './contracts.js';
28
28
  import type { AgentPayClient, ExecutePreparedRequest, FetchPaidFailureResponse, PaidResponse } from './index.js';
29
29
  export type AgentHarnessPreparedState = 'active' | 'consumed' | 'expired' | 'superseded';
30
30
  /** Local rejection reasons produced by the harness before the SDK is called. */
@@ -41,7 +41,7 @@ export type AgentHarnessPrepareInput = {
41
41
  method?: string;
42
42
  headers?: Record<string, string>;
43
43
  body?: string;
44
- discoveryMetadata?: SdkPreparationDiscoveryMetadata;
44
+ externalMetadata?: SdkExternalMetadata;
45
45
  };
46
46
  /** Host-facing input for the harness execute step. */
47
47
  export type AgentHarnessExecuteInput = {
@@ -68,6 +68,7 @@ export type AgentHarnessPreparedSummary = {
68
68
  state: 'active';
69
69
  kind: SdkPreparedPaidRequest['kind'];
70
70
  protocol: SdkPreparedPaidRequest['protocol'];
71
+ challengeDetails?: SdkPreparedChallengeDetails;
71
72
  paymentRequirement?: SdkPreparedPaymentRequirement;
72
73
  hints: SdkPreparedRequestHints;
73
74
  probe?: SdkPreparedPaidRequest['probe'];
@@ -110,6 +110,9 @@ function summarizePreparedRecord(record) {
110
110
  state: 'active',
111
111
  kind: record.prepared.kind,
112
112
  protocol: record.prepared.protocol,
113
+ ...(record.prepared.kind === 'ready' && record.prepared.challengeDetails
114
+ ? { challengeDetails: record.prepared.challengeDetails }
115
+ : {}),
113
116
  ...(record.prepared.kind === 'ready' && record.prepared.paymentRequirement
114
117
  ? { paymentRequirement: record.prepared.paymentRequirement }
115
118
  : {}),
@@ -201,8 +204,8 @@ export class AgentHarness {
201
204
  ...(input.headers ? { headers: input.headers } : {}),
202
205
  ...(input.body !== undefined ? { body: input.body } : {}),
203
206
  }, {
204
- ...(input.discoveryMetadata
205
- ? { discoveryMetadata: input.discoveryMetadata }
207
+ ...(input.externalMetadata
208
+ ? { externalMetadata: input.externalMetadata }
206
209
  : {}),
207
210
  });
208
211
  const createdAt = this.now();
@@ -1 +1 @@
1
- {"version":3,"file":"agent-harness.js","sourceRoot":"","sources":["../src/agent-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-harness.js","sourceRoot":"","sources":["../src/agent-harness.ts"],"names":[],"mappings":"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"}