import { ClsService } from "nestjs-cls"; import { ContextualiserContextState } from "../../contextualiser/contexts/contextualiser.context"; import { ContextualiserContextFactoryService } from "../../contextualiser/factories/contextualiser.context.factory"; import { AtomicFactsNodeService } from "../../contextualiser/nodes/atomicfacts.node.service"; import { ChunkNodeService } from "../../contextualiser/nodes/chunk.node.service"; import { ChunkVectorNodeService } from "../../contextualiser/nodes/chunk.vector.node.service"; import { KeyConceptsNodeService } from "../../contextualiser/nodes/keyconcepts.node.service"; import { QuestionRefinerNodeService } from "../../contextualiser/nodes/question.refiner.node.service"; import { RationalNodeService } from "../../contextualiser/nodes/rational.node.service"; import { MessageInterface } from "../../../common/interfaces/message.interface"; import { DataLimits } from "../../../common/types/data.limits"; import { TracingService } from "../../../core/tracing/services/tracing.service"; import { CallerAttributionState } from "../../common/usage-attribution"; /** * Picks the graph entry node for a turn. * * A fresh conversation has nothing to refine, so it goes straight to the rational * plan; every follow-up turn is first rewritten against the history by the * question refiner. */ export declare const selectInitialNode: (messagesCount: number) => "rational_plan" | "question_refiner"; export declare class ContextualiserService { private readonly contextualiserContextFactoryService; private readonly questionRefinedNode; private readonly rationalNode; private readonly keyConceptsNode; private readonly atomicFactsNode; private readonly chunkNode; private readonly chunkVectorNode; private readonly clsService; private readonly tracer; private readonly logger; constructor(contextualiserContextFactoryService: ContextualiserContextFactoryService, questionRefinedNode: QuestionRefinerNodeService, rationalNode: RationalNodeService, keyConceptsNode: KeyConceptsNodeService, atomicFactsNode: AtomicFactsNodeService, chunkNode: ChunkNodeService, chunkVectorNode: ChunkVectorNodeService, clsService: ClsService, tracer: TracingService); run(params: { companyId: string; contentId: string; contentType: string; previousAnalysis?: string; dataLimits: DataLimits; messages: MessageInterface[]; question?: string; /** * Cost attribution INHERITED from the calling agent. The contextualiser is * a sub-agent — it bills the caller's ledger category against the caller's * entity, and owns neither. Optional, so existing consumers are unaffected. */ attribution?: CallerAttributionState; }): Promise; } //# sourceMappingURL=contextualiser.service.d.ts.map