@openkaiden/opnshll-sdk 0.0.110

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 (42) hide show
  1. package/README.md +186 -0
  2. package/dist/client.d.ts +594 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +930 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/errors.d.ts +18 -0
  7. package/dist/errors.d.ts.map +1 -0
  8. package/dist/errors.js +56 -0
  9. package/dist/errors.js.map +1 -0
  10. package/dist/gen/datamodel_pb.d.ts +246 -0
  11. package/dist/gen/datamodel_pb.d.ts.map +1 -0
  12. package/dist/gen/datamodel_pb.js +58 -0
  13. package/dist/gen/datamodel_pb.js.map +1 -0
  14. package/dist/gen/openshell_pb.d.ts +6739 -0
  15. package/dist/gen/openshell_pb.d.ts.map +1 -0
  16. package/dist/gen/openshell_pb.js +1180 -0
  17. package/dist/gen/openshell_pb.js.map +1 -0
  18. package/dist/gen/options_pb.d.ts +58 -0
  19. package/dist/gen/options_pb.d.ts.map +1 -0
  20. package/dist/gen/options_pb.js +24 -0
  21. package/dist/gen/options_pb.js.map +1 -0
  22. package/dist/gen/sandbox_pb.d.ts +1069 -0
  23. package/dist/gen/sandbox_pb.d.ts.map +1 -0
  24. package/dist/gen/sandbox_pb.js +172 -0
  25. package/dist/gen/sandbox_pb.js.map +1 -0
  26. package/dist/index.d.ts +5 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +5 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/raw.d.ts +5 -0
  31. package/dist/raw.d.ts.map +1 -0
  32. package/dist/raw.js +14 -0
  33. package/dist/raw.js.map +1 -0
  34. package/dist/ssh-validate.d.ts +11 -0
  35. package/dist/ssh-validate.d.ts.map +1 -0
  36. package/dist/ssh-validate.js +58 -0
  37. package/dist/ssh-validate.js.map +1 -0
  38. package/dist/transport.d.ts +29 -0
  39. package/dist/transport.d.ts.map +1 -0
  40. package/dist/transport.js +92 -0
  41. package/dist/transport.js.map +1 -0
  42. package/package.json +58 -0
