@grackle-ai/server 0.53.1 → 0.53.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.
- package/dist/adapters/codespace.d.ts.map +1 -1
- package/dist/adapters/codespace.js +12 -25
- package/dist/adapters/codespace.js.map +1 -1
- package/dist/adapters/docker.d.ts +13 -0
- package/dist/adapters/docker.d.ts.map +1 -1
- package/dist/adapters/docker.js +47 -37
- package/dist/adapters/docker.js.map +1 -1
- package/dist/adapters/ssh.d.ts.map +1 -1
- package/dist/adapters/ssh.js +12 -25
- package/dist/adapters/ssh.js.map +1 -1
- package/dist/credential-providers.d.ts +22 -5
- package/dist/credential-providers.d.ts.map +1 -1
- package/dist/credential-providers.js +37 -19
- package/dist/credential-providers.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codespace.d.ts","sourceRoot":"","sources":["../../src/adapters/codespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"codespace.d.ts","sourceRoot":"","sources":["../../src/adapters/codespace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA+B9H,4DAA4D;AAC5D,MAAM,WAAW,0BAA2B,SAAQ,qBAAqB;IACvE,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AA+GD,+FAA+F;AAC/F,qBAAa,gBAAiB,YAAW,kBAAkB;IAClD,IAAI,EAAE,MAAM,CAAe;IAElC,4FAA4F;IAC9E,SAAS,CACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,cAAc,CAAC;IAsDjC;;;;;;;;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;IAwCjC,gEAAgE;IACnD,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,2EAA2E;IAC9D,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;;;OAGG;IACU,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"}
|
|
@@ -2,10 +2,10 @@ import { DEFAULT_POWERLINE_PORT, DEFAULT_MCP_PORT } from "@grackle-ai/common";
|
|
|
2
2
|
import { ProcessTunnel, bootstrapPowerLine, connectThroughTunnel, registerTunnel, getTunnel, closeTunnel, findFreePort, remoteStop, remoteDestroy, remoteHealthCheck, startRemotePowerLine, SSH_CONNECTIVITY_TIMEOUT_MS, REMOTE_EXEC_DEFAULT_TIMEOUT_MS, } from "@grackle-ai/adapter-sdk";
|
|
3
3
|
import { getCredentialProviders } from "../credential-providers.js";
|
|
4
4
|
import { exec } from "../utils/exec.js";
|
|
5
|
-
import { spawn } from "node:child_process";
|
|
6
5
|
import { sleep } from "../utils/sleep.js";
|
|
7
|
-
import { logger } from "../logger.js";
|
|
8
6
|
const REMOTE_COPY_TIMEOUT_MS = 120_000;
|
|
7
|
+
/** Delay for reverse tunnels to wait for SSH to establish. */
|
|
8
|
+
const REVERSE_TUNNEL_SETTLE_MS = 3_000;
|
|
9
9
|
// ─── Executor ───────────────────────────────────────────────
|
|
10
10
|
/** Execute commands inside a GitHub Codespace via the `gh` CLI. */
|
|
11
11
|
class CodespaceExecutor {
|
|
@@ -40,8 +40,8 @@ class CodespaceExecutor {
|
|
|
40
40
|
/** Port-forwarding tunnel using `gh codespace ports forward`. */
|
|
41
41
|
class CodespaceTunnel extends ProcessTunnel {
|
|
42
42
|
codespaceName;
|
|
43
|
-
constructor(localPort, codespaceName) {
|
|
44
|
-
super(localPort);
|
|
43
|
+
constructor(localPort, codespaceName, processFactory, portProbe) {
|
|
44
|
+
super(localPort, undefined, processFactory, portProbe);
|
|
45
45
|
this.codespaceName = codespaceName;
|
|
46
46
|
}
|
|
47
47
|
/** Return the gh command and arguments for the port-forward process. */
|
|
@@ -62,8 +62,8 @@ class CodespaceTunnel extends ProcessTunnel {
|
|
|
62
62
|
class CodespaceReverseTunnel extends ProcessTunnel {
|
|
63
63
|
codespaceName;
|
|
64
64
|
remotePort;
|
|
65
|
-
constructor(localPort, remotePort, codespaceName) {
|
|
66
|
-
super(localPort);
|
|
65
|
+
constructor(localPort, remotePort, codespaceName, processFactory, portProbe) {
|
|
66
|
+
super(localPort, undefined, processFactory, portProbe);
|
|
67
67
|
this.remotePort = remotePort;
|
|
68
68
|
this.codespaceName = codespaceName;
|
|
69
69
|
}
|
|
@@ -79,26 +79,13 @@ class CodespaceReverseTunnel extends ProcessTunnel {
|
|
|
79
79
|
return { command: "gh", args };
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
|
-
*
|
|
83
|
-
* We can't probe the remote port, so
|
|
82
|
+
* Reverse tunnels bind on the remote side, not locally.
|
|
83
|
+
* We can't probe the remote port, so wait a fixed delay for SSH to establish.
|
|
84
84
|
*/
|
|
85
|
-
async
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
stdio: ["ignore", "ignore", "pipe"],
|
|
90
|
-
detached: false,
|
|
91
|
-
});
|
|
92
|
-
this.process.on("error", (err) => {
|
|
93
|
-
logger.error({ err }, "Reverse tunnel process error");
|
|
94
|
-
});
|
|
95
|
-
this.process.stderr?.on("data", (data) => {
|
|
96
|
-
logger.debug({ stderr: data.toString() }, "Reverse tunnel stderr");
|
|
97
|
-
});
|
|
98
|
-
// Give SSH time to establish the connection and bind the remote port
|
|
99
|
-
await sleep(3000);
|
|
100
|
-
if (this.process.exitCode !== null) {
|
|
101
|
-
throw new Error(`Reverse tunnel exited immediately with code ${this.process.exitCode}`);
|
|
85
|
+
async waitForReady() {
|
|
86
|
+
await sleep(REVERSE_TUNNEL_SETTLE_MS);
|
|
87
|
+
if (this.process?.exitCode !== null) {
|
|
88
|
+
throw new Error(`Reverse tunnel exited immediately with code ${this.process?.exitCode}`);
|
|
102
89
|
}
|
|
103
90
|
}
|
|
104
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codespace.js","sourceRoot":"","sources":["../../src/adapters/codespace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"codespace.js","sourceRoot":"","sources":["../../src/adapters/codespace.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,9 +11,22 @@ export interface DockerEnvironmentConfig extends BaseEnvironmentConfig {
|
|
|
11
11
|
/** Enable GPU passthrough (e.g. "all" for --gpus all). */
|
|
12
12
|
gpus?: string;
|
|
13
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
|
+
}
|
|
14
24
|
/** Environment adapter that provisions and manages Docker containers running the PowerLine. */
|
|
15
25
|
export declare class DockerAdapter implements EnvironmentAdapter {
|
|
16
26
|
type: string;
|
|
27
|
+
private readonly execFn;
|
|
28
|
+
private readonly execFactory;
|
|
29
|
+
constructor(execFactory?: DockerExecFactory);
|
|
17
30
|
provision(environmentId: string, config: Record<string, unknown>, powerlineToken: string): AsyncGenerator<ProvisionEvent>;
|
|
18
31
|
connect(environmentId: string, config: Record<string, unknown>, powerlineToken: string): Promise<PowerLineConnection>;
|
|
19
32
|
disconnect(environmentId: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;IA8D1H,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"}
|
package/dist/adapters/docker.js
CHANGED
|
@@ -28,37 +28,37 @@ const DOCKER_EXEC_TIMEOUT_MS = 60_000;
|
|
|
28
28
|
* where the server itself runs in a container.
|
|
29
29
|
*/
|
|
30
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 };
|
|
31
33
|
const containerPorts = new Map();
|
|
32
34
|
// ─── Docker CLI Helpers ────────────────────────────────────
|
|
33
35
|
/** Pull a Docker image, suppressing errors if the image exists locally. */
|
|
34
|
-
async function pullImage(image) {
|
|
36
|
+
async function pullImage(execFn, image) {
|
|
35
37
|
try {
|
|
36
|
-
await
|
|
37
|
-
return true;
|
|
38
|
+
await execFn("docker", ["pull", image], { timeout: DOCKER_PULL_TIMEOUT_MS });
|
|
38
39
|
}
|
|
39
40
|
catch {
|
|
40
41
|
logger.debug({ image }, "Docker pull failed, trying local image");
|
|
41
|
-
return false;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
/** Start a new Docker container with the given arguments. Returns true if created; false if it already existed. */
|
|
45
|
-
async function createOrStartContainer(containerName, runArgs) {
|
|
45
|
+
async function createOrStartContainer(execFn, containerName, runArgs) {
|
|
46
46
|
try {
|
|
47
|
-
await
|
|
47
|
+
await execFn("docker", ["inspect", containerName]);
|
|
48
48
|
// Container exists — just start it
|
|
49
|
-
await
|
|
49
|
+
await execFn("docker", ["start", containerName]);
|
|
50
50
|
return false;
|
|
51
51
|
}
|
|
52
52
|
catch {
|
|
53
53
|
// Container doesn't exist — create it
|
|
54
|
-
await
|
|
54
|
+
await execFn("docker", runArgs);
|
|
55
55
|
return true;
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
/** Discover the host-mapped port of an existing container. */
|
|
59
|
-
async function discoverHostPort(containerName, containerPort, fallback) {
|
|
59
|
+
async function discoverHostPort(execFn, containerName, containerPort, fallback) {
|
|
60
60
|
try {
|
|
61
|
-
const { stdout } = await
|
|
61
|
+
const { stdout } = await execFn("docker", [
|
|
62
62
|
"inspect", "-f",
|
|
63
63
|
`{{(index (index .NetworkSettings.Ports "${containerPort}/tcp") 0).HostPort}}`,
|
|
64
64
|
containerName,
|
|
@@ -74,10 +74,10 @@ async function discoverHostPort(containerName, containerPort, fallback) {
|
|
|
74
74
|
return fallback;
|
|
75
75
|
}
|
|
76
76
|
/** Poll until a Docker container reaches the Running state. */
|
|
77
|
-
async function waitForContainerRunning(containerName) {
|
|
77
|
+
async function waitForContainerRunning(execFn, containerName) {
|
|
78
78
|
for (let i = 0; i < CONTAINER_POLL_MAX_ATTEMPTS; i++) {
|
|
79
79
|
try {
|
|
80
|
-
const { stdout } = await
|
|
80
|
+
const { stdout } = await execFn("docker", ["inspect", "-f", "{{.State.Running}}", containerName]);
|
|
81
81
|
if (stdout === "true") {
|
|
82
82
|
return;
|
|
83
83
|
}
|
|
@@ -87,16 +87,17 @@ async function waitForContainerRunning(containerName) {
|
|
|
87
87
|
}
|
|
88
88
|
await sleep(CONTAINER_POLL_DELAY_MS);
|
|
89
89
|
}
|
|
90
|
+
throw new Error(`Container ${containerName} did not reach Running state after ${CONTAINER_POLL_MAX_ATTEMPTS} attempts`);
|
|
90
91
|
}
|
|
91
92
|
/** Clone or pull a git repo inside a container's workspace. */
|
|
92
|
-
async function ensureRepoInContainer(containerName, repo) {
|
|
93
|
+
async function ensureRepoInContainer(execFn, containerName, repo) {
|
|
93
94
|
// Check if already cloned
|
|
94
95
|
try {
|
|
95
|
-
const { stdout } = await
|
|
96
|
+
const { stdout } = await execFn("docker", [
|
|
96
97
|
"exec", containerName, "bash", "-c", `ls ${WORKSPACE_PATH}/.git 2>/dev/null && echo exists`,
|
|
97
98
|
]);
|
|
98
99
|
if (stdout.includes("exists")) {
|
|
99
|
-
await
|
|
100
|
+
await execFn("docker", [
|
|
100
101
|
"exec", "-w", WORKSPACE_PATH, containerName, "git", "pull", "--ff-only",
|
|
101
102
|
], { timeout: GIT_PULL_TIMEOUT_MS }).catch((err) => {
|
|
102
103
|
logger.warn({ containerName, err }, "Git pull failed (may be detached HEAD)");
|
|
@@ -107,24 +108,24 @@ async function ensureRepoInContainer(containerName, repo) {
|
|
|
107
108
|
catch {
|
|
108
109
|
// Not cloned — proceed to clone below
|
|
109
110
|
}
|
|
110
|
-
const ghToken = await getGitHubToken();
|
|
111
|
+
const ghToken = await getGitHubToken(execFn);
|
|
111
112
|
const cloneUrl = repo.startsWith("https://") ? repo : `https://github.com/${repo}.git`;
|
|
112
113
|
if (ghToken) {
|
|
113
|
-
await
|
|
114
|
+
await execFn("docker", [
|
|
114
115
|
"exec", containerName, "git", "config", "--global",
|
|
115
116
|
"credential.helper", `!f() { echo "username=x-access-token"; echo "password=${ghToken}"; }; f`,
|
|
116
117
|
]);
|
|
117
|
-
await
|
|
118
|
+
await execFn("docker", [
|
|
118
119
|
"exec", containerName, "git", "clone", cloneUrl, WORKSPACE_PATH,
|
|
119
120
|
], { timeout: GIT_CLONE_TIMEOUT_MS });
|
|
120
|
-
await
|
|
121
|
+
await execFn("docker", [
|
|
121
122
|
"exec", containerName, "git", "config", "--global", "--unset", "credential.helper",
|
|
122
123
|
]).catch((err) => {
|
|
123
124
|
logger.warn({ err }, "Failed to unset credential helper");
|
|
124
125
|
});
|
|
125
126
|
}
|
|
126
127
|
else {
|
|
127
|
-
await
|
|
128
|
+
await execFn("docker", [
|
|
128
129
|
"exec", containerName, "git", "clone", cloneUrl, WORKSPACE_PATH,
|
|
129
130
|
], { timeout: GIT_CLONE_TIMEOUT_MS });
|
|
130
131
|
}
|
|
@@ -132,9 +133,9 @@ async function ensureRepoInContainer(containerName, repo) {
|
|
|
132
133
|
/** Validate that a token contains only safe characters (alphanumeric, underscore, hyphen). */
|
|
133
134
|
const SAFE_TOKEN_PATTERN = /^[a-zA-Z0-9_\-]+$/;
|
|
134
135
|
/** Get a GitHub token from the local `gh` CLI for private repo cloning. */
|
|
135
|
-
async function getGitHubToken() {
|
|
136
|
+
async function getGitHubToken(execFn) {
|
|
136
137
|
try {
|
|
137
|
-
const { stdout } = await
|
|
138
|
+
const { stdout } = await execFn("gh", ["auth", "token"]);
|
|
138
139
|
if (!stdout) {
|
|
139
140
|
return undefined;
|
|
140
141
|
}
|
|
@@ -152,10 +153,10 @@ async function getGitHubToken() {
|
|
|
152
153
|
* Build the base Docker image from the docker/Dockerfile.powerline.
|
|
153
154
|
* Resolves the monorepo root from import.meta.dirname (dist/adapters → 4 levels up).
|
|
154
155
|
*/
|
|
155
|
-
async function buildBaseImage(tag) {
|
|
156
|
+
async function buildBaseImage(execFn, tag) {
|
|
156
157
|
const monorepoRoot = resolve(import.meta.dirname, "../../../../");
|
|
157
158
|
logger.info({ tag, monorepoRoot }, "Building base PowerLine image");
|
|
158
|
-
await
|
|
159
|
+
await execFn("docker", [
|
|
159
160
|
"build",
|
|
160
161
|
"-f", resolve(monorepoRoot, "docker/Dockerfile.powerline"),
|
|
161
162
|
"-t", tag,
|
|
@@ -166,14 +167,17 @@ async function buildBaseImage(tag) {
|
|
|
166
167
|
/** Remote executor that runs commands inside a Docker container. */
|
|
167
168
|
class DockerExecutor {
|
|
168
169
|
containerName;
|
|
170
|
+
execFn;
|
|
169
171
|
/** Cached resolved $HOME path. */
|
|
170
172
|
resolvedHome;
|
|
171
|
-
constructor(containerName) {
|
|
173
|
+
constructor(containerName, execFactory) {
|
|
172
174
|
this.containerName = containerName;
|
|
175
|
+
const factory = execFactory ?? NODE_DOCKER_EXEC_FACTORY;
|
|
176
|
+
this.execFn = factory.exec.bind(factory);
|
|
173
177
|
}
|
|
174
178
|
/** Execute a shell command inside the container and return stdout. */
|
|
175
179
|
async exec(command, opts) {
|
|
176
|
-
const { stdout } = await
|
|
180
|
+
const { stdout } = await this.execFn("docker", [
|
|
177
181
|
"exec", this.containerName, "bash", "-c", command,
|
|
178
182
|
], { timeout: opts?.timeout || DOCKER_EXEC_TIMEOUT_MS });
|
|
179
183
|
return stdout;
|
|
@@ -188,11 +192,11 @@ class DockerExecutor {
|
|
|
188
192
|
}
|
|
189
193
|
resolvedPath = resolvedPath.replace(/\$HOME/g, this.resolvedHome);
|
|
190
194
|
}
|
|
191
|
-
await
|
|
195
|
+
await this.execFn("docker", [
|
|
192
196
|
"cp", localPath, `${this.containerName}:${resolvedPath}`,
|
|
193
197
|
], { timeout: DOCKER_EXEC_TIMEOUT_MS });
|
|
194
198
|
// docker cp creates files owned by root; fix ownership so the container user can write
|
|
195
|
-
await
|
|
199
|
+
await this.execFn("docker", [
|
|
196
200
|
"exec", "-u", "root", this.containerName, "chown", "-R", "grackle:grackle", resolvedPath,
|
|
197
201
|
], { timeout: DOCKER_EXEC_TIMEOUT_MS });
|
|
198
202
|
}
|
|
@@ -201,6 +205,12 @@ class DockerExecutor {
|
|
|
201
205
|
/** Environment adapter that provisions and manages Docker containers running the PowerLine. */
|
|
202
206
|
export class DockerAdapter {
|
|
203
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
|
+
}
|
|
204
214
|
async *provision(environmentId, config, powerlineToken) {
|
|
205
215
|
const cfg = config;
|
|
206
216
|
const image = cfg.image || DEFAULT_IMAGE;
|
|
@@ -211,26 +221,26 @@ export class DockerAdapter {
|
|
|
211
221
|
const dockerfilePath = resolve(import.meta.dirname, "../../../../docker/Dockerfile.powerline");
|
|
212
222
|
if (isDevMode() && isDefault && existsSync(dockerfilePath)) {
|
|
213
223
|
yield { stage: "creating", message: "Building base image...", progress: 0.05 };
|
|
214
|
-
await buildBaseImage(image);
|
|
224
|
+
await buildBaseImage(this.execFn, image);
|
|
215
225
|
}
|
|
216
226
|
else {
|
|
217
227
|
yield { stage: "creating", message: `Pulling image ${image}...`, progress: 0.05 };
|
|
218
|
-
await pullImage(image);
|
|
228
|
+
await pullImage(this.execFn, image);
|
|
219
229
|
}
|
|
220
230
|
yield { stage: "creating", message: `Creating container ${containerName}...`, progress: 0.10 };
|
|
221
231
|
const runArgs = this.buildRunArgs(containerName, localPort, image, cfg, powerlineToken);
|
|
222
|
-
const isNew = await createOrStartContainer(containerName, runArgs);
|
|
232
|
+
const isNew = await createOrStartContainer(this.execFn, containerName, runArgs);
|
|
223
233
|
let actualPort = localPort;
|
|
224
234
|
if (!isNew) {
|
|
225
235
|
yield { stage: "starting", message: "Container exists, starting...", progress: 0.12 };
|
|
226
|
-
actualPort = await discoverHostPort(containerName, DEFAULT_POWERLINE_PORT, localPort);
|
|
236
|
+
actualPort = await discoverHostPort(this.execFn, containerName, DEFAULT_POWERLINE_PORT, localPort);
|
|
227
237
|
}
|
|
228
238
|
containerPorts.set(environmentId, actualPort);
|
|
229
239
|
yield { stage: "starting", message: "Waiting for container...", progress: 0.15 };
|
|
230
|
-
await waitForContainerRunning(containerName);
|
|
240
|
+
await waitForContainerRunning(this.execFn, containerName);
|
|
231
241
|
// Bootstrap PowerLine inside the container (same flow as SSH/Codespace).
|
|
232
242
|
// Docker containers need host=0.0.0.0 because port mapping can't reach 127.0.0.1.
|
|
233
|
-
const executor = new DockerExecutor(containerName);
|
|
243
|
+
const executor = new DockerExecutor(containerName, this.execFactory);
|
|
234
244
|
if (isNew) {
|
|
235
245
|
yield* bootstrapPowerLine(executor, powerlineToken, {
|
|
236
246
|
extraEnv: cfg.env,
|
|
@@ -250,7 +260,7 @@ export class DockerAdapter {
|
|
|
250
260
|
}
|
|
251
261
|
if (cfg.repo) {
|
|
252
262
|
yield { stage: "cloning", message: `Cloning ${cfg.repo}...`, progress: 0.80 };
|
|
253
|
-
await ensureRepoInContainer(containerName, cfg.repo);
|
|
263
|
+
await ensureRepoInContainer(this.execFn, containerName, cfg.repo);
|
|
254
264
|
yield { stage: "cloning", message: "Repo ready", progress: 0.85 };
|
|
255
265
|
}
|
|
256
266
|
yield { stage: "connecting", message: `Connecting on port ${actualPort}...`, progress: 0.90 };
|
|
@@ -285,7 +295,7 @@ export class DockerAdapter {
|
|
|
285
295
|
const cfg = config;
|
|
286
296
|
const containerName = cfg.containerName || `grackle-${environmentId}`;
|
|
287
297
|
try {
|
|
288
|
-
await
|
|
298
|
+
await this.execFn("docker", ["stop", containerName]);
|
|
289
299
|
}
|
|
290
300
|
catch (err) {
|
|
291
301
|
logger.debug({ environmentId, err }, "Container may already be stopped");
|
|
@@ -296,7 +306,7 @@ export class DockerAdapter {
|
|
|
296
306
|
const cfg = config;
|
|
297
307
|
const containerName = cfg.containerName || `grackle-${environmentId}`;
|
|
298
308
|
try {
|
|
299
|
-
await
|
|
309
|
+
await this.execFn("docker", ["rm", "-f", containerName]);
|
|
300
310
|
}
|
|
301
311
|
catch (err) {
|
|
302
312
|
logger.debug({ environmentId, err }, "Container may not exist");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/adapters/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EACL,qBAAqB,EACrB,SAAS,EACT,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,sBAAsB,GAAW,OAAO,CAAC;AAC/C,+DAA+D;AAC/D,MAAM,uBAAuB,GAAW,OAAO,CAAC;AAChD,MAAM,oBAAoB,GAAW,OAAO,CAAC;AAC7C,MAAM,mBAAmB,GAAW,MAAM,CAAC;AAC3C,MAAM,uBAAuB,GAAW,KAAK,CAAC;AAC9C,MAAM,2BAA2B,GAAW,EAAE,CAAC;AAC/C,MAAM,sBAAsB,GAAW,KAAK,CAAC;AAC7C,MAAM,mBAAmB,GAAW,EAAE,CAAC;AACvC,MAAM,cAAc,GAAW,YAAY,CAAC;AAC5C,iEAAiE;AACjE,MAAM,aAAa,GAAW,0BAA0B,CAAC;AACzD,0DAA0D;AAC1D,MAAM,sBAAsB,GAAW,MAAM,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,cAAc,GAAuB,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,SAAS,CAAC;AAe3F,MAAM,cAAc,GAAwB,IAAI,GAAG,EAAkB,CAAC;AAEtE,8DAA8D;AAE9D,2EAA2E;AAC3E,KAAK,UAAU,SAAS,CAAC,KAAa;IACpC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,wCAAwC,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,mHAAmH;AACnH,KAAK,UAAU,sBAAsB,CAAC,aAAqB,EAAE,OAAiB;IAC5E,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;QACjD,mCAAmC;QACnC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;QACtC,MAAM,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,KAAK,UAAU,gBAAgB,CAAC,aAAqB,EAAE,aAAqB,EAAE,QAAgB;IAC5F,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;YACtC,SAAS,EAAE,IAAI;YACf,2CAA2C,aAAa,sBAAsB;YAC9E,aAAa;SACd,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,EAAE,8CAA8C,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,+DAA+D;AAC/D,KAAK,UAAU,uBAAuB,CAAC,aAAqB;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,2BAA2B,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC;YAChG,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,KAAK,UAAU,qBAAqB,CAAC,aAAqB,EAAE,IAAY;IACtE,0BAA0B;IAC1B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;YACtC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,kCAAkC;SAC5F,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,QAAQ,EAAE;gBACnB,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW;aACxE,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACjD,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,wCAAwC,CAAC,CAAC;YAChF,CAAC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;IACxC,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,sBAAsB,IAAI,MAAM,CAAC;IAEvF,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU;YAClD,mBAAmB,EAAE,yDAAyD,OAAO,SAAS;SAC/F,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc;SAChE,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB;SACnF,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,mCAAmC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc;SAChE,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,kBAAkB,GAAW,mBAAmB,CAAC;AAEvD,2EAA2E;AAC3E,KAAK,UAAU,cAAc;IAC3B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;YACtF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAC,GAAW;IACvC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAClE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,+BAA+B,CAAC,CAAC;IACpE,MAAM,IAAI,CAAC,QAAQ,EAAE;QACnB,OAAO;QACP,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,6BAA6B,CAAC;QAC1D,IAAI,EAAE,GAAG;QACT,YAAY;KACb,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,8DAA8D;AAE9D,oEAAoE;AACpE,MAAM,cAAc;IACV,aAAa,CAAS;IAC9B,kCAAkC;IAC1B,YAAY,CAAU;IAE9B,YAAmB,aAAqB;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,sEAAsE;IAC/D,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,IAA2B;QAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;YACtC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;SAClD,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,sBAAsB,EAAE,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,yDAAyD;IAClD,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,UAAkB;QACvD,+DAA+D;QAC/D,IAAI,YAAY,GAAG,UAAU,CAAC;QAC9B,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7D,CAAC;YACD,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,EAAE;YACnB,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,IAAI,YAAY,EAAE;SACzD,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;QACxC,uFAAuF;QACvF,MAAM,IAAI,CAAC,QAAQ,EAAE;YACnB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY;SACzF,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF;AAED,8DAA8D;AAE9D,+FAA+F;AAC/F,MAAM,OAAO,aAAa;IACjB,IAAI,GAAW,QAAQ,CAAC;IAExB,KAAK,CAAC,CAAC,SAAS,CAAC,aAAqB,EAAE,MAA+B,EAAE,cAAsB;QACpG,MAAM,GAAG,GAAG,MAA4C,CAAC;QACzD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,aAAa,CAAC;QACzC,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,IAAI,WAAW,aAAa,EAAE,CAAC;QACtE,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,MAAM,YAAY,EAAE,CAAC;QAExD,+BAA+B;QAC/B,MAAM,SAAS,GAAG,KAAK,KAAK,aAAa,CAAC;QAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,yCAAyC,CAAC,CAAC;QAC/F,IAAI,SAAS,EAAE,IAAI,SAAS,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3D,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC/E,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,KAAK,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAClF,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,sBAAsB,aAAa,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE/F,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;QAExF,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACnE,IAAI,UAAU,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,+BAA+B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACtF,UAAU,GAAG,MAAM,gBAAgB,CAAC,aAAa,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;QACxF,CAAC;QAED,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAE9C,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACjF,MAAM,uBAAuB,CAAC,aAAa,CAAC,CAAC;QAE7C,yEAAyE;QACzE,kFAAkF;QAClF,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE;gBAClD,QAAQ,EAAE,GAAG,CAAC,GAAG;gBACjB,gBAAgB,EAAE,cAAc;gBAChC,IAAI,EAAE,SAAS;gBACf,uBAAuB,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,MAAM,KAAK,KAAK;aACzE,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,qEAAqE;YACrE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YACpF,MAAM,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE;gBACnD,QAAQ,EAAE,GAAG,CAAC,GAAG;gBACjB,IAAI,EAAE,SAAS;gBACf,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,CAAC,IAAI,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC9E,MAAM,qBAAqB,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACpE,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,sBAAsB,UAAU,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChG,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,aAAqB,EAAE,MAA+B,EAAE,cAAsB;QACjG,MAAM,GAAG,GAAG,MAA4C,CAAC;QACzD,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,IAAI,WAAW,aAAa,EAAE,CAAC;QACtE,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,SAAS,IAAI,sBAAsB,CAAC;QAE/F,6EAA6E;QAC7E,8EAA8E;QAC9E,MAAM,UAAU,GAAG,cAAc;YAC/B,CAAC,CAAC,UAAU,aAAa,IAAI,sBAAsB,EAAE;YACrD,CAAC,CAAC,oBAAoB,SAAS,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,qBAAqB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAEjE,IAAI,OAAgB,CAAC;QACrB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,mBAAmB,EAAE,OAAO,EAAE,EAAE,CAAC;YAC/D,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACtB,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,GAAG,GAAG,CAAC;gBACd,MAAM,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,mBAAmB,cAAc,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtJ,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,aAAqB;QAC3C,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,aAAqB,EAAE,MAA+B;QACtE,MAAM,GAAG,GAAG,MAA4C,CAAC;QACzD,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,IAAI,WAAW,aAAa,EAAE,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,kCAAkC,CAAC,CAAC;QAC3E,CAAC;QACD,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,aAAqB,EAAE,MAA+B;QACzE,MAAM,GAAG,GAAG,MAA4C,CAAC;QACzD,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,IAAI,WAAW,aAAa,EAAE,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;QAClE,CAAC;QACD,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACvC,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;IAED,mEAAmE;IAC5D,YAAY,CACjB,aAAqB,EACrB,SAAiB,EACjB,KAAa,EACb,GAA4B,EAC5B,cAAsB;QAEtB,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,aAAa;SACxB,CAAC;QAEF,yEAAyE;QACzE,0EAA0E;QAC1E,qCAAqC;QACrC,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,SAAS,IAAI,sBAAsB,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,iFAAiF;QACjF,yEAAyE;QACzE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,2BAA2B,cAAc,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,mDAAmD;QACnD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAE5B,kEAAkE;QAClE,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/adapters/docker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;IAuCjC;;;;;;;;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"}
|
package/dist/adapters/ssh.js
CHANGED
|
@@ -2,10 +2,10 @@ import { DEFAULT_POWERLINE_PORT, DEFAULT_MCP_PORT } from "@grackle-ai/common";
|
|
|
2
2
|
import { ProcessTunnel, bootstrapPowerLine, connectThroughTunnel, registerTunnel, getTunnel, closeTunnel, findFreePort, remoteStop, remoteDestroy, remoteHealthCheck, startRemotePowerLine, SSH_CONNECTIVITY_TIMEOUT_MS, REMOTE_EXEC_DEFAULT_TIMEOUT_MS, } from "@grackle-ai/adapter-sdk";
|
|
3
3
|
import { getCredentialProviders } from "../credential-providers.js";
|
|
4
4
|
import { exec } from "../utils/exec.js";
|
|
5
|
-
import { spawn } from "node:child_process";
|
|
6
5
|
import { sleep } from "../utils/sleep.js";
|
|
7
|
-
import { logger } from "../logger.js";
|
|
8
6
|
const REMOTE_COPY_TIMEOUT_MS = 120_000;
|
|
7
|
+
/** Delay for reverse tunnels to wait for SSH to establish. */
|
|
8
|
+
const REVERSE_TUNNEL_SETTLE_MS = 3_000;
|
|
9
9
|
// ─── SSH Helpers ────────────────────────────────────────────
|
|
10
10
|
/** Build the common SSH flags shared across exec, scp, and tunnel commands. */
|
|
11
11
|
function buildSshFlags(cfg) {
|
|
@@ -53,8 +53,8 @@ class SshExecutor {
|
|
|
53
53
|
/** SSH tunnel that forwards a local port to the remote PowerLine port. */
|
|
54
54
|
class SshTunnel extends ProcessTunnel {
|
|
55
55
|
cfg;
|
|
56
|
-
constructor(localPort, cfg) {
|
|
57
|
-
super(localPort);
|
|
56
|
+
constructor(localPort, cfg, processFactory, portProbe) {
|
|
57
|
+
super(localPort, undefined, processFactory, portProbe);
|
|
58
58
|
this.cfg = cfg;
|
|
59
59
|
}
|
|
60
60
|
/** Return the ssh command and arguments for the tunnel process. */
|
|
@@ -79,8 +79,8 @@ class SshTunnel extends ProcessTunnel {
|
|
|
79
79
|
class SshReverseTunnel extends ProcessTunnel {
|
|
80
80
|
cfg;
|
|
81
81
|
remotePort;
|
|
82
|
-
constructor(localPort, remotePort, cfg) {
|
|
83
|
-
super(localPort);
|
|
82
|
+
constructor(localPort, remotePort, cfg, processFactory, portProbe) {
|
|
83
|
+
super(localPort, undefined, processFactory, portProbe);
|
|
84
84
|
this.cfg = cfg;
|
|
85
85
|
this.remotePort = remotePort;
|
|
86
86
|
}
|
|
@@ -99,26 +99,13 @@ class SshReverseTunnel extends ProcessTunnel {
|
|
|
99
99
|
return { command: "ssh", args };
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
102
|
-
*
|
|
103
|
-
* We can't probe the remote port, so
|
|
102
|
+
* Reverse tunnels bind on the remote side, not locally.
|
|
103
|
+
* We can't probe the remote port, so wait a fixed delay for SSH to establish.
|
|
104
104
|
*/
|
|
105
|
-
async
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
stdio: ["ignore", "ignore", "pipe"],
|
|
110
|
-
detached: false,
|
|
111
|
-
});
|
|
112
|
-
this.process.on("error", (err) => {
|
|
113
|
-
logger.error({ err }, "Reverse tunnel process error");
|
|
114
|
-
});
|
|
115
|
-
this.process.stderr?.on("data", (data) => {
|
|
116
|
-
logger.debug({ stderr: data.toString() }, "Reverse tunnel stderr");
|
|
117
|
-
});
|
|
118
|
-
// Give SSH time to establish the connection and bind the remote port
|
|
119
|
-
await sleep(3000);
|
|
120
|
-
if (this.process.exitCode !== null) {
|
|
121
|
-
throw new Error(`Reverse tunnel exited immediately with code ${this.process.exitCode}`);
|
|
105
|
+
async waitForReady() {
|
|
106
|
+
await sleep(REVERSE_TUNNEL_SETTLE_MS);
|
|
107
|
+
if (this.process?.exitCode !== null) {
|
|
108
|
+
throw new Error(`Reverse tunnel exited immediately with code ${this.process?.exitCode}`);
|
|
122
109
|
}
|
|
123
110
|
}
|
|
124
111
|
}
|
package/dist/adapters/ssh.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../src/adapters/ssh.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"ssh.js","sourceRoot":"","sources":["../../src/adapters/ssh.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAIL,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,WAAW,EACX,YAAY,EACZ,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,sBAAsB,GAAW,OAAO,CAAC;AAE/C,8DAA8D;AAC9D,MAAM,wBAAwB,GAAW,KAAK,CAAC;AAsB/C,+DAA+D;AAE/D,+EAA+E;AAC/E,SAAS,aAAa,CAAC,GAAyB;IAC9C,MAAM,KAAK,GAAa,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC;IAC1F,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gDAAgD;AAChD,SAAS,gBAAgB,CAAC,GAAyB;IACjD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;AACzD,CAAC;AAED,+DAA+D;AAE/D,iDAAiD;AACjD,MAAM,WAAW;IACE,GAAG,CAAuB;IAE3C,YAAmB,GAAyB;QAC1C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,4EAA4E;IACrE,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,IAA2B;QAC5D,MAAM,IAAI,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,8BAA8B,EAAE,CAAC,CAAC;QACrG,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,iEAAiE;IAC1D,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,UAAkB;QACvD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,iDAAiD;QACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChG,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;QAC3F,MAAM,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAC/D,CAAC;CACF;AAED,+DAA+D;AAE/D,0EAA0E;AAC1E,MAAM,SAAU,SAAQ,aAAa;IAClB,GAAG,CAAuB;IAE3C,YACE,SAAiB,EACjB,GAAyB,EACzB,cAAqC,EACrC,SAA2B;QAE3B,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,mEAAmE;IACzD,SAAS;QACjB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,cAAc,sBAAsB,EAAE;YAC7D,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,uBAAuB;YAC7B,GAAG,KAAK;YACR,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;SAC3B,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,gBAAiB,SAAQ,aAAa;IACzB,GAAG,CAAuB;IAC1B,UAAU,CAAS;IAEpC,YACE,SAAiB,EACjB,UAAkB,EAClB,GAAyB,EACzB,cAAqC,EACrC,SAA2B;QAE3B,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,kEAAkE;IACxD,SAAS;QACjB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG;YACX,IAAI;YACJ,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,SAAS,EAAE;YACtD,IAAI,EAAE,0BAA0B;YAChC,IAAI,EAAE,wBAAwB;YAC9B,IAAI,EAAE,uBAAuB;YAC7B,GAAG,KAAK;YACR,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC;SAC3B,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,YAAY;QAC1B,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;CACF;AAED,+DAA+D;AAE/D,mFAAmF;AACnF,MAAM,OAAO,UAAU;IACd,IAAI,GAAW,KAAK,CAAC;IAE5B,sFAAsF;IAC/E,KAAK,CAAC,CAAC,SAAS,CACrB,aAAqB,EACrB,MAA+B,EAC/B,cAAsB;QAEtB,MAAM,GAAG,GAAG,MAAyC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QAEtC,wBAAwB;QACxB,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,+BAA+B,GAAG,CAAC,IAAI,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACrG,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,IAAI,aAAa,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3G,CAAC;QAED,yCAAyC;QACzC,KAAK,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE;YAClD,QAAQ,EAAE,GAAG,CAAC,GAAG;YACjB,uBAAuB,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE,CAAC,MAAM,KAAK,KAAK;SACzE,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,MAAM,YAAY,EAAE,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,oCAAoC,SAAS,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAE1G,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAEpB,sEAAsE;QACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAE3B,cAAc,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QAEzD,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,mCAAmC,SAAS,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5G,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,CAAC,SAAS,CACrB,aAAqB,EACrB,MAA+B,EAC/B,cAAsB;QAEtB,MAAM,GAAG,GAAG,MAAyC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QAEtC,4BAA4B;QAC5B,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACpF,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;QAEjC,uDAAuD;QACvD,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,yBAAyB,GAAG,CAAC,IAAI,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACjG,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE;YAC9E,QAAQ,EAAE,GAAG,CAAC,GAAG;YACjB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAClF,CAAC;QAED,kDAAkD;QAClD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,MAAM,YAAY,EAAE,CAAC;QACxD,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,oCAAoC,SAAS,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7G,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAEpB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAE3B,cAAc,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QAEzD,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClF,CAAC;IAED,uDAAuD;IAChD,KAAK,CAAC,OAAO,CAClB,aAAqB,EACrB,MAA+B,EAC/B,cAAsB;QAEtB,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,wCAAwC,aAAa,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,oBAAoB,CAAC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACrF,CAAC;IAED,kEAAkE;IAC3D,KAAK,CAAC,UAAU,CAAC,aAAqB;QAC3C,MAAM,WAAW,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAED,8DAA8D;IACvD,KAAK,CAAC,IAAI,CAAC,aAAqB,EAAE,MAA+B;QACtE,MAAM,GAAG,GAAG,MAAyC,CAAC;QACtD,MAAM,UAAU,CAAC,aAAa,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,yEAAyE;IAClE,KAAK,CAAC,OAAO,CAAC,aAAqB,EAAE,MAA+B;QACzE,MAAM,GAAG,GAAG,MAAyC,CAAC;QACtD,MAAM,aAAa,CAAC,aAAa,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,2EAA2E;IACpE,KAAK,CAAC,WAAW,CAAC,UAA+B;QACtD,OAAO,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { BetterSQLite3Database } from "drizzle-orm/better-sqlite3";
|
|
1
2
|
import { powerline } from "@grackle-ai/common";
|
|
3
|
+
import * as schema from "./schema.js";
|
|
2
4
|
/** Configuration for which credential providers are enabled. */
|
|
3
5
|
export interface CredentialProviderConfig {
|
|
4
6
|
claude: "off" | "subscription" | "api_key";
|
|
@@ -12,15 +14,30 @@ export declare const VALID_PROVIDERS: readonly string[];
|
|
|
12
14
|
export declare const VALID_CLAUDE_VALUES: ReadonlySet<string>;
|
|
13
15
|
/** Valid values for toggle-style providers (github, copilot, codex). */
|
|
14
16
|
export declare const VALID_TOGGLE_VALUES: ReadonlySet<string>;
|
|
15
|
-
/**
|
|
16
|
-
export
|
|
17
|
+
/** Drizzle database instance type used by credential-provider functions. */
|
|
18
|
+
export type DatabaseInstance = BetterSQLite3Database<typeof schema>;
|
|
19
|
+
/**
|
|
20
|
+
* Parse a raw JSON string into a validated {@link CredentialProviderConfig}.
|
|
21
|
+
* Invalid or missing fields fall back to {@link DEFAULT_CONFIG} values.
|
|
22
|
+
* Throws if the JSON is syntactically invalid — callers decide how to handle the error.
|
|
23
|
+
* Non-object values (e.g. `"null"`, `"42"`) are treated as empty and fall back to defaults.
|
|
24
|
+
*/
|
|
25
|
+
export declare function parseCredentialProviderConfig(rawJson: string): CredentialProviderConfig;
|
|
26
|
+
/**
|
|
27
|
+
* Read the current credential provider configuration from the database.
|
|
28
|
+
* @param database - Optional Drizzle instance; defaults to the module-level db.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getCredentialProviders(database?: DatabaseInstance): CredentialProviderConfig;
|
|
17
31
|
/**
|
|
18
32
|
* Validate that a value is a well-formed credential provider config.
|
|
19
33
|
* Returns true if all fields have valid values.
|
|
20
34
|
*/
|
|
21
35
|
export declare function isValidCredentialProviderConfig(value: unknown): value is CredentialProviderConfig;
|
|
22
|
-
/**
|
|
23
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Persist credential provider configuration to the database.
|
|
38
|
+
* @param database - Optional Drizzle instance; defaults to the module-level db.
|
|
39
|
+
*/
|
|
40
|
+
export declare function setCredentialProviders(config: CredentialProviderConfig, database?: DatabaseInstance): void;
|
|
24
41
|
/**
|
|
25
42
|
* Build a token bundle containing enabled provider credentials.
|
|
26
43
|
* When `runtime` is a known {@link RuntimeName}, only providers mapped to that runtime are included.
|
|
@@ -29,5 +46,5 @@ export declare function setCredentialProviders(config: CredentialProviderConfig)
|
|
|
29
46
|
* (fails safe rather than exposing all credentials for an unrecognized runtime).
|
|
30
47
|
* Reads values fresh from `process.env` or disk at call time.
|
|
31
48
|
*/
|
|
32
|
-
export declare function buildProviderTokenBundle(runtime?: string): powerline.TokenBundle;
|
|
49
|
+
export declare function buildProviderTokenBundle(runtime?: string, database?: DatabaseInstance): powerline.TokenBundle;
|
|
33
50
|
//# sourceMappingURL=credential-providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-providers.d.ts","sourceRoot":"","sources":["../src/credential-providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"credential-providers.d.ts","sourceRoot":"","sources":["../src/credential-providers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKxE,OAAO,EAAE,SAAS,EAAoB,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAKtC,gEAAgE;AAChE,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,KAAK,GAAG,cAAc,GAAG,SAAS,CAAC;IAC3C,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAaD,4BAA4B;AAC5B,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA6C,CAAC;AAE3F,4CAA4C;AAC5C,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAA+C,CAAC;AAEpG,wEAAwE;AACxE,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAA0B,CAAC;AAE/E,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC;AAIpE;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CASvF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,gBAAgB,GAAG,wBAAwB,CAkB5F;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,wBAAwB,CAWjG;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,wBAAwB,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAU1G;AAkBD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAC,WAAW,CA8H7G"}
|
|
@@ -9,7 +9,7 @@ import { join } from "node:path";
|
|
|
9
9
|
import { create } from "@bufbuild/protobuf";
|
|
10
10
|
import { powerline } from "@grackle-ai/common";
|
|
11
11
|
import db from "./db.js";
|
|
12
|
-
import
|
|
12
|
+
import * as schema from "./schema.js";
|
|
13
13
|
import { logger } from "./logger.js";
|
|
14
14
|
/** Settings table key for credential provider configuration. */
|
|
15
15
|
const SETTINGS_KEY = "credential_providers";
|
|
@@ -27,24 +27,38 @@ export const VALID_CLAUDE_VALUES = new Set(["off", "subscription", "api_key"]);
|
|
|
27
27
|
/** Valid values for toggle-style providers (github, copilot, codex). */
|
|
28
28
|
export const VALID_TOGGLE_VALUES = new Set(["off", "on"]);
|
|
29
29
|
// ─── Read / Write ──────────────────────────────────────────
|
|
30
|
-
/**
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Parse a raw JSON string into a validated {@link CredentialProviderConfig}.
|
|
32
|
+
* Invalid or missing fields fall back to {@link DEFAULT_CONFIG} values.
|
|
33
|
+
* Throws if the JSON is syntactically invalid — callers decide how to handle the error.
|
|
34
|
+
* Non-object values (e.g. `"null"`, `"42"`) are treated as empty and fall back to defaults.
|
|
35
|
+
*/
|
|
36
|
+
export function parseCredentialProviderConfig(rawJson) {
|
|
37
|
+
const raw = JSON.parse(rawJson);
|
|
38
|
+
const parsed = (typeof raw === "object" && raw !== null ? raw : {});
|
|
39
|
+
return {
|
|
40
|
+
claude: VALID_CLAUDE_VALUES.has(parsed.claude ?? "") ? parsed.claude : DEFAULT_CONFIG.claude,
|
|
41
|
+
github: VALID_TOGGLE_VALUES.has(parsed.github ?? "") ? parsed.github : DEFAULT_CONFIG.github,
|
|
42
|
+
copilot: VALID_TOGGLE_VALUES.has(parsed.copilot ?? "") ? parsed.copilot : DEFAULT_CONFIG.copilot,
|
|
43
|
+
codex: VALID_TOGGLE_VALUES.has(parsed.codex ?? "") ? parsed.codex : DEFAULT_CONFIG.codex,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Read the current credential provider configuration from the database.
|
|
48
|
+
* @param database - Optional Drizzle instance; defaults to the module-level db.
|
|
49
|
+
*/
|
|
50
|
+
export function getCredentialProviders(database) {
|
|
51
|
+
const conn = database ?? db;
|
|
52
|
+
const row = conn
|
|
33
53
|
.select()
|
|
34
|
-
.from(settings)
|
|
35
|
-
.where(eq(settings.key, SETTINGS_KEY))
|
|
54
|
+
.from(schema.settings)
|
|
55
|
+
.where(eq(schema.settings.key, SETTINGS_KEY))
|
|
36
56
|
.get();
|
|
37
57
|
if (!row) {
|
|
38
58
|
return { ...DEFAULT_CONFIG };
|
|
39
59
|
}
|
|
40
60
|
try {
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
claude: VALID_CLAUDE_VALUES.has(parsed.claude ?? "") ? parsed.claude : DEFAULT_CONFIG.claude,
|
|
44
|
-
github: VALID_TOGGLE_VALUES.has(parsed.github ?? "") ? parsed.github : DEFAULT_CONFIG.github,
|
|
45
|
-
copilot: VALID_TOGGLE_VALUES.has(parsed.copilot ?? "") ? parsed.copilot : DEFAULT_CONFIG.copilot,
|
|
46
|
-
codex: VALID_TOGGLE_VALUES.has(parsed.codex ?? "") ? parsed.codex : DEFAULT_CONFIG.codex,
|
|
47
|
-
};
|
|
61
|
+
return parseCredentialProviderConfig(row.value);
|
|
48
62
|
}
|
|
49
63
|
catch {
|
|
50
64
|
logger.warn("Invalid credential_providers setting; returning defaults");
|
|
@@ -65,13 +79,17 @@ export function isValidCredentialProviderConfig(value) {
|
|
|
65
79
|
VALID_TOGGLE_VALUES.has(v.copilot) &&
|
|
66
80
|
VALID_TOGGLE_VALUES.has(v.codex));
|
|
67
81
|
}
|
|
68
|
-
/**
|
|
69
|
-
|
|
82
|
+
/**
|
|
83
|
+
* Persist credential provider configuration to the database.
|
|
84
|
+
* @param database - Optional Drizzle instance; defaults to the module-level db.
|
|
85
|
+
*/
|
|
86
|
+
export function setCredentialProviders(config, database) {
|
|
87
|
+
const conn = database ?? db;
|
|
70
88
|
const value = JSON.stringify(config);
|
|
71
|
-
|
|
89
|
+
conn.insert(schema.settings)
|
|
72
90
|
.values({ key: SETTINGS_KEY, value })
|
|
73
91
|
.onConflictDoUpdate({
|
|
74
|
-
target: settings.key,
|
|
92
|
+
target: schema.settings.key,
|
|
75
93
|
set: { value },
|
|
76
94
|
})
|
|
77
95
|
.run();
|
|
@@ -97,8 +115,8 @@ const RUNTIME_PROVIDERS = {
|
|
|
97
115
|
* (fails safe rather than exposing all credentials for an unrecognized runtime).
|
|
98
116
|
* Reads values fresh from `process.env` or disk at call time.
|
|
99
117
|
*/
|
|
100
|
-
export function buildProviderTokenBundle(runtime) {
|
|
101
|
-
const config = getCredentialProviders();
|
|
118
|
+
export function buildProviderTokenBundle(runtime, database) {
|
|
119
|
+
const config = getCredentialProviders(database);
|
|
102
120
|
// When runtime is given, look it up in the map. Unknown runtimes get [] (empty, not all providers).
|
|
103
121
|
const runtimeProviders = runtime !== undefined
|
|
104
122
|
? (Object.hasOwn(RUNTIME_PROVIDERS, runtime) ? RUNTIME_PROVIDERS[runtime] : [])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-providers.js","sourceRoot":"","sources":["../src/credential-providers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"credential-providers.js","sourceRoot":"","sources":["../src/credential-providers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grackle-ai/server",
|
|
3
|
-
"version": "0.53.
|
|
3
|
+
"version": "0.53.3",
|
|
4
4
|
"description": "Central gRPC server with SQLite storage and WebSocket bridge for Grackle",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -35,11 +35,11 @@
|
|
|
35
35
|
"ulid": "^2.3.0",
|
|
36
36
|
"uuid": "^11.0.0",
|
|
37
37
|
"ws": "^8.0.0",
|
|
38
|
-
"@grackle-ai/adapter-sdk": "0.53.
|
|
39
|
-
"@grackle-ai/
|
|
40
|
-
"@grackle-ai/
|
|
41
|
-
"@grackle-ai/
|
|
42
|
-
"@grackle-ai/
|
|
38
|
+
"@grackle-ai/adapter-sdk": "0.53.3",
|
|
39
|
+
"@grackle-ai/powerline": "0.53.3",
|
|
40
|
+
"@grackle-ai/common": "0.53.3",
|
|
41
|
+
"@grackle-ai/mcp": "0.53.3",
|
|
42
|
+
"@grackle-ai/web": "0.53.3"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"@rushstack/heft": "1.2.4",
|