MCPcopy Index your code
hub / github.com/getsentry/XcodeBuildMCP / postProcessSession

Function postProcessSession

src/runtime/tool-invoker.ts:213–264  ·  view source on GitHub ↗
(params: {
  tool: ToolDefinition;
  session: RenderSession;
  ctx: ToolHandlerContext;
  catalog: ToolCatalog;
  runtime: InvokeOptions['runtime'];
  applyTemplateNextSteps?: boolean;
})

Source from the content-addressed store, hash-verified

211}
212
213export function postProcessSession(params: {
214 tool: ToolDefinition;
215 session: RenderSession;
216 ctx: ToolHandlerContext;
217 catalog: ToolCatalog;
218 runtime: InvokeOptions['runtime'];
219 applyTemplateNextSteps?: boolean;
220}): void {
221 const { tool, session, ctx, catalog, runtime, applyTemplateNextSteps = true } = params;
222
223 const isError = session.isError();
224 const nextStepParams = ctx.nextStepParams;
225 const handlerNextSteps = ctx.nextSteps;
226 const suppressNextStepsForStructuredFailure =
227 isError && isStructuredXcodebuildFailureSession(session);
228
229 if (suppressNextStepsForStructuredFailure) {
230 return;
231 }
232
233 const suppressTemplateNextSteps = handlerNextSteps !== undefined && handlerNextSteps.length === 0;
234
235 const effectiveNextStepParams = buildEffectiveNextStepParams(
236 nextStepParams,
237 handlerNextSteps,
238 catalog,
239 );
240
241 const allTemplateSteps = buildTemplateNextSteps(tool, catalog);
242 const templateSteps = allTemplateSteps.filter((t) => {
243 const when = t.step.when ?? 'always';
244 if (when === 'success') return !isError;
245 if (when === 'failure') return isError;
246 return true;
247 });
248
249 let finalSteps: NextStep[];
250
251 if (applyTemplateNextSteps && !suppressTemplateNextSteps && templateSteps.length > 0) {
252 finalSteps = mergeTemplateAndResponseNextSteps(templateSteps, effectiveNextStepParams);
253 } else if (handlerNextSteps && handlerNextSteps.length > 0) {
254 finalSteps = handlerNextSteps;
255 } else {
256 return;
257 }
258
259 const normalized = normalizeNextSteps(finalSteps, catalog, tool.workflow);
260
261 if (normalized.length > 0) {
262 session.setNextSteps?.(normalized, runtime);
263 }
264}
265
266function buildDaemonEnvOverrides(opts: InvokeOptions): Record<string, string> | undefined {
267 if (!opts.logLevel) {

Callers 2

invokeRegisteredToolFunction · 0.90
executeToolMethod · 0.85

Calls 7

buildTemplateNextStepsFunction · 0.85
normalizeNextStepsFunction · 0.85
isErrorMethod · 0.65
setNextStepsMethod · 0.65

Tested by

no test coverage detected