antpath 0.1.1 → 0.2.1
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 +40 -4
- package/dist/cli.mjs +367 -0
- package/dist/cli.mjs.sha256 +1 -0
- package/dist/client.js +4 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/platform/client.d.ts +138 -7
- package/dist/platform/client.js +98 -2
- package/dist/platform/client.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/docs/credentials.md +84 -2
- package/docs/events.md +129 -0
- package/docs/skills.md +2 -0
- package/package.json +5 -2
- package/references/architecture-decisions.md +110 -64
- package/references/implementation-plan.md +66 -44
package/dist/platform/client.js
CHANGED
|
@@ -12,10 +12,11 @@ export class AntpathPlatformClient {
|
|
|
12
12
|
baseUrl;
|
|
13
13
|
apiToken;
|
|
14
14
|
fetchImpl;
|
|
15
|
+
defaultSecrets;
|
|
15
16
|
constructor(options) {
|
|
16
17
|
const record = options;
|
|
17
18
|
if ("anthropicApiKey" in record || "providerApiKey" in record) {
|
|
18
|
-
throw new Error("Platform client does not accept provider keys");
|
|
19
|
+
throw new Error("Platform client does not accept provider keys at the client root — pass them inside `defaultSecrets.anthropic` or per-call `secrets.anthropic`");
|
|
19
20
|
}
|
|
20
21
|
if (!options.apiToken) {
|
|
21
22
|
throw new Error("apiToken is required");
|
|
@@ -23,11 +24,26 @@ export class AntpathPlatformClient {
|
|
|
23
24
|
this.baseUrl = new URL(options.baseUrl.endsWith("/") ? options.baseUrl : `${options.baseUrl}/`);
|
|
24
25
|
this.apiToken = options.apiToken;
|
|
25
26
|
this.fetchImpl = options.fetch ?? fetch;
|
|
27
|
+
if (options.defaultSecrets) {
|
|
28
|
+
this.defaultSecrets = options.defaultSecrets;
|
|
29
|
+
emitDefaultSecretsDeprecationWarning();
|
|
30
|
+
}
|
|
26
31
|
}
|
|
27
32
|
async submitRun(request) {
|
|
33
|
+
const secrets = request.secrets ?? this.defaultSecrets;
|
|
34
|
+
if (!secrets) {
|
|
35
|
+
throw new Error("submitRun requires `secrets` either per-call or via `defaultSecrets` on the client");
|
|
36
|
+
}
|
|
37
|
+
if (request.proxyEndpoints && request.proxyEndpoints.length > 0) {
|
|
38
|
+
// Catch the most common mistake at submission time so the error
|
|
39
|
+
// doesn't only surface deep inside the BFF parser. The BFF still
|
|
40
|
+
// performs the same cross-validation authoritatively.
|
|
41
|
+
validateProxyAuth(request.proxyEndpoints, secrets.proxyEndpointAuth);
|
|
42
|
+
}
|
|
43
|
+
const payload = { ...request, secrets };
|
|
28
44
|
return this.request("/api/runs", {
|
|
29
45
|
method: "POST",
|
|
30
|
-
body: JSON.stringify(
|
|
46
|
+
body: JSON.stringify(payload)
|
|
31
47
|
});
|
|
32
48
|
}
|
|
33
49
|
async getRun(workspaceId, runId) {
|
|
@@ -104,4 +120,84 @@ function extractErrorMessage(body) {
|
|
|
104
120
|
function hasRun(input) {
|
|
105
121
|
return Boolean(input && typeof input === "object" && "run" in input);
|
|
106
122
|
}
|
|
123
|
+
let defaultSecretsWarned = false;
|
|
124
|
+
function emitDefaultSecretsDeprecationWarning() {
|
|
125
|
+
// Emit once per process to avoid log spam in long-running apps that
|
|
126
|
+
// construct many clients (e.g. one per workspace). Tests that need
|
|
127
|
+
// to observe the warning can reset the flag via
|
|
128
|
+
// {@link resetDefaultSecretsDeprecationWarning}.
|
|
129
|
+
if (defaultSecretsWarned)
|
|
130
|
+
return;
|
|
131
|
+
defaultSecretsWarned = true;
|
|
132
|
+
console.warn("[antpath] AntpathPlatformClientOptions.defaultSecrets is deprecated and will be removed in a future release. " +
|
|
133
|
+
"Pass `secrets` explicitly on every submitRun call so the active credentials are visible to the agent reading the call site.");
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Test-only: reset the "warn once" guard for the `defaultSecrets`
|
|
137
|
+
* deprecation message. Production code should not call this.
|
|
138
|
+
*
|
|
139
|
+
* @internal
|
|
140
|
+
*/
|
|
141
|
+
export function resetDefaultSecretsDeprecationWarning() {
|
|
142
|
+
defaultSecretsWarned = false;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Cross-validate a `proxyEndpoints` policy list against a
|
|
146
|
+
* `secrets.proxyEndpointAuth` value list. Throws on the first
|
|
147
|
+
* mismatch with an actionable, field-named error message.
|
|
148
|
+
*
|
|
149
|
+
* Mirrors the BFF's authoritative validator so misconfigured
|
|
150
|
+
* submissions fail fast in the SDK before going over the wire. Use it
|
|
151
|
+
* directly in tests or wrappers — `submitRun` already invokes it when
|
|
152
|
+
* `proxyEndpoints` is non-empty.
|
|
153
|
+
*/
|
|
154
|
+
export function validateProxyAuth(endpoints, auth) {
|
|
155
|
+
const authList = auth ?? [];
|
|
156
|
+
const endpointNames = new Set(endpoints.map((e) => e.name));
|
|
157
|
+
const authNames = new Set();
|
|
158
|
+
for (const entry of authList) {
|
|
159
|
+
if (authNames.has(entry.name)) {
|
|
160
|
+
throw new Error(`secrets.proxyEndpointAuth contains duplicate name '${entry.name}'`);
|
|
161
|
+
}
|
|
162
|
+
authNames.add(entry.name);
|
|
163
|
+
if (!endpointNames.has(entry.name)) {
|
|
164
|
+
throw new Error(`secrets.proxyEndpointAuth[].name='${entry.name}' has no matching proxyEndpoints[].name`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
for (const endpoint of endpoints) {
|
|
168
|
+
const match = authList.find((a) => a.name === endpoint.name);
|
|
169
|
+
if (!match) {
|
|
170
|
+
throw new Error(`proxyEndpoints[].name='${endpoint.name}' is missing a matching secrets.proxyEndpointAuth entry`);
|
|
171
|
+
}
|
|
172
|
+
if (match.value.type !== endpoint.authShape.type) {
|
|
173
|
+
throw new Error(`secrets.proxyEndpointAuth[name='${endpoint.name}'].value.type='${match.value.type}' does not match proxyEndpoints[name='${endpoint.name}'].authShape.type='${endpoint.authShape.type}'`);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Build an `allowedHosts` list for `environment.network` that includes
|
|
179
|
+
* the antpath proxy host (and optionally Anthropic's MCP host) when
|
|
180
|
+
* the caller is hand-rolling networking. The worker auto-injects the
|
|
181
|
+
* proxy host server-side when proxy endpoints are declared; use this
|
|
182
|
+
* helper when you also want client-side template validation parity
|
|
183
|
+
* (e.g. to assert at build time that a `limited` config can reach the
|
|
184
|
+
* surfaces you intended).
|
|
185
|
+
*
|
|
186
|
+
* The proxy host is derived from the dashboard URL. Pass the same
|
|
187
|
+
* value you used for the `AntpathPlatformClient` `baseUrl`.
|
|
188
|
+
*/
|
|
189
|
+
export function buildPlatformAllowedHosts(input) {
|
|
190
|
+
const result = [];
|
|
191
|
+
try {
|
|
192
|
+
result.push(new URL(input.dashboardBaseUrl).host);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
throw new Error("buildPlatformAllowedHosts: dashboardBaseUrl must be an absolute URL");
|
|
196
|
+
}
|
|
197
|
+
for (const host of input.extraHosts ?? []) {
|
|
198
|
+
if (!result.includes(host))
|
|
199
|
+
result.push(host);
|
|
200
|
+
}
|
|
201
|
+
return result;
|
|
202
|
+
}
|
|
107
203
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/platform/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/platform/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { ProviderEvent } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Type guards that narrow a `ProviderEvent` by the documented Claude Managed
|
|
4
|
+
* Agents event `type` strings. These do not assert anything about the event
|
|
5
|
+
* payload shape beyond the `type` field — payload contents are passed through
|
|
6
|
+
* verbatim from the provider and may evolve.
|
|
7
|
+
*
|
|
8
|
+
* Reference: https://platform.claude.com/docs/en/managed-agents/events-and-streaming.md
|
|
9
|
+
*/
|
|
10
|
+
export declare function isAgentEvent<E extends ProviderEvent>(event: E): event is E & {
|
|
11
|
+
type: `agent.${string}`;
|
|
12
|
+
};
|
|
13
|
+
export declare function isUserEvent<E extends ProviderEvent>(event: E): event is E & {
|
|
14
|
+
type: `user.${string}`;
|
|
15
|
+
};
|
|
16
|
+
export declare function isSessionEvent<E extends ProviderEvent>(event: E): event is E & {
|
|
17
|
+
type: `session.${string}`;
|
|
18
|
+
};
|
|
19
|
+
export declare function isSpanEvent<E extends ProviderEvent>(event: E): event is E & {
|
|
20
|
+
type: `span.${string}`;
|
|
21
|
+
};
|
|
22
|
+
export declare function isAgentMessage<E extends ProviderEvent>(event: E): event is E & {
|
|
23
|
+
type: "agent.message";
|
|
24
|
+
};
|
|
25
|
+
export declare function isAgentThinking<E extends ProviderEvent>(event: E): event is E & {
|
|
26
|
+
type: "agent.thinking";
|
|
27
|
+
};
|
|
28
|
+
export declare function isAgentToolUse<E extends ProviderEvent>(event: E): event is E & {
|
|
29
|
+
type: "agent.tool_use";
|
|
30
|
+
};
|
|
31
|
+
export declare function isAgentToolResult<E extends ProviderEvent>(event: E): event is E & {
|
|
32
|
+
type: "agent.tool_result";
|
|
33
|
+
};
|
|
34
|
+
export declare function isAgentMcpToolUse<E extends ProviderEvent>(event: E): event is E & {
|
|
35
|
+
type: "agent.mcp_tool_use";
|
|
36
|
+
};
|
|
37
|
+
export declare function isAgentMcpToolResult<E extends ProviderEvent>(event: E): event is E & {
|
|
38
|
+
type: "agent.mcp_tool_result";
|
|
39
|
+
};
|
|
40
|
+
export declare function isAgentCustomToolUse<E extends ProviderEvent>(event: E): event is E & {
|
|
41
|
+
type: "agent.custom_tool_use";
|
|
42
|
+
};
|
|
43
|
+
export declare function isUserMessage<E extends ProviderEvent>(event: E): event is E & {
|
|
44
|
+
type: "user.message";
|
|
45
|
+
};
|
|
46
|
+
export declare function isSessionStatusRunning<E extends ProviderEvent>(event: E): event is E & {
|
|
47
|
+
type: "session.status_running";
|
|
48
|
+
};
|
|
49
|
+
export declare function isSessionStatusIdle<E extends ProviderEvent>(event: E): event is E & {
|
|
50
|
+
type: "session.status_idle";
|
|
51
|
+
};
|
|
52
|
+
export declare function isSessionStatusRescheduled<E extends ProviderEvent>(event: E): event is E & {
|
|
53
|
+
type: "session.status_rescheduled";
|
|
54
|
+
};
|
|
55
|
+
export declare function isSessionStatusTerminated<E extends ProviderEvent>(event: E): event is E & {
|
|
56
|
+
type: "session.status_terminated";
|
|
57
|
+
};
|
|
58
|
+
export declare function isSessionError<E extends ProviderEvent>(event: E): event is E & {
|
|
59
|
+
type: "session.error";
|
|
60
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guards that narrow a `ProviderEvent` by the documented Claude Managed
|
|
3
|
+
* Agents event `type` strings. These do not assert anything about the event
|
|
4
|
+
* payload shape beyond the `type` field — payload contents are passed through
|
|
5
|
+
* verbatim from the provider and may evolve.
|
|
6
|
+
*
|
|
7
|
+
* Reference: https://platform.claude.com/docs/en/managed-agents/events-and-streaming.md
|
|
8
|
+
*/
|
|
9
|
+
// Prefix groupers — documented `{domain}.{action}` convention.
|
|
10
|
+
export function isAgentEvent(event) {
|
|
11
|
+
return typeof event.type === "string" && event.type.startsWith("agent.");
|
|
12
|
+
}
|
|
13
|
+
export function isUserEvent(event) {
|
|
14
|
+
return typeof event.type === "string" && event.type.startsWith("user.");
|
|
15
|
+
}
|
|
16
|
+
export function isSessionEvent(event) {
|
|
17
|
+
return typeof event.type === "string" && event.type.startsWith("session.");
|
|
18
|
+
}
|
|
19
|
+
export function isSpanEvent(event) {
|
|
20
|
+
return typeof event.type === "string" && event.type.startsWith("span.");
|
|
21
|
+
}
|
|
22
|
+
// Agent events.
|
|
23
|
+
export function isAgentMessage(event) {
|
|
24
|
+
return event.type === "agent.message";
|
|
25
|
+
}
|
|
26
|
+
export function isAgentThinking(event) {
|
|
27
|
+
return event.type === "agent.thinking";
|
|
28
|
+
}
|
|
29
|
+
export function isAgentToolUse(event) {
|
|
30
|
+
return event.type === "agent.tool_use";
|
|
31
|
+
}
|
|
32
|
+
export function isAgentToolResult(event) {
|
|
33
|
+
return event.type === "agent.tool_result";
|
|
34
|
+
}
|
|
35
|
+
export function isAgentMcpToolUse(event) {
|
|
36
|
+
return event.type === "agent.mcp_tool_use";
|
|
37
|
+
}
|
|
38
|
+
export function isAgentMcpToolResult(event) {
|
|
39
|
+
return event.type === "agent.mcp_tool_result";
|
|
40
|
+
}
|
|
41
|
+
export function isAgentCustomToolUse(event) {
|
|
42
|
+
return event.type === "agent.custom_tool_use";
|
|
43
|
+
}
|
|
44
|
+
// User events.
|
|
45
|
+
export function isUserMessage(event) {
|
|
46
|
+
return event.type === "user.message";
|
|
47
|
+
}
|
|
48
|
+
// Session events.
|
|
49
|
+
export function isSessionStatusRunning(event) {
|
|
50
|
+
return event.type === "session.status_running";
|
|
51
|
+
}
|
|
52
|
+
export function isSessionStatusIdle(event) {
|
|
53
|
+
return event.type === "session.status_idle";
|
|
54
|
+
}
|
|
55
|
+
export function isSessionStatusRescheduled(event) {
|
|
56
|
+
return event.type === "session.status_rescheduled";
|
|
57
|
+
}
|
|
58
|
+
export function isSessionStatusTerminated(event) {
|
|
59
|
+
return event.type === "session.status_terminated";
|
|
60
|
+
}
|
|
61
|
+
export function isSessionError(event) {
|
|
62
|
+
return event.type === "session.error";
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=known-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"known-events.js","sourceRoot":"","sources":["../../src/providers/known-events.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,+DAA+D;AAE/D,MAAM,UAAU,YAAY,CAA0B,KAAQ;IAC5D,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,WAAW,CAA0B,KAAQ;IAC3D,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,cAAc,CAA0B,KAAQ;IAC9D,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,WAAW,CAA0B,KAAQ;IAC3D,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED,gBAAgB;AAEhB,MAAM,UAAU,cAAc,CAA0B,KAAQ;IAC9D,OAAO,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,eAAe,CAA0B,KAAQ;IAC/D,OAAO,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,cAAc,CAA0B,KAAQ;IAC9D,OAAO,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAA0B,KAAQ;IACjE,OAAO,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAA0B,KAAQ;IACjE,OAAO,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAA0B,KAAQ;IACpE,OAAO,KAAK,CAAC,IAAI,KAAK,uBAAuB,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAA0B,KAAQ;IACpE,OAAO,KAAK,CAAC,IAAI,KAAK,uBAAuB,CAAC;AAChD,CAAC;AAED,eAAe;AAEf,MAAM,UAAU,aAAa,CAA0B,KAAQ;IAC7D,OAAO,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC;AACvC,CAAC;AAED,kBAAkB;AAElB,MAAM,UAAU,sBAAsB,CAA0B,KAAQ;IACtE,OAAO,KAAK,CAAC,IAAI,KAAK,wBAAwB,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAA0B,KAAQ;IACnE,OAAO,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,0BAA0B,CAA0B,KAAQ;IAC1E,OAAO,KAAK,CAAC,IAAI,KAAK,4BAA4B,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAA0B,KAAQ;IACzE,OAAO,KAAK,CAAC,IAAI,KAAK,2BAA2B,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAA0B,KAAQ;IAC9D,OAAO,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC;AACxC,CAAC"}
|
package/dist/run/controller.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ManagedAgentProvider } from "../providers/types.js";
|
|
2
2
|
import type { ResolvedTemplate } from "../template/compiler.js";
|
|
3
|
-
import type { CleanupPolicy, CleanupResult, CredentialInput, DownloadOutputsOptions, DownloadOutputsResult, Logger, ProviderFile, RunEvent, RunResult, RunStatus, UsageSummary } from "../types.js";
|
|
3
|
+
import type { CleanupPolicy, CleanupResult, CredentialInput, DownloadOutputsOptions, DownloadOutputsResult, Logger, ProviderFile, RunEvent, RunEventHandler, RunResult, RunStatus, SessionResourceUpload, UsageSummary } from "../types.js";
|
|
4
4
|
export interface RunControllerOptions {
|
|
5
5
|
provider: ManagedAgentProvider;
|
|
6
6
|
template: ResolvedTemplate;
|
|
@@ -9,6 +9,9 @@ export interface RunControllerOptions {
|
|
|
9
9
|
timeoutMs?: number | undefined;
|
|
10
10
|
signal?: AbortSignal | undefined;
|
|
11
11
|
logger?: Logger | undefined;
|
|
12
|
+
onEvent?: RunEventHandler | undefined;
|
|
13
|
+
onEventAbortOnError?: boolean | undefined;
|
|
14
|
+
sessionResources?: readonly SessionResourceUpload[] | undefined;
|
|
12
15
|
}
|
|
13
16
|
export declare class RunController {
|
|
14
17
|
#private;
|
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
|
}
|