acpx 0.13.0 → 0.13.2

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.
@@ -1,4 +1,4 @@
1
- import { AgentCapabilities, AnyMessage, ContentBlock, McpServer, McpServer as McpServer$1, RequestPermissionRequest, SessionConfigOption, SessionNotification, SetSessionConfigOptionResponse, ToolKind } from "@agentclientprotocol/sdk";
1
+ import { AgentCapabilities, AnyMessage, ContentBlock, CreateElicitationRequest, ElicitationContentValue, JsonRpcId, McpServer, McpServer as McpServer$1, RequestPermissionRequest, SessionConfigOption, SessionNotification, SetSessionConfigOptionResponse, ToolKind } from "@agentclientprotocol/sdk";
2
2
  //#region src/prompt-content.d.ts
3
3
  type PromptInput = ContentBlock[];
4
4
  //#endregion
@@ -19,6 +19,27 @@ type AcpPermissionDecision = {
19
19
  } | {
20
20
  outcome: "cancel";
21
21
  };
22
+ declare const ACP_ELICITATION_MODES: readonly ["form", "url"];
23
+ type AcpElicitationMode = (typeof ACP_ELICITATION_MODES)[number];
24
+ type AcpElicitationRequest = CreateElicitationRequest;
25
+ type AcpElicitationContext = {
26
+ /** Exact JSON-RPC id of the outer `elicitation/create` request. */
27
+ requestId: JsonRpcId;
28
+ /** Aborts with the request itself or its owning prompt turn/session. */
29
+ signal: AbortSignal;
30
+ };
31
+ type AcpElicitationResponseMeta = {
32
+ _meta?: Record<string, unknown> | null;
33
+ };
34
+ type AcpElicitationResponse = ({
35
+ action: "accept";
36
+ content?: Record<string, ElicitationContentValue> | null;
37
+ } & AcpElicitationResponseMeta) | ({
38
+ action: "decline";
39
+ } & AcpElicitationResponseMeta) | ({
40
+ action: "cancel";
41
+ } & AcpElicitationResponseMeta);
42
+ type AcpElicitationHandler = (request: AcpElicitationRequest, context: AcpElicitationContext) => Promise<AcpElicitationResponse>;
22
43
  declare const PERMISSION_MODES: readonly ["approve-all", "approve-reads", "deny-all"];
23
44
  type PermissionMode = (typeof PERMISSION_MODES)[number];
24
45
  declare const AUTH_POLICIES: readonly ["skip", "fail"];
