Portal Community

Package Overview

All EdgeInteract packages live under edge-interact/ in the BizFirstAI Studio source tree. They depend on EdgeStream packages for transport but add their own interaction-specific abstractions.

edge-interact-core

The foundation package. Contains all TypeScript types, interfaces, and enumerations that the rest of EdgeInteract depends on. No runtime dependencies beyond EdgeStream core.

  • InteractionRequest<T> — typed request interface
  • InteractionResponse<T> — typed response interface
  • InteractionTimeout — timeout message interface
  • InteractionAck — acknowledgement message interface
  • InteractionTypeKey — union of built-in type string literals
  • IInteractionHook — hook interface for pre-send / post-receive
edge-interact-server

The server-side interaction publisher and pipeline. Used by backend execution nodes and workflow nodes that need to send interaction requests and await responses.

  • IInteractionPublisher — publish an interaction to a user
  • InteractionPipeline — manages in-flight interactions, timeout timers
  • InteractionHookRunner — runs registered hooks in order
  • InteractionAuditLogger — logs all request/response pairs
edge-interact-client

The client-side interaction receiver. Subscribes to the user's interaction topic via EdgeStream, dispatches incoming requests to the UI layer, and publishes responses.

  • InteractionSubscriber — wraps EdgeStream subscription for interactions.{userId}
  • InteractionResponsePublisher — publishes InteractionResponse to callback topic
  • InteractionQueue — manages multiple simultaneous pending interactions
edge-interact-ui

The UI component library. Contains all built-in interaction renderer components plus the InteractionContainer orchestrator. Depends on Atlas Forms for the form type.

  • InteractionContainer — receives interactions, routes to correct component
  • ApprovalComponent — approve/reject/abstain buttons with context fields
  • ConfirmationComponent — yes/no/cancel dialog
  • FormComponent — Atlas Form renderer integration
  • PickerComponent — single or multi-select list
  • NotificationComponent — read-only with acknowledge button
edge-interact-react

React hooks and context providers for EdgeInteract. This is what most application developers use — it wraps the client package in React-idiomatic APIs with automatic cleanup.

  • InteractionProvider — context provider, wraps the app
  • useInteraction(request) — send an interaction, get response promise
  • useInteractionReceiver() — receive incoming interactions for current user
  • useInteractionCallback(id) — subscribe to a specific interaction's callback
  • useInteractionHistory() — recent completed interactions
edge-interact-observability

Monitoring and metrics tools for EdgeInteract. Provides the InteractionMonitor component and hooks for emitting metrics to BizFirst Observe.

  • InteractionMonitor — live view of in-flight and completed interactions
  • InteractionMetricsHook — emits OTel metrics for each interaction lifecycle event
  • useInteractionMetrics() — React hook for interaction health data

Dependency Graph

edge-interact-react
  └── edge-interact-client
        └── edge-interact-core
              └── edge-stream-core

edge-interact-ui
  └── edge-interact-client
  └── atlas-forms-react (for FormComponent)

edge-interact-server
  └── edge-interact-core
  └── edge-stream-server

edge-interact-observability
  └── edge-interact-client
  └── bfai-observe-client

Which Packages Do I Need?

ScenarioPackages
React app receiving and rendering interactionsedge-interact-react, edge-interact-ui
Server code publishing interaction requestsedge-interact-server
Custom interaction type (no built-in UI)edge-interact-client, edge-interact-core
Monitoring interaction healthedge-interact-observability
TypeScript types only (no runtime)edge-interact-core