@compose-market/sdk 0.8.2 → 0.8.5

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.
Files changed (128) hide show
  1. package/.speakeasy/a2a.arazzo.yaml +1 -1
  2. package/.speakeasy/memory.arazzo.yaml +1 -1
  3. package/.speakeasy/tests.arazzo.yaml +1 -1
  4. package/dist/errors.d.ts +2 -0
  5. package/dist/errors.d.ts.map +1 -0
  6. package/dist/errors.js +2 -0
  7. package/dist/errors.js.map +1 -0
  8. package/dist/events.d.ts +202 -0
  9. package/dist/events.d.ts.map +1 -0
  10. package/dist/events.js +70 -0
  11. package/dist/events.js.map +1 -0
  12. package/dist/index.d.ts +279 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +552 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/resources/accounts.d.ts +32 -0
  17. package/dist/resources/accounts.d.ts.map +1 -0
  18. package/dist/resources/accounts.js +128 -0
  19. package/dist/resources/accounts.js.map +1 -0
  20. package/dist/resources/agent.d.ts +46 -0
  21. package/dist/resources/agent.d.ts.map +1 -0
  22. package/dist/resources/agent.js +465 -0
  23. package/dist/resources/agent.js.map +1 -0
  24. package/dist/resources/channels.d.ts +24 -0
  25. package/dist/resources/channels.d.ts.map +1 -0
  26. package/dist/resources/channels.js +74 -0
  27. package/dist/resources/channels.js.map +1 -0
  28. package/dist/resources/directory.d.ts +43 -0
  29. package/dist/resources/directory.d.ts.map +1 -0
  30. package/dist/resources/directory.js +97 -0
  31. package/dist/resources/directory.js.map +1 -0
  32. package/dist/resources/dispenser.d.ts +25 -0
  33. package/dist/resources/dispenser.d.ts.map +1 -0
  34. package/dist/resources/dispenser.js +56 -0
  35. package/dist/resources/dispenser.js.map +1 -0
  36. package/dist/resources/feedback.d.ts +35 -0
  37. package/dist/resources/feedback.d.ts.map +1 -0
  38. package/dist/resources/feedback.js +127 -0
  39. package/dist/resources/feedback.js.map +1 -0
  40. package/dist/resources/inference.d.ts +206 -0
  41. package/dist/resources/inference.d.ts.map +1 -0
  42. package/dist/resources/inference.js +1049 -0
  43. package/dist/resources/inference.js.map +1 -0
  44. package/dist/resources/instrumentation.d.ts +29 -0
  45. package/dist/resources/instrumentation.d.ts.map +1 -0
  46. package/dist/resources/instrumentation.js +43 -0
  47. package/dist/resources/instrumentation.js.map +1 -0
  48. package/dist/resources/keys.d.ts +56 -0
  49. package/dist/resources/keys.d.ts.map +1 -0
  50. package/dist/resources/keys.js +186 -0
  51. package/dist/resources/keys.js.map +1 -0
  52. package/dist/resources/local.d.ts +56 -0
  53. package/dist/resources/local.d.ts.map +1 -0
  54. package/dist/resources/local.js +163 -0
  55. package/dist/resources/local.js.map +1 -0
  56. package/dist/resources/memory.d.ts +249 -0
  57. package/dist/resources/memory.d.ts.map +1 -0
  58. package/dist/resources/memory.js +217 -0
  59. package/dist/resources/memory.js.map +1 -0
  60. package/dist/resources/models.d.ts +45 -0
  61. package/dist/resources/models.d.ts.map +1 -0
  62. package/dist/resources/models.js +101 -0
  63. package/dist/resources/models.js.map +1 -0
  64. package/dist/resources/permissions.d.ts +23 -0
  65. package/dist/resources/permissions.d.ts.map +1 -0
  66. package/dist/resources/permissions.js +69 -0
  67. package/dist/resources/permissions.js.map +1 -0
  68. package/dist/resources/receipts.d.ts +23 -0
  69. package/dist/resources/receipts.d.ts.map +1 -0
  70. package/dist/resources/receipts.js +48 -0
  71. package/dist/resources/receipts.js.map +1 -0
  72. package/dist/resources/session-events.d.ts +51 -0
  73. package/dist/resources/session-events.d.ts.map +1 -0
  74. package/dist/resources/session-events.js +404 -0
  75. package/dist/resources/session-events.js.map +1 -0
  76. package/dist/resources/settlement.d.ts +21 -0
  77. package/dist/resources/settlement.d.ts.map +1 -0
  78. package/dist/resources/settlement.js +30 -0
  79. package/dist/resources/settlement.js.map +1 -0
  80. package/dist/resources/system.d.ts +9 -0
  81. package/dist/resources/system.d.ts.map +1 -0
  82. package/dist/resources/system.js +19 -0
  83. package/dist/resources/system.js.map +1 -0
  84. package/dist/resources/webhooks.d.ts +27 -0
  85. package/dist/resources/webhooks.d.ts.map +1 -0
  86. package/dist/resources/webhooks.js +78 -0
  87. package/dist/resources/webhooks.js.map +1 -0
  88. package/dist/resources/workflow.d.ts +43 -0
  89. package/dist/resources/workflow.d.ts.map +1 -0
  90. package/dist/resources/workflow.js +284 -0
  91. package/dist/resources/workflow.js.map +1 -0
  92. package/dist/resources/x402.d.ts +113 -0
  93. package/dist/resources/x402.d.ts.map +1 -0
  94. package/dist/resources/x402.js +231 -0
  95. package/dist/resources/x402.js.map +1 -0
  96. package/dist/tools/index.d.ts +55 -0
  97. package/dist/tools/index.d.ts.map +1 -0
  98. package/dist/tools/index.js +51 -0
  99. package/dist/tools/index.js.map +1 -0
  100. package/dist/types/index.d.ts +1859 -0
  101. package/dist/types/index.d.ts.map +1 -0
  102. package/dist/types/index.js +14 -0
  103. package/dist/types/index.js.map +1 -0
  104. package/dist/version.d.ts +9 -0
  105. package/dist/version.d.ts.map +1 -0
  106. package/dist/version.js +9 -0
  107. package/dist/version.js.map +1 -0
  108. package/generated/inference/esm/lib/config.d.ts +3 -3
  109. package/generated/inference/esm/lib/config.js +3 -3
  110. package/generated/inference/package.json +1 -1
  111. package/generated/inference/src/lib/config.ts +3 -3
  112. package/generated/manowar/esm/lib/config.d.ts +3 -3
  113. package/generated/manowar/esm/lib/config.js +3 -3
  114. package/generated/manowar/package.json +1 -1
  115. package/generated/manowar/src/lib/config.ts +3 -3
  116. package/generated/memory/esm/lib/config.d.ts +3 -3
  117. package/generated/memory/esm/lib/config.js +3 -3
  118. package/generated/memory/package.json +1 -1
  119. package/generated/memory/src/lib/config.ts +3 -3
  120. package/generated/x402/esm/lib/config.d.ts +3 -3
  121. package/generated/x402/esm/lib/config.js +3 -3
  122. package/generated/x402/package.json +1 -1
  123. package/generated/x402/src/lib/config.ts +3 -3
  124. package/package.json +6 -6
  125. package/specs/inference.openapi.yaml +1 -1
  126. package/specs/manowar.openapi.yaml +1 -1
  127. package/specs/memory.openapi.yaml +1 -1
  128. package/specs/x402.openapi.yaml +1 -1
