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

Function createHarness

src/node/services/aiService.test.ts:1206–1286  ·  view source on GitHub ↗
(
    muxHomePath: string,
    metadata: WorkspaceMetadata,
    options?: {
      routeProvider?: ProviderName;
      allTools?: Record<string, Tool>;
      postPolicyTools?: Record<string, Tool>;
      sessionUsageService?: SessionUsageService;
      effectiveModelString?: string;
      canonicalProviderName?: ProviderName;
      canonicalModelId?: string;
      useRequestedModelString?: boolean;
      experimentsService?: ExperimentsService;
    }
  )

Source from the content-addressed store, hash-verified

1204 }
1205
1206 function createHarness(
1207 muxHomePath: string,
1208 metadata: WorkspaceMetadata,
1209 options?: {
1210 routeProvider?: ProviderName;
1211 allTools?: Record<string, Tool>;
1212 postPolicyTools?: Record<string, Tool>;
1213 sessionUsageService?: SessionUsageService;
1214 effectiveModelString?: string;
1215 canonicalProviderName?: ProviderName;
1216 canonicalModelId?: string;
1217 useRequestedModelString?: boolean;
1218 experimentsService?: ExperimentsService;
1219 }
1220 ): StreamMessageHarness {
1221 const { config, historyService, initStateManager, service } = createBasicAIService(
1222 muxHomePath,
1223 {
1224 sessionUsageService: options?.sessionUsageService,
1225 experimentsService: options?.experimentsService,
1226 }
1227 );
1228 const planPayloadMessageIds: string[][] = [];
1229 const preparedPayloadMessageIds: string[][] = [];
1230 const preparedToolNamesForSentinel: string[][] = [];
1231 const streamSystemContextMuxScopes: MuxToolScope[] = [];
1232 const streamSystemContextAdvisorFlags: Array<boolean | undefined> = [];
1233 const streamSystemContextMemoryToolFlags: Array<boolean | undefined> = [];
1234 const streamSystemContextHotMemoriesBlocks: Array<string | undefined> = [];
1235 const startStreamCalls: unknown[][] = [];
1236
1237 const getToolsForModelSpy = stubCommonStreamMessageDependencies({
1238 service,
1239 config,
1240 historyService,
1241 initStateManager,
1242 metadata,
1243 startStreamCalls,
1244 routeProvider: options?.routeProvider,
1245 allTools: options?.allTools,
1246 effectiveModelString: options?.effectiveModelString,
1247 canonicalProviderName: options?.canonicalProviderName,
1248 canonicalModelId: options?.canonicalModelId,
1249 useRequestedModelString: options?.useRequestedModelString,
1250 onPlanPayloadMessageIds: (messageIds) => planPayloadMessageIds.push(messageIds),
1251 onBuildStreamSystemContext: (contextArgs) => {
1252 if (!contextArgs.muxScope) {
1253 throw new Error("Expected muxScope in stream system context build args");
1254 }
1255 streamSystemContextMuxScopes.push(contextArgs.muxScope);
1256 streamSystemContextAdvisorFlags.push(contextArgs.advisorToolAvailable);
1257 streamSystemContextMemoryToolFlags.push(contextArgs.memoryToolAvailable);
1258 streamSystemContextHotMemoriesBlocks.push(contextArgs.hotMemoriesBlock);
1259 },
1260 onPrepareMessagesForProvider: (pipelineArgs) => {
1261 preparedPayloadMessageIds.push(
1262 pipelineArgs.messagesWithSentinel.map((message) => message.id)
1263 );

Callers 1

aiService.test.tsFile · 0.70

Calls 3

createBasicAIServiceFunction · 0.85
pushMethod · 0.65

Tested by

no test coverage detected