The seat mesh-wants' definition gains the state asks (template state, history 5, view), its key forms the seven kinds' keys as the assigner's asks package writes them (hold, restore, backup, record, outside, revert, assignments) and its value the ask as the assigner composes it; its wants gains view. The assigner's first-view tool asks replaces assigner_read_asks, its callers the teller and the status view; the status view joins the callers of wants and assignments. The teller follows the asks by seat:mesh-wants.views.asks and invokes nothing of the assigner's. The status view's part waits on a question (its tools ask assigner_read_wants). Builds: design 47 G §717, A-299 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
151 lines
3.1 KiB
JSON
151 lines
3.1 KiB
JSON
{
|
|
"module": "mesh-delivery-teller",
|
|
"version": "0.1",
|
|
"slug": "teller",
|
|
"tools": [
|
|
"teller_end_ask",
|
|
"teller_answers",
|
|
"teller_read_answers",
|
|
"teller_first_views",
|
|
"teller_first_view_again",
|
|
"teller_widens_said"
|
|
],
|
|
"invokes": [
|
|
"mesh-delivery-view.view_read_answers",
|
|
"seat:mesh-hand-acts.hand-act",
|
|
"seat:mesh-catalog.registrations",
|
|
"seat:mesh-broker.show",
|
|
"seat:operator-channel.notify",
|
|
"seat:mesh-module-assigner.assignments"
|
|
],
|
|
"consumes": [
|
|
"mesh-conditions.findings-asked",
|
|
"seat:mesh-wants.views.asks",
|
|
"mesh-delivery-view.views.answers",
|
|
"mesh-catalog.registration-changed",
|
|
"mesh-pipeline-runner.pipeline-ended",
|
|
"mesh-delivery.recovery-merged",
|
|
"mesh-delivery.record-opened",
|
|
"mesh-broker.recreated",
|
|
"mesh-broker.dropped"
|
|
],
|
|
"emits": [
|
|
"answered",
|
|
"ask-ended",
|
|
"views.answers"
|
|
],
|
|
"state": [
|
|
{
|
|
"name": "answers",
|
|
"history": 5
|
|
},
|
|
{
|
|
"name": "asked",
|
|
"history": 1
|
|
},
|
|
{
|
|
"name": "ends",
|
|
"history": 1
|
|
},
|
|
{
|
|
"name": "first-views",
|
|
"history": 1
|
|
},
|
|
{
|
|
"name": "widens-said",
|
|
"history": 1
|
|
},
|
|
{
|
|
"name": "teller-marks",
|
|
"history": 1
|
|
}
|
|
],
|
|
"uses": [
|
|
"operator-channel"
|
|
],
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "mesh-delivery-teller",
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "mesh-delivery-teller",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/mesh-delivery-teller"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "mesh-delivery-teller",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "teller",
|
|
"type": "process",
|
|
"name": "mesh-delivery-teller",
|
|
"artifact": "program",
|
|
"run": [
|
|
"./mesh-delivery-teller"
|
|
],
|
|
"env": {
|
|
"MESH_BROKER_FILE": "${dir:state}/broker"
|
|
},
|
|
"user": "mesh-delivery-teller",
|
|
"health": {
|
|
"kind": "unit"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "program",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-teller",
|
|
"binary": "mesh-delivery-teller"
|
|
},
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-teller-tools",
|
|
"binary": "mesh-delivery-teller-tools",
|
|
"loads": [
|
|
"mesh-delivery-teller-tools"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"requires": [
|
|
{
|
|
"name": "findings",
|
|
"storage": "key-value",
|
|
"template": "state",
|
|
"options": {
|
|
"history": 1
|
|
}
|
|
},
|
|
{
|
|
"name": "finding-events",
|
|
"storage": "stream",
|
|
"template": "events",
|
|
"options": {
|
|
"events": [
|
|
"finding-written.*",
|
|
"finding-cleared.*",
|
|
"findings-stated.*"
|
|
],
|
|
"max-age-days": 7,
|
|
"max-mib": 16
|
|
}
|
|
}
|
|
]
|
|
}
|