{"version":3,"file":"omega-angular.mjs","sources":["../../../projects/omega-angular/src/lib/core/types/omega-object.ts","../../../projects/omega-angular/src/lib/core/types/omega-failure.ts","../../../projects/omega-angular/src/lib/core/semantics/omega-semantics-wire-from-camel.ts","../../../projects/omega-angular/src/lib/core/semantics/omega-intent.ts","../../../projects/omega-angular/src/lib/core/events/omega-event.ts","../../../projects/omega-angular/src/lib/core/channel/omega-channel.ts","../../../projects/omega-angular/src/lib/flows/omega-flow.ts","../../../projects/omega-angular/src/lib/flows/omega-flow-manager.ts","../../../projects/omega-angular/src/lib/agents/omega-agent-behavior.ts","../../../projects/omega-angular/src/lib/agents/omega-agent.ts","../../../projects/omega-angular/src/lib/inspector/omega-flow-manager-instrumentation.ts","../../../projects/omega-angular/src/lib/bootstrap/provide-omega.ts","../../../projects/omega-angular/src/lib/inspector/omega-inspector.service.ts","../../../projects/omega-angular/src/lib/inspector/provide-omega-inspector.ts","../../../projects/omega-angular/src/lib/inspector/omega-inspector-panel.component.ts","../../../projects/omega-angular/src/lib/inspector/omega-inspector-panel.component.html","../../../projects/omega-angular/src/lib/inspector/omega-inspector-floating.component.ts","../../../projects/omega-angular/src/lib/inspector/provide-omega-inspector-floating-ui.ts","../../../projects/omega-angular/src/public-api.ts","../../../projects/omega-angular/src/omega-angular.ts"],"sourcesContent":["/**\r\n * Construction data shared by {@link OmegaObject} derivatives.\r\n */\r\nexport interface OmegaObjectInit {\r\n  /** Correlation / tracing id (often uuid-prefixed by factories). */\r\n  readonly id: string;\r\n  /** Arbitrary metadata bag; shallow-frozen on the instance. */\r\n  readonly meta?: Readonly<Record<string, unknown>>;\r\n}\r\n\r\n/**\r\n * Base type for {@link OmegaEvent}, {@link OmegaIntent}, and {@link OmegaFailure}.\r\n */\r\nexport abstract class OmegaObject {\r\n  readonly id: string;\r\n  readonly meta: Readonly<Record<string, unknown>>;\r\n\r\n  protected constructor(init: OmegaObjectInit) {\r\n    this.id = init.id;\r\n    this.meta = Object.freeze({ ...(init.meta ?? {}) });\r\n  }\r\n}\r\n","import { OmegaObject, type OmegaObjectInit } from './omega-object';\r\n\r\n/** Initialization shape for {@link OmegaFailure}. */\r\nexport interface OmegaFailureInit extends OmegaObjectInit {\r\n  readonly message: string;\r\n  readonly details?: unknown;\r\n}\r\n\r\n/**\r\n * Structured failure value (distinct from thrown `Error`) for domain-level error reporting.\r\n *\r\n * @remarks\r\n * Carries {@link OmegaObject.id} / {@link OmegaObject.meta} for correlation with intents or events.\r\n */\r\nexport class OmegaFailure extends OmegaObject {\r\n  readonly message: string;\r\n  readonly details?: unknown;\r\n\r\n  constructor(init: OmegaFailureInit) {\r\n    super(init);\r\n    this.message = init.message;\r\n    this.details = init.details;\r\n  }\r\n\r\n  /** Human-readable single-line summary for logs. */\r\n  override toString(): string {\r\n    return `OmegaFailure(id: ${this.id}, message: ${this.message}, details: ${this.details})`;\r\n  }\r\n}\r\n","/**\r\n * camelCase enum member → dotted lower wire (`ordersCreate` → `orders.create`).\r\n * Omega dotted wire names from camelCase enum members (e.g. ordersCreate → orders.create).\r\n */\r\nexport function omegaWireNameFromCamelCaseEnumMember(enumMemberName: string): string {\r\n  if (!enumMemberName) {\r\n    return enumMemberName;\r\n  }\r\n  const dotted = enumMemberName.replaceAll(/([a-z0-9])([A-Z])/g, '$1.$2');\r\n  return dotted.toLowerCase();\r\n}\r\n","import { OmegaObject } from '../types/omega-object';\r\nimport type { OmegaIntentName } from './omega-intent-name';\r\n\r\nexport type OmegaIntentWireName = OmegaIntentName | string;\r\n\r\nfunction resolveIntentWireName(name: OmegaIntentWireName): string {\r\n  return typeof name === 'string' ? name : name.name;\r\n}\r\n\r\n/**\r\n * Options for {@link OmegaIntent.fromName}.\r\n *\r\n * @typeParam P — Shape of {@link OmegaIntent.payload} when supplied.\r\n */\r\nexport interface OmegaIntentCreateOptions<P = unknown> {\r\n  readonly payload?: P;\r\n  /** Caller-supplied id; otherwise a time/uuid-based id is generated. */\r\n  readonly id?: string;\r\n  readonly namespace?: string | null;\r\n  readonly meta?: Readonly<Record<string, unknown>>;\r\n}\r\n\r\n/**\r\n * Imperative request (UI action, command, navigation) routed by {@link OmegaFlowManager}\r\n * to every **active** {@link OmegaFlow}.\r\n *\r\n * @typeParam P — Payload type. The `out` variance keeps concrete intents assignable where an\r\n *   untyped {@link OmegaIntent} (`unknown`) is accepted, matching typical handler patterns.\r\n *\r\n * @remarks\r\n * Prefer {@link OmegaIntent.fromName} over `new OmegaIntent` so wire names and ids stay\r\n * consistent with ESLint rules in consumer apps.\r\n */\r\nexport class OmegaIntent<out P = unknown> extends OmegaObject {\r\n  readonly name: string;\r\n  readonly payload?: P;\r\n  readonly namespace?: string | null;\r\n\r\n  constructor(init: {\r\n    readonly id: string;\r\n    readonly name: string;\r\n    readonly payload?: P;\r\n    readonly namespace?: string | null;\r\n    readonly meta?: Readonly<Record<string, unknown>>;\r\n  }) {\r\n    super({ id: init.id, meta: init.meta });\r\n    this.name = init.name;\r\n    this.payload = init.payload;\r\n    this.namespace = init.namespace;\r\n  }\r\n\r\n  /**\r\n   * Factory for intents resolved from an enum-like wire name or string literal.\r\n   *\r\n   * @param name — Semantic intent name (dotted wire convention when using enums).\r\n   * @param options — Optional `payload`, `id`, `namespace`, `meta`.\r\n   */\r\n  static fromName<P = unknown>(\r\n    name: OmegaIntentWireName,\r\n    options: OmegaIntentCreateOptions<P> = {},\r\n  ): OmegaIntent<P> {\r\n    return new OmegaIntent<P>({\r\n      id: options.id ?? OmegaIntent.nextId(),\r\n      name: resolveIntentWireName(name),\r\n      payload: options.payload,\r\n      namespace: options.namespace,\r\n      meta: options.meta,\r\n    });\r\n  }\r\n\r\n  /**\r\n   * Safe cast helper for `payload` when additional narrowing is required.\r\n   *\r\n   * @returns `null` when `payload` is `undefined`; otherwise `payload as T`.\r\n   */\r\n  payloadAs<T extends P = P>(): T | null {\r\n    const p = this.payload;\r\n    if (p == null) {\r\n      return null;\r\n    }\r\n    return p as T;\r\n  }\r\n\r\n  private static nextId(): string {\r\n    const c = globalThis.crypto;\r\n    return `intent:${c?.randomUUID?.() ?? `${Date.now()}`}`;\r\n  }\r\n}\r\n","import { OmegaObject } from '../types/omega-object';\r\nimport type { OmegaEventName } from '../semantics/omega-event-name';\r\n\r\n/** Wire name from a branded {@link OmegaEventName} enum member or a plain string. */\r\nexport type OmegaEventWireName = OmegaEventName | string;\r\n\r\nfunction resolveEventWireName(name: OmegaEventWireName): string {\r\n  return typeof name === 'string' ? name : name.name;\r\n}\r\n\r\n/** Options for {@link OmegaEvent.fromName}. */\r\nexport interface OmegaEventCreateOptions {\r\n  readonly payload?: unknown;\r\n  readonly id?: string;\r\n  readonly namespace?: string | null;\r\n  readonly meta?: Readonly<Record<string, unknown>>;\r\n}\r\n\r\n/**\r\n * Notification that something happened, broadcast on {@link OmegaChannel}.\r\n *\r\n * @remarks\r\n * Events are **facts** (past tense domain signals); pair with {@link OmegaIntent} for commands.\r\n * Prefer {@link OmegaEvent.fromName} in application code for stable ids and lint alignment.\r\n */\r\nexport class OmegaEvent extends OmegaObject {\r\n  readonly name: string;\r\n  readonly payload?: unknown;\r\n  readonly namespace?: string | null;\r\n\r\n  constructor(init: {\r\n    readonly id: string;\r\n    readonly name: string;\r\n    readonly payload?: unknown;\r\n    readonly namespace?: string | null;\r\n    readonly meta?: Readonly<Record<string, unknown>>;\r\n  }) {\r\n    super({ id: init.id, meta: init.meta });\r\n    this.name = init.name;\r\n    this.payload = init.payload;\r\n    this.namespace = init.namespace;\r\n  }\r\n\r\n  /**\r\n   * @param name — Wire event name.\r\n   * @param options — Optional `payload`, `id`, `namespace`, `meta`.\r\n   */\r\n  static fromName(name: OmegaEventWireName, options: OmegaEventCreateOptions = {}): OmegaEvent {\r\n    return new OmegaEvent({\r\n      id: options.id ?? OmegaEvent.nextId('ev'),\r\n      name: resolveEventWireName(name),\r\n      payload: options.payload,\r\n      namespace: options.namespace,\r\n      meta: options.meta,\r\n    });\r\n  }\r\n\r\n  /**\r\n   * @returns `null` if `payload` is missing; otherwise casts `payload` to `T`.\r\n   */\r\n  payloadAs<T>(): T | null {\r\n    const p = this.payload;\r\n    if (p == null) {\r\n      return null;\r\n    }\r\n    return p as T;\r\n  }\r\n\r\n  /**\r\n   * JSON-serializable representation suitable for logging or persistence adapters.\r\n   *\r\n   * @remarks\r\n   * Omits `payload` when `undefined`; omits `namespace` when `null`; omits `meta` when empty.\r\n   */\r\n  toJson(): Record<string, unknown> {\r\n    const out: Record<string, unknown> = {\r\n      id: this.id,\r\n      name: this.name,\r\n    };\r\n    if (this.payload !== undefined) {\r\n      out['payload'] = this.payload;\r\n    }\r\n    if (this.namespace != null) {\r\n      out['namespace'] = this.namespace;\r\n    }\r\n    if (Object.keys(this.meta).length > 0) {\r\n      out['meta'] = { ...this.meta };\r\n    }\r\n    return out;\r\n  }\r\n\r\n  /**\r\n   * Best-effort parser for persisted or wire JSON; validates `meta` shape lightly.\r\n   *\r\n   * @param json — Plain object; missing fields become empty strings / `null` as implemented.\r\n   */\r\n  static fromJson(json: Record<string, unknown>): OmegaEvent {\r\n    const metaRaw = json['meta'];\r\n    const meta =\r\n      metaRaw != null && typeof metaRaw === 'object' && !Array.isArray(metaRaw)\r\n        ? (metaRaw as Record<string, unknown>)\r\n        : {};\r\n    return new OmegaEvent({\r\n      id: (json['id'] as string) ?? '',\r\n      name: (json['name'] as string) ?? '',\r\n      payload: json['payload'],\r\n      namespace: (json['namespace'] as string | null | undefined) ?? null,\r\n      meta,\r\n    });\r\n  }\r\n\r\n  private static nextId(prefix: string): string {\r\n    const c = globalThis.crypto;\r\n    return `${prefix}:${c?.randomUUID?.() ?? `${Date.now()}`}`;\r\n  }\r\n}\r\n","import { Observable, Subject, Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { OmegaEvent } from '../events/omega-event';\r\nimport type { OmegaTypedEvent } from '../semantics/omega-typed-event';\r\n\r\nimport type { OmegaEventBus } from './omega-event-bus';\r\n\r\n/**\r\n * Optional sink for errors raised while emitting on {@link OmegaChannel} or\r\n * {@link OmegaChannelNamespace} (including post-{@link OmegaChannel.dispose dispose} emits).\r\n */\r\nexport type OmegaEmitErrorHandler = (error: unknown, stack?: string) => void;\r\n\r\n/**\r\n * Application-wide {@link OmegaEvent} bus backed by a `Subject` **multicasted** to subscribers\r\n * (no replay; subscribers only see events emitted after they subscribe).\r\n *\r\n * @remarks\r\n * - **Threading:** Intended for single-threaded Angular/RxJS usage within one zone.\r\n * - **Errors:** Subscriber errors propagate; use {@link OmegaEmitErrorHandler} via constructor\r\n *   options to log or report without crashing the pipeline when possible.\r\n * - **Scoping:** {@link OmegaChannelNamespace} tags emits with a namespace string and filters\r\n *   {@link OmegaChannelNamespace.events} to global events plus that namespace.\r\n *\r\n * @see {@link OmegaEventBus}\r\n */\r\nexport class OmegaChannel implements OmegaEventBus {\r\n  private readonly hub = new Subject<OmegaEvent>();\r\n  private closed = false;\r\n\r\n  readonly events: Observable<OmegaEvent> = this.hub.asObservable();\r\n\r\n  /** Optional handler invoked when {@link emit} fails or the channel is already disposed. */\r\n  readonly onEmitError?: OmegaEmitErrorHandler;\r\n\r\n  /**\r\n   * @param options — Optional `{ onEmitError }` callback for emit-time failures.\r\n   */\r\n  constructor(options?: { onEmitError?: OmegaEmitErrorHandler }) {\r\n    this.onEmitError = options?.onEmitError;\r\n  }\r\n\r\n  /**\r\n   * Returns a view that prefixes emitted events with `namespace` and filters the stream\r\n   * to global (`namespace == null`) plus this namespace’s events.\r\n   *\r\n   * @param name — Non-empty namespace segment (conventionally feature or bounded-context name).\r\n   */\r\n  namespace(name: string): OmegaChannelNamespace {\r\n    return new OmegaChannelNamespace(this, name);\r\n  }\r\n\r\n  /**\r\n   * Pushes one event to all current subscribers of {@link events}.\r\n   *\r\n   * @param event — Fully built {@link OmegaEvent}; prefer {@link emitNamed} or {@link emitTyped} when possible.\r\n   */\r\n  emit(event: OmegaEvent): void {\r\n    if (this.closed) {\r\n      this.onEmitError?.call(this, new Error('OmegaChannel is disposed, cannot emit'));\r\n      return;\r\n    }\r\n    try {\r\n      this.hub.next(event);\r\n    } catch (e) {\r\n      this.onEmitError?.call(this, e, e instanceof Error ? e.stack : undefined);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Wraps a typed payload object as `payload` on a fresh {@link OmegaEvent} with `namespace: null`.\r\n   *\r\n   * @param event — Must include a discriminating `name` compatible with {@link OmegaTypedEvent}.\r\n   */\r\n  emitTyped(event: OmegaTypedEvent): void {\r\n    this.emit(\r\n      new OmegaEvent({\r\n        id: OmegaChannel.nextEventId(),\r\n        name: event.name,\r\n        payload: event,\r\n        namespace: null,\r\n        meta: {},\r\n      }),\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Shorthand for {@link OmegaEvent.fromName} plus {@link emit} with a generated id.\r\n   *\r\n   * @param name — Wire-level event name.\r\n   * @param payload — Optional JSON-like payload (stored by reference; clone if immutability matters).\r\n   */\r\n  emitNamed(name: string, payload?: Record<string, unknown>): void {\r\n    this.emit(OmegaEvent.fromName(name, { payload }));\r\n  }\r\n\r\n  /**\r\n   * @param name — Event name to filter on (equality).\r\n   * @returns Filtered view of {@link events} for a single `name`.\r\n   */\r\n  on(name: string): Observable<OmegaEvent> {\r\n    return this.events.pipe(filter((e) => e.name === name));\r\n  }\r\n\r\n  /**\r\n   * Completes the underlying subject; further {@link emit} calls are ignored (or reported via {@link onEmitError}).\r\n   */\r\n  dispose(): void {\r\n    if (!this.closed) {\r\n      this.closed = true;\r\n      this.hub.complete();\r\n    }\r\n  }\r\n\r\n  private static nextEventId(): string {\r\n    const c = globalThis.crypto;\r\n    return `ev:${c?.randomUUID?.() ?? `${Date.now()}`}`;\r\n  }\r\n}\r\n\r\n/**\r\n * Scoped {@link OmegaEventBus} view over an {@link OmegaChannel}.\r\n *\r\n * @remarks\r\n * {@link emit} / {@link emitTyped} / {@link emitNamed} set `namespace` on the outgoing\r\n * {@link OmegaEvent}. {@link events} (and {@link on}) merge the root stream but only pass\r\n * through events whose `namespace` is `null` **or** equals this namespace.\r\n */\r\nexport class OmegaChannelNamespace implements OmegaEventBus {\r\n  /**\r\n   * @param channel — Parent channel that receives re-tagged events.\r\n   * @param namespace — Namespace string applied to all emits from this view.\r\n   */\r\n  constructor(\r\n    private readonly channel: OmegaChannel,\r\n    readonly namespace: string,\r\n  ) {}\r\n\r\n  /**\r\n   * Re-emits on the root channel with `namespace` forced to this namespace.\r\n   *\r\n   * @param event — Source event; `id`, `name`, `payload`, and `meta` are preserved.\r\n   */\r\n  emit(event: OmegaEvent): void {\r\n    this.channel.emit(\r\n      new OmegaEvent({\r\n        id: event.id,\r\n        name: event.name,\r\n        payload: event.payload,\r\n        namespace: this.namespace,\r\n        meta: event.meta,\r\n      }),\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Same as {@link OmegaChannel.emitTyped} but sets `namespace` to this namespace.\r\n   *\r\n   * @param event — Typed payload carrying `name`.\r\n   */\r\n  emitTyped(event: OmegaTypedEvent): void {\r\n    this.emit(\r\n      new OmegaEvent({\r\n        id: OmegaChannelNamespace.nextEventId(),\r\n        name: event.name,\r\n        payload: event,\r\n        namespace: this.namespace,\r\n        meta: {},\r\n      }),\r\n    );\r\n  }\r\n\r\n  /**\r\n   * Like {@link OmegaChannel.emitNamed} with `namespace` defaulted to this namespace.\r\n   */\r\n  emitNamed(name: string, payload?: Record<string, unknown>): void {\r\n    this.emit(OmegaEvent.fromName(name, { payload, namespace: this.namespace }));\r\n  }\r\n\r\n  /**\r\n   * Stream of root events where `namespace` is `null` (global) or equals {@link namespace}.\r\n   */\r\n  get events(): Observable<OmegaEvent> {\r\n    return new Observable<OmegaEvent>((subscriber) => {\r\n      const sub: Subscription = this.channel.events.subscribe((e) => {\r\n        const ns = e.namespace;\r\n        if (ns == null || ns === this.namespace) {\r\n          subscriber.next(e);\r\n        }\r\n      });\r\n      return () => sub.unsubscribe();\r\n    });\r\n  }\r\n\r\n  /**\r\n   * @param name — Event name filter (equality) on {@link events}.\r\n   */\r\n  on(name: string): Observable<OmegaEvent> {\r\n    return this.events.pipe(filter((e) => e.name === name));\r\n  }\r\n\r\n  private static nextEventId(): string {\r\n    const c = globalThis.crypto;\r\n    return `ev:${c?.randomUUID?.() ?? `${Date.now()}`}`;\r\n  }\r\n}\r\n","import { OmegaChannel } from '../core/channel/omega-channel';\r\nimport { OmegaEvent } from '../core/events/omega-event';\r\nimport { OmegaIntent } from '../core/semantics/omega-intent';\r\n\r\n/**\r\n * Application feature orchestration unit: receives {@link OmegaIntent} from the\r\n * {@link OmegaFlowManager} and {@link OmegaEvent} from the shared {@link OmegaChannel}.\r\n *\r\n * @remarks\r\n * Subclasses expose a stable string {@link id} used with {@link OmegaFlowManager.activate},\r\n * {@link OmegaFlowManager.switchTo}, and registration. Use the protected {@link emit} helper\r\n * to publish domain events without reaching for the channel directly from deep call stacks.\r\n */\r\nexport abstract class OmegaFlow {\r\n  /**\r\n   * Unique key for registration and activation (e.g. `'auth'`, `'orders'`).\r\n   */\r\n  abstract readonly id: string;\r\n\r\n  /**\r\n   * @param channel — Inject and store for {@link emit}; must be the app’s singleton channel.\r\n   */\r\n  protected constructor(protected readonly channel: OmegaChannel) {}\r\n\r\n  /**\r\n   * Handle user or system intents while this flow is in the manager’s active set.\r\n   *\r\n   * @param intent — Narrow with {@link OmegaIntent.payloadAs} when needed.\r\n   */\r\n  abstract onIntent(intent: OmegaIntent): void;\r\n\r\n  /**\r\n   * Called for each {@link OmegaEvent} on the channel while this flow is active on the\r\n   * {@link OmegaFlowManager}. Override to react to cross-flow or infrastructure events.\r\n   *\r\n   * @param _event — Unused in the default no-op implementation.\r\n   */\r\n  onEvent(_event: OmegaEvent): void {}\r\n\r\n  /**\r\n   * Emit a named {@link OmegaEvent} on the injected {@link OmegaChannel}.\r\n   *\r\n   * @param name — Wire event name.\r\n   * @param payload — Optional payload; passed by reference.\r\n   * @param namespace — Optional namespace override; forwarded to {@link OmegaEvent.fromName}.\r\n   */\r\n  protected emit(\r\n    name: string,\r\n    payload?: Record<string, unknown>,\r\n    namespace?: string | null,\r\n  ): void {\r\n    this.channel.emit(OmegaEvent.fromName(name, { payload, namespace }));\r\n  }\r\n}\r\n","import { OmegaChannel } from '../core/channel/omega-channel';\r\nimport type { OmegaEvent } from '../core/events/omega-event';\r\nimport { OmegaIntent } from '../core/semantics/omega-intent';\r\nimport type { OmegaFlowManagerInstrumentation } from '../inspector/omega-flow-manager-instrumentation';\r\n\r\nimport type { OmegaFlow } from './omega-flow';\r\n\r\n/**\r\n * Routes {@link OmegaIntent} instances to **active** flows and forwards every\r\n * {@link OmegaEvent} on the {@link OmegaChannel} to those flows’ {@link OmegaFlow.onEvent}.\r\n *\r\n * @remarks\r\n * **Construction:** Subscribes to `channel.events` for the lifetime of the manager.\r\n * Unregister flows by design is not provided; the manager is usually app-scoped.\r\n *\r\n * **Active set:** {@link activate} adds a flow id; {@link deactivate} removes one;\r\n * {@link switchTo} replaces the whole set with a single id (common “one main flow” mode).\r\n * {@link handleIntent} iterates the active set in insertion order and calls {@link OmegaFlow.onIntent}.\r\n *\r\n * **Events:** Each channel event is delivered to every active flow; flows should filter\r\n * quickly if they only care about a subset of names.\r\n */\r\nexport class OmegaFlowManager {\r\n  private readonly flows = new Map<string, OmegaFlow>();\r\n  private readonly activeFlowIds = new Set<string>();\r\n\r\n  /**\r\n   * @param channel — Channel whose `events` stream this manager subscribes to for its whole lifetime.\r\n   *   The subscription is not unsubscribed by the library; align manager and channel lifecycle with the app.\r\n   * @param instrumentation — Optional debug hooks (e.g. Omega Inspector); omit in production if unused.\r\n   */\r\n  constructor(\r\n    private readonly channel: OmegaChannel,\r\n    private readonly instrumentation?: OmegaFlowManagerInstrumentation,\r\n  ) {\r\n    this.channel.events.subscribe((event) => this.forwardEventToActiveFlows(event));\r\n  }\r\n\r\n  private forwardEventToActiveFlows(event: OmegaEvent): void {\r\n    for (const id of this.activeFlowIds) {\r\n      this.flows.get(id)?.onEvent(event);\r\n    }\r\n  }\r\n\r\n  /** @returns The same {@link OmegaChannel} instance passed to the constructor. */\r\n  getChannel(): OmegaChannel {\r\n    return this.channel;\r\n  }\r\n\r\n  /**\r\n   * Stores a flow by {@link OmegaFlow.id}. Later calls with the same id replace the previous flow.\r\n   *\r\n   * @param flow — Flow instance; `flow.id` must be stable for activate/switchTo lookups.\r\n   */\r\n  registerFlow(flow: OmegaFlow): void {\r\n    this.flows.set(flow.id, flow);\r\n    this.instrumentation?.onFlowRegistered?.(flow.id);\r\n  }\r\n\r\n  /** Registered flow ids (for devtools / inspector). */\r\n  getRegisteredFlowIds(): readonly string[] {\r\n    return [...this.flows.keys()].sort();\r\n  }\r\n\r\n  /** Currently active flow ids (for devtools / inspector). */\r\n  getActiveFlowIds(): readonly string[] {\r\n    return [...this.activeFlowIds];\r\n  }\r\n\r\n  /**\r\n   * @deprecated Use {@link registerFlow} instead. Will be removed in a future major version.\r\n   */\r\n  register(flow: OmegaFlow): void {\r\n    this.registerFlow(flow);\r\n  }\r\n\r\n  /**\r\n   * Adds a flow id to the active set so it receives intents and channel events.\r\n   *\r\n   * @param flowId — {@link OmegaFlow.id} previously {@link registerFlow registered}.\r\n   */\r\n  activate(flowId: string): void {\r\n    this.activeFlowIds.add(flowId);\r\n    this.instrumentation?.onActiveSetChanged?.(this.getActiveFlowIds());\r\n  }\r\n\r\n  /**\r\n   * Removes a flow id from the active set without disposing the flow instance.\r\n   *\r\n   * @param flowId — Id to remove from the active set; no-op if not active.\r\n   */\r\n  deactivate(flowId: string): void {\r\n    this.activeFlowIds.delete(flowId);\r\n    this.instrumentation?.onActiveSetChanged?.(this.getActiveFlowIds());\r\n  }\r\n\r\n  /**\r\n   * Clears the active set, then activates exactly one flow (typical “current screen flow” pattern).\r\n   *\r\n   * @param flowId — {@link OmegaFlow.id} to make the sole active flow.\r\n   */\r\n  switchTo(flowId: string): void {\r\n    this.activeFlowIds.clear();\r\n    this.activeFlowIds.add(flowId);\r\n    this.instrumentation?.onActiveSetChanged?.(this.getActiveFlowIds());\r\n  }\r\n\r\n  /**\r\n   * Delivers the intent to every active flow, in activation order.\r\n   *\r\n   * @param intent — Typically created with {@link OmegaIntent.fromName}.\r\n   */\r\n  handleIntent(intent: OmegaIntent): void {\r\n    const active = this.getActiveFlowIds();\r\n    this.instrumentation?.onIntentHandled?.(intent, active);\r\n    for (const id of this.activeFlowIds) {\r\n      this.flows.get(id)?.onIntent(intent);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * @deprecated Use {@link handleIntent} instead. Will be removed in a future major version.\r\n   */\r\n  dispatch(intent: OmegaIntent): void {\r\n    this.handleIntent(intent);\r\n  }\r\n}\r\n","import type { OmegaEvent } from '../core/events/omega-event';\r\n\r\n/** Input to {@link OmegaAgentBehaviorEngine.evaluate}. */\r\nexport interface OmegaAgentBehaviorContext {\r\n  /** The channel event currently being processed. */\r\n  readonly event: OmegaEvent;\r\n}\r\n\r\n/**\r\n * Declarative outcome from a behavior engine (e.g. `LOG`, `OPEN_MODAL`, route guard side effect).\r\n */\r\nexport interface OmegaAgentReaction {\r\n  /** Stable action key interpreted by the host {@link OmegaAgent}. */\r\n  readonly action: string;\r\n  readonly payload?: unknown;\r\n}\r\n\r\n/** Callback invoked by {@link OmegaAgent} for each non-null {@link OmegaAgentReaction}. */\r\nexport type OmegaAgentReactionHandler = (reaction: OmegaAgentReaction) => void;\r\n\r\n/**\r\n * Pluggable rule evaluated on every {@link OmegaEvent} handled by {@link OmegaAgent}.\r\n *\r\n * @remarks\r\n * Engines run in registration order. Returning `null` means “no reaction”; returning an\r\n * object forwards it to {@link OmegaAgentReactionHandler} immediately (no batching).\r\n */\r\nexport abstract class OmegaAgentBehaviorEngine {\r\n  /**\r\n   * @param ctx — Current event context.\r\n   * @returns A reaction to dispatch, or `null` to skip.\r\n   */\r\n  abstract evaluate(ctx: OmegaAgentBehaviorContext): OmegaAgentReaction | null;\r\n}\r\n","import { Subscription } from 'rxjs';\r\n\r\nimport { OmegaChannel } from '../core/channel/omega-channel';\r\nimport type { OmegaEvent } from '../core/events/omega-event';\r\n\r\nimport type { OmegaAgentBehaviorEngine, OmegaAgentReactionHandler } from './omega-agent-behavior';\r\n\r\nexport interface OmegaAgentErrorContext {\r\n  readonly phase: 'evaluate' | 'reaction';\r\n  readonly event: OmegaEvent;\r\n  readonly behavior?: OmegaAgentBehaviorEngine;\r\n  readonly reaction?: unknown;\r\n}\r\n\r\nexport type OmegaAgentErrorHandler = (error: unknown, context: OmegaAgentErrorContext) => void;\r\n\r\n/**\r\n * Side-effect coordinator that listens to **all** {@link OmegaEvent} values on a channel\r\n * and runs one or more {@link OmegaAgentBehaviorEngine} instances per tick.\r\n *\r\n * @remarks\r\n * Unlike {@link OmegaFlow}, agents are not selected by the {@link OmegaFlowManager}; they\r\n * subscribe directly. **Each** {@link OmegaAgentBehaviorEngine} runs for every event; any\r\n * non-null {@link OmegaAgentBehaviorEngine.evaluate} result triggers {@link OmegaAgentReactionHandler}\r\n * in array order (multiple reactions per event are allowed). Call {@link destroy} when tearing\r\n * down a session scope to avoid duplicate subscriptions.\r\n */\r\nexport class OmegaAgent {\r\n  private subscription?: Subscription;\r\n\r\n  /**\r\n   * @param channel — Source of events (typically the app singleton).\r\n   * @param behaviors — Engines evaluated in array order for every event.\r\n   * @param onReaction — Invoked for each non-null {@link OmegaAgentBehaviorEngine.evaluate} result.\r\n   */\r\n  constructor(\r\n    private readonly channel: OmegaChannel,\r\n    private readonly behaviors: readonly OmegaAgentBehaviorEngine[],\r\n    private readonly onReaction: OmegaAgentReactionHandler,\r\n    private readonly onError?: OmegaAgentErrorHandler,\r\n  ) {\r\n    this.subscription = this.channel.events.subscribe((event) => this.tick(event));\r\n  }\r\n\r\n  private tick(event: OmegaEvent): void {\r\n    const ctx = { event };\r\n    for (const behavior of this.behaviors) {\r\n      try {\r\n        const reaction = behavior.evaluate(ctx);\r\n        if (reaction) {\r\n          try {\r\n            this.onReaction(reaction);\r\n          } catch (error) {\r\n            this.onError?.(error, { phase: 'reaction', event, behavior, reaction });\r\n          }\r\n        }\r\n      } catch (error) {\r\n        this.onError?.(error, { phase: 'evaluate', event, behavior });\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * Unsubscribes from {@link OmegaChannel.events}; the agent must not be used afterward.\r\n   */\r\n  destroy(): void {\r\n    this.subscription?.unsubscribe();\r\n    this.subscription = undefined;\r\n  }\r\n}\r\n","import { InjectionToken } from '@angular/core';\n\nimport type { OmegaIntent } from '../core/semantics/omega-intent';\n\n/**\n * Optional hooks for debugging tools (e.g. {@link provideOmegaInspector}).\n * Production apps can omit this entirely.\n */\nexport interface OmegaFlowManagerInstrumentation {\n  /** Called after a flow id is registered. */\n  onFlowRegistered?(flowId: string): void;\n  /** Called after activate / deactivate / switchTo changes the active set. */\n  onActiveSetChanged?(activeFlowIds: readonly string[]): void;\n  /** Called when {@link OmegaFlowManager.handleIntent} runs (before flows handle the intent). */\n  onIntentHandled?(intent: OmegaIntent, activeFlowIds: readonly string[]): void;\n}\n\n/** Injected when {@link provideOmegaInspector} is used together with {@link provideOmega}. */\nexport const OMEGA_FLOW_MANAGER_INSTRUMENTATION = new InjectionToken<OmegaFlowManagerInstrumentation | undefined>(\n  'OMEGA_FLOW_MANAGER_INSTRUMENTATION',\n);\n","import { Optional, Provider, inject, provideAppInitializer } from '@angular/core';\r\n\r\nimport { OmegaChannel } from '../core/channel/omega-channel';\r\nimport type { OmegaEmitErrorHandler } from '../core/channel/omega-channel';\r\nimport type { OmegaFlow } from '../flows/omega-flow';\r\nimport { OmegaFlowManager } from '../flows/omega-flow-manager';\r\nimport type { OmegaFlowManagerInstrumentation } from '../inspector/omega-flow-manager-instrumentation';\r\nimport { OMEGA_FLOW_MANAGER_INSTRUMENTATION } from '../inspector/omega-flow-manager-instrumentation';\r\n\r\n/**\r\n * Stable handles available during {@link OmegaProvideOptions.bootstrap} and\r\n * {@link OmegaProvideOptions.createAgents}.\r\n *\r\n * @remarks\r\n * Both services are singletons for the injector that registered `provideOmega`.\r\n * Use `ctx.manager` to activate flows or dispatch intents from startup code;\r\n * use `ctx.channel` when agents or bootstrap need to emit or subscribe directly.\r\n */\r\nexport interface OmegaRuntimeContext {\r\n  /** Shared bus for {@link OmegaEvent} traffic between flows and agents. */\r\n  readonly channel: OmegaChannel;\r\n  /** Routes intents to active flows; holds registered {@link OmegaFlow} instances. */\r\n  readonly manager: OmegaFlowManager;\r\n}\r\n\r\n/**\r\n * Configuration for {@link provideOmega}.\r\n */\r\nexport interface OmegaProvideOptions {\r\n  /**\r\n   * Factory that builds every {@link OmegaFlow} for the app, all wired to the same\r\n   * {@link OmegaChannel} instance the library registers.\r\n   *\r\n   * @remarks\r\n   * - **channel** — The injected {@link OmegaChannel}; pass it into each flow’s constructor.\r\n   * - **Return value** — A readonly list of flows; each {@link OmegaFlow.id} must be unique.\r\n   */\r\n  createFlows: (channel: OmegaChannel) => readonly OmegaFlow[];\r\n  /**\r\n   * Optional sink for channel emit errors (disposed channel emit, observer errors, etc).\r\n   *\r\n   * @remarks\r\n   * Use this to centralize diagnostics (`console.error`, telemetry) for internal channel failures.\r\n   */\r\n  onChannelEmitError?: OmegaEmitErrorHandler;\r\n  /**\r\n   * Optional one-shot hook after flows are {@link OmegaFlowManager.registerFlow registered}\r\n   * on the manager but before the application finishes bootstrapping.\r\n   *\r\n   * @remarks\r\n   * Typical uses: {@link OmegaFlowManager.switchTo}, {@link OmegaFlowManager.activate},\r\n   * seeding session state, or dispatching an initial {@link OmegaIntent}.\r\n   * Runs inside Angular app initialization; keep work fast and avoid blocking UI.\r\n   */\r\n  bootstrap?: (ctx: OmegaRuntimeContext) => void;\r\n  /**\r\n   * Optional hook to construct {@link OmegaAgent} instances or other channel listeners\r\n   * that are not modeled as flows.\r\n   *\r\n   * @remarks\r\n   * Runs in the same app-initialization hook as `bootstrap`, after `bootstrap` if both are set.\r\n   * Prefer constructing agents here so they share the same channel/manager as flows.\r\n   */\r\n  createAgents?: (ctx: OmegaRuntimeContext) => void;\r\n}\r\n\r\n/**\r\n * Registers {@link OmegaChannel} and {@link OmegaFlowManager}, registers all flows from\r\n * {@link OmegaProvideOptions.createFlows}, then runs optional `bootstrap` / `createAgents`\r\n * hooks when Angular’s injector is ready.\r\n *\r\n * @param options — Flow factory plus optional startup hooks.\r\n * @returns A {@link Provider} array suitable for `ApplicationConfig.providers` or `NgModule.providers`.\r\n *\r\n * @remarks\r\n * Registration order: `OmegaChannel` → `OmegaFlowManager` (with flows) → app initializer\r\n * that invokes `bootstrap` then `createAgents`. Consumers on **Angular 19+** can spread\r\n * the result into `providers: [...]`.\r\n *\r\n * @see {@link OmegaProvideOptions}\r\n */\r\nexport function provideOmega(options: OmegaProvideOptions): Array<Provider | ReturnType<typeof provideAppInitializer>> {\r\n  return [\r\n    {\r\n      provide: OmegaChannel,\r\n      useFactory: () => new OmegaChannel({ onEmitError: options.onChannelEmitError }),\r\n    },\r\n    {\r\n      provide: OmegaFlowManager,\r\n      useFactory: (channel: OmegaChannel, instrumentation?: OmegaFlowManagerInstrumentation) => {\r\n        const manager = new OmegaFlowManager(channel, instrumentation);\r\n        for (const flow of options.createFlows(channel)) {\r\n          manager.registerFlow(flow);\r\n        }\r\n        return manager;\r\n      },\r\n      deps: [OmegaChannel, [new Optional(), OMEGA_FLOW_MANAGER_INSTRUMENTATION]],\r\n    },\r\n    provideAppInitializer(() => {\r\n      const channel = inject(OmegaChannel);\r\n      const manager = inject(OmegaFlowManager);\r\n      const ctx: OmegaRuntimeContext = { channel, manager };\r\n      options.bootstrap?.(ctx);\r\n      options.createAgents?.(ctx);\r\n    }),\r\n  ];\r\n}\r\n","import { DestroyRef, Injectable, Injector, computed, inject, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { OmegaChannel } from '../core/channel/omega-channel';\nimport type { OmegaEvent } from '../core/events/omega-event';\nimport type { OmegaIntent } from '../core/semantics/omega-intent';\nimport { OmegaFlowManager } from '../flows/omega-flow-manager';\n\nimport type { OmegaFlowManagerInstrumentation } from './omega-flow-manager-instrumentation';\nimport type { OmegaInspectorGlobalApi } from './omega-inspector-global';\nimport type { OmegaInspectorChannelEntry, OmegaInspectorIntentEntry } from './omega-inspector.types';\n\nexport type { OmegaInspectorChannelEntry, OmegaInspectorIntentEntry } from './omega-inspector.types';\n\n/** @internal */\nexport const OMEGA_INSPECTOR_MAX_EVENTS = 500;\n\n@Injectable()\nexport class OmegaInspectorService {\n  private readonly channel = inject(OmegaChannel);\n  private readonly injector = inject(Injector);\n  private readonly destroyRef = inject(DestroyRef);\n\n  private readonly maxEvents = signal(OMEGA_INSPECTOR_MAX_EVENTS);\n\n  /** Channel events (most recent last). */\n  readonly channelLog = signal<readonly OmegaInspectorChannelEntry[]>([]);\n  /** Intents passed to {@link OmegaFlowManager.handleIntent}. */\n  readonly intentLog = signal<readonly OmegaInspectorIntentEntry[]>([]);\n\n  readonly registeredFlowIds = signal<readonly string[]>([]);\n  readonly activeFlowIds = signal<readonly string[]>([]);\n\n  readonly selectedChannelEntry = signal<OmegaInspectorChannelEntry | null>(null);\n  readonly selectedIntentEntry = signal<OmegaInspectorIntentEntry | null>(null);\n\n  readonly detailsJson = computed(() => {\n    const c = this.selectedChannelEntry();\n    const i = this.selectedIntentEntry();\n    if (c) {\n      return JSON.stringify(\n        {\n          type: 'channel',\n          id: c.id,\n          name: c.name,\n          namespace: c.namespace,\n          deliveredToFlowIds: c.deliveredToFlowIds,\n          payload: c.raw.payload,\n          meta: c.raw.meta,\n        },\n        null,\n        2,\n      );\n    }\n    if (i) {\n      return JSON.stringify(\n        {\n          type: 'intent',\n          id: i.id,\n          name: i.name,\n          activeFlowIds: i.activeFlowIds,\n          payload: i.raw.payload,\n          meta: i.raw.meta,\n        },\n        null,\n        2,\n      );\n    }\n    return '';\n  });\n\n  private broadcast: BroadcastChannel | null = null;\n\n  /** When true, each channel event / intent is also printed with `console.groupCollapsed` (Redux-style). */\n  private consoleLogEnabled = false;\n\n  private globalAttached = false;\n\n  constructor() {\n    this.channel.events.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {\n      this.appendChannelEvent(event);\n    });\n    this.refreshFlowListsSoon();\n    this.destroyRef.onDestroy(() => this.detachGlobal());\n  }\n\n  /** Call from app bootstrap if you want a second tab / static page to listen (same origin). */\n  enableBroadcastChannel(name = 'omega-inspector'): void {\n    if (typeof BroadcastChannel === 'undefined') {\n      return;\n    }\n    this.broadcast = new BroadcastChannel(name);\n  }\n\n  setMaxEvents(n: number): void {\n    this.maxEvents.set(Math.max(10, Math.min(10_000, n)));\n  }\n\n  /**\n   * Print each channel event and intent to the **browser console** using grouped, styled logs\n   * (similar in spirit to Redux middleware logging — not the Redux DevTools browser extension).\n   */\n  setConsoleLog(enabled: boolean): void {\n    this.consoleLogEnabled = enabled;\n  }\n\n  getConsoleLog(): boolean {\n    return this.consoleLogEnabled;\n  }\n\n  /**\n   * Attaches {@link OmegaInspectorGlobalApi} to `window.__OMEGA_INSPECTOR__` so you can run\n   * `__OMEGA_INSPECTOR__.getIntentLog()` from DevTools. No-op on non-browser platforms.\n   */\n  exposeGlobal(): void {\n    if (typeof window === 'undefined') {\n      return;\n    }\n    const api: OmegaInspectorGlobalApi = {\n      version: 1,\n      getChannelLog: () => this.channelLog(),\n      getIntentLog: () => this.intentLog(),\n      getRegisteredFlowIds: () => this.registeredFlowIds(),\n      getActiveFlowIds: () => this.activeFlowIds(),\n      clear: () => this.clearLogs(),\n      setConsoleLog: (on) => this.setConsoleLog(on),\n      getConsoleLogEnabled: () => this.consoleLogEnabled,\n    };\n    window.__OMEGA_INSPECTOR__ = api;\n    this.globalAttached = true;\n    // One-time hint (similar discoverability to Redux-style dev hints)\n    if (typeof console !== 'undefined' && console.info) {\n      console.info(\n        '%cOmega%c · Inspector API → %cwindow.__OMEGA_INSPECTOR__',\n        'background:#6e48aa;color:#fff;padding:2px 6px;border-radius:3px',\n        '',\n        'color:#00d2ff;font-weight:bold',\n      );\n    }\n  }\n\n  private detachGlobal(): void {\n    if (typeof window === 'undefined' || !this.globalAttached) {\n      return;\n    }\n    this.globalAttached = false;\n    delete window.__OMEGA_INSPECTOR__;\n  }\n\n  createInstrumentation(): OmegaFlowManagerInstrumentation {\n    return {\n      onFlowRegistered: () => this.refreshFlowListsSoon(),\n      onActiveSetChanged: () => this.refreshFlowListsSoon(),\n      onIntentHandled: (intent, activeFlowIds) => this.appendIntent(intent, activeFlowIds),\n    };\n  }\n\n  clearLogs(): void {\n    this.channelLog.set([]);\n    this.intentLog.set([]);\n    this.selectedChannelEntry.set(null);\n    this.selectedIntentEntry.set(null);\n  }\n\n  selectChannelEntry(entry: OmegaInspectorChannelEntry | null): void {\n    this.selectedChannelEntry.set(entry);\n    this.selectedIntentEntry.set(null);\n  }\n\n  selectIntentEntry(entry: OmegaInspectorIntentEntry | null): void {\n    this.selectedIntentEntry.set(entry);\n    this.selectedChannelEntry.set(null);\n  }\n\n  private refreshFlowListsSoon(): void {\n    queueMicrotask(() => {\n      try {\n        const manager = this.injector.get(OmegaFlowManager, null, { optional: true });\n        if (manager) {\n          this.registeredFlowIds.set(manager.getRegisteredFlowIds());\n          this.activeFlowIds.set(manager.getActiveFlowIds());\n        }\n      } catch {\n        /* manager not ready */\n      }\n    });\n  }\n\n  private appendChannelEvent(event: OmegaEvent): void {\n    const deliveredToFlowIds = this.getCurrentActiveFlowIds();\n    const entry: OmegaInspectorChannelEntry = {\n      id: event.id,\n      t: Date.now(),\n      name: event.name,\n      namespace: event.namespace ?? null,\n      deliveredToFlowIds,\n      payloadPreview: payloadPreview(event.payload),\n      raw: event,\n    };\n    const next = [...this.channelLog(), entry];\n    const cap = this.maxEvents();\n    if (next.length > cap) {\n      next.splice(0, next.length - cap);\n    }\n    this.channelLog.set(next);\n    this.postBroadcast({ kind: 'channel', entry });\n    if (this.consoleLogEnabled) {\n      logChannelEventToConsole(entry);\n    }\n  }\n\n  private getCurrentActiveFlowIds(): readonly string[] {\n    try {\n      const manager = this.injector.get(OmegaFlowManager, null, { optional: true });\n      return manager ? manager.getActiveFlowIds() : [];\n    } catch {\n      return [];\n    }\n  }\n\n  private appendIntent(intent: OmegaIntent, activeFlowIds: readonly string[]): void {\n    const entry: OmegaInspectorIntentEntry = {\n      id: intent.id,\n      t: Date.now(),\n      name: intent.name,\n      activeFlowIds: [...activeFlowIds],\n      payloadPreview: payloadPreview(intent.payload),\n      raw: intent,\n    };\n    const next = [...this.intentLog(), entry];\n    const cap = this.maxEvents();\n    if (next.length > cap) {\n      next.splice(0, next.length - cap);\n    }\n    this.intentLog.set(next);\n    this.refreshFlowListsSoon();\n    this.postBroadcast({ kind: 'intent', entry });\n    if (this.consoleLogEnabled) {\n      logIntentToConsole(entry);\n    }\n  }\n\n  private postBroadcast(msg: unknown): void {\n    try {\n      this.broadcast?.postMessage(msg);\n    } catch {\n      /* ignore */\n    }\n  }\n}\n\nconst CS = {\n  label: 'background:#1a1a24;color:#e8e8ef;padding:2px 6px;border-radius:3px;font-weight:600',\n  intent: 'color:#c07fd6;font-weight:600',\n  event: 'color:#5cefff;font-weight:600',\n  dim: 'color:#8b8b9a',\n};\n\nfunction logChannelEventToConsole(entry: OmegaInspectorChannelEntry): void {\n  try {\n    console.groupCollapsed(\n      `%c Omega %c event %c ${entry.name}`,\n      CS.label,\n      CS.dim,\n      CS.event,\n    );\n    console.log('%cid', CS.dim, entry.id);\n    console.log('%cnamespace', CS.dim, entry.namespace);\n    console.log('%cdelivered to flows', CS.dim, entry.deliveredToFlowIds);\n    console.log('%cpayload', CS.dim, entry.raw.payload);\n    console.log('%cmeta', CS.dim, entry.raw.meta);\n    console.groupEnd();\n  } catch {\n    /* ignore */\n  }\n}\n\nfunction logIntentToConsole(entry: OmegaInspectorIntentEntry): void {\n  try {\n    console.groupCollapsed(\n      `%c Omega %c intent %c ${entry.name}`,\n      CS.label,\n      CS.dim,\n      CS.intent,\n    );\n    console.log('%cid', CS.dim, entry.id);\n    console.log('%cactive flows', CS.dim, entry.activeFlowIds);\n    console.log('%cpayload', CS.dim, entry.raw.payload);\n    console.log('%cmeta', CS.dim, entry.raw.meta);\n    console.groupEnd();\n  } catch {\n    /* ignore */\n  }\n}\n\nfunction payloadPreview(payload: unknown): string {\n  if (payload === undefined) {\n    return '';\n  }\n  try {\n    const s = JSON.stringify(payload);\n    return s.length > 160 ? `${s.slice(0, 157)}…` : s;\n  } catch {\n    return String(payload);\n  }\n}\n","import { isDevMode, type Provider } from '@angular/core';\n\nimport { OMEGA_FLOW_MANAGER_INSTRUMENTATION } from './omega-flow-manager-instrumentation';\nimport { OmegaInspectorService } from './omega-inspector.service';\n\nexport interface OmegaInspectorProvideOptions {\n  /** Max rows kept for channel + intent logs (default 500). */\n  maxEvents?: number;\n  /** If true, mirror traffic to `BroadcastChannel` `omega-inspector` (same origin only). See MDN: BroadcastChannel. */\n  broadcastChannel?: boolean;\n  /**\n   * If true, log each channel event and intent to the browser **console** with grouped, styled\n   * output (Redux-middleware style — not the Redux DevTools extension).\n   * @default false\n   */\n  consoleLog?: boolean;\n  /**\n   * If true (default), set `window.__OMEGA_INSPECTOR__` with `getIntentLog()`, `setConsoleLog()`, etc.\n   * @default true\n   */\n  exposeGlobal?: boolean;\n  /**\n   * Enable inspector providers in production builds.\n   *\n   * @remarks\n   * Defaults to `false` so inspector instrumentation is dev-only.\n   */\n  allowInProd?: boolean;\n}\n\n/**\n * Dev-only wiring for the Omega Inspector UI: instruments {@link OmegaFlowManager} and\n * subscribes to {@link OmegaChannel} events. Add **before** {@link provideOmega} in `providers`:\n *\n * ```ts\n * providers: [\n *   ...provideOmegaInspector({ broadcastChannel: true }),\n *   ...provideOmega(createOptions()),\n * ]\n * ```\n */\nexport function provideOmegaInspector(options: OmegaInspectorProvideOptions = {}): Provider[] {\n  if (!isDevMode() && !options.allowInProd) {\n    return [];\n  }\n  return [\n    OmegaInspectorService,\n    {\n      provide: OMEGA_FLOW_MANAGER_INSTRUMENTATION,\n      useFactory: (inspector: OmegaInspectorService) => {\n        if (options.maxEvents != null) {\n          inspector.setMaxEvents(options.maxEvents);\n        }\n        if (options.broadcastChannel) {\n          inspector.enableBroadcastChannel();\n        }\n        if (options.consoleLog) {\n          inspector.setConsoleLog(true);\n        }\n        if (options.exposeGlobal !== false) {\n          inspector.exposeGlobal();\n        }\n        return inspector.createInstrumentation();\n      },\n      deps: [OmegaInspectorService],\n    },\n  ];\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { OmegaInspectorService } from './omega-inspector.service';\n\n@Component({\n  selector: 'omega-inspector-panel',\n  standalone: true,\n  imports: [CommonModule],\n  templateUrl: './omega-inspector-panel.component.html',\n  styleUrl: './omega-inspector-panel.component.css',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OmegaInspectorPanelComponent {\n  protected readonly inspector = inject(OmegaInspectorService);\n\n  protected clear(): void {\n    this.inspector.clearLogs();\n  }\n\n  protected isChannelActive(entry: { id: string }): boolean {\n    return this.inspector.selectedChannelEntry()?.id === entry.id;\n  }\n\n  protected isIntentActive(entry: { id: string }): boolean {\n    return this.inspector.selectedIntentEntry()?.id === entry.id;\n  }\n}\n","<div class=\"omega-inspector\">\n  <header class=\"omega-inspector__header\">\n    <div>\n      <div class=\"omega-inspector__title\">OMEGA INSPECTOR</div>\n      <div class=\"omega-inspector__subtitle\">Flows · Channel events · Intents</div>\n    </div>\n    <div class=\"omega-inspector__status\">\n      <span\n        class=\"omega-inspector__dot\"\n        [class.omega-inspector__dot--off]=\"inspector.channelLog().length === 0 && inspector.intentLog().length === 0\"\n      ></span>\n      @if (inspector.channelLog().length + inspector.intentLog().length === 0) {\n        <span>Idle</span>\n      } @else {\n        <span>Live</span>\n      }\n    </div>\n  </header>\n\n  <p class=\"omega-inspector__hint\">\n    Subscribes to the same <code>OmegaChannel</code> as your app and records\n    <strong>handleIntent</strong> calls. Use <strong>Clear</strong> to reset buffers. For a second tab on the\n    same origin, enable <code>broadcastChannel</code> in <code>provideOmegaInspector</code>.\n  </p>\n\n  <div class=\"omega-inspector__grid\">\n    <!-- Flows -->\n    <section class=\"omega-inspector__col\">\n      <div class=\"omega-inspector__col-head\">Flows</div>\n      <ul class=\"omega-inspector__list\">\n        @for (id of inspector.registeredFlowIds(); track id) {\n          <li class=\"omega-inspector__item\">\n            <span class=\"omega-inspector__item-name\">{{ id }}</span>\n            @if (inspector.activeFlowIds().includes(id)) {\n              <span class=\"omega-inspector__flow-pill omega-inspector__flow-pill--active\">active</span>\n            } @else {\n              <span class=\"omega-inspector__flow-pill\">registered</span>\n            }\n          </li>\n        } @empty {\n          <li class=\"omega-inspector__item omega-inspector__details--empty\">No flows registered yet.</li>\n        }\n      </ul>\n    </section>\n\n    <!-- Events + intents list -->\n    <section class=\"omega-inspector__col\">\n      <div class=\"omega-inspector__col-head\">\n        Events <span>({{ inspector.channelLog().length }})</span> · Intents\n        <span>({{ inspector.intentLog().length }})</span>\n      </div>\n      <ul class=\"omega-inspector__list\">\n        @for (e of inspector.channelLog(); track e.id + e.t) {\n          <li\n            class=\"omega-inspector__item\"\n            [class.omega-inspector__item--active]=\"isChannelActive(e)\"\n            (click)=\"inspector.selectChannelEntry(e)\"\n          >\n            <div class=\"omega-inspector__item-id\">{{ e.id }}</div>\n            <div class=\"omega-inspector__item-name\">{{ e.name }}</div>\n            <div class=\"omega-inspector__item-meta\">{{ e.payloadPreview }}</div>\n            @if (e.deliveredToFlowIds.length > 0) {\n              <div class=\"omega-inspector__item-flows\">\n                @for (flowId of e.deliveredToFlowIds; track flowId) {\n                  <span class=\"omega-inspector__flow-pill omega-inspector__flow-pill--active\">{{ flowId }}</span>\n                }\n              </div>\n            } @else {\n              <div class=\"omega-inspector__item-meta\">No active flows at emit time.</div>\n            }\n          </li>\n        }\n        @for (i of inspector.intentLog(); track i.id + i.t) {\n          <li\n            class=\"omega-inspector__item\"\n            [class.omega-inspector__item--active]=\"isIntentActive(i)\"\n            (click)=\"inspector.selectIntentEntry(i)\"\n          >\n            <div class=\"omega-inspector__item-id\">intent {{ i.id }}</div>\n            <div class=\"omega-inspector__item-name\">{{ i.name }}</div>\n            <div class=\"omega-inspector__item-meta\">{{ i.payloadPreview }}</div>\n          </li>\n        }\n        @if (inspector.channelLog().length === 0 && inspector.intentLog().length === 0) {\n          <li class=\"omega-inspector__item omega-inspector__details--empty\">No channel events or intents yet.</li>\n        }\n      </ul>\n    </section>\n\n    <!-- Details -->\n    <section class=\"omega-inspector__col\">\n      <div class=\"omega-inspector__col-head\">Details</div>\n      @if (inspector.detailsJson()) {\n        <pre class=\"omega-inspector__details\">{{ inspector.detailsJson() }}</pre>\n      } @else {\n        <div class=\"omega-inspector__details omega-inspector__details--empty\">\n          Select an event or intent from the list.\n        </div>\n      }\n    </section>\n  </div>\n\n  <div class=\"omega-inspector__toolbar\">\n    <button type=\"button\" class=\"omega-inspector__btn\" (click)=\"clear()\">Clear logs</button>\n  </div>\n</div>\n","import { ChangeDetectionStrategy, Component, HostListener, signal } from '@angular/core';\n\nimport { OmegaInspectorPanelComponent } from './omega-inspector-panel.component';\n\n/**\n * Dev overlay independent of the Angular {@link Router}, toggled by keyboard shortcut.\n * Window-like behavior: drag, resize, maximize/restore.\n * Mount with {@link provideOmegaInspectorFloatingUi}.\n */\n@Component({\n  selector: 'omega-inspector-floating',\n  standalone: true,\n  imports: [OmegaInspectorPanelComponent],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  template: `\n    <div class=\"omega-inspector-floating__root\">\n      @if (expanded()) {\n        <div\n          class=\"omega-inspector-floating__panel\"\n          role=\"dialog\"\n          aria-label=\"Omega Inspector\"\n          [class.omega-inspector-floating__panel--maximized]=\"maximized()\"\n          [style.left.px]=\"rect().x\"\n          [style.top.px]=\"rect().y\"\n          [style.width.px]=\"rect().width\"\n          [style.height.px]=\"rect().height\"\n        >\n          <div\n            class=\"omega-inspector-floating__head\"\n            (pointerdown)=\"onDragStart($event)\"\n          >\n            <span class=\"omega-inspector-floating__title\">OMEGA INSPECTOR</span>\n            <span class=\"omega-inspector-floating__hint\">Ctrl+Shift+O</span>\n            <button\n              type=\"button\"\n              class=\"omega-inspector-floating__max\"\n              [attr.aria-label]=\"maximized() ? 'Restore inspector' : 'Maximize inspector'\"\n              (click)=\"toggleMaximize()\"\n            >\n              {{ maximized() ? '❐' : '□' }}\n            </button>\n            <button\n              type=\"button\"\n              class=\"omega-inspector-floating__min\"\n              aria-label=\"Minimize inspector\"\n              (click)=\"expanded.set(false)\"\n            >\n              −\n            </button>\n          </div>\n          <div class=\"omega-inspector-floating__body\">\n            <omega-inspector-panel />\n          </div>\n          @if (!maximized()) {\n            <div\n              class=\"omega-inspector-floating__resize\"\n              role=\"presentation\"\n              aria-hidden=\"true\"\n              (pointerdown)=\"onResizeStart($event)\"\n            ></div>\n          }\n        </div>\n      }\n    </div>\n  `,\n  styles: [\n    `\n      .omega-inspector-floating__root {\n        position: fixed;\n        inset: 0;\n        z-index: 2147483647;\n        isolation: isolate;\n        pointer-events: none;\n      }\n      .omega-inspector-floating__root > * {\n        pointer-events: auto;\n      }\n      .omega-inspector-floating__panel {\n        position: fixed;\n        z-index: 2147483647;\n        display: flex;\n        flex-direction: column;\n        border-radius: 10px;\n        overflow: hidden;\n        border: 1px solid rgba(0, 210, 255, 0.25);\n        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.45);\n        background: #0a0a0c;\n      }\n      .omega-inspector-floating__panel--maximized {\n        border-radius: 0;\n      }\n      .omega-inspector-floating__panel--maximized .omega-inspector-floating__body ::ng-deep .omega-inspector {\n        font-size: 14px;\n      }\n      .omega-inspector-floating__panel--maximized .omega-inspector-floating__body ::ng-deep .omega-inspector__grid {\n        grid-template-columns: minmax(220px, 0.9fr) minmax(360px, 1.2fr) minmax(420px, 1.4fr);\n      }\n      @media (max-width: 1200px) {\n        .omega-inspector-floating__panel--maximized .omega-inspector-floating__body ::ng-deep .omega-inspector__grid {\n          grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) minmax(0, 1.1fr);\n        }\n      }\n      .omega-inspector-floating__head {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        gap: 8px;\n        padding: 10px 16px 10px 12px;\n        background: linear-gradient(90deg, rgba(157, 80, 187, 0.2), rgba(0, 210, 255, 0.08));\n        border-bottom: 1px solid rgba(0, 210, 255, 0.18);\n        cursor: move;\n        user-select: none;\n      }\n      .omega-inspector-floating__title {\n        font-size: 11px;\n        font-weight: 700;\n        letter-spacing: 0.12em;\n        color: #c8c8d4;\n      }\n      .omega-inspector-floating__hint {\n        margin-left: auto;\n        font-size: 11px;\n        color: #d8d8e2;\n        letter-spacing: 0.08em;\n        font-weight: 600;\n        padding: 2px 8px;\n        border-radius: 999px;\n        border: 1px solid rgba(0, 210, 255, 0.28);\n        background: rgba(0, 210, 255, 0.08);\n      }\n      .omega-inspector-floating__max,\n      .omega-inspector-floating__min {\n        border: 1px solid rgba(0, 210, 255, 0.25);\n        background: rgba(0, 210, 255, 0.08);\n        color: #e8f8ff;\n        font-size: 15px;\n        width: 28px;\n        height: 24px;\n        border-radius: 6px;\n        line-height: 1;\n        cursor: pointer;\n        padding: 0;\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n      }\n      .omega-inspector-floating__max:hover,\n      .omega-inspector-floating__min:hover {\n        color: #00d2ff;\n        background: rgba(0, 210, 255, 0.18);\n        border-color: rgba(0, 210, 255, 0.5);\n      }\n      .omega-inspector-floating__body {\n        flex: 1;\n        min-height: 0;\n        display: flex;\n        flex-direction: column;\n      }\n      .omega-inspector-floating__body ::ng-deep omega-inspector-panel {\n        flex: 1;\n        min-height: 0;\n        display: flex;\n        flex-direction: column;\n      }\n      .omega-inspector-floating__body ::ng-deep .omega-inspector {\n        flex: 1;\n        min-height: 0;\n      }\n      .omega-inspector-floating__resize {\n        position: absolute;\n        right: 0;\n        bottom: 0;\n        width: 16px;\n        height: 16px;\n        cursor: nwse-resize;\n        background: linear-gradient(135deg, transparent 50%, rgba(0, 210, 255, 0.35) 50%);\n      }\n    `,\n  ],\n})\nexport class OmegaInspectorFloatingComponent {\n  protected readonly expanded = signal(false);\n  protected readonly maximized = signal(false);\n  protected readonly rect = signal(defaultRect());\n\n  private restoreRect: Rect | null = null;\n  private dragState: { startX: number; startY: number; x: number; y: number } | null = null;\n  private resizeState: { startX: number; startY: number; width: number; height: number } | null = null;\n\n  @HostListener('window:keydown', ['$event'])\n  protected onWindowKeydown(event: KeyboardEvent): void {\n    const isToggle = (event.ctrlKey || event.metaKey) && event.shiftKey && event.key.toLowerCase() === 'o';\n    if (!isToggle || isTypingTarget(event.target)) {\n      return;\n    }\n    event.preventDefault();\n    this.expanded.update((v) => !v);\n    if (!this.expanded()) {\n      this.dragState = null;\n      this.resizeState = null;\n    } else {\n      this.ensureRectWithinViewport();\n    }\n  }\n\n  @HostListener('window:keydown.escape')\n  protected onEscape(): void {\n    if (this.expanded()) {\n      this.expanded.set(false);\n      this.dragState = null;\n      this.resizeState = null;\n    }\n  }\n\n  @HostListener('window:resize')\n  protected onWindowResize(): void {\n    if (this.maximized()) {\n      this.rect.set(maximizedRect());\n      return;\n    }\n    this.ensureRectWithinViewport();\n  }\n\n  @HostListener('window:pointermove', ['$event'])\n  protected onPointerMove(event: PointerEvent): void {\n    if (this.dragState) {\n      const dx = event.clientX - this.dragState.startX;\n      const dy = event.clientY - this.dragState.startY;\n      const current = this.rect();\n      this.rect.set(\n        clampRect({\n          ...current,\n          x: this.dragState.x + dx,\n          y: this.dragState.y + dy,\n        }),\n      );\n      return;\n    }\n    if (this.resizeState) {\n      const dx = event.clientX - this.resizeState.startX;\n      const dy = event.clientY - this.resizeState.startY;\n      const current = this.rect();\n      this.rect.set(\n        clampRect({\n          ...current,\n          width: this.resizeState.width + dx,\n          height: this.resizeState.height + dy,\n        }),\n      );\n    }\n  }\n\n  @HostListener('window:pointerup')\n  protected onPointerUp(): void {\n    this.dragState = null;\n    this.resizeState = null;\n  }\n\n  protected onDragStart(event: PointerEvent): void {\n    if (event.button !== 0 || this.maximized()) {\n      return;\n    }\n    const r = this.rect();\n    this.dragState = { startX: event.clientX, startY: event.clientY, x: r.x, y: r.y };\n    this.resizeState = null;\n    event.preventDefault();\n  }\n\n  protected onResizeStart(event: PointerEvent): void {\n    if (event.button !== 0 || this.maximized()) {\n      return;\n    }\n    const r = this.rect();\n    this.resizeState = {\n      startX: event.clientX,\n      startY: event.clientY,\n      width: r.width,\n      height: r.height,\n    };\n    this.dragState = null;\n    event.preventDefault();\n  }\n\n  protected toggleMaximize(): void {\n    if (!this.maximized()) {\n      this.restoreRect = this.rect();\n      this.rect.set(maximizedRect());\n      this.maximized.set(true);\n      return;\n    }\n    this.maximized.set(false);\n    this.rect.set(clampRect(this.restoreRect ?? defaultRect()));\n  }\n\n  private ensureRectWithinViewport(): void {\n    this.rect.set(clampRect(this.rect()));\n  }\n}\n\nfunction isTypingTarget(target: EventTarget | null): boolean {\n  if (!(target instanceof HTMLElement)) {\n    return false;\n  }\n  const tag = target.tagName;\n  return target.isContentEditable || tag === 'INPUT' || tag === 'TEXTAREA' || tag === 'SELECT';\n}\n\ninterface Rect {\n  readonly x: number;\n  readonly y: number;\n  readonly width: number;\n  readonly height: number;\n}\n\nconst EDGE = 12;\nconst MIN_WIDTH = 420;\nconst MIN_HEIGHT = 320;\n\nfunction defaultRect(): Rect {\n  if (typeof window === 'undefined') {\n    return { x: EDGE, y: EDGE, width: 720, height: 560 };\n  }\n  const maxW = Math.max(MIN_WIDTH, window.innerWidth - EDGE * 2);\n  const maxH = Math.max(MIN_HEIGHT, window.innerHeight - EDGE * 2);\n  const width = Math.min(720, maxW);\n  const height = Math.min(560, maxH);\n  return {\n    x: Math.max(EDGE, window.innerWidth - width - EDGE),\n    y: Math.max(EDGE, window.innerHeight - height - EDGE),\n    width,\n    height,\n  };\n}\n\nfunction maximizedRect(): Rect {\n  if (typeof window === 'undefined') {\n    return { x: 0, y: 0, width: 900, height: 700 };\n  }\n  return {\n    x: 0,\n    y: 0,\n    width: Math.max(MIN_WIDTH, window.innerWidth),\n    height: Math.max(MIN_HEIGHT, window.innerHeight),\n  };\n}\n\nfunction clampRect(rect: Rect): Rect {\n  if (typeof window === 'undefined') {\n    return rect;\n  }\n  const maxWidth = Math.max(MIN_WIDTH, window.innerWidth - EDGE * 2);\n  const maxHeight = Math.max(MIN_HEIGHT, window.innerHeight - EDGE * 2);\n  const width = clamp(rect.width, MIN_WIDTH, maxWidth);\n  const height = clamp(rect.height, MIN_HEIGHT, maxHeight);\n  const maxX = Math.max(EDGE, window.innerWidth - width - EDGE);\n  const maxY = Math.max(EDGE, window.innerHeight - height - EDGE);\n  return {\n    x: clamp(rect.x, EDGE, maxX),\n    y: clamp(rect.y, EDGE, maxY),\n    width,\n    height,\n  };\n}\n\nfunction clamp(n: number, min: number, max: number): number {\n  return Math.max(min, Math.min(max, n));\n}\n","import {\n  ApplicationRef,\n  createComponent,\n  EnvironmentInjector,\n  inject,\n  isDevMode,\n  type EnvironmentProviders,\n  type Provider,\n  provideAppInitializer,\n} from '@angular/core';\n\nimport { OmegaInspectorFloatingComponent } from './omega-inspector-floating.component';\n\n/**\n * Mounts {@link OmegaInspectorFloatingComponent} on `document.body` after bootstrap — **no Router route**.\n * Requires {@link provideOmegaInspector} (and thus {@link provideOmega}) to be registered first.\n *\n * ```ts\n * providers: [\n *   ...provideOmegaInspector({ consoleLog: true }),\n *   ...provideOmega(createOptions()),\n *   ...provideOmegaInspectorFloatingUi(),\n * ]\n * ```\n */\nexport interface OmegaInspectorFloatingUiOptions {\n  /**\n   * Enable floating inspector window in production builds.\n   *\n   * @remarks\n   * Defaults to `false` so UI is dev-only.\n   */\n  allowInProd?: boolean;\n}\n\nexport function provideOmegaInspectorFloatingUi(\n  options: OmegaInspectorFloatingUiOptions = {},\n): Array<Provider | EnvironmentProviders> {\n  if (!isDevMode() && !options.allowInProd) {\n    return [];\n  }\n  return [\n    provideAppInitializer(() => {\n      const env = inject(EnvironmentInjector);\n      const appRef = inject(ApplicationRef);\n      queueMicrotask(() => {\n        const ref = createComponent(OmegaInspectorFloatingComponent, {\n          environmentInjector: env,\n        });\n        document.body.appendChild(ref.location.nativeElement);\n        appRef.attachView(ref.hostView);\n        ref.changeDetectorRef.detectChanges();\n      });\n    }),\n  ];\n}\n","/**\r\n * @packageDocumentation\r\n * Public API surface of **`omega-angular`**: Omega channel, intents, events, flows,\r\n * **`OmegaFlowManager`**, agents, and **`provideOmega`**.\r\n *\r\n * @remarks\r\n * Layers (see also the [documentation site](https://yefersonSegura.github.io/omega_angular/)):\r\n * - **Semantics & types** — wire names, **`OmegaIntent`**, **`OmegaEvent`**, base objects.\r\n * - **Channel** — **`OmegaChannel`**, **`OmegaChannelNamespace`**, **`OmegaEventBus`**.\r\n * - **Orchestration** — **`OmegaFlow`**, **`OmegaFlowManager`**, **`OmegaAgent`**.\r\n * - **Bootstrap** — **`provideOmega`** for `ApplicationConfig` / `NgModule`.\r\n */\r\n\r\n// types\r\nexport * from './lib/core/types/omega-object';\r\nexport * from './lib/core/types/omega-failure';\r\n\r\n// semantics\r\nexport * from './lib/core/semantics/omega-event-name';\r\nexport * from './lib/core/semantics/omega-intent-name';\r\nexport * from './lib/core/semantics/omega-flow-id';\r\nexport * from './lib/core/semantics/omega-agent-id';\r\nexport * from './lib/core/semantics/omega-semantics-wire-from-camel';\r\nexport * from './lib/core/semantics/omega-typed-event';\r\nexport * from './lib/core/semantics/omega-intent';\r\n\r\n// events\r\nexport * from './lib/core/events/omega-event';\r\n\r\n// channel\r\nexport * from './lib/core/channel/omega-event-bus';\r\nexport * from './lib/core/channel/omega-channel';\r\n\r\n// flows & agents\r\nexport * from './lib/flows/omega-flow';\r\nexport * from './lib/flows/omega-flow-manager';\r\nexport * from './lib/agents/omega-agent-behavior';\r\nexport * from './lib/agents/omega-agent';\r\nexport * from './lib/bootstrap/provide-omega';\r\n\r\n// inspector (dev / diagnostics)\r\nexport * from './lib/inspector/omega-flow-manager-instrumentation';\r\nexport * from './lib/inspector/omega-inspector.types';\r\nexport * from './lib/inspector/omega-inspector-global';\r\nexport * from './lib/inspector/omega-inspector.service';\r\nexport * from './lib/inspector/provide-omega-inspector';\r\nexport * from './lib/inspector/omega-inspector-panel.component';\r\nexport * from './lib/inspector/omega-inspector-floating.component';\r\nexport * from './lib/inspector/provide-omega-inspector-floating-ui';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}