( db: ReturnType<typeof createTestDb>, sessionId: string, )
| 2476 | } |
| 2477 | |
| 2478 | async function primeBaseline( |
| 2479 | db: ReturnType<typeof createTestDb>, |
| 2480 | sessionId: string, |
| 2481 | ) { |
| 2482 | updateSessionMeta(db, sessionId, { |
| 2483 | piStableIdScheme: 1, |
| 2484 | systemPromptHash: BASE_SYSTEM_HASH, |
| 2485 | }); |
| 2486 | recordPiLiveModel(sessionId, BASE_MODEL); |
| 2487 | const fake = createFakePi(); |
| 2488 | registerPiContextHandler(fake.pi as never, { |
| 2489 | db, |
| 2490 | ctxReduceEnabled: true, |
| 2491 | protectedTags: 0, |
| 2492 | heuristics: {}, |
| 2493 | injection: { injectionBudgetTokens: 10_000 }, |
| 2494 | scheduler: { executeThresholdPercentage: 80 }, |
| 2495 | }); |
| 2496 | const handler = fake.handlers.get("context") as ( |
| 2497 | event: { messages: never[] }, |
| 2498 | ctx: never, |
| 2499 | ) => Promise<{ messages: never[] }>; |
| 2500 | |
| 2501 | const firstMessages = buildMessages(); |
| 2502 | await handler( |
| 2503 | { messages: firstMessages }, |
| 2504 | contextFor(sessionId, firstMessages), |
| 2505 | ); |
| 2506 | |
| 2507 | const toolTag = getTagsBySession(db, sessionId).find( |
| 2508 | (tag) => tag.type === "tool", |
| 2509 | ); |
| 2510 | if (!toolTag) throw new Error("expected Pi tool tag after baseline pass"); |
| 2511 | queuePendingOp(db, sessionId, toolTag.tagNumber, "drop", 1); |
| 2512 | updateSessionMeta(db, sessionId, { |
| 2513 | lastResponseTime: Date.now(), |
| 2514 | cacheTtl: "59m", |
| 2515 | lastContextPercentage: 40, |
| 2516 | lastInputTokens: 4_000, |
| 2517 | }); |
| 2518 | |
| 2519 | return { handler, toolTagNumber: toolTag.tagNumber }; |
| 2520 | } |
| 2521 | |
| 2522 | it("drains queued pending ops on a DEFER scheduler pass when m[0] HARD-folds", async () => { |
| 2523 | const db = createTestDb(); |
no test coverage detected