How-to Guides
Regex Message Matching
`createMessagePatternMatcher()` provides pattern-based message routing using regular expressions, enabling keyword-triggered handlers without @-mentions.
Regex Message Matching
createMessagePatternMatcher() provides pattern-based message routing using regular expressions, enabling keyword-triggered handlers without @-mentions.
Usage
import { createMessagePatternMatcher } from "@fluxy-chat/sdk";
const matcher = createMessagePatternMatcher();
matcher.onNewMessage(/^!help/, async (msg, match) => {
console.log(`Help requested by ${msg.userId} in ${msg.roomId}`);
});
// Wire into event stream
connection.onAnyEvent((event) => {
matcher.match(event);
});API
onNewMessage(pattern, handler, options?): Register a pattern handlerremoveHandler(pattern, handler): Remove a specific handlermatch(event): Test event against all patterns; returns match countgetPatterns(): List registered patternsclear(): Remove all patterns
Multiple Patterns
Multiple patterns can match the same message; all matching handlers are called:
matcher.onNewMessage(/^!ping/, handlePing);
matcher.onNewMessage(/^!pong/, handlePong);Labels
Optional labels and descriptions help identify patterns for debugging:
matcher.onNewMessage(/^!status/, handler, {
label: "status",
description: "Matches !status commands",
});Prune Messages — Context Compaction
`pruneMessages` compacts a message array to stay within token or count limits while preserving essential context. Use it to prevent agent loops from growing bey
SentMessage (Chainable Message Result)
`createSentMessage()` wraps a sent message with chainable `.edit()`, `.delete()`, `.addReaction()`, `.removeReaction()` methods.