import { loadConfig } from '../config.js'; import type { MemoryGraphChangedEvent } from './routes/context.js'; import { type PromoteWorkerConfig, type PromoteWorkerSupervisor } from './worker/async-promote-worker.js'; /** * Resolve the WM agentAddress the daemon hands to `ChatMemoryManager`. * * `agent.assertion.write` (the path chat-turn persistence rides on) * internally resolves the assertion graph URI from * `defaultAgentAddress ?? peerId` — see * `packages/agent/src/dkg-agent.ts::get assertion()`. The memory manager * must read under the SAME address writes land on, or the two sides * resolve to structurally different `contextGraphAssertionUri(...)` * graphs and `/api/memory/sessions` silently returns `[]` (issue #277). * * Extracted as a pure function so the daemon-wiring contract is * unit-testable without booting a real `DKGAgent` (Hardhat / libp2p). * Changes to this resolver MUST stay in lockstep with the agent-side * resolution in `get assertion()`. */ export declare function resolveMemoryAgentAddress(agent: { getDefaultAgentAddress(): string | undefined; peerId: string; }): string; export declare function isLikelyPublicRpc(url: string): boolean; export declare function mergePreferredRelays(input: { envValue: string | undefined; configPreferred: unknown; networkAndConfigRelays: readonly string[] | undefined; }): { relayPeers: string[]; envCount: number; configCount: number; preferredCount: number; }; export interface PromoteWorkerDaemonLifecycle { waitForStartup(): Promise; stop(reason?: string | null): Promise; getSupervisor(): PromoteWorkerSupervisor | null; } export declare function startPromoteWorkerDaemonLifecycle(input: { agent: PromoteWorkerConfig['agent']; log: (msg: string) => void; emitMemoryGraphChanged: (event: MemoryGraphChangedEvent) => void; enabled?: boolean; isShuttingDown?: () => boolean; workerConfig?: Omit; }): PromoteWorkerDaemonLifecycle; export declare function runDaemon(foreground: boolean): Promise; export declare function runDaemonInner(foreground: boolean, config: Awaited>, startedAt: number): Promise; //# sourceMappingURL=lifecycle.d.ts.map