import type { AppSignal, ToolDefinition, AIPlannerProvider, PolicyRule, JournalConfig, MemoryService, BudgetState, SessionState } from "@loomic/types"; import { ToolRegistry } from "./tool-registry.js"; import { SignalQueue } from "./signal-intake.js"; import { UIComposer } from "./ui-composer.js"; import { RuntimeEventEmitter } from "./event-emitter.js"; import { RuntimeJournal } from "./journal.js"; import { type CycleResult } from "./run-loop.js"; import { type RoutingRule } from "./provider-router.js"; import { type PromptBuilderConfig } from "./prompt-builder.js"; import { InMemoryGoalStore } from "./goal-store.js"; import { ApprovalQueue } from "./approval-queue.js"; export type AgenticRuntimeConfig = { appId: string; screenId?: string; tools?: ToolDefinition[]; policies?: PolicyRule[]; providers?: { planner?: AIPlannerProvider; localPlanner?: AIPlannerProvider; }; /** Optional memory store. If provided, memory retrieval and persistence are active. */ memoryStore?: MemoryService; /** Journal configuration. Pass `{ enabled: false }` to disable. */ journal?: Partial; /** Budget limits. Defaults are applied if not provided. */ budgets?: Partial; /** Session info. A default is generated if not provided. */ session?: Partial; /** Minimum ms between run-loop cycles. Default: 0 (no debounce). */ debounceMs?: number; /** Custom provider routing rules. If not set, default rules apply. */ routingRules?: RoutingRule[]; /** Prompt builder configuration for customizing LLM messages. */ promptConfig?: PromptBuilderConfig; /** Initial goals to seed the goal store with. */ initialGoals?: import("@loomic/types").ActiveGoal[]; /** Signal deduplication config. */ signalDedup?: import("./signal-intake.js").SignalDedupConfig; }; export type AgenticRuntime = { appId: string; tools: ToolRegistry; signals: SignalQueue; ui: UIComposer; events: RuntimeEventEmitter; journal: RuntimeJournal; goals: InMemoryGoalStore; approvals: ApprovalQueue; registerTool: (tool: ToolDefinition) => void; dispatchSignal: (signal: Omit & Partial>) => void; /** Manually process a signal through the full run-loop pipeline. */ processSignal: (signal: AppSignal) => Promise; dispose: () => void; }; /** * createAgenticRuntime — entry point for consumer app setup. * Returns the runtime object that drives the entire agentic loop. */ export declare function createAgenticRuntime(config: AgenticRuntimeConfig): AgenticRuntime; //# sourceMappingURL=create-runtime.d.ts.map