/**
 * Islander interaction runtime — public API.
 *
 * New pages under Layout automatically support islander DOM interaction.
 * Optional: useIslanderPage() or registerIslanderPage() for richer context.
 */

export { ISLANDER_CONFIG } from './config'
export type {
  IslanderAction,
  IslanderActionHandler,
  IslanderActionResult,
  IslanderChatTurn,
  IslanderExecutorContext,
  IslanderPageMeta,
  PageElementSnapshot,
  PageSnapshot,
} from './types'

export { registerIslanderPage, resolveIslanderPageMeta, readLivePageTitle } from './pageRegistry'
export { IslanderPageProvider, useIslanderPage, useIslanderPageContext } from './IslanderPageContext'

export { capturePageSnapshot, formatPageSnapshot, resolveSnapshotElement } from './pageSnapshot'
export { parseIslanderActions, stripIslanderActions, formatActionResults } from './islanderActions'
export { executeIslanderActions, registerIslanderActionHandler } from './actionExecutor'
export { runIslanderAgentTurn } from './islanderAgent'
export type { IslanderAgentCallbacks, IslanderStreamChat, RunIslanderAgentOptions } from './islanderAgent'
export { buildIslanderContext } from './buildIslanderContext'
export { userWantsPageContext } from './pageContextIntent'
export { matchRouteGuide, routeGuides, formatSiteNavGuide } from './siteGuide'