Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
1.4 kB · 40 lines
TypeScript
at main
1234567891011121314151617181920212223242526272829303132333435363738394041import { randomUUID } from 'crypto'import { queryModelWithStreaming } from '../services/api/claude.js'import { autoCompactIfNeeded } from '../services/compact/autoCompact.js'import { microcompactMessages } from '../services/compact/microCompact.js'
// -- deps
// I/O dependencies for query(). Passing a `deps` override into QueryParams// lets tests inject fakes directly instead of spyOn-per-module — the most// common mocks (callModel, autocompact) are each spied in 6-8 test files// today with module-import-and-spy boilerplate.//// Using `typeof fn` keeps signatures in sync with the real implementations// automatically. This file imports the real functions for both typing and// the production factory — tests that import this file for typing are// already importing query.ts (which imports everything), so there's no// new module-graph cost.//// Scope is intentionally narrow (4 deps) to prove the pattern. Followup// PRs can add runTools, handleStopHooks, logEvent, queue ops, etc.export type QueryDeps = { // -- model callModel: typeof queryModelWithStreaming
// -- compaction microcompact: typeof microcompactMessages autocompact: typeof autoCompactIfNeeded
// -- platform uuid: () => string}
export function productionDeps(): QueryDeps { return { callModel: queryModelWithStreaming, microcompact: microcompactMessages, autocompact: autoCompactIfNeeded, uuid: randomUUID, }}