A lead's five-minute report and 'is design 47 nearing its end' were joined by hand from the design file, the tracker and the deliveries. One verb now works the state out (ADR 0424 §1), minimal for every five minutes, detailed for the report's tree. Milestones are read from the design's table until the tracker's milestone records (issue 1781) are delivered.
227 lines
5.0 KiB
JSON
227 lines
5.0 KiB
JSON
{
|
|
"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",
|
|
"list",
|
|
"findings",
|
|
"holds",
|
|
"links",
|
|
"history",
|
|
"reserve",
|
|
"propose",
|
|
"import",
|
|
"return",
|
|
"withdraw",
|
|
"progress"
|
|
]
|
|
}
|
|
],
|
|
"claims": [
|
|
{
|
|
"name": "knowledge-base",
|
|
"scope": "mesh",
|
|
"serves": [
|
|
"ask",
|
|
"get",
|
|
"list",
|
|
"findings",
|
|
"holds",
|
|
"links",
|
|
"history",
|
|
"reserve",
|
|
"propose",
|
|
"import",
|
|
"return",
|
|
"withdraw",
|
|
"progress"
|
|
]
|
|
}
|
|
],
|
|
"tools": [
|
|
"knowledge_health",
|
|
"knowledge_highest",
|
|
"knowledge_marks"
|
|
],
|
|
"emits": [
|
|
"reserved",
|
|
"proposed",
|
|
"reviewed",
|
|
"accepted",
|
|
"changed",
|
|
"imported",
|
|
"drafted",
|
|
"confirmed",
|
|
"returned"
|
|
],
|
|
"uses": [
|
|
"operator-channel"
|
|
],
|
|
"invokes": [
|
|
"seat:issue-tracker.reserve",
|
|
"claude-code.claude_code_judge",
|
|
"claude-code.claude_code_judged",
|
|
"records.records_status",
|
|
"records.records_list",
|
|
"records.records_read",
|
|
"seat:operator-channel.notify",
|
|
"seat:issue-tracker.list",
|
|
"seat:issue-tracker.get",
|
|
"seat:mesh-delivery.deliveries",
|
|
"seat:mesh-delivery.show",
|
|
"seat:mesh-delivery.groups"
|
|
],
|
|
"config": {
|
|
"judge-model": {
|
|
"type": "string",
|
|
"description": "The model the knowledge base's drafting and confirming judgements ask, by the agent's name for it, such as sonnet; empty is sonnet.",
|
|
"default": "sonnet"
|
|
},
|
|
"drafting": {
|
|
"type": "string",
|
|
"description": "Whether the knowledge base drafts and confirms clauses itself: off stops it, anything else is on.",
|
|
"default": "on"
|
|
},
|
|
"reserved-for": {
|
|
"type": "string",
|
|
"description": "How long a reserved number waits for its proposal before it is withdrawn, as a duration such as 168h; empty is the knowledge base's own default.",
|
|
"pattern": "|[0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h)([0-9]+(\\.[0-9]+)?(ns|us|µs|ms|s|m|h))*",
|
|
"default": "168h"
|
|
}
|
|
},
|
|
"resources": [
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "database-url",
|
|
"type": "file",
|
|
"path": "${dir:state}/database.url",
|
|
"mode": "0600",
|
|
"template": "files/database.url"
|
|
},
|
|
{
|
|
"id": "settings",
|
|
"trusted": false,
|
|
"type": "file",
|
|
"path": "${dir:state}/settings.json",
|
|
"mode": "0600",
|
|
"takes-config": ["judge-model", "drafting", "reserved-for"],
|
|
"merge": "json",
|
|
"template": "files/settings.json"
|
|
},
|
|
{
|
|
"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",
|
|
"needs": "postgres-database",
|
|
"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"
|
|
}
|
|
},
|
|
{
|
|
"name": "files",
|
|
"kind": "archive",
|
|
"from": "files"
|
|
}
|
|
]
|
|
}
|
|
}
|