@agentclientprotocol/codex-acp 1.1.9 → 1.1.10

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.
Files changed (3) hide show
  1. package/README.md +2 -1
  2. package/dist/index.js +137 -66
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -13,8 +13,9 @@ Use [OpenAI Codex](https://github.com/openai/codex) from [Agent Client Protocol]
13
13
  - Text prompts, embedded context, images, resource links, and additional workspace directories.
14
14
  - Shell command, file change, permission request, MCP tool call, terminal output, reasoning, plan, web search, image generation, image view, token usage, and review events.
15
15
  - Subagent launches as standard ACP tool calls, with Codex thread identity and activity details in namespaced `_meta.codex.subagent` metadata.
16
+ - Session-scoped long-running goals through the provider-neutral [goal extension](docs/goal-extension.md).
16
17
  - Client-provided MCP servers over command-based stdio config and HTTP transport.
17
- - Slash commands: `/status`, `/mcp`, `/skills`, `/review`, `/review-branch`, `/review-commit`, `/compact`, and `/logout`, as well as configured skills.
18
+ - Slash commands: `/status`, `/mcp`, `/skills`, `/goal`, `/review`, `/review-branch`, `/review-commit`, `/compact`, and `/logout`, as well as configured skills.
18
19
 
19
20
  ## Installation
20
21
 
package/dist/index.js CHANGED
@@ -23556,22 +23556,37 @@ function createAgentTextThoughtChunk(text, messageId, meta3) {
23556
23556
  return createAgentThoughtChunk({ type: "text", text }, messageId, meta3);
23557
23557
  }
23558
23558
 
23559
- // src/AcpExtensions.ts
23560
- var LEGACY_SET_SESSION_MODEL_METHOD = "session/set_model";
23561
- var SESSION_STEERING_METHOD = "_session/steering";
23562
- var GOAL_CONTROL_METHOD = "_codex/session/goal_control";
23563
- function isExtMethodRequest(request) {
23564
- return request.method === "authentication/status" || request.method === "authentication/logout" || request.method === LEGACY_SET_SESSION_MODEL_METHOD || request.method === GOAL_CONTROL_METHOD || request.method === SESSION_STEERING_METHOD;
23565
- }
23559
+ // src/GoalExtension.ts
23560
+ var GOAL_EXTENSION_VERSION = 1;
23561
+ var GOAL_CONTROL_METHOD = "_session/goal";
23562
+ var LEGACY_GOAL_CONTROL_METHOD = "_codex/session/goal_control";
23563
+ var GOAL_CONTROL_ACTIONS = ["pause", "clear"];
23566
23564
 
23567
23565
  // src/ThreadGoalSnapshot.ts
23566
+ function toGoalStatus(status) {
23567
+ switch (status) {
23568
+ case "active":
23569
+ case "paused":
23570
+ case "blocked":
23571
+ case "complete":
23572
+ return status;
23573
+ case "usageLimited":
23574
+ case "budgetLimited":
23575
+ return "limited";
23576
+ }
23577
+ }
23578
+ function toUnixMilliseconds(timestampSeconds) {
23579
+ return timestampSeconds * 1e3;
23580
+ }
23568
23581
  function toThreadGoalSnapshot(goal) {
23569
23582
  return {
23570
23583
  objective: goal.objective.trim(),
23571
- status: goal.status,
23584
+ status: toGoalStatus(goal.status),
23572
23585
  tokenBudget: goal.tokenBudget,
23586
+ tokensUsed: goal.tokensUsed,
23573
23587
  timeUsedSeconds: goal.timeUsedSeconds,
23574
- createdAt: goal.createdAt,
23588
+ createdAt: toUnixMilliseconds(goal.createdAt),
23589
+ updatedAt: toUnixMilliseconds(goal.updatedAt),
23575
23590
  controlMethod: GOAL_CONTROL_METHOD
23576
23591
  };
23577
23592
  }
@@ -23809,9 +23824,7 @@ ${event.details}` : "";
23809
23824
  return null;
23810
23825
  }
23811
23826
  this.sessionState.currentGoal = goalSnapshot;
23812
- return this.createCodexSessionInfoUpdate({
23813
- goal: goalSnapshot
23814
- });
23827
+ return this.createGoalSessionInfoUpdate(goalSnapshot);
23815
23828
  }
23816
23829
  createThreadGoalClearedEvent(_event) {
23817
23830
  this.sessionState.goalRevision += 1;
@@ -23819,9 +23832,13 @@ ${event.details}` : "";
23819
23832
  return null;
23820
23833
  }