@@ -0,0 +1,1069 @@
1
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
2
+ import type { JsonObject, Message } from "@bufbuild/protobuf";
3
+ /**
4
+ * Describes the file sandbox.proto.
5
+ */
6
+ export declare const file_sandbox: GenFile;
7
+ /**
8
+ * Sandbox security policy configuration.
9
+ *
10
+ * @generated from message openshell.sandbox.v1.SandboxPolicy
11
+ */
12
+ export type SandboxPolicy = Message<"openshell.sandbox.v1.SandboxPolicy"> & {
13
+ /**
14
+ * Policy version.
15
+ *
16
+ * @generated from field: uint32 version = 1;
17
+ */
18
+ version: number;
19
+ /**
20
+ * Filesystem access policy.
21
+ *
22
+ * @generated from field: openshell.sandbox.v1.FilesystemPolicy filesystem = 2;
23
+ */
24
+ filesystem?: FilesystemPolicy | undefined;
25
+ /**
26
+ * Landlock configuration.
27
+ *
28
+ * @generated from field: openshell.sandbox.v1.LandlockPolicy landlock = 3;
29
+ */
30
+ landlock?: LandlockPolicy | undefined;
31
+ /**
32
+ * Process execution policy.
33
+ *
34
+ * @generated from field: openshell.sandbox.v1.ProcessPolicy process = 4;
35
+ */
36
+ process?: ProcessPolicy | undefined;
37
+ /**
38
+ * Network access policies keyed by name (e.g. "claude_code", "gitlab").
39
+ *
40
+ * @generated from field: map<string, openshell.sandbox.v1.NetworkPolicyRule> network_policies = 5;
41
+ */
42
+ networkPolicies: {
43
+ [key: string]: NetworkPolicyRule;
44
+ };
45
+ /**
46
+ * Reusable supervisor middleware configs for network egress, keyed by their
47
+ * policy-local names. At most 10 configs are accepted, and at most 10 stages
48
+ * can be selected per request.
49
+ *
50
+ * @generated from field: map<string, openshell.sandbox.v1.NetworkMiddlewareConfig> network_middlewares = 6;
51
+ */
52
+ networkMiddlewares: {
53
+ [key: string]: NetworkMiddlewareConfig;
54
+ };
55
+ };
56
+ /**
57
+ * Describes the message openshell.sandbox.v1.SandboxPolicy.
58
+ * Use `create(SandboxPolicySchema)` to create a new message.
59
+ */
60
+ export declare const SandboxPolicySchema: GenMessage<SandboxPolicy>;
61
+ /**
62
+ * Filesystem access policy.
63
+ *
64
+ * @generated from message openshell.sandbox.v1.FilesystemPolicy
65
+ */
66
+ export type FilesystemPolicy = Message<"openshell.sandbox.v1.FilesystemPolicy"> & {
67
+ /**
68
+ * Automatically include the workdir as read-write.
69
+ *
70
+ * @generated from field: bool include_workdir = 1;
71
+ */
72
+ includeWorkdir: boolean;
73
+ /**
74
+ * Read-only directory allow list.
75
+ *
76
+ * @generated from field: repeated string read_only = 2;
77
+ */
78
+ readOnly: string[];
79
+ /**
80
+ * Read-write directory allow list.
81
+ *
82
+ * @generated from field: repeated string read_write = 3;
83
+ */
84
+ readWrite: string[];
85
+ };
86
+ /**
87
+ * Describes the message openshell.sandbox.v1.FilesystemPolicy.
88
+ * Use `create(FilesystemPolicySchema)` to create a new message.
89
+ */
90
+ export declare const FilesystemPolicySchema: GenMessage<FilesystemPolicy>;
91
+ /**
92
+ * Landlock policy configuration.
93
+ *
94
+ * @generated from message openshell.sandbox.v1.LandlockPolicy
95
+ */
96
+ export type LandlockPolicy = Message<"openshell.sandbox.v1.LandlockPolicy"> & {
97
+ /**
98
+ * Compatibility mode (e.g. "best_effort", "hard_requirement").
99
+ *
100
+ * @generated from field: string compatibility = 1;
101
+ */
102
+ compatibility: string;
103
+ };
104
+ /**
105
+ * Describes the message openshell.sandbox.v1.LandlockPolicy.
106
+ * Use `create(LandlockPolicySchema)` to create a new message.
107
+ */
108
+ export declare const LandlockPolicySchema: GenMessage<LandlockPolicy>;
109
+ /**
110
+ * Process execution policy.
111
+ *
112
+ * @generated from message openshell.sandbox.v1.ProcessPolicy
113
+ */
114
+ export type ProcessPolicy = Message<"openshell.sandbox.v1.ProcessPolicy"> & {
115
+ /**
116
+ * User name to run the sandboxed process as.
117
+ *
118
+ * @generated from field: string run_as_user = 1;
119
+ */
120
+ runAsUser: string;
121
+ /**
122
+ * Group name to run the sandboxed process as.
123
+ *
124
+ * @generated from field: string run_as_group = 2;
125
+ */
126
+ runAsGroup: string;
127
+ };
128
+ /**
129
+ * Describes the message openshell.sandbox.v1.ProcessPolicy.
130
+ * Use `create(ProcessPolicySchema)` to create a new message.
131
+ */
132
+ export declare const ProcessPolicySchema: GenMessage<ProcessPolicy>;
133
+ /**
134
+ * A named network access policy rule.
135
+ *
136
+ * @generated from message openshell.sandbox.v1.NetworkPolicyRule
137
+ */
138
+ export type NetworkPolicyRule = Message<"openshell.sandbox.v1.NetworkPolicyRule"> & {
139
+ /**
140
+ * Human-readable name for this policy rule.
141
+ *
142
+ * @generated from field: string name = 1;
143
+ */
144
+ name: string;
145
+ /**
146
+ * Allowed endpoint (host:port) pairs.
147
+ *
148
+ * @generated from field: repeated openshell.sandbox.v1.NetworkEndpoint endpoints = 2;
149
+ */
150
+ endpoints: NetworkEndpoint[];
151
+ /**
152
+ * Allowed binary identities.
153
+ *
154
+ * @generated from field: repeated openshell.sandbox.v1.NetworkBinary binaries = 3;
155
+ */
156
+ binaries: NetworkBinary[];
157
+ };
158
+ /**
159
+ * Describes the message openshell.sandbox.v1.NetworkPolicyRule.
160
+ * Use `create(NetworkPolicyRuleSchema)` to create a new message.
161
+ */
162
+ export declare const NetworkPolicyRuleSchema: GenMessage<NetworkPolicyRule>;
163
+ /**
164
+ * A reusable middleware config selected for admitted egress by host.
165
+ *
166
+ * @generated from message openshell.sandbox.v1.NetworkMiddlewareConfig
167
+ */
168
+ export type NetworkMiddlewareConfig = Message<"openshell.sandbox.v1.NetworkMiddlewareConfig"> & {
169
+ /**
170
+ * Human-readable name for this middleware config.
171
+ *
172
+ * @generated from field: string name = 1;
173
+ */
174
+ name: string;
175
+ /**
176
+ * Built-in middleware name or operator-owned registration name.
177
+ *
178
+ * @generated from field: string middleware = 2;
179
+ */
180
+ middleware: string;
181
+ /**
182
+ * Service-specific configuration.
183
+ *
184
+ * @generated from field: google.protobuf.Struct config = 3;
185
+ */
186
+ config?: JsonObject | undefined;
187
+ /**
188
+ * Failure behavior: "fail_closed" (default) or "fail_open".
189
+ *
190
+ * @generated from field: string on_error = 4;
191
+ */
192
+ onError: string;
193
+ /**
194
+ * Host selector controlling which admitted destinations use this config.
195
+ *
196
+ * @generated from field: openshell.sandbox.v1.MiddlewareEndpointSelector endpoints = 5;
197
+ */
198
+ endpoints?: MiddlewareEndpointSelector | undefined;
199
+ /**
200
+ * Execution order. Values must be unique within a policy; lower values run first.
201
+ *
202
+ * @generated from field: int32 order = 6;
203
+ */
204
+ order: number;
205
+ };
206
+ /**
207
+ * Describes the message openshell.sandbox.v1.NetworkMiddlewareConfig.
208
+ * Use `create(NetworkMiddlewareConfigSchema)` to create a new message.
209
+ */
210
+ export declare const NetworkMiddlewareConfigSchema: GenMessage<NetworkMiddlewareConfig>;
211
+ /**
212
+ * Host selector controlling which admitted destinations use a middleware config.
213
+ *
214
+ * @generated from message openshell.sandbox.v1.MiddlewareEndpointSelector
215
+ */
216
+ export type MiddlewareEndpointSelector = Message<"openshell.sandbox.v1.MiddlewareEndpointSelector"> & {
217
+ /**
218
+ * Exact host or DNS glob patterns included in the selection. Include and
219
+ * exclude accept at most 32 combined patterns.
220
+ *
221
+ * @generated from field: repeated string include = 1;
222
+ */
223
+ include: string[];
224
+ /**
225
+ * Exact host or DNS glob patterns removed from the selection.
226
+ * Exclusions take precedence over inclusions.
227
+ *
228
+ * @generated from field: repeated string exclude = 2;
229
+ */
230
+ exclude: string[];
231
+ };
232
+ /**
233
+ * Describes the message openshell.sandbox.v1.MiddlewareEndpointSelector.
234
+ * Use `create(MiddlewareEndpointSelectorSchema)` to create a new message.
235
+ */
236
+ export declare const MiddlewareEndpointSelectorSchema: GenMessage<MiddlewareEndpointSelector>;
237
+ /**
238
+ * Binds a policy endpoint to static credentials from a sandbox provider.
239
+ *
240
+ * @generated from message openshell.sandbox.v1.NetworkCredentialBinding
241
+ */
242
+ export type NetworkCredentialBinding = Message<"openshell.sandbox.v1.NetworkCredentialBinding"> & {
243
+ /**
244
+ * Name of the provider attached to this sandbox whose static credentials
245
+ * may be resolved for requests admitted by this endpoint.
246
+ *
247
+ * @generated from field: string provider = 1;
248
+ */
249
+ provider: string;
250
+ };
251
+ /**
252
+ * Describes the message openshell.sandbox.v1.NetworkCredentialBinding.
253
+ * Use `create(NetworkCredentialBindingSchema)` to create a new message.
254
+ */
255
+ export declare const NetworkCredentialBindingSchema: GenMessage<NetworkCredentialBinding>;
256
+ /**
257
+ * A network endpoint (host + port) with optional L7 inspection config.
258
+ *
259
+ * @generated from message openshell.sandbox.v1.NetworkEndpoint
260
+ */
261
+ export type NetworkEndpoint = Message<"openshell.sandbox.v1.NetworkEndpoint"> & {
262
+ /**
263
+ * Hostname or host glob pattern. Exact match is case-insensitive.
264
+ * Glob patterns use "." as delimiter: "*.example.com" matches a single
265
+ * subdomain label, "**.example.com" matches across labels.
266
+ *
267
+ * @generated from field: string host = 1;
268
+ */
269
+ host: string;
270
+ /**
271
+ * Single port (backwards compat). Use `ports` for multiple ports.
272
+ * Mutually exclusive with `ports` — if both are set, `ports` takes precedence.
273
+ *
274
+ * @generated from field: uint32 port = 2;
275
+ */
276
+ port: number;
277
+ /**
278
+ * Application protocol for L7 inspection: "rest", "websocket", "graphql", "sql", or "" (L4-only).
279
+ *
280
+ * @generated from field: string protocol = 3;
281
+ */
282
+ protocol: string;
283
+ /**
284
+ * TLS handling: "terminate" or "passthrough" (default).
285
+ *
286
+ * @generated from field: string tls = 4;
287
+ */
288
+ tls: string;
289
+ /**
290
+ * Enforcement mode: "enforce" or "audit" (default).
291
+ *
292
+ * @generated from field: string enforcement = 5;
293
+ */
294
+ enforcement: string;
295
+ /**
296
+ * Access preset shorthand: "read-only", "read-write", "full".
297
+ * Mutually exclusive with rules.
298
+ *
299
+ * @generated from field: string access = 6;
300
+ */
301
+ access: string;
302
+ /**
303
+ * Explicit L7 rules (mutually exclusive with access).
304
+ *
305
+ * @generated from field: repeated openshell.sandbox.v1.L7Rule rules = 7;
306
+ */
307
+ rules: L7Rule[];
308
+ /**
309
+ * Allowed resolved IP addresses or CIDR ranges for this endpoint.
310
+ * When non-empty, the SSRF internal-IP check is replaced by an allowlist check:
311
+ * - If host is also set: domain must resolve to an IP in this list.
312
+ * - If host is empty: any domain is allowed as long as it resolves to an IP in this list.
313
+ * Supports exact IPs ("10.0.5.20") and CIDR notation ("10.0.5.0/24").
314
+ * Loopback (127.0.0.0/8) and link-local (169.254.0.0/16) are always blocked
315
+ * regardless of this field.
316
+ *
317
+ * @generated from field: repeated string allowed_ips = 8;
318
+ */
319
+ allowedIps: string[];
320
+ /**
321
+ * Multiple ports. When non-empty, this endpoint covers all listed ports.
322
+ * If `port` is set and `ports` is empty, `port` is normalized to `ports: [port]`.
323
+ * If both are set, `ports` takes precedence.
324
+ *
325
+ * @generated from field: repeated uint32 ports = 9;
326
+ */
327
+ ports: number[];
328
+ /**
329
+ * Explicit L7 deny rules. When present, requests matching any deny rule
330
+ * are blocked even if they match an allow rule or access preset.
331
+ * Deny rules take precedence over allow rules.
332
+ *
333
+ * @generated from field: repeated openshell.sandbox.v1.L7DenyRule deny_rules = 10;
334
+ */
335
+ denyRules: L7DenyRule[];
336
+ /**
337
+ * When true, percent-encoded '/' (%2F) is preserved in path segments
338
+ * rather than rejected by the L7 path canonicalizer. Required for
339
+ * upstreams like GitLab that embed %2F in namespaced resource paths.
340
+ * Defaults to false (strict).
341
+ *
342
+ * @generated from field: bool allow_encoded_slash = 11;
343
+ */
344
+ allowEncodedSlash: boolean;
345
+ /**
346
+ * GraphQL persisted-query behavior for hash-only/saved-query requests:
347
+ * "deny" (default) or "allow_registered".
348
+ *
349
+ * @generated from field: string persisted_queries = 12;
350
+ */
351
+ persistedQueries: string;
352
+ /**
353
+ * Trusted GraphQL persisted-query registry keyed by hash or service-specific ID.
354
+ * Only used when persisted_queries is "allow_registered".
355
+ *
356
+ * @generated from field: map<string, openshell.sandbox.v1.GraphqlOperation> graphql_persisted_queries = 13;
357
+ */
358
+ graphqlPersistedQueries: {
359
+ [key: string]: GraphqlOperation;
360
+ };
361
+ /**
362
+ * Maximum GraphQL request body bytes to buffer for inspection.
363
+ * Defaults to 65536 when unset.
364
+ *
365
+ * @generated from field: uint32 graphql_max_body_bytes = 14;
366
+ */
367
+ graphqlMaxBodyBytes: number;
368
+ /**
369
+ * Optional HTTP path glob that scopes this L7 endpoint on shared host:port APIs.
370
+ * Example: use path "/graphql" for protocol "graphql" and "/repos/**" for
371
+ * protocol "rest" when both surfaces live under api.example.com:443.
372
+ * Empty means all paths.
373
+ *
374
+ * @generated from field: string path = 15;
375
+ */
376
+ path: string;
377
+ /**
378
+ * When true on a "rest" endpoint, OpenShell rewrites credential placeholders
379
+ * inside client-to-server WebSocket text messages after an allowed HTTP 101
380
+ * upgrade. Defaults to false.
381
+ *
382
+ * @generated from field: bool websocket_credential_rewrite = 16;
383
+ */
384
+ websocketCredentialRewrite: boolean;
385
+ /**
386
+ * When true on a "rest" endpoint, OpenShell rewrites credential placeholders
387
+ * inside supported textual HTTP request bodies before forwarding upstream.
388
+ * Defaults to false.
389
+ *
390
+ * @generated from field: bool request_body_credential_rewrite = 17;
391
+ */
392
+ requestBodyCredentialRewrite: boolean;
393
+ /**
394
+ * Internal provenance marker for policy-advisor generated endpoints.
395
+ * Advisor-proposed endpoints must not satisfy exact-host SSRF trust unless
396
+ * they are converted through an explicit user-authored policy path.
397
+ *
398
+ * @generated from field: bool advisor_proposed = 18;
399
+ */
400
+ advisorProposed: boolean;
401
+ /**
402
+ * Proxy-side credential signing mode: "sigv4" for AWS SigV4 re-signing.
403
+ * When set, the proxy strips the client's Authorization header and computes
404
+ * a fresh SigV4 signature using real credentials from the provider.
405
+ *
406
+ * @generated from field: string credential_signing = 19;
407
+ */
408
+ credentialSigning: string;
409
+ /**
410
+ * AWS signing service name override. Required when credential_signing is
411
+ * "sigv4" — e.g. "bedrock" for bedrock-runtime endpoints.
412
+ *
413
+ * @generated from field: string signing_service = 20;
414
+ */
415
+ signingService: string;
416
+ /**
417
+ * AWS region override for SigV4 signing. When set, takes precedence over
418
+ * hostname-based region extraction. Required for non-standard endpoints.
419
+ *
420
+ * @generated from field: string signing_region = 21;
421
+ */
422
+ signingRegion: string;
423
+ /**
424
+ * Maximum JSON-RPC-over-HTTP request body bytes to buffer for inspection.
425
+ * Defaults to 65536 when unset.
426
+ *
427
+ * @generated from field: uint32 json_rpc_max_body_bytes = 22;
428
+ */
429
+ jsonRpcMaxBodyBytes: number;
430
+ /**
431
+ * MCP-only policy and inspection options. Only used when protocol is "mcp".
432
+ *
433
+ * @generated from field: openshell.sandbox.v1.McpOptions mcp = 23;
434
+ */
435
+ mcp?: McpOptions | undefined;
436
+ /**
437
+ * Explicit binding authority for static credentials from an attached
438
+ * endpointless provider profile. Profiles that already define endpoints
439
+ * continue to use those profile endpoints as their credential boundary.
440
+ *
441
+ * @generated from field: openshell.sandbox.v1.NetworkCredentialBinding credential_binding = 24;
442
+ */
443
+ credentialBinding?: NetworkCredentialBinding | undefined;
444
+ /**
445
+ * Explicitly permits credential-bearing traffic to use paths that OpenShell
446
+ * cannot inspect or rewrite. Defaults to false. This is a security-sensitive
447
+ * escape hatch and must be explicitly approved.
448
+ *
449
+ * @generated from field: bool allow_uninspected_credentials = 25;
450
+ */
451
+ allowUninspectedCredentials: boolean;
452
+ /**
453
+ * Internal gateway-derived marker indicating that this endpoint belongs to
454
+ * an attached credentialed provider. User-authored values are ignored.
455
+ *
456
+ * @generated from field: bool provider_credentialed = 26;
457
+ */
458
+ providerCredentialed: boolean;
459
+ };
460
+ /**
461
+ * Describes the message openshell.sandbox.v1.NetworkEndpoint.
462
+ * Use `create(NetworkEndpointSchema)` to create a new message.
463
+ */
464
+ export declare const NetworkEndpointSchema: GenMessage<NetworkEndpoint>;
465
+ /**
466
+ * MCP options are grouped so MCP-specific policy can grow without adding more
467
+ * top-level NetworkEndpoint fields. Current enforcement targets the active
468
+ * 2025-11-25 Streamable HTTP/tools behavior, while preserving space for
469
+ * version-profile policy if OpenShell adopts 2026-07-28 draft behavior later.
470
+ *
471
+ * Planned policy extensions should use OpenShell-owned static definitions for
472
+ * MCP method/version profiles rather than treating dependency enums as the
473
+ * policy contract. Candidate profile checks include request metadata/header
474
+ * validation, response/SSE introspection, trusted annotation handling,
475
+ * resultType/cache metadata validation, x-mcp-header tool-definition checks,
476
+ * and subscriptions/listen handling.
477
+ *
478
+ * Sources:
479
+ * - https://modelcontextprotocol.io/specification/2025-11-25/server/tools
480
+ * - https://modelcontextprotocol.io/specification/draft/changelog
481
+ * - https://modelcontextprotocol.io/specification/draft/basic/transports/streamable-http
482
+ * - https://modelcontextprotocol.io/specification/draft/server/tools
483
+ *
484
+ * @generated from message openshell.sandbox.v1.McpOptions
485
+ */
486
+ export type McpOptions = Message<"openshell.sandbox.v1.McpOptions"> & {
487
+ /**
488
+ * Hardening boundary for tools/call params.name. When unset or true, the
489
+ * supervisor enforces the MCP recommended tool-name syntax
490
+ * ^[A-Za-z0-9_.-]{1,128}$ before policy evaluation. Set false only for
491
+ * compatibility with servers that intentionally use non-recommended names.
492
+ *
493
+ * Source:
494
+ * - https://modelcontextprotocol.io/specification/2025-11-25/server/tools#tool-names
495
+ *
496
+ * @generated from field: optional bool strict_tool_names = 1;
497
+ */
498
+ strictToolNames?: boolean | undefined;
499
+ /**
500
+ * Method-layer default for MCP endpoints. When true, OpenShell allows parsed
501
+ * MCP-family methods at the method layer unless a tool-name policy narrows
502
+ * tools/call. When unset or false, explicit method rules are required.
503
+ *
504
+ * @generated from field: optional bool allow_all_known_mcp_methods = 2;
505
+ */
506
+ allowAllKnownMcpMethods?: boolean | undefined;
507
+ };
508
+ /**
509
+ * Describes the message openshell.sandbox.v1.McpOptions.
510
+ * Use `create(McpOptionsSchema)` to create a new message.
511
+ */
512
+ export declare const McpOptionsSchema: GenMessage<McpOptions>;
513
+ /**
514
+ * Trusted GraphQL operation classification.
515
+ *
516
+ * @generated from message openshell.sandbox.v1.GraphqlOperation
517
+ */
518
+ export type GraphqlOperation = Message<"openshell.sandbox.v1.GraphqlOperation"> & {
519
+ /**
520
+ * Operation type: "query", "mutation", or "subscription".
521
+ *
522
+ * @generated from field: string operation_type = 1;
523
+ */
524
+ operationType: string;
525
+ /**
526
+ * Operation name, if known.
527
+ *
528
+ * @generated from field: string operation_name = 2;
529
+ */
530
+ operationName: string;
531
+ /**
532
+ * Root field names selected by the operation.
533
+ *
534
+ * @generated from field: repeated string fields = 3;
535
+ */
536
+ fields: string[];
537
+ };
538
+ /**
539
+ * Describes the message openshell.sandbox.v1.GraphqlOperation.
540
+ * Use `create(GraphqlOperationSchema)` to create a new message.
541
+ */
542
+ export declare const GraphqlOperationSchema: GenMessage<GraphqlOperation>;
543
+ /**
544
+ * An L7 deny rule that blocks specific requests.
545
+ * Mirrors L7Allow — same fields, same matching semantics, inverted effect.
546
+ * Deny rules are evaluated after allow rules and take precedence.
547
+ *
548
+ * @generated from message openshell.sandbox.v1.L7DenyRule
549
+ */
550
+ export type L7DenyRule = Message<"openshell.sandbox.v1.L7DenyRule"> & {
551
+ /**
552
+ * Protocol method: HTTP method (REST/WebSocket), JSON-RPC method name, or
553
+ * "*" for any when supported by the protocol.
554
+ *
555
+ * @generated from field: string method = 1;
556
+ */
557
+ method: string;
558
+ /**
559
+ * URL path glob pattern (REST): "/repos/*\/pulls/*\/reviews", "**" for any.
560
+ *
561
+ * @generated from field: string path = 2;
562
+ */
563
+ path: string;
564
+ /**
565
+ * SQL command (SQL): SELECT, INSERT, etc. or "*" for any.
566
+ *
567
+ * @generated from field: string command = 3;
568
+ */
569
+ command: string;
570
+ /**
571
+ * Query parameter matcher map (REST).
572
+ * Same semantics as L7Allow.query.
573
+ *
574
+ * @generated from field: map<string, openshell.sandbox.v1.L7QueryMatcher> query = 4;
575
+ */
576
+ query: {
577
+ [key: string]: L7QueryMatcher;
578
+ };
579
+ /**
580
+ * GraphQL operation type: "query", "mutation", "subscription", or "*" for any.
581
+ *
582
+ * @generated from field: string operation_type = 5;
583
+ */
584
+ operationType: string;
585
+ /**
586
+ * GraphQL operation name glob. "*" matches any operation name.
587
+ *
588
+ * @generated from field: string operation_name = 6;
589
+ */
590
+ operationName: string;
591
+ /**
592
+ * GraphQL root field globs. Deny rules match when any selected root field
593
+ * matches any configured glob.
594
+ *
595
+ * @generated from field: repeated string fields = 7;
596
+ */
597
+ fields: string[];
598
+ /**
599
+ * MCP params matcher map. Currently only params.name is supported for
600
+ * tools/call filtering. Generic protocol "json-rpc" rejects params matchers.
601
+ *
602
+ * @generated from field: map<string, openshell.sandbox.v1.L7QueryMatcher> params = 9;
603
+ */
604
+ params: {
605
+ [key: string]: L7QueryMatcher;
606
+ };
607
+ };
608
+ /**
609
+ * Describes the message openshell.sandbox.v1.L7DenyRule.
610
+ * Use `create(L7DenyRuleSchema)` to create a new message.
611
+ */
612
+ export declare const L7DenyRuleSchema: GenMessage<L7DenyRule>;
613
+ /**
614
+ * An L7 policy rule (allow-only).
615
+ *
616
+ * @generated from message openshell.sandbox.v1.L7Rule
617
+ */
618
+ export type L7Rule = Message<"openshell.sandbox.v1.L7Rule"> & {
619
+ /**
620
+ * @generated from field: openshell.sandbox.v1.L7Allow allow = 1;
621
+ */
622
+ allow?: L7Allow | undefined;
623
+ };
624
+ /**
625
+ * Describes the message openshell.sandbox.v1.L7Rule.
626
+ * Use `create(L7RuleSchema)` to create a new message.
627
+ */
628
+ export declare const L7RuleSchema: GenMessage<L7Rule>;
629
+ /**
630
+ * Allowed action definition for L7 rules.
631
+ *
632
+ * @generated from message openshell.sandbox.v1.L7Allow
633
+ */
634
+ export type L7Allow = Message<"openshell.sandbox.v1.L7Allow"> & {
635
+ /**
636
+ * Protocol method: HTTP method (REST/WebSocket), JSON-RPC method name, or
637
+ * "*" for any when supported by the protocol.
638
+ *
639
+ * @generated from field: string method = 1;
640
+ */
641
+ method: string;
642
+ /**
643
+ * URL path glob pattern (REST): "/repos/**", "**" for any.
644
+ *
645
+ * @generated from field: string path = 2;
646
+ */
647
+ path: string;
648
+ /**
649
+ * SQL command (SQL): SELECT, INSERT, etc. or "*" for any.
650
+ *
651
+ * @generated from field: string command = 3;
652
+ */
653
+ command: string;
654
+ /**
655
+ * Query parameter matcher map (REST).
656
+ * Key is the decoded query parameter name (case-sensitive).
657
+ * Value supports either a single glob (`glob`) or a list (`any`).
658
+ *
659
+ * @generated from field: map<string, openshell.sandbox.v1.L7QueryMatcher> query = 4;
660
+ */
661
+ query: {
662
+ [key: string]: L7QueryMatcher;
663
+ };
664
+ /**
665
+ * GraphQL operation type: "query", "mutation", "subscription", or "*" for any.
666
+ *
667
+ * @generated from field: string operation_type = 5;
668
+ */
669
+ operationType: string;
670
+ /**
671
+ * GraphQL operation name glob. "*" matches any operation name.
672
+ *
673
+ * @generated from field: string operation_name = 6;
674
+ */
675
+ operationName: string;
676
+ /**
677
+ * GraphQL root field globs. Allow rules match only when every selected root
678
+ * field matches one of the configured globs. Omit to match all fields.
679
+ *
680
+ * @generated from field: repeated string fields = 7;
681
+ */
682
+ fields: string[];
683
+ /**
684
+ * MCP params matcher map. Currently only params.name is supported for
685
+ * tools/call filtering. Generic protocol "json-rpc" rejects params matchers.
686
+ *
687
+ * @generated from field: map<string, openshell.sandbox.v1.L7QueryMatcher> params = 9;
688
+ */
689
+ params: {
690
+ [key: string]: L7QueryMatcher;
691
+ };
692
+ };
693
+ /**
694
+ * Describes the message openshell.sandbox.v1.L7Allow.
695
+ * Use `create(L7AllowSchema)` to create a new message.
696
+ */
697
+ export declare const L7AllowSchema: GenMessage<L7Allow>;
698
+ /**
699
+ * Query value matcher for one query parameter key.
700
+ *
701
+ * @generated from message openshell.sandbox.v1.L7QueryMatcher
702
+ */
703
+ export type L7QueryMatcher = Message<"openshell.sandbox.v1.L7QueryMatcher"> & {
704
+ /**
705
+ * Single glob pattern.
706
+ *
707
+ * @generated from field: string glob = 1;
708
+ */
709
+ glob: string;
710
+ /**
711
+ * Any-of glob patterns.
712
+ *
713
+ * @generated from field: repeated string any = 2;
714
+ */
715
+ any: string[];
716
+ };
717
+ /**
718
+ * Describes the message openshell.sandbox.v1.L7QueryMatcher.
719
+ * Use `create(L7QueryMatcherSchema)` to create a new message.
720
+ */
721
+ export declare const L7QueryMatcherSchema: GenMessage<L7QueryMatcher>;
722
+ /**
723
+ * A binary identity for network policy matching.
724
+ *
725
+ * @generated from message openshell.sandbox.v1.NetworkBinary
726
+ */
727
+ export type NetworkBinary = Message<"openshell.sandbox.v1.NetworkBinary"> & {
728
+ /**
729
+ * @generated from field: string path = 1;
730
+ */
731
+ path: string;
732
+ /**
733
+ * Deprecated: the harness concept has been removed. This field is ignored.
734
+ *
735
+ * @generated from field: bool harness = 2 [deprecated = true];
736
+ * @deprecated
737
+ */
738
+ harness: boolean;
739
+ };
740
+ /**
741
+ * Describes the message openshell.sandbox.v1.NetworkBinary.
742
+ * Use `create(NetworkBinarySchema)` to create a new message.
743
+ */
744
+ export declare const NetworkBinarySchema: GenMessage<NetworkBinary>;
745
+ /**
746
+ * Request to get sandbox settings by sandbox ID.
747
+ *
748
+ * @generated from message openshell.sandbox.v1.GetSandboxConfigRequest
749
+ */
750
+ export type GetSandboxConfigRequest = Message<"openshell.sandbox.v1.GetSandboxConfigRequest"> & {
751
+ /**
752
+ * The sandbox ID.
753
+ *
754
+ * @generated from field: string sandbox_id = 1;
755
+ */
756
+ sandboxId: string;
757
+ };
758
+ /**
759
+ * Describes the message openshell.sandbox.v1.GetSandboxConfigRequest.
760
+ * Use `create(GetSandboxConfigRequestSchema)` to create a new message.
761
+ */
762
+ export declare const GetSandboxConfigRequestSchema: GenMessage<GetSandboxConfigRequest>;
763
+ /**
764
+ * Request to get gateway-global settings.
765
+ *
766
+ * @generated from message openshell.sandbox.v1.GetGatewayConfigRequest
767
+ */
768
+ export type GetGatewayConfigRequest = Message<"openshell.sandbox.v1.GetGatewayConfigRequest"> & {};
769
+ /**
770
+ * Describes the message openshell.sandbox.v1.GetGatewayConfigRequest.
771
+ * Use `create(GetGatewayConfigRequestSchema)` to create a new message.
772
+ */
773
+ export declare const GetGatewayConfigRequestSchema: GenMessage<GetGatewayConfigRequest>;
774
+ /**
775
+ * Response containing gateway-global settings.
776
+ *
777
+ * @generated from message openshell.sandbox.v1.GetGatewayConfigResponse
778
+ */
779
+ export type GetGatewayConfigResponse = Message<"openshell.sandbox.v1.GetGatewayConfigResponse"> & {
780
+ /**
781
+ * Gateway-global settings map excluding the reserved policy key.
782
+ * Registered keys without a configured value are returned with an empty SettingValue.
783
+ *
784
+ * @generated from field: map<string, openshell.sandbox.v1.SettingValue> settings = 1;
785
+ */
786
+ settings: {
787
+ [key: string]: SettingValue;
788
+ };
789
+ /**
790
+ * Monotonically increasing revision for gateway-global settings.
791
+ *
792
+ * @generated from field: uint64 settings_revision = 2;
793
+ */
794
+ settingsRevision: bigint;
795
+ };
796
+ /**
797
+ * Describes the message openshell.sandbox.v1.GetGatewayConfigResponse.
798
+ * Use `create(GetGatewayConfigResponseSchema)` to create a new message.
799
+ */
800
+ export declare const GetGatewayConfigResponseSchema: GenMessage<GetGatewayConfigResponse>;
801
+ /**
802
+ * Type-aware setting value for sandbox/gateway settings.
803
+ *
804
+ * @generated from message openshell.sandbox.v1.SettingValue
805
+ */
806
+ export type SettingValue = Message<"openshell.sandbox.v1.SettingValue"> & {
807
+ /**
808
+ * @generated from oneof openshell.sandbox.v1.SettingValue.value
809
+ */
810
+ value: {
811
+ /**
812
+ * @generated from field: string string_value = 1;
813
+ */
814
+ value: string;
815
+ case: "stringValue";
816
+ } | {
817
+ /**
818
+ * @generated from field: bool bool_value = 2;
819
+ */
820
+ value: boolean;
821
+ case: "boolValue";
822
+ } | {
823
+ /**
824
+ * @generated from field: int64 int_value = 3;
825
+ */
826
+ value: bigint;
827
+ case: "intValue";
828
+ } | {
829
+ /**
830
+ * @generated from field: bytes bytes_value = 4;
831
+ */
832
+ value: Uint8Array;
833
+ case: "bytesValue";
834
+ } | {
835
+ case: undefined;
836
+ value?: undefined;
837
+ };
838
+ };
839
+ /**
840
+ * Describes the message openshell.sandbox.v1.SettingValue.
841
+ * Use `create(SettingValueSchema)` to create a new message.
842
+ */
843
+ export declare const SettingValueSchema: GenMessage<SettingValue>;
844
+ /**
845
+ * Effective setting value and the scope it was resolved from.
846
+ *
847
+ * @generated from message openshell.sandbox.v1.EffectiveSetting
848
+ */
849
+ export type EffectiveSetting = Message<"openshell.sandbox.v1.EffectiveSetting"> & {
850
+ /**
851
+ * @generated from field: openshell.sandbox.v1.SettingValue value = 1;
852
+ */
853
+ value?: SettingValue | undefined;
854
+ /**
855
+ * @generated from field: openshell.sandbox.v1.SettingScope scope = 2;
856
+ */
857
+ scope: SettingScope;
858
+ };
859
+ /**
860
+ * Describes the message openshell.sandbox.v1.EffectiveSetting.
861
+ * Use `create(EffectiveSettingSchema)` to create a new message.
862
+ */
863
+ export declare const EffectiveSettingSchema: GenMessage<EffectiveSetting>;
864
+ /**
865
+ * Response containing effective sandbox settings and policy.
866
+ *
867
+ * @generated from message openshell.sandbox.v1.GetSandboxConfigResponse
868
+ */
869
+ export type GetSandboxConfigResponse = Message<"openshell.sandbox.v1.GetSandboxConfigResponse"> & {
870
+ /**
871
+ * The sandbox policy configuration.
872
+ *
873
+ * @generated from field: openshell.sandbox.v1.SandboxPolicy policy = 1;
874
+ */
875
+ policy?: SandboxPolicy | undefined;
876
+ /**
877
+ * Current policy version (monotonically increasing per sandbox).
878
+ *
879
+ * @generated from field: uint32 version = 2;
880
+ */
881
+ version: number;
882
+ /**
883
+ * SHA-256 hash of the serialized policy payload.
884
+ *
885
+ * @generated from field: string policy_hash = 3;
886
+ */
887
+ policyHash: string;
888
+ /**
889
+ * Effective settings resolved for this sandbox, excluding the reserved policy key.
890
+ * Registered keys without a configured value are returned with an empty EffectiveSetting.value.
891
+ *
892
+ * @generated from field: map<string, openshell.sandbox.v1.EffectiveSetting> settings = 4;
893
+ */
894
+ settings: {
895
+ [key: string]: EffectiveSetting;
896
+ };
897
+ /**
898
+ * Fingerprint for effective config (policy + settings). Changes when any effective input changes.
899
+ *
900
+ * @generated from field: uint64 config_revision = 5;
901
+ */
902
+ configRevision: bigint;
903
+ /**
904
+ * Source of the policy payload for this response.
905
+ *
906
+ * @generated from field: openshell.sandbox.v1.PolicySource policy_source = 6;
907
+ */
908
+ policySource: PolicySource;
909
+ /**
910
+ * When policy_source is GLOBAL, the version of the global policy revision.
911
+ * Zero when no global policy is active or when policy_source is SANDBOX.
912
+ *
913
+ * @generated from field: uint32 global_policy_version = 7;
914
+ */
915
+ globalPolicyVersion: number;
916
+ /**
917
+ * Fingerprint for provider credential inputs attached to this sandbox.
918
+ * Changes when attached provider names or attached provider records change.
919
+ *
920
+ * @generated from field: uint64 provider_env_revision = 8;
921
+ */
922
+ providerEnvRevision: bigint;
923
+ /**
924
+ * Operator-registered supervisor middleware services required by the
925
+ * effective policy. Built-in middleware is not included.
926
+ *
927
+ * @generated from field: repeated openshell.sandbox.v1.SupervisorMiddlewareService supervisor_middleware_services = 9;
928
+ */
929
+ supervisorMiddlewareServices: SupervisorMiddlewareService[];
930
+ /**
931
+ * Workspace the sandbox belongs to. Allows the supervisor to learn its
932
+ * workspace context for subsequent workspace-scoped RPCs.
933
+ *
934
+ * @generated from field: string workspace = 10;
935
+ */
936
+ workspace: string;
937
+ /**
938
+ * Gateway-configured posture for rejected policy generations. Valid values
939
+ * are "fail_closed" and "retain_last_valid". Unknown or empty values must
940
+ * be treated as fail_closed by the supervisor.
941
+ *
942
+ * @generated from field: string policy_validation_failure_mode = 11;
943
+ */
944
+ policyValidationFailureMode: string;
945
+ /**
946
+ * Whether this gateway can mint authenticated extension credentials.
947
+ * False also covers older gateways that do not advertise this capability;
948
+ * supervisors preserve their legacy unauthenticated connection behavior.
949
+ *
950
+ * @generated from field: bool extension_authentication_enabled = 12;
951
+ */
952
+ extensionAuthenticationEnabled: boolean;
953
+ };
954
+ /**
955
+ * Describes the message openshell.sandbox.v1.GetSandboxConfigResponse.
956
+ * Use `create(GetSandboxConfigResponseSchema)` to create a new message.
957
+ */
958
+ export declare const GetSandboxConfigResponseSchema: GenMessage<GetSandboxConfigResponse>;
959
+ /**
960
+ * Connection details for one operator-registered supervisor middleware service.
961
+ * V1 supports plaintext and server-authenticated TLS gRPC.
962
+ *
963
+ * @generated from message openshell.sandbox.v1.SupervisorMiddlewareService
964
+ */
965
+ export type SupervisorMiddlewareService = Message<"openshell.sandbox.v1.SupervisorMiddlewareService"> & {
966
+ /**
967
+ * Operator-owned registration name used by policy attachments and diagnostics.
968
+ *
969
+ * @generated from field: string name = 1;
970
+ */
971
+ name: string;
972
+ /**
973
+ * gRPC endpoint reachable from the sandbox supervisor.
974
+ *
975
+ * @generated from field: string grpc_endpoint = 2;
976
+ */
977
+ grpcEndpoint: string;
978
+ /**
979
+ * Operator-owned logical payload limit applied to every binding exposed by
980
+ * the service. This caps HTTP bodies and complete WebSocket messages.
981
+ *
982
+ * @generated from field: uint64 max_payload_bytes = 3;
983
+ */
984
+ maxPayloadBytes: bigint;
985
+ /**
986
+ * Default RPC timeout for this service. Empty uses the platform default of
987
+ * 500ms. Values use an integer with an `ms` or `s` suffix and must be
988
+ * between 10ms and 30s.
989
+ *
990
+ * @generated from field: string timeout = 4;
991
+ */
992
+ timeout: string;
993
+ /**
994
+ * PEM-encoded trust roots loaded by the gateway from the operator-configured
995
+ * tls_ca_cert_path. Empty uses the platform trust store.
996
+ *
997
+ * @generated from field: bytes tls_ca_cert_pem = 5;
998
+ */
999
+ tlsCaCertPem: Uint8Array;
1000
+ /**
1001
+ * Exact JWT audience for this service. The gateway resolves an omitted
1002
+ * operator value to a kind-scoped audience derived from the registration
1003
+ * name before sending sandbox config.
1004
+ *
1005
+ * @generated from field: string audience = 6;
1006
+ */
1007
+ audience: string;
1008
+ /**
1009
+ * Operator opt-out from extension authentication for this registration.
1010
+ * When true the service may use a plaintext endpoint and OpenShell attaches
1011
+ * no bearer credential; supervisors must not request one. Intended only for
1012
+ * trusted-network development deployments.
1013
+ *
1014
+ * @generated from field: bool allow_insecure_transport = 7;
1015
+ */
1016
+ allowInsecureTransport: boolean;
1017
+ };
1018
+ /**
1019
+ * Describes the message openshell.sandbox.v1.SupervisorMiddlewareService.
1020
+ * Use `create(SupervisorMiddlewareServiceSchema)` to create a new message.
1021
+ */
1022
+ export declare const SupervisorMiddlewareServiceSchema: GenMessage<SupervisorMiddlewareService>;
1023
+ /**
1024
+ * Scope that currently controls a setting.
1025
+ *
1026
+ * @generated from enum openshell.sandbox.v1.SettingScope
1027
+ */
1028
+ export declare enum SettingScope {
1029
+ /**
1030
+ * @generated from enum value: SETTING_SCOPE_UNSPECIFIED = 0;
1031
+ */
1032
+ UNSPECIFIED = 0,
1033
+ /**
1034
+ * @generated from enum value: SETTING_SCOPE_SANDBOX = 1;
1035
+ */
1036
+ SANDBOX = 1,
1037
+ /**
1038
+ * @generated from enum value: SETTING_SCOPE_GLOBAL = 2;
1039
+ */
1040
+ GLOBAL = 2
1041
+ }
1042
+ /**
1043
+ * Describes the enum openshell.sandbox.v1.SettingScope.
1044
+ */
1045
+ export declare const SettingScopeSchema: GenEnum<SettingScope>;
1046
+ /**
1047
+ * Source used for the policy payload in GetSandboxConfigResponse.
1048
+ *
1049
+ * @generated from enum openshell.sandbox.v1.PolicySource
1050
+ */
1051
+ export declare enum PolicySource {
1052
+ /**
1053
+ * @generated from enum value: POLICY_SOURCE_UNSPECIFIED = 0;
1054
+ */
1055
+ UNSPECIFIED = 0,
1056
+ /**
1057
+ * @generated from enum value: POLICY_SOURCE_SANDBOX = 1;
1058
+ */
1059
+ SANDBOX = 1,
1060
+ /**
1061
+ * @generated from enum value: POLICY_SOURCE_GLOBAL = 2;
1062
+ */
1063
+ GLOBAL = 2
1064
+ }
1065
+ /**
1066
+ * Describes the enum openshell.sandbox.v1.PolicySource.
1067
+ */
1068
+ export declare const PolicySourceSchema: GenEnum<PolicySource>;
1069
+ //# sourceMappingURL=sandbox_pb.d.ts.map