From 3ccc3cc3cb32c6e03ce6b2501d4dfef5602d43f7 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 11 Nov 2026 15:50:06 +0100 Subject: [PATCH] K2 (node-engine verbs): the seat is claimed as one module, and its first views are seat verbs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The definition drops held-by-the-engine, so one module's claim of the seat is read as any other. It gains first-views (read; any person and the healers) and first-view-again (act; the operator and the healers), not optional, their inputs and answers those of the view's two tools mesh-sdk's runtime serves; a fixture reads first-view-again's input. Generated code waits for K21. Builds: design 47 G §508, §422, §204, §400 Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ --- seats/node-engine/fixtures/verbs.json | 9 +++ seats/node-engine/seat.json | 112 +++++++++++++++++++++++++- 2 files changed, 120 insertions(+), 1 deletion(-) diff --git a/seats/node-engine/fixtures/verbs.json b/seats/node-engine/fixtures/verbs.json index 8c72985..a1488ee 100644 --- a/seats/node-engine/fixtures/verbs.json +++ b/seats/node-engine/fixtures/verbs.json @@ -156,5 +156,14 @@ "processes": [], "error": "the service manager did not answer" } + }, + { + "name": "first-view-again names the owner, its state and why", + "of": "verb:first-view-again.input", + "given": { + "owner": "mesh-delivery-indexer", + "state": "manifests", + "why": "the picture lags the indexer by hand" + } } ] diff --git a/seats/node-engine/seat.json b/seats/node-engine/seat.json index af5875e..ab45d89 100644 --- a/seats/node-engine/seat.json +++ b/seats/node-engine/seat.json @@ -6,7 +6,6 @@ "domain": "Core", "decision": "novox/hq ADR 0563", "description": "The node seat every node's engine holds (novox/hq ADR 0563, ADR 0618 §3, §4): its hand acts on the operator's warrant, its read-only judgements, its compositions and what it reads of a manifest. Each verb is answered on this node's subject, mesh.seat.node-engine.tool.., and each event is published on mesh.seat.node-engine.event.., the node's name its last token, or, for an event whose subject names , there (composed., running..): the grants part grants a node's account only its own node's subjects (ADR 0363 §2).", - "held-by-the-engine": true, "acts": [ { "step": "compose", @@ -724,6 +723,117 @@ "$ref": "#/defs/SeatList" } }, + { + "name": "first-views", + "description": "The node-engine's first views of the owners' states it follows (design 47 G 422, 204): per owner and state, the tool it asks, the revision its picture holds and why it is behind, when it asked and was answered, how many asks and whether its condition is raised; served by mesh-sdk's runtime as the view's read tool.", + "class": "read", + "callers": [ + "persons", + "healers" + ], + "input": { + "type": "object", + "properties": {} + }, + "answer": { + "type": "object", + "required": [ + "first-views" + ], + "properties": { + "first-views": { + "type": "array", + "items": { + "type": "object" + }, + "description": "one status per owner and state followed, as mesh-sdk's views runtime keeps it" + } + } + } + }, + { + "name": "first-view-again", + "description": "Ask the node-engine's first view of an owner's state again now, by hand (design 47 G 422, 204): a hand act, its caller and why kept in the status first-views reads; served by mesh-sdk's runtime as the view's again tool.", + "class": "act", + "callers": [ + "operator", + "healers" + ], + "input": { + "type": "object", + "required": [ + "owner", + "state", + "why" + ], + "properties": { + "owner": { + "type": "string", + "description": "the owner module, as first-views names it" + }, + "state": { + "type": "string", + "description": "the owner's state, as first-views names it" + }, + "why": { + "type": "string", + "description": "why it is asked again, in plain words" + } + } + }, + "answer": { + "type": "object", + "required": [ + "asked", + "read" + ], + "properties": { + "asked": { + "type": "object", + "description": "the hand ask written", + "required": [ + "v", + "owner", + "state", + "why", + "by", + "at" + ], + "properties": { + "v": { + "type": "integer", + "description": "the layout's version" + }, + "owner": { + "type": "string", + "description": "the owner module" + }, + "state": { + "type": "string", + "description": "the owner's state" + }, + "why": { + "type": "string", + "description": "why it was asked again" + }, + "by": { + "type": "string", + "description": "the caller the runtime proved" + }, + "at": { + "type": "string", + "format": "date-time", + "description": "when it was asked, RFC 3339" + } + } + }, + "read": { + "type": "string", + "description": "the verb that reads the status, first-views" + } + } + } + }, { "name": "process-builds", "description": "The build each process on this node was started with (design 47 *The revision view*): per service and container the fingerprint the node-engine handed it in MESH_FINGERPRINT, or why it is unknown, and when it started. Narrowed by module. Reads only.",