@cat-factory/local-server 0.43.0 → 0.44.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.
- package/dist/compose.d.ts.map +1 -1
- package/dist/compose.js +50 -2
- package/dist/compose.js.map +1 -1
- package/package.json +11 -11
package/dist/compose.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/compose.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { execFile } from 'node:child_process';
|
|
2
|
-
import { mkdir, rm, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { chmod, mkdir, rm, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
3
4
|
import { tmpdir } from 'node:os';
|
|
4
|
-
import { join } from 'node:path';
|
|
5
5
|
import { promisify } from 'node:util';
|
|
6
6
|
const execFileAsync = promisify(execFile);
|
|
7
7
|
const MAX_BUFFER = 16 * 1024 * 1024;
|
|
8
8
|
// Fallback bound when the provider passes no `timeoutMs`, so a wedged daemon can't hang forever.
|
|
9
9
|
const DEFAULT_TIMEOUT_MS = 60_000;
|
|
10
|
+
// Bound for the git clone in build mode (a shallow single-ref fetch is fast; guard a wedged remote).
|
|
11
|
+
const CLONE_TIMEOUT_MS = 120_000;
|
|
10
12
|
export function createDockerComposeRuntime(opts = {}) {
|
|
11
13
|
const binary = opts.binary?.trim() || 'docker';
|
|
12
14
|
const scratchRoot = opts.scratchRoot || join(tmpdir(), 'cat-factory-compose');
|
|
@@ -42,6 +44,52 @@ export function createDockerComposeRuntime(opts = {}) {
|
|
|
42
44
|
await writeFile(path, content, 'utf8');
|
|
43
45
|
return path;
|
|
44
46
|
},
|
|
47
|
+
async checkout(project, target) {
|
|
48
|
+
// Build mode: shallow-clone the PR head into a working tree UNDER the project scratch dir
|
|
49
|
+
// (so the existing `cleanupProject` reaps it on teardown). Mirrors the deploy-harness clone:
|
|
50
|
+
// init + `fetch --depth 1 origin <ref>` + detached checkout (so a raw SHA ref works too), and
|
|
51
|
+
// the token is passed to git via GIT_ASKPASS — never on argv.
|
|
52
|
+
const dir = join(projectDir(project), 'checkout');
|
|
53
|
+
await rm(dir, { recursive: true, force: true }).catch(() => { });
|
|
54
|
+
await mkdir(dir, { recursive: true });
|
|
55
|
+
// Embed only the `x-access-token` username (no secret) in the remote URL.
|
|
56
|
+
const authUrl = target.cloneUrl.replace(/^https:\/\//, 'https://x-access-token@');
|
|
57
|
+
const env = { ...process.env, GIT_TERMINAL_PROMPT: '0' };
|
|
58
|
+
if (target.token) {
|
|
59
|
+
const askpass = join(projectDir(project), 'git-askpass.sh');
|
|
60
|
+
await writeFile(askpass, '#!/bin/sh\nexec printf %s "$GIT_ASKPASS_TOKEN"\n', 'utf8');
|
|
61
|
+
await chmod(askpass, 0o700);
|
|
62
|
+
env.GIT_ASKPASS = askpass;
|
|
63
|
+
env.GIT_ASKPASS_TOKEN = target.token;
|
|
64
|
+
}
|
|
65
|
+
const git = async (args) => {
|
|
66
|
+
try {
|
|
67
|
+
await execFileAsync('git', args, {
|
|
68
|
+
maxBuffer: MAX_BUFFER,
|
|
69
|
+
timeout: CLONE_TIMEOUT_MS,
|
|
70
|
+
env,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const e = err;
|
|
75
|
+
// Redact the token from any surfaced message (defensive — it's not on argv, but be safe).
|
|
76
|
+
const raw = (e.stderr || e.message || 'git failed').trim();
|
|
77
|
+
const msg = target.token ? raw.split(target.token).join('***') : raw;
|
|
78
|
+
throw new Error(msg);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
await git(['init', '--quiet', dir]);
|
|
82
|
+
await git(['-C', dir, 'remote', 'add', 'origin', authUrl]);
|
|
83
|
+
await git(['-C', dir, 'fetch', '--depth', '1', 'origin', target.ref]);
|
|
84
|
+
await git(['-C', dir, 'checkout', '--quiet', '--detach', 'FETCH_HEAD']);
|
|
85
|
+
return { dir };
|
|
86
|
+
},
|
|
87
|
+
async writeCheckoutFile(project, relPath, content) {
|
|
88
|
+
const path = join(projectDir(project), 'checkout', relPath);
|
|
89
|
+
await mkdir(dirname(path), { recursive: true });
|
|
90
|
+
await writeFile(path, content, 'utf8');
|
|
91
|
+
return path;
|
|
92
|
+
},
|
|
45
93
|
async cleanupProject(project) {
|
|
46
94
|
await rm(projectDir(project), { recursive: true, force: true }).catch(() => { });
|
|
47
95
|
},
|
package/dist/compose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../src/compose.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/local-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.44.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",
|
|
@@ -26,22 +26,22 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@hono/node-server": "^2.0.6",
|
|
28
28
|
"drizzle-orm": "1.0.0-rc.4",
|
|
29
|
-
"@cat-factory/agents": "0.30.
|
|
30
|
-
"@cat-factory/contracts": "0.
|
|
29
|
+
"@cat-factory/agents": "0.30.5",
|
|
30
|
+
"@cat-factory/contracts": "0.95.0",
|
|
31
31
|
"@cat-factory/executor-harness": "1.34.4",
|
|
32
|
-
"@cat-factory/gitlab": "0.6.
|
|
33
|
-
"@cat-factory/integrations": "0.
|
|
34
|
-
"@cat-factory/kernel": "0.
|
|
35
|
-
"@cat-factory/node-server": "0.70.
|
|
36
|
-
"@cat-factory/orchestration": "0.68.
|
|
37
|
-
"@cat-factory/server": "0.79.
|
|
32
|
+
"@cat-factory/gitlab": "0.6.9",
|
|
33
|
+
"@cat-factory/integrations": "0.62.0",
|
|
34
|
+
"@cat-factory/kernel": "0.82.0",
|
|
35
|
+
"@cat-factory/node-server": "0.70.1",
|
|
36
|
+
"@cat-factory/orchestration": "0.68.1",
|
|
37
|
+
"@cat-factory/server": "0.79.1"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@types/node": "^26.0.1",
|
|
41
41
|
"typescript": "7.0.1-rc",
|
|
42
42
|
"vitest": "^4.1.9",
|
|
43
|
-
"@cat-factory/conformance": "0.10.
|
|
44
|
-
"@cat-factory/gates": "0.2.
|
|
43
|
+
"@cat-factory/conformance": "0.10.11",
|
|
44
|
+
"@cat-factory/gates": "0.2.85"
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|
|
47
47
|
"build": "tsc -b tsconfig.build.json",
|