Portal Community

What DevTools Provides

EdgeStream Dev Tools is a browser-based developer application that connects to the same SignalR hub as your workflow engine. Because all inter-component communication flows as ANCP messages, DevTools gives you complete observability into what is happening inside any workflow run.

Node Explorer

Visualizes the live graph of nodes sending and receiving ANCP messages. Click any node to see its full message history.

Action Invoker

Compose and send ANCP messages of any type to any address. Useful for testing node handlers without running a full workflow.

Message Feed

Live stream of all ANCP messages flowing through the connected tenant. Filter by type, source, destination, or topic.

Correlation Tracer

Given a correlationId, traces the full chain of messages: original Query → intermediate Commands → final Response.

Connecting DevTools to Your Environment

1

Open DevTools

Navigate to https://devtools.bizfirst.io (or your local instance at http://localhost:5174 if running edge-stream-dev-tools locally).

2

Enter Hub URL

Provide the SignalR hub URL for your target environment, e.g., https://api-dev.bizfirst.io/ancp-hub. DevTools connects using your developer JWT from the identity provider.

3

Select Tenant

Choose the tenant scope. DevTools only shows messages from the tenant your JWT is authorized for — cross-tenant visibility is not possible by design.

4

Subscribe to Topics

Choose which topics to monitor. Use * for all traffic, or a specific topic like topic://tenant-acme/workflow/*.

5

Live Feed Active

DevTools is now receiving all matching ANCP messages in real time. The Node Explorer begins populating as messages flow.

Node Explorer

The Node Explorer renders a live directed graph of all addressable entities (nodes, agents, services) that have sent or received ANCP messages since DevTools connected. Each entity is a node in the graph; each message creates a directed edge with a label showing the message type.

Reading the Graph

Visual ElementMeaning
Blue node iconWorkflow execution node (node:// scheme)
Purple node iconAI agent (agent:// scheme)
Green node iconBackend service (service:// scheme)
Orange node iconTopic / pub/sub endpoint (topic:// scheme)
Solid arrowCommand or Query message
Dashed arrowResponse message
Dotted arrowEvent message (fan-out)
Red edge highlightMessage that failed validation or was rejected by the router

Clicking a Node

Clicking any node in the explorer opens its Message History Panel, showing all ANCP messages sent to and from that address in the current session. Each message entry shows:

Message Feed

The Message Feed is a scrollable, filterable list of all ANCP messages in chronological order. It is the fastest way to verify that a message was sent and what it contained.

Filter Controls

  • Type filter: Command / Event / Query / Response (multi-select checkboxes)
  • Source filter: Substring match against the source address
  • Destination filter: Substring match against the destination address
  • Topic filter: Glob pattern for pub/sub topics
  • Time range: Last N minutes or custom range
  • Search: Full-text search across all envelope fields and payload (JSON)

Keyboard Shortcuts

KeyAction
FFocus filter bar
EscClear all filters
SpacePause / resume live feed
CCopy selected message as JSON
TOpen Correlation Tracer for selected message
IPre-fill Action Invoker with selected message

Action Invoker

The Action Invoker lets you compose and send ANCP messages from the browser without writing any code. This is the fastest way to test a node handler or agent in isolation.

Sending a Test Command

1

Open Action Invoker

Click Invoke Action in the DevTools toolbar, or press A.

2

Select Message Type

Choose Command, Event, Query, or Response from the dropdown. The form adjusts to show relevant fields (e.g., correlationId for Query).

3

Fill Addresses

Enter the source and destination addresses. DevTools auto-populates tenantId from your authenticated session and id + timestamp are generated automatically.

4

Edit Payload

Enter the payload as JSON in the editor. DevTools validates the JSON before allowing send. You can paste an example from the Message Feed using I.

5

Send and Observe

Click Send. The message appears immediately in the Message Feed. If you sent a Query, DevTools highlights the matching Response when it arrives.

Correlation Tracer

Given any message with a correlationId, the Correlation Tracer reconstructs the full message chain — showing every message in the sequence, the time between each step, and which nodes participated.

// Example trace output for correlationId: corr-doc-001
┌─────────────────────────────────────────────────────────────────┐
│ Correlation Trace: corr-doc-001                                 │
│ Total duration: 1,847ms  Messages: 2                            │
├──────┬────────────┬────────────────────────────────┬────────────┤
│  #   │ Type       │ From → To                      │ +ms        │
├──────┼────────────┼────────────────────────────────┼────────────┤
│  1   │ Query      │ node:.../incoming-doc          │ t+0        │
│      │            │ → agent:.../doc-classifier     │            │
├──────┼────────────┼────────────────────────────────┼────────────┤
│  2   │ Response   │ agent:.../doc-classifier       │ t+1,847    │
│      │            │ → node:.../incoming-doc        │            │
└──────┴────────────┴────────────────────────────────┴────────────┘
DevTools is Development-Only

Do not enable the DevTools connection endpoint in production. The real-time message feed gives any connected developer full visibility into all ANCP message payloads for their tenant. In production environments, disable the DevTools hub route and use the audit log tables in the ProcessSecurity database for observability instead.

Enabling DevTools Locally

# Clone the edge-stream monorepo
git clone https://github.com/bizfirst/edge-stream.git
cd edge-stream

# Install dependencies
pnpm install

# Start Dev Tools
cd apps/edge-stream-dev-tools
pnpm dev
# => http://localhost:5174

# In your backend (ASP.NET Core appsettings.Development.json)
{
  "AncpDevTools": {
    "Enabled": true,
    "HubPath": "/ancp-devtools-hub"
  }
}