antpath 0.1.0 → 0.2.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/README.md +102 -67
- package/dist/client.js +4 -1
- package/dist/client.js.map +1 -1
- package/dist/credentials.js +34 -5
- package/dist/credentials.js.map +1 -1
- package/dist/files/downloader.js +8 -0
- package/dist/files/downloader.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/platform/client.d.ts +204 -0
- package/dist/platform/client.js +203 -0
- package/dist/platform/client.js.map +1 -0
- package/dist/platform/index.d.ts +1 -0
- package/dist/platform/index.js +2 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/providers/anthropic/provider.d.ts +6 -0
- package/dist/providers/anthropic/provider.js +90 -12
- package/dist/providers/anthropic/provider.js.map +1 -1
- package/dist/providers/known-events.d.ts +60 -0
- package/dist/providers/known-events.js +64 -0
- package/dist/providers/known-events.js.map +1 -0
- package/dist/run/controller.d.ts +4 -1
- package/dist/run/controller.js +103 -13
- package/dist/run/controller.js.map +1 -1
- package/dist/template/index.d.ts +1 -1
- package/dist/types.d.ts +20 -0
- package/dist/utils/events.d.ts +21 -0
- package/dist/utils/events.js +97 -18
- package/dist/utils/events.js.map +1 -1
- package/dist/utils/paths.js +9 -3
- package/dist/utils/paths.js.map +1 -1
- package/docs/cleanup.md +15 -15
- package/docs/credentials.md +105 -23
- package/docs/events.md +129 -0
- package/docs/mcp.md +18 -18
- package/docs/outputs.md +16 -16
- package/docs/quickstart.md +13 -13
- package/docs/release.md +22 -22
- package/docs/skills.md +18 -16
- package/docs/templates.md +24 -24
- package/docs/testing.md +26 -27
- package/examples/mcp-static-bearer.ts +30 -30
- package/examples/quickstart.ts +23 -23
- package/package.json +46 -51
- package/references/architecture-decisions.md +473 -203
- package/references/implementation-plan.md +452 -527
- package/references/research-sources.md +41 -30
- package/references/testing-strategy.md +29 -108
package/dist/run/controller.js
CHANGED
|
@@ -11,6 +11,8 @@ export class RunController {
|
|
|
11
11
|
#timeoutMs;
|
|
12
12
|
#signal;
|
|
13
13
|
#logger;
|
|
14
|
+
#onEventAbortOnError;
|
|
15
|
+
#sessionResources;
|
|
14
16
|
#events = new AsyncEventBus();
|
|
15
17
|
#startedAt = new Date().toISOString();
|
|
16
18
|
#ids = { credentialIds: [], uploadedFileIds: [] };
|
|
@@ -23,6 +25,8 @@ export class RunController {
|
|
|
23
25
|
#outputManifest;
|
|
24
26
|
#cleanupState = "not_started";
|
|
25
27
|
#userTerminated = false;
|
|
28
|
+
#terminating = false;
|
|
29
|
+
#listenerUnsubscribe;
|
|
26
30
|
constructor(options) {
|
|
27
31
|
this.#provider = options.provider;
|
|
28
32
|
this.#template = options.template;
|
|
@@ -31,14 +35,19 @@ export class RunController {
|
|
|
31
35
|
this.#timeoutMs = options.timeoutMs;
|
|
32
36
|
this.#signal = options.signal;
|
|
33
37
|
this.#logger = options.logger;
|
|
38
|
+
this.#onEventAbortOnError = options.onEventAbortOnError ?? false;
|
|
39
|
+
this.#sessionResources = options.sessionResources ?? [];
|
|
34
40
|
this.#resultPromise = new Promise((resolve, reject) => {
|
|
35
41
|
this.#resolveResult = resolve;
|
|
36
42
|
this.#rejectResult = reject;
|
|
37
43
|
});
|
|
44
|
+
if (options.onEvent) {
|
|
45
|
+
this.#listenerUnsubscribe = this.#events.addListener(options.onEvent, (error, event) => this.#handleListenerError(error, event));
|
|
46
|
+
}
|
|
38
47
|
}
|
|
39
48
|
async start() {
|
|
40
49
|
this.#consume().catch((error) => {
|
|
41
|
-
this.#fail(error instanceof Error ? error : new RunStateError(String(error)));
|
|
50
|
+
void this.#fail(error instanceof Error ? error : new RunStateError(String(error)));
|
|
42
51
|
});
|
|
43
52
|
}
|
|
44
53
|
status() {
|
|
@@ -93,7 +102,7 @@ export class RunController {
|
|
|
93
102
|
this.#userTerminated = true;
|
|
94
103
|
this.#setStatus("terminating");
|
|
95
104
|
await this.#provider.terminateSession(this.#ids.sessionId, reason);
|
|
96
|
-
this.#finish("terminated");
|
|
105
|
+
await this.#finish("terminated");
|
|
97
106
|
}
|
|
98
107
|
async usage() {
|
|
99
108
|
if (!this.#ids.sessionId) {
|
|
@@ -124,7 +133,7 @@ export class RunController {
|
|
|
124
133
|
}
|
|
125
134
|
}
|
|
126
135
|
}
|
|
127
|
-
this.#ids.sessionId = await this.#provider.createSession(this.#ids.agentId, this.#ids.environmentId, this.#ids.vaultId ? [this.#ids.vaultId] : [],
|
|
136
|
+
this.#ids.sessionId = await this.#provider.createSession(this.#ids.agentId, this.#ids.environmentId, this.#ids.vaultId ? [this.#ids.vaultId] : [], await this.#buildSessionResources(prepared));
|
|
128
137
|
const abort = new AbortController();
|
|
129
138
|
this.#signal?.addEventListener("abort", () => abort.abort(this.#signal?.reason), { once: true });
|
|
130
139
|
const timeout = this.#timeoutMs === undefined
|
|
@@ -132,17 +141,30 @@ export class RunController {
|
|
|
132
141
|
: setTimeout(() => {
|
|
133
142
|
void this.terminate("timeout");
|
|
134
143
|
}, this.#timeoutMs);
|
|
144
|
+
let iterator;
|
|
135
145
|
try {
|
|
136
146
|
const stream = this.#provider.streamEvents(this.#ids.sessionId, abort.signal);
|
|
147
|
+
iterator = stream[Symbol.asyncIterator]();
|
|
148
|
+
// Prime the SSE iterator BEFORE sending the first user message.
|
|
149
|
+
// The Claude Managed Agents docs are explicit:
|
|
150
|
+
// "Only events emitted after the stream is opened are delivered, so
|
|
151
|
+
// open the stream before sending events to avoid a race condition."
|
|
152
|
+
// The provider's `streamEvents` is an async generator; the underlying
|
|
153
|
+
// HTTP GET only fires on the first `iterator.next()` call. Pulling
|
|
154
|
+
// before `sendUserMessage` opens the stream so the first events
|
|
155
|
+
// emitted by the message are not dropped.
|
|
156
|
+
const firstEventPromise = iterator.next();
|
|
137
157
|
await this.#sendNextMessage();
|
|
138
|
-
|
|
158
|
+
let pending = await firstEventPromise;
|
|
159
|
+
while (!pending.done) {
|
|
160
|
+
const event = pending.value;
|
|
139
161
|
this.#emit({ type: "provider.event", event, at: new Date().toISOString() });
|
|
140
162
|
if (event.type === "session.error") {
|
|
141
|
-
this.#fail(new RunStateError("Provider session.error event received", event));
|
|
163
|
+
await this.#fail(new RunStateError("Provider session.error event received", event));
|
|
142
164
|
return;
|
|
143
165
|
}
|
|
144
166
|
if (event.type === "session.status_terminated") {
|
|
145
|
-
this.#finish(this.#userTerminated ? "terminated" : "failed", this.#userTerminated ? undefined : "Provider session terminated");
|
|
167
|
+
await this.#finish(this.#userTerminated ? "terminated" : "failed", this.#userTerminated ? undefined : "Provider session terminated");
|
|
146
168
|
return;
|
|
147
169
|
}
|
|
148
170
|
if (event.type === "session.status_idle") {
|
|
@@ -151,16 +173,24 @@ export class RunController {
|
|
|
151
173
|
await this.#sendNextMessage();
|
|
152
174
|
}
|
|
153
175
|
else {
|
|
154
|
-
this.#finish("succeeded");
|
|
176
|
+
await this.#finish("succeeded");
|
|
155
177
|
return;
|
|
156
178
|
}
|
|
157
179
|
}
|
|
180
|
+
pending = await iterator.next();
|
|
158
181
|
}
|
|
159
182
|
}
|
|
160
183
|
finally {
|
|
161
184
|
if (timeout)
|
|
162
185
|
clearTimeout(timeout);
|
|
163
186
|
abort.abort();
|
|
187
|
+
if (iterator?.return) {
|
|
188
|
+
await iterator.return().catch(() => undefined);
|
|
189
|
+
}
|
|
190
|
+
// Safety net: if the loop exited without reaching a terminal handler
|
|
191
|
+
// (e.g., provider stream closed unexpectedly), close the bus so any
|
|
192
|
+
// streamEvents() consumers receive `done: true` and don't hang.
|
|
193
|
+
// `#finish` and `#fail` close the bus themselves; close is idempotent.
|
|
164
194
|
this.#events.close();
|
|
165
195
|
}
|
|
166
196
|
}
|
|
@@ -177,6 +207,27 @@ export class RunController {
|
|
|
177
207
|
this.#emit({ type: "sdk.message_sent", index: this.#messageIndex, at: new Date().toISOString() });
|
|
178
208
|
this.#messageIndex++;
|
|
179
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Upload extra (non-skill) session resources, then build the combined
|
|
212
|
+
* `SessionResourceInput[]` passed to `createSession` (skills + extras).
|
|
213
|
+
*
|
|
214
|
+
* Extras are uploaded in declaration order so failure of the Nth upload
|
|
215
|
+
* doesn't leak fileIds beyond what's already been recorded — the
|
|
216
|
+
* caller's `cleanupHandle` covers `uploadedFileIds` on partial failure.
|
|
217
|
+
*/
|
|
218
|
+
async #buildSessionResources(prepared) {
|
|
219
|
+
const resources = toSessionResources(this.#ids.uploadedFileIds, prepared);
|
|
220
|
+
for (const extra of this.#sessionResources) {
|
|
221
|
+
const fileId = await this.#provider.uploadFile({
|
|
222
|
+
filename: extra.filename,
|
|
223
|
+
data: extra.data,
|
|
224
|
+
...(extra.mimeType ? { mimeType: extra.mimeType } : {})
|
|
225
|
+
});
|
|
226
|
+
this.#ids.uploadedFileIds.push(fileId);
|
|
227
|
+
resources.push({ type: "file", fileId, mountPath: extra.mountPath });
|
|
228
|
+
}
|
|
229
|
+
return resources;
|
|
230
|
+
}
|
|
180
231
|
async #buildResult(status, error) {
|
|
181
232
|
const session = this.#ids.sessionId ? await this.#provider.getSession(this.#ids.sessionId).catch(() => undefined) : undefined;
|
|
182
233
|
const result = {
|
|
@@ -204,21 +255,60 @@ export class RunController {
|
|
|
204
255
|
this.#logger?.debug?.("antpath event", redactSecrets({ event }));
|
|
205
256
|
this.#events.emit(redactSecrets(event));
|
|
206
257
|
}
|
|
207
|
-
#finish(status, error) {
|
|
258
|
+
async #finish(status, error) {
|
|
259
|
+
if (this.#terminating) {
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
this.#terminating = true;
|
|
208
263
|
this.#setStatus(status);
|
|
209
|
-
|
|
264
|
+
try {
|
|
265
|
+
const result = await this.#buildResult(status, error);
|
|
210
266
|
this.#finalResult = result;
|
|
267
|
+
this.#events.close();
|
|
268
|
+
await this.#events.drainListeners();
|
|
269
|
+
this.#listenerUnsubscribe?.();
|
|
211
270
|
this.#resolveResult(result);
|
|
271
|
+
}
|
|
272
|
+
catch (error_) {
|
|
212
273
|
this.#events.close();
|
|
213
|
-
|
|
274
|
+
await this.#events.drainListeners().catch(() => undefined);
|
|
275
|
+
this.#listenerUnsubscribe?.();
|
|
276
|
+
this.#rejectResult(error_ instanceof Error ? error_ : new Error(String(error_)));
|
|
277
|
+
}
|
|
214
278
|
}
|
|
215
|
-
#fail(error) {
|
|
279
|
+
async #fail(error) {
|
|
280
|
+
if (this.#terminating) {
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
this.#terminating = true;
|
|
216
284
|
this.#setStatus("failed");
|
|
217
|
-
|
|
285
|
+
try {
|
|
286
|
+
const result = await this.#buildResult("failed", error.message);
|
|
218
287
|
this.#finalResult = result;
|
|
288
|
+
this.#events.close();
|
|
289
|
+
await this.#events.drainListeners();
|
|
290
|
+
this.#listenerUnsubscribe?.();
|
|
219
291
|
this.#resolveResult(result);
|
|
292
|
+
}
|
|
293
|
+
catch (error_) {
|
|
220
294
|
this.#events.close();
|
|
221
|
-
|
|
295
|
+
await this.#events.drainListeners().catch(() => undefined);
|
|
296
|
+
this.#listenerUnsubscribe?.();
|
|
297
|
+
this.#rejectResult(error_ instanceof Error ? error_ : new Error(String(error_)));
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
#handleListenerError(error, _event) {
|
|
301
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
302
|
+
const redactedMessage = redactSecrets(message);
|
|
303
|
+
if (this.#onEventAbortOnError && !this.#terminating) {
|
|
304
|
+
// Schedule failure; do NOT await here (we're inside the listener's
|
|
305
|
+
// promise chain). `#fail` is async but fire-and-forget here is safe
|
|
306
|
+
// because subsequent invocations of this hook will observe
|
|
307
|
+
// `#terminating === true` and log instead of recursing.
|
|
308
|
+
void this.#fail(new RunStateError("onEvent handler failed", { cause: redactedMessage }));
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
this.#logger?.warn?.("antpath onEvent handler failed", { error: redactedMessage });
|
|
222
312
|
}
|
|
223
313
|
}
|
|
224
314
|
//# sourceMappingURL=controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/run/controller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/run/controller.ts"],"names":[],"mappings":"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"}
|
package/dist/template/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CredentialRequirement, TemplateDefinition, TemplateVariableDefinition } from "./types.js";
|
|
2
|
-
export type { TemplateDefinition, TemplateVariableDefinition } from "./types.js";
|
|
2
|
+
export type { TemplateDefinition, TemplateVariableDefinition, EnvironmentDefinition } from "./types.js";
|
|
3
3
|
export { compileTemplate, type ResolvedTemplate } from "./compiler.js";
|
|
4
4
|
export declare function defineTemplate<TVariables extends Record<string, TemplateVariableDefinition> = Record<string, never>>(definition: TemplateDefinition<TVariables>): TemplateDefinition<TVariables>;
|
|
5
5
|
export declare function string(options?: {
|
package/dist/types.d.ts
CHANGED
|
@@ -8,6 +8,12 @@ export type CredentialInput = {
|
|
|
8
8
|
accessToken: string;
|
|
9
9
|
expiresAt?: string | undefined;
|
|
10
10
|
};
|
|
11
|
+
export interface SessionResourceUpload {
|
|
12
|
+
filename: string;
|
|
13
|
+
data: Uint8Array;
|
|
14
|
+
mimeType?: string | undefined;
|
|
15
|
+
mountPath: string;
|
|
16
|
+
}
|
|
11
17
|
export interface RunOptions {
|
|
12
18
|
variables?: Record<string, string> | undefined;
|
|
13
19
|
credentials?: Record<string, CredentialInput> | undefined;
|
|
@@ -15,7 +21,21 @@ export interface RunOptions {
|
|
|
15
21
|
cleanupPolicy?: CleanupPolicy | undefined;
|
|
16
22
|
signal?: AbortSignal | undefined;
|
|
17
23
|
logger?: Logger | undefined;
|
|
24
|
+
onEvent?: RunEventHandler | undefined;
|
|
25
|
+
onEventAbortOnError?: boolean | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Additional files to upload and mount into the agent session alongside
|
|
28
|
+
* skills. Each entry is uploaded via the provider's `uploadFile` and
|
|
29
|
+
* passed in the `createSession` resources array with the requested
|
|
30
|
+
* `mountPath`. Used by the platform to bootstrap the `/antpath/antpath`
|
|
31
|
+
* CLI and `/antpath/index.json` manifest, but available to any caller.
|
|
32
|
+
*
|
|
33
|
+
* Session resources do NOT count against the provider's per-session
|
|
34
|
+
* skill limit; they're a distinct resource type with their own quota.
|
|
35
|
+
*/
|
|
36
|
+
sessionResources?: readonly SessionResourceUpload[] | undefined;
|
|
18
37
|
}
|
|
38
|
+
export type RunEventHandler = (event: RunEvent) => void | Promise<void>;
|
|
19
39
|
export type RunStatus = "initializing" | "creating_provider_resources" | "running" | "idle_waiting_to_send_next_message" | "downloading_outputs" | "succeeded" | "failed" | "terminating" | "terminated" | "cleanup_pending" | "cleaned_up";
|
|
20
40
|
export interface UsageSummary {
|
|
21
41
|
inputTokens?: number | undefined;
|
package/dist/utils/events.d.ts
CHANGED
|
@@ -1,6 +1,27 @@
|
|
|
1
|
+
export type EventListener<T> = (event: T) => void | Promise<void>;
|
|
2
|
+
export type EventListenerErrorHandler<T> = (error: unknown, event: T) => void;
|
|
3
|
+
export type Unsubscribe = () => void;
|
|
1
4
|
export declare class AsyncEventBus<T> {
|
|
2
5
|
#private;
|
|
3
6
|
emit(event: T): void;
|
|
4
7
|
close(): void;
|
|
8
|
+
closed(): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Register a callback that is invoked for every emitted event in order.
|
|
11
|
+
*
|
|
12
|
+
* Async handlers are serialized through a per-listener promise chain so
|
|
13
|
+
* invocation order matches emission order. Errors thrown synchronously or
|
|
14
|
+
* via rejected promises are routed to onError. The chain stays fulfilled
|
|
15
|
+
* even when handlers fail, so subsequent events still trigger the handler.
|
|
16
|
+
*/
|
|
17
|
+
addListener(handler: EventListener<T>, onError: EventListenerErrorHandler<T>): Unsubscribe;
|
|
18
|
+
/**
|
|
19
|
+
* Await every queued listener invocation that has already been scheduled at
|
|
20
|
+
* the moment this method is called. Callers (e.g., the run controller)
|
|
21
|
+
* must finish emitting before invoking drainListeners; emits that happen
|
|
22
|
+
* after drainListeners is awaited are not guaranteed to be observed by the
|
|
23
|
+
* returned promise.
|
|
24
|
+
*/
|
|
25
|
+
drainListeners(): Promise<void>;
|
|
5
26
|
stream(): AsyncIterable<T>;
|
|
6
27
|
}
|
package/dist/utils/events.js
CHANGED
|
@@ -1,39 +1,118 @@
|
|
|
1
1
|
export class AsyncEventBus {
|
|
2
2
|
#history = [];
|
|
3
|
-
#
|
|
3
|
+
#streamSubscribers = new Set();
|
|
4
|
+
#listeners = new Set();
|
|
4
5
|
#closed = false;
|
|
5
6
|
emit(event) {
|
|
6
7
|
if (this.#closed) {
|
|
7
8
|
return;
|
|
8
9
|
}
|
|
9
10
|
this.#history.push(event);
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
for (const subscriber of this.#streamSubscribers) {
|
|
12
|
+
const wake = subscriber.wake;
|
|
13
|
+
if (wake) {
|
|
14
|
+
subscriber.wake = undefined;
|
|
15
|
+
wake();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
for (const listener of this.#listeners) {
|
|
19
|
+
listener.chain = listener.chain.then(() => listener.handler(event)).catch((error) => {
|
|
20
|
+
try {
|
|
21
|
+
listener.onError(error, event);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// onError must never throw; swallow to keep the chain alive for future events.
|
|
25
|
+
}
|
|
26
|
+
});
|
|
13
27
|
}
|
|
14
28
|
}
|
|
15
29
|
close() {
|
|
30
|
+
if (this.#closed) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
16
33
|
this.#closed = true;
|
|
17
|
-
for (const
|
|
18
|
-
|
|
34
|
+
for (const subscriber of this.#streamSubscribers) {
|
|
35
|
+
const wake = subscriber.wake;
|
|
36
|
+
if (wake) {
|
|
37
|
+
subscriber.wake = undefined;
|
|
38
|
+
wake();
|
|
39
|
+
}
|
|
19
40
|
}
|
|
20
41
|
}
|
|
42
|
+
closed() {
|
|
43
|
+
return this.#closed;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Register a callback that is invoked for every emitted event in order.
|
|
47
|
+
*
|
|
48
|
+
* Async handlers are serialized through a per-listener promise chain so
|
|
49
|
+
* invocation order matches emission order. Errors thrown synchronously or
|
|
50
|
+
* via rejected promises are routed to onError. The chain stays fulfilled
|
|
51
|
+
* even when handlers fail, so subsequent events still trigger the handler.
|
|
52
|
+
*/
|
|
53
|
+
addListener(handler, onError) {
|
|
54
|
+
const listener = {
|
|
55
|
+
handler,
|
|
56
|
+
onError,
|
|
57
|
+
chain: Promise.resolve()
|
|
58
|
+
};
|
|
59
|
+
this.#listeners.add(listener);
|
|
60
|
+
return () => {
|
|
61
|
+
this.#listeners.delete(listener);
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Await every queued listener invocation that has already been scheduled at
|
|
66
|
+
* the moment this method is called. Callers (e.g., the run controller)
|
|
67
|
+
* must finish emitting before invoking drainListeners; emits that happen
|
|
68
|
+
* after drainListeners is awaited are not guaranteed to be observed by the
|
|
69
|
+
* returned promise.
|
|
70
|
+
*/
|
|
71
|
+
async drainListeners() {
|
|
72
|
+
if (this.#listeners.size === 0) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const snapshot = [...this.#listeners].map((listener) => listener.chain);
|
|
76
|
+
await Promise.all(snapshot);
|
|
77
|
+
}
|
|
21
78
|
stream() {
|
|
22
79
|
const self = this;
|
|
23
80
|
return {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
81
|
+
[Symbol.asyncIterator]() {
|
|
82
|
+
const subscriber = { wake: undefined, done: false };
|
|
83
|
+
self.#streamSubscribers.add(subscriber);
|
|
84
|
+
let cursor = 0;
|
|
85
|
+
return {
|
|
86
|
+
async next() {
|
|
87
|
+
while (true) {
|
|
88
|
+
if (subscriber.done) {
|
|
89
|
+
self.#streamSubscribers.delete(subscriber);
|
|
90
|
+
return { value: undefined, done: true };
|
|
91
|
+
}
|
|
92
|
+
if (cursor < self.#history.length) {
|
|
93
|
+
const value = self.#history[cursor++];
|
|
94
|
+
return { value, done: false };
|
|
95
|
+
}
|
|
96
|
+
if (self.#closed) {
|
|
97
|
+
self.#streamSubscribers.delete(subscriber);
|
|
98
|
+
return { value: undefined, done: true };
|
|
99
|
+
}
|
|
100
|
+
await new Promise((resolve) => {
|
|
101
|
+
subscriber.wake = resolve;
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
async return() {
|
|
106
|
+
subscriber.done = true;
|
|
107
|
+
const wake = subscriber.wake;
|
|
108
|
+
if (wake) {
|
|
109
|
+
subscriber.wake = undefined;
|
|
110
|
+
wake();
|
|
111
|
+
}
|
|
112
|
+
self.#streamSubscribers.delete(subscriber);
|
|
113
|
+
return { value: undefined, done: true };
|
|
33
114
|
}
|
|
34
|
-
|
|
35
|
-
yield next.value;
|
|
36
|
-
}
|
|
115
|
+
};
|
|
37
116
|
}
|
|
38
117
|
};
|
|
39
118
|
}
|
package/dist/utils/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/utils/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/utils/events.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/paths.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
-
import {
|
|
2
|
+
import { join, resolve } from "node:path";
|
|
3
|
+
const WINDOWS_RESERVED_BASENAMES = /^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\.|$)/i;
|
|
3
4
|
export function sanitizeFilename(filename) {
|
|
4
|
-
const
|
|
5
|
-
|
|
5
|
+
const lastSep = Math.max(filename.lastIndexOf("/"), filename.lastIndexOf("\\"));
|
|
6
|
+
const tail = lastSep >= 0 ? filename.slice(lastSep + 1) : filename;
|
|
7
|
+
const base = tail.replace(/[\u0000-\u001f<>:"/\\|?*]+/g, "_").trim().slice(0, 120);
|
|
8
|
+
if (base.length === 0 || base === "." || base === "..") {
|
|
9
|
+
return "download";
|
|
10
|
+
}
|
|
11
|
+
return WINDOWS_RESERVED_BASENAMES.test(base) ? `_${base}` : base;
|
|
6
12
|
}
|
|
7
13
|
export function safeDestination(directory, filename) {
|
|
8
14
|
const root = resolve(directory);
|
package/dist/utils/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,0BAA0B,GAAG,+CAA+C,CAAC;AAEnF,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACvD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,QAAgB;IACjE,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,QAAgB,EAAE,OAAmB;IAC1F,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzD,MAAM,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
package/docs/cleanup.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Cleanup
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Cleanup
|
|
6
|
-
|
|
7
|
-
Cleanup is manual by default:
|
|
8
|
-
|
|
9
|
-
```ts
|
|
10
|
-
await handle.cleanup();
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
This preserves provider-side files/events for inspection and avoids deleting outputs before users download them.
|
|
14
|
-
|
|
15
|
-
If the SDK process exits before cleanup, provider resources may remain in the user's provider workspace. The result includes provider IDs so a future cleanup helper can recover orphaned resources when the caller recreates a Client with the same key.
|
|
1
|
+
---
|
|
2
|
+
title: Cleanup
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Cleanup
|
|
6
|
+
|
|
7
|
+
Cleanup is manual by default:
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
await handle.cleanup();
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
This preserves provider-side files/events for inspection and avoids deleting outputs before users download them.
|
|
14
|
+
|
|
15
|
+
If the SDK process exits before cleanup, provider resources may remain in the user's provider workspace. The result includes provider IDs so a future cleanup helper can recover orphaned resources when the caller recreates a Client with the same key.
|