/**
 * Node-safe headless entry point for the AI assistant driver stack (`@genesislcap/ai-assistant/chat-driver`).
 *
 * Re-exports ONLY the framework-agnostic pieces — {@link ChatDriver}, `OrchestratingDriver`, the
 * agent-config surface (`defineAgent`, `defineStatefulAgent`, and the config/input types), and the
 * activity-bus types/`NOOP_ACTIVITY_BUS` — WITHOUT the DOM/FAST component layer that the package's
 * main entry (`.`) pulls in via `main/main`. This lets a Node / CommonJS host (server, unit tests,
 * benches) construct and drive `ChatDriver` over `foundation-ai` providers with no jsdom and no
 * custom-element registration.
 *
 * Every module re-exported here is DOM-clean at import time (no `window`/`document`/`sessionStorage`
 * eval-time access, no `@genesislcap/web-core`). The activity bus is imported for its types and the
 * no-op default; its cross-tab `BroadcastChannel` is created lazily and only in a browser, so
 * pulling this entry into Node opens nothing.
 *
 * @packageDocumentation
 * @beta
 */
export * from './components/chat-driver';
export * from './components/orchestrating-driver';
export * from './channel/ai-activity-channel';
export * from './channel/ai-activity-bus';
export * from './config/config';
export * from './config/define-stateful-agent';
export * from './config/fallback-agents';
// Provider-construction surface, re-exported from `@genesislcap/foundation-ai` so a headless
// consumer builds its registry from the SAME bundled foundation-ai instance the driver uses. That
// shared identity matters: `ChatDriver`'s malformed/truncated handling does `instanceof` on the
// transports' error classes, so a second foundation-ai copy (a separate dep) would silently break
// those checks. NAMED re-exports only — `export *` would drag in the FAST-DI module
// (`@microsoft/fast-foundation` → `fast-element` → `document` at eval); by naming just these,
// esbuild tree-shakes the DI module out and the bundle stays Node-loadable.
export { AnthropicProvider, AnthropicTransport, GeminiProvider, GeminiTransport, MutableAIProviderRegistry, 
// Supported-model allowlists — so a headless consumer validates a configured model id against
// foundation-ai's REAL list instead of maintaining a parallel hardcoded copy that silently drifts
// as the platform adds models (a valid new model would otherwise look like a misconfiguration).
// GENC-1461, create PR #1644 review.
SUPPORTED_ANTHROPIC_MODEL_IDS, SUPPORTED_GEMINI_MODEL_IDS, isObservableAIProviderRegistry, } from '@genesislcap/foundation-ai';
// Debug-log harvesting (GENC-1461 unified diagnostics). A headless consumer collates its driver's
// log — `buildTimelineEntries({ turnSnapshots: driver.getTurnSnapshots(), messages:
// driver.getHistory(), metaEvents: getMetaEvents(sessionKey) })` → `DiagnosticEntry[]` — ships it to
// the client, which folds it into the assistant's debug log via `InteractionResult.diagnostics`
// (see `ChatDriver.getExternalDiagnostics`). `clearSession(sessionKey)` drops the per-request
// meta-event bucket so the long-lived server process's module registry doesn't grow unbounded.
// All three modules are DOM-clean, so the node entry stays Node-loadable.
export { clearSession, getMetaEvents } from './state/debug-event-log';
export { buildTimelineEntries } from './state/persistence/build-timeline-entries';
export { assembleDebugLog } from './state/persistence/diagnostics';
