@solarisdk/core 0.1.0 → 0.1.2

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/README.md CHANGED
@@ -11,7 +11,7 @@ You usually don't install this directly. Instead install a client package:
11
11
  ```bash
12
12
  npm install @solarisdk/desktop # managed virtual desktops
13
13
  npm install @solarisdk/sandbox # ephemeral compute sandboxes
14
- npm install @solarisdk/sdk # unified client + `pinetree` CLI
14
+ npm install @solarisdk/sdk # unified client + `solari` CLI
15
15
  ```
16
16
 
17
17
  `@solarisdk/core` is a dependency of all three and is installed automatically.
package/dist/desktop.d.ts CHANGED
@@ -11,6 +11,13 @@ export interface DesktopConfig extends SessionConfig {
11
11
  /** A live desktop session. Construct via {@link DesktopClient}. */
12
12
  export declare class Desktop extends SessionHandle {
13
13
  readonly streamUrl: string;
14
+ /**
15
+ * Presigned playback URL for the session recording — set when the session was
16
+ * created with `record: true`, `undefined` otherwise. The guest uploads the
17
+ * mp4 on `record.stop()`, so the URL only resolves once a recording has been
18
+ * started and stopped.
19
+ */
20
+ readonly recordingUrl: string | undefined;
14
21
  /** The session id (alias of {@link SessionHandle.id}; back-compat). */
15
22
  get sessionId(): string;
16
23
  constructor(session: CreateDesktopResponse, config?: DesktopConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../src/desktop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../src/desktop.ts"],"names":[],"mappings":"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"}
package/dist/desktop.js CHANGED
@@ -10,9 +10,35 @@
10
10
  // `process`, `ports`, `pkg`) are kept too.
11
11
  import { SessionHandle } from "./handle.js";
12
12
  import { base64ToBytes } from "./transport.js";
13
+ /**
14
+ * Map a named {@link MouseButton} to the X11/xdotool button code the guest
15
+ * agent expects (`mouseParams.button` is an `int`): left=1, middle=2, right=3.
16
+ * `undefined` is passed through so the guest applies its own default (left).
17
+ * Without this the wire would carry a raw string and the guest's JSON decode
18
+ * fails with `cannot unmarshal string into ... button of type int`.
19
+ */
20
+ function buttonToCode(button) {
21
+ if (button === undefined)
22
+ return undefined;
23
+ switch (button) {
24
+ case "left":
25
+ return 1;
26
+ case "middle":
27
+ return 2;
28
+ case "right":
29
+ return 3;
30
+ }
31
+ }
13
32
  /** A live desktop session. Construct via {@link DesktopClient}. */
14
33
  export class Desktop extends SessionHandle {
15
34
  streamUrl;
35
+ /**
36
+ * Presigned playback URL for the session recording — set when the session was
37
+ * created with `record: true`, `undefined` otherwise. The guest uploads the
38
+ * mp4 on `record.stop()`, so the URL only resolves once a recording has been
39
+ * started and stopped.
40
+ */
41
+ recordingUrl;
16
42
  /** The session id (alias of {@link SessionHandle.id}; back-compat). */
17
43
  get sessionId() {
18
44
  return this.id;
@@ -29,6 +55,7 @@ export class Desktop extends SessionHandle {
29
55
  hooks,
30
56
  });
31
57
  this.streamUrl = session.streamUrl;
58
+ this.recordingUrl = session.recordingUrl;
32
59
  }
33
60
  // GUI RPCs go over the shared control channel via the protected `rpc` hook.
34
61
  guiCall(method, params) {
@@ -69,14 +96,24 @@ export class Desktop extends SessionHandle {
69
96
  mouse = {
70
97
  move: (x, y, opts = {}) => this.mouseCall(x, y, "move", undefined, opts.humanize),
71
98
  click: (x, y, opts = {}) => this.mouseCall(x, y, "click", opts.button, opts.humanize),
72
- doubleClick: (x, y, opts = {}) => this.guiCall("input.doubleClick", { x, y, button: opts.button }).then(() => undefined),
99
+ doubleClick: (x, y, opts = {}) => this.guiCall("input.doubleClick", {
100
+ x,
101
+ y,
102
+ button: buttonToCode(opts.button),
103
+ }).then(() => undefined),
73
104
  down: (x, y, button = "left") => this.mouseCall(x, y, "down", button),
74
105
  up: (x, y, button = "left") => this.mouseCall(x, y, "up", button),
75
106
  scroll: (x, y, opts = {}) => this.mouseCall(x, y, "scroll", opts.button, opts.humanize),
76
- drag: (from, to, button = "left") => this.guiCall("input.drag", { from, to, button }).then(() => undefined),
107
+ drag: (from, to, button = "left") => this.guiCall("input.drag", { from, to, button: buttonToCode(button) }).then(() => undefined),
77
108
  };
78
109
  mouseCall(x, y, action, button, humanize) {
79
- return this.guiCall("input.mouse", { x, y, action, button, humanize }).then(() => undefined);
110
+ return this.guiCall("input.mouse", {
111
+ x,
112
+ y,
113
+ action,
114
+ button: buttonToCode(button),
115
+ humanize,
116
+ }).then(() => undefined);
80
117
  }
81
118
  // --- keyboard -------------------------------------------------------------
82
119
  keyboard = {
@@ -1 +1 @@
1
- {"version":3,"file":"desktop.js","sourceRoot":"","sources":["../src/desktop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"desktop.js","sourceRoot":"","sources":["../src/desktop.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import type { GatewayErrorBody } from "./types.js";
2
2
  /** Base class for every error thrown by the SDK. */
3
- export declare class PinetreeError extends Error {
3
+ export declare class SolariError extends Error {
4
4
  constructor(message: string);
5
5
  }
6
6
  /** Any non-2xx response from the gateway that isn't otherwise specialized. */
7
- export declare class GatewayError extends PinetreeError {
7
+ export declare class GatewayError extends SolariError {
8
8
  readonly status: number;
9
9
  readonly code?: string;
10
10
  readonly body?: GatewayErrorBody;
@@ -27,19 +27,19 @@ export declare class NoCapacityError extends GatewayError {
27
27
  constructor(message?: string, body?: GatewayErrorBody);
28
28
  }
29
29
  /** A computer-use RPC returned `{ok:false}`. */
30
- export declare class ActionError extends PinetreeError {
30
+ export declare class ActionError extends SolariError {
31
31
  readonly method: string;
32
32
  readonly code?: string;
33
33
  constructor(method: string, message: string, code?: string);
34
34
  }
35
35
  /** An RPC did not receive a reply within the per-call timeout. */
36
- export declare class TimeoutError extends PinetreeError {
36
+ export declare class TimeoutError extends SolariError {
37
37
  readonly method: string;
38
38
  readonly timeoutMs: number;
39
39
  constructor(method: string, timeoutMs: number);
40
40
  }
41
41
  /** The control WebSocket is not open (never connected, or closed). */
42
- export declare class ConnectionError extends PinetreeError {
42
+ export declare class ConnectionError extends SolariError {
43
43
  constructor(message?: string);
44
44
  }
45
45
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,oDAAoD;AACpD,qBAAa,aAAc,SAAQ,KAAK;gBAC1B,OAAO,EAAE,MAAM;CAI5B;AAED,8EAA8E;AAC9E,qBAAa,YAAa,SAAQ,aAAa;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;gBAErB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB;CAMrE;AAED,+DAA+D;AAC/D,qBAAa,SAAU,SAAQ,YAAY;gBAC7B,OAAO,SAA+B,EAAE,IAAI,CAAC,EAAE,gBAAgB;CAG5E;AAED,wEAAwE;AACxE,qBAAa,SAAU,SAAQ,YAAY;gBAEvC,OAAO,SAA2C,EAClD,IAAI,CAAC,EAAE,gBAAgB;CAI1B;AAED,wEAAwE;AACxE,qBAAa,qBAAsB,SAAQ,YAAY;gBAEnD,OAAO,SAA+B,EACtC,IAAI,CAAC,EAAE,gBAAgB;CAI1B;AAED,wEAAwE;AACxE,qBAAa,eAAgB,SAAQ,YAAY;gBAE7C,OAAO,SAA8B,EACrC,IAAI,CAAC,EAAE,gBAAgB;CAI1B;AAED,gDAAgD;AAChD,qBAAa,WAAY,SAAQ,aAAa;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3D;AAED,kEAAkE;AAClE,qBAAa,YAAa,SAAQ,aAAa;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAK9C;AAED,sEAAsE;AACtE,qBAAa,eAAgB,SAAQ,aAAa;gBACpC,OAAO,SAAqC;CAGzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GAAG,SAAS,GACjC,YAAY,CAkBd"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,oDAAoD;AACpD,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED,8EAA8E;AAC9E,qBAAa,YAAa,SAAQ,WAAW;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;gBAErB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB;CAMrE;AAED,+DAA+D;AAC/D,qBAAa,SAAU,SAAQ,YAAY;gBAC7B,OAAO,SAA+B,EAAE,IAAI,CAAC,EAAE,gBAAgB;CAG5E;AAED,wEAAwE;AACxE,qBAAa,SAAU,SAAQ,YAAY;gBAEvC,OAAO,SAA2C,EAClD,IAAI,CAAC,EAAE,gBAAgB;CAI1B;AAED,wEAAwE;AACxE,qBAAa,qBAAsB,SAAQ,YAAY;gBAEnD,OAAO,SAA+B,EACtC,IAAI,CAAC,EAAE,gBAAgB;CAI1B;AAED,wEAAwE;AACxE,qBAAa,eAAgB,SAAQ,YAAY;gBAE7C,OAAO,SAA8B,EACrC,IAAI,CAAC,EAAE,gBAAgB;CAI1B;AAED,gDAAgD;AAChD,qBAAa,WAAY,SAAQ,WAAW;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEX,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM;CAK3D;AAED,kEAAkE;AAClE,qBAAa,YAAa,SAAQ,WAAW;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBAEf,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAK9C;AAED,sEAAsE;AACtE,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,OAAO,SAAqC;CAGzD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,gBAAgB,GAAG,SAAS,GACjC,YAAY,CAkBd"}
package/dist/errors.js CHANGED
@@ -1,14 +1,14 @@
1
1
  // Typed errors. Gateway HTTP status codes (§1) and control-channel RPC
2
2
  // failures (§4) are mapped onto these so callers can branch on `instanceof`.
3
3
  /** Base class for every error thrown by the SDK. */
4
- export class PinetreeError extends Error {
4
+ export class SolariError extends Error {
5
5
  constructor(message) {
6
6
  super(message);
7
7
  this.name = new.target.name;
8
8
  }
9
9
  }
10
10
  /** Any non-2xx response from the gateway that isn't otherwise specialized. */
11
- export class GatewayError extends PinetreeError {
11
+ export class GatewayError extends SolariError {
12
12
  status;
13
13
  code;
14
14
  body;
@@ -44,7 +44,7 @@ export class NoCapacityError extends GatewayError {
44
44
  }
45
45
  }
46
46
  /** A computer-use RPC returned `{ok:false}`. */
47
- export class ActionError extends PinetreeError {
47
+ export class ActionError extends SolariError {
48
48
  method;
49
49
  code;
50
50
  constructor(method, message, code) {
@@ -54,7 +54,7 @@ export class ActionError extends PinetreeError {
54
54
  }
55
55
  }
56
56
  /** An RPC did not receive a reply within the per-call timeout. */
57
- export class TimeoutError extends PinetreeError {
57
+ export class TimeoutError extends SolariError {
58
58
  method;
59
59
  timeoutMs;
60
60
  constructor(method, timeoutMs) {
@@ -64,7 +64,7 @@ export class TimeoutError extends PinetreeError {
64
64
  }
65
65
  }
66
66
  /** The control WebSocket is not open (never connected, or closed). */
67
- export class ConnectionError extends PinetreeError {
67
+ export class ConnectionError extends SolariError {
68
68
  constructor(message = "Control channel is not connected") {
69
69
  super(message);
70
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,6EAA6E;AAI7E,oDAAoD;AACpD,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B,CAAC;CACF;AAED,8EAA8E;AAC9E,MAAM,OAAO,YAAa,SAAQ,aAAa;IACpC,MAAM,CAAS;IACf,IAAI,CAAU;IACd,IAAI,CAAoB;IAEjC,YAAY,MAAc,EAAE,OAAe,EAAE,IAAuB;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,+DAA+D;AAC/D,MAAM,OAAO,SAAU,SAAQ,YAAY;IACzC,YAAY,OAAO,GAAG,4BAA4B,EAAE,IAAuB;QACzE,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,wEAAwE;AACxE,MAAM,OAAO,SAAU,SAAQ,YAAY;IACzC,YACE,OAAO,GAAG,wCAAwC,EAClD,IAAuB;QAEvB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,wEAAwE;AACxE,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IACrD,YACE,OAAO,GAAG,4BAA4B,EACtC,IAAuB;QAEvB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,wEAAwE;AACxE,MAAM,OAAO,eAAgB,SAAQ,YAAY;IAC/C,YACE,OAAO,GAAG,2BAA2B,EACrC,IAAuB;QAEvB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,gDAAgD;AAChD,MAAM,OAAO,WAAY,SAAQ,aAAa;IACnC,MAAM,CAAS;IACf,IAAI,CAAU;IAEvB,YAAY,MAAc,EAAE,OAAe,EAAE,IAAa;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,kEAAkE;AAClE,MAAM,OAAO,YAAa,SAAQ,aAAa;IACpC,MAAM,CAAS;IACf,SAAS,CAAS;IAE3B,YAAY,MAAc,EAAE,SAAiB;QAC3C,KAAK,CAAC,WAAW,MAAM,qBAAqB,SAAS,IAAI,CAAC,CAAC;QAC3D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED,sEAAsE;AACtE,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAChD,YAAY,OAAO,GAAG,kCAAkC;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,IAAkC;IAElC,MAAM,GAAG,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,CAAC;IACvD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,KAAK,GAAG;YACN,OAAO,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAClC,KAAK,GAAG;YACN,OAAO,IAAI,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC9C,KAAK,GAAG;YACN,OAAO,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC;YACE,OAAO,IAAI,YAAY,CACrB,MAAM,EACN,GAAG,IAAI,sCAAsC,MAAM,EAAE,EACrD,IAAI,CACL,CAAC;IACN,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/dist/handle.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ControlChannel, type ControlChannelConfig } from "./transport.js";
2
- import type { CommandHandle, CommandOptions, CommandResult, FsEntry, FsSearchMatch, FsStat, FsWatchEvent, MetricsResult, PtyHandle, PtyOptions, RunCodeOptions, RunCodeResult } from "./types.js";
2
+ import type { CommandHandle, CommandOptions, CommandResult, ExecOneShotRequest, FsEntry, FsSearchMatch, FsStat, FsWatchEvent, GitBranch, GitCloneOptions, GitCommit, GitCommitOptions, GitLogOptions, GitRemoteOptions, GitStatus, MetricsResult, PtyHandle, PtyOptions, RunCodeOptions, RunCodeResult } from "./types.js";
3
3
  /** Wiring supplied by the owning sub-client so handle-level admin calls reach
4
4
  * the gateway without the handle holding an HTTP client. */
5
5
  export interface SessionHooks {
@@ -36,6 +36,9 @@ export interface SessionHooks {
36
36
  url: string;
37
37
  token?: string;
38
38
  }>;
39
+ /** `POST /sandboxes/:id/exec` — one-shot command over the warm REST
40
+ * connection (no control WS). Returns the terminal result directly. */
41
+ exec?(id: string, req: ExecOneShotRequest): Promise<CommandResult>;
39
42
  /** `DELETE /sandboxes/:id`. */
40
43
  kill?(id: string): Promise<void>;
41
44
  }
@@ -137,6 +140,45 @@ export declare class SessionHandle {
137
140
  */
138
141
  mount: (volId: string, path: string) => Promise<void>;
139
142
  };
143
+ readonly git: {
144
+ /** Clone `url` into `opts.path` (or git's default dir) under `opts.cwd`. */
145
+ clone: (url: string, opts?: GitCloneOptions) => Promise<void>;
146
+ /** Parsed working-tree status (branch, ahead/behind, staged/modified/untracked). */
147
+ status: (cwd?: string) => Promise<GitStatus>;
148
+ /** Stage `paths` (use `["."]` for everything). */
149
+ add: (paths: string[], cwd?: string) => Promise<void>;
150
+ /** Commit staged changes; returns the new commit hash. */
151
+ commit: (message: string, opts?: GitCommitOptions) => Promise<{
152
+ hash: string;
153
+ }>;
154
+ /** Push to a remote (default `origin` + current branch). */
155
+ push: (opts?: GitRemoteOptions) => Promise<void>;
156
+ /** Pull from a remote (default `origin` + current branch). */
157
+ pull: (opts?: GitRemoteOptions) => Promise<void>;
158
+ /** Check out an existing ref, or create a branch with `{ create: true }`. */
159
+ checkout: (ref: string, opts?: {
160
+ cwd?: string;
161
+ create?: boolean;
162
+ }) => Promise<void>;
163
+ /** List local branches (name, short commit, whether it's HEAD). */
164
+ branches: (cwd?: string) => Promise<GitBranch[]>;
165
+ /** Recent commits, newest first. */
166
+ log: (opts?: GitLogOptions) => Promise<GitCommit[]>;
167
+ };
168
+ /** Run `git <args>` in the guest via the command RPC (no shell). */
169
+ private runGit;
170
+ /** Run `git <args>`; throw with the stderr on a non-zero exit. */
171
+ private mustGit;
172
+ /** Splice basic-auth creds into an https remote URL (for private remotes). */
173
+ private authUrl;
174
+ private gitClone;
175
+ private gitStatus;
176
+ private gitAdd;
177
+ private gitCommit;
178
+ private gitPushPull;
179
+ private gitCheckout;
180
+ private gitBranches;
181
+ private gitLog;
140
182
  /** Live resource metrics. */
141
183
  metrics(): Promise<MetricsResult>;
142
184
  /** Checkpoint this RUNNING session; it keeps running. Returns the snapshot id. */
@@ -1 +1 @@
1
- {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../src/handle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../src/handle.ts"],"names":[],"mappings":"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"}
package/dist/handle.js CHANGED
@@ -10,6 +10,7 @@
10
10
  // dispatched by the ControlChannel by `type` + the stream's own id, NOT by the
11
11
  // originating request id. We register/unregister those frame handlers as
12
12
  // commands/ptys/watches are created and torn down.
13
+ import { GatewayError } from "./errors.js";
13
14
  import { base64ToBytes, bytesToBase64, ControlChannel, } from "./transport.js";
14
15
  export class SessionHandle {
15
16
  /** The session id (sandboxId / sessionId). */
@@ -134,6 +135,39 @@ export class SessionHandle {
134
135
  };
135
136
  }
136
137
  async runCommand(cmd, opts) {
138
+ // One-shot HTTP fast path: for a plain run-to-completion (no streaming
139
+ // callbacks, not backgrounded, no per-command env/user) run the command
140
+ // over the already-warm REST connection instead of paying a cold control-WS
141
+ // handshake. That handshake (~180ms TCP+TLS to the gateway) dominates the
142
+ // "create → run one command" latency, so skipping it is the single biggest
143
+ // TTI win. We only take this path when the control channel isn't already
144
+ // open — if it is, the WS is cheaper and streams. env/user are excluded
145
+ // because the one-shot guest path runs under the session env only; routing
146
+ // those through the streaming path keeps behavior identical.
147
+ if (this.hooks.exec &&
148
+ !opts.background &&
149
+ !opts.onStdout &&
150
+ !opts.onStderr &&
151
+ !opts.env &&
152
+ !opts.user &&
153
+ !this.channel.connected) {
154
+ try {
155
+ return await this.hooks.exec(this.id, {
156
+ cmd,
157
+ args: opts.args,
158
+ cwd: opts.cwd,
159
+ timeoutMs: opts.timeoutMs,
160
+ });
161
+ }
162
+ catch (err) {
163
+ // Fall back to the WS path ONLY when the one-shot route is unavailable
164
+ // (an older gateway without /exec). Any other failure — including a
165
+ // real host/command error — propagates, so we never silently
166
+ // double-execute a command that may have already run guest-side.
167
+ if (!isRouteUnavailable(err))
168
+ throw err;
169
+ }
170
+ }
137
171
  const handle = await this.startCommand(cmd, opts);
138
172
  let stdout = "";
139
173
  let stderr = "";
@@ -314,6 +348,204 @@ export class SessionHandle {
314
348
  .call("volume.mount", { volumeId: volId, path })
315
349
  .then(() => undefined),
316
350
  };
351
+ // --- git ------------------------------------------------------------------
352
+ // A first-class version-control surface (Daytona-parity). Every method is a
353
+ // safe, non-shell `git` invocation over the existing command RPC (`cmd` +
354
+ // `args`, never a shell string), so there is no injection surface and it runs
355
+ // against any guest that has `git` on PATH — which the base image ships. No
356
+ // guest/gateway change is required.
357
+ git = {
358
+ /** Clone `url` into `opts.path` (or git's default dir) under `opts.cwd`. */
359
+ clone: (url, opts = {}) => this.gitClone(url, opts),
360
+ /** Parsed working-tree status (branch, ahead/behind, staged/modified/untracked). */
361
+ status: (cwd) => this.gitStatus(cwd),
362
+ /** Stage `paths` (use `["."]` for everything). */
363
+ add: (paths, cwd) => this.gitAdd(paths, cwd),
364
+ /** Commit staged changes; returns the new commit hash. */
365
+ commit: (message, opts = {}) => this.gitCommit(message, opts),
366
+ /** Push to a remote (default `origin` + current branch). */
367
+ push: (opts = {}) => this.gitPushPull("push", opts),
368
+ /** Pull from a remote (default `origin` + current branch). */
369
+ pull: (opts = {}) => this.gitPushPull("pull", opts),
370
+ /** Check out an existing ref, or create a branch with `{ create: true }`. */
371
+ checkout: (ref, opts = {}) => this.gitCheckout(ref, opts),
372
+ /** List local branches (name, short commit, whether it's HEAD). */
373
+ branches: (cwd) => this.gitBranches(cwd),
374
+ /** Recent commits, newest first. */
375
+ log: (opts = {}) => this.gitLog(opts),
376
+ };
377
+ /** Run `git <args>` in the guest via the command RPC (no shell). */
378
+ async runGit(args, cwd) {
379
+ return this.runCommand("git", { args, ...(cwd ? { cwd } : {}) });
380
+ }
381
+ /** Run `git <args>`; throw with the stderr on a non-zero exit. */
382
+ async mustGit(args, cwd) {
383
+ const r = await this.runGit(args, cwd);
384
+ if (r.exitCode !== 0) {
385
+ const detail = (r.stderr || r.stdout || "").trim();
386
+ throw new Error(`git ${args[0]} failed (exit ${r.exitCode}): ${detail}`);
387
+ }
388
+ return r.stdout;
389
+ }
390
+ /** Splice basic-auth creds into an https remote URL (for private remotes). */
391
+ authUrl(url, username, password) {
392
+ if (!username && !password)
393
+ return url;
394
+ try {
395
+ const u = new URL(url);
396
+ if (username)
397
+ u.username = encodeURIComponent(username);
398
+ if (password)
399
+ u.password = encodeURIComponent(password);
400
+ return u.toString();
401
+ }
402
+ catch {
403
+ return url; // ssh/scp-style or malformed — leave untouched
404
+ }
405
+ }
406
+ async gitClone(url, opts) {
407
+ const args = ["clone"];
408
+ if (opts.depth && opts.depth > 0)
409
+ args.push("--depth", String(opts.depth));
410
+ if (opts.branch)
411
+ args.push("--branch", opts.branch);
412
+ args.push(this.authUrl(url, opts.username, opts.password));
413
+ if (opts.path)
414
+ args.push(opts.path);
415
+ await this.mustGit(args, opts.cwd);
416
+ }
417
+ async gitStatus(cwd) {
418
+ const out = await this.mustGit(["status", "--porcelain=v1", "--branch"], cwd);
419
+ const lines = out.split("\n").filter((l) => l.length > 0);
420
+ const st = {
421
+ branch: "",
422
+ detached: false,
423
+ ahead: 0,
424
+ behind: 0,
425
+ staged: [],
426
+ modified: [],
427
+ untracked: [],
428
+ clean: true,
429
+ };
430
+ for (const line of lines) {
431
+ if (line.startsWith("## ")) {
432
+ const head = line.slice(3);
433
+ if (head.startsWith("HEAD (no branch)")) {
434
+ st.detached = true;
435
+ }
436
+ else {
437
+ // "main...origin/main [ahead 1, behind 2]" | "main" | "No commits yet on main"
438
+ const noCommits = head.match(/^No commits yet on (.+)$/);
439
+ const body = noCommits?.[1] ?? head;
440
+ st.branch = (body.split("...")[0] ?? "").split(" ")[0] ?? "";
441
+ const ab = head.match(/\[(.*)\]/);
442
+ if (ab) {
443
+ const inner = ab[1] ?? "";
444
+ const a = inner.match(/ahead (\d+)/);
445
+ const b = inner.match(/behind (\d+)/);
446
+ if (a?.[1])
447
+ st.ahead = Number(a[1]);
448
+ if (b?.[1])
449
+ st.behind = Number(b[1]);
450
+ }
451
+ }
452
+ continue;
453
+ }
454
+ const xy = line.slice(0, 2);
455
+ const path = line.slice(3);
456
+ if (xy === "??") {
457
+ st.untracked.push(path);
458
+ }
459
+ else if (xy.length === 2) {
460
+ const index = xy[0];
461
+ const work = xy[1];
462
+ if (index !== " " && index !== "?")
463
+ st.staged.push(path);
464
+ if (work !== " " && work !== "?")
465
+ st.modified.push(path);
466
+ }
467
+ }
468
+ st.clean = st.staged.length === 0 && st.modified.length === 0 && st.untracked.length === 0;
469
+ return st;
470
+ }
471
+ async gitAdd(paths, cwd) {
472
+ if (paths.length === 0)
473
+ return;
474
+ await this.mustGit(["add", "--", ...paths], cwd);
475
+ }
476
+ async gitCommit(message, opts) {
477
+ // `-c user.name/email` scopes identity to this one commit without mutating
478
+ // the repo/global config — handy in an ephemeral sandbox with no git identity.
479
+ const args = [];
480
+ if (opts.author)
481
+ args.push("-c", `user.name=${opts.author}`);
482
+ if (opts.email)
483
+ args.push("-c", `user.email=${opts.email}`);
484
+ args.push("commit", "-m", message);
485
+ if (opts.all)
486
+ args.push("-a");
487
+ await this.mustGit(args, opts.cwd);
488
+ const hash = (await this.mustGit(["rev-parse", "HEAD"], opts.cwd)).trim();
489
+ return { hash };
490
+ }
491
+ async gitPushPull(op, opts) {
492
+ const remote = opts.remote || "origin";
493
+ // One-off HTTPS auth without persisting a credential: rewrite the remote's
494
+ // URL for just this invocation via `-c url.<authed>.insteadOf=<plain>`.
495
+ const cfg = [];
496
+ if (opts.username || opts.password) {
497
+ const plain = (await this.runGit(["remote", "get-url", remote], opts.cwd)).stdout.trim();
498
+ if (plain) {
499
+ const authed = this.authUrl(plain, opts.username, opts.password);
500
+ if (authed !== plain)
501
+ cfg.push("-c", `url.${authed}.insteadOf=${plain}`);
502
+ }
503
+ }
504
+ const args = [...cfg, op, remote];
505
+ if (opts.branch)
506
+ args.push(opts.branch);
507
+ await this.mustGit(args, opts.cwd);
508
+ }
509
+ async gitCheckout(ref, opts) {
510
+ const args = ["checkout"];
511
+ if (opts.create)
512
+ args.push("-b");
513
+ args.push(ref);
514
+ await this.mustGit(args, opts.cwd);
515
+ }
516
+ async gitBranches(cwd) {
517
+ // A stable, parse-friendly format (unit-separated) instead of the porcelain
518
+ // `* main` layout, so branch names with spaces/`*` never confuse the parser.
519
+ const out = await this.mustGit(["branch", "--format=%(HEAD)%1f%(refname:short)%1f%(objectname:short)"], cwd);
520
+ const branches = [];
521
+ for (const line of out.split("\n")) {
522
+ if (!line.trim())
523
+ continue;
524
+ const [head, name, commit] = line.split("\x1f");
525
+ branches.push({ name: name ?? "", commit: commit ?? "", current: head === "*" });
526
+ }
527
+ return branches;
528
+ }
529
+ async gitLog(opts) {
530
+ const args = ["log", "--format=%H%x1f%an%x1f%ae%x1f%aI%x1f%s"];
531
+ if (opts.maxCount && opts.maxCount > 0)
532
+ args.push(`--max-count=${opts.maxCount}`);
533
+ const out = await this.mustGit(args, opts.cwd);
534
+ const commits = [];
535
+ for (const line of out.split("\n")) {
536
+ if (!line.trim())
537
+ continue;
538
+ const [hash, author, email, date, message] = line.split("\x1f");
539
+ commits.push({
540
+ hash: hash ?? "",
541
+ author: author ?? "",
542
+ email: email ?? "",
543
+ date: date ?? "",
544
+ message: message ?? "",
545
+ });
546
+ }
547
+ return commits;
548
+ }
317
549
  // --- lifecycle / admin (gateway-routed via hooks) -------------------------
318
550
  /** Live resource metrics. */
319
551
  metrics() {
@@ -379,6 +611,13 @@ export class SessionHandle {
379
611
  this.close();
380
612
  }
381
613
  }
614
+ /** True when an error means the one-shot `/exec` route isn't served (an older
615
+ * gateway) — the only case where `runCommand` retries over the control WS. A
616
+ * real host/command failure is NOT route-unavailable and must propagate. */
617
+ function isRouteUnavailable(err) {
618
+ return (err instanceof GatewayError &&
619
+ (err.status === 404 || err.status === 405 || err.status === 501));
620
+ }
382
621
  function toB64(data) {
383
622
  const bytes = typeof data === "string" ? new TextEncoder().encode(data) : data;
384
623
  return bytesToBase64(bytes);