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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
//! The §9 destination's bytes, read (§8.5, bl-0164): split from [`super`] per
//! §12's line budget, mirroring [`write`](super::write). Since bl-dff8 it also
//! holds the two reads that had no boundary spelling at all — the §9.3 lineage
//! browse and the §9.4 model roster — because both are *populating reads asked
//! of the world at the moment they are asked*, which is what this module is.
use ConfigFile;
use crateDeps;
use crate;
use crate;
use crate;
use crate;
use crateLitanyGlobal;
use crate;
use crate;
use Path;
/// **The §9 config family as ONE populating read** (bl-719a): the five reads
/// whose subject is a workspace's configuration, carried by the family's own
/// type instead of by five rows of the §8.5 query roster.
///
/// The fold `Action` has taken five times (§12), on the seam every layer
/// beneath already draws: [`super`] answers all five, `answer`'s table routes
/// them in one block, `codec::config` spells them, `line::config` reads them.
/// `query.rs` rested at 298 against a 300 wall — the inversion where a file on
/// the wall fires on whoever touches it next — and this is the hatch §12's own
/// row names.
///
/// **The fold is in the carrier, never in the surface.** Each member keeps its
/// slash verb, its envelope `op` and its help page, so no protocol version
/// moves and the corpus regenerates byte-identical; that identity is the check
/// that the move was behaviour-preserving.
/// One file's current bytes as text, or empty for a file that is not there
/// yet — the same [`load_snapshot`] every §9 editor loads through, minus the
/// hash it also returns: a read answers once and holds no draft to guard
/// later.
pub
/// One file's bytes **out of a config lineage** (§9.3): `git show
/// config/<lineage>:<path>`, the pane's own Load. Lossy-decoded, exactly as the
/// pane decodes it — a config commit holds text, and yog adds no encoding
/// guess. Unlike a file destination there is no empty answer here: git reports
/// a missing ref and a missing blob the same way, so an absent path refuses in
/// git's own words rather than reading back as a new empty file that an Apply
/// would then commit over the real one. [`Lineages`](super::super::Query::Lineages)
/// is the listing that says which paths are there to ask for.
pub
/// Read one §9 destination (§8.5, bl-0164): [`apply`](super::apply)'s read-only
/// twin, and the file editors' Reload spelled headless. A file destination that
/// is not there yet answers empty text — the same "new file" reading every
/// editor's own load already gives — so only a real I/O failure refuses. A
/// **lineage** answers the pane's own Load (bl-dff8): `git show
/// config/<lineage>:<path>`, the very bytes an Apply on that destination would
/// be diffed against. It carries the write's `origin` and ignores it, because
/// where the next commit lands is not where the current bytes are;
/// [`Query::Lineages`](crate::boundary::Query::Lineages) is the browse that
/// says which paths a lineage holds.
///
/// **The answer is the text AND the file's typed settings** (§9.5, bl-dc3f):
/// the same bytes read twice, once verbatim and once through the schema, so one
/// answer serves the raw editor and the controls pane and the file stays the
/// single fact. It is a fold over the text just returned — never a second read
/// of disk, which would let the two halves of one answer disagree. A file yog
/// has no grammar for answers an **empty** list, not an absent field: §9.5's
/// three raw-text fallbacks are *"the general path with empty input, not a
/// branch"*, and a seat with no settings to show is already showing the raw
/// editor.
pub
/// The file's schema applied to the text it just answered (§9.5) — the settings
/// table, the bounds each control judges at input, and the provider judgement
/// `is_unknown_row` makes, all of which §9.5 rules must reach the surface and
/// none of which crossed before bl-dc3f.
///
/// **brazen is asked only where a control needs it.** The provider fault is the
/// one judgement here that is not a fact of the text, and only a schema
/// declaring a [`Control::Provider`] field can carry it — so a `cadence.yaml`
/// read spawns nothing, and the `Deps` contract ("asked, never stored", read
/// inside the wall the gesture names — bl-fcd5) is kept where it does. An
/// unanswerable brazen is an empty table, which faults nothing: no surface may
/// refuse on the strength of a question that went unanswered.
/// The §9.3 browse (bl-dff8): every lineage with the files its tip holds. A
/// workspace whose repo cannot be read refuses with git's own message — the
/// `work-diff` rule, and for its reason: an unreadable repository shown as an
/// empty list is a lie about the workspace.
pub
/// The §9.4 roster (bl-dff8): the model ids `provider` offers, in the order it
/// lists them, read **in this process** through the linked brazen (§16.7 W10's
/// read half). Every seat that reaches the boundary's answer chokepoint is
/// already off-frame — the consumer's own thread, or a `yog gesture` process
/// with nothing else to do — so the picker's streamed spawn buys nothing here
/// and the fork buys a version skew.
pub
/// Fold one `--list-models` run into the roster or the reason there is none —
/// [`RosterView`](crate::model_pick::query::RosterView)'s settle, as a refusal:
/// a non-zero exit answers brazen's own stderr, and an exit-0 run that listed
/// nothing answers [`EMPTY_ROSTER`], never an empty list a seat would render as
/// "your provider has no models".
pub