{ "module": "mesh-knowledge", "version": "1", "slug": "knowledge", "requires": [ "postgres-database" ], "contributes": { "postgres-database": { "name": "knowledge" } }, "binds": { "postgres-database": "${dir:state}/database.json" }, "secrets": { "postgres-database": "${dir:state}/database.secret" }, "seats": [ { "name": "knowledge-base", "scope": "mesh", "serves": [ "ask", "get", "holds", "links", "history", "reserve", "propose", "import", "return" ] } ], "claims": [ { "name": "knowledge-base", "scope": "mesh", "serves": [ "ask", "get", "holds", "links", "history", "reserve", "propose", "import", "return" ] } ], "tools": [ "knowledge_health", "knowledge_highest" ], "emits": [ "reserved", "proposed", "reviewed", "accepted", "changed", "imported", "drafted", "confirmed", "returned" ], "uses": [ "operator-channel" ], "invokes": [ "seat:issue-tracker.reserve", "claude-code.claude_code_judge", "records.records_status", "records.records_list", "records.records_read", "seat:operator-channel.notify" ], "resources": [ { "id": "state", "type": "directory", "mode": "0700", "place": "." }, { "id": "database-url", "type": "file", "path": "${dir:state}/database.url", "mode": "0600", "content": "postgresql://${bound:postgres-database:as}:${secret:postgres-database}@${bound:postgres-database:at}:${bound:postgres-database:port}/${bound:postgres-database:as}\n" }, { "id": "settings", "trusted": false, "type": "file", "path": "${dir:state}/settings.json", "mode": "0600", "merge": "json", "content": "{\n \"judge-model\": \"sonnet\",\n \"drafting\": \"on\",\n \"reserved-for\": \"168h\"\n}\n" }, { "id": "prepare", "type": "process", "name": "mesh-knowledge-prepare", "artifact": "tools", "run": [ "./mesh-knowledge", "prepare" ], "run-once": true, "env": { "DATABASE_URL_FILE": "${dir:state}/database.url" }, "restart-on": [ "database-url" ] }, { "id": "keep", "type": "process", "name": "mesh-knowledge-keep", "artifact": "tools", "run": [ "./mesh-knowledge", "keep" ], "env": { "DATABASE_URL_FILE": "${dir:state}/database.url" }, "restart-on": [ "database-url" ], "health": { "kind": "unit" } }, { "id": "watch", "type": "process", "name": "mesh-knowledge-watch", "artifact": "tools", "run": [ "./mesh-knowledge", "watch" ], "user": "${machine:account}", "env": { "DATABASE_URL_FILE": "${dir:state}/database.url", "MESH_KNOWLEDGE_STATUS": "${dir:state}/health.json" }, "restart-on": [ "database-url" ], "health": { "kind": "tool", "tool": "knowledge_health", "interval": "60s", "timeout": "10s", "looks": 2, "grace": "180s" } } ], "build": { "artifacts": [ { "name": "tools", "kind": "bundle", "language": "go", "system": "arch", "from": "cmd/mesh-knowledge", "binary": "mesh-knowledge", "loads": [ "mesh-knowledge" ], "env": { "DATABASE_URL_FILE": "${dir:state}/database.url", "MESH_KNOWLEDGE_SETTINGS": "${dir:state}/settings.json", "MESH_KNOWLEDGE_STATUS": "${dir:state}/health.json" } } ] } }