/** * GraphAutoPopulator — auto-extracts entities and relations from tool calls. * Each method is independently try/catch wrapped — failures are logged but never propagated. * The graph is an optimization layer, not a correctness requirement. */ import type { GraphEngine } from "./graph.js"; import type { BlackboardEntry } from "../utils/types.js"; export declare class GraphAutoPopulator { private readonly graphEngine; constructor(graphEngine: GraphEngine); /** * Auto-populate from twining_decide. * Creates: concept entity for decision, file entities for affected_files, * function entities for affected_symbols, decided_by relations, * depends_on relations, supersedes relation, commit entity. */ onDecide(input: { affected_files?: string[]; affected_symbols?: string[]; depends_on?: string[]; supersedes?: string; commit_hash?: string; scope: string; summary: string; }, decisionId: string): Promise; /** * Auto-populate from twining_amend (field D11). Receives ONLY the newly * added files/symbols — relations are append-only and never deduplicated * in either backend, so re-running the onDecide loops over the full lists * would duplicate every existing decided_by edge. The concept upsert is * idempotent and guarantees the relation target exists even for decisions * recorded before graph population. */ onAmend(input: { added_files: string[]; added_symbols: string[]; scope: string; summary: string; }, decisionId: string): Promise; /** * Auto-populate from twining_post. * Creates scope entities (file or module) and affects relations for * warnings and findings. */ onPost(entry: BlackboardEntry): Promise; /** * Auto-populate from twining_handoff. * Creates agent entities, handoff relation, file entities for artifacts, * produces relations, scope affects relation. */ onHandoff(input: { source_agent: string; target_agent?: string; scope?: string; results?: Array<{ artifacts?: string[]; }>; }): Promise; /** * Auto-populate from twining_link_commit. * Creates commit entity with decided_by relation to decision. */ onLinkCommit(decisionId: string, commitHash: string): Promise; /** * Auto-populate from twining_register. * Creates agent entity with capabilities and role as properties. */ onRegister(agentId: string, capabilities?: string[], role?: string): Promise; /** * Auto-populate from twining_reconsider or twining_override. * Creates challenged relation from agent to decision. */ onChallenge(agentId: string, decisionId: string, action: "reconsider" | "override"): Promise; } //# sourceMappingURL=graph-auto-populator.d.ts.map