@essentialai/cogent-bridge
Version:
Cogent Bridge — cross-agent comms for Claude Code, OpenAI Codex and Slack. Codex users: install with `curl -fsSL https://cogent.tools/install.sh | sh`, then start with `cogent-codex` for real-time peer wake.
37 lines • 1.52 kB
JavaScript
import fs from "node:fs";
import path from "node:path";
import { mcpJsonContent, demoServerJs, demoAppJs, demoPackageJson, demoBackendClaudeMd, demoFrontendClaudeMd, } from "./templates.js";
export function scaffoldDemo(baseDir, npxPath) {
const files = [];
const apiDir = path.join(baseDir, "api-server");
const webDir = path.join(baseDir, "web-client");
fs.mkdirSync(apiDir, { recursive: true });
fs.mkdirSync(webDir, { recursive: true });
const mcpJson = mcpJsonContent(npxPath);
// Backend files
const backendFiles = [
["package.json", demoPackageJson("api-server", { express: "^4.21.0", cors: "^2.8.5" })],
["server.js", demoServerJs()],
[".mcp.json", mcpJson],
["CLAUDE.md", demoBackendClaudeMd()],
];
for (const [name, content] of backendFiles) {
const filePath = path.join(apiDir, name);
fs.writeFileSync(filePath, content, "utf-8");
files.push(path.join("api-server", name));
}
// Frontend files
const frontendFiles = [
["package.json", demoPackageJson("web-client", { axios: "^1.7.0" })],
["app.js", demoAppJs()],
[".mcp.json", mcpJson],
["CLAUDE.md", demoFrontendClaudeMd()],
];
for (const [name, content] of frontendFiles) {
const filePath = path.join(webDir, name);
fs.writeFileSync(filePath, content, "utf-8");
files.push(path.join("web-client", name));
}
return { files, baseDir };
}
//# sourceMappingURL=scaffold-demo.js.map