MCPcopy Create free account
hub / github.com/github/copilot-sdk / findAssistantIndexAfterPrefix

Function findAssistantIndexAfterPrefix

test/harness/replayingCapiProxy.ts:1293–1328  ·  view source on GitHub ↗
(
  requestMessages: NormalizedMessage[],
  savedMessages: NormalizedMessage[],
)

Source from the content-addressed store, hash-verified

1291// Checks if requestMessages is a prefix of savedMessages,
1292// and returns the index of the next assistant message if found.
1293function findAssistantIndexAfterPrefix(
1294 requestMessages: NormalizedMessage[],
1295 savedMessages: NormalizedMessage[],
1296): number | undefined {
1297 const logFile = process.env.PROXY_DEBUG_LOG;
1298 const log = (msg: string) => { if (logFile) try { appendFileSync(logFile, msg + "\n"); } catch {} };
1299
1300 if (requestMessages.length >= savedMessages.length) {
1301 log(`prefix check failed: request.length=${requestMessages.length} >= saved.length=${savedMessages.length}`);
1302 return undefined;
1303 }
1304
1305 for (let i = 0; i < requestMessages.length; i++) {
1306 const reqMsg = JSON.stringify(requestMessages[i]);
1307 const savedMsg = JSON.stringify(savedMessages[i]);
1308 if (reqMsg !== savedMsg) {
1309 log(`mismatch at index ${i}:`);
1310 log(` REQ: ${reqMsg.substring(0, 1000)}`);
1311 log(` SAVED: ${savedMsg.substring(0, 1000)}`);
1312 return undefined;
1313 }
1314 }
1315
1316 // The next message after the prefix should be an assistant message
1317 const nextIndex = requestMessages.length;
1318 if (
1319 nextIndex < savedMessages.length &&
1320 savedMessages[nextIndex].role === "assistant"
1321 ) {
1322 log(`MATCH found at index ${nextIndex}`);
1323 return nextIndex;
1324 }
1325
1326 log(`no assistant at nextIndex=${nextIndex}, saved.length=${savedMessages.length}`);
1327 return undefined;
1328}
1329
1330function expandWorkDir(
1331 content: string | undefined,

Callers 1

Calls 1

logFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…