MCPcopy Create free account
hub / github.com/tiann/hapi / buildTurnStartParams

Function buildTurnStartParams

cli/src/codex/utils/appServerConfig.ts:132–200  ·  view source on GitHub ↗
(args: {
    threadId: string;
    message: string;
    cwd: string;
    mode?: EnhancedMode;
    cliOverrides?: CodexCliOverrides;
    baseInstructions?: string;
    developerInstructions?: string;
    overrides?: {
        approvalPolicy?: TurnStartParams['approvalPolicy'];
        sandboxPolicy?: TurnStartParams['sandboxPolicy'];
        model?: string;
        suppressCollaborationMode?: boolean;
    };
})

Source from the content-addressed store, hash-verified

130}
131
132export function buildTurnStartParams(args: {
133 threadId: string;
134 message: string;
135 cwd: string;
136 mode?: EnhancedMode;
137 cliOverrides?: CodexCliOverrides;
138 baseInstructions?: string;
139 developerInstructions?: string;
140 overrides?: {
141 approvalPolicy?: TurnStartParams['approvalPolicy'];
142 sandboxPolicy?: TurnStartParams['sandboxPolicy'];
143 model?: string;
144 suppressCollaborationMode?: boolean;
145 };
146}): TurnStartParams {
147 const params: TurnStartParams = {
148 threadId: args.threadId,
149 cwd: args.cwd,
150 input: [{ type: 'text', text: args.message }]
151 };
152
153 const allowCliOverrides = args.mode?.permissionMode === 'default';
154 const cliOverrides = allowCliOverrides ? args.cliOverrides : undefined;
155 const approvalPolicy = args.overrides?.approvalPolicy
156 ?? cliOverrides?.approvalPolicy
157 ?? (args.mode ? resolveApprovalPolicy(args.mode) : undefined);
158 if (approvalPolicy) {
159 params.approvalPolicy = approvalPolicy;
160 }
161
162 const sandboxPolicy = args.overrides?.sandboxPolicy
163 ?? resolveSandboxPolicyOverride(cliOverrides?.sandbox)
164 ?? (args.mode ? resolveSandboxPolicy(args.mode) : undefined);
165 if (sandboxPolicy) {
166 params.sandboxPolicy = sandboxPolicy;
167 }
168
169 const collaborationMode = args.overrides?.suppressCollaborationMode
170 ? undefined
171 : args.mode?.collaborationMode;
172 const model = args.overrides?.model ?? args.mode?.model;
173 const modelReasoningEffort = args.mode?.modelReasoningEffort;
174
175 if (modelReasoningEffort) {
176 params.effort = modelReasoningEffort;
177 if (!collaborationMode && supportsReasoningSummary(model)) {
178 params.summary = 'detailed';
179 }
180 }
181
182 if (collaborationMode) {
183 if (!model) {
184 throw new Error(`Collaboration mode '${collaborationMode}' requires a resolved model`);
185 }
186 const { developerInstructions } = resolveInstructions(args);
187 params.collaborationMode = {
188 mode: collaborationMode,
189 settings: {

Callers 2

buildParamsMethod · 0.90

Calls 6

resolveApprovalPolicyFunction · 0.85
resolveSandboxPolicyFunction · 0.85
supportsReasoningSummaryFunction · 0.85
resolveInstructionsFunction · 0.85

Tested by

no test coverage detected