/** * Lazy DI container for plugin services. Holds singletons of `Ledger`, * `HiveStore`, and `LinearClient`, instantiated on first access so that the * plugin doesn't open a MariaDB pool just by being loaded. * * Each accessor throws a clear, fixable error if the underlying config is * missing. This keeps the failure mode user-friendly: a misconfigured plugin * fails on the first tool call, not at gateway startup. */ import { Ledger } from "../persistence.js"; import { HiveStore } from "../hive/store.js"; import { LinearClient } from "../linear-client.js"; import { type HawkinsPluginConfig } from "./config.js"; export interface HawkinsServices { readonly ledger: Ledger; readonly hive: HiveStore; /** * Returns the LinearClient if a Linear API key is configured; null otherwise. * VINES recovery works without Linear (degrading to ledger-only state), so we * don't force the dep. */ getLinear(): LinearClient | null; /** Releases all underlying connections. Called on plugin deactivate. */ close(): Promise; } export declare function createServices(pluginConfig: HawkinsPluginConfig): HawkinsServices; //# sourceMappingURL=services.d.ts.map