mirror of
https://github.com/joelhooks/joelclaw.git
synced 2026-09-19 01:24:04 +08:00
997275cce6
joelclaw recall and voice recall now answer from Brain/observation stores (19 tests). memory_observations archived to NAS (28,050 docs, 238MB, sha d2f3038d, verified) and dropped. Zombie functions (reflect/review-promote/proposal-triage/batch-review) unregistered and deleted with the MEM/FRIC suites (-6,306 lines). System log retired: panda copy snapshotted (3,981 lines, sha 4e8e815d), slog write path / system-logger / sync + backup + PDS mirror removed. Per decisions decide-legacy-memory-retirement + decide-system-log-home.
147 lines
4.9 KiB
TypeScript
147 lines
4.9 KiB
TypeScript
import { pushContentResource } from "../src/lib/convex";
|
|
|
|
// ADR-0085: One-time seed for data-driven network page contentResources.
|
|
async function seedNetwork(): Promise<void> {
|
|
const nodes = [
|
|
{
|
|
publicName: "Overlook",
|
|
privateName: "panda",
|
|
status: "Online",
|
|
specs: ["Mac Mini M4 Pro", "14-core CPU", "20-core GPU", "64GB unified", "1TB NVMe"],
|
|
role: "Control plane.",
|
|
services: [],
|
|
},
|
|
{
|
|
publicName: "Blaine",
|
|
privateName: "clanker-001",
|
|
status: "Online",
|
|
specs: ["Ubuntu 24.04", "16GB RAM", "309GB disk"],
|
|
role: "Library + SIP bridge.",
|
|
services: [],
|
|
},
|
|
{
|
|
publicName: "Derry",
|
|
privateName: "three-body",
|
|
status: "Online",
|
|
specs: ["Synology NAS", "Intel Atom C3538", "8GB RAM", "64TB RAID"],
|
|
role: "Archive.",
|
|
services: [],
|
|
},
|
|
{
|
|
publicName: "Flagg",
|
|
privateName: "dark-wizard",
|
|
status: "Online",
|
|
specs: ["MacBook Pro", "Apple Silicon"],
|
|
role: "Primary dev machine.",
|
|
services: [],
|
|
},
|
|
{
|
|
publicName: "Todash",
|
|
privateName: "nightmare-router",
|
|
status: "Idle",
|
|
specs: ["Linux router"],
|
|
role: "Tailscale exit node, idle.",
|
|
services: [],
|
|
},
|
|
];
|
|
|
|
const pods = [
|
|
{
|
|
name: "inngest-0",
|
|
status: "Running",
|
|
namespace: "joelclaw",
|
|
description: "Event orchestration server",
|
|
restarts: 0,
|
|
age: "",
|
|
},
|
|
{
|
|
name: "redis-0",
|
|
status: "Running",
|
|
namespace: "joelclaw",
|
|
description: "State, pub/sub, loop PRD, cooldowns",
|
|
restarts: 0,
|
|
age: "",
|
|
},
|
|
{
|
|
name: "typesense-0",
|
|
status: "Running",
|
|
namespace: "joelclaw",
|
|
description: "Search engine (6 collections, auto-embedding via ONNX)",
|
|
restarts: 0,
|
|
age: "",
|
|
},
|
|
{
|
|
name: "bluesky-pds",
|
|
status: "Running",
|
|
namespace: "joelclaw",
|
|
description: "AT Protocol personal data server (Helm)",
|
|
restarts: 0,
|
|
age: "",
|
|
},
|
|
{
|
|
name: "livekit-server",
|
|
status: "Running",
|
|
namespace: "joelclaw",
|
|
description: "WebRTC media server (Helm)",
|
|
restarts: 0,
|
|
age: "",
|
|
},
|
|
];
|
|
|
|
const daemons = [
|
|
{ name: "system-bus-worker", status: "running", description: "Inngest function worker (66 functions)" },
|
|
{ name: "gateway", status: "running", description: "Pi agent gateway daemon + Telegram bridge" },
|
|
{ name: "gateway-tripwire", status: "running", description: "Gateway watchdog (auto-restart on failure)" },
|
|
{ name: "caddy", status: "running", description: "HTTPS reverse proxy with Tailscale certs" },
|
|
{ name: "colima", status: "running", description: "Container runtime (VZ framework → Talos k8s)" },
|
|
{ name: "content-sync-watcher", status: "running", description: "Vault content → web deploy trigger" },
|
|
{ name: "typesense-portforward", status: "running", description: "kubectl port-forward for Typesense :8108" },
|
|
];
|
|
|
|
const cluster = [
|
|
{ key: "Orchestration", value: "Talos Linux v1.12.4 on Colima (VZ framework)" },
|
|
{ key: "Memory", value: "64 GB unified" },
|
|
{ key: "CPU", value: "Apple M4 Pro · 14 cores" },
|
|
{ key: "GPU", value: "20-core Apple GPU" },
|
|
{ key: "Storage", value: "64 TB NAS + 1 TB local NVMe" },
|
|
{ key: "Functions", value: "66 Inngest durable functions" },
|
|
{ key: "Skills", value: "65 agent skills" },
|
|
{ key: "Interconnect", value: "Tailscale WireGuard mesh" },
|
|
];
|
|
|
|
const stack = [
|
|
{ layer: 6, label: "Interface", description: "joelclaw.com (Next.js + Convex), ⌘K search, vault browser" },
|
|
{ layer: 5, label: "Agents", description: "Pi gateway, coding loops, background workers, voice agent" },
|
|
{ layer: 4, label: "Orchestration", description: "Talos k8s cluster, launchd daemons, Helm releases" },
|
|
{ layer: 3, label: "Services", description: "Inngest, Redis, Typesense, PDS, LiveKit (k8s pods)" },
|
|
{ layer: 2, label: "Pipelines", description: "Video ingest, transcription, content sync, friction fix" },
|
|
{ layer: 1, label: "Memory", description: "Brain .svx pages, observation pages, and disposable search projections" },
|
|
{ layer: 0, label: "Data", description: "Brain repositories, Obsidian Vault sources, and the 64 TB NAS archive" },
|
|
];
|
|
|
|
for (const node of nodes) {
|
|
await pushContentResource(`node:${node.publicName}`, "network_node", node);
|
|
}
|
|
|
|
for (const pod of pods) {
|
|
await pushContentResource(`pod:${pod.name}`, "network_pod", pod);
|
|
}
|
|
|
|
for (const daemon of daemons) {
|
|
await pushContentResource(`daemon:${daemon.name}`, "network_daemon", daemon);
|
|
}
|
|
|
|
for (const item of cluster) {
|
|
await pushContentResource(`cluster:${item.key}`, "network_cluster", item);
|
|
}
|
|
|
|
for (const layer of stack) {
|
|
await pushContentResource(`stack:${layer.layer}`, "network_stack", layer);
|
|
}
|
|
}
|
|
|
|
if (import.meta.main) {
|
|
await seedNetwork();
|
|
console.log("Seeded network contentResources.");
|
|
}
|