antpath 0.2.1 → 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/README.md +54 -40
- package/dist/_shared/cleanup-policy.d.ts +8 -0
- package/dist/_shared/cleanup-policy.js +24 -0
- package/dist/_shared/config.d.ts +47 -0
- package/dist/_shared/config.js +150 -0
- package/dist/_shared/dev-stack.d.ts +19 -0
- package/dist/_shared/dev-stack.js +105 -0
- package/dist/_shared/errors.d.ts +8 -0
- package/dist/_shared/errors.js +18 -0
- package/dist/_shared/http.d.ts +25 -0
- package/dist/_shared/http.js +93 -0
- package/dist/_shared/index.d.ts +17 -0
- package/dist/_shared/index.js +20 -0
- package/dist/{providers → _shared}/known-events.d.ts +10 -10
- package/dist/{providers → _shared}/known-events.js +9 -9
- package/dist/_shared/operations.d.ts +24 -0
- package/dist/_shared/operations.js +47 -0
- package/dist/_shared/proxy-protocol.d.ts +148 -0
- package/dist/_shared/proxy-protocol.js +113 -0
- package/dist/_shared/proxy-validation.d.ts +19 -0
- package/dist/_shared/proxy-validation.js +51 -0
- package/dist/_shared/runtime-types.d.ts +90 -0
- package/dist/_shared/runtime-types.js +2 -0
- package/dist/{errors.d.ts → _shared/sdk-errors.d.ts} +10 -1
- package/dist/{errors.js → _shared/sdk-errors.js} +15 -2
- package/dist/{utils/secrets.js → _shared/sdk-secrets.js} +1 -1
- package/dist/_shared/secrets.d.ts +7 -0
- package/dist/_shared/secrets.js +20 -0
- package/dist/_shared/stable.d.ts +16 -0
- package/dist/{utils → _shared}/stable.js +14 -0
- package/dist/_shared/status.d.ts +8 -0
- package/dist/_shared/status.js +46 -0
- package/dist/_shared/submission.d.ts +157 -0
- package/dist/_shared/submission.js +681 -0
- package/dist/{template → _shared/template}/compiler.js +3 -3
- package/dist/{template/index.d.ts → _shared/template/helpers.d.ts} +0 -2
- package/dist/{template/index.js → _shared/template/helpers.js} +1 -2
- package/dist/_shared/template/index.d.ts +4 -0
- package/dist/_shared/template/index.js +4 -0
- package/dist/_shared/template/mapper.d.ts +11 -0
- package/dist/_shared/template/mapper.js +70 -0
- package/dist/cli.mjs +1223 -64
- package/dist/cli.mjs.sha256 +1 -1
- package/dist/client.d.ts +100 -8
- package/dist/client.js +193 -30
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +16 -10
- package/dist/index.js +16 -7
- package/dist/index.js.map +1 -1
- package/docs/cleanup.md +7 -4
- package/docs/credentials.md +10 -12
- package/docs/events.md +19 -82
- package/docs/outputs.md +15 -4
- package/docs/quickstart.md +40 -6
- package/docs/release.md +57 -12
- package/docs/skills.md +1 -1
- package/docs/templates.md +1 -1
- package/docs/testing.md +11 -8
- package/examples/mcp-static-bearer.ts +12 -9
- package/examples/quickstart.ts +6 -6
- package/package.json +5 -7
- package/dist/credentials.d.ts +0 -3
- package/dist/credentials.js +0 -56
- package/dist/credentials.js.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/files/downloader.d.ts +0 -3
- package/dist/files/downloader.js +0 -43
- package/dist/files/downloader.js.map +0 -1
- package/dist/platform/client.d.ts +0 -204
- package/dist/platform/client.js +0 -203
- package/dist/platform/client.js.map +0 -1
- package/dist/platform/index.d.ts +0 -1
- package/dist/platform/index.js +0 -2
- package/dist/platform/index.js.map +0 -1
- package/dist/providers/anthropic/provider.d.ts +0 -36
- package/dist/providers/anthropic/provider.js +0 -380
- package/dist/providers/anthropic/provider.js.map +0 -1
- package/dist/providers/known-events.js.map +0 -1
- package/dist/providers/types.d.ts +0 -42
- package/dist/providers/types.js.map +0 -1
- package/dist/run/controller.d.ts +0 -30
- package/dist/run/controller.js +0 -314
- package/dist/run/controller.js.map +0 -1
- package/dist/skills/packager.d.ts +0 -11
- package/dist/skills/packager.js +0 -76
- package/dist/skills/packager.js.map +0 -1
- package/dist/template/compiler.js.map +0 -1
- package/dist/template/index.js.map +0 -1
- package/dist/template/types.js +0 -2
- package/dist/template/types.js.map +0 -1
- package/dist/types.d.ts +0 -149
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/events.d.ts +0 -27
- package/dist/utils/events.js +0 -120
- package/dist/utils/events.js.map +0 -1
- package/dist/utils/paths.d.ts +0 -3
- package/dist/utils/paths.js +0 -27
- package/dist/utils/paths.js.map +0 -1
- package/dist/utils/secrets.js.map +0 -1
- package/dist/utils/stable.d.ts +0 -2
- package/dist/utils/stable.js.map +0 -1
- package/references/architecture-decisions.md +0 -473
- package/references/implementation-plan.md +0 -452
- package/references/research-sources.md +0 -41
- package/references/testing-strategy.md +0 -29
- /package/dist/{utils/secrets.d.ts → _shared/sdk-secrets.d.ts} +0 -0
- /package/dist/{template → _shared/template}/compiler.d.ts +0 -0
- /package/dist/{template → _shared/template}/types.d.ts +0 -0
- /package/dist/{providers → _shared/template}/types.js +0 -0
package/dist/run/controller.js
DELETED
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import { CleanupError, RunStateError } from "../errors.js";
|
|
2
|
-
import { downloadOutputs as downloadAllOutputs } from "../files/downloader.js";
|
|
3
|
-
import { prepareSkills, toSessionResources } from "../skills/packager.js";
|
|
4
|
-
import { AsyncEventBus } from "../utils/events.js";
|
|
5
|
-
import { redactSecrets } from "../utils/secrets.js";
|
|
6
|
-
export class RunController {
|
|
7
|
-
#provider;
|
|
8
|
-
#template;
|
|
9
|
-
#credentials;
|
|
10
|
-
#cleanupPolicy;
|
|
11
|
-
#timeoutMs;
|
|
12
|
-
#signal;
|
|
13
|
-
#logger;
|
|
14
|
-
#onEventAbortOnError;
|
|
15
|
-
#sessionResources;
|
|
16
|
-
#events = new AsyncEventBus();
|
|
17
|
-
#startedAt = new Date().toISOString();
|
|
18
|
-
#ids = { credentialIds: [], uploadedFileIds: [] };
|
|
19
|
-
#status = "initializing";
|
|
20
|
-
#messageIndex = 0;
|
|
21
|
-
#resultPromise;
|
|
22
|
-
#resolveResult;
|
|
23
|
-
#rejectResult;
|
|
24
|
-
#finalResult;
|
|
25
|
-
#outputManifest;
|
|
26
|
-
#cleanupState = "not_started";
|
|
27
|
-
#userTerminated = false;
|
|
28
|
-
#terminating = false;
|
|
29
|
-
#listenerUnsubscribe;
|
|
30
|
-
constructor(options) {
|
|
31
|
-
this.#provider = options.provider;
|
|
32
|
-
this.#template = options.template;
|
|
33
|
-
this.#credentials = options.credentials;
|
|
34
|
-
this.#cleanupPolicy = options.cleanupPolicy;
|
|
35
|
-
this.#timeoutMs = options.timeoutMs;
|
|
36
|
-
this.#signal = options.signal;
|
|
37
|
-
this.#logger = options.logger;
|
|
38
|
-
this.#onEventAbortOnError = options.onEventAbortOnError ?? false;
|
|
39
|
-
this.#sessionResources = options.sessionResources ?? [];
|
|
40
|
-
this.#resultPromise = new Promise((resolve, reject) => {
|
|
41
|
-
this.#resolveResult = resolve;
|
|
42
|
-
this.#rejectResult = reject;
|
|
43
|
-
});
|
|
44
|
-
if (options.onEvent) {
|
|
45
|
-
this.#listenerUnsubscribe = this.#events.addListener(options.onEvent, (error, event) => this.#handleListenerError(error, event));
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
async start() {
|
|
49
|
-
this.#consume().catch((error) => {
|
|
50
|
-
void this.#fail(error instanceof Error ? error : new RunStateError(String(error)));
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
status() {
|
|
54
|
-
return this.#status;
|
|
55
|
-
}
|
|
56
|
-
streamEvents() {
|
|
57
|
-
return this.#events.stream();
|
|
58
|
-
}
|
|
59
|
-
wait() {
|
|
60
|
-
return this.#resultPromise;
|
|
61
|
-
}
|
|
62
|
-
async listFiles() {
|
|
63
|
-
if (!this.#ids.sessionId) {
|
|
64
|
-
throw new RunStateError("Cannot list files before session is created");
|
|
65
|
-
}
|
|
66
|
-
return this.#provider.listFiles(this.#ids.sessionId);
|
|
67
|
-
}
|
|
68
|
-
async downloadFile(fileId, destination) {
|
|
69
|
-
const { dirname, basename } = await import("node:path");
|
|
70
|
-
const { writeFileSafe } = await import("../utils/paths.js");
|
|
71
|
-
const content = await this.#provider.downloadFile(fileId);
|
|
72
|
-
await writeFileSafe(dirname(destination), basename(destination), content);
|
|
73
|
-
}
|
|
74
|
-
async downloadOutputs(options) {
|
|
75
|
-
if (!this.#ids.sessionId) {
|
|
76
|
-
throw new RunStateError("Cannot download outputs before session is created");
|
|
77
|
-
}
|
|
78
|
-
this.#setStatus("downloading_outputs");
|
|
79
|
-
const result = await downloadAllOutputs(this.#provider, this.#ids.sessionId, typeof options === "string" ? { directory: options } : options);
|
|
80
|
-
this.#outputManifest = result.manifest;
|
|
81
|
-
return result;
|
|
82
|
-
}
|
|
83
|
-
async cleanup(policy = this.#cleanupPolicy) {
|
|
84
|
-
this.#cleanupState = "pending";
|
|
85
|
-
const result = await this.#provider.cleanup(this.#ids, policy);
|
|
86
|
-
this.#cleanupState = result.state;
|
|
87
|
-
for (const operation of result.operations) {
|
|
88
|
-
this.#emit({ type: "sdk.cleanup", operation: operation.operation, status: operation.status, error: operation.error, at: new Date().toISOString() });
|
|
89
|
-
}
|
|
90
|
-
if (result.state === "cleaned_up") {
|
|
91
|
-
this.#setStatus("cleaned_up");
|
|
92
|
-
}
|
|
93
|
-
if (result.state === "partial") {
|
|
94
|
-
throw new CleanupError("Cleanup partially failed", result.operations);
|
|
95
|
-
}
|
|
96
|
-
return result;
|
|
97
|
-
}
|
|
98
|
-
async terminate(reason) {
|
|
99
|
-
if (!this.#ids.sessionId) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
this.#userTerminated = true;
|
|
103
|
-
this.#setStatus("terminating");
|
|
104
|
-
await this.#provider.terminateSession(this.#ids.sessionId, reason);
|
|
105
|
-
await this.#finish("terminated");
|
|
106
|
-
}
|
|
107
|
-
async usage() {
|
|
108
|
-
if (!this.#ids.sessionId) {
|
|
109
|
-
return undefined;
|
|
110
|
-
}
|
|
111
|
-
return (await this.#provider.getSession(this.#ids.sessionId)).usage;
|
|
112
|
-
}
|
|
113
|
-
result() {
|
|
114
|
-
return this.wait();
|
|
115
|
-
}
|
|
116
|
-
async #consume() {
|
|
117
|
-
this.#setStatus("creating_provider_resources");
|
|
118
|
-
const prepared = await prepareSkills(this.#template);
|
|
119
|
-
this.#ids.environmentId = await this.#provider.createEnvironment(this.#template);
|
|
120
|
-
for (const upload of prepared.uploads) {
|
|
121
|
-
this.#ids.uploadedFileIds.push(await this.#provider.uploadFile(upload.input));
|
|
122
|
-
}
|
|
123
|
-
this.#ids.agentId = await this.#provider.createAgent(this.#template, prepared.providerSkillRefs);
|
|
124
|
-
if (Object.keys(this.#credentials).length > 0) {
|
|
125
|
-
this.#ids.vaultId = await this.#provider.createVault(`${this.#template.name}-${this.#template.hash.slice(0, 8)}`, {
|
|
126
|
-
antpath_template_hash: this.#template.hash
|
|
127
|
-
});
|
|
128
|
-
for (const server of this.#template.mcpServers) {
|
|
129
|
-
const credential = this.#credentials[server.key];
|
|
130
|
-
if (credential && this.#ids.vaultId) {
|
|
131
|
-
const created = await this.#provider.createCredential(this.#ids.vaultId, server.url, credential);
|
|
132
|
-
this.#ids.credentialIds.push(created.id);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
this.#ids.sessionId = await this.#provider.createSession(this.#ids.agentId, this.#ids.environmentId, this.#ids.vaultId ? [this.#ids.vaultId] : [], await this.#buildSessionResources(prepared));
|
|
137
|
-
const abort = new AbortController();
|
|
138
|
-
this.#signal?.addEventListener("abort", () => abort.abort(this.#signal?.reason), { once: true });
|
|
139
|
-
const timeout = this.#timeoutMs === undefined
|
|
140
|
-
? undefined
|
|
141
|
-
: setTimeout(() => {
|
|
142
|
-
void this.terminate("timeout");
|
|
143
|
-
}, this.#timeoutMs);
|
|
144
|
-
let iterator;
|
|
145
|
-
try {
|
|
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();
|
|
157
|
-
await this.#sendNextMessage();
|
|
158
|
-
let pending = await firstEventPromise;
|
|
159
|
-
while (!pending.done) {
|
|
160
|
-
const event = pending.value;
|
|
161
|
-
this.#emit({ type: "provider.event", event, at: new Date().toISOString() });
|
|
162
|
-
if (event.type === "session.error") {
|
|
163
|
-
await this.#fail(new RunStateError("Provider session.error event received", event));
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
if (event.type === "session.status_terminated") {
|
|
167
|
-
await this.#finish(this.#userTerminated ? "terminated" : "failed", this.#userTerminated ? undefined : "Provider session terminated");
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
if (event.type === "session.status_idle") {
|
|
171
|
-
if (this.#messageIndex < this.#template.messages.length) {
|
|
172
|
-
this.#setStatus("idle_waiting_to_send_next_message");
|
|
173
|
-
await this.#sendNextMessage();
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
await this.#finish("succeeded");
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
pending = await iterator.next();
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
finally {
|
|
184
|
-
if (timeout)
|
|
185
|
-
clearTimeout(timeout);
|
|
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.
|
|
194
|
-
this.#events.close();
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
async #sendNextMessage() {
|
|
198
|
-
if (!this.#ids.sessionId) {
|
|
199
|
-
throw new RunStateError("Cannot send message before session is created");
|
|
200
|
-
}
|
|
201
|
-
const message = this.#template.messages[this.#messageIndex];
|
|
202
|
-
if (message === undefined) {
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
this.#setStatus("running");
|
|
206
|
-
await this.#provider.sendUserMessage(this.#ids.sessionId, message);
|
|
207
|
-
this.#emit({ type: "sdk.message_sent", index: this.#messageIndex, at: new Date().toISOString() });
|
|
208
|
-
this.#messageIndex++;
|
|
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
|
-
}
|
|
231
|
-
async #buildResult(status, error) {
|
|
232
|
-
const session = this.#ids.sessionId ? await this.#provider.getSession(this.#ids.sessionId).catch(() => undefined) : undefined;
|
|
233
|
-
const result = {
|
|
234
|
-
status,
|
|
235
|
-
templateHash: this.#template.hash,
|
|
236
|
-
providerIds: { ...this.#ids, credentialIds: [...this.#ids.credentialIds], uploadedFileIds: [...this.#ids.uploadedFileIds] },
|
|
237
|
-
cleanupState: this.#cleanupState,
|
|
238
|
-
startedAt: this.#startedAt,
|
|
239
|
-
endedAt: new Date().toISOString()
|
|
240
|
-
};
|
|
241
|
-
if (session?.usage)
|
|
242
|
-
result.usage = session.usage;
|
|
243
|
-
if (error)
|
|
244
|
-
result.error = redactSecrets(error);
|
|
245
|
-
if (this.#outputManifest)
|
|
246
|
-
result.outputManifest = this.#outputManifest;
|
|
247
|
-
return result;
|
|
248
|
-
}
|
|
249
|
-
#setStatus(status) {
|
|
250
|
-
this.#status = status;
|
|
251
|
-
const event = { type: "sdk.status", status, at: new Date().toISOString() };
|
|
252
|
-
this.#emit(event);
|
|
253
|
-
}
|
|
254
|
-
#emit(event) {
|
|
255
|
-
this.#logger?.debug?.("antpath event", redactSecrets({ event }));
|
|
256
|
-
this.#events.emit(redactSecrets(event));
|
|
257
|
-
}
|
|
258
|
-
async #finish(status, error) {
|
|
259
|
-
if (this.#terminating) {
|
|
260
|
-
return;
|
|
261
|
-
}
|
|
262
|
-
this.#terminating = true;
|
|
263
|
-
this.#setStatus(status);
|
|
264
|
-
try {
|
|
265
|
-
const result = await this.#buildResult(status, error);
|
|
266
|
-
this.#finalResult = result;
|
|
267
|
-
this.#events.close();
|
|
268
|
-
await this.#events.drainListeners();
|
|
269
|
-
this.#listenerUnsubscribe?.();
|
|
270
|
-
this.#resolveResult(result);
|
|
271
|
-
}
|
|
272
|
-
catch (error_) {
|
|
273
|
-
this.#events.close();
|
|
274
|
-
await this.#events.drainListeners().catch(() => undefined);
|
|
275
|
-
this.#listenerUnsubscribe?.();
|
|
276
|
-
this.#rejectResult(error_ instanceof Error ? error_ : new Error(String(error_)));
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
async #fail(error) {
|
|
280
|
-
if (this.#terminating) {
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
this.#terminating = true;
|
|
284
|
-
this.#setStatus("failed");
|
|
285
|
-
try {
|
|
286
|
-
const result = await this.#buildResult("failed", error.message);
|
|
287
|
-
this.#finalResult = result;
|
|
288
|
-
this.#events.close();
|
|
289
|
-
await this.#events.drainListeners();
|
|
290
|
-
this.#listenerUnsubscribe?.();
|
|
291
|
-
this.#resolveResult(result);
|
|
292
|
-
}
|
|
293
|
-
catch (error_) {
|
|
294
|
-
this.#events.close();
|
|
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 });
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
//# sourceMappingURL=controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/run/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ResolvedTemplate } from "../template/compiler.js";
|
|
2
|
-
import type { SessionResourceInput, UploadFileInput, ProviderSkillRef } from "../providers/types.js";
|
|
3
|
-
export interface PreparedSkills {
|
|
4
|
-
providerSkillRefs: ProviderSkillRef[];
|
|
5
|
-
uploads: Array<{
|
|
6
|
-
input: UploadFileInput;
|
|
7
|
-
mountPath: string;
|
|
8
|
-
}>;
|
|
9
|
-
}
|
|
10
|
-
export declare function prepareSkills(template: ResolvedTemplate): Promise<PreparedSkills>;
|
|
11
|
-
export declare function toSessionResources(uploadedFileIds: string[], prepared: PreparedSkills): SessionResourceInput[];
|
package/dist/skills/packager.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { readFile, stat, readdir } from "node:fs/promises";
|
|
2
|
-
import { basename, join } from "node:path";
|
|
3
|
-
import { zipSync, strToU8 } from "fflate";
|
|
4
|
-
export async function prepareSkills(template) {
|
|
5
|
-
const providerSkillRefs = [];
|
|
6
|
-
const uploads = [];
|
|
7
|
-
for (const skill of template.skills) {
|
|
8
|
-
if (skill.type === "anthropic") {
|
|
9
|
-
providerSkillRefs.push(skill.version ? { type: "anthropic", skill_id: skill.skillId, version: skill.version } : { type: "anthropic", skill_id: skill.skillId });
|
|
10
|
-
}
|
|
11
|
-
else if (skill.type === "custom") {
|
|
12
|
-
providerSkillRefs.push(skill.version ? { type: "custom", skill_id: skill.skillId, version: skill.version } : { type: "custom", skill_id: skill.skillId });
|
|
13
|
-
}
|
|
14
|
-
else if (skill.type === "inline") {
|
|
15
|
-
const filename = `${skill.name}.md`;
|
|
16
|
-
uploads.push({
|
|
17
|
-
mountPath: skill.mountPath ?? `/antpath/skills/${filename}`,
|
|
18
|
-
input: {
|
|
19
|
-
filename,
|
|
20
|
-
mimeType: "text/markdown",
|
|
21
|
-
data: strToU8(skill.content)
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
uploads.push({
|
|
27
|
-
mountPath: skill.mountPath ?? `/antpath/skills/${skill.name}.zip`,
|
|
28
|
-
input: await packageLocalSkill(skill)
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return { providerSkillRefs, uploads };
|
|
33
|
-
}
|
|
34
|
-
export function toSessionResources(uploadedFileIds, prepared) {
|
|
35
|
-
return uploadedFileIds.map((fileId, index) => {
|
|
36
|
-
const resource = { type: "file", fileId };
|
|
37
|
-
const mountPath = prepared.uploads[index]?.mountPath;
|
|
38
|
-
if (mountPath)
|
|
39
|
-
resource.mountPath = mountPath;
|
|
40
|
-
return resource;
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
async function packageLocalSkill(skill) {
|
|
44
|
-
const pathStat = await stat(skill.path);
|
|
45
|
-
if (pathStat.isFile()) {
|
|
46
|
-
return {
|
|
47
|
-
filename: basename(skill.path),
|
|
48
|
-
data: await readFile(skill.path)
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
const entries = await collectFiles(skill.path);
|
|
52
|
-
const zipped = {};
|
|
53
|
-
for (const [relativePath, absolutePath] of entries) {
|
|
54
|
-
zipped[relativePath] = await readFile(absolutePath);
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
filename: `${skill.name}.zip`,
|
|
58
|
-
mimeType: "application/zip",
|
|
59
|
-
data: zipSync(zipped)
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
async function collectFiles(root, current = root) {
|
|
63
|
-
const entries = await readdir(current, { withFileTypes: true });
|
|
64
|
-
const result = [];
|
|
65
|
-
for (const entry of entries) {
|
|
66
|
-
const absolute = join(current, entry.name);
|
|
67
|
-
if (entry.isDirectory()) {
|
|
68
|
-
result.push(...await collectFiles(root, absolute));
|
|
69
|
-
}
|
|
70
|
-
else if (entry.isFile()) {
|
|
71
|
-
result.push([absolute.slice(root.length + 1).replace(/\\/g, "/"), absolute]);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return result.sort(([a], [b]) => a.localeCompare(b));
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=packager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"packager.js","sourceRoot":"","sources":["../../src/skills/packager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/template/compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/template/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAyB,MAAM,eAAe,CAAC;AAEvE,MAAM,UAAU,cAAc,CAC5B,UAA0C;IAE1C,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,UAAsD,EAAE;IAC7E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACxD,CAAC"}
|
package/dist/template/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/template/types.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
DELETED
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import type { ResolvedTemplate } from "./template/compiler.js";
|
|
2
|
-
export type CleanupPolicy = "manual" | "after-output-download" | "on-success" | "always" | "credentials-only";
|
|
3
|
-
export type CredentialInput = {
|
|
4
|
-
type: "static_bearer";
|
|
5
|
-
token: string;
|
|
6
|
-
} | {
|
|
7
|
-
type: "oauth_access_token";
|
|
8
|
-
accessToken: string;
|
|
9
|
-
expiresAt?: string | undefined;
|
|
10
|
-
};
|
|
11
|
-
export interface SessionResourceUpload {
|
|
12
|
-
filename: string;
|
|
13
|
-
data: Uint8Array;
|
|
14
|
-
mimeType?: string | undefined;
|
|
15
|
-
mountPath: string;
|
|
16
|
-
}
|
|
17
|
-
export interface RunOptions {
|
|
18
|
-
variables?: Record<string, string> | undefined;
|
|
19
|
-
credentials?: Record<string, CredentialInput> | undefined;
|
|
20
|
-
timeoutMs?: number | undefined;
|
|
21
|
-
cleanupPolicy?: CleanupPolicy | undefined;
|
|
22
|
-
signal?: AbortSignal | undefined;
|
|
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;
|
|
37
|
-
}
|
|
38
|
-
export type RunEventHandler = (event: RunEvent) => void | Promise<void>;
|
|
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";
|
|
40
|
-
export interface UsageSummary {
|
|
41
|
-
inputTokens?: number | undefined;
|
|
42
|
-
outputTokens?: number | undefined;
|
|
43
|
-
cacheReadInputTokens?: number | undefined;
|
|
44
|
-
cacheCreationInputTokens?: number | undefined;
|
|
45
|
-
totalTokens?: number | undefined;
|
|
46
|
-
estimatedCostUsd?: number | undefined;
|
|
47
|
-
}
|
|
48
|
-
export interface OutputManifestFile {
|
|
49
|
-
providerFileId: string;
|
|
50
|
-
filename: string;
|
|
51
|
-
localPath: string;
|
|
52
|
-
sizeBytes?: number | undefined;
|
|
53
|
-
}
|
|
54
|
-
export interface OutputManifest {
|
|
55
|
-
files: OutputManifestFile[];
|
|
56
|
-
directory: string;
|
|
57
|
-
}
|
|
58
|
-
export interface DownloadOutputsOptions {
|
|
59
|
-
directory: string;
|
|
60
|
-
include?: RegExp | ((file: ProviderFile) => boolean);
|
|
61
|
-
maxFiles?: number;
|
|
62
|
-
maxTotalBytes?: number;
|
|
63
|
-
}
|
|
64
|
-
export interface DownloadOutputsResult {
|
|
65
|
-
manifest: OutputManifest;
|
|
66
|
-
}
|
|
67
|
-
export interface RunResult {
|
|
68
|
-
status: Exclude<RunStatus, "initializing" | "creating_provider_resources" | "running" | "idle_waiting_to_send_next_message" | "downloading_outputs" | "cleanup_pending">;
|
|
69
|
-
templateHash: string;
|
|
70
|
-
providerIds: ProviderResourceIds;
|
|
71
|
-
usage?: UsageSummary | undefined;
|
|
72
|
-
error?: string | undefined;
|
|
73
|
-
outputManifest?: OutputManifest | undefined;
|
|
74
|
-
cleanupState: CleanupState;
|
|
75
|
-
startedAt: string;
|
|
76
|
-
endedAt: string;
|
|
77
|
-
}
|
|
78
|
-
export type RunEvent = {
|
|
79
|
-
type: "sdk.status";
|
|
80
|
-
status: RunStatus;
|
|
81
|
-
at: string;
|
|
82
|
-
} | {
|
|
83
|
-
type: "sdk.message_sent";
|
|
84
|
-
index: number;
|
|
85
|
-
at: string;
|
|
86
|
-
} | {
|
|
87
|
-
type: "sdk.cleanup";
|
|
88
|
-
operation: string;
|
|
89
|
-
status: "success" | "failed" | "skipped";
|
|
90
|
-
at: string;
|
|
91
|
-
error?: string | undefined;
|
|
92
|
-
} | {
|
|
93
|
-
type: "provider.event";
|
|
94
|
-
event: ProviderEvent;
|
|
95
|
-
at: string;
|
|
96
|
-
};
|
|
97
|
-
export interface RunHandle {
|
|
98
|
-
status(): RunStatus;
|
|
99
|
-
streamEvents(): AsyncIterable<RunEvent>;
|
|
100
|
-
wait(): Promise<RunResult>;
|
|
101
|
-
listFiles(): Promise<ProviderFile[]>;
|
|
102
|
-
downloadFile(fileId: string, destination: string): Promise<void>;
|
|
103
|
-
downloadOutputs(options: DownloadOutputsOptions | string): Promise<DownloadOutputsResult>;
|
|
104
|
-
cleanup(policy?: CleanupPolicy | undefined): Promise<CleanupResult>;
|
|
105
|
-
terminate(reason?: string | undefined): Promise<void>;
|
|
106
|
-
usage(): Promise<UsageSummary | undefined>;
|
|
107
|
-
result(): Promise<RunResult>;
|
|
108
|
-
}
|
|
109
|
-
export interface Logger {
|
|
110
|
-
debug?(message: string, fields?: Record<string, unknown> | undefined): void;
|
|
111
|
-
info?(message: string, fields?: Record<string, unknown> | undefined): void;
|
|
112
|
-
warn?(message: string, fields?: Record<string, unknown> | undefined): void;
|
|
113
|
-
error?(message: string, fields?: Record<string, unknown> | undefined): void;
|
|
114
|
-
}
|
|
115
|
-
export interface ProviderResourceIds {
|
|
116
|
-
environmentId?: string | undefined;
|
|
117
|
-
agentId?: string | undefined;
|
|
118
|
-
vaultId?: string | undefined;
|
|
119
|
-
credentialIds: string[];
|
|
120
|
-
sessionId?: string | undefined;
|
|
121
|
-
uploadedFileIds: string[];
|
|
122
|
-
}
|
|
123
|
-
export interface ProviderFile {
|
|
124
|
-
id: string;
|
|
125
|
-
filename: string;
|
|
126
|
-
sizeBytes?: number | undefined;
|
|
127
|
-
downloadable?: boolean | undefined;
|
|
128
|
-
}
|
|
129
|
-
export interface ProviderEvent {
|
|
130
|
-
type: string;
|
|
131
|
-
id?: string | undefined;
|
|
132
|
-
created_at?: string | undefined;
|
|
133
|
-
[key: string]: unknown;
|
|
134
|
-
}
|
|
135
|
-
export interface CleanupOperation {
|
|
136
|
-
operation: string;
|
|
137
|
-
id?: string | undefined;
|
|
138
|
-
status: "success" | "failed" | "skipped";
|
|
139
|
-
error?: string | undefined;
|
|
140
|
-
}
|
|
141
|
-
export interface CleanupResult {
|
|
142
|
-
operations: CleanupOperation[];
|
|
143
|
-
state: CleanupState;
|
|
144
|
-
}
|
|
145
|
-
export type CleanupState = "not_started" | "pending" | "partial" | "cleaned_up";
|
|
146
|
-
export interface ProviderRunResources {
|
|
147
|
-
ids: ProviderResourceIds;
|
|
148
|
-
template: ResolvedTemplate;
|
|
149
|
-
}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/utils/events.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
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;
|
|
4
|
-
export declare class AsyncEventBus<T> {
|
|
5
|
-
#private;
|
|
6
|
-
emit(event: T): void;
|
|
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>;
|
|
26
|
-
stream(): AsyncIterable<T>;
|
|
27
|
-
}
|