Skip to content

Commit 17f7fee

Browse files
fix: rebase
1 parent 3facaa5 commit 17f7fee

6 files changed

Lines changed: 12 additions & 121 deletions

File tree

src/AcpExtensions.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import type {PluginListMarketplaceKind} from "./app-server/v2";
2-
31
export type ExtMethodRequest =
42
| AuthenticationStatusRequest
53
| AuthenticationLogoutRequest
@@ -19,7 +17,7 @@ export type AuthenticationStatusResponse = { type: "api-key" } | { type: "chat-g
1917
export type AuthenticationLogoutRequest = { method: "authentication/logout", params: {} }
2018
export type AuthenticationLogoutResponse = {}
2119

22-
export type MarketplaceListRequest = { method: "marketplace/list", params: { cwd?: string, marketplaceKinds: PluginListMarketplaceKind[] } }
20+
export type MarketplaceListRequest = { method: "marketplace/list", params: { cwd?: string } }
2321
export type MarketplaceListResponse = { marketplaces: Array<{ name: string }> }
2422

2523
export type MarketplaceRemoveRequest = { method: "marketplace/remove", params: { marketplaceName: string } }

src/CodexAcpClient.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import type {
2828
GetAccountResponse,
2929
ListMcpServerStatusResponse,
3030
Model,
31-
PluginListMarketplaceKind,
3231
SkillsListParams,
3332
SkillsListResponse,
3433
Thread,
@@ -199,10 +198,9 @@ export class CodexAcpClient {
199198
await this.codexClient.marketplaceRemove({marketplaceName});
200199
}
201200

202-
async listMarketplaces(cwd: string, marketplaceKinds: PluginListMarketplaceKind[]): Promise<string[]> {
201+
async listMarketplaces(cwd: string): Promise<string[]> {
203202
const pluginList = await this.codexClient.pluginList({
204-
cwds: cwd ? [cwd] : [],
205-
marketplaceKinds: marketplaceKinds,
203+
cwds: cwd ? [cwd] : []
206204
});
207205
return pluginList.marketplaces.map((marketplace) => marketplace.name);
208206
}
@@ -226,7 +224,7 @@ export class CodexAcpClient {
226224

227225
async resumeSession(request: acp.ResumeSessionRequest): Promise<SessionMetadata> {
228226
const additionalRootPaths = readAdditionalRootPaths(request._meta, request.additionalDirectories);
229-
await this.refreshSkills(request.cwd, request._meta);
227+
await this.refreshSkills(request.cwd);
230228
await installAdditionalRootSkillMarketplaces({
231229
codexClient: this.codexClient,
232230
cwd: request.cwd,
@@ -279,7 +277,7 @@ export class CodexAcpClient {
279277

280278
async newSession(request: acp.NewSessionRequest): Promise<SessionMetadata> {
281279
const additionalRootPaths = readAdditionalRootPaths(request._meta, request.additionalDirectories);
282-
await this.refreshSkills(request.cwd, request._meta);
280+
await this.refreshSkills(request.cwd);
283281
await installAdditionalRootSkillMarketplaces({
284282
codexClient: this.codexClient,
285283
cwd: request.cwd,
@@ -360,18 +358,13 @@ export class CodexAcpClient {
360358
return this.getModelProvider() ?? "openai";
361359
}
362360

363-
private async refreshSkills(cwd: string, meta?: Record<string, unknown> | null): Promise<void> {
361+
private async refreshSkills(cwd: string): Promise<void> {
364362
if (!cwd) {
365363
return;
366364
}
367-
const additionalRoots = readAdditionalRoots(meta);
368365
await this.codexClient.listSkills({
369366
cwds: [cwd],
370-
forceReload: true,
371-
perCwdExtraUserRoots: [{
372-
cwd: cwd,
373-
extraUserRoots: additionalRoots
374-
}]
367+
forceReload: true
375368
});
376369
}
377370

@@ -442,7 +435,7 @@ export class CodexAcpClient {
442435
readAdditionalRootPaths(request._meta)
443436
);
444437
this.additionalRootPathsBySessionId.set(request.sessionId, additionalRootPaths);
445-
await this.refreshSkills(cwd, request._meta);
438+
await this.refreshSkills(cwd);
446439
await installAdditionalRootSkillMarketplaces({
447440
codexClient: this.codexClient,
448441
cwd,

src/CodexAcpServer.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ export class CodexAcpServer implements acp.Agent {
144144
case "marketplace/list": {
145145
const cwd = typeof methodRequest.params.cwd === "string" ? methodRequest.params.cwd : "";
146146
const marketplaces = await this.runWithProcessCheck(() =>
147-
this.codexAcpClient.listMarketplaces(cwd, methodRequest.params.marketplaceKinds)
147+
this.codexAcpClient.listMarketplaces(cwd)
148148
);
149149
return {
150150
marketplaces: marketplaces.map((name) => ({name})),

src/LocalSkillMarketplace.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,7 @@ async function installGeneratedSkillPlugin(params: {
227227
sparsePaths: null,
228228
});
229229
const pluginList = await codexClient.pluginList({
230-
cwds: cwd ? [cwd] : [],
231-
marketplaceKinds: ["local", "workspace-directory"],
230+
cwds: cwd ? [cwd] : []
232231
});
233232
const listedMarketplace = pluginList.marketplaces.find((entry) =>
234233
entry.name === marketplace.marketplaceName || entry.path === marketplace.marketplacePath

src/__tests__/CodexACPAgent/CodexAcpClient.test.ts

Lines changed: 1 addition & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -215,60 +215,6 @@ describe('ACP server test', { timeout: 40_000 }, () => {
215215
expect(logoutSpy).toHaveBeenCalledWith({});
216216
});
217217

218-
it('prefetches session additional skill roots before thread start', async () => {
219-
const mockFixture = createCodexMockTestFixture();
220-
const codexAcpClient = mockFixture.getCodexAcpClient();
221-
const codexAppServerClient = mockFixture.getCodexAppServerClient();
222-
223-
const listSkillsSpy = vi.spyOn(codexAppServerClient, "listSkills").mockResolvedValue({ data: [] });
224-
const threadStartSpy = vi.spyOn(codexAppServerClient, "threadStart").mockResolvedValue({
225-
thread: { id: "thread-id" } as any,
226-
model: "gpt-5",
227-
modelProvider: "openai",
228-
cwd: "/workspace",
229-
approvalPolicy: "on-request",
230-
sandbox: "workspace-write",
231-
reasoningEffort: "medium",
232-
} as any);
233-
vi.spyOn(codexAppServerClient, "listModels").mockResolvedValue({
234-
data: [{
235-
id: "gpt-5",
236-
model: "gpt-5",
237-
upgrade: null,
238-
upgradeInfo: null,
239-
availabilityNux: null,
240-
displayName: "gpt-5",
241-
description: "test model",
242-
hidden: false,
243-
supportedReasoningEfforts: [{ reasoningEffort: "medium", description: "balanced" }],
244-
defaultReasoningEffort: "medium",
245-
inputModalities: ["text"],
246-
supportsPersonality: false,
247-
additionalSpeedTiers: [],
248-
isDefault: true
249-
}],
250-
nextCursor: null
251-
});
252-
253-
await codexAcpClient.newSession({
254-
cwd: "/workspace",
255-
mcpServers: [],
256-
_meta: {
257-
additionalRoots: ["/skills/one", " /skills/two ", 7]
258-
}
259-
});
260-
261-
expect(listSkillsSpy).toHaveBeenCalledWith({
262-
cwds: ["/workspace"],
263-
forceReload: true,
264-
perCwdExtraUserRoots: [{
265-
cwd: "/workspace",
266-
extraUserRoots: ["/skills/one", "/skills/two"]
267-
}]
268-
});
269-
expect(listSkillsSpy.mock.invocationCallOrder[0]!).toBeLessThan(threadStartSpy.mock.invocationCallOrder[0]!);
270-
});
271-
272218
it('waits for typed mcp startup status updates and returns terminal states', async () => {
273219
const mockFixture = createCodexMockTestFixture();
274220
const codexAcpClient = mockFixture.getCodexAcpClient();
@@ -358,45 +304,6 @@ describe('ACP server test', { timeout: 40_000 }, () => {
358304
expect(session.sessionId).toBe("thread-id");
359305
});
360306

361-
it('prefetches session additional skill roots before turn start', async () => {
362-
const mockFixture = createCodexMockTestFixture();
363-
const codexAcpAgent = mockFixture.getCodexAcpAgent();
364-
const codexAppServerClient = mockFixture.getCodexAppServerClient();
365-
366-
const listSkillsSpy = vi.spyOn(codexAppServerClient, "listSkills").mockResolvedValue({ data: [] });
367-
const turnStartSpy = vi.spyOn(codexAppServerClient, "turnStart").mockResolvedValue({
368-
turn: { id: "turn-id", items: [], status: "inProgress", error: null }
369-
} as any);
370-
vi.spyOn(codexAppServerClient, "awaitTurnCompleted").mockResolvedValue({
371-
threadId: "session-id",
372-
turn: { id: "turn-id", items: [], status: "completed", error: null }
373-
} as any);
374-
375-
vi.spyOn(codexAcpAgent, "getSessionState").mockReturnValue(createTestSessionState({
376-
sessionId: "session-id",
377-
cwd: "/workspace"
378-
}));
379-
380-
const promptRequest: acp.PromptRequest = {
381-
sessionId: "session-id",
382-
prompt: [{ type: "text", text: "Hello" }],
383-
_meta: {
384-
additionalRoots: ["/skills/one", " /skills/two ", 7]
385-
}
386-
};
387-
await codexAcpAgent.prompt(promptRequest);
388-
389-
expect(listSkillsSpy).toHaveBeenCalledWith({
390-
cwds: ["/workspace"],
391-
forceReload: true,
392-
perCwdExtraUserRoots: [{
393-
cwd: "/workspace",
394-
extraUserRoots: ["/skills/one", "/skills/two"]
395-
}]
396-
});
397-
expect(listSkillsSpy.mock.invocationCallOrder[0]!).toBeLessThan(turnStartSpy.mock.invocationCallOrder[0]!);
398-
});
399-
400307
it('passes provided skill resource links as prompt skill items', async () => {
401308
const mockFixture = createCodexMockTestFixture();
402309
const codexAcpClient = mockFixture.getCodexAcpClient();
@@ -414,7 +321,7 @@ describe('ACP server test', { timeout: 40_000 }, () => {
414321
{type: "text", text: "$extra-skill do the work"},
415322
{type: "resource_link", name: "extra-skill", uri: "file:///skills/extra-skill/SKILL.md"},
416323
],
417-
}, AgentMode.DEFAULT_AGENT_MODE, ModelId.create("gpt-5", "medium"), false, "/workspace");
324+
}, AgentMode.DEFAULT_AGENT_MODE, ModelId.create("gpt-5", "medium"), null, false, "/workspace");
418325

419326
expect(runTurnSpy).toHaveBeenCalledWith(expect.objectContaining({
420327
input: [

src/__tests__/CodexACPAgent/data/send-attachments-turn-start.json

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,7 @@
55
"cwds": [
66
"/test/cwd"
77
],
8-
"forceReload": true,
9-
"perCwdExtraUserRoots": [
10-
{
11-
"cwd": "cwd",
12-
"extraUserRoots": []
13-
}
14-
]
8+
"forceReload": true
159
}
1610
}
1711
{

0 commit comments

Comments
 (0)