23821
23834
  this.sessionState.currentGoal = null;
23822
- return this.createCodexSessionInfoUpdate({
23823
- goal: null
23824
- });
23835
+ return this.createGoalSessionInfoUpdate(null);
23836
+ }
23837
+ createGoalSessionInfoUpdate(goal) {
23838
+ return {
23839
+ sessionUpdate: "session_info_update",
23840
+ _meta: { goal }
23841
+ };
23825
23842
  }
23826
23843
  createReasoningDeltaEvent(event) {
23827
23844
  this.seenReasoningDeltaItemIds.add(event.itemId);
@@ -25350,6 +25367,11 @@ var ChatGptAuthMethod = {
25350
25367
  name: "ChatGPT",
25351
25368
  description: "Use ChatGPT to authenticate"
25352
25369
  };
25370
+ var ChatGptDeviceCodeAuthMethod = {
25371
+ id: "chat-gpt-device-code",
25372
+ name: "ChatGPT (device code)",
25373
+ description: "Sign in to ChatGPT by opening a verification page and entering a one-time code"
25374
+ };
25353
25375
  var GatewayAuthMethod = {
25354
25376
  id: "gateway",
25355
25377
  name: "Custom model gateway",
@@ -25366,6 +25388,9 @@ function getCodexAuthMethods(clientCapabilities, env = process.env) {
25366
25388
  if (!env["NO_BROWSER"]) {
25367
25389
  authMethods.push(ChatGptAuthMethod);
25368
25390
  }
25391
+ if (clientSupportsUrlElicitation(clientCapabilities)) {
25392
+ authMethods.push(ChatGptDeviceCodeAuthMethod);
25393
+ }
25369
25394
  const supportsGatewayAuth = clientCapabilities?.auth?._meta?.["gateway"] === true;
25370
25395
  if (supportsGatewayAuth) {
25371
25396
  authMethods.push(GatewayAuthMethod);
@@ -25373,7 +25398,7 @@ function getCodexAuthMethods(clientCapabilities, env = process.env) {
25373
25398
  return authMethods;
25374
25399
  }
25375
25400
  function isCodexAuthRequest(request) {
25376
- return request.methodId === "api-key" || request.methodId === "chat-gpt" || request.methodId === "gateway";
25401
+ return request.methodId === "api-key" || request.methodId === "chat-gpt" || request.methodId === "chat-gpt-device-code" || request.methodId === "gateway";
25377
25402
  }
25378
25403
 
25379
25404
  // node_modules/open/index.js
@@ -26136,7 +26161,7 @@ var package_default = {
26136
26161
  publishConfig: {
26137
26162
  access: "public"
26138
26163
  },
26139
- version: "1.1.9",
26164
+ version: "1.1.10",
26140
26165
  description: "",
26141
26166
  main: "dist/index.js",
26142
26167
  bin: {
@@ -26197,7 +26222,7 @@ var package_default = {
26197
26222
  },
26198
26223
  dependencies: {
26199
26224
  "@agentclientprotocol/sdk": "^1.3.0",
26200
- "@openai/codex": "^0.145.0",
26225
+ "@openai/codex": "^0.146.1",
26201
26226
  diff: "^9.0.0",
26202
26227
  open: "^11.0.0",
26203
26228
  "vscode-jsonrpc": "^9.0.1",
@@ -26283,43 +26308,24 @@ var CodexAcpClient = class {
26283
26308
  getHomePath() {
26284
26309
  return this.configPath;
26285
26310
  }
26286
- async authenticate(authRequest) {
26311
+ async authenticate(authRequest, urlElicitationRequester) {
26287
26312
  if (!isCodexAuthRequest(authRequest)) {
26288
26313
  throw RequestError.invalidRequest();
26289
26314
  }
26290
26315
  this.gatewayConfig = null;
26291
26316
  switch (authRequest.methodId) {
26292
- case "api-key": {
26293
- const apiKey = authRequest._meta?.["api-key"]?.apiKey ?? this.readApiKeyFromEnv();
26294
- return await this.authenticateWithApiKey(apiKey);
26295
- }
26296
- case "chat-gpt": {
26297
- const accountResponse = await this.codexClient.accountRead({ refreshToken: true });
26298
- if (accountResponse.account?.type === "chatgpt") {
26299
- return true;
26300
- }
26301
- const loginCompletedPromise = this.awaitNextLoginCompleted();
26302
- const loginResponse = await this.codexClient.accountLogin({ type: "chatgpt" });
26303
- if (loginResponse.type == "chatgpt") {
26304
- await open_default(loginResponse.authUrl);
26305
- }
26306
- const result = await loginCompletedPromise;
26307
- return result.success;
26308
- }
26317
+ case "api-key":
26318
+ return await this.authenticateWithApiKey(authRequest);
26319
+ case "chat-gpt":
26320
+ return await this.authenticateWithChatGpt();
26321
+ case "chat-gpt-device-code":
26322
+ return await this.authenticateWithChatGptDeviceCode(urlElicitationRequester);
26309
26323
  case "gateway":
26310
- if (!authRequest._meta) throw RequestError.invalidRequest();
26311
- const gatewaySettings = authRequest._meta["gateway"];
26312
- if (!gatewaySettings) throw RequestError.invalidRequest();
26313
- this.applyGatewayConfig({
26314
- baseUrl: gatewaySettings.baseUrl,
26315
- apiType: GatewayAuthMethod._meta.gateway.protocol,
26316
- headers: gatewaySettings.headers,
26317
- providerName: gatewaySettings.providerName
26318
- });
26319
- return true;
26324
+ return this.authenticateWithGateway(authRequest);
26320
26325
  }
26321
26326
  }
26322
- async authenticateWithApiKey(apiKey) {
26327
+ async authenticateWithApiKey(authRequest) {
26328
+ const apiKey = authRequest._meta?.["api-key"]?.apiKey ?? this.readApiKeyFromEnv();
26323
26329
  const loginCompletedPromise = this.awaitNextLoginCompleted();
26324
26330
  await this.codexClient.accountLogin({
26325
26331
  type: "apiKey",
@@ -26328,6 +26334,56 @@ var CodexAcpClient = class {
26328
26334
  const result = await loginCompletedPromise;
26329
26335
  return result.success;
26330
26336
  }
26337
+ async authenticateWithChatGpt() {
26338
+ const accountResponse = await this.codexClient.accountRead({ refreshToken: true });
26339
+ if (accountResponse.account?.type === "chatgpt") {
26340
+ return true;
26341
+ }
26342
+ const loginCompletedPromise = this.awaitNextLoginCompleted();
26343
+ const loginResponse = await this.codexClient.accountLogin({ type: "chatgpt" });
26344
+ if (loginResponse.type == "chatgpt") {
26345
+ await open_default(loginResponse.authUrl);
26346
+ }
26347
+ const result = await loginCompletedPromise;
26348
+ return result.success;
26349
+ }
26350
+ async authenticateWithChatGptDeviceCode(urlElicitationRequester) {
26351
+ const accountResponse = await this.codexClient.accountRead({ refreshToken: true });
26352
+ if (accountResponse.account?.type === "chatgpt") {
26353
+ return true;
26354
+ }
26355
+ if (!urlElicitationRequester) {
26356
+ throw RequestError.invalidRequest(void 0, "Device code authentication requires URL elicitation support");
26357
+ }
26358
+ const loginCompletedPromise = this.awaitNextLoginCompleted();
26359
+ const loginResponse = await this.codexClient.accountLogin({ type: "chatgptDeviceCode" });
26360
+ if (loginResponse.type !== "chatgptDeviceCode") {
26361
+ return false;
26362
+ }
26363
+ const elicitationResponse = await urlElicitationRequester.elicitUrl({
26364
+ url: loginResponse.verificationUrl,
26365
+ message: `Sign in to ChatGPT and enter this code: ${loginResponse.userCode}`,
26366
+ elicitationId: loginResponse.loginId
26367
+ });
26368
+ if (!CreateElicitationResponse.isAccept(elicitationResponse)) {
26369
+ await this.codexClient.accountLoginCancel({ loginId: loginResponse.loginId });
26370
+ return false;
26371
+ }
26372
+ const result = await loginCompletedPromise;
26373
+ return result.success;
26374
+ }
26375
+ authenticateWithGateway(authRequest) {
26376
+ if (!authRequest._meta) throw RequestError.invalidRequest();
26377
+ const gatewaySettings = authRequest._meta["gateway"];
26378
+ if (!gatewaySettings) throw RequestError.invalidRequest();
26379
+ this.applyGatewayConfig({
26380
+ baseUrl: gatewaySettings.baseUrl,
26381
+ apiType: GatewayAuthMethod._meta.gateway.protocol,
26382
+ headers: gatewaySettings.headers,
26383
+ providerName: gatewaySettings.providerName
26384
+ });
26385
+ return true;
26386
+ }
26331
26387
  readApiKeyFromEnv() {
26332
26388
  for (const envVar of [CODEX_API_KEY_ENV_VAR, OPENAI_API_KEY_ENV_VAR]) {
26333
26389
  const value = process.env[envVar]?.trim();
@@ -28577,6 +28633,13 @@ function numberValue(value) {
28577
28633
  return typeof value === "number" && Number.isFinite(value) ? value : null;
28578
28634
  }
28579
28635
 
28636
+ // src/AcpExtensions.ts
28637
+ var LEGACY_SET_SESSION_MODEL_METHOD = "session/set_model";
28638
+ var SESSION_STEERING_METHOD = "_session/steering";
28639
+ function isExtMethodRequest(request) {
28640
+ return request.method === "authentication/status" || request.method === "authentication/logout" || request.method === LEGACY_SET_SESSION_MODEL_METHOD || request.method === GOAL_CONTROL_METHOD || request.method === LEGACY_GOAL_CONTROL_METHOD || request.method === SESSION_STEERING_METHOD;
28641
+ }
28642
+
28580
28643
  // src/FastModeConfig.ts
28581
28644
  var FAST_MODE_CONFIG_ID = "fast-mode";
28582
28645
  var FAST_MODE_CATEGORY = "model_config";
@@ -28734,6 +28797,11 @@ var CodexAcpServer = class _CodexAcpServer {
28734
28797
  _meta: {
28735
28798
  steering: {
28736
28799
  supported: true
28800
+ },
28801
+ goal: {
28802
+ version: GOAL_EXTENSION_VERSION,
28803
+ controlMethod: GOAL_CONTROL_METHOD,
28804
+ actions: [...GOAL_CONTROL_ACTIONS]
28737
28805
  }
28738
28806
  }
28739
28807
  };
@@ -28754,7 +28822,8 @@ var CodexAcpServer = class _CodexAcpServer {
28754
28822
  return await this.unstable_setSessionModel(this.parseLegacySetSessionModelParams(methodRequest.params));
28755
28823
  case SESSION_STEERING_METHOD:
28756
28824
  return await this.executeOrQueueSteeringRequest(this.parseSessionSteerParams(methodRequest.params));
28757
- case GOAL_CONTROL_METHOD: {
28825
+ case GOAL_CONTROL_METHOD:
28826
+ case LEGACY_GOAL_CONTROL_METHOD: {
28758
28827
  const sessionState = this.sessions.get(methodRequest.params.sessionId);
28759
28828
  if (!sessionState) {
28760
28829
  throw RequestError.invalidParams(void 0, `Unknown session: ${methodRequest.params.sessionId}`);
@@ -29105,9 +29174,10 @@ Check ${configPath} and project .codex directories, especially their config.toml
29105
29174
  ...this.createSessionConfigOptionsResponse(this.getSessionState(sessionId))
29106
29175
  };
29107
29176
  }
29108
- async authenticate(_params) {
29177
+ async authenticate(_params, requestId) {
29109
29178
  logger.log("Authenticate request received");
29110
- const isAuthenticated = await this.runWithProcessCheck(() => this.codexAcpClient.authenticate(_params));
29179
+ const elicitationRequester = this.createUrlElicitationRequester(requestId);
29180
+ const isAuthenticated = await this.runWithProcessCheck(() => this.codexAcpClient.authenticate(_params, elicitationRequester));
29111
29181
  if (!isAuthenticated) {
29112
29182
  logger.log("Authenticate request failed");
29113
29183
  throw RequestError.invalidParams();
@@ -29116,6 +29186,18 @@ Check ${configPath} and project .codex directories, especially their config.toml
29116
29186
  logger.log("Authenticate request completed");
29117
29187
  return {};
29118
29188
  }
29189
+ createUrlElicitationRequester(requestId) {
29190
+ if (requestId == null || !clientSupportsUrlElicitation(this.clientCapabilities)) {
29191
+ return void 0;
29192
+ }
29193
+ return {
29194
+ elicitUrl: (request) => this.connection.request(methods.client.elicitation.create, {
29195
+ mode: "url",
29196
+ requestId,
29197
+ ...request
29198
+ })
29199
+ };
29200
+ }
29119
29201
  async logout(_params) {
29120
29202
  logger.log("Logout request received");
29121
29203
  await this.runWithProcessCheck(() => this.codexAcpClient.logout());
@@ -29542,9 +29624,7 @@ Check ${configPath} and project .codex directories, especially their config.toml
29542
29624
  await session.update({
29543
29625
  sessionUpdate: "session_info_update",
29544
29626
  _meta: {
29545
- codex: {
29546
- goal: snapshot
29547
- }
29627
+ goal: snapshot
29548
29628
  }
29549
29629
  });
29550
29630
  }
@@ -30178,7 +30258,6 @@ Check ${configPath} and project .codex directories, especially their config.toml
30178
30258
  logger.log("Prompt handled by a command");
30179
30259
  await this.codexAcpClient.waitForSessionNotifications(params.sessionId);
30180
30260
  if (commandResult.turnCompleted?.turn.status === "interrupted") {
30181
- await this.notifyConversationInterrupted(params.sessionId);
30182
30261
  return this.cancelledPromptResponse(sessionState);
30183
30262
  }
30184
30263
  const error52 = eventHandler.getFailure();
@@ -30251,7 +30330,6 @@ Check ${configPath} and project .codex directories, especially their config.toml
30251
30330
  await this.codexAcpClient.waitForSessionNotifications(params.sessionId);
30252
30331
  if (turnCompleted.turn.status === "interrupted") {
30253
30332
  await eventHandler.flushPendingPlanUpdates();
30254
- await this.notifyConversationInterrupted(params.sessionId);
30255
30333
  return this.cancelledPromptResponse(sessionState);
30256
30334
  }
30257
30335
  const error51 = eventHandler.getFailure();
@@ -30318,7 +30396,6 @@ Check ${configPath} and project .codex directories, especially their config.toml
30318
30396
  await this.codexAcpClient.waitForSessionNotifications(params.sessionId);
30319
30397
  if (turnCompleted.turn.status === "interrupted") {
30320
30398
  await eventHandler.flushPendingPlanUpdates();
30321
- await this.notifyConversationInterrupted(params.sessionId);
30322
30399
  return this.cancelledPromptResponse(sessionState);
30323
30400
  }
30324
30401
  const implementationError = eventHandler.getFailure();
@@ -30410,15 +30487,6 @@ Check ${configPath} and project .codex directories, especially their config.toml
30410
30487
  _meta: this.buildQuotaMeta(sessionState)
30411
30488
  };
30412
30489
  }
30413
- async notifyConversationInterrupted(sessionId) {
30414
- if (this.sessionIsClosing(sessionId) || !this.sessions.has(sessionId)) {
30415
- return;
30416
- }
30417
- await this.connection.notify(methods.client.session.update, {
30418
- sessionId,
30419
- update: createAgentTextMessageChunk("*Conversation interrupted*")
30420
- });
30421
- }
30422
30490
  buildQuotaMeta(sessionState) {
30423
30491
  const lastTokenUsage = sessionState.lastTokenUsage;
30424
30492
  const modelName = sessionState.currentModelId.replace(/\[.*?]$/, "");
@@ -30936,6 +31004,9 @@ var CodexAppServerClient = class {
30936
31004
  async accountLogin(params) {
30937
31005
  return await this.sendRequest({ method: "account/login/start", params });
30938
31006
  }
31007
+ async accountLoginCancel(params) {
31008
+ return await this.sendRequest({ method: "account/login/cancel", params });
31009
+ }
30939
31010
  async accountLogout() {
30940
31011
  return await this.sendRequest({ method: "account/logout", params: void 0 });
30941
31012
  }
@@ -31536,5 +31607,5 @@ function startAcpServer() {
31536
31607
  codexAcpServer = null;
31537
31608
  }
31538
31609
  });
31539
- }).onRequest(methods.agent.initialize, (ctx) => getAgent().initialize(ctx.params)).onRequest(methods.agent.session.new, (ctx) => getAgent().newSession(ctx.params)).onRequest(methods.agent.session.load, (ctx) => getAgent().loadSession(ctx.params)).onRequest(methods.agent.session.list, (ctx) => getAgent().listSessions(ctx.params)).onRequest(methods.agent.session.delete, (ctx) => getAgent().deleteSession(ctx.params)).onRequest(methods.agent.session.resume, (ctx) => getAgent().resumeSession(ctx.params)).onRequest(methods.agent.session.close, (ctx) => getAgent().closeSession(ctx.params)).onRequest(methods.agent.session.setMode, (ctx) => getAgent().setSessionMode(ctx.params)).onRequest(methods.agent.session.setConfigOption, (ctx) => getAgent().setSessionConfigOption(ctx.params)).onRequest(methods.agent.authenticate, (ctx) => getAgent().authenticate(ctx.params)).onRequest(methods.agent.logout, (ctx) => getAgent().logout(ctx.params)).onRequest(methods.agent.providers.list, (ctx) => getAgent().listProviders(ctx.params)).onRequest(methods.agent.providers.set, (ctx) => getAgent().setProvider(ctx.params)).onRequest(methods.agent.providers.disable, (ctx) => getAgent().disableProvider(ctx.params)).onRequest(methods.agent.session.prompt, (ctx) => getAgent().prompt(ctx.params, ctx.signal)).onNotification(methods.agent.session.cancel, (ctx) => getAgent().cancel(ctx.params)).onRequest("authentication/status", emptyExtensionParamsParser, (ctx) => getAgent().extMethod("authentication/status", ctx.params)).onRequest("authentication/logout", emptyExtensionParamsParser, (ctx) => getAgent().extMethod("authentication/logout", ctx.params)).onRequest(LEGACY_SET_SESSION_MODEL_METHOD, legacySetSessionModelParamsParser, (ctx) => getAgent().extMethod(LEGACY_SET_SESSION_MODEL_METHOD, ctx.params)).onRequest(SESSION_STEERING_METHOD, sessionSteerParamsParser, (ctx) => getAgent().extMethod(SESSION_STEERING_METHOD, ctx.params)).onRequest(GOAL_CONTROL_METHOD, goalControlParamsParser, (ctx) => getAgent().extMethod(GOAL_CONTROL_METHOD, ctx.params)).connect(acpJsonStream);
31610
+ }).onRequest(methods.agent.initialize, (ctx) => getAgent().initialize(ctx.params)).onRequest(methods.agent.session.new, (ctx) => getAgent().newSession(ctx.params)).onRequest(methods.agent.session.load, (ctx) => getAgent().loadSession(ctx.params)).onRequest(methods.agent.session.list, (ctx) => getAgent().listSessions(ctx.params)).onRequest(methods.agent.session.delete, (ctx) => getAgent().deleteSession(ctx.params)).onRequest(methods.agent.session.resume, (ctx) => getAgent().resumeSession(ctx.params)).onRequest(methods.agent.session.close, (ctx) => getAgent().closeSession(ctx.params)).onRequest(methods.agent.session.setMode, (ctx) => getAgent().setSessionMode(ctx.params)).onRequest(methods.agent.session.setConfigOption, (ctx) => getAgent().setSessionConfigOption(ctx.params)).onRequest(methods.agent.authenticate, (ctx) => getAgent().authenticate(ctx.params, ctx.requestId)).onRequest(methods.agent.logout, (ctx) => getAgent().logout(ctx.params)).onRequest(methods.agent.providers.list, (ctx) => getAgent().listProviders(ctx.params)).onRequest(methods.agent.providers.set, (ctx) => getAgent().setProvider(ctx.params)).onRequest(methods.agent.providers.disable, (ctx) => getAgent().disableProvider(ctx.params)).onRequest(methods.agent.session.prompt, (ctx) => getAgent().prompt(ctx.params, ctx.signal)).onNotification(methods.agent.session.cancel, (ctx) => getAgent().cancel(ctx.params)).onRequest("authentication/status", emptyExtensionParamsParser, (ctx) => getAgent().extMethod("authentication/status", ctx.params)).onRequest("authentication/logout", emptyExtensionParamsParser, (ctx) => getAgent().extMethod("authentication/logout", ctx.params)).onRequest(LEGACY_SET_SESSION_MODEL_METHOD, legacySetSessionModelParamsParser, (ctx) => getAgent().extMethod(LEGACY_SET_SESSION_MODEL_METHOD, ctx.params)).onRequest(SESSION_STEERING_METHOD, sessionSteerParamsParser, (ctx) => getAgent().extMethod(SESSION_STEERING_METHOD, ctx.params)).onRequest(GOAL_CONTROL_METHOD, goalControlParamsParser, (ctx) => getAgent().extMethod(GOAL_CONTROL_METHOD, ctx.params)).connect(acpJsonStream);
31540
31611
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.1.9",
6
+ "version": "1.1.10",
7
7
  "description": "",
8
8
  "main": "dist/index.js",
9
9
  "bin": {
@@ -64,7 +64,7 @@
64
64
  },
65
65
  "dependencies": {
66
66
  "@agentclientprotocol/sdk": "^1.3.0",
67
- "@openai/codex": "^0.145.0",
67
+ "@openai/codex": "^0.146.1",
68
68
  "diff": "^9.0.0",
69
69
  "open": "^11.0.0",
70
70
  "vscode-jsonrpc": "^9.0.1",