@grackle-ai/server 0.72.1 → 0.72.3

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 (45) hide show
  1. package/dist/grpc-service.d.ts.map +1 -1
  2. package/dist/grpc-service.js +3 -5
  3. package/dist/grpc-service.js.map +1 -1
  4. package/dist/index.js +19 -16
  5. package/dist/index.js.map +1 -1
  6. package/dist/ws-bridge.d.ts.map +1 -1
  7. package/dist/ws-bridge.js +2 -3
  8. package/dist/ws-bridge.js.map +1 -1
  9. package/package.json +12 -7
  10. package/dist/adapters/codespace.d.ts +0 -40
  11. package/dist/adapters/codespace.d.ts.map +0 -1
  12. package/dist/adapters/codespace.js +0 -212
  13. package/dist/adapters/codespace.js.map +0 -1
  14. package/dist/adapters/docker.d.ts +0 -39
  15. package/dist/adapters/docker.d.ts.map +0 -1
  16. package/dist/adapters/docker.js +0 -366
  17. package/dist/adapters/docker.js.map +0 -1
  18. package/dist/adapters/local.d.ts +0 -15
  19. package/dist/adapters/local.d.ts.map +0 -1
  20. package/dist/adapters/local.js +0 -57
  21. package/dist/adapters/local.js.map +0 -1
  22. package/dist/adapters/ssh.d.ts +0 -45
  23. package/dist/adapters/ssh.d.ts.map +0 -1
  24. package/dist/adapters/ssh.js +0 -214
  25. package/dist/adapters/ssh.js.map +0 -1
  26. package/dist/api-key.d.ts +0 -8
  27. package/dist/api-key.d.ts.map +0 -1
  28. package/dist/api-key.js +0 -58
  29. package/dist/api-key.js.map +0 -1
  30. package/dist/oauth.d.ts +0 -100
  31. package/dist/oauth.d.ts.map +0 -1
  32. package/dist/oauth.js +0 -225
  33. package/dist/oauth.js.map +0 -1
  34. package/dist/pairing.d.ts +0 -22
  35. package/dist/pairing.d.ts.map +0 -1
  36. package/dist/pairing.js +0 -136
  37. package/dist/pairing.js.map +0 -1
  38. package/dist/security-headers.d.ts +0 -17
  39. package/dist/security-headers.d.ts.map +0 -1
  40. package/dist/security-headers.js +0 -31
  41. package/dist/security-headers.js.map +0 -1
  42. package/dist/session.d.ts +0 -36
  43. package/dist/session.d.ts.map +0 -1
  44. package/dist/session.js +0 -143
  45. package/dist/session.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"codespace.js","sourceRoot":"","sources":["../../src/adapters/codespace.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import type { EnvironmentAdapter, BaseEnvironmentConfig, PowerLineConnection, ProvisionEvent } from "@grackle-ai/adapter-sdk";
2
- /** Docker-specific environment configuration. */
3
- export interface DockerEnvironmentConfig extends BaseEnvironmentConfig {
4
- image: string;
5
- containerName?: string;
6
- localPort?: number;
7
- volumes?: string[];
8
- env?: Record<string, string>;
9
- /** Git repo URL to clone into the container workspace. */
10
- repo?: string;
11
- /** Enable GPU passthrough (e.g. "all" for --gpus all). */
12
- gpus?: string;
13
- }
14
- /** @internal Abstraction over command execution used by {@link DockerAdapter}. */
15
- export interface DockerExecFactory {
16
- /** Execute a command and return its trimmed output. */
17
- exec(command: string, args: string[], options?: {
18
- timeout?: number;
19
- }): Promise<{
20
- stdout: string;
21
- stderr: string;
22
- }>;
23
- }
24
- /** Environment adapter that provisions and manages Docker containers running the PowerLine. */
25
- export declare class DockerAdapter implements EnvironmentAdapter {
26
- type: string;
27
- private readonly execFn;
28
- private readonly execFactory;
29
- constructor(execFactory?: DockerExecFactory);
30
- provision(environmentId: string, config: Record<string, unknown>, powerlineToken: string): AsyncGenerator<ProvisionEvent>;
31
- connect(environmentId: string, config: Record<string, unknown>, powerlineToken: string): Promise<PowerLineConnection>;
32
- disconnect(environmentId: string): Promise<void>;
33
- stop(environmentId: string, config: Record<string, unknown>): Promise<void>;
34
- destroy(environmentId: string, config: Record<string, unknown>): Promise<void>;
35
- healthCheck(connection: PowerLineConnection): Promise<boolean>;
36
- /** Build the `docker run` argument array from config and token. */
37
- buildRunArgs(containerName: string, localPort: number, image: string, cfg: DockerEnvironmentConfig, powerlineToken: string): string[];
38
- }
39
- //# sourceMappingURL=docker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/adapters/docker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,cAAc,EAAkB,MAAM,yBAAyB,CAAC;AAsC9I,iDAAiD;AACjD,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpH;AA+LD,+FAA+F;AAC/F,qBAAa,aAAc,YAAW,kBAAkB;IAC/C,IAAI,EAAE,MAAM,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;gBAE7B,WAAW,CAAC,EAAE,iBAAiB;IAKpC,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC;IA+D1H,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA0BrH,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3E,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9E,WAAW,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3E,mEAAmE;IAC5D,YAAY,CACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,uBAAuB,EAC5B,cAAc,EAAE,MAAM,GACrB,MAAM,EAAE;CA4CZ"}
@@ -1,366 +0,0 @@
1
- import { DEFAULT_POWERLINE_PORT } from "@grackle-ai/common";
2
- import { createPowerLineClient, isDevMode, bootstrapPowerLine, startRemotePowerLine, } from "@grackle-ai/adapter-sdk";
3
- import { getCredentialProviders } from "../credential-providers.js";
4
- import { exec } from "../utils/exec.js";
5
- import { findFreePort } from "../utils/ports.js";
6
- import { sleep } from "../utils/sleep.js";
7
- import { existsSync } from "node:fs";
8
- import { resolve } from "node:path";
9
- import { logger } from "../logger.js";
10
- const DOCKER_PULL_TIMEOUT_MS = 120_000;
11
- /** Timeout for `docker build` when building the base image. */
12
- const DOCKER_BUILD_TIMEOUT_MS = 300_000;
13
- const GIT_CLONE_TIMEOUT_MS = 120_000;
14
- const GIT_PULL_TIMEOUT_MS = 60_000;
15
- const CONTAINER_POLL_DELAY_MS = 1_000;
16
- const CONTAINER_POLL_MAX_ATTEMPTS = 30;
17
- const CONNECT_RETRY_DELAY_MS = 1_500;
18
- const CONNECT_MAX_RETRIES = 10;
19
- const WORKSPACE_PATH = "/workspace";
20
- /** Default image name used when no custom image is specified. */
21
- const DEFAULT_IMAGE = "grackle-powerline:latest";
22
- /** Timeout for commands executed inside the container. */
23
- const DOCKER_EXEC_TIMEOUT_MS = 60_000;
24
- /**
25
- * Docker network name for sibling containers. When set (typically via compose),
26
- * sibling containers join this network so the server can reach them directly
27
- * by container name instead of via host port mapping. Required for DooD setups
28
- * where the server itself runs in a container.
29
- */
30
- const DOCKER_NETWORK = process.env.GRACKLE_DOCKER_NETWORK || undefined;
31
- /** Default implementation that delegates to the real `exec` utility. */
32
- const NODE_DOCKER_EXEC_FACTORY = { exec };
33
- const containerPorts = new Map();
34
- // ─── Docker CLI Helpers ────────────────────────────────────
35
- /** Pull a Docker image, suppressing errors if the image exists locally. */
36
- async function pullImage(execFn, image) {
37
- try {
38
- await execFn("docker", ["pull", image], { timeout: DOCKER_PULL_TIMEOUT_MS });
39
- }
40
- catch {
41
- logger.debug({ image }, "Docker pull failed, trying local image");
42
- }
43
- }
44
- /** Start a new Docker container with the given arguments. Returns true if created; false if it already existed. */
45
- async function createOrStartContainer(execFn, containerName, runArgs) {
46
- try {
47
- await execFn("docker", ["inspect", containerName]);
48
- // Container exists — just start it
49
- await execFn("docker", ["start", containerName]);
50
- return false;
51
- }
52
- catch {
53
- // Container doesn't exist — create it
54
- await execFn("docker", runArgs);
55
- return true;
56
- }
57
- }
58
- /** Discover the host-mapped port of an existing container. */
59
- async function discoverHostPort(execFn, containerName, containerPort, fallback) {
60
- try {
61
- const { stdout } = await execFn("docker", [
62
- "inspect", "-f",
63
- `{{(index (index .NetworkSettings.Ports "${containerPort}/tcp") 0).HostPort}}`,
64
- containerName,
65
- ]);
66
- const parsed = parseInt(stdout, 10);
67
- if (!isNaN(parsed)) {
68
- return parsed;
69
- }
70
- }
71
- catch {
72
- logger.debug({ containerName }, "Could not discover host port, using fallback");
73
- }
74
- return fallback;
75
- }
76
- /** Poll until a Docker container reaches the Running state. */
77
- async function waitForContainerRunning(execFn, containerName) {
78
- for (let i = 0; i < CONTAINER_POLL_MAX_ATTEMPTS; i++) {
79
- try {
80
- const { stdout } = await execFn("docker", ["inspect", "-f", "{{.State.Running}}", containerName]);
81
- if (stdout === "true") {
82
- return;
83
- }
84
- }
85
- catch {
86
- logger.debug({ containerName, attempt: i }, "Container not yet running");
87
- }
88
- await sleep(CONTAINER_POLL_DELAY_MS);
89
- }
90
- throw new Error(`Container ${containerName} did not reach Running state after ${CONTAINER_POLL_MAX_ATTEMPTS} attempts`);
91
- }
92
- /** Clone or pull a git repo inside a container's workspace. */
93
- async function ensureRepoInContainer(execFn, containerName, repo) {
94
- // Check if already cloned
95
- try {
96
- const { stdout } = await execFn("docker", [
97
- "exec", containerName, "bash", "-c", `ls ${WORKSPACE_PATH}/.git 2>/dev/null && echo exists`,
98
- ]);
99
- if (stdout.includes("exists")) {
100
- await execFn("docker", [
101
- "exec", "-w", WORKSPACE_PATH, containerName, "git", "pull", "--ff-only",
102
- ], { timeout: GIT_PULL_TIMEOUT_MS }).catch((err) => {
103
- logger.warn({ containerName, err }, "Git pull failed (may be detached HEAD)");
104
- });
105
- return;
106
- }
107
- }
108
- catch {
109
- // Not cloned — proceed to clone below
110
- }
111
- const ghToken = await getGitHubToken(execFn);
112
- const cloneUrl = repo.startsWith("https://") ? repo : `https://github.com/${repo}.git`;
113
- if (ghToken) {
114
- await execFn("docker", [
115
- "exec", containerName, "git", "config", "--global",
116
- "credential.helper", `!f() { echo "username=x-access-token"; echo "password=${ghToken}"; }; f`,
117
- ]);
118
- await execFn("docker", [
119
- "exec", containerName, "git", "clone", cloneUrl, WORKSPACE_PATH,
120
- ], { timeout: GIT_CLONE_TIMEOUT_MS });
121
- await execFn("docker", [
122
- "exec", containerName, "git", "config", "--global", "--unset", "credential.helper",
123
- ]).catch((err) => {
124
- logger.warn({ err }, "Failed to unset credential helper");
125
- });
126
- }
127
- else {
128
- await execFn("docker", [
129
- "exec", containerName, "git", "clone", cloneUrl, WORKSPACE_PATH,
130
- ], { timeout: GIT_CLONE_TIMEOUT_MS });
131
- }
132
- }
133
- /** Validate that a token contains only safe characters (alphanumeric, underscore, hyphen). */
134
- const SAFE_TOKEN_PATTERN = /^[a-zA-Z0-9_\-]+$/;
135
- /** Get a GitHub token from the local `gh` CLI for private repo cloning. */
136
- async function getGitHubToken(execFn) {
137
- try {
138
- const { stdout } = await execFn("gh", ["auth", "token"]);
139
- if (!stdout) {
140
- return undefined;
141
- }
142
- if (!SAFE_TOKEN_PATTERN.test(stdout)) {
143
- logger.warn("GitHub token contains unexpected characters, skipping credential setup");
144
- return undefined;
145
- }
146
- return stdout;
147
- }
148
- catch {
149
- return undefined;
150
- }
151
- }
152
- /**
153
- * Build the base Docker image from the docker/Dockerfile.powerline.
154
- * Resolves the monorepo root from import.meta.dirname (dist/adapters → 4 levels up).
155
- */
156
- async function buildBaseImage(execFn, tag) {
157
- const monorepoRoot = resolve(import.meta.dirname, "../../../../");
158
- logger.info({ tag, monorepoRoot }, "Building base PowerLine image");
159
- await execFn("docker", [
160
- "build",
161
- "-f", resolve(monorepoRoot, "docker/Dockerfile.powerline"),
162
- "-t", tag,
163
- monorepoRoot,
164
- ], { timeout: DOCKER_BUILD_TIMEOUT_MS });
165
- }
166
- // ─── Docker Executor ───────────────────────────────────────
167
- /** Remote executor that runs commands inside a Docker container. */
168
- class DockerExecutor {
169
- containerName;
170
- execFn;
171
- /** Cached resolved $HOME path. */
172
- resolvedHome;
173
- constructor(containerName, execFactory) {
174
- this.containerName = containerName;
175
- const factory = execFactory ?? NODE_DOCKER_EXEC_FACTORY;
176
- this.execFn = factory.exec.bind(factory);
177
- }
178
- /** Execute a shell command inside the container and return stdout. */
179
- async exec(command, opts) {
180
- const { stdout } = await this.execFn("docker", [
181
- "exec", this.containerName, "bash", "-c", command,
182
- ], { timeout: opts?.timeout || DOCKER_EXEC_TIMEOUT_MS });
183
- return stdout;
184
- }
185
- /** Copy a local file or directory into the container. */
186
- async copyTo(localPath, remotePath) {
187
- // Resolve $HOME since docker cp doesn't expand shell variables
188
- let resolvedPath = remotePath;
189
- if (resolvedPath.includes("$HOME")) {
190
- if (!this.resolvedHome) {
191
- this.resolvedHome = (await this.exec("echo $HOME")).trim();
192
- }
193
- resolvedPath = resolvedPath.replace(/\$HOME/g, this.resolvedHome);
194
- }
195
- await this.execFn("docker", [
196
- "cp", localPath, `${this.containerName}:${resolvedPath}`,
197
- ], { timeout: DOCKER_EXEC_TIMEOUT_MS });
198
- // docker cp creates files owned by root; fix ownership so the container user can write
199
- await this.execFn("docker", [
200
- "exec", "-u", "root", this.containerName, "chown", "-R", "grackle:grackle", resolvedPath,
201
- ], { timeout: DOCKER_EXEC_TIMEOUT_MS });
202
- }
203
- }
204
- // ─── Docker Adapter ────────────────────────────────────────
205
- /** Environment adapter that provisions and manages Docker containers running the PowerLine. */
206
- export class DockerAdapter {
207
- type = "docker";
208
- execFn;
209
- execFactory;
210
- constructor(execFactory) {
211
- this.execFactory = execFactory ?? NODE_DOCKER_EXEC_FACTORY;
212
- this.execFn = this.execFactory.exec.bind(this.execFactory);
213
- }
214
- async *provision(environmentId, config, powerlineToken) {
215
- const cfg = config;
216
- const image = cfg.image || DEFAULT_IMAGE;
217
- const containerName = cfg.containerName || `grackle-${environmentId}`;
218
- const localPort = cfg.localPort || await findFreePort();
219
- // Build or pull the base image
220
- const isDefault = image === DEFAULT_IMAGE;
221
- const dockerfilePath = resolve(import.meta.dirname, "../../../../docker/Dockerfile.powerline");
222
- if (isDevMode() && isDefault && existsSync(dockerfilePath)) {
223
- yield { stage: "creating", message: "Building base image...", progress: 0.05 };
224
- await buildBaseImage(this.execFn, image);
225
- }
226
- else {
227
- yield { stage: "creating", message: `Pulling image ${image}...`, progress: 0.05 };
228
- await pullImage(this.execFn, image);
229
- }
230
- yield { stage: "creating", message: `Creating container ${containerName}...`, progress: 0.10 };
231
- const runArgs = this.buildRunArgs(containerName, localPort, image, cfg, powerlineToken);
232
- const isNew = await createOrStartContainer(this.execFn, containerName, runArgs);
233
- let actualPort = localPort;
234
- if (!isNew) {
235
- yield { stage: "starting", message: "Container exists, starting...", progress: 0.12 };
236
- actualPort = await discoverHostPort(this.execFn, containerName, DEFAULT_POWERLINE_PORT, localPort);
237
- }
238
- containerPorts.set(environmentId, actualPort);
239
- yield { stage: "starting", message: "Waiting for container...", progress: 0.15 };
240
- await waitForContainerRunning(this.execFn, containerName);
241
- // Bootstrap PowerLine inside the container (same flow as SSH/Codespace).
242
- // Docker containers need host=0.0.0.0 because port mapping can't reach 127.0.0.1.
243
- const executor = new DockerExecutor(containerName, this.execFactory);
244
- if (isNew) {
245
- yield* bootstrapPowerLine(executor, powerlineToken, {
246
- extraEnv: cfg.env,
247
- workingDirectory: WORKSPACE_PATH,
248
- host: "0.0.0.0",
249
- isGitHubProviderEnabled: () => getCredentialProviders().github !== "off",
250
- defaultRuntime: config.defaultRuntime || undefined,
251
- });
252
- }
253
- else {
254
- // Container already exists — just restart PowerLine with fresh token
255
- yield { stage: "reconnecting", message: "Restarting PowerLine...", progress: 0.60 };
256
- await startRemotePowerLine(executor, powerlineToken, {
257
- extraEnv: cfg.env,
258
- host: "0.0.0.0",
259
- probeFirst: true,
260
- });
261
- }
262
- if (cfg.repo) {
263
- yield { stage: "cloning", message: `Cloning ${cfg.repo}...`, progress: 0.80 };
264
- await ensureRepoInContainer(this.execFn, containerName, cfg.repo);
265
- yield { stage: "cloning", message: "Repo ready", progress: 0.85 };
266
- }
267
- yield { stage: "connecting", message: `Connecting on port ${actualPort}...`, progress: 0.90 };
268
- }
269
- async connect(environmentId, config, powerlineToken) {
270
- const cfg = config;
271
- const containerName = cfg.containerName || `grackle-${environmentId}`;
272
- const localPort = containerPorts.get(environmentId) || cfg.localPort || DEFAULT_POWERLINE_PORT;
273
- // When on a shared Docker network, connect directly to the sibling container
274
- // by name on the default PowerLine port. Otherwise, use the mapped host port.
275
- const connectUrl = DOCKER_NETWORK
276
- ? `http://${containerName}:${DEFAULT_POWERLINE_PORT}`
277
- : `http://127.0.0.1:${localPort}`;
278
- const client = createPowerLineClient(connectUrl, powerlineToken);
279
- let lastErr;
280
- for (let attempt = 0; attempt < CONNECT_MAX_RETRIES; attempt++) {
281
- try {
282
- await client.ping({});
283
- return { client, environmentId, port: localPort };
284
- }
285
- catch (err) {
286
- lastErr = err;
287
- await sleep(CONNECT_RETRY_DELAY_MS);
288
- }
289
- }
290
- throw new Error(`Could not reach PowerLine after ${CONNECT_MAX_RETRIES} attempts: ${lastErr instanceof Error ? lastErr.message : String(lastErr)}`);
291
- }
292
- async disconnect(environmentId) {
293
- containerPorts.delete(environmentId);
294
- }
295
- async stop(environmentId, config) {
296
- const cfg = config;
297
- const containerName = cfg.containerName || `grackle-${environmentId}`;
298
- try {
299
- await this.execFn("docker", ["stop", containerName]);
300
- }
301
- catch (err) {
302
- logger.debug({ environmentId, err }, "Container may already be stopped");
303
- }
304
- containerPorts.delete(environmentId);
305
- }
306
- async destroy(environmentId, config) {
307
- const cfg = config;
308
- const containerName = cfg.containerName || `grackle-${environmentId}`;
309
- try {
310
- await this.execFn("docker", ["rm", "-f", containerName]);
311
- }
312
- catch (err) {
313
- logger.debug({ environmentId, err }, "Container may not exist");
314
- }
315
- containerPorts.delete(environmentId);
316
- }
317
- async healthCheck(connection) {
318
- try {
319
- await connection.client.ping({});
320
- return true;
321
- }
322
- catch {
323
- return false;
324
- }
325
- }
326
- /** Build the `docker run` argument array from config and token. */
327
- buildRunArgs(containerName, localPort, image, cfg, powerlineToken) {
328
- const args = [
329
- "run", "-d",
330
- "--name", containerName,
331
- ];
332
- // When running inside a container (DooD), join the shared network so the
333
- // server can reach the sibling by container name. Otherwise, map the port
334
- // to the host for bare-metal setups.
335
- if (DOCKER_NETWORK) {
336
- args.push("--network", DOCKER_NETWORK);
337
- }
338
- else {
339
- args.push("-p", `127.0.0.1:${localPort}:${DEFAULT_POWERLINE_PORT}`);
340
- }
341
- if (cfg.volumes) {
342
- for (const vol of cfg.volumes) {
343
- args.push("-v", vol);
344
- }
345
- }
346
- if (cfg.env) {
347
- for (const [key, val] of Object.entries(cfg.env)) {
348
- args.push("-e", `${key}=${val}`);
349
- }
350
- }
351
- // Pass PowerLine token for gRPC authentication (connectivity, not a credential).
352
- // All provider credentials are delivered via pushTokens() at task start.
353
- if (powerlineToken) {
354
- args.push("-e", `GRACKLE_POWERLINE_TOKEN=${powerlineToken}`);
355
- }
356
- // Chromium needs >64MB shared memory for rendering
357
- args.push("--shm-size=1gb");
358
- // GPU passthrough for accelerated inference (e.g. TTS, ML models)
359
- if (cfg.gpus) {
360
- args.push("--gpus", cfg.gpus);
361
- }
362
- args.push(image);
363
- return args;
364
- }
365
- }
366
- //# sourceMappingURL=docker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/adapters/docker.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import type { EnvironmentAdapter, BaseEnvironmentConfig, PowerLineConnection, ProvisionEvent } from "@grackle-ai/adapter-sdk";
2
- /** Local-specific environment configuration. */
3
- export interface LocalEnvironmentConfig extends BaseEnvironmentConfig {
4
- }
5
- /** Environment adapter that connects to a locally-running PowerLine process. */
6
- export declare class LocalAdapter implements EnvironmentAdapter {
7
- type: string;
8
- provision(environmentId: string, config: Record<string, unknown>, powerlineToken: string): AsyncGenerator<ProvisionEvent>;
9
- connect(environmentId: string, config: Record<string, unknown>, powerlineToken: string): Promise<PowerLineConnection>;
10
- disconnect(): Promise<void>;
11
- stop(): Promise<void>;
12
- destroy(): Promise<void>;
13
- healthCheck(connection: PowerLineConnection): Promise<boolean>;
14
- }
15
- //# sourceMappingURL=local.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/adapters/local.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAO9H,gDAAgD;AAChD,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;CAEpE;AAED,gFAAgF;AAChF,qBAAa,YAAa,YAAW,kBAAkB;IAC9C,IAAI,EAAE,MAAM,CAAW;IAEhB,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC;IAyB1H,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAWrH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,WAAW,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAQ5E"}
@@ -1,57 +0,0 @@
1
- import { DEFAULT_POWERLINE_PORT } from "@grackle-ai/common";
2
- import { createPowerLineClient } from "@grackle-ai/adapter-sdk";
3
- import { sleep } from "../utils/sleep.js";
4
- const POWERLINE_RETRY_DELAY_MS = 1_000;
5
- const POWERLINE_MAX_RETRIES = 5;
6
- /** Environment adapter that connects to a locally-running PowerLine process. */
7
- export class LocalAdapter {
8
- type = "local";
9
- async *provision(environmentId, config, powerlineToken) {
10
- const cfg = config;
11
- const port = cfg.port || DEFAULT_POWERLINE_PORT;
12
- const host = cfg.host || "localhost";
13
- yield { stage: "connecting", message: `Connecting to PowerLine at ${host}:${port}...`, progress: 0.5 };
14
- const client = createPowerLineClient(`http://${host}:${port}`, powerlineToken);
15
- let lastErr;
16
- for (let attempt = 0; attempt < POWERLINE_MAX_RETRIES; attempt++) {
17
- try {
18
- await client.ping({});
19
- yield { stage: "ready", message: "Connected to local PowerLine", progress: 1 };
20
- return;
21
- }
22
- catch (err) {
23
- lastErr = err;
24
- yield { stage: "connecting", message: `Waiting for PowerLine (attempt ${attempt + 1}/${POWERLINE_MAX_RETRIES})...`, progress: 0.5 + attempt * 0.1 };
25
- await sleep(POWERLINE_RETRY_DELAY_MS);
26
- }
27
- }
28
- yield { stage: "error", message: `Could not reach PowerLine: ${lastErr instanceof Error ? lastErr.message : String(lastErr)}`, progress: 0 };
29
- }
30
- async connect(environmentId, config, powerlineToken) {
31
- const cfg = config;
32
- const port = cfg.port || DEFAULT_POWERLINE_PORT;
33
- const host = cfg.host || "localhost";
34
- const client = createPowerLineClient(`http://${host}:${port}`, powerlineToken);
35
- await client.ping({});
36
- return { client, environmentId, port };
37
- }
38
- async disconnect() {
39
- // Nothing to clean up for local connections
40
- }
41
- async stop() {
42
- // Local PowerLine lifecycle is managed externally
43
- }
44
- async destroy() {
45
- // Local PowerLine lifecycle is managed externally
46
- }
47
- async healthCheck(connection) {
48
- try {
49
- await connection.client.ping({});
50
- return true;
51
- }
52
- catch {
53
- return false;
54
- }
55
- }
56
- }
57
- //# sourceMappingURL=local.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/adapters/local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,wBAAwB,GAAW,KAAK,CAAC;AAC/C,MAAM,qBAAqB,GAAW,CAAC,CAAC;AAOxC,gFAAgF;AAChF,MAAM,OAAO,YAAY;IAChB,IAAI,GAAW,OAAO,CAAC;IAEvB,KAAK,CAAC,CAAC,SAAS,CAAC,aAAqB,EAAE,MAA+B,EAAE,cAAsB;QACpG,MAAM,GAAG,GAAG,MAA2C,CAAC;QACxD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,sBAAsB,CAAC;QAChD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;QAErC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,8BAA8B,IAAI,IAAI,IAAI,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAEvG,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;QAE/E,IAAI,OAAgB,CAAC;QACrB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,qBAAqB,EAAE,OAAO,EAAE,EAAE,CAAC;YACjE,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;gBAC/E,OAAO;YACT,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,GAAG,GAAG,CAAC;gBACd,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,kCAAkC,OAAO,GAAG,CAAC,IAAI,qBAAqB,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;gBACpJ,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,8BAA8B,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC/I,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,aAAqB,EAAE,MAA+B,EAAE,cAAsB;QACjG,MAAM,GAAG,GAAG,MAA2C,CAAC;QACxD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,sBAAsB,CAAC;QAChD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;QAErC,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;QAC/E,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,4CAA4C;IAC9C,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,kDAAkD;IACpD,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,kDAAkD;IACpD,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,UAA+B;QACtD,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF"}
@@ -1,45 +0,0 @@
1
- import type { EnvironmentAdapter, BaseEnvironmentConfig, PowerLineConnection, ProvisionEvent } from "@grackle-ai/adapter-sdk";
2
- /** SSH-specific environment configuration. */
3
- export interface SshEnvironmentConfig extends BaseEnvironmentConfig {
4
- /** Remote hostname or IP address (required). */
5
- host: string;
6
- /** SSH username (defaults to the current OS user). */
7
- user?: string;
8
- /** SSH port on the remote host (defaults to 22). */
9
- sshPort?: number;
10
- /** Path to an SSH private key file. */
11
- identityFile?: string;
12
- /** Extra SSH options passed as `-o Key=Value`. */
13
- sshOptions?: Record<string, string>;
14
- /** Override the local tunnel port (otherwise a free port is chosen). */
15
- localPort?: number;
16
- /** Additional environment variables forwarded to the remote PowerLine. */
17
- env?: Record<string, string>;
18
- }
19
- /** Environment adapter that provisions and manages remote environments via SSH. */
20
- export declare class SshAdapter implements EnvironmentAdapter {
21
- type: string;
22
- /** Provision the remote host: test connectivity, bootstrap PowerLine, open tunnel. */
23
- provision(environmentId: string, config: Record<string, unknown>, powerlineToken: string): AsyncGenerator<ProvisionEvent>;
24
- /**
25
- * Attempt fast reconnect: probe PowerLine, restart if needed, re-open tunnel.
26
- *
27
- * Any failure (SSH unreachable, PowerLine won't start, tunnel error) throws
28
- * and falls through to the caller, which should trigger a full provision.
29
- *
30
- * Minimizes SSH round trips — probe and conditional restart run in a single
31
- * SSH call via `startRemotePowerLine({ probeFirst: true })`.
32
- */
33
- reconnect(environmentId: string, config: Record<string, unknown>, powerlineToken: string): AsyncGenerator<ProvisionEvent>;
34
- /** Connect to the PowerLine through the SSH tunnel. */
35
- connect(environmentId: string, config: Record<string, unknown>, powerlineToken: string): Promise<PowerLineConnection>;
36
- /** Close the SSH tunnel without stopping the remote PowerLine. */
37
- disconnect(environmentId: string): Promise<void>;
38
- /** Stop the remote PowerLine process and close the tunnel. */
39
- stop(environmentId: string, config: Record<string, unknown>): Promise<void>;
40
- /** Stop the remote PowerLine, remove artifacts, and close the tunnel. */
41
- destroy(environmentId: string, config: Record<string, unknown>): Promise<void>;
42
- /** Check that the tunnel is alive and the PowerLine responds to a ping. */
43
- healthCheck(connection: PowerLineConnection): Promise<boolean>;
44
- }
45
- //# sourceMappingURL=ssh.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ssh.d.ts","sourceRoot":"","sources":["../../src/adapters/ssh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA+B9H,8CAA8C;AAC9C,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IACjE,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAsID,mFAAmF;AACnF,qBAAa,UAAW,YAAW,kBAAkB;IAC5C,IAAI,EAAE,MAAM,CAAS;IAE5B,sFAAsF;IACxE,SAAS,CACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,cAAc,CAAC;IAwCjC;;;;;;;;OAQG;IACW,SAAS,CACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,cAAc,CAAC;IAqCjC,uDAAuD;IAC1C,OAAO,CAClB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,CAAC;IAQ/B,kEAAkE;IACrD,UAAU,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,8DAA8D;IACjD,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxF,yEAAyE;IAC5D,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3F,2EAA2E;IAC9D,WAAW,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;CAG5E"}