package/dist/index.js ADDED
@@ -0,0 +1,552 @@
1
+ /**
2
+ * `@compose-market/sdk` — Official SDK for Compose Market.
3
+ *
4
+ * Exposes the canonical header contract (`Authorization: Bearer compose-<jwt>`,
5
+ * `x-session-user-address`, `x-chain-id`) that powers Compose's first-party
6
+ * apps (web/, mesh/) and lets any third-party integrator embed:
7
+ *
8
+ * - Compose Key lifecycle (create / list / get / revoke, session metadata)
9
+ * - Multi-provider model catalog (list / listAll / search / get / getParams)
10
+ * - Native inference (chat.completions, responses, embeddings, images,
11
+ * audio.speech, audio.transcriptions, videos) with SSE streaming,
12
+ * typed tool-call deltas and reasoning deltas, typed cost receipts, and
13
+ * live session-budget updates emitted on every response.
14
+ * - x402 facilitator access (supported / chains / verify / settle) and typed
15
+ * decoders for PAYMENT-REQUIRED, PAYMENT-RESPONSE, X-Receipt.
16
+ * - Agent-first runtime memory loop (`sdk.memory.context`,
17
+ * `sdk.memory.recordTurn`, `sdk.memory.remember`, `sdk.memory.loop`) for
18
+ * compact pre-turn recall, post-turn persistence, and durable facts.
19
+ * - SSE session events (`sdk.session.events`) for budget depletion and
20
+ * expiry notifications, dispatched on the typed event bus as well.
21
+ * - Webhook signature verification (HMAC-SHA256, Stripe-style header).
22
+ * - Feedback/reputation submission and summaries for x402 flows, endpoints,
23
+ * models, agents, and workflows without coupling feedback to settlement.
24
+ *
25
+ * Design:
26
+ * - The orchestration client uses platform `fetch`, WebCrypto, TextDecoder,
27
+ * and ReadableStream. Generated OpenAPI subpath clients use Speakeasy's
28
+ * Zod-backed runtime validation.
29
+ * - Identity is whatever the integrator already has. The SDK does NOT call a
30
+ * wallet, does NOT request signatures, does NOT run KYC. The end-user's
31
+ * wallet address — produced by whatever auth stack the integrator already
32
+ * uses — is trusted in the same exact way our first-party apps trust it —
33
+ * via the `x-session-user-address` header. The Compose Key JWT returned by
34
+ * `keys.create(...)` is the real cryptographic identity from that point on.
35
+ * - Every billable call returns a `Completion<T>` carrying the parsed
36
+ * body, the settlement receipt (if any), the request id, the live session
37
+ * budget snapshot, the session-invalid reason (if any), and the raw
38
+ * Response so integrators can read non-standard headers without parsing.
39
+ * - Persisted session tokens survive page reloads when a storage adapter is
40
+ * provided (browser `localStorage` is auto-detected).
41
+ */
42
+ import { applySdkClientHeaders, extractPaymentRequired, HttpClient, normalizeAtomicAmount, } from "@compose-market/core/http";
43
+ import { KeysResource } from "./resources/keys.js";
44
+ import { ModelsResource } from "./resources/models.js";
45
+ import { InferenceResource } from "./resources/inference.js";
46
+ import { X402Resource } from "./resources/x402.js";
47
+ import { WebhooksResource } from "./resources/webhooks.js";
48
+ import { SessionEventsResource } from "./resources/session-events.js";
49
+ import { AgentResource } from "./resources/agent.js";
50
+ import { WorkflowResource } from "./resources/workflow.js";
51
+ import { MemoryResource } from "./resources/memory.js";
52
+ import { FeedbackResource } from "./resources/feedback.js";
53
+ import { DirectoryResource } from "./resources/directory.js";
54
+ import { SystemResource } from "./resources/system.js";
55
+ import { LocalResource } from "./resources/local.js";
56
+ import { DispenserResource } from "./resources/dispenser.js";
57
+ import { SettlementResource } from "./resources/settlement.js";
58
+ import { PermissionsResource } from "./resources/permissions.js";
59
+ import { AccountsResource } from "./resources/accounts.js";
60
+ import { ChannelsResource } from "./resources/channels.js";
61
+ import { ReceiptsResource } from "./resources/receipts.js";
62
+ import { instrumentBillableResponse } from "./resources/instrumentation.js";
63
+ import { encodePaymentSignature } from "./resources/x402.js";
64
+ import { BadRequestError } from "./errors.js";
65
+ import { createEventBus } from "./events.js";
66
+ import { resolveStorage, createMemoryStorage, buildTokenStorageKey, DEFAULT_TOKEN_SCOPE, } from "@compose-market/core/storage";
67
+ import { SDK_VERSION } from "./version.js";
68
+ export * from "./types/index.js";
69
+ export * from "./errors.js";
70
+ export { decodeReceiptHeader, extractReceiptFromResponse, parseReceiptEvent } from "@compose-market/core/sse/receipt";
71
+ export { extractSessionBudgetFromResponse } from "@compose-market/core/sse/budget";
72
+ export { streamEvents } from "@compose-market/core/sse/stream";
73
+ export { parseSSEStream, parse, format, named, done } from "@compose-market/core/transport";
74
+ export { create as createModelState, decode as decodeModelEvent, reduce as reduceModelState, } from "@compose-market/core/model";
75
+ export { create as createActivityState, decode as decodeActivityEvent, reduce as reduceActivityState, } from "@compose-market/core/activity";
76
+ export { createPrivateKeyX402EvmSigner, createPrivateKeyX402EvmWallet, createX402EvmSigner, encodePaymentPayload, encodePaymentSignature, } from "./resources/x402.js";
77
+ export { createMemoryStorage } from "@compose-market/core/storage";
78
+ export * as tools from "./tools/index.js";
79
+ export { parseToolEvent } from "./tools/index.js";
80
+ export { commands, msm } from "@compose-market/core";
81
+ const DEFAULT_RETRY = {
82
+ maxRetries: 2,
83
+ initialDelayMs: 500,
84
+ maxDelayMs: 8_000,
85
+ jitter: true,
86
+ };
87
+ function normalizeBaseUrl(value) {
88
+ return (value || "https://api.compose.market").replace(/\/+$/, "");
89
+ }
90
+ function normalizeChannelsUrl(value) {
91
+ return (value || "https://services.compose.market").replace(/\/+$/, "");
92
+ }
93
+ function channelHeaders(headers) {
94
+ const blocked = new Set([
95
+ "authorization",
96
+ "payment-signature",
97
+ "x-chain-id",
98
+ "x-run-id",
99
+ "x-session-user-address",
100
+ "x-x402-max-amount-wei",
101
+ "x-idempotency-key",
102
+ ]);
103
+ const kept = {};
104
+ for (const [key, value] of Object.entries(headers || {})) {
105
+ const lower = key.toLowerCase();
106
+ if (blocked.has(lower) || lower.startsWith("x-session-") || lower.startsWith("x-payment-")) {
107
+ continue;
108
+ }
109
+ kept[key] = value;
110
+ }
111
+ return kept;
112
+ }
113
+ function normalizeUserAddress(value) {
114
+ const trimmed = value.trim().toLowerCase();
115
+ if (!/^0x[a-f0-9]{40}$/.test(trimmed)) {
116
+ throw new BadRequestError({ message: "userAddress must be a valid 0x-prefixed EVM address" });
117
+ }
118
+ return trimmed;
119
+ }
120
+ function normalizeChainId(value) {
121
+ if (value === undefined || value === null)
122
+ return null;
123
+ if (!Number.isInteger(value) || value <= 0) {
124
+ throw new BadRequestError({ message: "chainId must be a positive integer" });
125
+ }
126
+ return value;
127
+ }
128
+ export class ComposeSDK {
129
+ /** The SDK version, sourced from package.json at build time. */
130
+ version = SDK_VERSION;
131
+ /** Resolved API base URL, trimmed of trailing slashes. */
132
+ baseUrl;
133
+ /** Resolved channels service URL, trimmed of trailing slashes. */
134
+ channelsUrl;
135
+ keys;
136
+ models;
137
+ inference;
138
+ x402;
139
+ webhooks;
140
+ session;
141
+ agent;
142
+ workflow;
143
+ memory;
144
+ feedback;
145
+ directory;
146
+ system;
147
+ local;
148
+ dispenser;
149
+ settlement;
150
+ permissions;
151
+ accounts;
152
+ channels;
153
+ receipts;
154
+ wallets;
155
+ /**
156
+ * Typed, in-memory event bus. Listeners registered here receive:
157
+ * - `budget` — live `x-session-budget-*` snapshot on every billable call.
158
+ * - `sessionInvalid` — `x-session-invalid` header set by the server.
159
+ * - `sessionActive` — SSE `session-active` heartbeat from `/api/session/events`.
160
+ * - `sessionExpired` — SSE `session-expired` frame from `/api/session/events`.
161
+ * - `receipt` — settlement receipt on every billable response / stream.
162
+ */
163
+ events;
164
+ http;
165
+ storage;
166
+ tokenScope;
167
+ userAddress;
168
+ chainId;
169
+ key;
170
+ x402Signer;
171
+ rawFetch;
172
+ userAgent;
173
+ constructor(options = {}) {
174
+ this.userAddress = options.userAddress ? normalizeUserAddress(options.userAddress) : null;
175
+ this.chainId = normalizeChainId(options.chainId);
176
+ this.baseUrl = normalizeBaseUrl(options.baseUrl);
177
+ this.channelsUrl = normalizeChannelsUrl(options.channelsUrl);
178
+ this.tokenScope = options.tokenScope ?? DEFAULT_TOKEN_SCOPE;
179
+ this.storage = resolveStorage(options.storage) ?? createMemoryStorage();
180
+ this.events = createEventBus({ logger: options.logger });
181
+ // Seed `key` in this priority:
182
+ // 1. explicit constructor option
183
+ // 2. persistent storage scoped to (address, chainId) if both known
184
+ // 3. null
185
+ if (options.key) {
186
+ this.key = options.key;
187
+ this.persistToken(options.key);
188
+ }
189
+ else if (this.userAddress && this.chainId !== null) {
190
+ this.key = this.storage.getItem(buildTokenStorageKey(this.tokenScope, this.userAddress, this.chainId));
191
+ }
192
+ else {
193
+ this.key = null;
194
+ }
195
+ const userAgent = options.userAgent
196
+ ? `@compose-market/sdk/${SDK_VERSION} ${options.userAgent}`
197
+ : `@compose-market/sdk/${SDK_VERSION}`;
198
+ this.rawFetch = options.fetch ?? globalThis.fetch.bind(globalThis);
199
+ this.userAgent = userAgent;
200
+ this.x402Signer = options.x402Signer ?? null;
201
+ this.http = new HttpClient({
202
+ baseUrl: this.baseUrl,
203
+ fetch: this.rawFetch,
204
+ timeoutMs: options.timeoutMs ?? 60_000,
205
+ defaultHeaders: { ...(options.defaultHeaders ?? {}) },
206
+ retry: { ...DEFAULT_RETRY, ...(options.retry ?? {}) },
207
+ userAgent,
208
+ logger: options.logger,
209
+ });
210
+ const channelHttp = new HttpClient({
211
+ baseUrl: this.channelsUrl,
212
+ fetch: this.rawFetch,
213
+ timeoutMs: options.timeoutMs ?? 60_000,
214
+ defaultHeaders: channelHeaders(options.defaultHeaders),
215
+ retry: { ...DEFAULT_RETRY, ...(options.retry ?? {}) },
216
+ userAgent,
217
+ logger: options.logger,
218
+ });
219
+ this.wallets = {
220
+ attach: (input) => {
221
+ this.userAddress = normalizeUserAddress(input.address);
222
+ this.chainId = normalizeChainId(input.chainId);
223
+ // Re-hydrate persisted token for the freshly-attached wallet.
224
+ const stored = this.storage.getItem(buildTokenStorageKey(this.tokenScope, this.userAddress, this.chainId));
225
+ if (stored)
226
+ this.key = stored;
227
+ },
228
+ current: () => ({ address: this.userAddress, chainId: this.chainId }),
229
+ clear: () => {
230
+ this.userAddress = null;
231
+ this.chainId = null;
232
+ this.key = null;
233
+ },
234
+ };
235
+ const getWallet = () => {
236
+ if (!this.userAddress) {
237
+ throw new BadRequestError({
238
+ message: "Wallet context is required. Call sdk.wallets.attach({ address, chainId }) first, or pass userAddress + chainId to the constructor.",
239
+ });
240
+ }
241
+ if (this.chainId === null) {
242
+ throw new BadRequestError({
243
+ message: "chainId is required. Call sdk.wallets.attach(...) or pass chainId to the constructor.",
244
+ });
245
+ }
246
+ return { address: this.userAddress, chainId: this.chainId };
247
+ };
248
+ const getWalletMaybe = () => ({
249
+ address: this.userAddress,
250
+ chainId: this.chainId,
251
+ });
252
+ this.keys = new KeysResource(this.http, {
253
+ getWallet,
254
+ getWalletMaybe,
255
+ setToken: (token) => {
256
+ this.key = token;
257
+ this.persistToken(token);
258
+ },
259
+ getToken: () => this.key,
260
+ clearToken: () => {
261
+ this.key = null;
262
+ this.deletePersistedToken();
263
+ },
264
+ });
265
+ this.models = new ModelsResource(this.http);
266
+ this.inference = new InferenceResource(this.http, {
267
+ getWalletMaybe,
268
+ getTokenMaybe: () => this.key,
269
+ getX402SignerMaybe: () => this.x402Signer,
270
+ events: this.events,
271
+ });
272
+ this.x402 = new X402Resource(this.http, {
273
+ getWalletMaybe,
274
+ getTokenMaybe: () => this.key,
275
+ }, (input, init) => this.fetch(input, { ...(init ?? {}), paymentMode: "x402" }));
276
+ this.webhooks = new WebhooksResource();
277
+ this.feedback = new FeedbackResource(this.http, {
278
+ getWalletMaybe,
279
+ getTokenMaybe: () => this.key,
280
+ });
281
+ this.directory = new DirectoryResource(this.http);
282
+ this.system = new SystemResource(this.http);
283
+ this.local = new LocalResource(this.http, {
284
+ getWalletMaybe,
285
+ getTokenMaybe: () => this.key,
286
+ });
287
+ this.dispenser = new DispenserResource(this.http, { getWalletMaybe });
288
+ this.settlement = new SettlementResource(this.http, {
289
+ getWalletMaybe,
290
+ getTokenMaybe: () => this.key,
291
+ });
292
+ this.permissions = new PermissionsResource(this.http, {
293
+ getWalletMaybe,
294
+ getTokenMaybe: () => this.key,
295
+ });
296
+ this.accounts = new AccountsResource(this.http, {
297
+ getWalletMaybe,
298
+ getTokenMaybe: () => this.key,
299
+ });
300
+ this.channels = new ChannelsResource(channelHttp, {
301
+ getWalletMaybe,
302
+ });
303
+ this.receipts = new ReceiptsResource(this.http, {
304
+ getWalletMaybe,
305
+ getTokenMaybe: () => this.key,
306
+ });
307
+ this.session = new SessionEventsNamespace(new SessionEventsResource(this.http, this.events), getWalletMaybe);
308
+ const agentWorkflowContext = {
309
+ baseUrl: this.baseUrl,
310
+ fetch: this.rawFetch,
311
+ http: this.http,
312
+ getWalletMaybe,
313
+ getTokenMaybe: () => this.key,
314
+ getX402SignerMaybe: () => this.x402Signer,
315
+ events: this.events,
316
+ userAgent,
317
+ };
318
+ this.agent = new AgentResource(agentWorkflowContext);
319
+ this.workflow = new WorkflowResource(agentWorkflowContext);
320
+ this.memory = new MemoryResource(this.http, {
321
+ getWalletMaybe,
322
+ getTokenMaybe: () => this.key,
323
+ });
324
+ }
325
+ persistToken(token) {
326
+ if (!this.userAddress || this.chainId === null)
327
+ return;
328
+ this.storage.setItem(buildTokenStorageKey(this.tokenScope, this.userAddress, this.chainId), token);
329
+ }
330
+ deletePersistedToken() {
331
+ if (!this.userAddress || this.chainId === null)
332
+ return;
333
+ this.storage.removeItem(buildTokenStorageKey(this.tokenScope, this.userAddress, this.chainId));
334
+ }
335
+ /**
336
+ * Drop-in `fetch` wrapper that attaches the canonical Compose header
337
+ * contract (`Authorization`, `x-session-user-address`, `x-chain-id`,
338
+ * SDK client headers) on every request and emits `budget` / `sessionInvalid` /
339
+ * `receipt` events on every response via the SDK event bus.
340
+ *
341
+ * Use this when you need to hit a Compose endpoint that isn't covered
342
+ * by a typed resource yet (agent/workflow runtime endpoints, workspace
343
+ * indexing, custom api/ routes). The URL may be absolute or relative to
344
+ * the SDK's `baseUrl`.
345
+ *
346
+ * Non-Compose URLs (absolute URLs whose host differs from `baseUrl`) are
347
+ * still passed through so this method is safe as a general-purpose fetch
348
+ * replacement; the budget event extraction is a no-op when the response
349
+ * doesn't carry `x-session-budget-*` headers.
350
+ */
351
+ async fetch(input, init = {}) {
352
+ const { x402MaxAmountWei, paymentSignature, paymentMode = "auto", x402Signer, key, userAddress, chainId, idempotencyKey, runId, timeoutMs: _timeoutMs, ...fetchInit } = init;
353
+ void _timeoutMs;
354
+ const headers = new Headers(fetchInit.headers);
355
+ const resolvedX402MaxAmountWei = x402MaxAmountWei
356
+ ?? headers.get("x-x402-max-amount-wei")
357
+ ?? undefined;
358
+ const token = paymentMode === "x402"
359
+ ? null
360
+ : "key" in init
361
+ ? key
362
+ : this.key;
363
+ if (token && !headers.has("Authorization")) {
364
+ headers.set("Authorization", `Bearer ${token}`);
365
+ }
366
+ const resolvedUserAddress = userAddress ? normalizeUserAddress(userAddress) : this.userAddress;
367
+ if (resolvedUserAddress && !headers.has("x-session-user-address")) {
368
+ headers.set("x-session-user-address", resolvedUserAddress);
369
+ }
370
+ const resolvedChainId = chainId === undefined ? this.chainId : normalizeChainId(chainId);
371
+ if (resolvedChainId !== null && !headers.has("x-chain-id")) {
372
+ headers.set("x-chain-id", String(resolvedChainId));
373
+ }
374
+ if (paymentSignature && !headers.has("PAYMENT-SIGNATURE")) {
375
+ headers.set("PAYMENT-SIGNATURE", encodePaymentSignature(paymentSignature));
376
+ }
377
+ if (resolvedX402MaxAmountWei && !headers.has("x-x402-max-amount-wei")) {
378
+ headers.set("x-x402-max-amount-wei", normalizeAtomicAmount(resolvedX402MaxAmountWei, "x402MaxAmountWei"));
379
+ }
380
+ if (idempotencyKey && !headers.has("x-idempotency-key")) {
381
+ headers.set("x-idempotency-key", idempotencyKey);
382
+ }
383
+ if (runId && !headers.has("x-run-id")) {
384
+ headers.set("x-run-id", runId);
385
+ }
386
+ applySdkClientHeaders(headers, this.userAgent);
387
+ // Support absolute URLs, relative paths, and Request objects alike.
388
+ let resolvedInput = input;
389
+ if (typeof input === "string") {
390
+ resolvedInput = input.startsWith("http://") || input.startsWith("https://")
391
+ ? input
392
+ : `${this.baseUrl}${input.startsWith("/") ? input : `/${input}`}`;
393
+ }
394
+ const response = await this.rawFetch(resolvedInput, { ...fetchInit, headers });
395
+ const signer = x402Signer ?? this.x402Signer;
396
+ if (response.status === 402 && paymentMode !== "key" && signer) {
397
+ const paymentRequiredHeader = response.headers.get("payment-required") ?? response.headers.get("PAYMENT-REQUIRED");
398
+ const paymentRequired = extractPaymentRequired(await safeReadJson(response.clone()), paymentRequiredHeader);
399
+ if (paymentRequired) {
400
+ const resolvedUrl = resolveUrlForFetchInput(this.baseUrl, resolvedInput);
401
+ const signed = await signer({
402
+ paymentRequired,
403
+ paymentRequiredHeader,
404
+ method: resolveMethodForFetchInput(input, fetchInit),
405
+ path: resolvePathForSigner(this.baseUrl, resolvedUrl),
406
+ url: resolvedUrl,
407
+ body: fetchInit.body,
408
+ userAddress: resolvedUserAddress,
409
+ chainId: resolvedChainId,
410
+ maxAmountWei: resolvedX402MaxAmountWei
411
+ ? normalizeAtomicAmount(resolvedX402MaxAmountWei, "x402MaxAmountWei")
412
+ : undefined,
413
+ });
414
+ const retryHeaders = new Headers(headers);
415
+ retryHeaders.delete("Authorization");
416
+ retryHeaders.set("PAYMENT-SIGNATURE", encodePaymentSignature(signed));
417
+ const retryResponse = await this.rawFetch(resolvedInput, { ...fetchInit, headers: retryHeaders });
418
+ instrumentBillableResponse({ getWalletMaybe: () => ({ address: this.userAddress, chainId: this.chainId }), getTokenMaybe: () => this.key, events: this.events }, retryResponse, undefined);
419
+ return retryResponse;
420
+ }
421
+ }
422
+ // Emit budget/receipt/invalid events when the response carries the
423
+ // relevant Compose headers. Pass `undefined` for the body since we
424
+ // haven't read it; receipt-from-body only fires when the caller later
425
+ // parses the JSON themselves. That's acceptable: header-based receipts
426
+ // are the authoritative path and they're present on every billable
427
+ // response.
428
+ instrumentBillableResponse({ getWalletMaybe: () => ({ address: this.userAddress, chainId: this.chainId }), getTokenMaybe: () => this.key, events: this.events }, response, undefined);
429
+ return response;
430
+ }
431
+ }
432
+ async function safeReadJson(response) {
433
+ try {
434
+ const text = await response.text();
435
+ if (!text)
436
+ return null;
437
+ try {
438
+ return JSON.parse(text);
439
+ }
440
+ catch {
441
+ return text;
442
+ }
443
+ }
444
+ catch {
445
+ return null;
446
+ }
447
+ }
448
+ function resolveUrlForFetchInput(baseUrl, input) {
449
+ if (typeof input === "string")
450
+ return input.startsWith("http://") || input.startsWith("https://") ? input : `${baseUrl}${input.startsWith("/") ? input : `/${input}`}`;
451
+ if (input instanceof URL)
452
+ return input.toString();
453
+ return input.url;
454
+ }
455
+ function resolvePathForSigner(baseUrl, resolvedUrl) {
456
+ const parsed = new URL(resolvedUrl, baseUrl);
457
+ const base = new URL(baseUrl);
458
+ return parsed.origin === base.origin ? `${parsed.pathname}${parsed.search}` : parsed.toString();
459
+ }
460
+ function resolveMethodForFetchInput(input, init) {
461
+ if (init.method)
462
+ return init.method.toUpperCase();
463
+ if (typeof input !== "string" && !(input instanceof URL))
464
+ return input.method.toUpperCase();
465
+ return "GET";
466
+ }
467
+ /**
468
+ * Thin ergonomic wrapper around `SessionEventsResource` so callers write
469
+ * `sdk.session.events({ ... })` with wallet defaults inferred from the SDK
470
+ * instance.
471
+ */
472
+ class SessionEventsNamespace {
473
+ resource;
474
+ getWalletMaybe;
475
+ constructor(resource, getWalletMaybe) {
476
+ this.resource = resource;
477
+ this.getWalletMaybe = getWalletMaybe;
478
+ }
479
+ /**
480
+ * Subscribe to `/api/session/events`. Yields `SessionActiveEvent` and
481
+ * `SessionExpiredEvent` until the signal aborts or the server ends the
482
+ * stream. The same events are also emitted on `sdk.events`.
483
+ *
484
+ * When `userAddress` / `chainId` are omitted, the SDK's currently attached
485
+ * wallet context is used. Abort via an `AbortController.signal`.
486
+ */
487
+ subscribe(opts = {}) {
488
+ const wallet = this.getWalletMaybe();
489
+ const userAddress = opts.userAddress ?? wallet.address;
490
+ const chainId = opts.chainId ?? wallet.chainId;
491
+ if (!userAddress) {
492
+ throw new BadRequestError({
493
+ message: "session.subscribe() needs a userAddress (either in opts or via sdk.wallets.attach).",
494
+ });
495
+ }
496
+ if (chainId === null || chainId === undefined) {
497
+ throw new BadRequestError({
498
+ message: "session.subscribe() needs a chainId (either in opts or via sdk.wallets.attach).",
499
+ });
500
+ }
501
+ return this.resource.subscribe({
502
+ userAddress,
503
+ chainId,
504
+ signal: opts.signal,
505
+ reconnectMaxDelayMs: opts.reconnectMaxDelayMs,
506
+ });
507
+ }
508
+ /**
509
+ * Shortcut: register a listener on the `sessionActive` + `sessionExpired`
510
+ * events produced by a subscription. Returns a disposer that aborts the
511
+ * underlying stream AND removes the listeners.
512
+ */
513
+ on(handlers, opts = {}) {
514
+ const controller = new AbortController();
515
+ const signal = mergeAbortSignals(opts.signal, controller.signal);
516
+ const iterable = this.subscribe({ ...opts, signal });
517
+ const unsubActive = handlers.active
518
+ ? this.resource.events.on("sessionActive", handlers.active)
519
+ : () => { };
520
+ const unsubExpired = handlers.expired
521
+ ? this.resource.events.on("sessionExpired", handlers.expired)
522
+ : () => { };
523
+ // Drive the iterator in the background; if the caller never reads it
524
+ // explicitly, the events still flow through the event bus.
525
+ (async () => {
526
+ try {
527
+ for await (const _event of iterable) {
528
+ void _event;
529
+ }
530
+ }
531
+ catch { /* aborted / retries exhausted */ }
532
+ })();
533
+ return () => {
534
+ unsubActive();
535
+ unsubExpired();
536
+ controller.abort();
537
+ };
538
+ }
539
+ }
540
+ function mergeAbortSignals(a, b) {
541
+ if (!a)
542
+ return b;
543
+ const c = new AbortController();
544
+ const forward = () => c.abort();
545
+ if (a.aborted || b.aborted)
546
+ c.abort();
547
+ a.addEventListener("abort", forward, { once: true });
548
+ b.addEventListener("abort", forward, { once: true });
549
+ return c.signal;
550
+ }
551
+ export default ComposeSDK;
552
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { APIPromise, HttpClient } from "@compose-market/core/http";
2
+ import type { AccountConnectInput, AccountConnectResponse, AccountDisconnectInput, AccountDisconnectResponse, AccountExecuteInput, AccountExecuteResponse, AccountListInput, AccountListResponse, AccountStatusInput, AccountStatusResponse, AccountToolkitActionsInput, AccountToolkitActionsResponse, AccountToolkitsInput, AccountToolkitsResponse } from "../types/index.js";
3
+ interface Context {
4
+ getWalletMaybe(): {
5
+ address: string | null;
6
+ chainId: number | null;
7
+ };
8
+ getTokenMaybe(): string | null;
9
+ }
10
+ interface Options {
11
+ signal?: AbortSignal;
12
+ timeoutMs?: number;
13
+ }
14
+ export declare class AccountToolkitsResource {
15
+ private readonly client;
16
+ constructor(client: HttpClient);
17
+ list(input?: AccountToolkitsInput, options?: Options): APIPromise<AccountToolkitsResponse>;
18
+ actions(toolkit: string, input?: AccountToolkitActionsInput, options?: Options): APIPromise<AccountToolkitActionsResponse>;
19
+ }
20
+ export declare class AccountsResource {
21
+ private readonly client;
22
+ private readonly ctx;
23
+ readonly toolkits: AccountToolkitsResource;
24
+ constructor(client: HttpClient, ctx: Context);
25
+ connect(input: AccountConnectInput, options?: Options): APIPromise<AccountConnectResponse>;
26
+ list(input: AccountListInput, options?: Options): APIPromise<AccountListResponse>;
27
+ status(input: AccountStatusInput, options?: Options): APIPromise<AccountStatusResponse>;
28
+ execute(input: AccountExecuteInput, options?: Options): APIPromise<AccountExecuteResponse>;
29
+ disconnect(input: AccountDisconnectInput, options?: Options): APIPromise<AccountDisconnectResponse>;
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounts.d.ts","sourceRoot":"","sources":["../../src/resources/accounts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAExE,OAAO,KAAK,EACR,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,0BAA0B,EAC1B,6BAA6B,EAC7B,oBAAoB,EACpB,uBAAuB,EAC1B,MAAM,mBAAmB,CAAC;AAE3B,UAAU,OAAO;IACb,cAAc,IAAI;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACrE,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,UAAU,OAAO;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAiCD,qBAAa,uBAAuB;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,IAAI,CAAC,KAAK,GAAE,oBAAyB,EAAE,OAAO,GAAE,OAAY,GAAG,UAAU,CAAC,uBAAuB,CAAC;IAUlG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,0BAA+B,EAAE,OAAO,GAAE,OAAY,GAAG,UAAU,CAAC,6BAA6B,CAAC;CASrI;AAED,qBAAa,gBAAgB;IAIrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJxB,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;gBAGtB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,OAAO;IAKjC,OAAO,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,GAAE,OAAY,GAAG,UAAU,CAAC,sBAAsB,CAAC;IAa9F,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,GAAE,OAAY,GAAG,UAAU,CAAC,mBAAmB,CAAC;IAarF,MAAM,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,GAAE,OAAY,GAAG,UAAU,CAAC,qBAAqB,CAAC;IAc3F,OAAO,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,GAAE,OAAY,GAAG,UAAU,CAAC,sBAAsB,CAAC;IAe9F,UAAU,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,GAAE,OAAY,GAAG,UAAU,CAAC,yBAAyB,CAAC;CAc1G"}