MCPcopy
hub / github.com/coder/mux / createDevToolsMiddleware

Function createDevToolsMiddleware

src/node/services/devToolsMiddleware.ts:241–727  ·  view source on GitHub ↗
(
  workspaceId: string,
  service: DevToolsService
)

Source from the content-addressed store, hash-verified

239}
240
241export function createDevToolsMiddleware(
242 workspaceId: string,
243 service: DevToolsService
244): LanguageModelV3Middleware {
245 assert(workspaceId.trim().length > 0, "createDevToolsMiddleware requires a workspaceId");
246 assert(service, "createDevToolsMiddleware requires a DevToolsService");
247
248 const runId = randomUUID();
249 let runCreated = false;
250 let runCreationPromise: Promise<void> | null = null;
251 let stepCounter = 0;
252
253 async function ensureRun(runMetadataId?: string): Promise<void> {
254 if (runCreated) {
255 return;
256 }
257
258 if (runCreationPromise) {
259 await runCreationPromise;
260 return;
261 }
262
263 runCreationPromise = (async () => {
264 try {
265 await service.createRun(
266 workspaceId,
267 {
268 id: runId,
269 workspaceId,
270 startedAt: new Date().toISOString(),
271 },
272 runMetadataId
273 );
274 runCreated = true;
275 } catch (error) {
276 log.warn("DevTools: failed to create run", {
277 workspaceId,
278 runId,
279 error,
280 });
281 }
282 })();
283
284 try {
285 await runCreationPromise;
286 } finally {
287 runCreationPromise = null;
288 }
289 }
290
291 function extractRunMetadataId(params: LanguageModelV3CallOptions): string | undefined {
292 const rawMetadataId = params.headers?.[DEVTOOLS_RUN_METADATA_ID_HEADER];
293 if (typeof rawMetadataId !== "string") {
294 return undefined;
295 }
296
297 const runMetadataId = rawMetadataId.trim();
298 return runMetadataId.length > 0 ? runMetadataId : undefined;

Callers 2

createModelMethod · 0.90

Calls 11

redactHeadersFunction · 0.90
getErrorMessageFunction · 0.90
createStepFunction · 0.85
injectStepIdHeaderFunction · 0.85
finalizeStepFunction · 0.85
extractGenerateOutputFunction · 0.85
extractUsageFunction · 0.85
abortHandlerFunction · 0.70
assertFunction · 0.50
addEventListenerMethod · 0.45

Tested by

no test coverage detected