ava-langgraph-inquiry-routing-engine
v0.1.1
Published
Inquiry Routing Engine for LangGraph.js — Graph-level orchestration of PDE-to-Inquiry pipelines with Four Directions routing, relational accountability gating, and multi-channel dispatch
Downloads
242
Maintainers
Readme
ava-langgraph-inquiry-routing-engine
Graph-level orchestration for the Inquiry Routing pipeline. This package provides a state-based graph that transforms PDE decomposition results into dispatch-ready inquiries, routing them through Four Directions with relational accountability gating and multi-channel formatting.
Overview
The Inquiry Routing Engine sits downstream of the Prompt Decomposition Engine (PDE). It consumes a DecompositionResult and orchestrates a four-stage pipeline:
- EAST (Generate) — Produce structured inquiries from decomposition actions
- SOUTH (Route) — Classify and route each inquiry to source channels (QMD, deep-search, workspace-scan)
- WEST (Validate) — Relational validation checks accountability, ceremonial markers, and Two-Eyed Seeing fields
- NORTH (Dispatch) — Format inquiries for their target channels as actionable query payloads
Features
InquiryRoutingGraph: Orchestrates the Generate→Route→Validate→Dispatch pipelineRelationalValidator: Validates relational integrity with Wilson's axiological groundingDispatchFormatter: Multi-channel formatting (QMD lex/vec/hyde, academic deep-search, workspace glob/grep)createInquiryRoutingStateGraph(): LangGraph-compatible StateGraph factory for subgraph composition- Ceremony Hold: Configurable halt when Indigenous/ceremonial content lacks proper relational markers
Installation
npm install ava-langgraph-inquiry-routing-enginePeer Dependencies
npm install ava-langchain-prompt-decomposition ava-langchain-inquiry-routingQuick Start
import { DecompositionGraph } from "ava-langgraph-prompt-decomposition-engine";
import { InquiryRoutingGraph } from "ava-langgraph-inquiry-routing-engine";
// First: decompose the prompt
const pdeGraph = new DecompositionGraph();
const pdeState = await pdeGraph.invoke("Research relational patterns. Build the API. Test integration.");
// Then: route the inquiries
const routingGraph = new InquiryRoutingGraph();
const state = await routingGraph.invoke(pdeState.decomposition!);
console.log("Status:", state.status);
console.log("Inquiries generated:", state.inquiryBatch?.total);
console.log("Relational score:", state.relationalValidation?.score);
console.log("Dispatch payloads:", state.dispatchPayloads?.length);
// Check for ceremony hold
if (state.ceremonyRequired) {
console.log("⚠️ Ceremony required:", state.relationalValidation?.summary);
}Architecture
State Flow
DecompositionResult
│
▼
┌─────────────┐
│ EAST: │
│ Generate │──→ InquiryBatch
└─────────────┘
│
▼
┌─────────────┐
│ SOUTH: │
│ Route │──→ RoutedInquiryBatch + RoutingDecisions
└─────────────┘
│
▼
┌─────────────┐ ceremony_hold
│ WEST: │──────────────────────→ HALT
│ Validate │
└─────────────┘
│ (pass)
▼
┌─────────────┐
│ NORTH: │
│ Dispatch │──→ FormattedDispatch[] (QMD/deep-search/workspace)
└─────────────┘Source Channels
| Channel | Direction Affinity | Query Format | |---------|-------------------|--------------| | QMD Local | EAST, WEST | lex/vec/hyde semantic searches | | Deep Search Academic | SOUTH | Academic retrieval with Two-Eyed Seeing context | | Workspace Scan | NORTH | glob/grep patterns against codebase |
Relational Validation
The RelationalValidator checks every inquiry for:
relational_context— relational grounding (Wilson's axiology)accountability— relational obligationsindigenous_lens— required when Indigenous content is detectedceremonial_intent— recommended for WEST-direction inquiries
Missing fields produce warnings or hold-level flags. Hold flags trigger ceremony_hold status.
LangGraph Integration
Use createInquiryRoutingStateGraph() to embed as a subgraph:
import { createInquiryRoutingStateGraph } from "ava-langgraph-inquiry-routing-engine/graphs";
const graph = await createInquiryRoutingStateGraph({ enforceCeremony: true });
const compiled = graph.compile();
const result = await compiled.invoke({
decomposition: myDecomposition,
pdeId: myDecomposition.id,
sessionId: "session-123",
});API Reference
Graphs
InquiryRoutingGraph— Pure-function orchestrator (no LangGraph dependency needed)createInquiryRoutingStateGraph()— LangGraph StateGraph factory (requires@langchain/langgraph)createInitialState(decomposition, sessionId?)— State factorygenerateNode(),routeNode(),validateNode(),dispatchNode()— Individual node functions
Nodes
RelationalValidator— Relational integrity validationDispatchFormatter— Multi-channel query formatting
Re-exported from ava-langchain-inquiry-routing
InquiryGenerator,InquiryRouter,InquiryFormatter,RelationalEnricherInquiry,InquiryBatch,RoutingDecision,RoutedInquiryBatch
License
MIT
