@richardmcquiston01/chat-and-react-core
v0.5.0
Published
Headless controller, JSON Schema validation, and session management for chat-and-react — a framework-agnostic conversational form library.
Downloads
165
Maintainers
Readme
@richardmcquiston01/chat-and-react-core
Headless controller, JSON Schema validation, and session management for chat-and-react — a framework-agnostic conversational form library. No DOM dependency; use it directly in Node, on the server, or from any UI framework.
Installation
npm install @richardmcquiston01/chat-and-react-coreUsage
import { ChatController, parseSchema } from "@richardmcquiston01/chat-and-react-core";
const schema = parseSchema(rawJson);
const controller = new ChatController({ schema });
controller.on("page:submit", (event) => {
saveToDatabase(event);
});
controller.on("form:complete", (event) => {
finalizeSubmission(event.allAnswers);
});
controller.start();
const page = controller.getCurrentPage();
const questions = controller.getVisibleQuestions();
// After collecting answers from your own UI:
controller.submitPage({ question_id: "answer value" });What's included
parseSchema— validates JSON Schema Draft-07 extended withx-chat-*keywordsRuleEngine— evaluates JsonLogic rules for per-question visibility (x-chat-condition)SessionManager— session ID and progress persistence with an injectableStorageBackendChatController— page-graph navigation, answer accumulation, event emission (page:submit,form:complete)- Built-in adapters:
IdentityInputAdapter,BrowserEventAdapter,ConsoleErrorAdapter
Full documentation
See the project README for the complete schema format, branching rules, and adapter guide.
License
Apache 2.0 — see LICENSE.
