@cat-factory/local-server 0.46.2 → 0.48.0

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 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAe/D,MAAM,WAAW,2BAA2B;IAC1C,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,GAAE,2BAAgC,GAAG,cAAc,CAyFjG"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAelF,MAAM,WAAW,2BAA2B;IAC1C,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAgB,0BAA0B,CAAC,IAAI,GAAE,2BAAgC,GAAG,cAAc,CAkJjG"}
package/dist/compose.js CHANGED
@@ -1,5 +1,6 @@
1
- import { execFile } from 'node:child_process';
2
- import { chmod, mkdir, rm, writeFile } from 'node:fs/promises';
1
+ import { execFile, spawn } from 'node:child_process';
2
+ import { chmod, copyFile, mkdir, rm, stat, writeFile } from 'node:fs/promises';
3
+ import { createReadStream } from 'node:fs';
3
4
  import { dirname, join } from 'node:path';
4
5
  import { tmpdir } from 'node:os';
5
6
  import { promisify } from 'node:util';
@@ -13,13 +14,23 @@ export function createDockerComposeRuntime(opts = {}) {
13
14
  const binary = opts.binary?.trim() || 'docker';
14
15
  const scratchRoot = opts.scratchRoot || join(tmpdir(), 'cat-factory-compose');
15
16
  const projectDir = (project) => join(scratchRoot, project);
17
+ const checkoutDir = (project) => join(projectDir(project), 'checkout');
16
18
  return {
17
19
  async compose(args, options) {
20
+ const timeout = options?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
21
+ const env = options?.env ? { ...process.env, ...options.env } : process.env;
22
+ // A `compose-exec` recipe step may stream a repo-relative checkout file into the command's
23
+ // stdin (a `.sql` seed dump piped to a db client). `execFile` can't feed a stream to stdin, so
24
+ // spawn + pipe the file for that case; everything else stays on the simpler execFile path.
25
+ if (options?.stdin) {
26
+ const filePath = join(checkoutDir(options.stdin.project), options.stdin.checkoutFile);
27
+ return runComposeWithStdin(binary, args, filePath, { env, timeoutMs: timeout });
28
+ }
18
29
  try {
19
30
  const { stdout, stderr } = await execFileAsync(binary, ['compose', ...args], {
20
31
  maxBuffer: MAX_BUFFER,
21
- timeout: options?.timeoutMs ?? DEFAULT_TIMEOUT_MS,
22
- env: options?.env ? { ...process.env, ...options.env } : process.env,
32
+ timeout,
33
+ env,
23
34
  });
24
35
  return { code: 0, stdout, stderr };
25
36
  }
@@ -85,14 +96,108 @@ export function createDockerComposeRuntime(opts = {}) {
85
96
  return { dir };
86
97
  },
87
98
  async writeCheckoutFile(project, relPath, content) {
88
- const path = join(projectDir(project), 'checkout', relPath);
99
+ const path = join(checkoutDir(project), relPath);
89
100
  await mkdir(dirname(path), { recursive: true });
90
101
  await writeFile(path, content, 'utf8');
91
102
  return path;
92
103
  },
104
+ async copyCheckoutFile(project, from, to) {
105
+ // Recipe env-file materialization / `copy-file` steps: copy a committed template to its
106
+ // gitignored target INSIDE the checkout. Both paths are repo-relative and were host-escape
107
+ // guarded by the provider before we get here.
108
+ const dst = join(checkoutDir(project), to);
109
+ await mkdir(dirname(dst), { recursive: true });
110
+ await copyFile(join(checkoutDir(project), from), dst);
111
+ },
112
+ async checkoutFileExists(project, relPath) {
113
+ try {
114
+ await stat(join(checkoutDir(project), relPath));
115
+ return true;
116
+ }
117
+ catch {
118
+ return false;
119
+ }
120
+ },
121
+ async hostCommand(project, argv, options) {
122
+ // A recipe `host-command` step: run an arbitrary argv on the HOST (opt-in, provider-gated),
123
+ // cwd at the checkout (+ optional in-checkout `workdir`). Normalize failures/timeouts into a
124
+ // non-throwing result exactly like `compose`, so the provider surfaces the step's own error.
125
+ const cwd = options?.workdir
126
+ ? join(checkoutDir(project), options.workdir)
127
+ : checkoutDir(project);
128
+ const [command, ...rest] = argv;
129
+ try {
130
+ const { stdout, stderr } = await execFileAsync(command, rest, {
131
+ cwd,
132
+ maxBuffer: MAX_BUFFER,
133
+ timeout: options?.timeoutMs ?? DEFAULT_TIMEOUT_MS,
134
+ env: options?.env ? { ...process.env, ...options.env } : process.env,
135
+ });
136
+ return { code: 0, stdout, stderr };
137
+ }
138
+ catch (err) {
139
+ const e = err;
140
+ const code = typeof e.code === 'number' ? e.code : 1;
141
+ const timedOut = e.killed
142
+ ? `host command timed out after ${options?.timeoutMs ?? DEFAULT_TIMEOUT_MS}ms`
143
+ : undefined;
144
+ return { code, stdout: e.stdout ?? '', stderr: e.stderr || timedOut || e.message || '' };
145
+ }
146
+ },
93
147
  async cleanupProject(project) {
94
148
  await rm(projectDir(project), { recursive: true, force: true }).catch(() => { });
95
149
  },
96
150
  };
97
151
  }
152
+ /**
153
+ * Run `docker compose <args>` streaming a host file into the command's stdin (a recipe
154
+ * `compose-exec` seed import). `execFile` has no stdin-stream option, so spawn the child, pipe the
155
+ * file, bound the output buffers + a kill timeout, and normalize the outcome into a non-throwing
156
+ * {@link ComposeExecResult} — matching the `compose` error posture. A missing/unreadable stdin file
157
+ * fails the step with a clear message rather than silently feeding an empty stream to the command.
158
+ */
159
+ function runComposeWithStdin(binary, args, filePath, opts) {
160
+ return new Promise((resolve) => {
161
+ const child = spawn(binary, ['compose', ...args], { env: opts.env });
162
+ let stdout = '';
163
+ let stderr = '';
164
+ let settled = false;
165
+ const finish = (result) => {
166
+ if (settled)
167
+ return;
168
+ settled = true;
169
+ clearTimeout(timer);
170
+ resolve(result);
171
+ };
172
+ const timer = setTimeout(() => {
173
+ child.kill('SIGTERM');
174
+ finish({
175
+ code: 1,
176
+ stdout,
177
+ stderr: stderr || `docker compose timed out after ${opts.timeoutMs}ms`,
178
+ });
179
+ }, opts.timeoutMs);
180
+ child.stdout.on('data', (d) => {
181
+ if (stdout.length < MAX_BUFFER)
182
+ stdout += d.toString();
183
+ });
184
+ child.stderr.on('data', (d) => {
185
+ if (stderr.length < MAX_BUFFER)
186
+ stderr += d.toString();
187
+ });
188
+ child.on('error', (err) => finish({ code: 1, stdout, stderr: stderr || String(err) }));
189
+ child.on('close', (code) => finish({ code: code ?? 1, stdout, stderr }));
190
+ const rs = createReadStream(filePath);
191
+ rs.on('error', (err) => {
192
+ child.kill('SIGTERM');
193
+ finish({ code: 1, stdout, stderr: `could not read stdin file '${filePath}': ${String(err)}` });
194
+ });
195
+ // The child can exit before stdin is fully written (an early auth/syntax failure, or the
196
+ // SIGTERM on timeout); the still-writing pipe then emits EPIPE on `child.stdin`. Without a
197
+ // handler that is an unhandled 'error' that crashes the whole process, so swallow it and stop
198
+ // the source — the child's own exit code + stderr (via 'close'/'error') is the real outcome.
199
+ child.stdin.on('error', () => rs.destroy());
200
+ rs.pipe(child.stdin);
201
+ });
202
+ }
98
203
  //# sourceMappingURL=compose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * `@cat-factory/executor-harness`'s version (the value CI tags the published image with, and
4
4
  * the same tag `deploy/backend` pins). Bump it whenever the harness image bumps.
