@flarestudio/fcc-workbench 1.0.23 → 1.0.24

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.
@@ -1,21 +1,7 @@
1
- /**
2
- * Run a docker-compose command (up, down, logs, build).
3
- * Streams output directly to the terminal.
4
- */
5
1
  export declare function runDockerCompose(args: string[]): Promise<void>;
6
2
  export declare function stopStack(): Promise<void>;
7
3
  export declare function tailServiceLogs(service: string, lines?: number): Promise<string>;
8
4
  export declare function findContainersUsingHostPorts(ports: number[]): Promise<string[]>;
9
- /**
10
- * Check if the ext-proxy is healthy by polling its /info endpoint.
11
- * Returns true when ready, throws after timeout.
12
- */
13
- export declare function waitForProxy(proxyUrl?: string, timeoutMs?: number): Promise<boolean>;
14
- /**
15
- * Fetch the TEE public key and version info from the running ext-proxy.
16
- * The /info endpoint lives on the EXTERNAL port (6676).
17
- * Retries because the external server starts after the DB sync completes.
18
- */
19
5
  export declare function fetchProxyInfo(proxyUrl?: string, retries?: number, delayMs?: number): Promise<{
20
6
  publicKey: string;
21
7
  platform: number;
@@ -24,7 +10,4 @@ export declare function fetchProxyInfo(proxyUrl?: string, retries?: number, dela
24
10
  initialOwner: string;
25
11
  version: string;
26
12
  }>;
27
- /**
28
- * Check if Docker Desktop is running by pinging docker info.
29
- */
30
13
  export declare function isDockerRunning(): Promise<boolean>;
@@ -1,82 +1,96 @@
1
1
  import { spawn } from 'child_process';
2
- function safeCwd() {
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ function projectRoot() {
3
5
  try {
4
- return process.cwd();
6
+ const cwd = process.cwd();
7
+ const yaml = path.join(cwd, 'docker-compose.yml');
8
+ const yml = path.join(cwd, 'docker-compose.yaml');
9
+ if (fs.existsSync(yaml))
10
+ return cwd;
11
+ if (fs.existsSync(yml))
12
+ return cwd;
13
+ return cwd;
5
14
  }
6
15
  catch {
7
- // If the current directory was deleted, Node may start with an invalid cwd.
8
- // For docker compose commands we can omit cwd and let it inherit a valid one,
9
- // but for compose-file discovery we prefer the caller to be in the project dir.
10
16
  return undefined;
11
17
  }
12
18
  }
13
- function runCapture(command, args, options = {}) {
14
- return new Promise((resolve) => {
15
- const child = spawn(command, args, { stdio: ['ignore', 'pipe', 'pipe'], shell: false, cwd: options.cwd });
16
- let out = '';
17
- child.stdout?.on('data', (d) => (out += d.toString()));
18
- child.stderr?.on('data', (d) => (out += d.toString()));
19
- child.on('close', (code) => resolve({ code: code ?? 1, out: out.trim() }));
20
- child.on('error', () => resolve({ code: 1, out: '' }));
21
- });
19
+ function composeFileArgs(cwd) {
20
+ if (!cwd)
21
+ return [];
22
+ const yaml = path.join(cwd, 'docker-compose.yml');
23
+ const yml = path.join(cwd, 'docker-compose.yaml');
24
+ if (fs.existsSync(yaml))
25
+ return ['-f', yaml];
26
+ if (fs.existsSync(yml))
27
+ return ['-f', yml];
28
+ return [];
22
29
  }
23
- /**
24
- * Run a docker-compose command (up, down, logs, build).
25
- * Streams output directly to the terminal.
26
- */
27
- export function runDockerCompose(args) {
30
+ function run(command, args, cwd, inherit = true) {
28
31
  return new Promise((resolve, reject) => {
29
- // Support both "docker compose" (v2) and "docker-compose" (v1)
30
- const child = spawn('docker', ['compose', ...args], {
31
- stdio: 'inherit',
32
+ const child = spawn(command, args, {
33
+ cwd,
32
34
  shell: false,
33
- cwd: safeCwd(),
34
- });
35
- child.on('error', (err) => {
36
- // Fallback to v1 if v2 not found
37
- if (err.message.includes('ENOENT') || err.message.includes('not found')) {
38
- const fallback = spawn('docker-compose', args, {
39
- stdio: 'inherit',
40
- shell: false,
41
- cwd: safeCwd(),
42
- });
43
- fallback.on('error', reject);
44
- fallback.on('close', (code) => {
45
- if (code === 0)
46
- resolve();
47
- else
48
- reject(new Error(`docker-compose exited with code ${code}`));
49
- });
50
- }
51
- else {
52
- reject(err);
53
- }
35
+ stdio: inherit ? 'inherit' : ['ignore', 'pipe', 'pipe'],
54
36
  });
37
+ child.on('error', reject);
55
38
  child.on('close', (code) => {
56
39
  if (code === 0)
57
40
  resolve();
58
41
  else
59
- reject(new Error(`docker compose exited with code ${code}`));
42
+ reject(new Error(`${command} exited with code ${code}`));
60
43
  });
61
44
  });
62
45
  }
46
+ function runCapture(command, args, cwd) {
47
+ return new Promise((resolve) => {
48
+ const child = spawn(command, args, {
49
+ cwd,
50
+ shell: false,
51
+ stdio: ['ignore', 'pipe', 'pipe'],
52
+ });
53
+ let out = '';
54
+ child.stdout?.on('data', (d) => (out += d.toString()));
55
+ child.stderr?.on('data', (d) => (out += d.toString()));
56
+ child.on('error', () => resolve({ code: 1, out }));
57
+ child.on('close', (code) => resolve({ code: code ?? 1, out: out.trim() }));
58
+ });
59
+ }
60
+ export async function runDockerCompose(args) {
61
+ const cwd = projectRoot();
62
+ const fileArgs = composeFileArgs(cwd);
63
+ try {
64
+ await run('docker', ['compose', ...fileArgs, ...args], cwd);
65
+ }
66
+ catch (err) {
67
+ try {
68
+ await run('docker-compose', [...fileArgs, ...args], cwd);
69
+ }
70
+ catch {
71
+ throw err;
72
+ }
73
+ }
74
+ }
63
75
  export async function stopStack() {
64
76
  await runDockerCompose(['down']);
65
77
  }
66
78
  export async function tailServiceLogs(service, lines = 200) {
67
- const { out } = await runCapture('docker', ['compose', 'logs', '--no-color', '--tail', String(lines), service], { cwd: safeCwd() });
79
+ const cwd = projectRoot();
80
+ const fileArgs = composeFileArgs(cwd);
81
+ const { out } = await runCapture('docker', ['compose', ...fileArgs, 'logs', '--no-color', '--tail', String(lines), service], cwd);
68
82
  return out;
69
83
  }
70
84
  export async function findContainersUsingHostPorts(ports) {
71
- const { out } = await runCapture('docker', ['ps', '--format', '{{.Names}}\\t{{.Ports}}']);
85
+ const { out } = await runCapture('docker', ['ps', '--format', '{{.Names}}\t{{.Ports}}']);
72
86
  if (!out)
73
87
  return [];
74
- const lines = out.split('\n').map((l) => l.trim()).filter(Boolean);
88
+ const lines = out.split('\n').map((line) => line.trim()).filter(Boolean);
75
89
  const matches = [];
76
90
  for (const line of lines) {
77
91
  const [name, portsText = ''] = line.split('\t');
78
- for (const p of ports) {
79
- if (portsText.includes(`:${p}->`)) {
92
+ for (const port of ports) {
93
+ if (portsText.includes(`:${port}->`)) {
80
94
  matches.push(`${name} (${portsText})`);
81
95
  break;
82
96
  }
@@ -84,30 +98,6 @@ export async function findContainersUsingHostPorts(ports) {
84
98
  }
85
99
  return matches;
86
100
  }
87
- /**
88
- * Check if the ext-proxy is healthy by polling its /info endpoint.
89
- * Returns true when ready, throws after timeout.
90
- */
91
- export async function waitForProxy(proxyUrl = 'http://localhost:6675', timeoutMs = 60000) {
92
- const deadline = Date.now() + timeoutMs;
93
- while (Date.now() < deadline) {
94
- try {
95
- const res = await fetch(`${proxyUrl}/info`);
96
- if (res.ok)
97
- return true;
98
- }
99
- catch {
100
- // not ready yet
101
- }
102
- await new Promise((r) => setTimeout(r, 2000));
103
- }
104
- throw new Error(`Proxy at ${proxyUrl} did not become healthy within ${timeoutMs / 1000}s`);
105
- }
106
- /**
107
- * Fetch the TEE public key and version info from the running ext-proxy.
108
- * The /info endpoint lives on the EXTERNAL port (6676).
109
- * Retries because the external server starts after the DB sync completes.
110
- */
111
101
  export async function fetchProxyInfo(proxyUrl = 'http://localhost:6676', retries = 15, delayMs = 3000) {
112
102
  for (let i = 0; i < retries; i++) {
113
103
  try {
@@ -116,7 +106,6 @@ export async function fetchProxyInfo(proxyUrl = 'http://localhost:6676', retries
116
106
  const data = await res.json();
117
107
  const teeInfo = data.teeInfo ?? data.tee_info ?? {};
118
108
  const machineData = data.machineData ?? data.machine_data ?? {};
119
- // Extract public key (concatenate x and y)
120
109
  const pkObj = machineData.publicKey ?? teeInfo.publicKey ?? {};
121
110
  const x = (pkObj.x ?? '').replace('0x', '');
122
111
  const y = (pkObj.y ?? '').replace('0x', '');
@@ -130,14 +119,10 @@ export async function fetchProxyInfo(proxyUrl = 'http://localhost:6676', retries
130
119
  version: teeInfo.version ?? machineData.version ?? '',
131
120
  };
132
121
  }
133
- if (res.status !== 503) {
122
+ if (res.status !== 503)
134
123
  throw new Error(`Proxy /info returned ${res.status}`);
135
- }
136
124
  }
137
125
  catch (err) {
138
- // These all mean the external server hasn't started yet — keep retrying.
139
- // NOTE: undici wraps the real error: err.message = "fetch failed", err.cause.message = "read ECONNRESET"
140
- // So we must check BOTH, not one-or-the-other.
141
126
  const msg = `${err?.message ?? ''} ${err?.cause?.message ?? ''}`.toLowerCase();
142
127
  const isTransient = msg.includes('econnreset') ||
143
128
  msg.includes('und_err_socket') ||
@@ -148,16 +133,12 @@ export async function fetchProxyInfo(proxyUrl = 'http://localhost:6676', retries
148
133
  if (!isTransient)
149
134
  throw err;
150
135
  }
151
- if (i < retries - 1) {
136
+ if (i < retries - 1)
152
137
  await new Promise((r) => setTimeout(r, delayMs));
153
- }
154
138
  }
155
139
  throw new Error('Proxy /info did not become available. Is the TEE stack running and synced?');
156
140
  }
157
- /**
158
- * Check if Docker Desktop is running by pinging docker info.
159
- */
160
- export function isDockerRunning() {
141
+ export async function isDockerRunning() {
161
142
  return new Promise((resolve) => {
162
143
  const child = spawn('docker', ['info'], { stdio: 'pipe', shell: false });
163
144
  child.on('close', (code) => resolve(code === 0));
@@ -1 +1 @@
1
- {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/modules/docker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/modules/docker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flarestudio/fcc-workbench",
3
- "version": "1.0.23",
3
+ "version": "1.0.24",
4
4
  "description": "Tactical Workbench for Flare Confidential Compute (FCC). Scaffold, encrypt, and relay sovereign AI agents.",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",