@@ -83,6 +104,7 @@ type AcpClientOptions = {
83
104
  authPolicy?: AuthPolicy;
84
105
  fs?: boolean;
85
106
  terminal?: boolean;
107
+ elicitationModes?: readonly AcpElicitationMode[];
86
108
  suppressSdkConsoleErrors?: boolean;
87
109
  verbose?: boolean;
88
110
  sessionOptions?: {
@@ -272,5 +294,5 @@ type SessionAgentOptions = {
272
294
  env?: Record<string, string>;
273
295
  };
274
296
  //#endregion
275
- export { AcpPermissionRequest as a, NonInteractivePermissionPolicy as c, PermissionStats as d, SessionRecord as f, AcpPermissionDecision as i, PermissionMode as l, SystemPromptOption as n, AuthPolicy as o, PromptInput as p, AcpClientOptions as r, McpServer$1 as s, SessionAgentOptions as t, PermissionPolicy as u };
276
- //# sourceMappingURL=session-options-CTdZvr68.d.ts.map
297
+ export { SessionRecord as _, AcpElicitationHandler as a, AcpElicitationResponse as c, AuthPolicy as d, McpServer$1 as f, PermissionStats as g, PermissionPolicy as h, AcpElicitationContext as i, AcpPermissionDecision as l, PermissionMode as m, SystemPromptOption as n, AcpElicitationMode as o, NonInteractivePermissionPolicy as p, AcpClientOptions as r, AcpElicitationRequest as s, SessionAgentOptions as t, AcpPermissionRequest as u, PromptInput as v };
298
+ //# sourceMappingURL=session-options-DwRDODlr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-options-DwRDODlr.d.ts","names":[],"sources":["../src/prompt-content.ts","../src/types.ts","../src/runtime/engine/session-options.ts"],"mappings":";;KAEY,cAAc;;;KCgBd;EACV;EACA,KAAK;EACL,cAAc;;KAGJ;EACN;;EACA;;EACA;;EACA;;EACA;;cAEO;KACD,6BAA6B;KAC7B,wBAAwB;KAExB;;EAEV,WAAW;;EAEX,QAAQ;;KAGL;EACH,QAAQ;;KAGE;EAEN;EACA,UAAU,eAAe;IACvB;EACD;IAAsB;EACtB;IAAqB;KAEhB,yBACV,SAAS,uBACT,SAAS,0BACN,QAAQ;cAiBA;KACD,yBAAyB;cAExB;KACD,qBAAqB;cAEpB;KACD,yCAAyC;cAExC;KACD,iCAAiC;KAEjC;EACV;EACA;EACA;EACA,gBAAgB;;KAGN;EACV;EACA;EACA;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;EACA;EACA;;KAQU,oBAAoB;KACpB;KAwCA;EACV;EACA;EACA;EACA;;KAGU;KASA;KAEA;EACV,QAAQ;EACR,QAAQ;EACR;EACA;EACA;;KAGU;EACV;EACA;EACA;EACA;EACA;EACA;;KAgDU;EACV;EACA;EACA;EACA,aAAa;EACb,gBAAgB;EAChB,4BAA4B;EAC5B,mBAAmB;EACnB,kBAAkB;EAClB,aAAa;EACb;EACA;EACA,4BAA4B;EAC5B;EACA;EACA;IACE;IACA;IACA;IACA;MAA0B;;IAC1B,MAAM;;EAER,gBAAgB,WAAW,qBAAqB,SAAS;EACzD,sBAAsB,WAAW,qBAAqB,SAAS;EAC/D,mBAAmB,cAAc;EACjC,qBAAqB,WAAW;EAChC,0BAA0B,OAAO;EACjC,uBACE,KAAK,sBACL;IAAO,QAAQ;QACZ,QAAQ;;cAGF;KACD;EACV;EACA;IACE;IACA;;;KAIQ;EACV;EACA;;KAGU;EAEN;;EAGA;IACE;IACA;;;EAIF,OAAO;;EAGP,OAAO;;KAGD;EACV;EACA;EACA;EACA;EACA;EACA;;KAGU;EAEN;;EAGA,OAAO;;KAGD;EACV;EACA;EACA;EACA,SAAS;EACT;;KAGU;EAEN;;EAGA;IACE;IACA;;;EAIF;;EAGA,SAAS;;KAGH;EACV;EACA,SAAS;;KAGC;EACV,SAAS;EACT,cAAc,eAAe;EAC7B;;KAGU;EAEN,MAAM;;EAGN,OAAO;;KAID;EACV;EACA;EACA;EACA;EACA;EACA;;KAGU;EACV;EACA;;KAGU;EACV;EACA;EACA;;KAYU;EACV;EACA;EACA;EACA,yBAAyB;EACzB;EACA;EACA;EACA,qBAAqB;EACrB,iBAAiB;EACjB;IACE;IACA;IACA;IACA;MAA2B;;IAC3B,MAAM;;;KAIE;EACV;EACA;EACA;EACA;;KAGU;EACV,eAAe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,UAAU;EACV;EACA;EACA;EACA;EACA;EACA;EACA,sBAAsB,OAAO;EAC7B;EACA;EACA;EACA,oBAAoB;EACpB;EACA,UAAU;EACV;EACA,wBAAwB;EACxB,kBAAkB;EAClB,qBAAqB,eAAe;EACpC,OAAO;EACP,eAAe;;;;KC5bL;EAAgC;;KAEhC;EACV;EACA;EACA;EACA,eAAe;;;;;;;;;;EAUf,MAAM"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "acpx",
3
- "version": "0.13.0",
3
+ "version": "0.13.2",
4
4
  "description": "Headless CLI client for the Agent Client Protocol (ACP) — talk to coding agents from the command line",
5
5
  "keywords": [
6
6
  "acp",
@@ -80,38 +80,38 @@
80
80
  "viewer:typecheck": "tsc -p examples/flows/replay-viewer/tsconfig.json --noEmit && tsc -p examples/flows/replay-viewer/tsconfig.server.json --noEmit"
81
81
  },
82
82
  "dependencies": {
83
- "@agentclientprotocol/sdk": "^1.3.0",
83
+ "@agentclientprotocol/sdk": "^1.4.0",
84
84
  "commander": "^15.0.0",
85
85
  "skillflag": "^0.2.1",
86
- "tsx": "^4.23.1",
86
+ "tsx": "^4.23.12",
87
87
  "zod": "^4.4.3"
88
88
  },
89
89
  "devDependencies": {
90
- "@stryker-mutator/core": "^9.6.1",
91
- "@types/node": "^26.1.1",
92
- "@types/react": "^19.2.17",
93
- "@types/react-dom": "^19.2.3",
90
+ "@stryker-mutator/core": "^10.0.0",
91
+ "@types/node": "^26.3.0",
92
+ "@types/react": "^19.2.18",
93
+ "@types/react-dom": "^19.2.5",
94
94
  "@types/react-test-renderer": "^19.1.0",
95
95
  "@types/ws": "^8.18.1",
96
96
  "@typescript/native": "npm:typescript@^7.0.2",
97
- "@vitejs/plugin-react": "^6.0.4",
98
- "@xyflow/react": "^12.11.2",
97
+ "@vitejs/plugin-react": "^6.1.0",
98
+ "@xyflow/react": "^12.11.5",
99
99
  "c8": "^12.0.0",
100
100
  "elkjs": "^0.12.0",
101
101
  "fast-json-patch": "^3.1.1",
102
102
  "husky": "^9.1.7",
103
- "lint-staged": "^17.2.0",
104
- "markdownlint-cli2": "^0.23.1",
105
- "oxfmt": "^0.60.0",
106
- "oxlint": "^1.75.0",
103
+ "lint-staged": "^17.3.0",
104
+ "markdownlint-cli2": "^0.23.2",
105
+ "oxfmt": "^0.65.0",
106
+ "oxlint": "^1.80.0",
107
107
  "oxlint-tsgolint": "^7.0.2001",
108
108
  "react": "^19.2.8",
109
109
  "react-dom": "^19.2.8",
110
110
  "react-test-renderer": "^19.2.8",
111
111
  "tsdown": "^0.22.14",
112
112
  "typescript": "npm:@typescript/typescript6@^6.0.2",
113
- "vite": "^8.1.5",
114
- "ws": "^8.21.1"
113
+ "vite": "^8.2.2",
114
+ "ws": "^8.21.3"
115
115
  },
116
116
  "lint-staged": {
117
117
  "*.{js,ts}": [
@@ -189,6 +189,8 @@ Behavior:
189
189
  - Current codex-acp releases expose `model` and `reasoning_effort` as separate config options.
190
190
  - `--model <id>`: Claude-compatible adapters may consume session creation metadata; other agents must advertise a model config option or legacy `models` metadata.
191
191
  - `set model <id>`: uses `session/set_config_option` for advertised model config options and preserves `session/set_model` for explicitly advertised legacy models.
192
+ - Model switches can change or remove reasoning-effort controls. ACPX reconciles saved non-mode selections with the accepted response; select a supported effort again if needed.
193
+ - After reconnect, ACPX restores the saved model when advertised and replays saved config selections before prompting. A replay failure is reported instead of silently using defaults.
192
194
  - `set-mode`/`set` route through queue-owner IPC when active, otherwise reconnect directly.
193
195
 
194
196
  ### Sessions
@@ -422,7 +424,9 @@ Example automation:
422
424
 
423
425
  ```bash
424
426
  acpx --format json codex exec 'review changed files' \
425
- | jq -r 'select(.type=="tool_call") | [.status, .title] | @tsv'
427
+ | jq -r 'select(.method=="session/update") | .params.update
428
+ | select(.sessionUpdate=="tool_call" or .sessionUpdate=="tool_call_update")
429
+ | [(.status // "-"), (.title // "-")] | @tsv'
426
430
  ```
427
431
 
428
432
  ## Permission modes
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-BeKvumq9.d.ts","names":[],"sources":["../src/acp/model-support.ts","../src/acp/client.ts"],"mappings":";;;KAGY;EACV;EACA;EACA,iBAAiB;IACf;IACA;;;cAaS;KAED,4CAA4C;cAE3C;KAKD,0CAA0C;cAEzC,uCAAuC;WACzC;WACA,QAAQ;EAEL,YAAA,iBAAiB,QAAQ;;iBAgBvB,iCACd,iBACC,SAAS;;;KC4HP;EACH;EACA;EACA;;KAGU;EACV;EACA;EACA,gBAAgB;EAChB,SAAS;EACT;EACA;;KAGU;EACV;EACA,gBAAgB;EAChB,SAAS;EACT;EACA;;KAGU,sBAAsB;KA8B7B;KAmCA,uBAAuB,KAAK,iCAC/B,QAAQ,KAAK;KAEH;EACV;EACA,QAAQ,OAAO;EACf;EACA,QAAQ;EACR;;KAGU;EACV;EACA;EACA;EACA,WAAW;;cA+HA;UACH;UACA;UACA;UACA;UACA;UACA;mBAQS;mBAMA;mBACA;UACT;UACA;UACA;UACA;UACA;UACA;mBAIS;mBACA;UACT;UACA;UACA;UACA;mBACS;mBACA;mBACA;mBACA;EAEL,YAAA,SAAS;MAgCjB,oBAAoB;EAIxB;EAIA,sBAAsB;EAItB,6BAA6B;EAW7B;EAIA;EAIA;EAIA;EAIA,iBACE,UAAU,KACR;EAWJ;EAIA,qBAAqB;IACnB,iBAAiB;IACjB,4BAA4B;IAC5B,mBAAmB;IACnB;IACA;IACA;IACA;;UAuBM;UASA;EAcR,mBAAmB;EASnB,gBAAgB;EAUV,SAAS;UAoDD;UA4BN;UAiBM;UAcA;UAqBN;UA0DM;UAsBA;UAoBA;UAgCN;EAuDF,cAAc,eAAyB,QAAQ;EA8C/C,YAAY,mBAAmB,eAAyB,QAAQ;EAKhE,uBACJ,mBACA,cACA,UAAS,qBACR,QAAQ;EAgCL,cAAc,mBAAmB,eAAyB,QAAQ;UAiBhE;UAWA;EAKF,OAAO,mBAAmB,QAAQ,uBAAuB,QAAQ;UAyC/D;UAYA;UAQA;EAOF,eAAe,mBAAmB,iBAAiB;EAcnD,uBACJ,mBACA,kBACA,gBACC,QAAQ;EAmBL,gBACJ,mBACA,iBACA,kBAAkB,uBACjB,QAAQ;UAoBG;UAqBA;UAeN;UAoBA;UAgBA;UAeA;EAOF,OAAO,oBAAoB;EAW3B,aAAa,oBAAoB;EAcjC,aAAa,SAAQ,sBAA2B,QAAQ;EAKxD,6BAA6B;EAS7B,mBAAmB,kBAAiB,QAAQ;EAqC5C,SAAS;UA8CD;UAgBN;UAYM;UAiBN;UAkBA;UAOA;UAOA;UAcA;UASA;UA8DM;UA0BN;UA2CA;UAQA;UAUA;UAcM;UA6BA;UAqBA;UAsBN;UAiBA;UAmBM;UAiBN;UAQA;UAYA;UAgBA;UAuBA;UASA;UAUM;UA0BN;UAYM;UASA;UASA;UAWA;UAMA;UAMA;UAIA;UAMN;UASA;UAQA;UAaA;UAWM;UAkBA;EAgCR,0BAA0B;IAC9B;IACA;MACE"}