feat: support codex collaboration_modes

This commit is contained in:
weishu
2026-01-26 22:48:02 +08:00
parent 3a1379dc01
commit 83f07c199d
4 changed files with 45 additions and 5 deletions
@@ -48,6 +48,17 @@ describe('appServerConfig', () => {
expect(params.model).toBe('o3');
});
it('puts collaboration mode in turn params with model settings', () => {
const params = buildTurnStartParams({
threadId: 'thread-1',
message: 'hello',
mode: { permissionMode: 'default', model: 'o3', collaborationMode: 'plan' }
});
expect(params.collaborationMode).toEqual({ mode: 'plan', settings: { model: 'o3' } });
expect(params.model).toBeUndefined();
});
it('applies CLI overrides for turns when permission mode is default', () => {
const params = buildTurnStartParams({
threadId: 'thread-1',
+7 -1
View File
@@ -136,8 +136,14 @@ export function buildTurnStartParams(args: {
params.sandboxPolicy = sandboxPolicy;
}
const collaborationMode = args.mode?.collaborationMode;
const model = args.overrides?.model ?? args.mode?.model;
if (model) {
if (collaborationMode) {
const settings = model ? { model } : undefined;
params.collaborationMode = settings
? { mode: collaborationMode, settings }
: { mode: collaborationMode };
} else if (model) {
params.model = model;
}