@openkaiden/opnshll-sdk 0.1.2 → 0.1.4
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.
- package/dist/client.d.ts +114 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +214 -2
- package/dist/client.js.map +1 -1
- package/dist/gen/openshell_pb.d.ts +398 -11
- package/dist/gen/openshell_pb.d.ts.map +1 -1
- package/dist/gen/openshell_pb.js +225 -139
- package/dist/gen/openshell_pb.js.map +1 -1
- package/dist/gen/options_pb.d.ts +2 -1
- package/dist/gen/options_pb.d.ts.map +1 -1
- package/dist/gen/options_pb.js.map +1 -1
- package/dist/gen/sandbox_pb.d.ts +8 -0
- package/dist/gen/sandbox_pb.d.ts.map +1 -1
- package/dist/gen/sandbox_pb.js +1 -1
- package/dist/gen/sandbox_pb.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/providers.d.ts +38 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +78 -0
- package/dist/providers.js.map +1 -0
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { SandboxWorkloadTemplate } from './gen/openshell_pb.js';
|
|
|
5
5
|
import { type ExecSandboxInputSchema, OpenShell, SandboxPhase, type SandboxSpecSchema, type SandboxWorkloadTemplateSchema, ServiceStatus, type TcpForwardFrameSchema } from './gen/openshell_pb.js';
|
|
6
6
|
import type { SandboxPolicy, SettingValue } from './gen/sandbox_pb.js';
|
|
7
7
|
import { PolicySource, type SandboxPolicySchema, SettingScope, type SettingValueSchema } from './gen/sandbox_pb.js';
|
|
8
|
+
import { ProviderClient } from './providers.js';
|
|
8
9
|
import { type ConnectOptions } from './transport.js';
|
|
9
10
|
export type { SandboxResources, SandboxServiceLevel, SandboxStartup, SandboxWorkloadConfig, SandboxWorkloadTemplate, SandboxWorkloadTemplateSpec, } from './gen/openshell_pb.js';
|
|
10
11
|
export type { SandboxPolicy, SettingValue } from './gen/sandbox_pb.js';
|
|
@@ -12,6 +13,8 @@ export type { ConnectOptions };
|
|
|
12
13
|
export { errorCode };
|
|
13
14
|
/** Lowercase mirror of the generated `SandboxPhase` enum. Hand-maintained. */
|
|
14
15
|
export type SandboxPhaseName = 'unspecified' | 'provisioning' | 'ready' | 'error' | 'deleting' | 'unknown' | 'stopping' | 'stopped' | 'starting' | 'completed';
|
|
16
|
+
/** Restart behavior after the canonical main process exits. */
|
|
17
|
+
export type SandboxRestartPolicyName = 'never' | 'on-failure' | 'always';
|
|
15
18
|
/** Lowercase mirror of the generated `ServiceStatus` enum. Hand-maintained. */
|
|
16
19
|
export type HealthStatus = 'unspecified' | 'healthy' | 'degraded' | 'unhealthy';
|
|
17
20
|
/** Lowercase mirror of the generated `SettingScope` enum. Hand-maintained. */
|
|
@@ -48,6 +51,8 @@ export interface SandboxSpec {
|
|
|
48
51
|
tty?: boolean;
|
|
49
52
|
/** Loopback HTTP services to expose when the sandbox is created. */
|
|
50
53
|
serviceExposures?: ServiceExposure[];
|
|
54
|
+
/** Restart behavior after the canonical main process exits. */
|
|
55
|
+
restartPolicy?: SandboxRestartPolicyName;
|
|
51
56
|
/**
|
|
52
57
|
* Create-time sandbox policy (the safety boundary). Sandbox-scoped
|
|
53
58
|
* `setPolicy` cannot introduce static fields later, so express filesystem,
|
|
@@ -68,6 +73,12 @@ export interface ServiceExposure {
|
|
|
68
73
|
service?: string;
|
|
69
74
|
/** Loopback TCP port inside the sandbox. */
|
|
70
75
|
targetPort: number;
|
|
76
|
+
/** Handling for an incoming application Authorization header. */
|
|
77
|
+
authorizationMode?: ServiceAuthorizationMode;
|
|
78
|
+
}
|
|
79
|
+
export declare enum ServiceAuthorizationMode {
|
|
80
|
+
Strip = "strip",
|
|
81
|
+
BearerPassthrough = "bearer_passthrough"
|
|
71
82
|
}
|
|
72
83
|
export interface SandboxFromTemplateSpec {
|
|
73
84
|
name?: string;
|
|
@@ -96,11 +107,18 @@ export interface SandboxRef {
|
|
|
96
107
|
labels: Record<string, string>;
|
|
97
108
|
/** u64 rendered as a string — JS numbers can't hold it safely. */
|
|
98
109
|
resourceVersion: string;
|
|
110
|
+
/** Stable SSH host identity; absent on older runtimes. */
|
|
111
|
+
hostKeyFingerprint?: string;
|
|
99
112
|
mainProcessInstanceId?: string;
|
|
100
113
|
exitCode?: number;
|
|
101
114
|
createdFromWorkloadTemplate?: SandboxWorkloadTemplateProvenance;
|
|
102
115
|
/** Service URLs returned by creation, keyed by service name. */
|
|
103
116
|
serviceUrls: Record<string, string>;
|
|
117
|
+
restartCount: number;
|
|
118
|
+
/** Creation time in epoch milliseconds; absent when the gateway omits it. */
|
|
119
|
+
createdAtMs?: number;
|
|
120
|
+
nextRestartAtMs?: number;
|
|
121
|
+
mainProcessStartedAtMs?: number;
|
|
104
122
|
}
|
|
105
123
|
export interface SandboxWorkloadTemplateProvenance {
|
|
106
124
|
name: string;
|
|
@@ -212,6 +230,68 @@ export interface ExecInteractiveSessionControl extends ExecInteractiveSession {
|
|
|
212
230
|
/** Observed process exit, retained even if final RPC completion fails. */
|
|
213
231
|
readonly exitCode: number | undefined;
|
|
214
232
|
}
|
|
233
|
+
/** A curated log line delivered by `watchLogs`. */
|
|
234
|
+
export interface LogLine {
|
|
235
|
+
sandboxId: string;
|
|
236
|
+
/** Milliseconds since epoch. 0 if the wire timestamp was absent or unrepresentable. */
|
|
237
|
+
timestampMs: number;
|
|
238
|
+
level: string;
|
|
239
|
+
target: string;
|
|
240
|
+
message: string;
|
|
241
|
+
/** Log source (e.g. `'gateway'`, `'sandbox'`). An empty wire value is normalized to `'gateway'`. */
|
|
242
|
+
source: string;
|
|
243
|
+
fields: Record<string, string>;
|
|
244
|
+
}
|
|
245
|
+
/** A curated platform (compute-backend) event delivered by `watchLogs`. */
|
|
246
|
+
export interface PlatformEvent {
|
|
247
|
+
/** Milliseconds since epoch. 0 if the wire timestamp was absent or unrepresentable. */
|
|
248
|
+
timestampMs: number;
|
|
249
|
+
source: string;
|
|
250
|
+
type: string;
|
|
251
|
+
reason: string;
|
|
252
|
+
message: string;
|
|
253
|
+
metadata: Record<string, string>;
|
|
254
|
+
}
|
|
255
|
+
export interface WatchLogEvent {
|
|
256
|
+
kind: 'log';
|
|
257
|
+
line: LogLine;
|
|
258
|
+
/** Opaque high-water-mark cursor. Feed back as `WatchOptions.resumeAfterCursor` to resume. */
|
|
259
|
+
cursor: string;
|
|
260
|
+
}
|
|
261
|
+
export interface WatchPlatformEvent {
|
|
262
|
+
kind: 'event';
|
|
263
|
+
event: PlatformEvent;
|
|
264
|
+
/** Opaque high-water-mark cursor. Feed back as `WatchOptions.resumeAfterCursor` to resume. */
|
|
265
|
+
cursor: string;
|
|
266
|
+
}
|
|
267
|
+
/** Recoverable server-side loss notice. The stream continues; never advances the cursor. */
|
|
268
|
+
export interface WatchWarningEvent {
|
|
269
|
+
kind: 'warning';
|
|
270
|
+
message: string;
|
|
271
|
+
}
|
|
272
|
+
/** One item from `watchLogs`. Discriminate on `kind`. */
|
|
273
|
+
export type WatchEvent = WatchLogEvent | WatchPlatformEvent | WatchWarningEvent;
|
|
274
|
+
export interface WatchOptions extends SandboxWorkspaceOptions {
|
|
275
|
+
/** Stream server/supervisor log lines. Defaults to `true` when neither this nor `followEvents` is set. */
|
|
276
|
+
followLogs?: boolean;
|
|
277
|
+
/** Stream platform (compute-backend) events. */
|
|
278
|
+
followEvents?: boolean;
|
|
279
|
+
/** Restrict to these log sources (e.g. `'gateway'`, `'sandbox'`). Omit or empty for no filter. */
|
|
280
|
+
logSources?: string[];
|
|
281
|
+
/** Minimum log level to include (e.g. `'INFO'`, `'WARN'`, `'ERROR'`). Omit for no filter. */
|
|
282
|
+
logMinLevel?: string;
|
|
283
|
+
/**
|
|
284
|
+
* Opaque cursor to resume after, taken from a previous `WatchEvent`'s `cursor`.
|
|
285
|
+
* Omit or leave empty to start from the tail. Do not construct or parse one.
|
|
286
|
+
*/
|
|
287
|
+
resumeAfterCursor?: string;
|
|
288
|
+
/** Replay the last N log lines (best-effort) before following. */
|
|
289
|
+
logTailLines?: number;
|
|
290
|
+
/** Replay the last N platform events (best-effort) before following. */
|
|
291
|
+
eventTail?: number;
|
|
292
|
+
/** Abort the watch (including any pending reconnect backoff) early. */
|
|
293
|
+
signal?: AbortSignal;
|
|
294
|
+
}
|
|
215
295
|
/** Cancellation for the poll-based wait helpers. */
|
|
216
296
|
export interface WaitOptions extends SandboxWorkspaceOptions {
|
|
217
297
|
/** Abort the wait (and the in-flight poll RPC) early. */
|
|
@@ -308,6 +388,12 @@ export declare const PHASE_NAMES: Record<SandboxPhase, SandboxPhaseName>;
|
|
|
308
388
|
export declare const STATUS_NAMES: Record<ServiceStatus, HealthStatus>;
|
|
309
389
|
export declare const SCOPE_NAMES: Record<SettingScope, SettingScopeName>;
|
|
310
390
|
export declare const POLICY_SOURCE_NAMES: Record<PolicySource, PolicySourceName>;
|
|
391
|
+
/**
|
|
392
|
+
* Test-only seam for the `watchLogs` reconnect backoff delay. Not part of the
|
|
393
|
+
* public API surface — not re-exported from index.ts. Call with no argument
|
|
394
|
+
* to restore the real timer-based sleep.
|
|
395
|
+
*/
|
|
396
|
+
export declare function __setWatchLogsBackoffSleepForTests(fn?: (delayMs: number, signal?: AbortSignal) => Promise<void>): void;
|
|
311
397
|
export declare class Pushable<T> implements AsyncIterable<T> {
|
|
312
398
|
private readonly queue;
|
|
313
399
|
private readonly waiting;
|
|
@@ -490,6 +576,11 @@ export declare class SandboxTemplateClient {
|
|
|
490
576
|
input: typeof import("./gen/openshell_pb.js").GetProviderRequestSchema;
|
|
491
577
|
output: typeof import("./gen/openshell_pb.js").ProviderResponseSchema;
|
|
492
578
|
};
|
|
579
|
+
getProviderCredentials: {
|
|
580
|
+
methodKind: "unary";
|
|
581
|
+
input: typeof import("./gen/openshell_pb.js").GetProviderCredentialsRequestSchema;
|
|
582
|
+
output: typeof import("./gen/openshell_pb.js").GetProviderCredentialsResponseSchema;
|
|
583
|
+
};
|
|
493
584
|
listProviders: {
|
|
494
585
|
methodKind: "unary";
|
|
495
586
|
input: typeof import("./gen/openshell_pb.js").ListProvidersRequestSchema;
|
|
@@ -920,6 +1011,11 @@ export declare class SandboxClient {
|
|
|
920
1011
|
input: typeof import("./gen/openshell_pb.js").GetProviderRequestSchema;
|
|
921
1012
|
output: typeof import("./gen/openshell_pb.js").ProviderResponseSchema;
|
|
922
1013
|
};
|
|
1014
|
+
getProviderCredentials: {
|
|
1015
|
+
methodKind: "unary";
|
|
1016
|
+
input: typeof import("./gen/openshell_pb.js").GetProviderCredentialsRequestSchema;
|
|
1017
|
+
output: typeof import("./gen/openshell_pb.js").GetProviderCredentialsResponseSchema;
|
|
1018
|
+
};
|
|
923
1019
|
listProviders: {
|
|
924
1020
|
methodKind: "unary";
|
|
925
1021
|
input: typeof import("./gen/openshell_pb.js").ListProvidersRequestSchema;
|
|
@@ -1202,6 +1298,22 @@ export declare class SandboxClient {
|
|
|
1202
1298
|
waitDeleted(name: string, timeoutSecs: number, options?: WaitDeletedOptions | null): Promise<void>;
|
|
1203
1299
|
execStream(name: string, command: string[], options?: ExecOptions | null): AsyncGenerator<ExecStreamEvent, void, void>;
|
|
1204
1300
|
exec(name: string, command: string[], options?: ExecOptions | null): Promise<ExecResult>;
|
|
1301
|
+
/**
|
|
1302
|
+
* Watch a sandbox's log lines and platform events with loss-aware resume.
|
|
1303
|
+
*
|
|
1304
|
+
* Reconnects transparently on a transient stream drop, resuming from the
|
|
1305
|
+
* highest cursor already delivered. A recoverable server-side lag surfaces
|
|
1306
|
+
* as a `{ kind: 'warning' }` item and the stream continues.
|
|
1307
|
+
*
|
|
1308
|
+
* An `SdkError` with `connectCode === Code.OutOfRange` is terminal and not
|
|
1309
|
+
* retried: the resume point is gone (trimmed from the buffer, or issued by a
|
|
1310
|
+
* cursor space the gateway no longer has), so events between it and now are
|
|
1311
|
+
* unrecoverable. Auto-restarting from scratch would hide that loss, which is
|
|
1312
|
+
* exactly what this method exists to surface. Callers who accept the gap can
|
|
1313
|
+
* start a new watch with an empty `resumeAfterCursor`; retrying the same
|
|
1314
|
+
* cursor fails identically.
|
|
1315
|
+
*/
|
|
1316
|
+
watchLogs(name: string, options?: WatchOptions | null): AsyncGenerator<WatchEvent, void, void>;
|
|
1205
1317
|
execInteractive(name: string, command: string[], options?: ExecInteractiveOptions | null): Promise<ExecInteractiveSessionControl>;
|
|
1206
1318
|
forward(name: string, opts: ForwardOptions): Promise<ForwardHandle>;
|
|
1207
1319
|
private forwardConnection;
|
|
@@ -1222,6 +1334,8 @@ export declare class OpenShellClient {
|
|
|
1222
1334
|
readonly sandbox: SandboxClient;
|
|
1223
1335
|
/** Reusable sandbox workload template lifecycle. */
|
|
1224
1336
|
readonly sandboxTemplates: SandboxTemplateClient;
|
|
1337
|
+
/** Privileged provider credential retrieval; requires direct operator mTLS. */
|
|
1338
|
+
readonly providers: ProviderClient;
|
|
1225
1339
|
/**
|
|
1226
1340
|
* Advanced escape hatch: a generated client for every gateway RPC, including
|
|
1227
1341
|
* surface the curated sub-clients do not wrap yet (gateway config, provider
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import * as net from 'node:net';
|
|
4
4
|
import { durationFromMs } from '@bufbuild/protobuf/wkt';
|
|
5
|
-
import { createClient } from '@connectrpc/connect';
|
|
5
|
+
import { Code, createClient } from '@connectrpc/connect';
|
|
6
6
|
import { errorCode, fromConnect, SdkError } from './errors.js';
|
|
7
|
-
import { OpenShell, SandboxPhase, ServiceStatus, } from './gen/openshell_pb.js';
|
|
7
|
+
import { OpenShell, ServiceAuthorizationMode as ProtoServiceAuthorizationMode, SandboxPhase, SandboxRestartPolicy, ServiceStatus, } from './gen/openshell_pb.js';
|
|
8
8
|
import { PolicySource, SettingScope } from './gen/sandbox_pb.js';
|
|
9
|
+
import { ProviderClient } from './providers.js';
|
|
9
10
|
import { validateSshResponse } from './ssh-validate.js';
|
|
10
11
|
import { buildTransport } from './transport.js';
|
|
11
12
|
function durationFromSeconds(seconds) {
|
|
@@ -14,12 +15,24 @@ function durationFromSeconds(seconds) {
|
|
|
14
15
|
}
|
|
15
16
|
return seconds === 0 ? undefined : durationFromMs(seconds * 1000);
|
|
16
17
|
}
|
|
18
|
+
// Distinct from timestampMillis(): LogLine/PlatformEvent timestamps are
|
|
19
|
+
// always-present numbers that default to 0 when absent or unrepresentable,
|
|
20
|
+
// not an optional string field like expiresAtMs.
|
|
21
|
+
function eventTimeMillis(timestamp) {
|
|
22
|
+
if (!timestamp)
|
|
23
|
+
return 0;
|
|
24
|
+
return Number(timestamp.seconds * 1000n + BigInt(Math.trunc(timestamp.nanos / 1_000_000)));
|
|
25
|
+
}
|
|
17
26
|
function timestampMillis(timestamp) {
|
|
18
27
|
if (!timestamp)
|
|
19
28
|
return undefined;
|
|
20
29
|
const millis = timestamp.seconds * 1000n + BigInt(Math.trunc(timestamp.nanos / 1_000_000));
|
|
21
30
|
return millis === 0n ? undefined : millis.toString();
|
|
22
31
|
}
|
|
32
|
+
function timestampEpochMs(timestamp) {
|
|
33
|
+
const millis = timestampMillis(timestamp);
|
|
34
|
+
return millis ? Number(millis) : undefined;
|
|
35
|
+
}
|
|
23
36
|
export { errorCode };
|
|
24
37
|
function deletionResult(response) {
|
|
25
38
|
const names = {
|
|
@@ -34,6 +47,20 @@ function deletionResult(response) {
|
|
|
34
47
|
...(response.sandboxId ? { sandboxId: response.sandboxId } : {}),
|
|
35
48
|
};
|
|
36
49
|
}
|
|
50
|
+
export var ServiceAuthorizationMode;
|
|
51
|
+
(function (ServiceAuthorizationMode) {
|
|
52
|
+
ServiceAuthorizationMode["Strip"] = "strip";
|
|
53
|
+
ServiceAuthorizationMode["BearerPassthrough"] = "bearer_passthrough";
|
|
54
|
+
})(ServiceAuthorizationMode || (ServiceAuthorizationMode = {}));
|
|
55
|
+
function serviceAuthorizationModeToProto(mode) {
|
|
56
|
+
switch (mode) {
|
|
57
|
+
case ServiceAuthorizationMode.BearerPassthrough:
|
|
58
|
+
return ProtoServiceAuthorizationMode.BEARER_PASSTHROUGH;
|
|
59
|
+
case ServiceAuthorizationMode.Strip:
|
|
60
|
+
case undefined:
|
|
61
|
+
return ProtoServiceAuthorizationMode.STRIP;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
37
64
|
// ---- enum → lowercase string -----------------------------------------------
|
|
38
65
|
// Exported for the enum-name drift test only; not re-exported from index.ts, so
|
|
39
66
|
// they are not part of the public package API.
|
|
@@ -68,6 +95,16 @@ export const POLICY_SOURCE_NAMES = {
|
|
|
68
95
|
function phaseName(p) {
|
|
69
96
|
return PHASE_NAMES[p] ?? 'unspecified';
|
|
70
97
|
}
|
|
98
|
+
function restartPolicyValue(policy) {
|
|
99
|
+
switch (policy) {
|
|
100
|
+
case 'on-failure':
|
|
101
|
+
return SandboxRestartPolicy.ON_FAILURE;
|
|
102
|
+
case 'always':
|
|
103
|
+
return SandboxRestartPolicy.ALWAYS;
|
|
104
|
+
default:
|
|
105
|
+
return SandboxRestartPolicy.NEVER;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
71
108
|
function statusName(s) {
|
|
72
109
|
return STATUS_NAMES[s] ?? 'unspecified';
|
|
73
110
|
}
|
|
@@ -91,6 +128,7 @@ function sandboxRef(sandbox, serviceUrls = {}) {
|
|
|
91
128
|
phase: phaseName(sandbox.status?.phase ?? SandboxPhase.UNSPECIFIED),
|
|
92
129
|
labels: meta?.labels ?? {},
|
|
93
130
|
resourceVersion: (meta?.resourceVersion ?? 0n).toString(),
|
|
131
|
+
hostKeyFingerprint: sandbox.hostKeyFingerprint || undefined,
|
|
94
132
|
mainProcessInstanceId: sandbox.status?.mainProcessInstanceId || undefined,
|
|
95
133
|
exitCode: sandbox.status?.exitCode,
|
|
96
134
|
createdFromWorkloadTemplate: sandbox.createdFromWorkloadTemplate
|
|
@@ -100,6 +138,10 @@ function sandboxRef(sandbox, serviceUrls = {}) {
|
|
|
100
138
|
}
|
|
101
139
|
: undefined,
|
|
102
140
|
serviceUrls,
|
|
141
|
+
restartCount: sandbox.status?.restartCount ?? 0,
|
|
142
|
+
createdAtMs: timestampEpochMs(meta.createdTime),
|
|
143
|
+
nextRestartAtMs: timestampEpochMs(sandbox.status?.nextRestartTime),
|
|
144
|
+
mainProcessStartedAtMs: timestampEpochMs(sandbox.status?.mainProcessStartedTime),
|
|
103
145
|
};
|
|
104
146
|
}
|
|
105
147
|
function sandboxTemplate(template) {
|
|
@@ -226,6 +268,91 @@ function waitSleep(delayMs, deadline, signal) {
|
|
|
226
268
|
signal.addEventListener('abort', onAbort, { once: true });
|
|
227
269
|
});
|
|
228
270
|
}
|
|
271
|
+
// Reconnect backoff for watchLogs: uncapped deadline, just a capped delay
|
|
272
|
+
// interruptible by the caller signal. Distinct from waitSleep, which is
|
|
273
|
+
// deadline-bounded for poll loops.
|
|
274
|
+
function defaultWatchLogsBackoffSleep(delayMs, signal) {
|
|
275
|
+
return new Promise((resolve, reject) => {
|
|
276
|
+
const timer = setTimeout(() => {
|
|
277
|
+
signal?.removeEventListener('abort', onAbort);
|
|
278
|
+
resolve();
|
|
279
|
+
}, delayMs);
|
|
280
|
+
const onAbort = () => {
|
|
281
|
+
clearTimeout(timer);
|
|
282
|
+
reject(new SdkError('canceled', 'watchLogs aborted'));
|
|
283
|
+
};
|
|
284
|
+
if (signal)
|
|
285
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
let watchLogsBackoffSleep = defaultWatchLogsBackoffSleep;
|
|
289
|
+
/**
|
|
290
|
+
* Test-only seam for the `watchLogs` reconnect backoff delay. Not part of the
|
|
291
|
+
* public API surface — not re-exported from index.ts. Call with no argument
|
|
292
|
+
* to restore the real timer-based sleep.
|
|
293
|
+
*/
|
|
294
|
+
export function __setWatchLogsBackoffSleepForTests(fn) {
|
|
295
|
+
watchLogsBackoffSleep = fn ?? defaultWatchLogsBackoffSleep;
|
|
296
|
+
}
|
|
297
|
+
// Only Unavailable (connection drop, gateway restart) is retryable. Every
|
|
298
|
+
// other status — including OUT_OF_RANGE — is terminal so the caller sees it
|
|
299
|
+
// instead of the loop silently restarting from an empty cursor and hiding a gap.
|
|
300
|
+
function isRetryableWatchLogsError(err) {
|
|
301
|
+
return err.connectCode === Code.Unavailable;
|
|
302
|
+
}
|
|
303
|
+
function toLogLine(value) {
|
|
304
|
+
return {
|
|
305
|
+
sandboxId: value.sandboxId,
|
|
306
|
+
timestampMs: eventTimeMillis(value.eventTime),
|
|
307
|
+
level: value.level,
|
|
308
|
+
target: value.target,
|
|
309
|
+
message: value.message,
|
|
310
|
+
source: value.source || 'gateway',
|
|
311
|
+
fields: { ...value.fields },
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
function toPlatformEvent(value) {
|
|
315
|
+
return {
|
|
316
|
+
timestampMs: eventTimeMillis(value.eventTime),
|
|
317
|
+
source: value.source,
|
|
318
|
+
type: value.type,
|
|
319
|
+
reason: value.reason,
|
|
320
|
+
message: value.message,
|
|
321
|
+
metadata: { ...value.metadata },
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
// Converts one wire watch event into a curated WatchEvent, returning the
|
|
325
|
+
// (possibly advanced) cursor alongside it. `cursor` is a high-water mark, not
|
|
326
|
+
// "last seen": the gateway reads the log and platform sources independently
|
|
327
|
+
// during live delivery, so arrival order can differ from cursor order. Taking
|
|
328
|
+
// the max keeps the resume point monotonic; assigning directly would let a
|
|
329
|
+
// later lower-cursor event rewind it and replay already-delivered events after
|
|
330
|
+
// a reconnect. The comparison is a plain byte-wise string compare on an opaque
|
|
331
|
+
// token — well defined only because both cursors come from the same stream.
|
|
332
|
+
function convertWatchEvent(wireEvent, cursor) {
|
|
333
|
+
switch (wireEvent.payload.case) {
|
|
334
|
+
case 'log': {
|
|
335
|
+
const next = wireEvent.cursor > cursor ? wireEvent.cursor : cursor;
|
|
336
|
+
return {
|
|
337
|
+
event: { kind: 'log', line: toLogLine(wireEvent.payload.value), cursor: wireEvent.cursor },
|
|
338
|
+
cursor: next,
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
case 'event': {
|
|
342
|
+
const next = wireEvent.cursor > cursor ? wireEvent.cursor : cursor;
|
|
343
|
+
return {
|
|
344
|
+
event: { kind: 'event', event: toPlatformEvent(wireEvent.payload.value), cursor: wireEvent.cursor },
|
|
345
|
+
cursor: next,
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
case 'warning':
|
|
349
|
+
return { event: { kind: 'warning', message: wireEvent.payload.value.message }, cursor };
|
|
350
|
+
default:
|
|
351
|
+
// Sandbox snapshots and draft-policy updates are not part of this
|
|
352
|
+
// curated log/event stream.
|
|
353
|
+
return { cursor };
|
|
354
|
+
}
|
|
355
|
+
}
|
|
229
356
|
// Wait for a socket to drain before writing more. Resolves on 'drain', and
|
|
230
357
|
// also on 'close'/'error' so a pending await never leaks when the socket is
|
|
231
358
|
// torn down mid-backpressure; short-circuits if it is already gone.
|
|
@@ -544,6 +671,7 @@ export class SandboxClient {
|
|
|
544
671
|
policy: spec.policy,
|
|
545
672
|
command: spec.command ?? [],
|
|
546
673
|
tty: spec.tty ?? false,
|
|
674
|
+
restartPolicy: restartPolicyValue(spec.restartPolicy),
|
|
547
675
|
};
|
|
548
676
|
if (spec.rawSpec)
|
|
549
677
|
Object.assign(specInit, spec.rawSpec);
|
|
@@ -555,6 +683,7 @@ export class SandboxClient {
|
|
|
555
683
|
serviceExposures: spec.serviceExposures?.map((exposure) => ({
|
|
556
684
|
service: exposure.service ?? '',
|
|
557
685
|
targetPort: exposure.targetPort,
|
|
686
|
+
authorizationMode: serviceAuthorizationModeToProto(exposure.authorizationMode),
|
|
558
687
|
})) ?? [],
|
|
559
688
|
});
|
|
560
689
|
return sandboxRef(resp.sandbox, resp.serviceUrls);
|
|
@@ -581,6 +710,7 @@ export class SandboxClient {
|
|
|
581
710
|
serviceExposures: spec.serviceExposures?.map((exposure) => ({
|
|
582
711
|
service: exposure.service ?? '',
|
|
583
712
|
targetPort: exposure.targetPort,
|
|
713
|
+
authorizationMode: serviceAuthorizationModeToProto(exposure.authorizationMode),
|
|
584
714
|
})) ?? [],
|
|
585
715
|
});
|
|
586
716
|
return sandboxRef(resp.sandbox, resp.serviceUrls);
|
|
@@ -769,6 +899,85 @@ export class SandboxClient {
|
|
|
769
899
|
stderr: Buffer.concat(stderr),
|
|
770
900
|
};
|
|
771
901
|
}
|
|
902
|
+
/**
|
|
903
|
+
* Watch a sandbox's log lines and platform events with loss-aware resume.
|
|
904
|
+
*
|
|
905
|
+
* Reconnects transparently on a transient stream drop, resuming from the
|
|
906
|
+
* highest cursor already delivered. A recoverable server-side lag surfaces
|
|
907
|
+
* as a `{ kind: 'warning' }` item and the stream continues.
|
|
908
|
+
*
|
|
909
|
+
* An `SdkError` with `connectCode === Code.OutOfRange` is terminal and not
|
|
910
|
+
* retried: the resume point is gone (trimmed from the buffer, or issued by a
|
|
911
|
+
* cursor space the gateway no longer has), so events between it and now are
|
|
912
|
+
* unrecoverable. Auto-restarting from scratch would hide that loss, which is
|
|
913
|
+
* exactly what this method exists to surface. Callers who accept the gap can
|
|
914
|
+
* start a new watch with an empty `resumeAfterCursor`; retrying the same
|
|
915
|
+
* cursor fails identically.
|
|
916
|
+
*/
|
|
917
|
+
async *watchLogs(name, options) {
|
|
918
|
+
let ref;
|
|
919
|
+
try {
|
|
920
|
+
ref = await this.get(name, {
|
|
921
|
+
workspace: options?.workspace,
|
|
922
|
+
...(options?.signal ? { signal: options.signal } : {}),
|
|
923
|
+
});
|
|
924
|
+
}
|
|
925
|
+
catch (e) {
|
|
926
|
+
throw e instanceof SdkError ? e : fromConnect(e);
|
|
927
|
+
}
|
|
928
|
+
const signal = options?.signal;
|
|
929
|
+
let followLogs = options?.followLogs ?? false;
|
|
930
|
+
const followEvents = options?.followEvents ?? false;
|
|
931
|
+
// With both resolved false — whether from an explicit `false` or from
|
|
932
|
+
// omitting both options — the request would stream nothing and never
|
|
933
|
+
// complete or error. Mirror the Go SDK's guard and default to logs, since
|
|
934
|
+
// that footgun is worse than this one-line divergence from Rust's bare
|
|
935
|
+
// pass-through default.
|
|
936
|
+
if (!followLogs && !followEvents)
|
|
937
|
+
followLogs = true;
|
|
938
|
+
let cursor = options?.resumeAfterCursor ?? '';
|
|
939
|
+
let backoffMs = 100;
|
|
940
|
+
for (;;) {
|
|
941
|
+
if (signal?.aborted)
|
|
942
|
+
throw new SdkError('canceled', 'watchLogs aborted');
|
|
943
|
+
// connect-es returns this AsyncIterable synchronously and unconditionally;
|
|
944
|
+
// the stream only opens on first iteration, so "dial" and "drain" failures
|
|
945
|
+
// both land in the single catch below (unlike tonic's separate Result).
|
|
946
|
+
const stream = this.grpc.watchSandbox({
|
|
947
|
+
...sandboxTarget(ref.name, options),
|
|
948
|
+
followStatus: false,
|
|
949
|
+
followLogs,
|
|
950
|
+
followEvents,
|
|
951
|
+
logTailLines: options?.logTailLines ?? 0,
|
|
952
|
+
eventTail: options?.eventTail ?? 0,
|
|
953
|
+
logSources: options?.logSources ?? [],
|
|
954
|
+
logMinLevel: options?.logMinLevel ?? '',
|
|
955
|
+
resumeAfterCursor: cursor,
|
|
956
|
+
}, { signal });
|
|
957
|
+
let cleanEof = true;
|
|
958
|
+
try {
|
|
959
|
+
for await (const wireEvent of stream) {
|
|
960
|
+
// A delivered event means the connection is healthy again; reset the
|
|
961
|
+
// backoff so a later drop retries promptly instead of at the cap.
|
|
962
|
+
backoffMs = 100;
|
|
963
|
+
const converted = convertWatchEvent(wireEvent, cursor);
|
|
964
|
+
cursor = converted.cursor;
|
|
965
|
+
if (converted.event)
|
|
966
|
+
yield converted.event;
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
catch (e) {
|
|
970
|
+
cleanEof = false;
|
|
971
|
+
const err = e instanceof SdkError ? e : fromConnect(e);
|
|
972
|
+
if (!isRetryableWatchLogsError(err))
|
|
973
|
+
throw err;
|
|
974
|
+
await watchLogsBackoffSleep(backoffMs, signal);
|
|
975
|
+
backoffMs = Math.min(backoffMs * 2, 2000);
|
|
976
|
+
}
|
|
977
|
+
if (cleanEof)
|
|
978
|
+
break;
|
|
979
|
+
}
|
|
980
|
+
}
|
|
772
981
|
// TTY + stdin transport half of an interactive exec. The first client frame
|
|
773
982
|
// is the `start` variant carrying the exec request; subsequent frames are
|
|
774
983
|
// `stdin`/`resize`. No terminal glue: raw mode, signal forwarding, and
|
|
@@ -1282,6 +1491,8 @@ export class OpenShellClient {
|
|
|
1282
1491
|
sandbox;
|
|
1283
1492
|
/** Reusable sandbox workload template lifecycle. */
|
|
1284
1493
|
sandboxTemplates;
|
|
1494
|
+
/** Privileged provider credential retrieval; requires direct operator mTLS. */
|
|
1495
|
+
providers;
|
|
1285
1496
|
/**
|
|
1286
1497
|
* Advanced escape hatch: a generated client for every gateway RPC, including
|
|
1287
1498
|
* surface the curated sub-clients do not wrap yet (gateway config, provider
|
|
@@ -1299,6 +1510,7 @@ export class OpenShellClient {
|
|
|
1299
1510
|
this.raw = this.grpc;
|
|
1300
1511
|
this.sandbox = new SandboxClient(transport, this.grpc);
|
|
1301
1512
|
this.sandboxTemplates = new SandboxTemplateClient(transport, this.grpc);
|
|
1513
|
+
this.providers = new ProviderClient(transport);
|
|
1302
1514
|
}
|
|
1303
1515
|
/**
|
|
1304
1516
|
* Constructs a lazy Connect client. No network request is made until the
|