@knpkv/herdr-fleet 0.2.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,372 @@
1
+ import { Schema } from "effect";
2
+ export declare const JobIdentifier: Schema.String;
3
+ export declare const JobHash: Schema.String;
4
+ export type JobHash = typeof JobHash.Type;
5
+ export declare const DelegateMode: Schema.Literals<readonly ["consult", "review", "work"]>;
6
+ export type DelegateMode = typeof DelegateMode.Type;
7
+ export declare const AgentStableId: Schema.String;
8
+ export type AgentStableId = typeof AgentStableId.Type;
9
+ export declare const FleetHostName: Schema.String;
10
+ export type FleetHostName = typeof FleetHostName.Type;
11
+ export declare const AgentWorkerRelationship: Schema.Struct<{
12
+ readonly parentAgentId: Schema.String;
13
+ readonly relation: Schema.Literals<readonly ["delegated", "pair", "review"]>;
14
+ }>;
15
+ export type AgentWorkerRelationship = typeof AgentWorkerRelationship.Type;
16
+ export declare const AgentWorkerIdentity: Schema.Struct<{
17
+ readonly host: Schema.String;
18
+ readonly agentId: Schema.String;
19
+ readonly name: Schema.String;
20
+ readonly paneId: Schema.String;
21
+ readonly relationship: Schema.optionalKey<Schema.Struct<{
22
+ readonly parentAgentId: Schema.String;
23
+ readonly relation: Schema.Literals<readonly ["delegated", "pair", "review"]>;
24
+ }>>;
25
+ }>;
26
+ export type AgentWorkerIdentity = typeof AgentWorkerIdentity.Type;
27
+ export declare const AgentConnectTarget: Schema.Struct<{
28
+ readonly host: Schema.String;
29
+ readonly agentId: Schema.String;
30
+ readonly url: Schema.String;
31
+ }>;
32
+ export type AgentConnectTarget = typeof AgentConnectTarget.Type;
33
+ export declare const agentConnectTarget: (worker: AgentWorkerIdentity) => AgentConnectTarget;
34
+ export declare const JobActor: Schema.String;
35
+ export type JobActor = typeof JobActor.Type;
36
+ /**
37
+ * Leaves headroom below Linux's single-argument limit after JSON escaping and
38
+ * worst-case UTF-8 encoding by the command adapter.
39
+ */
40
+ export declare const jobTextMaxLength: number;
41
+ export declare const NixCheck: Schema.Struct<{
42
+ readonly kind: Schema.Literal<"nix.check">;
43
+ }>;
44
+ export declare const NixApply: Schema.Struct<{
45
+ readonly kind: Schema.Literal<"nix.apply">;
46
+ readonly ref: Schema.String;
47
+ }>;
48
+ export declare const AgentDelegate: Schema.Struct<{
49
+ readonly kind: Schema.Literal<"agent.delegate">;
50
+ readonly repository: Schema.String;
51
+ readonly prompt: Schema.String;
52
+ readonly mode: Schema.Literals<readonly ["consult", "review", "work"]>;
53
+ readonly channel: Schema.optionalKey<Schema.Literal<"coordinator_chat">>;
54
+ }>;
55
+ export type AgentDelegate = typeof AgentDelegate.Type;
56
+ export declare const AgentMessage: Schema.Struct<{
57
+ readonly kind: Schema.Literal<"agent.message">;
58
+ readonly session: Schema.String;
59
+ readonly message: Schema.String;
60
+ }>;
61
+ export declare const BrowserMcpRecover: Schema.Struct<{
62
+ readonly kind: Schema.Literal<"browser.mcp.recover">;
63
+ }>;
64
+ export type BrowserMcpRecover = typeof BrowserMcpRecover.Type;
65
+ export declare const CoreJobPayload: Schema.Union<readonly [Schema.Struct<{
66
+ readonly kind: Schema.Literal<"nix.check">;
67
+ }>, Schema.Struct<{
68
+ readonly kind: Schema.Literal<"nix.apply">;
69
+ readonly ref: Schema.String;
70
+ }>, Schema.Struct<{
71
+ readonly kind: Schema.Literal<"agent.delegate">;
72
+ readonly repository: Schema.String;
73
+ readonly prompt: Schema.String;
74
+ readonly mode: Schema.Literals<readonly ["consult", "review", "work"]>;
75
+ readonly channel: Schema.optionalKey<Schema.Literal<"coordinator_chat">>;
76
+ }>, Schema.Struct<{
77
+ readonly kind: Schema.Literal<"agent.message">;
78
+ readonly session: Schema.String;
79
+ readonly message: Schema.String;
80
+ }>]>;
81
+ export type CoreJobPayload = typeof CoreJobPayload.Type;
82
+ export declare const LocalJobPayload: Schema.Struct<{
83
+ readonly kind: Schema.Literal<"browser.mcp.recover">;
84
+ }>;
85
+ export type LocalJobPayload = typeof LocalJobPayload.Type;
86
+ export declare const JobPayload: Schema.Union<readonly [Schema.Union<readonly [Schema.Struct<{
87
+ readonly kind: Schema.Literal<"nix.check">;
88
+ }>, Schema.Struct<{
89
+ readonly kind: Schema.Literal<"nix.apply">;
90
+ readonly ref: Schema.String;
91
+ }>, Schema.Struct<{
92
+ readonly kind: Schema.Literal<"agent.delegate">;
93
+ readonly repository: Schema.String;
94
+ readonly prompt: Schema.String;
95
+ readonly mode: Schema.Literals<readonly ["consult", "review", "work"]>;
96
+ readonly channel: Schema.optionalKey<Schema.Literal<"coordinator_chat">>;
97
+ }>, Schema.Struct<{
98
+ readonly kind: Schema.Literal<"agent.message">;
99
+ readonly session: Schema.String;
100
+ readonly message: Schema.String;
101
+ }>]>, Schema.Struct<{
102
+ readonly kind: Schema.Literal<"browser.mcp.recover">;
103
+ }>]>;
104
+ export type JobPayload = typeof JobPayload.Type;
105
+ export declare const JobRequest: Schema.Struct<{
106
+ readonly payload: Schema.Union<readonly [Schema.Union<readonly [Schema.Struct<{
107
+ readonly kind: Schema.Literal<"nix.check">;
108
+ }>, Schema.Struct<{
109
+ readonly kind: Schema.Literal<"nix.apply">;
110
+ readonly ref: Schema.String;
111
+ }>, Schema.Struct<{
112
+ readonly kind: Schema.Literal<"agent.delegate">;
113
+ readonly repository: Schema.String;
114
+ readonly prompt: Schema.String;
115
+ readonly mode: Schema.Literals<readonly ["consult", "review", "work"]>;
116
+ readonly channel: Schema.optionalKey<Schema.Literal<"coordinator_chat">>;
117
+ }>, Schema.Struct<{
118
+ readonly kind: Schema.Literal<"agent.message">;
119
+ readonly session: Schema.String;
120
+ readonly message: Schema.String;
121
+ }>]>, Schema.Struct<{
122
+ readonly kind: Schema.Literal<"browser.mcp.recover">;
123
+ }>]>;
124
+ }>;
125
+ export type JobRequest = typeof JobRequest.Type;
126
+ export declare const JobStatus: Schema.Literals<readonly ["pending_approval", "queued", "running", "succeeded", "failed", "interrupted", "rejected", "expired"]>;
127
+ export type JobStatus = typeof JobStatus.Type;
128
+ export declare const workerObservationMaxLength = 1024;
129
+ export declare const AgentWorkerObservation: Schema.Struct<{
130
+ readonly host: Schema.String;
131
+ readonly agentId: Schema.String;
132
+ readonly name: Schema.String;
133
+ readonly paneId: Schema.String;
134
+ readonly relationship: Schema.optionalKey<Schema.Struct<{
135
+ readonly parentAgentId: Schema.String;
136
+ readonly relation: Schema.Literals<readonly ["delegated", "pair", "review"]>;
137
+ }>>;
138
+ readonly jobId: Schema.String;
139
+ readonly status: Schema.Literals<readonly ["pending_approval", "queued", "running", "succeeded", "failed", "interrupted", "rejected", "expired"]>;
140
+ readonly terminalObservedAt: Schema.NullOr<Schema.Number>;
141
+ }>;
142
+ export type AgentWorkerObservation = typeof AgentWorkerObservation.Type;
143
+ export declare const AgentWorkerObservations: Schema.$Array<Schema.Struct<{
144
+ readonly host: Schema.String;
145
+ readonly agentId: Schema.String;
146
+ readonly name: Schema.String;
147
+ readonly paneId: Schema.String;
148
+ readonly relationship: Schema.optionalKey<Schema.Struct<{
149
+ readonly parentAgentId: Schema.String;
150
+ readonly relation: Schema.Literals<readonly ["delegated", "pair", "review"]>;
151
+ }>>;
152
+ readonly jobId: Schema.String;
153
+ readonly status: Schema.Literals<readonly ["pending_approval", "queued", "running", "succeeded", "failed", "interrupted", "rejected", "expired"]>;
154
+ readonly terminalObservedAt: Schema.NullOr<Schema.Number>;
155
+ }>>;
156
+ export type AgentWorkerObservations = typeof AgentWorkerObservations.Type;
157
+ export declare const JobRecord: Schema.Struct<{
158
+ readonly id: Schema.String;
159
+ readonly createdAt: Schema.Number;
160
+ readonly updatedAt: Schema.Number;
161
+ readonly actor: Schema.String;
162
+ readonly hash: Schema.String;
163
+ readonly approvalNonce: Schema.NullOr<Schema.String>;
164
+ readonly approvalExpiresAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
165
+ readonly approvedBy: Schema.NullOr<Schema.String>;
166
+ readonly approvedAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
167
+ readonly rejectedBy: Schema.optionalKey<Schema.NullOr<Schema.String>>;
168
+ readonly rejectedAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
169
+ readonly expiredAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
170
+ readonly status: Schema.Literals<readonly ["pending_approval", "queued", "running", "succeeded", "failed", "interrupted", "rejected", "expired"]>;
171
+ readonly payload: Schema.Union<readonly [Schema.Union<readonly [Schema.Struct<{
172
+ readonly kind: Schema.Literal<"nix.check">;
173
+ }>, Schema.Struct<{
174
+ readonly kind: Schema.Literal<"nix.apply">;
175
+ readonly ref: Schema.String;
176
+ }>, Schema.Struct<{
177
+ readonly kind: Schema.Literal<"agent.delegate">;
178
+ readonly repository: Schema.String;
179
+ readonly prompt: Schema.String;
180
+ readonly mode: Schema.Literals<readonly ["consult", "review", "work"]>;
181
+ readonly channel: Schema.optionalKey<Schema.Literal<"coordinator_chat">>;
182
+ }>, Schema.Struct<{
183
+ readonly kind: Schema.Literal<"agent.message">;
184
+ readonly session: Schema.String;
185
+ readonly message: Schema.String;
186
+ }>]>, Schema.Struct<{
187
+ readonly kind: Schema.Literal<"browser.mcp.recover">;
188
+ }>]>;
189
+ readonly result: Schema.NullOr<Schema.String>;
190
+ readonly error: Schema.NullOr<Schema.String>;
191
+ readonly worker: Schema.optionalKey<Schema.Struct<{
192
+ readonly host: Schema.String;
193
+ readonly agentId: Schema.String;
194
+ readonly name: Schema.String;
195
+ readonly paneId: Schema.String;
196
+ readonly relationship: Schema.optionalKey<Schema.Struct<{
197
+ readonly parentAgentId: Schema.String;
198
+ readonly relation: Schema.Literals<readonly ["delegated", "pair", "review"]>;
199
+ }>>;
200
+ }>>;
201
+ readonly connectTarget: Schema.optionalKey<Schema.Struct<{
202
+ readonly host: Schema.String;
203
+ readonly agentId: Schema.String;
204
+ readonly url: Schema.String;
205
+ }>>;
206
+ readonly workerTerminalObservedAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
207
+ }>;
208
+ export type JobRecord = typeof JobRecord.Type;
209
+ export declare const PendingApprovalCursor: Schema.Struct<{
210
+ readonly createdAt: Schema.Number;
211
+ readonly id: Schema.String;
212
+ }>;
213
+ export type PendingApprovalCursor = typeof PendingApprovalCursor.Type;
214
+ export declare const JobHistoryPage: Schema.Struct<{
215
+ readonly records: Schema.$Array<Schema.Struct<{
216
+ readonly id: Schema.String;
217
+ readonly createdAt: Schema.Number;
218
+ readonly updatedAt: Schema.Number;
219
+ readonly actor: Schema.String;
220
+ readonly hash: Schema.String;
221
+ readonly approvalNonce: Schema.NullOr<Schema.String>;
222
+ readonly approvalExpiresAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
223
+ readonly approvedBy: Schema.NullOr<Schema.String>;
224
+ readonly approvedAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
225
+ readonly rejectedBy: Schema.optionalKey<Schema.NullOr<Schema.String>>;
226
+ readonly rejectedAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
227
+ readonly expiredAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
228
+ readonly status: Schema.Literals<readonly ["pending_approval", "queued", "running", "succeeded", "failed", "interrupted", "rejected", "expired"]>;
229
+ readonly payload: Schema.Union<readonly [Schema.Union<readonly [Schema.Struct<{
230
+ readonly kind: Schema.Literal<"nix.check">;
231
+ }>, Schema.Struct<{
232
+ readonly kind: Schema.Literal<"nix.apply">;
233
+ readonly ref: Schema.String;
234
+ }>, Schema.Struct<{
235
+ readonly kind: Schema.Literal<"agent.delegate">;
236
+ readonly repository: Schema.String;
237
+ readonly prompt: Schema.String;
238
+ readonly mode: Schema.Literals<readonly ["consult", "review", "work"]>;
239
+ readonly channel: Schema.optionalKey<Schema.Literal<"coordinator_chat">>;
240
+ }>, Schema.Struct<{
241
+ readonly kind: Schema.Literal<"agent.message">;
242
+ readonly session: Schema.String;
243
+ readonly message: Schema.String;
244
+ }>]>, Schema.Struct<{
245
+ readonly kind: Schema.Literal<"browser.mcp.recover">;
246
+ }>]>;
247
+ readonly result: Schema.NullOr<Schema.String>;
248
+ readonly error: Schema.NullOr<Schema.String>;
249
+ readonly worker: Schema.optionalKey<Schema.Struct<{
250
+ readonly host: Schema.String;
251
+ readonly agentId: Schema.String;
252
+ readonly name: Schema.String;
253
+ readonly paneId: Schema.String;
254
+ readonly relationship: Schema.optionalKey<Schema.Struct<{
255
+ readonly parentAgentId: Schema.String;
256
+ readonly relation: Schema.Literals<readonly ["delegated", "pair", "review"]>;
257
+ }>>;
258
+ }>>;
259
+ readonly connectTarget: Schema.optionalKey<Schema.Struct<{
260
+ readonly host: Schema.String;
261
+ readonly agentId: Schema.String;
262
+ readonly url: Schema.String;
263
+ }>>;
264
+ readonly workerTerminalObservedAt: Schema.optionalKey<Schema.NullOr<Schema.Number>>;
265
+ }>>;
266
+ readonly nextCursor: Schema.NullOr<Schema.Struct<{
267
+ readonly createdAt: Schema.Number;
268
+ readonly id: Schema.String;
269
+ }>>;
270
+ }>;
271
+ export type JobHistoryPage = typeof JobHistoryPage.Type;
272
+ export declare const FleetMachine: Schema.Struct<{
273
+ readonly host: Schema.String;
274
+ readonly nodeId: Schema.String;
275
+ }>;
276
+ export type FleetMachine = typeof FleetMachine.Type;
277
+ export declare const HostConfiguration: Schema.Struct<{
278
+ readonly host: Schema.String;
279
+ readonly repository: Schema.String;
280
+ readonly stateDirectory: Schema.String;
281
+ readonly crossHost: Schema.Boolean;
282
+ readonly port: Schema.Number;
283
+ readonly localPort: Schema.Number;
284
+ readonly approvalPort: Schema.Number;
285
+ readonly allowedUsers: Schema.$Array<Schema.String>;
286
+ readonly approvalNodes: Schema.$Array<Schema.String>;
287
+ readonly machines: Schema.$Array<Schema.Struct<{
288
+ readonly host: Schema.String;
289
+ readonly nodeId: Schema.String;
290
+ }>>;
291
+ readonly applyMachines: Schema.$Array<Schema.String>;
292
+ readonly checkCommand: Schema.$Array<Schema.String>;
293
+ readonly applyCommand: Schema.NullOr<Schema.$Array<Schema.String>>;
294
+ readonly browserMcpRecoverCommand: Schema.NullOr<Schema.$Array<Schema.String>>;
295
+ readonly coordinatorCommand: Schema.$Array<Schema.String>;
296
+ readonly herdrCommand: Schema.String;
297
+ readonly tailscaleCommand: Schema.String;
298
+ readonly approvalTls: Schema.NullOr<Schema.Struct<{
299
+ readonly certificatePath: Schema.String;
300
+ readonly privateKeyPath: Schema.String;
301
+ }>>;
302
+ readonly approvalHub: Schema.Struct<{
303
+ readonly host: Schema.String;
304
+ readonly nodeId: Schema.String;
305
+ readonly url: Schema.String;
306
+ }>;
307
+ readonly pushAllowedOrigins: Schema.$Array<Schema.String>;
308
+ readonly pushSubject: Schema.String;
309
+ }>;
310
+ export type HostConfiguration = typeof HostConfiguration.Type;
311
+ export declare const AgentSummary: Schema.Struct<{
312
+ readonly agentId: Schema.NullOr<Schema.String>;
313
+ readonly activityRevision: Schema.Number;
314
+ readonly kind: Schema.String;
315
+ readonly name: Schema.String;
316
+ readonly paneId: Schema.String;
317
+ readonly parentAgentId: Schema.NullOr<Schema.String>;
318
+ readonly relation: Schema.NullOr<Schema.Literals<readonly ["delegated", "pair", "review"]>>;
319
+ readonly status: Schema.String;
320
+ readonly work: Schema.String;
321
+ }>;
322
+ export type AgentSummary = typeof AgentSummary.Type;
323
+ export declare const AgentInventory: Schema.Struct<{
324
+ readonly agents: Schema.$Array<Schema.Struct<{
325
+ readonly agentId: Schema.NullOr<Schema.String>;
326
+ readonly activityRevision: Schema.Number;
327
+ readonly kind: Schema.String;
328
+ readonly name: Schema.String;
329
+ readonly paneId: Schema.String;
330
+ readonly parentAgentId: Schema.NullOr<Schema.String>;
331
+ readonly relation: Schema.NullOr<Schema.Literals<readonly ["delegated", "pair", "review"]>>;
332
+ readonly status: Schema.String;
333
+ readonly work: Schema.String;
334
+ }>>;
335
+ readonly available: Schema.Boolean;
336
+ readonly error: Schema.NullOr<Schema.String>;
337
+ }>;
338
+ export type AgentInventory = typeof AgentInventory.Type;
339
+ export declare const HostDetails: Schema.Struct<{
340
+ readonly applyConfigured: Schema.Boolean;
341
+ readonly branch: Schema.String;
342
+ readonly dirty: Schema.Boolean;
343
+ readonly repository: Schema.String;
344
+ readonly revision: Schema.String;
345
+ }>;
346
+ export type HostDetails = typeof HostDetails.Type;
347
+ export declare const HostStatus: Schema.Struct<{
348
+ readonly applyConfigured: Schema.Boolean;
349
+ readonly branch: Schema.String;
350
+ readonly dirty: Schema.Boolean;
351
+ readonly repository: Schema.String;
352
+ readonly revision: Schema.String;
353
+ readonly herdr: Schema.Struct<{
354
+ readonly agents: Schema.$Array<Schema.Struct<{
355
+ readonly agentId: Schema.NullOr<Schema.String>;
356
+ readonly activityRevision: Schema.Number;
357
+ readonly kind: Schema.String;
358
+ readonly name: Schema.String;
359
+ readonly paneId: Schema.String;
360
+ readonly parentAgentId: Schema.NullOr<Schema.String>;
361
+ readonly relation: Schema.NullOr<Schema.Literals<readonly ["delegated", "pair", "review"]>>;
362
+ readonly status: Schema.String;
363
+ readonly work: Schema.String;
364
+ }>>;
365
+ readonly available: Schema.Boolean;
366
+ readonly error: Schema.NullOr<Schema.String>;
367
+ }>;
368
+ readonly host: Schema.String;
369
+ }>;
370
+ export type HostStatus = typeof HostStatus.Type;
371
+ export declare const requiresApproval: (payload: JobPayload) => boolean;
372
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/dist/model.js ADDED
@@ -0,0 +1,240 @@
1
+ import { Schema } from "effect";
2
+ import { fleetJobRecordMaxBytes } from "./limits.js";
3
+ export const JobIdentifier = Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(256), Schema.isPattern(/^(?:[^\uD800-\uDFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF])*$/));
4
+ const WorkerTimestamp = Schema.Number.check(Schema.isInt(), Schema.isBetween({ minimum: 0, maximum: 8_640_000_000_000_000 }));
5
+ export const JobHash = Schema.String.check(Schema.isMinLength(64), Schema.isMaxLength(64), Schema.isPattern(/^[0-9a-f]{64}$/));
6
+ export const DelegateMode = Schema.Literals(["consult", "review", "work"]);
7
+ export const AgentStableId = Schema.String.check(Schema.isMinLength(7), Schema.isMaxLength(256), Schema.isPattern(/^agent-[A-Za-z0-9_-]+$/));
8
+ export const FleetHostName = Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(253), Schema.isPattern(/^[A-Za-z0-9](?:[A-Za-z0-9.-]*[A-Za-z0-9])?$/));
9
+ export const AgentWorkerRelationship = Schema.Struct({
10
+ parentAgentId: AgentStableId,
11
+ relation: Schema.Literals(["delegated", "pair", "review"])
12
+ });
13
+ export const AgentWorkerIdentity = Schema.Struct({
14
+ host: FleetHostName,
15
+ agentId: AgentStableId,
16
+ name: Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(256), Schema.isPattern(/^[^\p{Cc}]+$/u)),
17
+ paneId: Schema.String.check(Schema.isMaxLength(64), Schema.isPattern(/^w[0-9A-Z]+:p[0-9A-Z]+$/)),
18
+ relationship: Schema.optionalKey(AgentWorkerRelationship)
19
+ });
20
+ const HttpsOrigin = Schema.String.check(Schema.isMaxLength(2_048), Schema.isPattern(/^https:\/\/[^/?#@]+$/), Schema.makeFilter((value) => URL.canParse(value) && new URL(value).protocol === "https:", { expected: "a parseable HTTPS origin" }));
21
+ const VapidSubject = Schema.String.check(Schema.isMaxLength(2_048), Schema.isPattern(/^(?:mailto:\S+|https:\/\/[^/?#\s]+(?:[/?#]\S*)?)$/), Schema.makeFilter((value) => {
22
+ if (!URL.canParse(value))
23
+ return false;
24
+ const url = new URL(value);
25
+ return url.protocol === "mailto:"
26
+ ? url.pathname.length > 0
27
+ : url.protocol === "https:" && url.hostname.length > 0;
28
+ }, { expected: "a complete mailto or HTTPS URI" }));
29
+ const connectUrlFor = (host, agentId) => `/connect/?agent=${encodeURIComponent(agentId)}&host=${encodeURIComponent(host)}`;
30
+ export const AgentConnectTarget = Schema.Struct({
31
+ host: AgentWorkerIdentity.fields.host,
32
+ agentId: AgentStableId,
33
+ url: Schema.String.check(Schema.isMaxLength(1_024), Schema.isPattern(/^\/connect\/\?/))
34
+ }).check(Schema.makeFilter((target) => target.url === connectUrlFor(target.host, target.agentId), { expected: "canonical Connect URL for the exact host and stable agent ID" }));
35
+ export const agentConnectTarget = (worker) => ({
36
+ agentId: worker.agentId,
37
+ host: worker.host,
38
+ url: connectUrlFor(worker.host, worker.agentId)
39
+ });
40
+ const NoNullByte = Schema.makeFilter((value) => !value.includes("\u0000"), { expected: "text without a null byte" });
41
+ export const JobActor = Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(256), NoNullByte);
42
+ const JobPath = Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(2 * 1_024), NoNullByte);
43
+ /**
44
+ * Leaves headroom below Linux's single-argument limit after JSON escaping and
45
+ * worst-case UTF-8 encoding by the command adapter.
46
+ */
47
+ export const jobTextMaxLength = 16 * 1_024;
48
+ const JobText = Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(jobTextMaxLength), NoNullByte);
49
+ const HerdrTarget = Schema.String.check(Schema.isMaxLength(64), Schema.isPattern(/^(?:[a-z][a-z0-9_-]{0,31}(?:@w[0-9A-Z]+:p[0-9A-Z]+)?|w[0-9A-Z]+:p[0-9A-Z]+|[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12})$/));
50
+ export const NixCheck = Schema.Struct({ kind: Schema.Literal("nix.check") });
51
+ export const NixApply = Schema.Struct({
52
+ kind: Schema.Literal("nix.apply"),
53
+ ref: Schema.String.check(Schema.isNonEmpty(), Schema.isMaxLength(4 * 1_024), NoNullByte)
54
+ });
55
+ export const AgentDelegate = Schema.Struct({
56
+ kind: Schema.Literal("agent.delegate"),
57
+ repository: JobPath,
58
+ prompt: JobText,
59
+ mode: DelegateMode,
60
+ channel: Schema.optionalKey(Schema.Literal("coordinator_chat"))
61
+ });
62
+ export const AgentMessage = Schema.Struct({
63
+ kind: Schema.Literal("agent.message"),
64
+ session: HerdrTarget,
65
+ message: JobText
66
+ });
67
+ export const BrowserMcpRecover = Schema.Struct({
68
+ kind: Schema.Literal("browser.mcp.recover")
69
+ });
70
+ export const CoreJobPayload = Schema.Union([
71
+ NixCheck,
72
+ NixApply,
73
+ AgentDelegate,
74
+ AgentMessage
75
+ ]);
76
+ export const LocalJobPayload = BrowserMcpRecover;
77
+ export const JobPayload = Schema.Union([
78
+ CoreJobPayload,
79
+ LocalJobPayload
80
+ ]);
81
+ export const JobRequest = Schema.Struct({ payload: JobPayload });
82
+ export const JobStatus = Schema.Literals([
83
+ "pending_approval",
84
+ "queued",
85
+ "running",
86
+ "succeeded",
87
+ "failed",
88
+ "interrupted",
89
+ "rejected",
90
+ "expired"
91
+ ]);
92
+ export const workerObservationMaxLength = 1_024;
93
+ export const AgentWorkerObservation = Schema.Struct({
94
+ ...AgentWorkerIdentity.fields,
95
+ jobId: JobIdentifier,
96
+ status: JobStatus,
97
+ terminalObservedAt: Schema.NullOr(WorkerTimestamp)
98
+ });
99
+ export const AgentWorkerObservations = Schema.Array(AgentWorkerObservation).check(Schema.isMaxLength(workerObservationMaxLength), Schema.makeFilter((observations) => {
100
+ const keys = new Set(observations.map(({ agentId, host, jobId }) => `${host.toLowerCase()}\u0000${agentId}\u0000${jobId}`));
101
+ return keys.size === observations.length;
102
+ }, { expected: "worker observations unique by host, agent ID, and job ID" }));
103
+ export const JobRecord = Schema.Struct({
104
+ id: JobIdentifier,
105
+ createdAt: Schema.Number,
106
+ updatedAt: Schema.Number,
107
+ actor: JobActor,
108
+ hash: JobHash,
109
+ approvalNonce: Schema.NullOr(JobIdentifier),
110
+ approvalExpiresAt: Schema.optionalKey(Schema.NullOr(Schema.Number)),
111
+ approvedBy: Schema.NullOr(JobActor),
112
+ approvedAt: Schema.optionalKey(Schema.NullOr(Schema.Number)),
113
+ rejectedBy: Schema.optionalKey(Schema.NullOr(JobActor)),
114
+ rejectedAt: Schema.optionalKey(Schema.NullOr(Schema.Number)),
115
+ expiredAt: Schema.optionalKey(Schema.NullOr(Schema.Number)),
116
+ status: JobStatus,
117
+ payload: JobPayload,
118
+ result: Schema.NullOr(Schema.String),
119
+ error: Schema.NullOr(Schema.String),
120
+ worker: Schema.optionalKey(AgentWorkerIdentity),
121
+ connectTarget: Schema.optionalKey(AgentConnectTarget),
122
+ workerTerminalObservedAt: Schema.optionalKey(Schema.NullOr(WorkerTimestamp))
123
+ }).check(Schema.makeFilter((record) => ((record.worker === undefined && record.connectTarget === undefined) ||
124
+ (record.worker !== undefined &&
125
+ record.connectTarget !== undefined &&
126
+ record.connectTarget.host === record.worker.host &&
127
+ record.connectTarget.agentId === record.worker.agentId)) &&
128
+ (record.workerTerminalObservedAt === undefined ||
129
+ record.workerTerminalObservedAt === null ||
130
+ (record.worker !== undefined &&
131
+ (record.status === "succeeded" || record.status === "failed" || record.status === "interrupted"))), { expected: "exact Connect target and terminal evidence only for the matching started worker" }), Schema.makeFilter((record) => new TextEncoder().encode(JSON.stringify(record)).byteLength <=
132
+ fleetJobRecordMaxBytes, { expected: `serialized job record at most ${fleetJobRecordMaxBytes} bytes` }));
133
+ export const PendingApprovalCursor = Schema.Struct({
134
+ createdAt: Schema.Number,
135
+ id: JobIdentifier
136
+ });
137
+ export const JobHistoryPage = Schema.Struct({
138
+ records: Schema.Array(JobRecord),
139
+ nextCursor: Schema.NullOr(PendingApprovalCursor)
140
+ });
141
+ export const FleetMachine = Schema.Struct({
142
+ host: FleetHostName,
143
+ nodeId: JobIdentifier
144
+ });
145
+ const FleetMachines = Schema.Array(FleetMachine).check(Schema.makeFilter((machines) => {
146
+ const hosts = new Set(machines.map(({ host }) => host.toLowerCase()));
147
+ const nodeIds = new Set(machines.map(({ nodeId }) => nodeId));
148
+ return hosts.size === machines.length && nodeIds.size === machines.length;
149
+ }, { expected: "fleet machines unique by case-insensitive host and stable node ID" }));
150
+ const CommandArgument = Schema.String.check(Schema.isMaxLength(jobTextMaxLength), NoNullByte);
151
+ const Command = Schema.Array(CommandArgument).check(Schema.isMinLength(1), Schema.makeFilter((command) => command[0] !== undefined && command[0].length > 0, { expected: "a command with a non-empty executable" }));
152
+ const TcpPort = Schema.Number.check(Schema.isInt(), Schema.isBetween({ minimum: 1, maximum: 65_535 }));
153
+ export const HostConfiguration = Schema.Struct({
154
+ host: FleetHostName,
155
+ repository: Schema.String,
156
+ stateDirectory: Schema.String,
157
+ crossHost: Schema.Boolean,
158
+ port: TcpPort,
159
+ localPort: TcpPort,
160
+ approvalPort: TcpPort,
161
+ allowedUsers: Schema.Array(Schema.String),
162
+ approvalNodes: Schema.Array(Schema.String),
163
+ machines: FleetMachines,
164
+ applyMachines: Schema.Array(FleetHostName),
165
+ checkCommand: Command,
166
+ applyCommand: Schema.NullOr(Command),
167
+ browserMcpRecoverCommand: Schema.NullOr(Command),
168
+ coordinatorCommand: Command,
169
+ herdrCommand: Schema.String,
170
+ tailscaleCommand: Schema.String,
171
+ approvalTls: Schema.NullOr(Schema.Struct({
172
+ certificatePath: Schema.String.check(Schema.isMaxLength(1_024), Schema.isPattern(/^\//)),
173
+ privateKeyPath: Schema.String.check(Schema.isMaxLength(1_024), Schema.isPattern(/^\//))
174
+ })),
175
+ approvalHub: Schema.Struct({
176
+ host: FleetHostName,
177
+ nodeId: Schema.String.check(Schema.isMinLength(1), Schema.isMaxLength(256)),
178
+ url: Schema.String.check(Schema.isMaxLength(2_048), Schema.isPattern(/^https:\/\/[^/]+\/$/))
179
+ }),
180
+ pushAllowedOrigins: Schema.Array(HttpsOrigin),
181
+ pushSubject: VapidSubject
182
+ }).check(Schema.makeFilter((configuration) => {
183
+ const configuredHosts = new Set(configuration.machines.map(({ host }) => host.toLowerCase()));
184
+ const applyHosts = configuration.applyMachines.map((host) => host.toLowerCase());
185
+ const localConfigured = configuredHosts.has(configuration.host.toLowerCase());
186
+ const approvalHubConfigured = configuration.machines.some(({ host, nodeId }) => host.toLowerCase() === configuration.approvalHub.host.toLowerCase() &&
187
+ nodeId === configuration.approvalHub.nodeId);
188
+ const approvalHubUrl = URL.canParse(configuration.approvalHub.url)
189
+ ? new URL(configuration.approvalHub.url)
190
+ : null;
191
+ const approvalHubPort = approvalHubUrl === null || approvalHubUrl.port === ""
192
+ ? 443
193
+ : Number(approvalHubUrl.port);
194
+ return new Set(applyHosts).size === applyHosts.length &&
195
+ applyHosts.every((host) => configuredHosts.has(host)) &&
196
+ localConfigured &&
197
+ approvalHubUrl !== null &&
198
+ approvalHubPort === configuration.approvalPort &&
199
+ (!configuration.crossHost ||
200
+ (approvalHubConfigured &&
201
+ configuration.port !== configuration.approvalPort));
202
+ }, {
203
+ expected: "valid fleet targets, distinct cross-host listeners, and an approval hub URL whose effective port matches the TLS listener"
204
+ }));
205
+ export const AgentSummary = Schema.Struct({
206
+ agentId: Schema.NullOr(AgentStableId),
207
+ activityRevision: Schema.Number,
208
+ kind: Schema.String,
209
+ name: AgentWorkerIdentity.fields.name,
210
+ paneId: AgentWorkerIdentity.fields.paneId,
211
+ parentAgentId: Schema.NullOr(AgentStableId),
212
+ relation: Schema.NullOr(Schema.Literals(["delegated", "pair", "review"])),
213
+ status: Schema.String,
214
+ work: Schema.String
215
+ }).check(Schema.makeFilter((agent) => (agent.parentAgentId === null && agent.relation === null) ||
216
+ (agent.agentId !== null &&
217
+ agent.parentAgentId !== null &&
218
+ agent.relation !== null), { expected: "complete agent relationship metadata or no relationship" }));
219
+ export const AgentInventory = Schema.Struct({
220
+ agents: Schema.Array(AgentSummary),
221
+ available: Schema.Boolean,
222
+ error: Schema.NullOr(Schema.String)
223
+ });
224
+ export const HostDetails = Schema.Struct({
225
+ applyConfigured: Schema.Boolean,
226
+ branch: Schema.String,
227
+ dirty: Schema.Boolean,
228
+ repository: Schema.String,
229
+ revision: Schema.String
230
+ });
231
+ export const HostStatus = Schema.Struct({
232
+ ...HostDetails.fields,
233
+ herdr: AgentInventory,
234
+ host: FleetHostName
235
+ });
236
+ export const requiresApproval = (payload) => payload.kind === "nix.apply" ||
237
+ payload.kind === "browser.mcp.recover" ||
238
+ payload.kind === "agent.message" ||
239
+ (payload.kind === "agent.delegate" && payload.mode === "work");
240
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Effect, Schema } from "effect";
2
+ import type * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
3
+ import { FleetResponseBodyError } from "./errors.js";
4
+ export { fleetResponseBodyMaxBytes } from "./limits.js";
5
+ export declare const boundedResponseText: (response: HttpClientResponse.HttpClientResponse, maximumBytes?: any) => Effect.Effect<string, FleetResponseBodyError, never>;
6
+ export declare const decodeBoundedResponseJson: <A>(response: HttpClientResponse.HttpClientResponse, schema: Schema.Codec<A, unknown, never, never>, maximumBytes?: number | undefined) => Effect.Effect<A, FleetResponseBodyError, never>;
7
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../src/response.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,EAAU,MAAM,QAAQ,CAAA;AAC1D,OAAO,KAAK,KAAK,kBAAkB,MAAM,yCAAyC,CAAA;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAGpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAA;AASvD,eAAO,MAAM,mBAAmB,+HAqC9B,CAAA;AAEF,eAAO,MAAM,yBAAyB,GAAmD,CAAC,wLAgBxF,CAAA"}