@agentmesh-p2p/sdk 0.0.0-stage → 0.1.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.
Files changed (68) hide show
  1. package/README.md +182 -2
  2. package/dist/auth.d.ts +66 -0
  3. package/dist/auth.js +164 -0
  4. package/dist/authorizer.d.ts +41 -0
  5. package/dist/authorizer.js +201 -0
  6. package/dist/base58.d.ts +2 -0
  7. package/dist/base58.js +57 -0
  8. package/dist/biscuit.d.ts +75 -0
  9. package/dist/biscuit.js +250 -0
  10. package/dist/bytes.d.ts +10 -0
  11. package/dist/bytes.js +51 -0
  12. package/dist/challenges.d.ts +16 -0
  13. package/dist/challenges.js +55 -0
  14. package/dist/conformance-join.d.ts +1 -0
  15. package/dist/conformance-join.js +257 -0
  16. package/dist/conformance.d.ts +1 -0
  17. package/dist/conformance.js +60 -0
  18. package/dist/controlplane.d.ts +123 -0
  19. package/dist/controlplane.js +368 -0
  20. package/dist/credential.d.ts +66 -0
  21. package/dist/credential.js +124 -0
  22. package/dist/discovery.d.ts +50 -0
  23. package/dist/discovery.js +150 -0
  24. package/dist/gen/agentmesh_pb.d.ts +2740 -0
  25. package/dist/gen/agentmesh_pb.js +591 -0
  26. package/dist/gen/datalog.d.ts +39 -0
  27. package/dist/gen/datalog.js +84 -0
  28. package/dist/host.d.ts +47 -0
  29. package/dist/host.js +109 -0
  30. package/dist/http1.d.ts +68 -0
  31. package/dist/http1.js +371 -0
  32. package/dist/identity.d.ts +31 -0
  33. package/dist/identity.js +125 -0
  34. package/dist/index.d.ts +18 -0
  35. package/dist/index.js +30 -0
  36. package/dist/libp2p-http-node.d.ts +17 -0
  37. package/dist/libp2p-http-node.js +116 -0
  38. package/dist/libp2p-http.d.ts +165 -0
  39. package/dist/libp2p-http.js +581 -0
  40. package/dist/mcp.d.ts +67 -0
  41. package/dist/mcp.js +157 -0
  42. package/dist/mesh.d.ts +151 -0
  43. package/dist/mesh.js +370 -0
  44. package/dist/platform/ingress.browser.d.ts +1 -0
  45. package/dist/platform/ingress.browser.js +16 -0
  46. package/dist/platform/ingress.d.ts +1 -0
  47. package/dist/platform/ingress.js +15 -0
  48. package/dist/platform/state.browser.d.ts +5 -0
  49. package/dist/platform/state.browser.js +47 -0
  50. package/dist/platform/state.d.ts +5 -0
  51. package/dist/platform/state.js +44 -0
  52. package/dist/platform/transports.browser.d.ts +3 -0
  53. package/dist/platform/transports.browser.js +27 -0
  54. package/dist/platform/transports.d.ts +3 -0
  55. package/dist/platform/transports.js +27 -0
  56. package/dist/platform/types.d.ts +7 -0
  57. package/dist/platform/types.js +14 -0
  58. package/dist/platform/wasm.browser.d.ts +2 -0
  59. package/dist/platform/wasm.browser.js +16 -0
  60. package/dist/platform/wasm.d.ts +2 -0
  61. package/dist/platform/wasm.js +56 -0
  62. package/dist/session.d.ts +316 -0
  63. package/dist/session.js +1269 -0
  64. package/dist/sync.d.ts +41 -0
  65. package/dist/sync.js +111 -0
  66. package/dist/tar.d.ts +25 -0
  67. package/dist/tar.js +406 -0
  68. package/package.json +74 -4
