@kontextmind/kxm
Version:
KXM local-first multi-agent orchestration and operator dashboard
30 lines (24 loc) • 1.05 kB
text/typescript
import { HubClient } from "../plugins/kxm/src/client.ts";
const serverUrl = process.env.KXM_SERVER_URL ?? "http://127.0.0.1:7331";
const authToken = process.env.KXM_AUTH_TOKEN;
const project = process.env.KXM_PROJECT ?? "example";
const client = new HubClient({
serverUrl,
name: process.env.KXM_AGENT_NAME ?? "example-reviewer",
purpose: process.env.KXM_AGENT_PURPOSE ?? "Demonstrates a custom mesh client",
project,
...(authToken ? { authToken } : {}),
});
await client.start(async (event) => {
if (event.type !== "message") return;
await client.acknowledge(event.message.id);
process.stdout.write(`request from ${event.message.fromName}: ${event.message.content}\n`);
await client.reply(event.message.id, `Example client received: ${event.message.content}`);
});
process.stdout.write(`reviewer connected as ${client.agent!.name} in ${project}\n`);
async function shutdown(): Promise<void> {
await client.stop();
process.exit(0);
}
process.once("SIGINT", () => void shutdown());
process.once("SIGTERM", () => void shutdown());