@agentconnect.md/codex-acp 1.12.0-agentconnect.1 → 1.12.0-agentconnect.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.
Files changed (2) hide show
  1. package/dist/index.js +27 -26
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -26559,14 +26559,14 @@ function userInputResponseValue(content, fieldId) {
26559
26559
  return value;
26560
26560
  }
26561
26561
  var CodexElicitationHandler = class {
26562
- constructor(connection, permissionContext, clientCapabilities = null, cancellationSignal, fullAccessHttpServers) {
26563
- this.fullAccessHttpServers = fullAccessHttpServers;
26562
+ constructor(connection, permissionContext, clientCapabilities = null, cancellationSignal, fullAccessApprovedServers) {
26563
+ this.fullAccessApprovedServers = fullAccessApprovedServers;
26564
26564
  this.connection = connection;
26565
26565
  this.permissionContext = permissionContext;
26566
26566
  this.clientCapabilities = clientCapabilities;
26567
26567
  this.cancellationSignal = cancellationSignal;
26568
26568
  }
26569
- fullAccessHttpServers;
26569
+ fullAccessApprovedServers;
26570
26570
  connection;
26571
26571
  permissionContext;
26572
26572
  clientCapabilities;
@@ -26585,9 +26585,9 @@ var CodexElicitationHandler = class {
26585
26585
  async handleElicitation(params) {
26586
26586
  try {
26587
26587
  const context = this.createMcpElicitationContext(params);
26588
- const httpServers = this.fullAccessHttpServers?.(params);
26589
- if (httpServers !== void 0) {
26590
- const accepted = !this.cancellationSignal?.aborted && params.mode === "form" && context.isToolApproval && context.persistOptions.has("session") && httpServers.has(params.serverName);
26588
+ const approvedServers = this.fullAccessApprovedServers?.(params);
26589
+ if (approvedServers !== void 0) {
26590
+ const accepted = !this.cancellationSignal?.aborted && params.mode === "form" && context.isToolApproval && context.persistOptions.has("session") && approvedServers.has(params.serverName);
26591
26591
  await this.publishAcceptedMcpToolApproval(params.threadId, context, accepted);
26592
26592
  return { action: accepted ? "accept" : "cancel", content: accepted ? {} : null, _meta: null };
26593
26593
  }
@@ -26654,7 +26654,7 @@ var CodexElicitationHandler = class {
26654
26654
  }
26655
26655
  }
26656
26656
  async handleUserInput(params) {
26657
- if (this.fullAccessHttpServers?.(params) !== void 0 && params.itemId === `mcp-deps-${params.turnId}` && params.questions.some((question) => question.id === "skill_mcp_dependency_install")) {
26657
+ if (this.fullAccessApprovedServers?.(params) !== void 0 && params.itemId === `mcp-deps-${params.turnId}` && params.questions.some((question) => question.id === "skill_mcp_dependency_install")) {
26658
26658
  return { answers: {} };
26659
26659
  }
26660
26660
  if (!clientSupportsFormElicitation(this.clientCapabilities)) {
@@ -27819,7 +27819,7 @@ var package_default = {
27819
27819
  publishConfig: {
27820
27820
  access: "public"
27821
27821
  },
27822
- version: "1.12.0-agentconnect.1",
27822
+ version: "1.12.0-agentconnect.2",
27823
27823
  description: "",
27824
27824
  main: "dist/index.js",
27825
27825
  bin: {
@@ -28110,7 +28110,7 @@ async function forkSession(request, additionalDirectories, dependencies) {
28110
28110
  modelProvider: response.modelProvider,
28111
28111
  currentServiceTier: response.serviceTier ?? null,
28112
28112
  additionalDirectories,
28113
- fullAccessHttpMcpServers: prepared.fullAccessHttpMcpServers
28113
+ fullAccessApprovedMcpServers: prepared.fullAccessApprovedMcpServers
28114
28114
  };
28115
28115
  }
28116
28116
  async function resolveForkTurnId(request, codexClient) {
@@ -28569,7 +28569,7 @@ var CodexAcpClient = class {
28569
28569
  const initialAgentMode = AgentMode.getInitialAgentMode();
28570
28570
  await this.refreshSkills(request.cwd, additionalDirectories);
28571
28571
  const prepared = await this.createSessionConfig(request.cwd, additionalDirectories, request.mcpServers ?? []);
28572
- await this.restrictResumedHttpMcpServers(request.sessionId, prepared);
28572
+ await this.restrictResumedMcpServers(request.sessionId, prepared);
28573
28573
  const response = await this.codexClient.threadResume({
28574
28574
  excludeTurns: true,
28575
28575
  config: prepared.config,
@@ -28589,7 +28589,7 @@ var CodexAcpClient = class {
28589
28589
  modelProvider: response.modelProvider,
28590
28590
  currentServiceTier: response.serviceTier ?? null,
28591
28591
  additionalDirectories,
28592
- fullAccessHttpMcpServers: prepared.fullAccessHttpMcpServers
28592
+ fullAccessApprovedMcpServers: prepared.fullAccessApprovedMcpServers
28593
28593
  };
28594
28594
  }
28595
28595
  async forkSession(request) {
@@ -28609,7 +28609,7 @@ var CodexAcpClient = class {
28609
28609
  const initialAgentMode = AgentMode.getInitialAgentMode();
28610
28610
  await this.refreshSkills(request.cwd, additionalDirectories);
28611
28611
  const prepared = await this.createSessionConfig(request.cwd, additionalDirectories, request.mcpServers ?? []);
28612
- await this.restrictResumedHttpMcpServers(request.sessionId, prepared);
28612
+ await this.restrictResumedMcpServers(request.sessionId, prepared);
28613
28613
  const response = await this.codexClient.threadResume({
28614
28614
  excludeTurns: true,
28615
28615
  config: prepared.config,
@@ -28634,7 +28634,7 @@ var CodexAcpClient = class {
28634
28634
  currentServiceTier: response.serviceTier ?? null,
28635
28635
  thread,
28636
28636
  additionalDirectories,
28637
- fullAccessHttpMcpServers: prepared.fullAccessHttpMcpServers
28637
+ fullAccessApprovedMcpServers: prepared.fullAccessApprovedMcpServers
28638
28638
  };
28639
28639
  }
28640
28640
  async readSessionThread(sessionId) {
@@ -28664,7 +28664,7 @@ var CodexAcpClient = class {
28664
28664
  modelProvider: response.modelProvider,
28665
28665
  currentServiceTier: response.serviceTier ?? null,
28666
28666
  additionalDirectories,
28667
- fullAccessHttpMcpServers: prepared.fullAccessHttpMcpServers
28667
+ fullAccessApprovedMcpServers: prepared.fullAccessApprovedMcpServers
28668
28668
  };
28669
28669
  }
28670
28670
  async closeSession(sessionId) {
@@ -28691,10 +28691,10 @@ var CodexAcpClient = class {
28691
28691
  if (!this.isProtectedFullAccess(agentMode)) return agentMode.approvalPolicy;
28692
28692
  return { granular: { sandbox_approval: false, rules: false, skill_approval: false, request_permissions: false, mcp_elicitations: false } };
28693
28693
  }
28694
- async restrictResumedHttpMcpServers(sessionId, prepared) {
28695
- if (prepared.fullAccessHttpMcpServers.length === 0) return;
28694
+ async restrictResumedMcpServers(sessionId, prepared) {
28695
+ if (prepared.fullAccessApprovedMcpServers.length === 0) return;
28696
28696
  const loaded = await this.codexClient.threadLoadedList({});
28697
- if (loaded.data.includes(sessionId) || loaded.nextCursor !== null) prepared.fullAccessHttpMcpServers = [];
28697
+ if (loaded.data.includes(sessionId) || loaded.nextCursor !== null) prepared.fullAccessApprovedMcpServers = [];
28698
28698
  }
28699
28699
  async deleteSession(sessionId) {
28700
28700
  await this.codexClient.threadArchive({ threadId: sessionId });
@@ -28780,7 +28780,7 @@ var CodexAcpClient = class {
28780
28780
  };
28781
28781
  const configWithWorkspaceRoots = mergeSandboxWorkspaceWriteRoots(mergedConfig, additionalDirectories);
28782
28782
  if (mcpServers.length === 0) {
28783
- return { config: configWithWorkspaceRoots, fullAccessHttpMcpServers: [] };
28783
+ return { config: configWithWorkspaceRoots, fullAccessApprovedMcpServers: [] };
28784
28784
  }
28785
28785
  const requestedServers = mcpServers.map((mcp) => ({
28786
28786
  name: sanitizeMcpServerName(mcp.name),
@@ -28792,13 +28792,14 @@ var CodexAcpClient = class {
28792
28792
  serversToConfigure = requestedServers.filter((mcp) => !existingNames.has(mcp.name));
28793
28793
  }
28794
28794
  if (serversToConfigure.length === 0) {
28795
- return { config: configWithWorkspaceRoots, fullAccessHttpMcpServers: [] };
28795
+ return { config: configWithWorkspaceRoots, fullAccessApprovedMcpServers: [] };
28796
28796
  }
28797
28797
  const configuredServers = Object.fromEntries(serversToConfigure.map((mcp) => [mcp.name, this.createMcpSeverConfig(mcp.server)]));
28798
28798
  const inheritedServers = isJsonObject(this.config["mcp_servers"]) ? this.config["mcp_servers"] : {};
28799
28799
  return {
28800
28800
  config: { ...configWithWorkspaceRoots, mcp_servers: configuredServers },
28801
- fullAccessHttpMcpServers: this.permissionProfileConfig ? Object.entries(configuredServers).filter(([name, server]) => typeof server["url"] === "string" && !existingNames.has(name) && !Object.hasOwn(inheritedServers, name)).map(([name]) => name) : []
28801
+ // Every server the launcher injected, on any transport; a name any config layer also declares is never approved, so session config cannot borrow a launcher's name.
28802
+ fullAccessApprovedMcpServers: this.permissionProfileConfig ? Object.keys(configuredServers).filter((name) => !existingNames.has(name) && !Object.hasOwn(inheritedServers, name)) : []
28802
28803
  };
28803
28804
  }
28804
28805
  async getConfigMcpServerNames(projectPath) {
@@ -32713,7 +32714,7 @@ Check ${configPath} and project .codex directories, especially their config.toml
32713
32714
  supportedReasoningEfforts: currentModel?.supportedReasoningEfforts ?? [],
32714
32715
  supportedInputModalities: currentModel?.inputModalities ?? ["text", "image"],
32715
32716
  agentMode: AgentMode.getInitialAgentMode(),
32716
- fullAccessHttpMcpServers: sessionMetadata.fullAccessHttpMcpServers ?? [],
32717
+ fullAccessApprovedMcpServers: sessionMetadata.fullAccessApprovedMcpServers ?? [],
32717
32718
  collaborationMode: sessionMetadata.collaborationMode,
32718
32719
  currentTurnId: null,
32719
32720
  lastTokenUsage: null,
@@ -33053,7 +33054,7 @@ Check ${configPath} and project .codex directories, especially their config.toml
33053
33054
  additionalDirectories: session.additionalDirectories,
33054
33055
  mcpServers: session.mcpServers ?? []
33055
33056
  });
33056
- session.fullAccessHttpMcpServers = metadata.fullAccessHttpMcpServers ?? [];
33057
+ session.fullAccessApprovedMcpServers = metadata.fullAccessApprovedMcpServers ?? [];
33057
33058
  session.authProvider = replacement.getModelProvider();
33058
33059
  session.asyncTasks.refresh();
33059
33060
  logger.log("Resumed session after provider restart", { sessionId: session.sessionId });
@@ -33785,7 +33786,7 @@ Check ${configPath} and project .codex directories, especially their config.toml
33785
33786
  supportedReasoningEfforts: currentModel?.supportedReasoningEfforts ?? [],
33786
33787
  supportedInputModalities: currentModel?.inputModalities ?? ["text", "image"],
33787
33788
  agentMode: AgentMode.getInitialAgentMode(),
33788
- fullAccessHttpMcpServers: sessionMetadata.fullAccessHttpMcpServers ?? [],
33789
+ fullAccessApprovedMcpServers: sessionMetadata.fullAccessApprovedMcpServers ?? [],
33789
33790
  collaborationMode: sessionMetadata.collaborationMode,
33790
33791
  currentTurnId: null,
33791
33792
  lastTokenUsage: null,
@@ -34529,8 +34530,8 @@ Check ${configPath} and project .codex directories, especially their config.toml
34529
34530
  const permissionContext = permissionLifecycle.beginPrompt();
34530
34531
  let promptAgentMode;
34531
34532
  let permissionModeRevision;
34532
- const httpServers = new Set(sessionState.fullAccessHttpMcpServers);
34533
- const noHttpServers = /* @__PURE__ */ new Set();
34533
+ const approvedServers = new Set(sessionState.fullAccessApprovedMcpServers);
34534
+ const noApprovedServers = /* @__PURE__ */ new Set();
34534
34535
  let mcpApprovalTurnId = null;
34535
34536
  const isProtectedFullAccess = () => this.codexAcpClient.isProtectedFullAccess(promptAgentMode ?? sessionState.agentMode);
34536
34537
  const approvalHandler = new CodexApprovalHandler(
@@ -34546,7 +34547,7 @@ Check ${configPath} and project .codex directories, especially their config.toml
34546
34547
  activePrompt.signal,
34547
34548
  (request) => {
34548
34549
  if (!isProtectedFullAccess()) return void 0;
34549
- return mcpApprovalTurnId !== null && request.turnId === mcpApprovalTurnId && sessionState.agentMode.kind === "full_access" && sessionState.permissionModeRevision === permissionModeRevision ? httpServers : noHttpServers;
34550
+ return mcpApprovalTurnId !== null && request.turnId === mcpApprovalTurnId && sessionState.agentMode.kind === "full_access" && sessionState.permissionModeRevision === permissionModeRevision ? approvedServers : noApprovedServers;
34550
34551
  }
34551
34552
  );
34552
34553
  const observeInteraction = async (event) => {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.12.0-agentconnect.1",
6
+ "version": "1.12.0-agentconnect.2",
7
7
  "description": "",
8
8
  "main": "dist/index.js",
9
9
  "bin": {