@@ -0,0 +1,2740 @@
1
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
2
+ import type { Duration, Timestamp } from "@bufbuild/protobuf/wkt";
3
+ import type { Message } from "@bufbuild/protobuf";
4
+ /**
5
+ * Describes the file agentmesh.proto.
6
+ */
7
+ export declare const file_agentmesh: GenFile;
8
+ /**
9
+ * @generated from message agentmesh.v1.AuthFrame
10
+ */
11
+ export type AuthFrame = Message<"agentmesh.v1.AuthFrame"> & {
12
+ /**
13
+ * @generated from field: bytes biscuit = 1;
14
+ */
15
+ biscuit: Uint8Array;
16
+ /**
17
+ * Optional: specific service requested
18
+ *
19
+ * @generated from field: string target_service = 2;
20
+ */
21
+ targetService: string;
22
+ };
23
+ /**
24
+ * Describes the message agentmesh.v1.AuthFrame.
25
+ * Use `create(AuthFrameSchema)` to create a new message.
26
+ */
27
+ export declare const AuthFrameSchema: GenMessage<AuthFrame>;
28
+ /**
29
+ * @generated from message agentmesh.v1.AuthResponse
30
+ */
31
+ export type AuthResponse = Message<"agentmesh.v1.AuthResponse"> & {
32
+ /**
33
+ * @generated from field: bool success = 1;
34
+ */
35
+ success: boolean;
36
+ /**
37
+ * populated only if success is false
38
+ *
39
+ * @generated from field: string error = 2;
40
+ */
41
+ error: string;
42
+ /**
43
+ * The server's own Biscuit token (for mutual auth)
44
+ *
45
+ * @generated from field: bytes biscuit = 3;
46
+ */
47
+ biscuit: Uint8Array;
48
+ };
49
+ /**
50
+ * Describes the message agentmesh.v1.AuthResponse.
51
+ * Use `create(AuthResponseSchema)` to create a new message.
52
+ */
53
+ export declare const AuthResponseSchema: GenMessage<AuthResponse>;
54
+ /**
55
+ * RouterGoAway is what a router sends, on GoAwayProtocolID, to a member it
56
+ * will no longer hold: it is stopping, or it holds more members than it is
57
+ * sized for. The member attaches to another router and does not come back
58
+ * to this one before retry_after has passed. A member that does not speak
59
+ * the protocol sees its connection close instead.
60
+ *
61
+ * @generated from message agentmesh.v1.RouterGoAway
62
+ */
63
+ export type RouterGoAway = Message<"agentmesh.v1.RouterGoAway"> & {
64
+ /**
65
+ * @generated from field: agentmesh.v1.RouterGoAway.Reason reason = 1;
66
+ */
67
+ reason: RouterGoAway_Reason;
68
+ /**
69
+ * @generated from field: google.protobuf.Duration retry_after = 2;
70
+ */
71
+ retryAfter?: Duration | undefined;
72
+ };
73
+ /**
74
+ * Describes the message agentmesh.v1.RouterGoAway.
75
+ * Use `create(RouterGoAwaySchema)` to create a new message.
76
+ */
77
+ export declare const RouterGoAwaySchema: GenMessage<RouterGoAway>;
78
+ /**
79
+ * @generated from enum agentmesh.v1.RouterGoAway.Reason
80
+ */
81
+ export declare enum RouterGoAway_Reason {
82
+ /**
83
+ * @generated from enum value: REASON_UNSPECIFIED = 0;
84
+ */
85
+ REASON_UNSPECIFIED = 0,
86
+ /**
87
+ * the router is shutting down
88
+ *
89
+ * @generated from enum value: DRAINING = 1;
90
+ */
91
+ DRAINING = 1,
92
+ /**
93
+ * the router is above its high watermark
94
+ *
95
+ * @generated from enum value: OVERLOADED = 2;
96
+ */
97
+ OVERLOADED = 2
98
+ }
99
+ /**
100
+ * Describes the enum agentmesh.v1.RouterGoAway.Reason.
101
+ */
102
+ export declare const RouterGoAway_ReasonSchema: GenEnum<RouterGoAway_Reason>;
103
+ /**
104
+ * @generated from message agentmesh.v1.MeshEvent
105
+ */
106
+ export type MeshEvent = Message<"agentmesh.v1.MeshEvent"> & {
107
+ /**
108
+ * @generated from field: agentmesh.v1.MeshEvent.Type type = 1;
109
+ */
110
+ type: MeshEvent_Type;
111
+ /**
112
+ * @generated from field: string peer_id = 2;
113
+ */
114
+ peerId: string;
115
+ /**
116
+ * When the control plane recorded the event. Receivers ignore an event
117
+ * further than a few minutes from their clock and, for bans, one older
118
+ * than the last they applied for the peer.
119
+ *
120
+ * @generated from field: google.protobuf.Timestamp event_time = 3;
121
+ */
122
+ eventTime?: Timestamp | undefined;
123
+ /**
124
+ * @generated from field: bytes new_public_key = 4;
125
+ */
126
+ newPublicKey: Uint8Array;
127
+ /**
128
+ * @generated from field: bytes signature = 5;
129
+ */
130
+ signature: Uint8Array;
131
+ };
132
+ /**
133
+ * Describes the message agentmesh.v1.MeshEvent.
134
+ * Use `create(MeshEventSchema)` to create a new message.
135
+ */
136
+ export declare const MeshEventSchema: GenMessage<MeshEvent>;
137
+ /**
138
+ * @generated from enum agentmesh.v1.MeshEvent.Type
139
+ */
140
+ export declare enum MeshEvent_Type {
141
+ /**
142
+ * @generated from enum value: BANNED = 0;
143
+ */
144
+ BANNED = 0,
145
+ /**
146
+ * @generated from enum value: KEY_ROTATION = 1;
147
+ */
148
+ KEY_ROTATION = 1,
149
+ /**
150
+ * @generated from enum value: POLICY_UPDATE = 2;
151
+ */
152
+ POLICY_UPDATE = 2
153
+ }
154
+ /**
155
+ * Describes the enum agentmesh.v1.MeshEvent.Type.
156
+ */
157
+ export declare const MeshEvent_TypeSchema: GenEnum<MeshEvent_Type>;
158
+ /**
159
+ * @generated from message agentmesh.v1.EnrollRequest
160
+ */
161
+ export type EnrollRequest = Message<"agentmesh.v1.EnrollRequest"> & {
162
+ /**
163
+ * @generated from field: string jwt = 1;
164
+ */
165
+ jwt: string;
166
+ /**
167
+ * @generated from field: string peer_id = 2;
168
+ */
169
+ peerId: string;
170
+ /**
171
+ * @generated from field: bytes public_key = 3;
172
+ */
173
+ publicKey: Uint8Array;
174
+ /**
175
+ * @generated from field: string requested_role = 4;
176
+ */
177
+ requestedRole: string;
178
+ /**
179
+ * Operator-declared labels (e.g. key "region", see api/labels.go).
180
+ * Validated fail-closed by the control plane and, once attested by the
181
+ * enrollment flow's gates, minted as signed label() facts in the
182
+ * biscuit. Empty means no claims.
183
+ *
184
+ * @generated from field: map<string, string> labels = 5;
185
+ */
186
+ labels: {
187
+ [key: string]: string;
188
+ };
189
+ /**
190
+ * Proof of possession of public_key's private half: challenge_unix_ms is
191
+ * the caller's clock in unix milliseconds and challenge_signature signs
192
+ * the UTF-8 bytes of "mesh:register:<peer_id>:<challenge_unix_ms>". It is
193
+ * an int64 because it is the number in the signed text, not an instant
194
+ * for display. Required, and peer_id must be derived from public_key.
195
+ * The JWT proves who is asking; this proves they hold the key they are
196
+ * asking to bind, so an identity cannot register (and overwrite) another
197
+ * node's peer_id.
198
+ *
199
+ * @generated from field: int64 challenge_unix_ms = 6;
200
+ */
201
+ challengeUnixMs: bigint;
202
+ /**
203
+ * @generated from field: bytes challenge_signature = 7;
204
+ */
205
+ challengeSignature: Uint8Array;
206
+ };
207
+ /**
208
+ * Describes the message agentmesh.v1.EnrollRequest.
209
+ * Use `create(EnrollRequestSchema)` to create a new message.
210
+ */
211
+ export declare const EnrollRequestSchema: GenMessage<EnrollRequest>;
212
+ /**
213
+ * @generated from message agentmesh.v1.EnrollResponse
214
+ */
215
+ export type EnrollResponse = Message<"agentmesh.v1.EnrollResponse"> & {
216
+ /**
217
+ * @generated from field: bytes biscuit_token = 1;
218
+ */
219
+ biscuitToken: Uint8Array;
220
+ /**
221
+ * @generated from field: string error_message = 2;
222
+ */
223
+ errorMessage: string;
224
+ /**
225
+ * @generated from field: bytes control_plane_public_key = 3;
226
+ */
227
+ controlPlanePublicKey: Uint8Array;
228
+ /**
229
+ * @generated from field: repeated string router_addresses = 4;
230
+ */
231
+ routerAddresses: string[];
232
+ /**
233
+ * @generated from field: google.protobuf.Timestamp expire_time = 5;
234
+ */
235
+ expireTime?: Timestamp | undefined;
236
+ };
237
+ /**
238
+ * Describes the message agentmesh.v1.EnrollResponse.
239
+ * Use `create(EnrollResponseSchema)` to create a new message.
240
+ */
241
+ export declare const EnrollResponseSchema: GenMessage<EnrollResponse>;
242
+ /**
243
+ * @generated from message agentmesh.v1.BootstrapEnrollRequest
244
+ */
245
+ export type BootstrapEnrollRequest = Message<"agentmesh.v1.BootstrapEnrollRequest"> & {
246
+ /**
247
+ * @generated from field: string bootstrap_token = 1;
248
+ */
249
+ bootstrapToken: string;
250
+ /**
251
+ * @generated from field: string peer_id = 2;
252
+ */
253
+ peerId: string;
254
+ /**
255
+ * @generated from field: bytes public_key = 3;
256
+ */
257
+ publicKey: Uint8Array;
258
+ /**
259
+ * @generated from field: string requested_role = 4;
260
+ */
261
+ requestedRole: string;
262
+ /**
263
+ * Operator-declared labels; the admin approving the enrollment attests
264
+ * them (see EnrollRequest.labels).
265
+ *
266
+ * @generated from field: map<string, string> labels = 5;
267
+ */
268
+ labels: {
269
+ [key: string]: string;
270
+ };
271
+ /**
272
+ * Proof of possession of public_key's private half: challenge_unix_ms is
273
+ * the caller's clock in unix milliseconds and challenge_signature signs
274
+ * the UTF-8 bytes of "mesh:enroll:<peer_id>:<challenge_unix_ms>". Required,
275
+ * and peer_id must be derived from public_key: this is what entitles a
276
+ * repeated POST /enroll to re-fetch an existing enrollment's biscuit, so
277
+ * a bootstrap token alone must never satisfy it.
278
+ *
279
+ * @generated from field: int64 challenge_unix_ms = 6;
280
+ */
281
+ challengeUnixMs: bigint;
282
+ /**
283
+ * @generated from field: bytes challenge_signature = 7;
284
+ */
285
+ challengeSignature: Uint8Array;
286
+ };
287
+ /**
288
+ * Describes the message agentmesh.v1.BootstrapEnrollRequest.
289
+ * Use `create(BootstrapEnrollRequestSchema)` to create a new message.
290
+ */
291
+ export declare const BootstrapEnrollRequestSchema: GenMessage<BootstrapEnrollRequest>;
292
+ /**
293
+ * BootstrapEnrollResponse answers POST /enroll and GET /enroll/status.
294
+ * Polling GET /enroll/status requires proof of possession of the key
295
+ * submitted at /enroll: alongside the `peer_id` query parameter, the caller
296
+ * sends the X-Mesh-Challenge-Ts header (unix milliseconds) and the
297
+ * X-Mesh-Challenge-Sig header (unpadded base64url signature over the UTF-8
298
+ * bytes of "mesh:enroll-status:<peer_id>:<ts>").
299
+ *
300
+ * @generated from message agentmesh.v1.BootstrapEnrollResponse
301
+ */
302
+ export type BootstrapEnrollResponse = Message<"agentmesh.v1.BootstrapEnrollResponse"> & {
303
+ /**
304
+ * @generated from field: agentmesh.v1.EnrollmentStatus status = 1;
305
+ */
306
+ status: EnrollmentStatus;
307
+ /**
308
+ * Populated only if APPROVED
309
+ *
310
+ * @generated from field: bytes biscuit_token = 2;
311
+ */
312
+ biscuitToken: Uint8Array;
313
+ /**
314
+ * Recommended polling wait time
315
+ *
316
+ * @generated from field: int32 poll_interval_seconds = 3;
317
+ */
318
+ pollIntervalSeconds: number;
319
+ /**
320
+ * @generated from field: string error_message = 4;
321
+ */
322
+ errorMessage: string;
323
+ /**
324
+ * Populated only if APPROVED
325
+ *
326
+ * @generated from field: bytes control_plane_public_key = 5;
327
+ */
328
+ controlPlanePublicKey: Uint8Array;
329
+ /**
330
+ * Populated only if APPROVED
331
+ *
332
+ * @generated from field: repeated string router_addresses = 6;
333
+ */
334
+ routerAddresses: string[];
335
+ /**
336
+ * Populated only if APPROVED
337
+ *
338
+ * @generated from field: google.protobuf.Timestamp expire_time = 7;
339
+ */
340
+ expireTime?: Timestamp | undefined;
341
+ };
342
+ /**
343
+ * Describes the message agentmesh.v1.BootstrapEnrollResponse.
344
+ * Use `create(BootstrapEnrollResponseSchema)` to create a new message.
345
+ */
346
+ export declare const BootstrapEnrollResponseSchema: GenMessage<BootstrapEnrollResponse>;
347
+ /**
348
+ * @generated from message agentmesh.v1.ServiceInfo
349
+ */
350
+ export type ServiceInfo = Message<"agentmesh.v1.ServiceInfo"> & {
351
+ /**
352
+ * @generated from field: agentmesh.v1.ServiceType type = 1;
353
+ */
354
+ type: ServiceType;
355
+ /**
356
+ * @generated from field: string name = 2;
357
+ */
358
+ name: string;
359
+ /**
360
+ * @generated from field: string description = 3;
361
+ */
362
+ description: string;
363
+ };
364
+ /**
365
+ * Describes the message agentmesh.v1.ServiceInfo.
366
+ * Use `create(ServiceInfoSchema)` to create a new message.
367
+ */
368
+ export declare const ServiceInfoSchema: GenMessage<ServiceInfo>;
369
+ /**
370
+ * @generated from message agentmesh.v1.CommandBackend
371
+ */
372
+ export type CommandBackend = Message<"agentmesh.v1.CommandBackend"> & {
373
+ /**
374
+ * @generated from field: repeated string command = 1;
375
+ */
376
+ command: string[];
377
+ /**
378
+ * @generated from field: map<string, string> env = 2;
379
+ */
380
+ env: {
381
+ [key: string]: string;
382
+ };
383
+ };
384
+ /**
385
+ * Describes the message agentmesh.v1.CommandBackend.
386
+ * Use `create(CommandBackendSchema)` to create a new message.
387
+ */
388
+ export declare const CommandBackendSchema: GenMessage<CommandBackend>;
389
+ /**
390
+ * @generated from message agentmesh.v1.RegisterServiceRequest
391
+ */
392
+ export type RegisterServiceRequest = Message<"agentmesh.v1.RegisterServiceRequest"> & {
393
+ /**
394
+ * @generated from field: agentmesh.v1.ServiceInfo service = 1;
395
+ */
396
+ service?: ServiceInfo | undefined;
397
+ /**
398
+ * @generated from oneof agentmesh.v1.RegisterServiceRequest.backend
399
+ */
400
+ backend: {
401
+ /**
402
+ * @generated from field: string target_url = 2;
403
+ */
404
+ value: string;
405
+ case: "targetUrl";
406
+ } | {
407
+ /**
408
+ * @generated from field: agentmesh.v1.CommandBackend command = 3;
409
+ */
410
+ value: CommandBackend;
411
+ case: "command";
412
+ } | {
413
+ case: undefined;
414
+ value?: undefined;
415
+ };
416
+ };
417
+ /**
418
+ * Describes the message agentmesh.v1.RegisterServiceRequest.
419
+ * Use `create(RegisterServiceRequestSchema)` to create a new message.
420
+ */
421
+ export declare const RegisterServiceRequestSchema: GenMessage<RegisterServiceRequest>;
422
+ /**
423
+ * @generated from message agentmesh.v1.DiscoveredProvider
424
+ */
425
+ export type DiscoveredProvider = Message<"agentmesh.v1.DiscoveredProvider"> & {
426
+ /**
427
+ * @generated from field: string peer_id = 1;
428
+ */
429
+ peerId: string;
430
+ /**
431
+ * @generated from field: string local_proxy_url = 2;
432
+ */
433
+ localProxyUrl: string;
434
+ /**
435
+ * @generated from field: string srv_name = 3;
436
+ */
437
+ srvName: string;
438
+ /**
439
+ * @generated from field: string srv_description = 4;
440
+ */
441
+ srvDescription: string;
442
+ };
443
+ /**
444
+ * Describes the message agentmesh.v1.DiscoveredProvider.
445
+ * Use `create(DiscoveredProviderSchema)` to create a new message.
446
+ */
447
+ export declare const DiscoveredProviderSchema: GenMessage<DiscoveredProvider>;
448
+ /**
449
+ * @generated from message agentmesh.v1.ControlPlaneInfoResponse
450
+ */
451
+ export type ControlPlaneInfoResponse = Message<"agentmesh.v1.ControlPlaneInfoResponse"> & {
452
+ /**
453
+ * @generated from field: string oidc_issuer = 1;
454
+ */
455
+ oidcIssuer: string;
456
+ /**
457
+ * @generated from field: string client_id = 2;
458
+ */
459
+ clientId: string;
460
+ /**
461
+ * @generated from field: string audience = 3;
462
+ */
463
+ audience: string;
464
+ /**
465
+ * The addresses of every router with a live lease, one multiaddr per
466
+ * address, each ending in the router's peer ID. The same routers as
467
+ * routers, flattened; kept for members that only need something to dial.
468
+ *
469
+ * @generated from field: repeated string router_addresses = 4;
470
+ */
471
+ routerAddresses: string[];
472
+ /**
473
+ * The complete set of currently banned peer IDs. Consumers reconcile their
474
+ * local blocklist against this list rather than merging into it, so that a
475
+ * peer the control plane no longer bans is unbanned everywhere without
476
+ * needing an event of its own. MeshEvent_BANNED stays the fast path for
477
+ * sub-second eviction; this is how a node that restarted or was offline
478
+ * when the event was published catches up.
479
+ *
480
+ * @generated from field: repeated string banned_peer_ids = 5;
481
+ */
482
+ bannedPeerIds: string[];
483
+ /**
484
+ * Every router with a live lease, with what a member needs to choose
485
+ * among them: its attested labels, to select or prefer routers by
486
+ * placement, and its load as of its last lease, to prefer the ones with
487
+ * room.
488
+ *
489
+ * @generated from field: repeated agentmesh.v1.RouterInfo routers = 6;
490
+ */
491
+ routers: RouterInfo[];
492
+ /**
493
+ * How the mesh keeps its directory. Members and routers read these here
494
+ * and nowhere else, so they agree without configuration of their own; a
495
+ * control plane that leaves it unset leaves them on the defaults the
496
+ * api package names.
497
+ *
498
+ * @generated from field: agentmesh.v1.DirectoryParameters directory = 7;
499
+ */
500
+ directory?: DirectoryParameters | undefined;
501
+ };
502
+ /**
503
+ * Describes the message agentmesh.v1.ControlPlaneInfoResponse.
504
+ * Use `create(ControlPlaneInfoResponseSchema)` to create a new message.
505
+ */
506
+ export declare const ControlPlaneInfoResponseSchema: GenMessage<ControlPlaneInfoResponse>;
507
+ /**
508
+ * DirectoryParameters are the settings of the DHT the routers serve, set
509
+ * once per mesh on the control plane (agentmesh-control-plane
510
+ * --dht-replication, --dht-reprovide-interval) and published on /info.
511
+ *
512
+ * @generated from message agentmesh.v1.DirectoryParameters
513
+ */
514
+ export type DirectoryParameters = Message<"agentmesh.v1.DirectoryParameters"> & {
515
+ /**
516
+ * How many routers each record a member announces is placed on, the
517
+ * closest to its key, besides the router that took the announcement.
518
+ * Routers read it; a member asks the routers it holds.
519
+ *
520
+ * @generated from field: int32 replication = 1;
521
+ */
522
+ replication: number;
523
+ /**
524
+ * How often a member re-announces each service it publishes.
525
+ *
526
+ * @generated from field: google.protobuf.Duration reprovide_interval = 2;
527
+ */
528
+ reprovideInterval?: Duration | undefined;
529
+ /**
530
+ * How long a router keeps a record after its last announcement: three
531
+ * reprovide intervals, so a provider that stopped without unpublishing
532
+ * leaves within it and two missed announcements do not unlist one that
533
+ * did not.
534
+ *
535
+ * @generated from field: google.protobuf.Duration record_ttl = 3;
536
+ */
537
+ recordTtl?: Duration | undefined;
538
+ };
539
+ /**
540
+ * Describes the message agentmesh.v1.DirectoryParameters.
541
+ * Use `create(DirectoryParametersSchema)` to create a new message.
542
+ */
543
+ export declare const DirectoryParametersSchema: GenMessage<DirectoryParameters>;
544
+ /**
545
+ * DirectoryRequest is what a member asks a router it is attached to over
546
+ * /mesh/directory/1.0.0: one request per stream, answered with one
547
+ * DirectoryResponse. The member keeps no DHT of its own; the router keeps
548
+ * its records, places them on the routers closest to each key, and answers
549
+ * a lookup from its own records and those routers'. A router sends the
550
+ * same message to another router to place a member's record, or its
551
+ * withdrawal, on it.
552
+ *
553
+ * @generated from message agentmesh.v1.DirectoryRequest
554
+ */
555
+ export type DirectoryRequest = Message<"agentmesh.v1.DirectoryRequest"> & {
556
+ /**
557
+ * @generated from oneof agentmesh.v1.DirectoryRequest.request
558
+ */
559
+ request: {
560
+ /**
561
+ * @generated from field: agentmesh.v1.DirectoryProvide provide = 1;
562
+ */
563
+ value: DirectoryProvide;
564
+ case: "provide";
565
+ } | {
566
+ /**
567
+ * @generated from field: agentmesh.v1.DirectoryFindProviders find_providers = 2;
568
+ */
569
+ value: DirectoryFindProviders;
570
+ case: "findProviders";
571
+ } | {
572
+ /**
573
+ * @generated from field: agentmesh.v1.DirectoryFindPeer find_peer = 3;
574
+ */
575
+ value: DirectoryFindPeer;
576
+ case: "findPeer";
577
+ } | {
578
+ /**
579
+ * @generated from field: agentmesh.v1.DirectoryWithdraw withdraw = 4;
580
+ */
581
+ value: DirectoryWithdraw;
582
+ case: "withdraw";
583
+ } | {
584
+ case: undefined;
585
+ value?: undefined;
586
+ };
587
+ };
588
+ /**
589
+ * Describes the message agentmesh.v1.DirectoryRequest.
590
+ * Use `create(DirectoryRequestSchema)` to create a new message.
591
+ */
592
+ export declare const DirectoryRequestSchema: GenMessage<DirectoryRequest>;
593
+ /**
594
+ * DirectoryProvide announces the sender as a provider of key, reached at
595
+ * addrs. A key is a sha256 multihash: of "mesh:service:<type>[:<name>]" for
596
+ * a service, of "mesh:peer:<peer_id>" for the member itself. A record lives
597
+ * for the mesh's record TTL after its last announcement; announcing it
598
+ * again replaces its addresses. service names the service a record is
599
+ * about, "<type>://<name>", and the router refuses a key that is not that
600
+ * service's by name or by type; a record naming no service is the
601
+ * member's own, under its peer key. provider is set only between routers,
602
+ * by the router that holds the member, and refused from anyone else: a
603
+ * member can only announce itself.
604
+ *
605
+ * @generated from message agentmesh.v1.DirectoryProvide
606
+ */
607
+ export type DirectoryProvide = Message<"agentmesh.v1.DirectoryProvide"> & {
608
+ /**
609
+ * @generated from field: bytes key = 1;
610
+ */
611
+ key: Uint8Array;
612
+ /**
613
+ * @generated from field: repeated string addrs = 2;
614
+ */
615
+ addrs: string[];
616
+ /**
617
+ * @generated from field: string provider = 3;
618
+ */
619
+ provider: string;
620
+ /**
621
+ * @generated from field: string service = 4;
622
+ */
623
+ service: string;
624
+ };
625
+ /**
626
+ * Describes the message agentmesh.v1.DirectoryProvide.
627
+ * Use `create(DirectoryProvideSchema)` to create a new message.
628
+ */
629
+ export declare const DirectoryProvideSchema: GenMessage<DirectoryProvide>;
630
+ /**
631
+ * DirectoryWithdraw removes the sender's record under key, from the router
632
+ * asked and from the routers closest to the key: what a member sends when
633
+ * it stops a service or leaves the mesh, so that callers do not find it
634
+ * until the record would have expired. provider is as in DirectoryProvide.
635
+ *
636
+ * @generated from message agentmesh.v1.DirectoryWithdraw
637
+ */
638
+ export type DirectoryWithdraw = Message<"agentmesh.v1.DirectoryWithdraw"> & {
639
+ /**
640
+ * @generated from field: bytes key = 1;
641
+ */
642
+ key: Uint8Array;
643
+ /**
644
+ * @generated from field: string provider = 2;
645
+ */
646
+ provider: string;
647
+ };
648
+ /**
649
+ * Describes the message agentmesh.v1.DirectoryWithdraw.
650
+ * Use `create(DirectoryWithdrawSchema)` to create a new message.
651
+ */
652
+ export declare const DirectoryWithdrawSchema: GenMessage<DirectoryWithdraw>;
653
+ /**
654
+ * DirectoryFindProviders asks for up to limit providers of key.
655
+ *
656
+ * @generated from message agentmesh.v1.DirectoryFindProviders
657
+ */
658
+ export type DirectoryFindProviders = Message<"agentmesh.v1.DirectoryFindProviders"> & {
659
+ /**
660
+ * @generated from field: bytes key = 1;
661
+ */
662
+ key: Uint8Array;
663
+ /**
664
+ * @generated from field: uint32 limit = 2;
665
+ */
666
+ limit: number;
667
+ };
668
+ /**
669
+ * Describes the message agentmesh.v1.DirectoryFindProviders.
670
+ * Use `create(DirectoryFindProvidersSchema)` to create a new message.
671
+ */
672
+ export declare const DirectoryFindProvidersSchema: GenMessage<DirectoryFindProviders>;
673
+ /**
674
+ * DirectoryFindPeer asks where peer_id is reached.
675
+ *
676
+ * @generated from message agentmesh.v1.DirectoryFindPeer
677
+ */
678
+ export type DirectoryFindPeer = Message<"agentmesh.v1.DirectoryFindPeer"> & {
679
+ /**
680
+ * @generated from field: string peer_id = 1;
681
+ */
682
+ peerId: string;
683
+ };
684
+ /**
685
+ * Describes the message agentmesh.v1.DirectoryFindPeer.
686
+ * Use `create(DirectoryFindPeerSchema)` to create a new message.
687
+ */
688
+ export declare const DirectoryFindPeerSchema: GenMessage<DirectoryFindPeer>;
689
+ /**
690
+ * DirectoryResponse answers one DirectoryRequest. providers answers
691
+ * find_providers; peer answers find_peer, unset when nobody knows the
692
+ * peer; error is set when the router could not run the request.
693
+ *
694
+ * @generated from message agentmesh.v1.DirectoryResponse
695
+ */
696
+ export type DirectoryResponse = Message<"agentmesh.v1.DirectoryResponse"> & {
697
+ /**
698
+ * @generated from field: repeated agentmesh.v1.PeerRecord providers = 1;
699
+ */
700
+ providers: PeerRecord[];
701
+ /**
702
+ * @generated from field: agentmesh.v1.PeerRecord peer = 2;
703
+ */
704
+ peer?: PeerRecord | undefined;
705
+ /**
706
+ * @generated from field: string error = 3;
707
+ */
708
+ error: string;
709
+ };
710
+ /**
711
+ * Describes the message agentmesh.v1.DirectoryResponse.
712
+ * Use `create(DirectoryResponseSchema)` to create a new message.
713
+ */
714
+ export declare const DirectoryResponseSchema: GenMessage<DirectoryResponse>;
715
+ /**
716
+ * PeerRecord is a peer and the addresses it is reached at, relayed ones
717
+ * included, each ending in its peer ID.
718
+ *
719
+ * @generated from message agentmesh.v1.PeerRecord
720
+ */
721
+ export type PeerRecord = Message<"agentmesh.v1.PeerRecord"> & {
722
+ /**
723
+ * @generated from field: string peer_id = 1;
724
+ */
725
+ peerId: string;
726
+ /**
727
+ * @generated from field: repeated string addrs = 2;
728
+ */
729
+ addrs: string[];
730
+ };
731
+ /**
732
+ * Describes the message agentmesh.v1.PeerRecord.
733
+ * Use `create(PeerRecordSchema)` to create a new message.
734
+ */
735
+ export declare const PeerRecordSchema: GenMessage<PeerRecord>;
736
+ /**
737
+ * RouterInfo is one router as the control plane lists it on /info.
738
+ *
739
+ * @generated from message agentmesh.v1.RouterInfo
740
+ */
741
+ export type RouterInfo = Message<"agentmesh.v1.RouterInfo"> & {
742
+ /**
743
+ * @generated from field: string peer_id = 1;
744
+ */
745
+ peerId: string;
746
+ /**
747
+ * The router's announced addresses, each ending in its peer ID.
748
+ *
749
+ * @generated from field: repeated string addresses = 2;
750
+ */
751
+ addresses: string[];
752
+ /**
753
+ * The router's labels, the same labels as a node's: declared at
754
+ * enrollment (agentmesh-router --label), signed by the control plane only
755
+ * if the router's role allows them (PolicyRole.allowed_labels), and
756
+ * carried as label() facts in the router's credential, where a member
757
+ * verifies them at the handshake. A member selects routers by them
758
+ * (--router-selector, every pair must match) or prefers routers by them
759
+ * (--router-prefer). They place a router; they grant it nothing.
760
+ *
761
+ * @generated from field: map<string, string> labels = 3;
762
+ */
763
+ labels: {
764
+ [key: string]: string;
765
+ };
766
+ /**
767
+ * Connections the router held when it last renewed its lease, and the
768
+ * number it accepts (its high watermark). A member attaches to the
769
+ * routers with the most room; connection_limit of zero means unknown.
770
+ *
771
+ * @generated from field: int32 connections = 4;
772
+ */
773
+ connections: number;
774
+ /**
775
+ * @generated from field: int32 connection_limit = 5;
776
+ */
777
+ connectionLimit: number;
778
+ };
779
+ /**
780
+ * Describes the message agentmesh.v1.RouterInfo.
781
+ * Use `create(RouterInfoSchema)` to create a new message.
782
+ */
783
+ export declare const RouterInfoSchema: GenMessage<RouterInfo>;
784
+ /**
785
+ * @generated from message agentmesh.v1.RouterLeaseRequest
786
+ */
787
+ export type RouterLeaseRequest = Message<"agentmesh.v1.RouterLeaseRequest"> & {
788
+ /**
789
+ * @generated from field: string peer_id = 1;
790
+ */
791
+ peerId: string;
792
+ /**
793
+ * @generated from field: repeated string addresses = 2;
794
+ */
795
+ addresses: string[];
796
+ /**
797
+ * @generated from field: bytes biscuit = 3;
798
+ */
799
+ biscuit: Uint8Array;
800
+ /**
801
+ * @generated from field: repeated string connected_peers = 4;
802
+ */
803
+ connectedPeers: string[];
804
+ /**
805
+ * @generated from field: int32 dht_size = 5;
806
+ */
807
+ dhtSize: number;
808
+ /**
809
+ * Proof of possession of the router's enrolled key: challenge_unix_ms is
810
+ * the caller's clock in unix milliseconds and challenge_signature signs
811
+ * the UTF-8 bytes of "mesh:routers-lease:<peer_id>:<challenge_unix_ms>"
812
+ * with the key the router enrolled with. Required. The biscuit alone is
813
+ * not proof: routers hand theirs to every peer they authenticate.
814
+ *
815
+ * @generated from field: int64 challenge_unix_ms = 6;
816
+ */
817
+ challengeUnixMs: bigint;
818
+ /**
819
+ * @generated from field: bytes challenge_signature = 7;
820
+ */
821
+ challengeSignature: Uint8Array;
822
+ /**
823
+ * How long this lease stays valid. Unset means the control plane's lease
824
+ * duration. A router may shorten its lease, never lengthen it: on its last
825
+ * renewal before stopping it sets the time it expects to be away, zero to
826
+ * be withdrawn at once, so a joiner is not handed a router that is gone
827
+ * and a router back within that time is still listed.
828
+ *
829
+ * @generated from field: google.protobuf.Duration ttl = 8;
830
+ */
831
+ ttl?: Duration | undefined;
832
+ /**
833
+ * The router's load, listed for it on /info (RouterInfo): its open
834
+ * inbound connections and the number it accepts.
835
+ *
836
+ * @generated from field: int32 connections = 9;
837
+ */
838
+ connections: number;
839
+ /**
840
+ * @generated from field: int32 connection_limit = 10;
841
+ */
842
+ connectionLimit: number;
843
+ };
844
+ /**
845
+ * Describes the message agentmesh.v1.RouterLeaseRequest.
846
+ * Use `create(RouterLeaseRequestSchema)` to create a new message.
847
+ */
848
+ export declare const RouterLeaseRequestSchema: GenMessage<RouterLeaseRequest>;
849
+ /**
850
+ * @generated from message agentmesh.v1.RouterLeaseResponse
851
+ */
852
+ export type RouterLeaseResponse = Message<"agentmesh.v1.RouterLeaseResponse"> & {
853
+ /**
854
+ * @generated from field: bool success = 1;
855
+ */
856
+ success: boolean;
857
+ /**
858
+ * @generated from field: string error = 2;
859
+ */
860
+ error: string;
861
+ /**
862
+ * @generated from field: google.protobuf.Timestamp expire_time = 3;
863
+ */
864
+ expireTime?: Timestamp | undefined;
865
+ };
866
+ /**
867
+ * Describes the message agentmesh.v1.RouterLeaseResponse.
868
+ * Use `create(RouterLeaseResponseSchema)` to create a new message.
869
+ */
870
+ export declare const RouterLeaseResponseSchema: GenMessage<RouterLeaseResponse>;
871
+ /**
872
+ * @generated from message agentmesh.v1.PolicyRole
873
+ */
874
+ export type PolicyRole = Message<"agentmesh.v1.PolicyRole"> & {
875
+ /**
876
+ * @generated from field: string name = 1;
877
+ */
878
+ name: string;
879
+ /**
880
+ * @generated from field: repeated string allowed_targets = 2;
881
+ */
882
+ allowedTargets: string[];
883
+ /**
884
+ * @generated from field: repeated string allowed_services = 3;
885
+ */
886
+ allowedServices: string[];
887
+ /**
888
+ * @generated from field: repeated string custom_datalog = 4;
889
+ */
890
+ customDatalog: string[];
891
+ /**
892
+ * Labels a node with this role may declare at enrollment, as "*", "key=*"
893
+ * or "key=value". A node declares its own labels, so this is what turns a
894
+ * declaration into something the control plane is willing to sign.
895
+ *
896
+ * @generated from field: repeated string allowed_labels = 5;
897
+ */
898
+ allowedLabels: string[];
899
+ /**
900
+ * HTTP narrowing of allowed_services entries; see HTTPGrant.
901
+ *
902
+ * @generated from field: repeated agentmesh.v1.HTTPGrant http = 6;
903
+ */
904
+ http: HTTPGrant[];
905
+ /**
906
+ * Services a member with this role may serve, in the syntax of
907
+ * allowed_services ("mcp://calc", "inference://*", "*"). A role serves
908
+ * nothing it is not granted here: a router keeps a member's record only
909
+ * for a service its credential grants, and a caller sends a request to
910
+ * a provider it found by name only when the provider's credential does.
911
+ * An egress destination needs no entry: served_by grants it to the
912
+ * nodes it selects.
913
+ *
914
+ * @generated from field: repeated string allowed_publish = 7;
915
+ */
916
+ allowedPublish: string[];
917
+ };
918
+ /**
919
+ * Describes the message agentmesh.v1.PolicyRole.
920
+ * Use `create(PolicyRoleSchema)` to create a new message.
921
+ */
922
+ export declare const PolicyRoleSchema: GenMessage<PolicyRole>;
923
+ /**
924
+ * HTTPGrant narrows one allowed_services entry to HTTP methods and paths.
925
+ * The control plane compiles it into granted_method and granted_path_* facts
926
+ * in the holder's credential and withholds the plain service grant for that
927
+ * entry. The baseline rules derive the service grant only for a request
928
+ * whose method($m) and path($p) facts match, so a request that carries no
929
+ * HTTP method (a tunnel, a non-HTTP stream) does not match a narrowed entry.
930
+ *
931
+ * @generated from message agentmesh.v1.HTTPGrant
932
+ */
933
+ export type HTTPGrant = Message<"agentmesh.v1.HTTPGrant"> & {
934
+ /**
935
+ * One of the role's allowed_services entries, written identically.
936
+ *
937
+ * @generated from field: string service = 1;
938
+ */
939
+ service: string;
940
+ /**
941
+ * Methods the holder may use, e.g. "GET", "HEAD". Empty means any method.
942
+ *
943
+ * @generated from field: repeated string methods = 2;
944
+ */
945
+ methods: string[];
946
+ /**
947
+ * Paths the holder may request, as the backend sees them: "/user" matches
948
+ * that path only, "/v2/public/*" matches every path under the prefix.
949
+ * Empty means any path. At least one of methods and paths must be set.
950
+ *
951
+ * @generated from field: repeated string paths = 3;
952
+ */
953
+ paths: string[];
954
+ };
955
+ /**
956
+ * Describes the message agentmesh.v1.HTTPGrant.
957
+ * Use `create(HTTPGrantSchema)` to create a new message.
958
+ */
959
+ export declare const HTTPGrantSchema: GenMessage<HTTPGrant>;
960
+ /**
961
+ * EgressDestination is a destination outside the mesh that selected nodes
962
+ * serve as egress://<name>. It is part of the policy document the admin
963
+ * writes; a node receives the destinations that select it at GET /egress
964
+ * and serves them without configuration of its own.
965
+ *
966
+ * @generated from message agentmesh.v1.EgressDestination
967
+ */
968
+ export type EgressDestination = Message<"agentmesh.v1.EgressDestination"> & {
969
+ /**
970
+ * The destination hostname, lowercase, without a port or a path. It is the
971
+ * service name in grants (egress://<name>) and the DHT key.
972
+ *
973
+ * @generated from field: string name = 1;
974
+ */
975
+ name: string;
976
+ /**
977
+ * Where the serving node forwards requests. Optional; https://<name> when
978
+ * empty. Must not carry a credential.
979
+ *
980
+ * @generated from field: string target_url = 2;
981
+ */
982
+ targetUrl: string;
983
+ /**
984
+ * Name of the credential the serving node presents upstream, resolved by
985
+ * the node from its secrets directory. Shorthand for broker.static_secret.
986
+ * Never a value: secret material does not travel through this API.
987
+ *
988
+ * @generated from field: string credential = 3;
989
+ */
990
+ credential: string;
991
+ /**
992
+ * Role names or key=value labels selecting the nodes that serve this
993
+ * destination. A node matches when any entry names one of its roles or
994
+ * labels. The control plane also grants the destination to the selected
995
+ * nodes, so the serving node authorizes local requests with its own
996
+ * credential; other callers need the grant on their own role.
997
+ *
998
+ * @generated from field: repeated string served_by = 4;
999
+ */
1000
+ servedBy: string[];
1001
+ /**
1002
+ * Pluggable credential broker for the destination.
1003
+ *
1004
+ * @generated from field: agentmesh.v1.CredentialBroker broker = 5;
1005
+ */
1006
+ broker?: CredentialBroker | undefined;
1007
+ /**
1008
+ * Content inspection the egress node applies. Destination policy: a TAR
1009
+ * cannot disable it or choose another inspector.
1010
+ *
1011
+ * @generated from field: agentmesh.v1.Inspection inspection = 6;
1012
+ */
1013
+ inspection?: Inspection | undefined;
1014
+ /**
1015
+ * HTTP (default): the node terminates TLS, brokers the credential and
1016
+ * inspects. TCP: a named CONNECT tunnel, L4 policy only.
1017
+ *
1018
+ * @generated from field: agentmesh.v1.EgressMode mode = 7;
1019
+ */
1020
+ mode: EgressMode;
1021
+ /**
1022
+ * TCP mode: destination ports a tunnel may open. Empty denies every tunnel.
1023
+ *
1024
+ * @generated from field: repeated uint32 ports = 8;
1025
+ */
1026
+ ports: number[];
1027
+ /**
1028
+ * Keep the destination hostname in Host when target_url is an operator
1029
+ * inspection chain that forwards to the real host.
1030
+ *
1031
+ * @generated from field: bool preserve_host = 9;
1032
+ */
1033
+ preserveHost: boolean;
1034
+ /**
1035
+ * Forward X-Mesh-Principal, X-Mesh-Roles and X-Mesh-Task to target_url.
1036
+ * Only for an operator chain; the node strips them for a real destination.
1037
+ *
1038
+ * @generated from field: bool forward_context = 10;
1039
+ */
1040
+ forwardContext: boolean;
1041
+ };
1042
+ /**
1043
+ * Describes the message agentmesh.v1.EgressDestination.
1044
+ * Use `create(EgressDestinationSchema)` to create a new message.
1045
+ */
1046
+ export declare const EgressDestinationSchema: GenMessage<EgressDestination>;
1047
+ /**
1048
+ * Inspection lists the inspectors the egress node runs, in order; the first
1049
+ * block wins. Inspectors run before the broker injects the destination
1050
+ * credential, so a processor never sees it.
1051
+ *
1052
+ * @generated from message agentmesh.v1.Inspection
1053
+ */
1054
+ export type Inspection = Message<"agentmesh.v1.Inspection"> & {
1055
+ /**
1056
+ * @generated from field: repeated agentmesh.v1.Inspector inspectors = 1;
1057
+ */
1058
+ inspectors: Inspector[];
1059
+ };
1060
+ /**
1061
+ * Describes the message agentmesh.v1.Inspection.
1062
+ * Use `create(InspectionSchema)` to create a new message.
1063
+ */
1064
+ export declare const InspectionSchema: GenMessage<Inspection>;
1065
+ /**
1066
+ * @generated from message agentmesh.v1.Inspector
1067
+ */
1068
+ export type Inspector = Message<"agentmesh.v1.Inspector"> & {
1069
+ /**
1070
+ * @generated from oneof agentmesh.v1.Inspector.kind
1071
+ */
1072
+ kind: {
1073
+ /**
1074
+ * @generated from field: agentmesh.v1.ModelArmor model_armor = 1;
1075
+ */
1076
+ value: ModelArmor;
1077
+ case: "modelArmor";
1078
+ } | {
1079
+ /**
1080
+ * @generated from field: agentmesh.v1.ExtProc ext_proc = 2;
1081
+ */
1082
+ value: ExtProc;
1083
+ case: "extProc";
1084
+ } | {
1085
+ case: undefined;
1086
+ value?: undefined;
1087
+ };
1088
+ };
1089
+ /**
1090
+ * Describes the message agentmesh.v1.Inspector.
1091
+ * Use `create(InspectorSchema)` to create a new message.
1092
+ */
1093
+ export declare const InspectorSchema: GenMessage<Inspector>;
1094
+ /**
1095
+ * ModelArmor calls sanitizeUserPrompt / sanitizeModelResponse directly over
1096
+ * HTTPS. Model Armor is reached as an egress destination with an
1097
+ * oidc_federation broker, so no credential is stored for it.
1098
+ *
1099
+ * @generated from message agentmesh.v1.ModelArmor
1100
+ */
1101
+ export type ModelArmor = Message<"agentmesh.v1.ModelArmor"> & {
1102
+ /**
1103
+ * projects/P/locations/L/templates/T. One template per destination; a
1104
+ * destination that needs another template is declared as another
1105
+ * EgressDestination.
1106
+ *
1107
+ * @generated from field: string template = 1;
1108
+ */
1109
+ template: string;
1110
+ /**
1111
+ * BUFFERED: the whole response is inspected before release and may be
1112
+ * rewritten. REQUEST_ONLY: prompts are inspected, responses pass.
1113
+ *
1114
+ * @generated from field: agentmesh.v1.ResponseInspection response = 2;
1115
+ */
1116
+ response: ResponseInspection;
1117
+ /**
1118
+ * Default false: an unreachable Model Armor fails the request.
1119
+ *
1120
+ * @generated from field: bool fail_open = 3;
1121
+ */
1122
+ failOpen: boolean;
1123
+ /**
1124
+ * @generated from field: google.protobuf.Duration timeout = 4;
1125
+ */
1126
+ timeout?: Duration | undefined;
1127
+ };
1128
+ /**
1129
+ * Describes the message agentmesh.v1.ModelArmor.
1130
+ * Use `create(ModelArmorSchema)` to create a new message.
1131
+ */
1132
+ export declare const ModelArmorSchema: GenMessage<ModelArmor>;
1133
+ /**
1134
+ * ExtProc runs an Envoy external processor (envoy.service.ext_proc.v3
1135
+ * ExternalProcessor) over one bidirectional gRPC stream per request. Field
1136
+ * names follow Envoy's ext_proc filter configuration so a processor's
1137
+ * settings carry over unchanged.
1138
+ *
1139
+ * @generated from message agentmesh.v1.ExtProc
1140
+ */
1141
+ export type ExtProc = Message<"agentmesh.v1.ExtProc"> & {
1142
+ /**
1143
+ * host:port, or unix:/path for a processor on the same host.
1144
+ *
1145
+ * @generated from field: string target = 1;
1146
+ */
1147
+ target: string;
1148
+ /**
1149
+ * Names in the node's secrets directory for mTLS to the processor: the CA
1150
+ * bundle and the client certificate with its key. Never values.
1151
+ *
1152
+ * @generated from field: string ca = 2;
1153
+ */
1154
+ ca: string;
1155
+ /**
1156
+ * @generated from field: string client_certificate = 3;
1157
+ */
1158
+ clientCertificate: string;
1159
+ /**
1160
+ * @generated from field: agentmesh.v1.ExtProcProcessingMode processing_mode = 4;
1161
+ */
1162
+ processingMode?: ExtProcProcessingMode | undefined;
1163
+ /**
1164
+ * Let the processor change the mode mid-request (Envoy allow_mode_override).
1165
+ *
1166
+ * @generated from field: bool allow_mode_override = 5;
1167
+ */
1168
+ allowModeOverride: boolean;
1169
+ /**
1170
+ * Per-message deadline; 200ms when unset, as in Envoy.
1171
+ *
1172
+ * @generated from field: google.protobuf.Duration message_timeout = 6;
1173
+ */
1174
+ messageTimeout?: Duration | undefined;
1175
+ /**
1176
+ * Default false: a processor error fails the request (Envoy failure_mode_allow).
1177
+ *
1178
+ * @generated from field: bool failure_mode_allow = 7;
1179
+ */
1180
+ failureModeAllow: boolean;
1181
+ /**
1182
+ * Upper bound for BUFFERED and BUFFERED_PARTIAL bodies.
1183
+ *
1184
+ * @generated from field: uint32 max_buffered_bytes = 8;
1185
+ */
1186
+ maxBufferedBytes: number;
1187
+ };
1188
+ /**
1189
+ * Describes the message agentmesh.v1.ExtProc.
1190
+ * Use `create(ExtProcSchema)` to create a new message.
1191
+ */
1192
+ export declare const ExtProcSchema: GenMessage<ExtProc>;
1193
+ /**
1194
+ * @generated from message agentmesh.v1.ExtProcProcessingMode
1195
+ */
1196
+ export type ExtProcProcessingMode = Message<"agentmesh.v1.ExtProcProcessingMode"> & {
1197
+ /**
1198
+ * @generated from field: agentmesh.v1.ExtProcProcessingMode.HeaderMode request_header_mode = 1;
1199
+ */
1200
+ requestHeaderMode: ExtProcProcessingMode_HeaderMode;
1201
+ /**
1202
+ * @generated from field: agentmesh.v1.ExtProcProcessingMode.HeaderMode response_header_mode = 2;
1203
+ */
1204
+ responseHeaderMode: ExtProcProcessingMode_HeaderMode;
1205
+ /**
1206
+ * @generated from field: agentmesh.v1.ExtProcProcessingMode.BodyMode request_body_mode = 3;
1207
+ */
1208
+ requestBodyMode: ExtProcProcessingMode_BodyMode;
1209
+ /**
1210
+ * @generated from field: agentmesh.v1.ExtProcProcessingMode.BodyMode response_body_mode = 4;
1211
+ */
1212
+ responseBodyMode: ExtProcProcessingMode_BodyMode;
1213
+ /**
1214
+ * @generated from field: agentmesh.v1.ExtProcProcessingMode.HeaderMode request_trailer_mode = 5;
1215
+ */
1216
+ requestTrailerMode: ExtProcProcessingMode_HeaderMode;
1217
+ /**
1218
+ * @generated from field: agentmesh.v1.ExtProcProcessingMode.HeaderMode response_trailer_mode = 6;
1219
+ */
1220
+ responseTrailerMode: ExtProcProcessingMode_HeaderMode;
1221
+ };
1222
+ /**
1223
+ * Describes the message agentmesh.v1.ExtProcProcessingMode.
1224
+ * Use `create(ExtProcProcessingModeSchema)` to create a new message.
1225
+ */
1226
+ export declare const ExtProcProcessingModeSchema: GenMessage<ExtProcProcessingMode>;
1227
+ /**
1228
+ * @generated from enum agentmesh.v1.ExtProcProcessingMode.HeaderMode
1229
+ */
1230
+ export declare enum ExtProcProcessingMode_HeaderMode {
1231
+ /**
1232
+ * @generated from enum value: HEADER_MODE_DEFAULT = 0;
1233
+ */
1234
+ HEADER_MODE_DEFAULT = 0,
1235
+ /**
1236
+ * @generated from enum value: SEND = 1;
1237
+ */
1238
+ SEND = 1,
1239
+ /**
1240
+ * @generated from enum value: SKIP = 2;
1241
+ */
1242
+ SKIP = 2
1243
+ }
1244
+ /**
1245
+ * Describes the enum agentmesh.v1.ExtProcProcessingMode.HeaderMode.
1246
+ */
1247
+ export declare const ExtProcProcessingMode_HeaderModeSchema: GenEnum<ExtProcProcessingMode_HeaderMode>;
1248
+ /**
1249
+ * @generated from enum agentmesh.v1.ExtProcProcessingMode.BodyMode
1250
+ */
1251
+ export declare enum ExtProcProcessingMode_BodyMode {
1252
+ /**
1253
+ * @generated from enum value: NONE = 0;
1254
+ */
1255
+ NONE = 0,
1256
+ /**
1257
+ * @generated from enum value: STREAMED = 1;
1258
+ */
1259
+ STREAMED = 1,
1260
+ /**
1261
+ * @generated from enum value: BUFFERED = 2;
1262
+ */
1263
+ BUFFERED = 2,
1264
+ /**
1265
+ * @generated from enum value: BUFFERED_PARTIAL = 3;
1266
+ */
1267
+ BUFFERED_PARTIAL = 3,
1268
+ /**
1269
+ * @generated from enum value: FULL_DUPLEX_STREAMED = 4;
1270
+ */
1271
+ FULL_DUPLEX_STREAMED = 4
1272
+ }
1273
+ /**
1274
+ * Describes the enum agentmesh.v1.ExtProcProcessingMode.BodyMode.
1275
+ */
1276
+ export declare const ExtProcProcessingMode_BodyModeSchema: GenEnum<ExtProcProcessingMode_BodyMode>;
1277
+ /**
1278
+ * @generated from message agentmesh.v1.CredentialBroker
1279
+ */
1280
+ export type CredentialBroker = Message<"agentmesh.v1.CredentialBroker"> & {
1281
+ /**
1282
+ * @generated from oneof agentmesh.v1.CredentialBroker.kind
1283
+ */
1284
+ kind: {
1285
+ /**
1286
+ * Name of a file in the node's secrets directory ("TOKEN" or "user:pass").
1287
+ *
1288
+ * @generated from field: string static_secret = 1;
1289
+ */
1290
+ value: string;
1291
+ case: "staticSecret";
1292
+ } | {
1293
+ /**
1294
+ * @generated from field: agentmesh.v1.OIDCFederation oidc_federation = 2;
1295
+ */
1296
+ value: OIDCFederation;
1297
+ case: "oidcFederation";
1298
+ } | {
1299
+ /**
1300
+ * @generated from field: agentmesh.v1.AWSAssumeRole aws_assume_role = 3;
1301
+ */
1302
+ value: AWSAssumeRole;
1303
+ case: "awsAssumeRole";
1304
+ } | {
1305
+ /**
1306
+ * The node's own platform identity (GKE Workload Identity, instance
1307
+ * metadata). Only for nodes that run inside the provider.
1308
+ *
1309
+ * @generated from field: agentmesh.v1.PlatformIdentity platform_identity = 4;
1310
+ */
1311
+ value: PlatformIdentity;
1312
+ case: "platformIdentity";
1313
+ } | {
1314
+ case: undefined;
1315
+ value?: undefined;
1316
+ };
1317
+ };
1318
+ /**
1319
+ * Describes the message agentmesh.v1.CredentialBroker.
1320
+ * Use `create(CredentialBrokerSchema)` to create a new message.
1321
+ */
1322
+ export declare const CredentialBrokerSchema: GenMessage<CredentialBroker>;
1323
+ /**
1324
+ * OIDCFederation exchanges the control plane's JWT at a provider STS.
1325
+ *
1326
+ * @generated from message agentmesh.v1.OIDCFederation
1327
+ */
1328
+ export type OIDCFederation = Message<"agentmesh.v1.OIDCFederation"> & {
1329
+ /**
1330
+ * Google: https://sts.googleapis.com/v1/token. Other providers: their RFC 8693 endpoint.
1331
+ *
1332
+ * @generated from field: string token_endpoint = 1;
1333
+ */
1334
+ tokenEndpoint: string;
1335
+ /**
1336
+ * The audience the provider expects, e.g. the Google workload or workforce
1337
+ * pool provider resource name. One per destination.
1338
+ *
1339
+ * @generated from field: string audience = 2;
1340
+ */
1341
+ audience: string;
1342
+ /**
1343
+ * Optional service account to impersonate when the API does not accept the
1344
+ * federated principal directly (Google iamcredentials.generateAccessToken).
1345
+ *
1346
+ * @generated from field: string impersonate = 3;
1347
+ */
1348
+ impersonate: string;
1349
+ /**
1350
+ * OAuth scopes requested for the destination credential; the TAR may narrow
1351
+ * them further, never widen them.
1352
+ *
1353
+ * @generated from field: repeated string scopes = 4;
1354
+ */
1355
+ scopes: string[];
1356
+ };
1357
+ /**
1358
+ * Describes the message agentmesh.v1.OIDCFederation.
1359
+ * Use `create(OIDCFederationSchema)` to create a new message.
1360
+ */
1361
+ export declare const OIDCFederationSchema: GenMessage<OIDCFederation>;
1362
+ /**
1363
+ * @generated from message agentmesh.v1.AWSAssumeRole
1364
+ */
1365
+ export type AWSAssumeRole = Message<"agentmesh.v1.AWSAssumeRole"> & {
1366
+ /**
1367
+ * @generated from field: string role_arn = 1;
1368
+ */
1369
+ roleArn: string;
1370
+ /**
1371
+ * Session policy template; the adapter intersects it with the TAR.
1372
+ *
1373
+ * @generated from field: string session_policy = 2;
1374
+ */
1375
+ sessionPolicy: string;
1376
+ };
1377
+ /**
1378
+ * Describes the message agentmesh.v1.AWSAssumeRole.
1379
+ * Use `create(AWSAssumeRoleSchema)` to create a new message.
1380
+ */
1381
+ export declare const AWSAssumeRoleSchema: GenMessage<AWSAssumeRole>;
1382
+ /**
1383
+ * @generated from message agentmesh.v1.PlatformIdentity
1384
+ */
1385
+ export type PlatformIdentity = Message<"agentmesh.v1.PlatformIdentity"> & {
1386
+ /**
1387
+ * @generated from field: repeated string scopes = 1;
1388
+ */
1389
+ scopes: string[];
1390
+ };
1391
+ /**
1392
+ * Describes the message agentmesh.v1.PlatformIdentity.
1393
+ * Use `create(PlatformIdentitySchema)` to create a new message.
1394
+ */
1395
+ export declare const PlatformIdentitySchema: GenMessage<PlatformIdentity>;
1396
+ /**
1397
+ * @generated from message agentmesh.v1.PolicyBinding
1398
+ */
1399
+ export type PolicyBinding = Message<"agentmesh.v1.PolicyBinding"> & {
1400
+ /**
1401
+ * @generated from field: string role = 1;
1402
+ */
1403
+ role: string;
1404
+ /**
1405
+ * @generated from field: repeated string members = 2;
1406
+ */
1407
+ members: string[];
1408
+ };
1409
+ /**
1410
+ * Describes the message agentmesh.v1.PolicyBinding.
1411
+ * Use `create(PolicyBindingSchema)` to create a new message.
1412
+ */
1413
+ export declare const PolicyBindingSchema: GenMessage<PolicyBinding>;
1414
+ /**
1415
+ * PolicyConfig is the mesh policy as the operator writes it: roles and
1416
+ * bindings. It is the body of POST /policies and the answer of
1417
+ * GET /admin/policy, both protojson. Only the control plane reads it, to
1418
+ * mint tokens and to render PolicyConfigGetResponse.
1419
+ *
1420
+ * @generated from message agentmesh.v1.PolicyConfig
1421
+ */
1422
+ export type PolicyConfig = Message<"agentmesh.v1.PolicyConfig"> & {
1423
+ /**
1424
+ * @generated from field: repeated agentmesh.v1.PolicyRole roles = 1;
1425
+ */
1426
+ roles: PolicyRole[];
1427
+ /**
1428
+ * @generated from field: repeated agentmesh.v1.PolicyBinding bindings = 2;
1429
+ */
1430
+ bindings: PolicyBinding[];
1431
+ /**
1432
+ * @generated from field: repeated agentmesh.v1.EgressDestination egress = 3;
1433
+ */
1434
+ egress: EgressDestination[];
1435
+ };
1436
+ /**
1437
+ * Describes the message agentmesh.v1.PolicyConfig.
1438
+ * Use `create(PolicyConfigSchema)` to create a new message.
1439
+ */
1440
+ export declare const PolicyConfigSchema: GenMessage<PolicyConfig>;
1441
+ /**
1442
+ * @generated from message agentmesh.v1.PolicyConfigGetRequest
1443
+ */
1444
+ export type PolicyConfigGetRequest = Message<"agentmesh.v1.PolicyConfigGetRequest"> & {};
1445
+ /**
1446
+ * Describes the message agentmesh.v1.PolicyConfigGetRequest.
1447
+ * Use `create(PolicyConfigGetRequestSchema)` to create a new message.
1448
+ */
1449
+ export declare const PolicyConfigGetRequestSchema: GenMessage<PolicyConfigGetRequest>;
1450
+ /**
1451
+ * PolicyConfigGetResponse answers GET /policies for a mesh member holding a
1452
+ * biscuit. It carries the policy only as Datalog text: this is the contract
1453
+ * every member evaluates, and none derives rules from roles and bindings.
1454
+ *
1455
+ * @generated from message agentmesh.v1.PolicyConfigGetResponse
1456
+ */
1457
+ export type PolicyConfigGetResponse = Message<"agentmesh.v1.PolicyConfigGetResponse"> & {
1458
+ /**
1459
+ * One rule per entry, rendered by the control plane with api.BuildPolicyRules.
1460
+ *
1461
+ * @generated from field: repeated string datalog_rules = 1;
1462
+ */
1463
+ datalogRules: string[];
1464
+ };
1465
+ /**
1466
+ * Describes the message agentmesh.v1.PolicyConfigGetResponse.
1467
+ * Use `create(PolicyConfigGetResponseSchema)` to create a new message.
1468
+ */
1469
+ export declare const PolicyConfigGetResponseSchema: GenMessage<PolicyConfigGetResponse>;
1470
+ /**
1471
+ * @generated from message agentmesh.v1.PolicyConfigUpdateResponse
1472
+ */
1473
+ export type PolicyConfigUpdateResponse = Message<"agentmesh.v1.PolicyConfigUpdateResponse"> & {
1474
+ /**
1475
+ * @generated from field: bool success = 1;
1476
+ */
1477
+ success: boolean;
1478
+ /**
1479
+ * @generated from field: string error = 2;
1480
+ */
1481
+ error: string;
1482
+ };
1483
+ /**
1484
+ * Describes the message agentmesh.v1.PolicyConfigUpdateResponse.
1485
+ * Use `create(PolicyConfigUpdateResponseSchema)` to create a new message.
1486
+ */
1487
+ export declare const PolicyConfigUpdateResponseSchema: GenMessage<PolicyConfigUpdateResponse>;
1488
+ /**
1489
+ * @generated from message agentmesh.v1.EgressAssignmentsRequest
1490
+ */
1491
+ export type EgressAssignmentsRequest = Message<"agentmesh.v1.EgressAssignmentsRequest"> & {};
1492
+ /**
1493
+ * Describes the message agentmesh.v1.EgressAssignmentsRequest.
1494
+ * Use `create(EgressAssignmentsRequestSchema)` to create a new message.
1495
+ */
1496
+ export declare const EgressAssignmentsRequestSchema: GenMessage<EgressAssignmentsRequest>;
1497
+ /**
1498
+ * EgressAssignmentsResponse answers GET /egress for a mesh member holding a
1499
+ * biscuit: the destinations whose served_by selects that node. It is a
1500
+ * separate endpoint from GET /policies so that a node predating it keeps
1501
+ * syncing rules unchanged.
1502
+ *
1503
+ * @generated from message agentmesh.v1.EgressAssignmentsResponse
1504
+ */
1505
+ export type EgressAssignmentsResponse = Message<"agentmesh.v1.EgressAssignmentsResponse"> & {
1506
+ /**
1507
+ * @generated from field: repeated agentmesh.v1.EgressDestination egress = 1;
1508
+ */
1509
+ egress: EgressDestination[];
1510
+ };
1511
+ /**
1512
+ * Describes the message agentmesh.v1.EgressAssignmentsResponse.
1513
+ * Use `create(EgressAssignmentsResponseSchema)` to create a new message.
1514
+ */
1515
+ export declare const EgressAssignmentsResponseSchema: GenMessage<EgressAssignmentsResponse>;
1516
+ /**
1517
+ * @generated from message agentmesh.v1.KeysResponse
1518
+ */
1519
+ export type KeysResponse = Message<"agentmesh.v1.KeysResponse"> & {
1520
+ /**
1521
+ * @generated from field: repeated bytes public_keys = 1;
1522
+ */
1523
+ publicKeys: Uint8Array[];
1524
+ /**
1525
+ * When the set was signed; receivers reject responses outside a short
1526
+ * freshness window so a captured set cannot be replayed.
1527
+ *
1528
+ * @generated from field: google.protobuf.Timestamp sign_time = 2;
1529
+ */
1530
+ signTime?: Timestamp | undefined;
1531
+ /**
1532
+ * One ed25519 signature per entry of public_keys, by that key, over the
1533
+ * deterministic encoding of this message with signatures cleared. A
1534
+ * receiver trusting any key still valid on the control plane can verify
1535
+ * the whole set (see api.VerifyKeysResponse).
1536
+ *
1537
+ * @generated from field: repeated bytes signatures = 3;
1538
+ */
1539
+ signatures: Uint8Array[];
1540
+ };
1541
+ /**
1542
+ * Describes the message agentmesh.v1.KeysResponse.
1543
+ * Use `create(KeysResponseSchema)` to create a new message.
1544
+ */
1545
+ export declare const KeysResponseSchema: GenMessage<KeysResponse>;
1546
+ /**
1547
+ * @generated from message agentmesh.v1.TokenRefreshRequest
1548
+ */
1549
+ export type TokenRefreshRequest = Message<"agentmesh.v1.TokenRefreshRequest"> & {
1550
+ /**
1551
+ * Signature with the node key over the UTF-8 bytes of
1552
+ * "mesh:refresh:<peer_id>:<challenge_unix_ms>", where peer_id is the one
1553
+ * bound in the presented biscuit. Peer- and endpoint-bound so a captured
1554
+ * signature verifies nowhere else.
1555
+ *
1556
+ * @generated from field: bytes challenge_signature = 1;
1557
+ */
1558
+ challengeSignature: Uint8Array;
1559
+ /**
1560
+ * The caller's clock in unix milliseconds, the number in the signed text.
1561
+ * Must be within the control plane's freshness window.
1562
+ *
1563
+ * @generated from field: int64 challenge_unix_ms = 2;
1564
+ */
1565
+ challengeUnixMs: bigint;
1566
+ /**
1567
+ * The caller's peer ID. Optional: the control plane normally reads it
1568
+ * from the verified biscuit. It is consulted only when the biscuit's
1569
+ * signing key has been retired, so the biscuit cannot be verified: the
1570
+ * control plane then looks up the enrolled node record by this ID and,
1571
+ * if the node was opted in to autonomous recovery, accepts the request
1572
+ * when the presented biscuit is byte-identical to the last one it
1573
+ * issued and the challenge verifies against the stored public key.
1574
+ *
1575
+ * @generated from field: string peer_id = 3;
1576
+ */
1577
+ peerId: string;
1578
+ /**
1579
+ * Optional fresh platform JWT for an OIDC-enrolled node. When set, the
1580
+ * control plane verifies the JWT, confirms that iss|sub matches the
1581
+ * stored enrollment's identity, and renews the stored claims and session
1582
+ * expiry in place before minting the refreshed biscuit.
1583
+ *
1584
+ * @generated from field: string jwt = 4;
1585
+ */
1586
+ jwt: string;
1587
+ };
1588
+ /**
1589
+ * Describes the message agentmesh.v1.TokenRefreshRequest.
1590
+ * Use `create(TokenRefreshRequestSchema)` to create a new message.
1591
+ */
1592
+ export declare const TokenRefreshRequestSchema: GenMessage<TokenRefreshRequest>;
1593
+ /**
1594
+ * @generated from message agentmesh.v1.TokenRefreshResponse
1595
+ */
1596
+ export type TokenRefreshResponse = Message<"agentmesh.v1.TokenRefreshResponse"> & {
1597
+ /**
1598
+ * @generated from field: bytes biscuit_token = 1;
1599
+ */
1600
+ biscuitToken: Uint8Array;
1601
+ /**
1602
+ * @generated from field: google.protobuf.Timestamp expire_time = 2;
1603
+ */
1604
+ expireTime?: Timestamp | undefined;
1605
+ /**
1606
+ * @generated from field: string error_message = 3;
1607
+ */
1608
+ errorMessage: string;
1609
+ };
1610
+ /**
1611
+ * Describes the message agentmesh.v1.TokenRefreshResponse.
1612
+ * Use `create(TokenRefreshResponseSchema)` to create a new message.
1613
+ */
1614
+ export declare const TokenRefreshResponseSchema: GenMessage<TokenRefreshResponse>;
1615
+ /**
1616
+ * NodeCatalogReport is the body of POST /nodes/catalog: a node's
1617
+ * self-reported list of locally registered services. The reporting peer is
1618
+ * taken from the presented biscuit, never from the body, so a node can only
1619
+ * ever describe itself. Display-only; carries no authorization weight.
1620
+ *
1621
+ * @generated from message agentmesh.v1.NodeCatalogReport
1622
+ */
1623
+ export type NodeCatalogReport = Message<"agentmesh.v1.NodeCatalogReport"> & {
1624
+ /**
1625
+ * @generated from field: repeated agentmesh.v1.ServiceInfo services = 1;
1626
+ */
1627
+ services: ServiceInfo[];
1628
+ };
1629
+ /**
1630
+ * Describes the message agentmesh.v1.NodeCatalogReport.
1631
+ * Use `create(NodeCatalogReportSchema)` to create a new message.
1632
+ */
1633
+ export declare const NodeCatalogReportSchema: GenMessage<NodeCatalogReport>;
1634
+ /**
1635
+ * @generated from message agentmesh.v1.TokenRevokeRequest
1636
+ */
1637
+ export type TokenRevokeRequest = Message<"agentmesh.v1.TokenRevokeRequest"> & {
1638
+ /**
1639
+ * @generated from field: string peer_id = 1;
1640
+ */
1641
+ peerId: string;
1642
+ };
1643
+ /**
1644
+ * Describes the message agentmesh.v1.TokenRevokeRequest.
1645
+ * Use `create(TokenRevokeRequestSchema)` to create a new message.
1646
+ */
1647
+ export declare const TokenRevokeRequestSchema: GenMessage<TokenRevokeRequest>;
1648
+ /**
1649
+ * @generated from message agentmesh.v1.TokenRevokeResponse
1650
+ */
1651
+ export type TokenRevokeResponse = Message<"agentmesh.v1.TokenRevokeResponse"> & {
1652
+ /**
1653
+ * @generated from field: bool success = 1;
1654
+ */
1655
+ success: boolean;
1656
+ /**
1657
+ * @generated from field: string error = 2;
1658
+ */
1659
+ error: string;
1660
+ };
1661
+ /**
1662
+ * Describes the message agentmesh.v1.TokenRevokeResponse.
1663
+ * Use `create(TokenRevokeResponseSchema)` to create a new message.
1664
+ */
1665
+ export declare const TokenRevokeResponseSchema: GenMessage<TokenRevokeResponse>;
1666
+ /**
1667
+ * BootstrapTokenCreateRequest is the body of POST /admin/bootstrap-tokens
1668
+ * (admin bearer) and POST /user/bootstrap-tokens (mesh user).
1669
+ *
1670
+ * @generated from message agentmesh.v1.BootstrapTokenCreateRequest
1671
+ */
1672
+ export type BootstrapTokenCreateRequest = Message<"agentmesh.v1.BootstrapTokenCreateRequest"> & {
1673
+ /**
1674
+ * Role the token enrolls into, e.g. "mesh:role:node". Required on the admin
1675
+ * endpoint; the user endpoint defaults it to "mesh:role:node".
1676
+ *
1677
+ * @generated from field: string role = 1;
1678
+ */
1679
+ role: string;
1680
+ /**
1681
+ * User the token is issued on behalf of. Honored by the user endpoint
1682
+ * only, and only for admins; defaults to the caller.
1683
+ *
1684
+ * @generated from field: string owner_id = 2;
1685
+ */
1686
+ ownerId: string;
1687
+ /**
1688
+ * How long the token stays valid; unset or non-positive means 24.
1689
+ *
1690
+ * @generated from field: int32 ttl_hours = 3;
1691
+ */
1692
+ ttlHours: number;
1693
+ /**
1694
+ * How many enrollments the token admits; unset or non-positive means 1.
1695
+ *
1696
+ * @generated from field: int32 max_usages = 4;
1697
+ */
1698
+ maxUsages: number;
1699
+ /**
1700
+ * Free-form operator note stored with the token.
1701
+ *
1702
+ * @generated from field: string description = 5;
1703
+ */
1704
+ description: string;
1705
+ /**
1706
+ * Copied onto every node the token enrolls: such a node may still refresh
1707
+ * its credential after the control plane's signing key rotated past its
1708
+ * grace period, on proof of possession of its own key alone. Admin-only,
1709
+ * because a node that can always recover holds a credential that never
1710
+ * expires.
1711
+ *
1712
+ * @generated from field: bool autonomous_recovery = 6;
1713
+ */
1714
+ autonomousRecovery: boolean;
1715
+ /**
1716
+ * Copied onto every node the token enrolls: such a node is forgotten
1717
+ * soon after it falls silent (the control plane's
1718
+ * --ephemeral-node-retention, an hour by default) instead of being kept
1719
+ * for --node-retention. For members that come and go: a fleet in a scale
1720
+ * test, a probe, a CI job.
1721
+ *
1722
+ * @generated from field: bool ephemeral = 7;
1723
+ */
1724
+ ephemeral: boolean;
1725
+ };
1726
+ /**
1727
+ * Describes the message agentmesh.v1.BootstrapTokenCreateRequest.
1728
+ * Use `create(BootstrapTokenCreateRequestSchema)` to create a new message.
1729
+ */
1730
+ export declare const BootstrapTokenCreateRequestSchema: GenMessage<BootstrapTokenCreateRequest>;
1731
+ /**
1732
+ * BootstrapTokenCreateResponse is returned (201) when a token is minted.
1733
+ * token is the plaintext and is shown exactly once; the control plane keeps
1734
+ * only its hash, which is also the id.
1735
+ *
1736
+ * @generated from message agentmesh.v1.BootstrapTokenCreateResponse
1737
+ */
1738
+ export type BootstrapTokenCreateResponse = Message<"agentmesh.v1.BootstrapTokenCreateResponse"> & {
1739
+ /**
1740
+ * @generated from field: string id = 1;
1741
+ */
1742
+ id: string;
1743
+ /**
1744
+ * @generated from field: string token = 2;
1745
+ */
1746
+ token: string;
1747
+ /**
1748
+ * @generated from field: string role = 3;
1749
+ */
1750
+ role: string;
1751
+ /**
1752
+ * @generated from field: string owner_id = 4;
1753
+ */
1754
+ ownerId: string;
1755
+ /**
1756
+ * @generated from field: google.protobuf.Timestamp expire_time = 5;
1757
+ */
1758
+ expireTime?: Timestamp | undefined;
1759
+ };
1760
+ /**
1761
+ * Describes the message agentmesh.v1.BootstrapTokenCreateResponse.
1762
+ * Use `create(BootstrapTokenCreateResponseSchema)` to create a new message.
1763
+ */
1764
+ export declare const BootstrapTokenCreateResponseSchema: GenMessage<BootstrapTokenCreateResponse>;
1765
+ /**
1766
+ * BootstrapToken is a minted token as operators list it.
1767
+ *
1768
+ * @generated from message agentmesh.v1.BootstrapToken
1769
+ */
1770
+ export type BootstrapToken = Message<"agentmesh.v1.BootstrapToken"> & {
1771
+ /**
1772
+ * @generated from field: string id = 1;
1773
+ */
1774
+ id: string;
1775
+ /**
1776
+ * @generated from field: string role = 2;
1777
+ */
1778
+ role: string;
1779
+ /**
1780
+ * @generated from field: string owner_id = 3;
1781
+ */
1782
+ ownerId: string;
1783
+ /**
1784
+ * @generated from field: int32 max_usages = 4;
1785
+ */
1786
+ maxUsages: number;
1787
+ /**
1788
+ * @generated from field: int32 usages_count = 5;
1789
+ */
1790
+ usagesCount: number;
1791
+ /**
1792
+ * @generated from field: string description = 6;
1793
+ */
1794
+ description: string;
1795
+ /**
1796
+ * @generated from field: google.protobuf.Timestamp create_time = 7;
1797
+ */
1798
+ createTime?: Timestamp | undefined;
1799
+ /**
1800
+ * @generated from field: google.protobuf.Timestamp expire_time = 8;
1801
+ */
1802
+ expireTime?: Timestamp | undefined;
1803
+ /**
1804
+ * Set when an operator revoked the token, which is distinct from expiry
1805
+ * or exhausted usages. Unset means never revoked.
1806
+ *
1807
+ * @generated from field: google.protobuf.Timestamp revoke_time = 9;
1808
+ */
1809
+ revokeTime?: Timestamp | undefined;
1810
+ /**
1811
+ * @generated from field: bool autonomous_recovery = 10;
1812
+ */
1813
+ autonomousRecovery: boolean;
1814
+ /**
1815
+ * @generated from field: bool ephemeral = 11;
1816
+ */
1817
+ ephemeral: boolean;
1818
+ };
1819
+ /**
1820
+ * Describes the message agentmesh.v1.BootstrapToken.
1821
+ * Use `create(BootstrapTokenSchema)` to create a new message.
1822
+ */
1823
+ export declare const BootstrapTokenSchema: GenMessage<BootstrapToken>;
1824
+ /**
1825
+ * @generated from message agentmesh.v1.BootstrapTokenListResponse
1826
+ */
1827
+ export type BootstrapTokenListResponse = Message<"agentmesh.v1.BootstrapTokenListResponse"> & {
1828
+ /**
1829
+ * @generated from field: repeated agentmesh.v1.BootstrapToken tokens = 1;
1830
+ */
1831
+ tokens: BootstrapToken[];
1832
+ };
1833
+ /**
1834
+ * Describes the message agentmesh.v1.BootstrapTokenListResponse.
1835
+ * Use `create(BootstrapTokenListResponseSchema)` to create a new message.
1836
+ */
1837
+ export declare const BootstrapTokenListResponseSchema: GenMessage<BootstrapTokenListResponse>;
1838
+ /**
1839
+ * EnrollmentRequest is a bootstrap enrollment awaiting or past an operator
1840
+ * decision (see BootstrapEnrollRequest).
1841
+ *
1842
+ * @generated from message agentmesh.v1.EnrollmentRequest
1843
+ */
1844
+ export type EnrollmentRequest = Message<"agentmesh.v1.EnrollmentRequest"> & {
1845
+ /**
1846
+ * @generated from field: string id = 1;
1847
+ */
1848
+ id: string;
1849
+ /**
1850
+ * @generated from field: string peer_id = 2;
1851
+ */
1852
+ peerId: string;
1853
+ /**
1854
+ * The bootstrap token the request was made with.
1855
+ *
1856
+ * @generated from field: string token_id = 3;
1857
+ */
1858
+ tokenId: string;
1859
+ /**
1860
+ * @generated from field: agentmesh.v1.EnrollmentStatus status = 4;
1861
+ */
1862
+ status: EnrollmentStatus;
1863
+ /**
1864
+ * Labels the node declared; approval attests them into its biscuit.
1865
+ *
1866
+ * @generated from field: map<string, string> labels = 5;
1867
+ */
1868
+ labels: {
1869
+ [key: string]: string;
1870
+ };
1871
+ /**
1872
+ * @generated from field: google.protobuf.Timestamp create_time = 6;
1873
+ */
1874
+ createTime?: Timestamp | undefined;
1875
+ /**
1876
+ * Unset while the request is pending.
1877
+ *
1878
+ * @generated from field: google.protobuf.Timestamp resolve_time = 7;
1879
+ */
1880
+ resolveTime?: Timestamp | undefined;
1881
+ /**
1882
+ * @generated from field: string resolved_by = 8;
1883
+ */
1884
+ resolvedBy: string;
1885
+ };
1886
+ /**
1887
+ * Describes the message agentmesh.v1.EnrollmentRequest.
1888
+ * Use `create(EnrollmentRequestSchema)` to create a new message.
1889
+ */
1890
+ export declare const EnrollmentRequestSchema: GenMessage<EnrollmentRequest>;
1891
+ /**
1892
+ * @generated from message agentmesh.v1.EnrollmentRequestListResponse
1893
+ */
1894
+ export type EnrollmentRequestListResponse = Message<"agentmesh.v1.EnrollmentRequestListResponse"> & {
1895
+ /**
1896
+ * @generated from field: repeated agentmesh.v1.EnrollmentRequest requests = 1;
1897
+ */
1898
+ requests: EnrollmentRequest[];
1899
+ };
1900
+ /**
1901
+ * Describes the message agentmesh.v1.EnrollmentRequestListResponse.
1902
+ * Use `create(EnrollmentRequestListResponseSchema)` to create a new message.
1903
+ */
1904
+ export declare const EnrollmentRequestListResponseSchema: GenMessage<EnrollmentRequestListResponse>;
1905
+ /**
1906
+ * User is a human identity known to the mesh.
1907
+ *
1908
+ * @generated from message agentmesh.v1.User
1909
+ */
1910
+ export type User = Message<"agentmesh.v1.User"> & {
1911
+ /**
1912
+ * The identity provider's subject.
1913
+ *
1914
+ * @generated from field: string id = 1;
1915
+ */
1916
+ id: string;
1917
+ /**
1918
+ * @generated from field: string issuer = 2;
1919
+ */
1920
+ issuer: string;
1921
+ /**
1922
+ * @generated from field: string email = 3;
1923
+ */
1924
+ email: string;
1925
+ /**
1926
+ * "admin" or "user".
1927
+ *
1928
+ * @generated from field: string role = 4;
1929
+ */
1930
+ role: string;
1931
+ /**
1932
+ * @generated from field: google.protobuf.Timestamp create_time = 5;
1933
+ */
1934
+ createTime?: Timestamp | undefined;
1935
+ };
1936
+ /**
1937
+ * Describes the message agentmesh.v1.User.
1938
+ * Use `create(UserSchema)` to create a new message.
1939
+ */
1940
+ export declare const UserSchema: GenMessage<User>;
1941
+ /**
1942
+ * EnrolledNode is a member's enrollment record without its credential.
1943
+ *
1944
+ * @generated from message agentmesh.v1.EnrolledNode
1945
+ */
1946
+ export type EnrolledNode = Message<"agentmesh.v1.EnrolledNode"> & {
1947
+ /**
1948
+ * @generated from field: string peer_id = 1;
1949
+ */
1950
+ peerId: string;
1951
+ /**
1952
+ * @generated from field: string role = 2;
1953
+ */
1954
+ role: string;
1955
+ /**
1956
+ * How the node enrolled, e.g. "oidc" or "bootstrap".
1957
+ *
1958
+ * @generated from field: string enrollment_type = 3;
1959
+ */
1960
+ enrollmentType: string;
1961
+ /**
1962
+ * The identity provider's claims as stored at enrollment. Admin-only.
1963
+ *
1964
+ * @generated from field: string claims_json = 4;
1965
+ */
1966
+ claimsJson: string;
1967
+ /**
1968
+ * @generated from field: string owner_id = 5;
1969
+ */
1970
+ ownerId: string;
1971
+ /**
1972
+ * @generated from field: map<string, string> labels = 6;
1973
+ */
1974
+ labels: {
1975
+ [key: string]: string;
1976
+ };
1977
+ /**
1978
+ * @generated from field: google.protobuf.Timestamp enroll_time = 7;
1979
+ */
1980
+ enrollTime?: Timestamp | undefined;
1981
+ /**
1982
+ * When the enrollment session ends; unset means it does not expire.
1983
+ *
1984
+ * @generated from field: google.protobuf.Timestamp expire_time = 8;
1985
+ */
1986
+ expireTime?: Timestamp | undefined;
1987
+ /**
1988
+ * @generated from field: bool banned = 9;
1989
+ */
1990
+ banned: boolean;
1991
+ /**
1992
+ * @generated from field: bool autonomous_recovery = 10;
1993
+ */
1994
+ autonomousRecovery: boolean;
1995
+ /**
1996
+ * The node was enrolled by an ephemeral token and is forgotten soon after
1997
+ * it falls silent.
1998
+ *
1999
+ * @generated from field: bool ephemeral = 11;
2000
+ */
2001
+ ephemeral: boolean;
2002
+ };
2003
+ /**
2004
+ * Describes the message agentmesh.v1.EnrolledNode.
2005
+ * Use `create(EnrolledNodeSchema)` to create a new message.
2006
+ */
2007
+ export declare const EnrolledNodeSchema: GenMessage<EnrolledNode>;
2008
+ /**
2009
+ * RouterLease is a router's current registration with the control plane.
2010
+ *
2011
+ * @generated from message agentmesh.v1.RouterLease
2012
+ */
2013
+ export type RouterLease = Message<"agentmesh.v1.RouterLease"> & {
2014
+ /**
2015
+ * @generated from field: string peer_id = 1;
2016
+ */
2017
+ peerId: string;
2018
+ /**
2019
+ * Multiaddrs, `/p2p/<peer id>` suffixed.
2020
+ *
2021
+ * @generated from field: repeated string addresses = 2;
2022
+ */
2023
+ addresses: string[];
2024
+ /**
2025
+ * @generated from field: google.protobuf.Timestamp last_renewal_time = 3;
2026
+ */
2027
+ lastRenewalTime?: Timestamp | undefined;
2028
+ /**
2029
+ * @generated from field: google.protobuf.Timestamp expire_time = 4;
2030
+ */
2031
+ expireTime?: Timestamp | undefined;
2032
+ /**
2033
+ * @generated from field: repeated string connected_peers = 5;
2034
+ */
2035
+ connectedPeers: string[];
2036
+ /**
2037
+ * @generated from field: int32 dht_size = 6;
2038
+ */
2039
+ dhtSize: number;
2040
+ };
2041
+ /**
2042
+ * Describes the message agentmesh.v1.RouterLease.
2043
+ * Use `create(RouterLeaseSchema)` to create a new message.
2044
+ */
2045
+ export declare const RouterLeaseSchema: GenMessage<RouterLease>;
2046
+ /**
2047
+ * NodeServices is the services one node last reported (see
2048
+ * NodeCatalogReport).
2049
+ *
2050
+ * @generated from message agentmesh.v1.NodeServices
2051
+ */
2052
+ export type NodeServices = Message<"agentmesh.v1.NodeServices"> & {
2053
+ /**
2054
+ * @generated from field: repeated agentmesh.v1.ServiceInfo services = 1;
2055
+ */
2056
+ services: ServiceInfo[];
2057
+ /**
2058
+ * @generated from field: google.protobuf.Timestamp report_time = 2;
2059
+ */
2060
+ reportTime?: Timestamp | undefined;
2061
+ };
2062
+ /**
2063
+ * Describes the message agentmesh.v1.NodeServices.
2064
+ * Use `create(NodeServicesSchema)` to create a new message.
2065
+ */
2066
+ export declare const NodeServicesSchema: GenMessage<NodeServices>;
2067
+ /**
2068
+ * AdminStatusResponse answers GET /admin/status: everything the console
2069
+ * shows an administrator, except expired nodes (see GET /user/nodes).
2070
+ *
2071
+ * @generated from message agentmesh.v1.AdminStatusResponse
2072
+ */
2073
+ export type AdminStatusResponse = Message<"agentmesh.v1.AdminStatusResponse"> & {
2074
+ /**
2075
+ * @generated from field: repeated agentmesh.v1.User users = 1;
2076
+ */
2077
+ users: User[];
2078
+ /**
2079
+ * @generated from field: repeated agentmesh.v1.RouterLease active_routers = 2;
2080
+ */
2081
+ activeRouters: RouterLease[];
2082
+ /**
2083
+ * @generated from field: repeated agentmesh.v1.EnrolledNode enrolled_nodes = 3;
2084
+ */
2085
+ enrolledNodes: EnrolledNode[];
2086
+ /**
2087
+ * @generated from field: repeated agentmesh.v1.EnrollmentRequest enrollment_requests = 4;
2088
+ */
2089
+ enrollmentRequests: EnrollmentRequest[];
2090
+ /**
2091
+ * @generated from field: repeated agentmesh.v1.BootstrapToken bootstrap_tokens = 5;
2092
+ */
2093
+ bootstrapTokens: BootstrapToken[];
2094
+ /**
2095
+ * @generated from field: agentmesh.v1.PolicyConfig policy = 6;
2096
+ */
2097
+ policy?: PolicyConfig | undefined;
2098
+ /**
2099
+ * Keyed by the reporting node's peer ID; admitted nodes only.
2100
+ *
2101
+ * @generated from field: map<string, agentmesh.v1.NodeServices> node_catalog = 7;
2102
+ */
2103
+ nodeCatalog: {
2104
+ [key: string]: NodeServices;
2105
+ };
2106
+ };
2107
+ /**
2108
+ * Describes the message agentmesh.v1.AdminStatusResponse.
2109
+ * Use `create(AdminStatusResponseSchema)` to create a new message.
2110
+ */
2111
+ export declare const AdminStatusResponseSchema: GenMessage<AdminStatusResponse>;
2112
+ /**
2113
+ * UserStatusResponse answers GET /user/status: the caller and what it owns,
2114
+ * except expired nodes (see GET /user/nodes). The router fleet and the mesh
2115
+ * policy describe the whole mesh and are set for an administrator only.
2116
+ *
2117
+ * @generated from message agentmesh.v1.UserStatusResponse
2118
+ */
2119
+ export type UserStatusResponse = Message<"agentmesh.v1.UserStatusResponse"> & {
2120
+ /**
2121
+ * @generated from field: agentmesh.v1.User user = 1;
2122
+ */
2123
+ user?: User | undefined;
2124
+ /**
2125
+ * @generated from field: repeated agentmesh.v1.EnrolledNode enrolled_nodes = 2;
2126
+ */
2127
+ enrolledNodes: EnrolledNode[];
2128
+ /**
2129
+ * @generated from field: repeated agentmesh.v1.BootstrapToken bootstrap_tokens = 3;
2130
+ */
2131
+ bootstrapTokens: BootstrapToken[];
2132
+ /**
2133
+ * @generated from field: repeated agentmesh.v1.RouterLease active_routers = 4;
2134
+ */
2135
+ activeRouters: RouterLease[];
2136
+ /**
2137
+ * @generated from field: agentmesh.v1.PolicyConfig policy = 5;
2138
+ */
2139
+ policy?: PolicyConfig | undefined;
2140
+ };
2141
+ /**
2142
+ * Describes the message agentmesh.v1.UserStatusResponse.
2143
+ * Use `create(UserStatusResponseSchema)` to create a new message.
2144
+ */
2145
+ export declare const UserStatusResponseSchema: GenMessage<UserStatusResponse>;
2146
+ /**
2147
+ * NodeListResponse answers GET /user/nodes: enrolled nodes, newest enrollment
2148
+ * first, page_size (default 50, at most 200) at a time. state (admitted,
2149
+ * expired or banned, repeatable) and role narrow the list. An administrator
2150
+ * sees every owner's nodes and may pick one with owner_id; a user sees its own.
2151
+ *
2152
+ * @generated from message agentmesh.v1.NodeListResponse
2153
+ */
2154
+ export type NodeListResponse = Message<"agentmesh.v1.NodeListResponse"> & {
2155
+ /**
2156
+ * @generated from field: repeated agentmesh.v1.EnrolledNode nodes = 1;
2157
+ */
2158
+ nodes: EnrolledNode[];
2159
+ /**
2160
+ * Pass as page_token for the next page; empty on the last page.
2161
+ *
2162
+ * @generated from field: string next_page_token = 2;
2163
+ */
2164
+ nextPageToken: string;
2165
+ };
2166
+ /**
2167
+ * Describes the message agentmesh.v1.NodeListResponse.
2168
+ * Use `create(NodeListResponseSchema)` to create a new message.
2169
+ */
2170
+ export declare const NodeListResponseSchema: GenMessage<NodeListResponse>;
2171
+ /**
2172
+ * @generated from message agentmesh.v1.IdentityEvidenceResponse
2173
+ */
2174
+ export type IdentityEvidenceResponse = Message<"agentmesh.v1.IdentityEvidenceResponse"> & {
2175
+ /**
2176
+ * @generated from field: string peer_id = 1;
2177
+ */
2178
+ peerId: string;
2179
+ /**
2180
+ * @generated from field: bytes biscuit = 2;
2181
+ */
2182
+ biscuit: Uint8Array;
2183
+ /**
2184
+ * @generated from field: google.protobuf.Timestamp biscuit_expire_time = 3;
2185
+ */
2186
+ biscuitExpireTime?: Timestamp | undefined;
2187
+ /**
2188
+ * @generated from field: string control_plane_url = 4;
2189
+ */
2190
+ controlPlaneUrl: string;
2191
+ /**
2192
+ * Ed25519 SPKI DER
2193
+ *
2194
+ * @generated from field: repeated bytes trusted_control_plane_keys = 5;
2195
+ */
2196
+ trustedControlPlaneKeys: Uint8Array[];
2197
+ /**
2198
+ * @generated from field: google.protobuf.Timestamp check_time = 6;
2199
+ */
2200
+ checkTime?: Timestamp | undefined;
2201
+ };
2202
+ /**
2203
+ * Describes the message agentmesh.v1.IdentityEvidenceResponse.
2204
+ * Use `create(IdentityEvidenceResponseSchema)` to create a new message.
2205
+ */
2206
+ export declare const IdentityEvidenceResponseSchema: GenMessage<IdentityEvidenceResponse>;
2207
+ /**
2208
+ * @generated from message agentmesh.v1.PeerEvidenceResponse
2209
+ */
2210
+ export type PeerEvidenceResponse = Message<"agentmesh.v1.PeerEvidenceResponse"> & {
2211
+ /**
2212
+ * @generated from field: string peer_id = 1;
2213
+ */
2214
+ peerId: string;
2215
+ /**
2216
+ * @generated from field: bytes biscuit = 2;
2217
+ */
2218
+ biscuit: Uint8Array;
2219
+ /**
2220
+ * Ed25519 SPKI DER, member of the trusted set
2221
+ *
2222
+ * @generated from field: bytes verifying_key = 3;
2223
+ */
2224
+ verifyingKey: Uint8Array;
2225
+ /**
2226
+ * @generated from field: repeated string roles = 4;
2227
+ */
2228
+ roles: string[];
2229
+ /**
2230
+ * @generated from field: map<string, string> labels = 5;
2231
+ */
2232
+ labels: {
2233
+ [key: string]: string;
2234
+ };
2235
+ /**
2236
+ * @generated from field: google.protobuf.Timestamp expire_time = 6;
2237
+ */
2238
+ expireTime?: Timestamp | undefined;
2239
+ /**
2240
+ * hex
2241
+ *
2242
+ * @generated from field: repeated string revocation_ids = 7;
2243
+ */
2244
+ revocationIds: string[];
2245
+ /**
2246
+ * @generated from field: google.protobuf.Timestamp check_time = 8;
2247
+ */
2248
+ checkTime?: Timestamp | undefined;
2249
+ };
2250
+ /**
2251
+ * Describes the message agentmesh.v1.PeerEvidenceResponse.
2252
+ * Use `create(PeerEvidenceResponseSchema)` to create a new message.
2253
+ */
2254
+ export declare const PeerEvidenceResponseSchema: GenMessage<PeerEvidenceResponse>;
2255
+ /**
2256
+ * @generated from message agentmesh.v1.MemberCredential
2257
+ */
2258
+ export type MemberCredential = Message<"agentmesh.v1.MemberCredential"> & {
2259
+ /**
2260
+ * Base URL of the control plane that minted the biscuit.
2261
+ *
2262
+ * @generated from field: string control_plane_url = 1;
2263
+ */
2264
+ controlPlaneUrl: string;
2265
+ /**
2266
+ * The member's biscuit.
2267
+ *
2268
+ * @generated from field: bytes biscuit = 2;
2269
+ */
2270
+ biscuit: Uint8Array;
2271
+ /**
2272
+ * When the biscuit expires.
2273
+ *
2274
+ * @generated from field: google.protobuf.Timestamp expire_time = 3;
2275
+ */
2276
+ expireTime?: Timestamp | undefined;
2277
+ /**
2278
+ * Control plane signing keys trusted now; a rotation keeps several valid.
2279
+ *
2280
+ * @generated from field: repeated agentmesh.v1.TrustedSigningKey trusted_keys = 4;
2281
+ */
2282
+ trustedKeys: TrustedSigningKey[];
2283
+ /**
2284
+ * The keys trusted when the biscuit was issued. A key trusted now that is
2285
+ * absent here means a rotation happened since: the biscuit is signed by a
2286
+ * retiring key and must be refreshed before that key leaves its grace
2287
+ * period.
2288
+ *
2289
+ * @generated from field: repeated bytes issued_under_keys = 5;
2290
+ */
2291
+ issuedUnderKeys: Uint8Array[];
2292
+ /**
2293
+ * Router multiaddrs, `/p2p/<peer id>` suffixed.
2294
+ *
2295
+ * @generated from field: repeated string router_addresses = 6;
2296
+ */
2297
+ routerAddresses: string[];
2298
+ /**
2299
+ * The session that renews an identity enrolled through the mesh's
2300
+ * identity provider. Unset for a member enrolled with a bootstrap token.
2301
+ *
2302
+ * @generated from field: agentmesh.v1.OIDCSession oidc_session = 7;
2303
+ */
2304
+ oidcSession?: OIDCSession | undefined;
2305
+ };
2306
+ /**
2307
+ * Describes the message agentmesh.v1.MemberCredential.
2308
+ * Use `create(MemberCredentialSchema)` to create a new message.
2309
+ */
2310
+ export declare const MemberCredentialSchema: GenMessage<MemberCredential>;
2311
+ /**
2312
+ * @generated from message agentmesh.v1.TrustedSigningKey
2313
+ */
2314
+ export type TrustedSigningKey = Message<"agentmesh.v1.TrustedSigningKey"> & {
2315
+ /**
2316
+ * Raw ed25519 public key.
2317
+ *
2318
+ * @generated from field: bytes public_key = 1;
2319
+ */
2320
+ publicKey: Uint8Array;
2321
+ /**
2322
+ * When the member first learned the key. A key rotated out is dropped a
2323
+ * grace period after this; unset means unknown and is read as now.
2324
+ *
2325
+ * @generated from field: google.protobuf.Timestamp receive_time = 2;
2326
+ */
2327
+ receiveTime?: Timestamp | undefined;
2328
+ };
2329
+ /**
2330
+ * Describes the message agentmesh.v1.TrustedSigningKey.
2331
+ * Use `create(TrustedSigningKeySchema)` to create a new message.
2332
+ */
2333
+ export declare const TrustedSigningKeySchema: GenMessage<TrustedSigningKey>;
2334
+ /**
2335
+ * @generated from message agentmesh.v1.OIDCSession
2336
+ */
2337
+ export type OIDCSession = Message<"agentmesh.v1.OIDCSession"> & {
2338
+ /**
2339
+ * @generated from field: string issuer = 1;
2340
+ */
2341
+ issuer: string;
2342
+ /**
2343
+ * @generated from field: string client_id = 2;
2344
+ */
2345
+ clientId: string;
2346
+ /**
2347
+ * @generated from field: string audience = 3;
2348
+ */
2349
+ audience: string;
2350
+ /**
2351
+ * @generated from field: string refresh_token = 4;
2352
+ */
2353
+ refreshToken: string;
2354
+ };
2355
+ /**
2356
+ * Describes the message agentmesh.v1.OIDCSession.
2357
+ * Use `create(OIDCSessionSchema)` to create a new message.
2358
+ */
2359
+ export declare const OIDCSessionSchema: GenMessage<OIDCSession>;
2360
+ /**
2361
+ * TaskAuthorizationRule narrows a credential's authority for a specific task or
2362
+ * sub-agent hop. Across multiple appended blocks (1..k), semantics are strict
2363
+ * set intersection (logical AND): a request is permitted only if it is allowed
2364
+ * by the standing mesh policy AND is before every block's expire_time AND
2365
+ * matches at least one TaskRule in EVERY appended TaskAuthorizationRule block.
2366
+ *
2367
+ * @generated from message agentmesh.v1.TaskAuthorizationRule
2368
+ */
2369
+ export type TaskAuthorizationRule = Message<"agentmesh.v1.TaskAuthorizationRule"> & {
2370
+ /**
2371
+ * @generated from field: string name = 1;
2372
+ */
2373
+ name: string;
2374
+ /**
2375
+ * @generated from field: string display_name = 2;
2376
+ */
2377
+ displayName: string;
2378
+ /**
2379
+ * Positive allow-list of rules for this hop. Empty rules list denies everything.
2380
+ *
2381
+ * @generated from field: repeated agentmesh.v1.TaskRule rules = 3;
2382
+ */
2383
+ rules: TaskRule[];
2384
+ /**
2385
+ * Optional shorter expiration for this task hop. Effective token expiry is
2386
+ * the minimum across the authority block's expiration() fact and every
2387
+ * appended block's expire_time.
2388
+ *
2389
+ * @generated from field: google.protobuf.Timestamp expire_time = 4;
2390
+ */
2391
+ expireTime?: Timestamp | undefined;
2392
+ };
2393
+ /**
2394
+ * Describes the message agentmesh.v1.TaskAuthorizationRule.
2395
+ * Use `create(TaskAuthorizationRuleSchema)` to create a new message.
2396
+ */
2397
+ export declare const TaskAuthorizationRuleSchema: GenMessage<TaskAuthorizationRule>;
2398
+ /**
2399
+ * @generated from message agentmesh.v1.TaskRule
2400
+ */
2401
+ export type TaskRule = Message<"agentmesh.v1.TaskRule"> & {
2402
+ /**
2403
+ * @generated from field: string description = 1;
2404
+ */
2405
+ description: string;
2406
+ /**
2407
+ * Allowed mesh services (e.g., "mcp://bigquery", "inference://gemini.*",
2408
+ * "egress://bigquery.googleapis.com"). Uses the dot-anchored grammar of
2409
+ * api.ValidateServiceFormat ("*", "<type>://*", "<type>://*.<suffix>",
2410
+ * "<type>://<prefix>.*", "<type>://<exact>"). Required (non-empty).
2411
+ *
2412
+ * @generated from field: repeated string allowed_services = 2;
2413
+ */
2414
+ allowedServices: string[];
2415
+ /**
2416
+ * Optional operation-level allow-list. If set, the request must also match
2417
+ * the specified MCP tools, HTTP methods/paths, or cloud permissions.
2418
+ *
2419
+ * @generated from field: agentmesh.v1.TaskOperation operation = 3;
2420
+ */
2421
+ operation?: TaskOperation | undefined;
2422
+ /**
2423
+ * Optional allowed upstream resource names (e.g. CRM resource prefixes
2424
+ * "//bigquery.googleapis.com/projects/my-proj/datasets/sales_2026").
2425
+ * Opaque to the wire PEP; consumed by CloudTokenExchanger at egress.
2426
+ *
2427
+ * @generated from field: repeated string allowed_resources = 4;
2428
+ */
2429
+ allowedResources: string[];
2430
+ };
2431
+ /**
2432
+ * Describes the message agentmesh.v1.TaskRule.
2433
+ * Use `create(TaskRuleSchema)` to create a new message.
2434
+ */
2435
+ export declare const TaskRuleSchema: GenMessage<TaskRule>;
2436
+ /**
2437
+ * @generated from message agentmesh.v1.TaskOperation
2438
+ */
2439
+ export type TaskOperation = Message<"agentmesh.v1.TaskOperation"> & {
2440
+ /**
2441
+ * Allowed MCP tool names (enforced by the PEP on mcp:// tools/call).
2442
+ *
2443
+ * @generated from field: repeated string allowed_tools = 1;
2444
+ */
2445
+ allowedTools: string[];
2446
+ /**
2447
+ * Allowed HTTP methods (e.g. ["GET", "POST"]), validated with httpMethodSyntax.
2448
+ *
2449
+ * @generated from field: repeated string allowed_methods = 2;
2450
+ */
2451
+ allowedMethods: string[];
2452
+ /**
2453
+ * Allowed HTTP path patterns ("/exact" or "/prefix/*"), validated with
2454
+ * validateHTTPGrantPath.
2455
+ *
2456
+ * @generated from field: repeated string allowed_paths = 3;
2457
+ */
2458
+ allowedPaths: string[];
2459
+ /**
2460
+ * Allowed cloud IAM permissions (e.g. "bigquery.googleapis.com/datasets.get").
2461
+ * Opaque to the wire PEP; consumed by CloudTokenExchanger at egress.
2462
+ *
2463
+ * @generated from field: repeated string allowed_permissions = 4;
2464
+ */
2465
+ allowedPermissions: string[];
2466
+ };
2467
+ /**
2468
+ * Describes the message agentmesh.v1.TaskOperation.
2469
+ * Use `create(TaskOperationSchema)` to create a new message.
2470
+ */
2471
+ export declare const TaskOperationSchema: GenMessage<TaskOperation>;
2472
+ /**
2473
+ * TokenExchangeRequest is the body of POST /token/exchange on the control
2474
+ * plane: an enrolled agentmesh-node (authenticated via its own Biscuit in
2475
+ * Authorization: Bearer and proof of possession below) exchanges a caller's
2476
+ * platform JWT (OIDC ID token, K8s projected SA JWT, or SPIFFE JWT-SVID) into
2477
+ * a short-lived Delegated Session Biscuit bound to the calling node's
2478
+ * transport channel (client_peer_id + actor_node, without node()).
2479
+ *
2480
+ * @generated from message agentmesh.v1.TokenExchangeRequest
2481
+ */
2482
+ export type TokenExchangeRequest = Message<"agentmesh.v1.TokenExchangeRequest"> & {
2483
+ /**
2484
+ * The subject's platform JWT to verify against the control plane's OIDC
2485
+ * providers and allowed audiences.
2486
+ *
2487
+ * @generated from field: string subject_token = 1;
2488
+ */
2489
+ subjectToken: string;
2490
+ /**
2491
+ * Optional initial task narrowing to append as block 1 on the minted
2492
+ * Biscuit.
2493
+ *
2494
+ * @generated from field: agentmesh.v1.TaskAuthorizationRule task_rule = 2;
2495
+ */
2496
+ taskRule?: TaskAuthorizationRule | undefined;
2497
+ /**
2498
+ * If true, the minted Biscuit is sealed (b.Seal()) before returning so
2499
+ * downstream holders cannot append further blocks.
2500
+ *
2501
+ * @generated from field: bool seal = 3;
2502
+ */
2503
+ seal: boolean;
2504
+ /**
2505
+ * Proof of possession of the calling node's enrolled key:
2506
+ * challenge_unix_ms is the caller's clock in unix milliseconds and
2507
+ * challenge_signature signs the UTF-8 bytes of
2508
+ * "mesh:token-exchange:<peer_id>:<challenge_unix_ms>".
2509
+ *
2510
+ * @generated from field: int64 challenge_unix_ms = 4;
2511
+ */
2512
+ challengeUnixMs: bigint;
2513
+ /**
2514
+ * @generated from field: bytes challenge_signature = 5;
2515
+ */
2516
+ challengeSignature: Uint8Array;
2517
+ };
2518
+ /**
2519
+ * Describes the message agentmesh.v1.TokenExchangeRequest.
2520
+ * Use `create(TokenExchangeRequestSchema)` to create a new message.
2521
+ */
2522
+ export declare const TokenExchangeRequestSchema: GenMessage<TokenExchangeRequest>;
2523
+ /**
2524
+ * @generated from message agentmesh.v1.TokenExchangeResponse
2525
+ */
2526
+ export type TokenExchangeResponse = Message<"agentmesh.v1.TokenExchangeResponse"> & {
2527
+ /**
2528
+ * @generated from field: bytes biscuit_token = 1;
2529
+ */
2530
+ biscuitToken: Uint8Array;
2531
+ /**
2532
+ * @generated from field: google.protobuf.Timestamp expire_time = 2;
2533
+ */
2534
+ expireTime?: Timestamp | undefined;
2535
+ /**
2536
+ * @generated from field: repeated string roles = 3;
2537
+ */
2538
+ roles: string[];
2539
+ /**
2540
+ * @generated from field: string subject = 4;
2541
+ */
2542
+ subject: string;
2543
+ };
2544
+ /**
2545
+ * Describes the message agentmesh.v1.TokenExchangeResponse.
2546
+ * Use `create(TokenExchangeResponseSchema)` to create a new message.
2547
+ */
2548
+ export declare const TokenExchangeResponseSchema: GenMessage<TokenExchangeResponse>;
2549
+ /**
2550
+ * STSTokenRequest is the body of POST /sts/token on the control plane: an
2551
+ * enrolled egress agentmesh-node asks the control plane (acting as OIDC issuer) to
2552
+ * verify a caller's Biscuit and TaskAuthorizationRule chain for an egress
2553
+ * destination and mint a short-lived ES256 border JWT for cloud STS federation.
2554
+ *
2555
+ * @generated from message agentmesh.v1.STSTokenRequest
2556
+ */
2557
+ export type STSTokenRequest = Message<"agentmesh.v1.STSTokenRequest"> & {
2558
+ /**
2559
+ * The caller's Biscuit token (authority block + any tar_block chain).
2560
+ *
2561
+ * @generated from field: bytes biscuit = 1;
2562
+ */
2563
+ biscuit: Uint8Array;
2564
+ /**
2565
+ * The egress destination hostname (e.g. "bigquery.googleapis.com").
2566
+ *
2567
+ * @generated from field: string destination = 2;
2568
+ */
2569
+ destination: string;
2570
+ /**
2571
+ * Optional explicit audience for the border JWT when not derived from the
2572
+ * destination's broker configuration.
2573
+ *
2574
+ * @generated from field: string audience = 3;
2575
+ */
2576
+ audience: string;
2577
+ /**
2578
+ * Proof of possession of the calling egress node's enrolled key:
2579
+ * challenge_unix_ms is the caller's clock in unix milliseconds and
2580
+ * challenge_signature signs the UTF-8 bytes of
2581
+ * "mesh:sts-token:<peer_id>:<challenge_unix_ms>".
2582
+ *
2583
+ * @generated from field: int64 challenge_unix_ms = 4;
2584
+ */
2585
+ challengeUnixMs: bigint;
2586
+ /**
2587
+ * @generated from field: bytes challenge_signature = 5;
2588
+ */
2589
+ challengeSignature: Uint8Array;
2590
+ };
2591
+ /**
2592
+ * Describes the message agentmesh.v1.STSTokenRequest.
2593
+ * Use `create(STSTokenRequestSchema)` to create a new message.
2594
+ */
2595
+ export declare const STSTokenRequestSchema: GenMessage<STSTokenRequest>;
2596
+ /**
2597
+ * @generated from message agentmesh.v1.STSTokenResponse
2598
+ */
2599
+ export type STSTokenResponse = Message<"agentmesh.v1.STSTokenResponse"> & {
2600
+ /**
2601
+ * @generated from field: string jwt = 1;
2602
+ */
2603
+ jwt: string;
2604
+ /**
2605
+ * @generated from field: google.protobuf.Timestamp expire_time = 2;
2606
+ */
2607
+ expireTime?: Timestamp | undefined;
2608
+ /**
2609
+ * @generated from field: string subject = 3;
2610
+ */
2611
+ subject: string;
2612
+ /**
2613
+ * @generated from field: repeated string roles = 4;
2614
+ */
2615
+ roles: string[];
2616
+ /**
2617
+ * @generated from field: string task_name = 5;
2618
+ */
2619
+ taskName: string;
2620
+ };
2621
+ /**
2622
+ * Describes the message agentmesh.v1.STSTokenResponse.
2623
+ * Use `create(STSTokenResponseSchema)` to create a new message.
2624
+ */
2625
+ export declare const STSTokenResponseSchema: GenMessage<STSTokenResponse>;
2626
+ /**
2627
+ * RevocationsResponse answers GET /revocations on the control plane: the set of
2628
+ * revoked Biscuit authority revocation IDs (hex-encoded RevocationIds()[0]) and
2629
+ * banned peer IDs.
2630
+ *
2631
+ * @generated from message agentmesh.v1.RevocationsResponse
2632
+ */
2633
+ export type RevocationsResponse = Message<"agentmesh.v1.RevocationsResponse"> & {
2634
+ /**
2635
+ * @generated from field: repeated string revocation_ids = 1;
2636
+ */
2637
+ revocationIds: string[];
2638
+ /**
2639
+ * @generated from field: repeated string banned_peer_ids = 2;
2640
+ */
2641
+ bannedPeerIds: string[];
2642
+ };
2643
+ /**
2644
+ * Describes the message agentmesh.v1.RevocationsResponse.
2645
+ * Use `create(RevocationsResponseSchema)` to create a new message.
2646
+ */
2647
+ export declare const RevocationsResponseSchema: GenMessage<RevocationsResponse>;
2648
+ /**
2649
+ * @generated from enum agentmesh.v1.EnrollmentStatus
2650
+ */
2651
+ export declare enum EnrollmentStatus {
2652
+ /**
2653
+ * @generated from enum value: ENROLLMENT_STATUS_UNSPECIFIED = 0;
2654
+ */
2655
+ UNSPECIFIED = 0,
2656
+ /**
2657
+ * @generated from enum value: ENROLLMENT_STATUS_PENDING = 1;
2658
+ */
2659
+ PENDING = 1,
2660
+ /**
2661
+ * @generated from enum value: ENROLLMENT_STATUS_APPROVED = 2;
2662
+ */
2663
+ APPROVED = 2,
2664
+ /**
2665
+ * @generated from enum value: ENROLLMENT_STATUS_REJECTED = 3;
2666
+ */
2667
+ REJECTED = 3
2668
+ }
2669
+ /**
2670
+ * Describes the enum agentmesh.v1.EnrollmentStatus.
2671
+ */
2672
+ export declare const EnrollmentStatusSchema: GenEnum<EnrollmentStatus>;
2673
+ /**
2674
+ * @generated from enum agentmesh.v1.ServiceType
2675
+ */
2676
+ export declare enum ServiceType {
2677
+ /**
2678
+ * @generated from enum value: SERVICE_TYPE_UNSPECIFIED = 0;
2679
+ */
2680
+ UNSPECIFIED = 0,
2681
+ /**
2682
+ * @generated from enum value: SERVICE_TYPE_MCP = 1;
2683
+ */
2684
+ MCP = 1,
2685
+ /**
2686
+ * @generated from enum value: SERVICE_TYPE_INFERENCE = 2;
2687
+ */
2688
+ INFERENCE = 2,
2689
+ /**
2690
+ * @generated from enum value: SERVICE_TYPE_A2A = 3;
2691
+ */
2692
+ A2A = 3,
2693
+ /**
2694
+ * A destination outside the mesh, reached through a node that enforces
2695
+ * policy on it. The service name is the destination hostname, so a grant
2696
+ * reads egress://api.github.com and the request fact
2697
+ * service("egress", "api.github.com").
2698
+ *
2699
+ * @generated from enum value: SERVICE_TYPE_EGRESS = 4;
2700
+ */
2701
+ EGRESS = 4
2702
+ }
2703
+ /**
2704
+ * Describes the enum agentmesh.v1.ServiceType.
2705
+ */
2706
+ export declare const ServiceTypeSchema: GenEnum<ServiceType>;
2707
+ /**
2708
+ * @generated from enum agentmesh.v1.EgressMode
2709
+ */
2710
+ export declare enum EgressMode {
2711
+ /**
2712
+ * @generated from enum value: EGRESS_MODE_HTTP = 0;
2713
+ */
2714
+ HTTP = 0,
2715
+ /**
2716
+ * @generated from enum value: EGRESS_MODE_TCP = 1;
2717
+ */
2718
+ TCP = 1
2719
+ }
2720
+ /**
2721
+ * Describes the enum agentmesh.v1.EgressMode.
2722
+ */
2723
+ export declare const EgressModeSchema: GenEnum<EgressMode>;
2724
+ /**
2725
+ * @generated from enum agentmesh.v1.ResponseInspection
2726
+ */
2727
+ export declare enum ResponseInspection {
2728
+ /**
2729
+ * @generated from enum value: RESPONSE_INSPECTION_BUFFERED = 0;
2730
+ */
2731
+ BUFFERED = 0,
2732
+ /**
2733
+ * @generated from enum value: RESPONSE_INSPECTION_REQUEST_ONLY = 1;
2734
+ */
2735
+ REQUEST_ONLY = 1
2736
+ }
2737
+ /**
2738
+ * Describes the enum agentmesh.v1.ResponseInspection.
2739
+ */
2740
+ export declare const ResponseInspectionSchema: GenEnum<ResponseInspection>;