1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
//! **The clients pane**: which machines may execute for this wall, and what
//! each of them says it can do (yog's `docs/REMOTE.md` §5, §5.1; PROTOCOL 2).
//!
//! # Two lifetimes on one row, and the pane says both
//!
//! Presence is an **observation** — true at the instant the engine answered,
//! and recorded nowhere on either end — while the advertised set is a
//! **statement** the machine last made and which stands whether or not it is
//! connected. So a row reads *not connected* beside a full set as the ordinary
//! thing rather than as a contradiction: a tool host holds its connection only
//! while it is waiting for work, which means a busy machine and an absent one
//! look the same from here. The sentence says that outright, because the
//! alternative is an operator reading *absent* as *broken* once a day.
//!
//! # The consent is said on every tool, present or absent
//!
//! `subject_cwd` is the fact yog's worktree lane routes on (REMOTE §5.1): the
//! advertising box consenting to run this tool at a directory the invocation
//! names. It is stated for **both** answers rather than only for the consenting
//! ones, because a line that appears only when true makes its absence
//! ambiguous — an operator cannot tell a tool that refuses a subject from one
//! this build forgot to ask about — and the whole complaint that landed this
//! pane was being unable to tell those two machines apart.
//!
//! # There is no control on it, and that is the surface being honest
//!
//! Everything else on this family is a MACHINE's op (`crate::verbs::clients`
//! states which and why): `advertise` is a host's statement about itself, and
//! `invocations` *drains* the queue addressed to whichever certificate asked —
//! so a seat that offered either would be pretending to be a tool host with
//! somebody else's work in its hands. What an operator does with what they read
//! here happens on the conversation that is calling the tool, not on the
//! machine that would run it.
use crate;
use crate;
/// The word that opens the pane, on the wall the window is aimed at.
pub const OPEN: &str = "machines…";
/// The word that closes it.
pub const CLOSE: &str = "done";
/// The pane's own heading.
pub const HEADING: &str = "machines";
/// What it says for a wall nobody has been answered about yet.
pub const NOT_ANSWERED: &str = "waiting to hear which machines this wall holds";
/// What it says for a wall that answered and holds no registration at all — a
/// fact about the workspace, and the one empty state here that is not a wait.
pub const NONE_REGISTERED: &str = "no machine is registered in this workspace: \
registering one is an operator's act on the \
server that holds it, never a gesture from \
here";
/// What a row says of a machine that has presented no set.
pub const OFFERS_NOTHING: &str = "has advertised no tool";
/// What a tool says when its box consents to a caller-named directory.
pub const SUBJECT: &str = "runs where the caller says";
/// And when it does not — stated rather than left out, so an absence is never
/// mistaken for a fact nobody asked about.
pub const NO_SUBJECT: &str = "runs only where that box stands";
/// Paint the pane and take the clicks on it. Answers whether there was one to
/// paint, so the shell knows whether the conversation still stands.
/// One machine: what it is called, whether it was connected when the engine
/// answered, and what it offers.
/// One tool: the handle a call addresses it by, the host's own words, and
/// whether that box consents to run it somewhere the caller names.