pi-radar 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,291 @@
1
+ {
2
+ "$defs": {
3
+ "BoundChild": {
4
+ "additionalProperties": false,
5
+ "description": "The child a token bound: the registering incarnation's own registry identity.",
6
+ "properties": {
7
+ "bound_at": {
8
+ "description": "When the edge bound to this incarnation.",
9
+ "type": "string"
10
+ },
11
+ "incarnation": {
12
+ "type": "string"
13
+ },
14
+ "registration_id": {
15
+ "description": "Exact registry identity returned to the registering child. Absent in legacy records.",
16
+ "type": [
17
+ "string",
18
+ "null"
19
+ ]
20
+ },
21
+ "source": {
22
+ "type": "string"
23
+ }
24
+ },
25
+ "required": [
26
+ "source",
27
+ "incarnation",
28
+ "bound_at"
29
+ ],
30
+ "type": "object"
31
+ },
32
+ "Freshness": {
33
+ "description": "Freshness is independent of process identity or completion.",
34
+ "oneOf": [
35
+ {
36
+ "const": "fresh",
37
+ "description": "Accepted in this serving epoch by the current writer and not expired.",
38
+ "type": "string"
39
+ },
40
+ {
41
+ "const": "stale",
42
+ "description": "Restored, reported by a replaced writer, retired, or expired.",
43
+ "type": "string"
44
+ }
45
+ ]
46
+ },
47
+ "PublicSpawnExitObservation": {
48
+ "description": "What a spawn topology read can say about a child's process exit.",
49
+ "oneOf": [
50
+ {
51
+ "properties": {
52
+ "state": {
53
+ "const": "unknown",
54
+ "type": "string"
55
+ }
56
+ },
57
+ "required": [
58
+ "state"
59
+ ],
60
+ "type": "object"
61
+ },
62
+ {
63
+ "properties": {
64
+ "code": {
65
+ "format": "int32",
66
+ "type": [
67
+ "integer",
68
+ "null"
69
+ ]
70
+ },
71
+ "observed_at": {
72
+ "type": "string"
73
+ },
74
+ "signal": {
75
+ "format": "int32",
76
+ "type": [
77
+ "integer",
78
+ "null"
79
+ ]
80
+ },
81
+ "state": {
82
+ "const": "exited",
83
+ "type": "string"
84
+ }
85
+ },
86
+ "required": [
87
+ "state",
88
+ "observed_at"
89
+ ],
90
+ "type": "object"
91
+ }
92
+ ]
93
+ },
94
+ "PublicSpawnTopology": {
95
+ "description": "One edge as a topology read reports it: the stored facts, plus the two things\na read derives instead of inferring.",
96
+ "properties": {
97
+ "bound": {
98
+ "anyOf": [
99
+ {
100
+ "$ref": "#/$defs/BoundChild"
101
+ },
102
+ {
103
+ "type": "null"
104
+ }
105
+ ]
106
+ },
107
+ "claim_id": {
108
+ "type": [
109
+ "string",
110
+ "null"
111
+ ]
112
+ },
113
+ "created": {
114
+ "$ref": "#/$defs/RequestOutcome"
115
+ },
116
+ "exit_observation": {
117
+ "anyOf": [
118
+ {
119
+ "$ref": "#/$defs/PublicSpawnExitObservation"
120
+ },
121
+ {
122
+ "type": "null"
123
+ }
124
+ ]
125
+ },
126
+ "freshness": {
127
+ "anyOf": [
128
+ {
129
+ "$ref": "#/$defs/Freshness"
130
+ },
131
+ {
132
+ "type": "null"
133
+ }
134
+ ],
135
+ "description": "Freshness of the recorded location against this read's evidence, in the\nregistry's one freshness vocabulary: `fresh` when the backend reports the\nlocation now, `stale` when it does not — which is never evidence that the\nchild stopped. Absent when the edge recorded no location, because there is\nnothing to verify."
136
+ },
137
+ "launched": {
138
+ "$ref": "#/$defs/RequestOutcome"
139
+ },
140
+ "location": {
141
+ "anyOf": [
142
+ {
143
+ "$ref": "#/$defs/RegistryLocation"
144
+ },
145
+ {
146
+ "type": "null"
147
+ }
148
+ ]
149
+ },
150
+ "parent": {
151
+ "type": "string"
152
+ },
153
+ "parent_session_id": {
154
+ "type": [
155
+ "string",
156
+ "null"
157
+ ]
158
+ },
159
+ "parent_subject_id": {
160
+ "type": [
161
+ "string",
162
+ "null"
163
+ ]
164
+ },
165
+ "recorded_at": {
166
+ "type": "string"
167
+ },
168
+ "request_id": {
169
+ "type": "string"
170
+ },
171
+ "state": {
172
+ "$ref": "#/$defs/SpawnState"
173
+ },
174
+ "version": {
175
+ "format": "uint32",
176
+ "minimum": 0,
177
+ "type": "integer"
178
+ }
179
+ },
180
+ "required": [
181
+ "version",
182
+ "request_id",
183
+ "parent",
184
+ "created",
185
+ "launched",
186
+ "recorded_at",
187
+ "state"
188
+ ],
189
+ "type": "object"
190
+ },
191
+ "RegistryLocation": {
192
+ "additionalProperties": false,
193
+ "description": "Where an agent's incarnation lives on one backend, in that backend's own\ncoordinates.\n\nThe backend name is free-form so a source Radar does not ship yet is\npreserved rather than rejected; the rest are the coordinates as reported, and\neach is optional because a backend need not name every level.",
194
+ "properties": {
195
+ "backend": {
196
+ "type": "string"
197
+ },
198
+ "instance": {
199
+ "type": [
200
+ "string",
201
+ "null"
202
+ ]
203
+ },
204
+ "pane": {
205
+ "type": [
206
+ "string",
207
+ "null"
208
+ ]
209
+ },
210
+ "tab": {
211
+ "type": [
212
+ "string",
213
+ "null"
214
+ ]
215
+ },
216
+ "workspace": {
217
+ "type": [
218
+ "string",
219
+ "null"
220
+ ]
221
+ }
222
+ },
223
+ "required": [
224
+ "backend"
225
+ ],
226
+ "type": "object"
227
+ },
228
+ "RequestOutcome": {
229
+ "description": "What a completed request did.",
230
+ "oneOf": [
231
+ {
232
+ "const": "completed",
233
+ "description": "The operation ran and its effects are in the record.",
234
+ "type": "string"
235
+ },
236
+ {
237
+ "const": "refused",
238
+ "description": "The operation did not run, and the record says why.",
239
+ "type": "string"
240
+ },
241
+ {
242
+ "const": "unknown",
243
+ "description": "Execution began and the daemon cannot say what it did.",
244
+ "type": "string"
245
+ }
246
+ ]
247
+ },
248
+ "SpawnState": {
249
+ "description": "The state of one edge in the recorded topology: the strongest statement a\nread can make about it, and nothing beyond the records and this read's own\nevidence.",
250
+ "oneOf": [
251
+ {
252
+ "const": "unbound",
253
+ "description": "No child has presented this edge's token. The edge may still be pending,\nor its launch may never have reached a shell.",
254
+ "type": "string"
255
+ },
256
+ {
257
+ "const": "bound",
258
+ "description": "A child registered with this edge's token, so the edge names its exact\nidentity. Observation does not revise this.",
259
+ "type": "string"
260
+ },
261
+ {
262
+ "const": "unresolved",
263
+ "description": "The recorded location is not in the backend's own report: the record and\nthe world disagree. This is never a statement that the child stopped — a\nread observes panes, and a pane's absence is not a process's death.",
264
+ "type": "string"
265
+ }
266
+ ]
267
+ }
268
+ },
269
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
270
+ "additionalProperties": false,
271
+ "description": "One page of spawn edges. `next` names the request id the page ended on.",
272
+ "properties": {
273
+ "next": {
274
+ "type": [
275
+ "string",
276
+ "null"
277
+ ]
278
+ },
279
+ "spawns": {
280
+ "items": {
281
+ "$ref": "#/$defs/PublicSpawnTopology"
282
+ },
283
+ "type": "array"
284
+ }
285
+ },
286
+ "required": [
287
+ "spawns"
288
+ ],
289
+ "title": "spawn-list-page-deserialize",
290
+ "type": "object"
291
+ }
@@ -0,0 +1,296 @@
1
+ {
2
+ "$defs": {
3
+ "BoundChild": {
4
+ "additionalProperties": false,
5
+ "description": "The child a token bound: the registering incarnation's own registry identity.",
6
+ "properties": {
7
+ "bound_at": {
8
+ "description": "When the edge bound to this incarnation.",
9
+ "type": "string"
10
+ },
11
+ "incarnation": {
12
+ "type": "string"
13
+ },
14
+ "registration_id": {
15
+ "description": "Exact registry identity returned to the registering child. Absent in legacy records.",
16
+ "type": [
17
+ "string",
18
+ "null"
19
+ ]
20
+ },
21
+ "source": {
22
+ "type": "string"
23
+ }
24
+ },
25
+ "required": [
26
+ "source",
27
+ "incarnation",
28
+ "bound_at"
29
+ ],
30
+ "type": "object"
31
+ },
32
+ "Freshness": {
33
+ "description": "Freshness is independent of process identity or completion.",
34
+ "oneOf": [
35
+ {
36
+ "const": "fresh",
37
+ "description": "Accepted in this serving epoch by the current writer and not expired.",
38
+ "type": "string"
39
+ },
40
+ {
41
+ "const": "stale",
42
+ "description": "Restored, reported by a replaced writer, retired, or expired.",
43
+ "type": "string"
44
+ }
45
+ ]
46
+ },
47
+ "PublicSpawnExitObservation": {
48
+ "description": "What a spawn topology read can say about a child's process exit.",
49
+ "oneOf": [
50
+ {
51
+ "additionalProperties": false,
52
+ "properties": {
53
+ "state": {
54
+ "const": "unknown",
55
+ "type": "string"
56
+ }
57
+ },
58
+ "required": [
59
+ "state"
60
+ ],
61
+ "type": "object"
62
+ },
63
+ {
64
+ "additionalProperties": false,
65
+ "properties": {
66
+ "code": {
67
+ "format": "int32",
68
+ "type": [
69
+ "integer",
70
+ "null"
71
+ ]
72
+ },
73
+ "observed_at": {
74
+ "type": "string"
75
+ },
76
+ "signal": {
77
+ "format": "int32",
78
+ "type": [
79
+ "integer",
80
+ "null"
81
+ ]
82
+ },
83
+ "state": {
84
+ "const": "exited",
85
+ "type": "string"
86
+ }
87
+ },
88
+ "required": [
89
+ "state",
90
+ "code",
91
+ "signal",
92
+ "observed_at"
93
+ ],
94
+ "type": "object"
95
+ }
96
+ ]
97
+ },
98
+ "PublicSpawnTopology": {
99
+ "additionalProperties": false,
100
+ "description": "One edge as a topology read reports it: the stored facts, plus the two things\na read derives instead of inferring.",
101
+ "properties": {
102
+ "bound": {
103
+ "anyOf": [
104
+ {
105
+ "$ref": "#/$defs/BoundChild"
106
+ },
107
+ {
108
+ "type": "null"
109
+ }
110
+ ]
111
+ },
112
+ "claim_id": {
113
+ "type": [
114
+ "string",
115
+ "null"
116
+ ]
117
+ },
118
+ "created": {
119
+ "$ref": "#/$defs/RequestOutcome"
120
+ },
121
+ "exit_observation": {
122
+ "anyOf": [
123
+ {
124
+ "$ref": "#/$defs/PublicSpawnExitObservation"
125
+ },
126
+ {
127
+ "type": "null"
128
+ }
129
+ ]
130
+ },
131
+ "freshness": {
132
+ "anyOf": [
133
+ {
134
+ "$ref": "#/$defs/Freshness"
135
+ },
136
+ {
137
+ "type": "null"
138
+ }
139
+ ],
140
+ "description": "Freshness of the recorded location against this read's evidence, in the\nregistry's one freshness vocabulary: `fresh` when the backend reports the\nlocation now, `stale` when it does not — which is never evidence that the\nchild stopped. Absent when the edge recorded no location, because there is\nnothing to verify."
141
+ },
142
+ "launched": {
143
+ "$ref": "#/$defs/RequestOutcome"
144
+ },
145
+ "location": {
146
+ "anyOf": [
147
+ {
148
+ "$ref": "#/$defs/RegistryLocation"
149
+ },
150
+ {
151
+ "type": "null"
152
+ }
153
+ ]
154
+ },
155
+ "parent": {
156
+ "type": "string"
157
+ },
158
+ "parent_session_id": {
159
+ "type": [
160
+ "string",
161
+ "null"
162
+ ]
163
+ },
164
+ "parent_subject_id": {
165
+ "type": [
166
+ "string",
167
+ "null"
168
+ ]
169
+ },
170
+ "recorded_at": {
171
+ "type": "string"
172
+ },
173
+ "request_id": {
174
+ "type": "string"
175
+ },
176
+ "state": {
177
+ "$ref": "#/$defs/SpawnState"
178
+ },
179
+ "version": {
180
+ "format": "uint32",
181
+ "minimum": 0,
182
+ "type": "integer"
183
+ }
184
+ },
185
+ "required": [
186
+ "version",
187
+ "request_id",
188
+ "parent",
189
+ "created",
190
+ "launched",
191
+ "recorded_at",
192
+ "state"
193
+ ],
194
+ "type": "object"
195
+ },
196
+ "RegistryLocation": {
197
+ "additionalProperties": false,
198
+ "description": "Where an agent's incarnation lives on one backend, in that backend's own\ncoordinates.\n\nThe backend name is free-form so a source Radar does not ship yet is\npreserved rather than rejected; the rest are the coordinates as reported, and\neach is optional because a backend need not name every level.",
199
+ "properties": {
200
+ "backend": {
201
+ "type": "string"
202
+ },
203
+ "instance": {
204
+ "type": [
205
+ "string",
206
+ "null"
207
+ ]
208
+ },
209
+ "pane": {
210
+ "type": [
211
+ "string",
212
+ "null"
213
+ ]
214
+ },
215
+ "tab": {
216
+ "type": [
217
+ "string",
218
+ "null"
219
+ ]
220
+ },
221
+ "workspace": {
222
+ "type": [
223
+ "string",
224
+ "null"
225
+ ]
226
+ }
227
+ },
228
+ "required": [
229
+ "backend"
230
+ ],
231
+ "type": "object"
232
+ },
233
+ "RequestOutcome": {
234
+ "description": "What a completed request did.",
235
+ "oneOf": [
236
+ {
237
+ "const": "completed",
238
+ "description": "The operation ran and its effects are in the record.",
239
+ "type": "string"
240
+ },
241
+ {
242
+ "const": "refused",
243
+ "description": "The operation did not run, and the record says why.",
244
+ "type": "string"
245
+ },
246
+ {
247
+ "const": "unknown",
248
+ "description": "Execution began and the daemon cannot say what it did.",
249
+ "type": "string"
250
+ }
251
+ ]
252
+ },
253
+ "SpawnState": {
254
+ "description": "The state of one edge in the recorded topology: the strongest statement a\nread can make about it, and nothing beyond the records and this read's own\nevidence.",
255
+ "oneOf": [
256
+ {
257
+ "const": "unbound",
258
+ "description": "No child has presented this edge's token. The edge may still be pending,\nor its launch may never have reached a shell.",
259
+ "type": "string"
260
+ },
261
+ {
262
+ "const": "bound",
263
+ "description": "A child registered with this edge's token, so the edge names its exact\nidentity. Observation does not revise this.",
264
+ "type": "string"
265
+ },
266
+ {
267
+ "const": "unresolved",
268
+ "description": "The recorded location is not in the backend's own report: the record and\nthe world disagree. This is never a statement that the child stopped — a\nread observes panes, and a pane's absence is not a process's death.",
269
+ "type": "string"
270
+ }
271
+ ]
272
+ }
273
+ },
274
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
275
+ "additionalProperties": false,
276
+ "description": "One page of spawn edges. `next` names the request id the page ended on.",
277
+ "properties": {
278
+ "next": {
279
+ "type": [
280
+ "string",
281
+ "null"
282
+ ]
283
+ },
284
+ "spawns": {
285
+ "items": {
286
+ "$ref": "#/$defs/PublicSpawnTopology"
287
+ },
288
+ "type": "array"
289
+ }
290
+ },
291
+ "required": [
292
+ "spawns"
293
+ ],
294
+ "title": "spawn-list-page-serialize",
295
+ "type": "object"
296
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "additionalProperties": false,
4
+ "description": "Input accepted by `spawn.list`.\n\nA caller presents itself; the parent whose launches it reads is derived from\nthe claim it holds. There is deliberately no parent parameter: naming another\nsubject would let any client read its launches.",
5
+ "properties": {
6
+ "after": {
7
+ "default": null,
8
+ "type": [
9
+ "string",
10
+ "null"
11
+ ]
12
+ },
13
+ "limit": {
14
+ "default": null,
15
+ "format": "uint",
16
+ "maximum": 100,
17
+ "minimum": 1,
18
+ "type": [
19
+ "integer",
20
+ "null"
21
+ ]
22
+ },
23
+ "registration_id": {
24
+ "default": null,
25
+ "type": [
26
+ "string",
27
+ "null"
28
+ ]
29
+ }
30
+ },
31
+ "title": "spawn-list-params-deserialize",
32
+ "type": "object"
33
+ }
@@ -0,0 +1,38 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "additionalProperties": false,
4
+ "description": "Input accepted by `spawn.list`.\n\nA caller presents itself; the parent whose launches it reads is derived from\nthe claim it holds. There is deliberately no parent parameter: naming another\nsubject would let any client read its launches.",
5
+ "properties": {
6
+ "after": {
7
+ "default": null,
8
+ "type": [
9
+ "string",
10
+ "null"
11
+ ]
12
+ },
13
+ "limit": {
14
+ "default": null,
15
+ "format": "uint",
16
+ "maximum": 100,
17
+ "minimum": 1,
18
+ "type": [
19
+ "integer",
20
+ "null"
21
+ ]
22
+ },
23
+ "registration_id": {
24
+ "default": null,
25
+ "type": [
26
+ "string",
27
+ "null"
28
+ ]
29
+ }
30
+ },
31
+ "required": [
32
+ "registration_id",
33
+ "after",
34
+ "limit"
35
+ ],
36
+ "title": "spawn-list-params-serialize",
37
+ "type": "object"
38
+ }