@compose-market/sdk 0.2.0 → 0.4.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/CHANGELOG.md +54 -9
- package/dist/events.d.ts +115 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +68 -0
- package/dist/events.js.map +1 -0
- package/dist/http.d.ts +1 -1
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +4 -4
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +122 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +255 -18
- package/dist/index.js.map +1 -1
- package/dist/resources/agent.d.ts +43 -0
- package/dist/resources/agent.d.ts.map +1 -0
- package/dist/resources/agent.js +297 -0
- package/dist/resources/agent.js.map +1 -0
- package/dist/resources/inference.d.ts +34 -15
- package/dist/resources/inference.d.ts.map +1 -1
- package/dist/resources/inference.js +200 -55
- package/dist/resources/inference.js.map +1 -1
- package/dist/resources/instrumentation.d.ts +28 -0
- package/dist/resources/instrumentation.d.ts.map +1 -0
- package/dist/resources/instrumentation.js +43 -0
- package/dist/resources/instrumentation.js.map +1 -0
- package/dist/resources/keys.d.ts +4 -0
- package/dist/resources/keys.d.ts.map +1 -1
- package/dist/resources/keys.js +15 -5
- package/dist/resources/keys.js.map +1 -1
- package/dist/resources/session-events.d.ts +46 -0
- package/dist/resources/session-events.d.ts.map +1 -0
- package/dist/resources/session-events.js +199 -0
- package/dist/resources/session-events.js.map +1 -0
- package/dist/resources/workflow.d.ts +47 -0
- package/dist/resources/workflow.d.ts.map +1 -0
- package/dist/resources/workflow.js +321 -0
- package/dist/resources/workflow.js.map +1 -0
- package/dist/storage.d.ts +27 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +46 -0
- package/dist/storage.js.map +1 -0
- package/dist/streaming/budget.d.ts +22 -0
- package/dist/streaming/budget.d.ts.map +1 -0
- package/dist/streaming/budget.js +40 -0
- package/dist/streaming/budget.js.map +1 -0
- package/dist/types/index.d.ts +165 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/version.d.ts +9 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +9 -0
- package/dist/version.js.map +1 -0
- package/package.json +6 -5
package/dist/index.js
CHANGED
|
@@ -8,10 +8,13 @@
|
|
|
8
8
|
* - Compose Key lifecycle (create / list / get / revoke, session metadata)
|
|
9
9
|
* - 45k+ model catalog (list / listAll / search / get / getParams)
|
|
10
10
|
* - OpenAI-shaped inference (chat.completions, responses, embeddings, images,
|
|
11
|
-
* audio.speech, audio.transcriptions, videos) with full SSE streaming
|
|
12
|
-
* typed tool-call deltas
|
|
11
|
+
* audio.speech, audio.transcriptions, videos) with full SSE streaming,
|
|
12
|
+
* typed tool-call deltas and reasoning deltas, typed cost receipts, and
|
|
13
|
+
* live session-budget updates emitted on every response.
|
|
13
14
|
* - x402 facilitator access (supported / chains / verify / settle) and typed
|
|
14
15
|
* decoders for PAYMENT-REQUIRED, PAYMENT-RESPONSE, X-Compose-Receipt.
|
|
16
|
+
* - SSE session events (`sdk.session.events`) for budget depletion and
|
|
17
|
+
* expiry notifications, dispatched on the typed event bus as well.
|
|
15
18
|
* - Webhook signature verification (HMAC-SHA256, Stripe-style header).
|
|
16
19
|
*
|
|
17
20
|
* Design:
|
|
@@ -24,8 +27,11 @@
|
|
|
24
27
|
* via the `x-session-user-address` header. The Compose Key JWT returned by
|
|
25
28
|
* `keys.create(...)` is the real cryptographic identity from that point on.
|
|
26
29
|
* - Every billable call returns a `ComposeCompletion<T>` carrying the parsed
|
|
27
|
-
* body, the settlement receipt (if any), the request id,
|
|
30
|
+
* body, the settlement receipt (if any), the request id, the live session
|
|
31
|
+
* budget snapshot, the session-invalid reason (if any), and the raw
|
|
28
32
|
* Response so integrators can read non-standard headers without parsing.
|
|
33
|
+
* - Persisted session tokens survive page reloads when a storage adapter is
|
|
34
|
+
* provided (browser `localStorage` is auto-detected).
|
|
29
35
|
*/
|
|
30
36
|
import { HttpClient } from "./http.js";
|
|
31
37
|
import { KeysResource } from "./resources/keys.js";
|
|
@@ -33,12 +39,20 @@ import { ModelsResource } from "./resources/models.js";
|
|
|
33
39
|
import { InferenceResource } from "./resources/inference.js";
|
|
34
40
|
import { X402Resource } from "./resources/x402.js";
|
|
35
41
|
import { WebhooksResource } from "./resources/webhooks.js";
|
|
42
|
+
import { SessionEventsResource } from "./resources/session-events.js";
|
|
43
|
+
import { AgentResource } from "./resources/agent.js";
|
|
44
|
+
import { WorkflowResource } from "./resources/workflow.js";
|
|
45
|
+
import { instrumentBillableResponse } from "./resources/instrumentation.js";
|
|
36
46
|
import { BadRequestError } from "./errors.js";
|
|
47
|
+
import { createEventBus } from "./events.js";
|
|
48
|
+
import { resolveStorage, createMemoryStorage, buildTokenStorageKey, DEFAULT_TOKEN_SCOPE, } from "./storage.js";
|
|
49
|
+
import { SDK_VERSION } from "./version.js";
|
|
37
50
|
export * from "./types/index.js";
|
|
38
51
|
export * from "./errors.js";
|
|
39
52
|
export { decodeReceiptHeader, extractReceiptFromResponse, parseReceiptEvent } from "./streaming/receipt.js";
|
|
40
53
|
export { parseSSEStream } from "./streaming/sse.js";
|
|
41
|
-
export
|
|
54
|
+
export { extractSessionBudgetFromResponse } from "./streaming/budget.js";
|
|
55
|
+
export { createMemoryStorage } from "./storage.js";
|
|
42
56
|
const DEFAULT_RETRY = {
|
|
43
57
|
maxRetries: 2,
|
|
44
58
|
initialDelayMs: 500,
|
|
@@ -48,7 +62,24 @@ const DEFAULT_RETRY = {
|
|
|
48
62
|
function normalizeBaseUrl(value) {
|
|
49
63
|
return (value || "https://api.compose.market").replace(/\/+$/, "");
|
|
50
64
|
}
|
|
51
|
-
function
|
|
65
|
+
function deriveRuntimeBaseUrl(explicit, baseUrl) {
|
|
66
|
+
if (explicit)
|
|
67
|
+
return explicit.replace(/\/+$/, "");
|
|
68
|
+
// Default: swap `api.` prefix for `runtime.` when the baseUrl is the
|
|
69
|
+
// canonical Compose Market host; otherwise use the same host.
|
|
70
|
+
try {
|
|
71
|
+
const parsed = new URL(baseUrl);
|
|
72
|
+
if (parsed.hostname.startsWith("api.")) {
|
|
73
|
+
parsed.hostname = "runtime." + parsed.hostname.slice(4);
|
|
74
|
+
return parsed.origin.replace(/\/+$/, "");
|
|
75
|
+
}
|
|
76
|
+
return baseUrl.replace(/\/+$/, "");
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return "https://runtime.compose.market";
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function normalizeUserAddress(value) {
|
|
52
83
|
const trimmed = value.trim().toLowerCase();
|
|
53
84
|
if (!/^0x[a-f0-9]{40}$/.test(trimmed)) {
|
|
54
85
|
throw new BadRequestError({ message: "userAddress must be a valid 0x-prefixed EVM address" });
|
|
@@ -64,26 +95,68 @@ function normalizeChainId(value) {
|
|
|
64
95
|
return value;
|
|
65
96
|
}
|
|
66
97
|
export class ComposeSDK {
|
|
98
|
+
/** The SDK version, sourced from package.json at build time. */
|
|
99
|
+
version = SDK_VERSION;
|
|
100
|
+
/** Resolved API base URL, trimmed of trailing slashes. */
|
|
101
|
+
baseUrl;
|
|
102
|
+
/** Resolved runtime service base URL, trimmed of trailing slashes. */
|
|
103
|
+
runtimeBaseUrl;
|
|
67
104
|
keys;
|
|
68
105
|
models;
|
|
69
106
|
inference;
|
|
70
107
|
x402;
|
|
71
108
|
webhooks;
|
|
109
|
+
session;
|
|
110
|
+
agent;
|
|
111
|
+
workflow;
|
|
72
112
|
wallets;
|
|
113
|
+
/**
|
|
114
|
+
* Typed, in-memory event bus. Listeners registered here receive:
|
|
115
|
+
* - `budget` — live `x-session-budget-*` snapshot on every billable call.
|
|
116
|
+
* - `sessionInvalid` — `x-compose-session-invalid` header set by the server.
|
|
117
|
+
* - `sessionActive` — SSE `session-active` heartbeat from `/api/session/events`.
|
|
118
|
+
* - `sessionExpired` — SSE `session-expired` frame from `/api/session/events`.
|
|
119
|
+
* - `receipt` — settlement receipt on every billable response / stream.
|
|
120
|
+
*/
|
|
121
|
+
events;
|
|
73
122
|
http;
|
|
74
|
-
|
|
123
|
+
storage;
|
|
124
|
+
tokenScope;
|
|
125
|
+
userAddress;
|
|
75
126
|
chainId;
|
|
76
127
|
composeKey;
|
|
128
|
+
rawFetch;
|
|
129
|
+
userAgent;
|
|
77
130
|
constructor(options = {}) {
|
|
78
|
-
this.
|
|
131
|
+
this.userAddress = options.userAddress ? normalizeUserAddress(options.userAddress) : null;
|
|
79
132
|
this.chainId = normalizeChainId(options.chainId);
|
|
80
|
-
this.
|
|
133
|
+
this.baseUrl = normalizeBaseUrl(options.baseUrl);
|
|
134
|
+
this.runtimeBaseUrl = deriveRuntimeBaseUrl(options.runtimeBaseUrl, this.baseUrl);
|
|
135
|
+
this.tokenScope = options.tokenScope ?? DEFAULT_TOKEN_SCOPE;
|
|
136
|
+
this.storage = resolveStorage(options.storage) ?? createMemoryStorage();
|
|
137
|
+
this.events = createEventBus({ logger: options.logger });
|
|
138
|
+
// Seed `composeKey` in this priority:
|
|
139
|
+
// 1. explicit constructor option
|
|
140
|
+
// 2. persistent storage scoped to (address, chainId) if both known
|
|
141
|
+
// 3. null
|
|
142
|
+
if (options.composeKey) {
|
|
143
|
+
this.composeKey = options.composeKey;
|
|
144
|
+
this.persistToken(options.composeKey);
|
|
145
|
+
}
|
|
146
|
+
else if (this.userAddress && this.chainId !== null) {
|
|
147
|
+
this.composeKey = this.storage.getItem(buildTokenStorageKey(this.tokenScope, this.userAddress, this.chainId));
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.composeKey = null;
|
|
151
|
+
}
|
|
81
152
|
const userAgent = options.userAgent
|
|
82
153
|
? `@compose-market/sdk/${SDK_VERSION} ${options.userAgent}`
|
|
83
154
|
: `@compose-market/sdk/${SDK_VERSION}`;
|
|
155
|
+
this.rawFetch = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
156
|
+
this.userAgent = userAgent;
|
|
84
157
|
this.http = new HttpClient({
|
|
85
|
-
baseUrl:
|
|
86
|
-
fetch:
|
|
158
|
+
baseUrl: this.baseUrl,
|
|
159
|
+
fetch: this.rawFetch,
|
|
87
160
|
timeoutMs: options.timeoutMs ?? 60_000,
|
|
88
161
|
defaultHeaders: { ...(options.defaultHeaders ?? {}) },
|
|
89
162
|
retry: { ...DEFAULT_RETRY, ...(options.retry ?? {}) },
|
|
@@ -92,17 +165,22 @@ export class ComposeSDK {
|
|
|
92
165
|
});
|
|
93
166
|
this.wallets = {
|
|
94
167
|
attach: (input) => {
|
|
95
|
-
this.
|
|
168
|
+
this.userAddress = normalizeUserAddress(input.address);
|
|
96
169
|
this.chainId = normalizeChainId(input.chainId);
|
|
170
|
+
// Re-hydrate persisted token for the freshly-attached wallet.
|
|
171
|
+
const stored = this.storage.getItem(buildTokenStorageKey(this.tokenScope, this.userAddress, this.chainId));
|
|
172
|
+
if (stored)
|
|
173
|
+
this.composeKey = stored;
|
|
97
174
|
},
|
|
98
|
-
current: () => ({ address: this.
|
|
175
|
+
current: () => ({ address: this.userAddress, chainId: this.chainId }),
|
|
99
176
|
clear: () => {
|
|
100
|
-
this.
|
|
177
|
+
this.userAddress = null;
|
|
101
178
|
this.chainId = null;
|
|
179
|
+
this.composeKey = null;
|
|
102
180
|
},
|
|
103
181
|
};
|
|
104
182
|
const getWallet = () => {
|
|
105
|
-
if (!this.
|
|
183
|
+
if (!this.userAddress) {
|
|
106
184
|
throw new BadRequestError({
|
|
107
185
|
message: "Wallet context is required. Call sdk.wallets.attach({ address, chainId }) first, or pass userAddress + chainId to the constructor.",
|
|
108
186
|
});
|
|
@@ -112,26 +190,185 @@ export class ComposeSDK {
|
|
|
112
190
|
message: "chainId is required. Call sdk.wallets.attach(...) or pass chainId to the constructor.",
|
|
113
191
|
});
|
|
114
192
|
}
|
|
115
|
-
return { address: this.
|
|
193
|
+
return { address: this.userAddress, chainId: this.chainId };
|
|
116
194
|
};
|
|
117
195
|
const getWalletMaybe = () => ({
|
|
118
|
-
address: this.
|
|
196
|
+
address: this.userAddress,
|
|
119
197
|
chainId: this.chainId,
|
|
120
198
|
});
|
|
121
199
|
this.keys = new KeysResource(this.http, {
|
|
122
200
|
getWallet,
|
|
123
|
-
|
|
201
|
+
getWalletMaybe,
|
|
202
|
+
setToken: (token) => {
|
|
203
|
+
this.composeKey = token;
|
|
204
|
+
this.persistToken(token);
|
|
205
|
+
},
|
|
124
206
|
getToken: () => this.composeKey,
|
|
125
|
-
clearToken: () => {
|
|
207
|
+
clearToken: () => {
|
|
208
|
+
this.composeKey = null;
|
|
209
|
+
this.deletePersistedToken();
|
|
210
|
+
},
|
|
126
211
|
});
|
|
127
212
|
this.models = new ModelsResource(this.http);
|
|
128
213
|
this.inference = new InferenceResource(this.http, {
|
|
129
214
|
getWalletMaybe,
|
|
130
215
|
getTokenMaybe: () => this.composeKey,
|
|
216
|
+
events: this.events,
|
|
131
217
|
});
|
|
132
218
|
this.x402 = new X402Resource(this.http);
|
|
133
219
|
this.webhooks = new WebhooksResource();
|
|
220
|
+
this.session = new SessionEventsNamespace(new SessionEventsResource(this.http, this.events), getWalletMaybe);
|
|
221
|
+
const agentWorkflowContext = {
|
|
222
|
+
runtimeBaseUrl: this.runtimeBaseUrl,
|
|
223
|
+
fetch: this.rawFetch,
|
|
224
|
+
getWalletMaybe,
|
|
225
|
+
getTokenMaybe: () => this.composeKey,
|
|
226
|
+
events: this.events,
|
|
227
|
+
userAgent,
|
|
228
|
+
};
|
|
229
|
+
this.agent = new AgentResource(agentWorkflowContext);
|
|
230
|
+
this.workflow = new WorkflowResource(agentWorkflowContext);
|
|
231
|
+
}
|
|
232
|
+
persistToken(token) {
|
|
233
|
+
if (!this.userAddress || this.chainId === null)
|
|
234
|
+
return;
|
|
235
|
+
this.storage.setItem(buildTokenStorageKey(this.tokenScope, this.userAddress, this.chainId), token);
|
|
236
|
+
}
|
|
237
|
+
deletePersistedToken() {
|
|
238
|
+
if (!this.userAddress || this.chainId === null)
|
|
239
|
+
return;
|
|
240
|
+
this.storage.removeItem(buildTokenStorageKey(this.tokenScope, this.userAddress, this.chainId));
|
|
134
241
|
}
|
|
242
|
+
/**
|
|
243
|
+
* Drop-in `fetch` wrapper that attaches the canonical Compose header
|
|
244
|
+
* contract (`Authorization`, `x-session-user-address`, `x-chain-id`,
|
|
245
|
+
* `User-Agent`) on every request and emits `budget` / `sessionInvalid` /
|
|
246
|
+
* `receipt` events on every response via the SDK event bus.
|
|
247
|
+
*
|
|
248
|
+
* Use this when you need to hit a Compose endpoint that isn't covered
|
|
249
|
+
* by a typed resource yet (agent/workflow runtime endpoints, workspace
|
|
250
|
+
* indexing, custom api/ routes). The URL may be absolute or relative to
|
|
251
|
+
* the SDK's `baseUrl`.
|
|
252
|
+
*
|
|
253
|
+
* Non-Compose URLs (absolute URLs whose host differs from `baseUrl`) are
|
|
254
|
+
* still passed through so this method is safe as a general-purpose fetch
|
|
255
|
+
* replacement; the budget event extraction is a no-op when the response
|
|
256
|
+
* doesn't carry `x-session-budget-*` headers.
|
|
257
|
+
*/
|
|
258
|
+
async fetch(input, init) {
|
|
259
|
+
const headers = new Headers(init?.headers);
|
|
260
|
+
if (!headers.has("User-Agent"))
|
|
261
|
+
headers.set("User-Agent", this.userAgent);
|
|
262
|
+
if (this.composeKey && !headers.has("Authorization")) {
|
|
263
|
+
headers.set("Authorization", `Bearer ${this.composeKey}`);
|
|
264
|
+
}
|
|
265
|
+
if (this.userAddress && !headers.has("x-session-user-address")) {
|
|
266
|
+
headers.set("x-session-user-address", this.userAddress);
|
|
267
|
+
}
|
|
268
|
+
if (this.chainId !== null && !headers.has("x-chain-id")) {
|
|
269
|
+
headers.set("x-chain-id", String(this.chainId));
|
|
270
|
+
}
|
|
271
|
+
// Support absolute URLs, relative paths, and Request objects alike.
|
|
272
|
+
let resolvedInput = input;
|
|
273
|
+
if (typeof input === "string") {
|
|
274
|
+
resolvedInput = input.startsWith("http://") || input.startsWith("https://")
|
|
275
|
+
? input
|
|
276
|
+
: `${this.baseUrl}${input.startsWith("/") ? input : `/${input}`}`;
|
|
277
|
+
}
|
|
278
|
+
const response = await this.rawFetch(resolvedInput, { ...init, headers });
|
|
279
|
+
// Emit budget/receipt/invalid events when the response carries the
|
|
280
|
+
// relevant Compose headers. Pass `undefined` for the body since we
|
|
281
|
+
// haven't read it; receipt-from-body only fires when the caller later
|
|
282
|
+
// parses the JSON themselves. That's acceptable: header-based receipts
|
|
283
|
+
// are the authoritative path and they're present on every billable
|
|
284
|
+
// response.
|
|
285
|
+
instrumentBillableResponse({ getWalletMaybe: () => ({ address: this.userAddress, chainId: this.chainId }), getTokenMaybe: () => this.composeKey, events: this.events }, response, undefined);
|
|
286
|
+
return response;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Thin ergonomic wrapper around `SessionEventsResource` so callers write
|
|
291
|
+
* `sdk.session.events({ ... })` with wallet defaults inferred from the SDK
|
|
292
|
+
* instance.
|
|
293
|
+
*/
|
|
294
|
+
class SessionEventsNamespace {
|
|
295
|
+
resource;
|
|
296
|
+
getWalletMaybe;
|
|
297
|
+
constructor(resource, getWalletMaybe) {
|
|
298
|
+
this.resource = resource;
|
|
299
|
+
this.getWalletMaybe = getWalletMaybe;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Subscribe to `/api/session/events`. Yields `SessionActiveEvent` and
|
|
303
|
+
* `SessionExpiredEvent` until the signal aborts or the server ends the
|
|
304
|
+
* stream. The same events are also emitted on `sdk.events`.
|
|
305
|
+
*
|
|
306
|
+
* When `userAddress` / `chainId` are omitted, the SDK's currently attached
|
|
307
|
+
* wallet context is used. Abort via an `AbortController.signal`.
|
|
308
|
+
*/
|
|
309
|
+
subscribe(opts = {}) {
|
|
310
|
+
const wallet = this.getWalletMaybe();
|
|
311
|
+
const userAddress = opts.userAddress ?? wallet.address;
|
|
312
|
+
const chainId = opts.chainId ?? wallet.chainId;
|
|
313
|
+
if (!userAddress) {
|
|
314
|
+
throw new BadRequestError({
|
|
315
|
+
message: "session.subscribe() needs a userAddress (either in opts or via sdk.wallets.attach).",
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
if (chainId === null || chainId === undefined) {
|
|
319
|
+
throw new BadRequestError({
|
|
320
|
+
message: "session.subscribe() needs a chainId (either in opts or via sdk.wallets.attach).",
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
return this.resource.subscribe({
|
|
324
|
+
userAddress,
|
|
325
|
+
chainId,
|
|
326
|
+
signal: opts.signal,
|
|
327
|
+
reconnectMaxDelayMs: opts.reconnectMaxDelayMs,
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Shortcut: register a listener on the `sessionActive` + `sessionExpired`
|
|
332
|
+
* events produced by a subscription. Returns a disposer that aborts the
|
|
333
|
+
* underlying stream AND removes the listeners.
|
|
334
|
+
*/
|
|
335
|
+
on(handlers, opts = {}) {
|
|
336
|
+
const controller = new AbortController();
|
|
337
|
+
const signal = mergeAbortSignals(opts.signal, controller.signal);
|
|
338
|
+
const iterable = this.subscribe({ ...opts, signal });
|
|
339
|
+
const unsubActive = handlers.active
|
|
340
|
+
? this.resource.events.on("sessionActive", handlers.active)
|
|
341
|
+
: () => { };
|
|
342
|
+
const unsubExpired = handlers.expired
|
|
343
|
+
? this.resource.events.on("sessionExpired", handlers.expired)
|
|
344
|
+
: () => { };
|
|
345
|
+
// Drive the iterator in the background; if the caller never reads it
|
|
346
|
+
// explicitly, the events still flow through the event bus.
|
|
347
|
+
(async () => {
|
|
348
|
+
try {
|
|
349
|
+
for await (const _event of iterable) {
|
|
350
|
+
void _event;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
catch { /* aborted / retries exhausted */ }
|
|
354
|
+
})();
|
|
355
|
+
return () => {
|
|
356
|
+
unsubActive();
|
|
357
|
+
unsubExpired();
|
|
358
|
+
controller.abort();
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
function mergeAbortSignals(a, b) {
|
|
363
|
+
if (!a)
|
|
364
|
+
return b;
|
|
365
|
+
const c = new AbortController();
|
|
366
|
+
const forward = () => c.abort();
|
|
367
|
+
if (a.aborted || b.aborted)
|
|
368
|
+
c.abort();
|
|
369
|
+
a.addEventListener("abort", forward, { once: true });
|
|
370
|
+
b.addEventListener("abort", forward, { once: true });
|
|
371
|
+
return c.signal;
|
|
135
372
|
}
|
|
136
373
|
export default ComposeSDK;
|
|
137
374
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compose agent runtime stream resource.
|
|
3
|
+
*
|
|
4
|
+
* Subscribes to POST /agent/:wallet/stream on the Compose runtime service
|
|
5
|
+
* and yields typed `AgentRuntimeEvent` values. The runtime emits OpenAI-ish
|
|
6
|
+
* chat.completion.chunk frames for text deltas AND Compose-native frames
|
|
7
|
+
* (`thinking_start`, `thinking_end`, `tool_start`, `tool_end`, `done`,
|
|
8
|
+
* `error`). This resource normalises both into the single
|
|
9
|
+
* `AgentRuntimeEvent` union so callers iterate one loop.
|
|
10
|
+
*
|
|
11
|
+
* Integrates with:
|
|
12
|
+
* - `sdk.events.toolCallStart` / `toolCallEnd` — emitted whenever the
|
|
13
|
+
* runtime tool vocabulary fires, so UI strips can react uniformly
|
|
14
|
+
* regardless of whether the source is agent, workflow, or chat.
|
|
15
|
+
* - `sdk.events.agentStreamStart` / `agentStreamEnd` — lifecycle notifications.
|
|
16
|
+
* - `instrumentBillableResponse` — budget/receipt/sessionInvalid surfaced
|
|
17
|
+
* exactly as on every other billable SDK call.
|
|
18
|
+
*/
|
|
19
|
+
import type { FetchLike } from "../http.js";
|
|
20
|
+
import type { ComposeEventBus } from "../events.js";
|
|
21
|
+
import type { AgentRuntimeEvent, AgentStreamCreateParams, AgentStreamFinalResult, SessionBudgetSnapshot, SessionInvalidReason } from "../types/index.js";
|
|
22
|
+
import { ComposeStreamIterator } from "./inference.js";
|
|
23
|
+
export interface AgentResourceContext {
|
|
24
|
+
runtimeBaseUrl: string;
|
|
25
|
+
fetch: FetchLike;
|
|
26
|
+
getWalletMaybe: () => {
|
|
27
|
+
address: string | null;
|
|
28
|
+
chainId: number | null;
|
|
29
|
+
};
|
|
30
|
+
getTokenMaybe: () => string | null;
|
|
31
|
+
events: ComposeEventBus;
|
|
32
|
+
userAgent: string;
|
|
33
|
+
}
|
|
34
|
+
export declare class AgentResource {
|
|
35
|
+
private readonly ctx;
|
|
36
|
+
constructor(ctx: AgentResourceContext);
|
|
37
|
+
stream(params: AgentStreamCreateParams, options?: {
|
|
38
|
+
signal?: AbortSignal;
|
|
39
|
+
timeoutMs?: number;
|
|
40
|
+
}): ComposeStreamIterator<AgentRuntimeEvent, AgentStreamFinalResult>;
|
|
41
|
+
}
|
|
42
|
+
export type { AgentStreamCreateParams, AgentStreamFinalResult, AgentRuntimeEvent, SessionBudgetSnapshot, SessionInvalidReason };
|
|
43
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/resources/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EACR,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EAEtB,qBAAqB,EACrB,oBAAoB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,MAAM;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACzE,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAa;IACV,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,oBAAoB;IAEtD,MAAM,CACF,MAAM,EAAE,uBAAuB,EAC/B,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAC3D,qBAAqB,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;CAGtE;AAqRD,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,CAAC"}
|