@automatalabs/acp-agents 0.15.0 → 0.17.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/dist/acp-client.d.ts +19 -2
- package/dist/acp-client.d.ts.map +1 -1
- package/dist/acp-client.js +224 -9
- package/dist/capabilities.d.ts +21 -8
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +28 -9
- package/dist/client-handlers.d.ts +12 -3
- package/dist/client-handlers.d.ts.map +1 -1
- package/dist/client-handlers.js +22 -7
- package/dist/errors-map.d.ts +8 -1
- package/dist/errors-map.d.ts.map +1 -1
- package/dist/errors-map.js +23 -3
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/pool.d.ts.map +1 -1
- package/dist/pool.js +13 -1
- package/dist/protocol-coverage.d.ts +3 -1
- package/dist/protocol-coverage.d.ts.map +1 -1
- package/dist/protocol-coverage.js +11 -9
- package/dist/runner.d.ts +46 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +179 -31
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ClientCapabilities, CreateTerminalRequest, CreateTerminalResponse, KillTerminalRequest, KillTerminalResponse, ReadTextFileRequest, ReadTextFileResponse, ReleaseTerminalRequest, ReleaseTerminalResponse, TerminalOutputRequest, TerminalOutputResponse, WaitForTerminalExitRequest, WaitForTerminalExitResponse, WriteTextFileRequest, WriteTextFileResponse } from "@agentclientprotocol/sdk";
|
|
1
|
+
import type { ClientCapabilities, ConnectMcpRequest, ConnectMcpResponse, CreateTerminalRequest, CreateTerminalResponse, DisconnectMcpRequest, DisconnectMcpResponse, KillTerminalRequest, KillTerminalResponse, MessageMcpRequest, MessageMcpResponse, ReadTextFileRequest, ReadTextFileResponse, ReleaseTerminalRequest, ReleaseTerminalResponse, TerminalOutputRequest, TerminalOutputResponse, WaitForTerminalExitRequest, WaitForTerminalExitResponse, WriteTextFileRequest, WriteTextFileResponse } from "@agentclientprotocol/sdk";
|
|
2
2
|
export interface AcpSessionContext {
|
|
3
3
|
readonly sessionId: string;
|
|
4
4
|
readonly cwd: string;
|
|
@@ -16,9 +16,15 @@ export interface TerminalHandlers {
|
|
|
16
16
|
killTerminal(params: KillTerminalRequest, ctx: AcpSessionContext): Promise<KillTerminalResponse | void> | KillTerminalResponse | void;
|
|
17
17
|
releaseTerminal(params: ReleaseTerminalRequest, ctx: AcpSessionContext): Promise<ReleaseTerminalResponse | void> | ReleaseTerminalResponse | void;
|
|
18
18
|
}
|
|
19
|
+
export interface McpHandlers {
|
|
20
|
+
connect(params: ConnectMcpRequest, ctx: AcpSessionContext): Promise<ConnectMcpResponse> | ConnectMcpResponse;
|
|
21
|
+
message(params: MessageMcpRequest, ctx: AcpSessionContext): Promise<MessageMcpResponse> | MessageMcpResponse;
|
|
22
|
+
disconnect(params: DisconnectMcpRequest, ctx: AcpSessionContext): Promise<DisconnectMcpResponse | void> | DisconnectMcpResponse | void;
|
|
23
|
+
}
|
|
19
24
|
export interface ClientHandlers {
|
|
20
25
|
fs?: FsHandlers;
|
|
21
26
|
terminal?: TerminalHandlers;
|
|
27
|
+
mcp?: McpHandlers;
|
|
22
28
|
}
|
|
23
29
|
export interface ClientCapabilityOptions {
|
|
24
30
|
/** Advertise unstable ACP elicitation support only when this connection has a runner-wide
|
|
@@ -29,8 +35,11 @@ export interface ClientCapabilityOptions {
|
|
|
29
35
|
/** The client capability advertisement: fs/terminal derived solely from registered consumer
|
|
30
36
|
* handlers, plus the capabilities this client supports natively regardless of handlers —
|
|
31
37
|
* boolean session config options (SessionHandle drives the catalog programmatically and
|
|
32
|
-
* handles `type: "boolean"` entries, e.g. codex-acp's Fast-mode toggle).
|
|
38
|
+
* handles `type: "boolean"` entries, e.g. codex-acp's Fast-mode toggle). The installed ACP SDK
|
|
39
|
+
* has no ClientCapabilities field for MCP-over-ACP; support is declared by sending
|
|
40
|
+
* `mcpServers[{ type: "acp" }]` on session/new and then gated against handlers at that site. */
|
|
33
41
|
export declare function clientCapabilitiesFor(handlers: ClientHandlers | undefined, options?: ClientCapabilityOptions): ClientCapabilities;
|
|
34
|
-
/** Fail-fast validation for JavaScript consumers bypassing the
|
|
42
|
+
/** Fail-fast validation for JavaScript consumers bypassing the grouped handler types. */
|
|
35
43
|
export declare function validateClientHandlers(handlers: ClientHandlers | undefined): void;
|
|
44
|
+
export declare function hasFullMcpHandlers(mcp: McpHandlers | undefined): mcp is McpHandlers;
|
|
36
45
|
//# sourceMappingURL=client-handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-handlers.d.ts","sourceRoot":"","sources":["../src/client-handlers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,CAAC,CACX,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,CAAC;IACxD,aAAa,CAAC,CACZ,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,qBAAqB,GAAG,IAAI,CAAC;CACzE;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CACZ,MAAM,EAAE,qBAAqB,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAAC;IAC5D,cAAc,CACZ,MAAM,EAAE,qBAAqB,EAC7B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAAC;IAC5D,mBAAmB,CACjB,MAAM,EAAE,0BAA0B,EAClC,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,2BAA2B,CAAC,GAAG,2BAA2B,CAAC;IACtE,YAAY,CACV,MAAM,EAAE,mBAAmB,EAC3B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,oBAAoB,GAAG,IAAI,CAAC;IACtE,eAAe,CACb,MAAM,EAAE,sBAAsB,EAC9B,GAAG,EAAE,iBAAiB,GACrB,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,GAAG,uBAAuB,GAAG,IAAI,CAAC;CAC7E;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"client-handlers.d.ts","sourceRoot":"","sources":["../src/client-handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/client-handlers.js
CHANGED
|
@@ -5,10 +5,13 @@ const TERMINAL_HANDLER_METHODS = [
|
|
|
5
5
|
"killTerminal",
|
|
6
6
|
"releaseTerminal",
|
|
7
7
|
];
|
|
8
|
+
const MCP_HANDLER_METHODS = ["connect", "message", "disconnect"];
|
|
8
9
|
/** The client capability advertisement: fs/terminal derived solely from registered consumer
|
|
9
10
|
* handlers, plus the capabilities this client supports natively regardless of handlers —
|
|
10
11
|
* boolean session config options (SessionHandle drives the catalog programmatically and
|
|
11
|
-
* handles `type: "boolean"` entries, e.g. codex-acp's Fast-mode toggle).
|
|
12
|
+
* handles `type: "boolean"` entries, e.g. codex-acp's Fast-mode toggle). The installed ACP SDK
|
|
13
|
+
* has no ClientCapabilities field for MCP-over-ACP; support is declared by sending
|
|
14
|
+
* `mcpServers[{ type: "acp" }]` on session/new and then gated against handlers at that site. */
|
|
12
15
|
export function clientCapabilitiesFor(handlers, options = {}) {
|
|
13
16
|
const capabilities = { session: { configOptions: { boolean: {} } } };
|
|
14
17
|
if (options.elicitation)
|
|
@@ -27,18 +30,30 @@ export function clientCapabilitiesFor(handlers, options = {}) {
|
|
|
27
30
|
capabilities.terminal = true;
|
|
28
31
|
return capabilities;
|
|
29
32
|
}
|
|
30
|
-
/** Fail-fast validation for JavaScript consumers bypassing the
|
|
33
|
+
/** Fail-fast validation for JavaScript consumers bypassing the grouped handler types. */
|
|
31
34
|
export function validateClientHandlers(handlers) {
|
|
32
|
-
if (
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
if (handlers?.terminal) {
|
|
36
|
+
const missing = missingTerminalMethods(handlers.terminal);
|
|
37
|
+
if (missing.length > 0) {
|
|
38
|
+
throw new Error(`clientHandlers.terminal missing required methods: ${missing.join(", ")}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (handlers?.mcp) {
|
|
42
|
+
const missing = missingMcpMethods(handlers.mcp);
|
|
43
|
+
if (missing.length > 0) {
|
|
44
|
+
throw new Error(`clientHandlers.mcp missing required methods: ${missing.join(", ")}`);
|
|
45
|
+
}
|
|
37
46
|
}
|
|
38
47
|
}
|
|
39
48
|
function hasFullTerminalHandlers(terminal) {
|
|
40
49
|
return Boolean(terminal && missingTerminalMethods(terminal).length === 0);
|
|
41
50
|
}
|
|
51
|
+
export function hasFullMcpHandlers(mcp) {
|
|
52
|
+
return Boolean(mcp && missingMcpMethods(mcp).length === 0);
|
|
53
|
+
}
|
|
42
54
|
function missingTerminalMethods(terminal) {
|
|
43
55
|
return TERMINAL_HANDLER_METHODS.filter((method) => typeof terminal[method] !== "function");
|
|
44
56
|
}
|
|
57
|
+
function missingMcpMethods(mcp) {
|
|
58
|
+
return MCP_HANDLER_METHODS.filter((method) => typeof mcp[method] !== "function");
|
|
59
|
+
}
|
package/dist/errors-map.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { WorkflowError } from "@automatalabs/shared-types";
|
|
2
|
+
import type { AuthMethod } from "@agentclientprotocol/sdk";
|
|
3
|
+
export declare const ACP_AUTH_REQUIRED_ERROR_CODE = -32000;
|
|
4
|
+
export interface ErrorMapContext {
|
|
5
|
+
label?: string;
|
|
6
|
+
backendId?: string;
|
|
7
|
+
authMethods?: readonly AuthMethod[];
|
|
8
|
+
}
|
|
2
9
|
export declare function errorText(error: unknown): string;
|
|
3
10
|
/** Map any thrown error from the run path onto a seam-level WorkflowError. */
|
|
4
|
-
export declare function mapThrownError(error: unknown,
|
|
11
|
+
export declare function mapThrownError(error: unknown, labelOrContext?: string | ErrorMapContext): WorkflowError;
|
|
5
12
|
//# sourceMappingURL=errors-map.d.ts.map
|
package/dist/errors-map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors-map.d.ts","sourceRoot":"","sources":["../src/errors-map.ts"],"names":[],"mappings":"AAYA,OAAO,EAA0C,aAAa,EAAqB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"errors-map.d.ts","sourceRoot":"","sources":["../src/errors-map.ts"],"names":[],"mappings":"AAYA,OAAO,EAA0C,aAAa,EAAqB,MAAM,4BAA4B,CAAC;AACtH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,eAAO,MAAM,4BAA4B,SAAS,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;CACrC;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAahD;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,aAAa,CA4BvG"}
|
package/dist/errors-map.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
// the engine retries). WorkflowErrors raised inside the ladder (SCHEMA_NONCOMPLIANCE,
|
|
12
12
|
// AGENT_EMPTY_OUTPUT) pass through unchanged.
|
|
13
13
|
import { classifyProviderLimit, isWorkflowError, WorkflowError, WorkflowErrorCode } from "@automatalabs/shared-types";
|
|
14
|
+
export const ACP_AUTH_REQUIRED_ERROR_CODE = -32000;
|
|
14
15
|
export function errorText(error) {
|
|
15
16
|
if (error instanceof Error)
|
|
16
17
|
return error.message;
|
|
@@ -30,18 +31,37 @@ export function errorText(error) {
|
|
|
30
31
|
return String(error);
|
|
31
32
|
}
|
|
32
33
|
/** Map any thrown error from the run path onto a seam-level WorkflowError. */
|
|
33
|
-
export function mapThrownError(error,
|
|
34
|
+
export function mapThrownError(error, labelOrContext) {
|
|
34
35
|
// Already a seam error (e.g. SCHEMA_NONCOMPLIANCE / AGENT_EMPTY_OUTPUT raised in-band).
|
|
35
36
|
if (isWorkflowError(error))
|
|
36
37
|
return error;
|
|
38
|
+
const context = typeof labelOrContext === "string" ? { label: labelOrContext } : (labelOrContext ?? {});
|
|
37
39
|
const message = errorText(error);
|
|
40
|
+
if (isAcpAuthRequired(error, message)) {
|
|
41
|
+
return new WorkflowError(authRequiredMessage(message, context), WorkflowErrorCode.AUTH_REQUIRED, {
|
|
42
|
+
recoverable: false,
|
|
43
|
+
agentLabel: context.label,
|
|
44
|
+
details: error,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
38
47
|
const { matched, resetHint } = classifyProviderLimit(message);
|
|
39
48
|
if (matched) {
|
|
40
|
-
return new WorkflowError(message || "Provider usage/quota limit reached", WorkflowErrorCode.PROVIDER_USAGE_LIMIT, { recoverable: false, agentLabel: label, resetHint, details: error });
|
|
49
|
+
return new WorkflowError(message || "Provider usage/quota limit reached", WorkflowErrorCode.PROVIDER_USAGE_LIMIT, { recoverable: false, agentLabel: context.label, resetHint, details: error });
|
|
41
50
|
}
|
|
42
51
|
return new WorkflowError(message || "Subagent execution failed", WorkflowErrorCode.AGENT_EXECUTION_ERROR, {
|
|
43
52
|
recoverable: true,
|
|
44
|
-
agentLabel: label,
|
|
53
|
+
agentLabel: context.label,
|
|
45
54
|
details: error,
|
|
46
55
|
});
|
|
47
56
|
}
|
|
57
|
+
function isAcpAuthRequired(error, message) {
|
|
58
|
+
return (Boolean(error && typeof error === "object" && error.code === ACP_AUTH_REQUIRED_ERROR_CODE) &&
|
|
59
|
+
/^Authentication required\b/i.test(message));
|
|
60
|
+
}
|
|
61
|
+
function authRequiredMessage(message, context) {
|
|
62
|
+
const backend = context.backendId ? ` (${context.backendId})` : "";
|
|
63
|
+
const detail = message.replace(/^Authentication required:?\s*/i, "").trim();
|
|
64
|
+
const methodIds = (context.authMethods ?? []).map((method) => method.id).filter(Boolean);
|
|
65
|
+
const hint = methodIds.length > 0 ? `; run authenticate() with one of: ${methodIds.join(", ")}` : "";
|
|
66
|
+
return `ACP agent${backend} requires authentication${detail ? `: ${detail}` : ""}${hint}`;
|
|
67
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { AcpAgentRunner, createAcpRunner, selectBackend } from "./runner.js";
|
|
2
|
-
export type { AcpRunnerOptions, DeleteSessionOptions, ListSessionsOptions, ReattachSessionOptions, } from "./runner.js";
|
|
2
|
+
export type { AcpRunnerOptions, AuthenticateOptions, AuthMethodsOptions, DisableProviderOptions, DeleteSessionOptions, ListProvidersOptions, ListSessionsOptions, LogoutOptions, ReattachSessionOptions, SetProviderOptions, } from "./runner.js";
|
|
3
3
|
export { InteractiveSession } from "./interactive.js";
|
|
4
4
|
export type { InteractiveSessionOptions, InteractiveTurn } from "./interactive.js";
|
|
5
5
|
export { AGENT_METHODS, CLIENT_METHODS } from "@agentclientprotocol/sdk";
|
|
6
|
-
export type { AgentNotificationMethod, AgentNotificationParamsByMethod, AgentRequestMethod, AgentRequestParamsByMethod, AgentRequestResponsesByMethod, CompleteElicitationNotification, CreateElicitationRequest, CreateElicitationResponse, DeleteSessionRequest, DeleteSessionResponse, ElicitationAcceptAction, ElicitationCapabilities, ElicitationContentValue, ElicitationFormCapabilities, ElicitationFormMode, ElicitationId, ElicitationPropertySchema, ElicitationRequestScope, ElicitationSchema, ElicitationSchemaType, ElicitationSessionScope, ElicitationUrlCapabilities, ElicitationUrlMode, ListSessionsRequest, ListSessionsResponse, LoadSessionRequest, LoadSessionResponse, ResumeSessionRequest, ResumeSessionResponse, SessionMode, SessionModeState, SessionInfo, SendRequestOptions, } from "@agentclientprotocol/sdk";
|
|
6
|
+
export type { AgentNotificationMethod, AgentNotificationParamsByMethod, AgentAuthCapabilities, AgentRequestMethod, AgentRequestParamsByMethod, AgentRequestResponsesByMethod, AuthCapabilities, AuthEnvVar, AuthenticateRequest, AuthenticateResponse, AuthMethod, AuthMethodAgent, AuthMethodEnvVar, AuthMethodId, AuthMethodTerminal, DisableProviderRequest, DisableProviderResponse, CompleteElicitationNotification, ConnectMcpRequest, ConnectMcpResponse, CreateElicitationRequest, CreateElicitationResponse, DeleteSessionRequest, DeleteSessionResponse, DisconnectMcpRequest, DisconnectMcpResponse, ElicitationAcceptAction, ElicitationCapabilities, ElicitationContentValue, ElicitationFormCapabilities, ElicitationFormMode, ElicitationId, ElicitationPropertySchema, ElicitationRequestScope, ElicitationSchema, ElicitationSchemaType, ElicitationSessionScope, ElicitationUrlCapabilities, ElicitationUrlMode, ListProvidersRequest, ListProvidersResponse, ListSessionsRequest, ListSessionsResponse, LlmProtocol, LoadSessionRequest, LoadSessionResponse, LogoutCapabilities, LogoutRequest, LogoutResponse, McpConnectionId, McpServerAcp, McpServerAcpId, MessageMcpNotification, MessageMcpRequest, MessageMcpResponse, ResumeSessionRequest, ResumeSessionResponse, ProviderCurrentConfig, ProviderId, ProviderInfo, ProvidersCapabilities, SessionMode, SessionModeState, SessionInfo, SendRequestOptions, SetProviderRequest, SetProviderResponse, } from "@agentclientprotocol/sdk";
|
|
7
7
|
export { BACKENDS_ENV, registryWithRunBackends, resolveBackendRegistry } from "./registry.js";
|
|
8
8
|
export type { BackendRegistry, CustomBackendConfig, RegisteredBackend } from "./registry.js";
|
|
9
9
|
export { PooledConnection, SessionHandle } from "./acp-client.js";
|
|
@@ -15,7 +15,7 @@ export type { NegotiatedCapabilities } from "./capabilities.js";
|
|
|
15
15
|
export { AcpAgentPool, resolvePoolSize } from "./pool.js";
|
|
16
16
|
export type { AcpPoolOptions, AcpPoolDeps } from "./pool.js";
|
|
17
17
|
export { clientCapabilitiesFor } from "./client-handlers.js";
|
|
18
|
-
export type { AcpSessionContext, ClientCapabilityOptions, ClientHandlers, FsHandlers, TerminalHandlers, } from "./client-handlers.js";
|
|
18
|
+
export type { AcpSessionContext, ClientCapabilityOptions, ClientHandlers, FsHandlers, McpHandlers, TerminalHandlers, } from "./client-handlers.js";
|
|
19
19
|
export { ACP_CROSS_CUTTING_EVENT_NAMES, TypedEventEmitter, emitSessionUpdate } from "./events.js";
|
|
20
20
|
export type { AcpRunnerEventMap, AcpEventName, AcpEventListener, AcpEventContext, AcpEventSink, AcpSessionUpdate, AcpUpdateKind, AcpElicitationCompleteEvent, AcpElicitationEvent, AcpElicitationPendingEvent, AcpPermissionPendingEvent, AcpPermissionEvent, AcpRawMessageEvent, AcpBackendErrorEvent, } from "./events.js";
|
|
21
21
|
export type { Backend, BackendId, BuiltinBackendId, SessionMetaInputs, SpawnConfig, StructuredSource, } from "./backend.js";
|
|
@@ -25,8 +25,10 @@ export { CustomAcpBackend } from "./backends/custom.js";
|
|
|
25
25
|
export { decidePermission } from "./permissions.js";
|
|
26
26
|
export type { ElicitationResolver, PermissionResolver, ToolPolicy } from "./permissions.js";
|
|
27
27
|
export { UsageAccumulator } from "./usage.js";
|
|
28
|
+
export type { McpAcpServerConfig, McpServerConfig } from "@automatalabs/shared-types";
|
|
28
29
|
export { toJsonSchema, toStrictJsonSchema } from "./schema-strict.js";
|
|
29
30
|
export { extractValidated, findJsonBlock, parseFinalJson, resolveStructuredOutput, validateValue, } from "./structured-output.js";
|
|
30
31
|
export type { ResolveOptions, StructuredSession } from "./structured-output.js";
|
|
31
|
-
export { errorText, mapThrownError } from "./errors-map.js";
|
|
32
|
+
export { ACP_AUTH_REQUIRED_ERROR_CODE, errorText, mapThrownError } from "./errors-map.js";
|
|
33
|
+
export type { ErrorMapContext } from "./errors-map.js";
|
|
32
34
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7E,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -27,4 +27,4 @@ export { decidePermission } from "./permissions.js";
|
|
|
27
27
|
export { UsageAccumulator } from "./usage.js";
|
|
28
28
|
export { toJsonSchema, toStrictJsonSchema } from "./schema-strict.js";
|
|
29
29
|
export { extractValidated, findJsonBlock, parseFinalJson, resolveStructuredOutput, validateValue, } from "./structured-output.js";
|
|
30
|
-
export { errorText, mapThrownError } from "./errors-map.js";
|
|
30
|
+
export { ACP_AUTH_REQUIRED_ERROR_CODE, errorText, mapThrownError } from "./errors-map.js";
|
package/dist/pool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AACvD,OAAO,EAAoB,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,cAAc,CAAC;AACvD,OAAO,EAAoB,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAKhF,MAAM,WAAW,cAAc;IAC7B,mGAAmG;IACnG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;6FAC6F;AAC7F,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,kGAAkG;AAClG,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAUvD;AAED,qBAAa,YAAY;IAUrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IATvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IACtE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAS;gBAGvB,OAAO,GAAE,cAAmB,EACX,IAAI,GAAE,WAAgB;IAOzC,8FAA8F;IACxF,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;IAehF;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,cAAc;IAStB,+DAA+D;IAC/D,OAAO,CAAC,IAAI;IAOZ,iEAAiE;IAC3D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;IAMtB,gGAAgG;IAChG,OAAO,CAAC,WAAW;CAGpB"}
|
package/dist/pool.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { PooledConnection } from "./acp-client.js";
|
|
2
2
|
import { validateClientHandlers } from "./client-handlers.js";
|
|
3
|
+
import { mapThrownError } from "./errors-map.js";
|
|
3
4
|
const DEFAULT_POOL_SIZE = 1;
|
|
4
5
|
const POOL_SIZE_ENV = "AGENTPRISM_ACP_POOL_SIZE";
|
|
5
6
|
/** Resolve the per-backend pool size: explicit option wins, else env, else 1. Clamped to >= 1. */
|
|
@@ -34,7 +35,18 @@ export class AcpAgentPool {
|
|
|
34
35
|
if (this.disposed)
|
|
35
36
|
throw new Error("ACP agent pool is disposed");
|
|
36
37
|
const connection = this.selectConnection(backend);
|
|
37
|
-
|
|
38
|
+
try {
|
|
39
|
+
return await connection.openSession(opts);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
if (opts.signal?.aborted)
|
|
43
|
+
throw error;
|
|
44
|
+
throw mapThrownError(error, {
|
|
45
|
+
label: opts.label,
|
|
46
|
+
backendId: connection.backendId,
|
|
47
|
+
authMethods: connection.capabilities?.authMethods,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
38
50
|
}
|
|
39
51
|
/**
|
|
40
52
|
* Pick the connection to host the next session. Runs SYNCHRONOUSLY (no await) through to the
|
|
@@ -7,7 +7,9 @@ export type ClientMethodCoverage = "served" | "pending";
|
|
|
7
7
|
* the client rejects it until a driven wrapper can route updates, permissions, and terminals. */
|
|
8
8
|
export type AgentMethodCoverage = "driven" | "passthrough" | "guarded";
|
|
9
9
|
/** Enforceable definition of "full ACP spec support": every SDK method constant is classified
|
|
10
|
-
* here, and the tripwire test fails when an SDK bump silently widens or shrinks the protocol.
|
|
10
|
+
* here, and the tripwire test fails when an SDK bump silently widens or shrinks the protocol.
|
|
11
|
+
* Agent side: 15 operational methods are driven (plus initialize), 1 is guarded (session/fork),
|
|
12
|
+
* and the passthrough remainder is nes/*, document/*, and mcp/message. */
|
|
11
13
|
export declare const CLIENT_METHOD_COVERAGE: Record<ClientMethod, ClientMethodCoverage>;
|
|
12
14
|
export declare const AGENT_METHOD_COVERAGE: Record<AgentMethod, AgentMethodCoverage>;
|
|
13
15
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-coverage.d.ts","sourceRoot":"","sources":["../src/protocol-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEzE,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,KAAK,YAAY,GAAG,OAAO,CAAC,OAAO,cAAc,CAAC,CAAC;AACnD,KAAK,WAAW,GAAG,OAAO,CAAC,OAAO,aAAa,CAAC,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,CAAC;AACxD;kGACkG;AAClG,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;AAEvE;
|
|
1
|
+
{"version":3,"file":"protocol-coverage.d.ts","sourceRoot":"","sources":["../src/protocol-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEzE,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7B,KAAK,YAAY,GAAG,OAAO,CAAC,OAAO,cAAc,CAAC,CAAC;AACnD,KAAK,WAAW,GAAG,OAAO,CAAC,OAAO,aAAa,CAAC,CAAC;AAEjD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,SAAS,CAAC;AACxD;kGACkG;AAClG,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;AAEvE;;;2EAG2E;AAC3E,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAe7E,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,mBAAmB,CA6B1E,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { AGENT_METHODS, CLIENT_METHODS } from "@agentclientprotocol/sdk";
|
|
2
2
|
/** Enforceable definition of "full ACP spec support": every SDK method constant is classified
|
|
3
|
-
* here, and the tripwire test fails when an SDK bump silently widens or shrinks the protocol.
|
|
3
|
+
* here, and the tripwire test fails when an SDK bump silently widens or shrinks the protocol.
|
|
4
|
+
* Agent side: 15 operational methods are driven (plus initialize), 1 is guarded (session/fork),
|
|
5
|
+
* and the passthrough remainder is nes/*, document/*, and mcp/message. */
|
|
4
6
|
export const CLIENT_METHOD_COVERAGE = {
|
|
5
7
|
[CLIENT_METHODS.session_request_permission]: "served",
|
|
6
8
|
[CLIENT_METHODS.session_update]: "served",
|
|
@@ -11,18 +13,18 @@ export const CLIENT_METHOD_COVERAGE = {
|
|
|
11
13
|
[CLIENT_METHODS.terminal_release]: "served",
|
|
12
14
|
[CLIENT_METHODS.terminal_wait_for_exit]: "served",
|
|
13
15
|
[CLIENT_METHODS.terminal_kill]: "served",
|
|
14
|
-
[CLIENT_METHODS.mcp_connect]: "
|
|
15
|
-
[CLIENT_METHODS.mcp_message]: "
|
|
16
|
-
[CLIENT_METHODS.mcp_disconnect]: "
|
|
16
|
+
[CLIENT_METHODS.mcp_connect]: "served",
|
|
17
|
+
[CLIENT_METHODS.mcp_message]: "served",
|
|
18
|
+
[CLIENT_METHODS.mcp_disconnect]: "served",
|
|
17
19
|
[CLIENT_METHODS.elicitation_create]: "served",
|
|
18
20
|
[CLIENT_METHODS.elicitation_complete]: "served",
|
|
19
21
|
};
|
|
20
22
|
export const AGENT_METHOD_COVERAGE = {
|
|
21
23
|
[AGENT_METHODS.initialize]: "driven",
|
|
22
|
-
[AGENT_METHODS.authenticate]: "
|
|
23
|
-
[AGENT_METHODS.providers_list]: "
|
|
24
|
-
[AGENT_METHODS.providers_set]: "
|
|
25
|
-
[AGENT_METHODS.providers_disable]: "
|
|
24
|
+
[AGENT_METHODS.authenticate]: "driven",
|
|
25
|
+
[AGENT_METHODS.providers_list]: "driven",
|
|
26
|
+
[AGENT_METHODS.providers_set]: "driven",
|
|
27
|
+
[AGENT_METHODS.providers_disable]: "driven",
|
|
26
28
|
[AGENT_METHODS.session_new]: "driven",
|
|
27
29
|
[AGENT_METHODS.session_load]: "driven",
|
|
28
30
|
[AGENT_METHODS.session_set_mode]: "driven",
|
|
@@ -35,7 +37,7 @@ export const AGENT_METHOD_COVERAGE = {
|
|
|
35
37
|
[AGENT_METHODS.session_fork]: "guarded",
|
|
36
38
|
[AGENT_METHODS.session_resume]: "driven",
|
|
37
39
|
[AGENT_METHODS.session_close]: "driven",
|
|
38
|
-
[AGENT_METHODS.logout]: "
|
|
40
|
+
[AGENT_METHODS.logout]: "driven",
|
|
39
41
|
[AGENT_METHODS.nes_start]: "passthrough",
|
|
40
42
|
[AGENT_METHODS.nes_suggest]: "passthrough",
|
|
41
43
|
[AGENT_METHODS.nes_accept]: "passthrough",
|
package/dist/runner.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type AgentResult, type AgentRunner, type RunOptions } from "@automatalabs/shared-types";
|
|
2
|
-
import type { ListSessionsResponse } from "@agentclientprotocol/sdk";
|
|
2
|
+
import type { AuthenticateRequest, AuthenticateResponse, AuthMethod, DisableProviderRequest, DisableProviderResponse, ListProvidersResponse, ListSessionsResponse, LogoutResponse, SetProviderRequest, SetProviderResponse } from "@agentclientprotocol/sdk";
|
|
3
3
|
import type { TSchema } from "typebox";
|
|
4
4
|
import { type AcpPoolOptions } from "./pool.js";
|
|
5
5
|
import { type AcpEventListener, type AcpEventName } from "./events.js";
|
|
@@ -17,6 +17,13 @@ interface LifecycleRoutingOptions {
|
|
|
17
17
|
/** Host-owned cancellation while the lifecycle request is in flight. */
|
|
18
18
|
signal?: AbortSignal;
|
|
19
19
|
}
|
|
20
|
+
/** Options for AcpAgentRunner.authMethods(). */
|
|
21
|
+
export interface AuthMethodsOptions {
|
|
22
|
+
/** Model spec used only to select the backend process. */
|
|
23
|
+
model?: string;
|
|
24
|
+
/** Coarse tier consulted only when `model` is unset. */
|
|
25
|
+
tier?: string;
|
|
26
|
+
}
|
|
20
27
|
/** Options for AcpAgentRunner.listSessions(). */
|
|
21
28
|
export interface ListSessionsOptions extends LifecycleRoutingOptions {
|
|
22
29
|
/** Optional absolute working-directory filter. */
|
|
@@ -33,6 +40,32 @@ export interface DeleteSessionOptions extends LifecycleRoutingOptions {
|
|
|
33
40
|
/** Generic ACP `_meta` passthrough for session/delete. */
|
|
34
41
|
meta?: Record<string, unknown>;
|
|
35
42
|
}
|
|
43
|
+
interface AuthProviderRoutingOptions extends LifecycleRoutingOptions {
|
|
44
|
+
/** Generic ACP `_meta` passthrough for the request. */
|
|
45
|
+
meta?: Record<string, unknown>;
|
|
46
|
+
}
|
|
47
|
+
/** Options for AcpAgentRunner.authenticate(). */
|
|
48
|
+
export interface AuthenticateOptions extends AuthProviderRoutingOptions {
|
|
49
|
+
/** Authentication method id advertised by runner.authMethods(). */
|
|
50
|
+
methodId: AuthenticateRequest["methodId"];
|
|
51
|
+
}
|
|
52
|
+
/** Options for AcpAgentRunner.listProviders(). */
|
|
53
|
+
export interface ListProvidersOptions extends AuthProviderRoutingOptions {
|
|
54
|
+
}
|
|
55
|
+
/** Options for AcpAgentRunner.setProvider(). */
|
|
56
|
+
export interface SetProviderOptions extends AuthProviderRoutingOptions {
|
|
57
|
+
providerId: SetProviderRequest["providerId"];
|
|
58
|
+
apiType: SetProviderRequest["apiType"];
|
|
59
|
+
baseUrl: SetProviderRequest["baseUrl"];
|
|
60
|
+
headers?: SetProviderRequest["headers"];
|
|
61
|
+
}
|
|
62
|
+
/** Options for AcpAgentRunner.disableProvider(). */
|
|
63
|
+
export interface DisableProviderOptions extends AuthProviderRoutingOptions {
|
|
64
|
+
providerId: DisableProviderRequest["providerId"];
|
|
65
|
+
}
|
|
66
|
+
/** Options for AcpAgentRunner.logout(). */
|
|
67
|
+
export interface LogoutOptions extends AuthProviderRoutingOptions {
|
|
68
|
+
}
|
|
36
69
|
/** Options for AcpAgentRunner.loadSession() and resumeSession(). */
|
|
37
70
|
export interface ReattachSessionOptions extends InteractiveSessionOptions {
|
|
38
71
|
/** Existing backend session id to route before the lifecycle request is sent. */
|
|
@@ -99,6 +132,18 @@ export declare class AcpAgentRunner implements AgentRunner {
|
|
|
99
132
|
* is one).
|
|
100
133
|
*/
|
|
101
134
|
openSession(opts: InteractiveSessionOptions): Promise<InteractiveSession>;
|
|
135
|
+
/** Return the selected backend's initialize-advertised authentication methods. */
|
|
136
|
+
authMethods(opts?: AuthMethodsOptions): Promise<AuthMethod[]>;
|
|
137
|
+
/** Drive ACP authenticate on the selected backend. */
|
|
138
|
+
authenticate(opts: AuthenticateOptions): Promise<AuthenticateResponse | void>;
|
|
139
|
+
/** List configurable providers from the selected backend. */
|
|
140
|
+
listProviders(opts?: ListProvidersOptions): Promise<ListProvidersResponse>;
|
|
141
|
+
/** Configure one provider on the selected backend. */
|
|
142
|
+
setProvider(opts: SetProviderOptions): Promise<SetProviderResponse | void>;
|
|
143
|
+
/** Disable one provider on the selected backend. */
|
|
144
|
+
disableProvider(opts: DisableProviderOptions): Promise<DisableProviderResponse | void>;
|
|
145
|
+
/** Logout through the selected backend. */
|
|
146
|
+
logout(opts?: LogoutOptions): Promise<LogoutResponse | void>;
|
|
102
147
|
/** List persisted ACP sessions from the selected backend. */
|
|
103
148
|
listSessions(opts?: ListSessionsOptions): Promise<ListSessionsResponse>;
|
|
104
149
|
/** Delete a persisted ACP session from the selected backend. */
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAmBA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|