5
5
  */
6
- export declare const RECOMMENDED_HARNESS_IMAGE = "ghcr.io/kibertoad/cat-factory-executor:1.34.10";
6
+ export declare const RECOMMENDED_HARNESS_IMAGE = "ghcr.io/kibertoad/cat-factory-executor:1.34.12";
7
7
  /**
8
8
  * The effective harness image ref: an explicit `LOCAL_HARNESS_IMAGE` wins (a custom build, a
9
9
  * different pin, or a mutable tag), else the backend-matched {@link RECOMMENDED_HARNESS_IMAGE}.
@@ -21,7 +21,7 @@
21
21
  * `@cat-factory/executor-harness`'s version (the value CI tags the published image with, and
22
22
  * the same tag `deploy/backend` pins). Bump it whenever the harness image bumps.
23
23
  */
24
- export const RECOMMENDED_HARNESS_IMAGE = 'ghcr.io/kibertoad/cat-factory-executor:1.34.10';
24
+ export const RECOMMENDED_HARNESS_IMAGE = 'ghcr.io/kibertoad/cat-factory-executor:1.34.12';
25
25
  /**
26
26
  * The effective harness image ref: an explicit `LOCAL_HARNESS_IMAGE` wins (a custom build, a
27
27
  * different pin, or a mutable tag), else the backend-matched {@link RECOMMENDED_HARNESS_IMAGE}.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/local-server",
3
- "version": "0.46.2",
3
+ "version": "0.48.0",
4
4
  "description": "Local-mode runtime facade for the Agent Architecture Board: the @cat-factory/node-server stack with agent jobs run as local Docker/Podman containers and GitHub accessed via a personal access token — a developer can run the whole product on their own machine.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,24 +24,24 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@hono/node-server": "^2.0.6",
27
+ "@hono/node-server": "^2.0.8",
28
28
  "drizzle-orm": "1.0.0-rc.4",
29
- "@cat-factory/agents": "0.38.1",
30
- "@cat-factory/contracts": "0.101.0",
31
- "@cat-factory/executor-harness": "1.34.10",
32
- "@cat-factory/gitlab": "0.7.7",
33
- "@cat-factory/integrations": "0.68.0",
34
- "@cat-factory/kernel": "0.91.0",
35
- "@cat-factory/node-server": "0.75.2",
36
- "@cat-factory/orchestration": "0.74.2",
37
- "@cat-factory/server": "0.84.2"
29
+ "@cat-factory/agents": "0.39.0",
30
+ "@cat-factory/contracts": "0.102.0",
31
+ "@cat-factory/executor-harness": "1.34.12",
32
+ "@cat-factory/integrations": "0.69.1",
33
+ "@cat-factory/gitlab": "0.7.9",
34
+ "@cat-factory/kernel": "0.93.0",
35
+ "@cat-factory/node-server": "0.76.0",
36
+ "@cat-factory/server": "0.85.0",
37
+ "@cat-factory/orchestration": "0.75.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@types/node": "^26.0.1",
40
+ "@types/node": "^26.1.0",
41
41
  "typescript": "7.0.1-rc",
42
42
  "vitest": "^4.1.9",
43
- "@cat-factory/conformance": "0.10.24",
44
- "@cat-factory/gates": "0.4.4"
43
+ "@cat-factory/conformance": "0.10.26",
44
+ "@cat-factory/gates": "0.4.6"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "tsc -b tsconfig.build.json",