diff --git a/packages/cli/src/__tests__/eval-bundle-path.test.ts b/packages/cli/src/__tests__/eval-bundle-path.test.ts index 36e6404373..c358066538 100644 --- a/packages/cli/src/__tests__/eval-bundle-path.test.ts +++ b/packages/cli/src/__tests__/eval-bundle-path.test.ts @@ -28,7 +28,7 @@ describe('installed Eval bundle', () => { test('points Eval containers at the installed package root', async (t) => { const packageRoot = await mkdtemp(join(tmpdir(), 'maka-cli-eval-bundle-')); t.after(() => rm(packageRoot, { recursive: true, force: true })); - await mkdir(join(packageRoot, 'packages/eval'), { recursive: true }); + await mkdir(join(packageRoot, 'node_modules/@maka/eval'), { recursive: true }); const environment: NodeJS.ProcessEnv = {}; configureInstalledEvalBundle(environment, packageRoot); @@ -44,7 +44,7 @@ describe('installed Eval bundle', () => { assert.equal(environment.MAKA_EVAL_MAKA_BUNDLE_PATH, '/explicit/bundle'); }); - test('does not change source-checkout behavior without a packaged Eval mirror', () => { + test('does not change source-checkout behavior without a packaged Eval runtime', () => { const environment: NodeJS.ProcessEnv = {}; configureInstalledEvalBundle(environment, '/missing/package'); diff --git a/packages/cli/src/eval-bundle-path.ts b/packages/cli/src/eval-bundle-path.ts index 7939d9a81d..78d7391b6d 100644 --- a/packages/cli/src/eval-bundle-path.ts +++ b/packages/cli/src/eval-bundle-path.ts @@ -28,7 +28,7 @@ export function configureInstalledEvalBundle( ): void { if (Object.hasOwn(environment, MAKA_EVAL_BUNDLE_ENV)) return; try { - if (!statSync(resolve(packageRoot, 'packages/eval')).isDirectory()) return; + if (!statSync(resolve(packageRoot, 'node_modules/@maka/eval')).isDirectory()) return; } catch { return; } diff --git a/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-deepseek-harness.json b/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-deepseek-harness.json index bbf20af583..99c32ca969 100644 --- a/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-deepseek-harness.json +++ b/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-deepseek-harness.json @@ -34,8 +34,8 @@ ], "egressProxy": { "composeSourceEnv": "MAKA_EVAL_MAKA_BUNDLE_PATH", - "composeRelativePath": "packages/eval/harbor/docker-compose-egress-proxy.yaml", - "networkPolicyRelativePath": "packages/eval/harbor/egress-proxy/network-policy", + "composeRelativePath": "node_modules/@maka/eval/harbor/docker-compose-egress-proxy.yaml", + "networkPolicyRelativePath": "node_modules/@maka/eval/harbor/egress-proxy/network-policy", "proxyUrl": "http://maka-eval-mitmproxy:8080", "allowedHost": "maka-eval-mitmproxy", "containerCaPath": "/opt/maka-egress/mitmproxy-ca-cert.pem" @@ -73,7 +73,7 @@ "DEEPSEEK_API_KEY": "DEEPSEEK_API_KEY" }, "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "deepseek-harness", "https://api.deepseek.com/v1", "/", diff --git a/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-eight-arm.json b/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-eight-arm.json index b27c2f64d5..d9e61ce5b2 100644 --- a/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-eight-arm.json +++ b/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-eight-arm.json @@ -31,8 +31,8 @@ ], "egressProxy": { "composeSourceEnv": "MAKA_EVAL_MAKA_BUNDLE_PATH", - "composeRelativePath": "packages/eval/harbor/docker-compose-egress-proxy.yaml", - "networkPolicyRelativePath": "packages/eval/harbor/egress-proxy/network-policy", + "composeRelativePath": "node_modules/@maka/eval/harbor/docker-compose-egress-proxy.yaml", + "networkPolicyRelativePath": "node_modules/@maka/eval/harbor/egress-proxy/network-policy", "proxyUrl": "http://maka-eval-mitmproxy:8080", "allowedHost": "maka-eval-mitmproxy", "containerCaPath": "/opt/maka-egress/mitmproxy-ca-cert.pem" @@ -94,7 +94,7 @@ "credentials": ["DEEPSEEK_API_KEY"], "config": { "nodePath": "/opt/maka-node-toolchain/bin/node", - "shimPath": "/opt/maka-agent/packages/eval/dist/harbor-maka-subject.js", + "shimPath": "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-maka-subject.js", "runtimeHostsPath": "/tmp/maka-runtime-hosts", "hostSettlementTimeoutMs": 120000, "connectionSlug": "env-deepseek", @@ -115,7 +115,7 @@ "command": "/opt/maka-node-toolchain/bin/node", "credentialEnvironment": { "OPENAI_API_KEY": "DEEPSEEK_API_KEY" }, "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "codex", "https://api.deepseek.com", "/", @@ -139,7 +139,7 @@ "command": "/opt/maka-node-toolchain/bin/node", "credentialEnvironment": { "ANTHROPIC_API_KEY": "DEEPSEEK_API_KEY" }, "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "claude-code", "https://api.deepseek.com/anthropic", "/", @@ -170,7 +170,7 @@ "command": "/opt/maka-node-toolchain/bin/node", "credentialEnvironment": { "OPENAI_API_KEY": "DEEPSEEK_API_KEY" }, "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "reasonix", "https://api.deepseek.com", "/", @@ -195,7 +195,7 @@ "command": "/opt/maka-node-toolchain/bin/node", "credentialEnvironment": { "OPENAI_API_KEY": "DEEPSEEK_API_KEY" }, "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "opencode", "https://api.deepseek.com", "/", @@ -223,7 +223,7 @@ "command": "/opt/maka-node-toolchain/bin/node", "credentialEnvironment": { "OPENAI_API_KEY": "DEEPSEEK_API_KEY" }, "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "kimi-code", "https://api.deepseek.com", "/", @@ -244,7 +244,7 @@ "command": "/opt/maka-node-toolchain/bin/node", "credentialEnvironment": { "OPENAI_API_KEY": "DEEPSEEK_API_KEY" }, "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "zcode", "https://api.deepseek.com/v1", "/", @@ -267,7 +267,7 @@ "command": "/opt/maka-node-toolchain/bin/node", "credentialEnvironment": { "OPENAI_API_KEY": "DEEPSEEK_API_KEY" }, "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "pi", "https://api.deepseek.com", "/", diff --git a/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-four-arm.json b/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-four-arm.json index 374eb0d07a..d8e4ce1b98 100644 --- a/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-four-arm.json +++ b/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-four-arm.json @@ -30,8 +30,8 @@ ], "egressProxy": { "composeSourceEnv": "MAKA_EVAL_MAKA_BUNDLE_PATH", - "composeRelativePath": "packages/eval/harbor/docker-compose-egress-proxy.yaml", - "networkPolicyRelativePath": "packages/eval/harbor/egress-proxy/network-policy", + "composeRelativePath": "node_modules/@maka/eval/harbor/docker-compose-egress-proxy.yaml", + "networkPolicyRelativePath": "node_modules/@maka/eval/harbor/egress-proxy/network-policy", "proxyUrl": "http://maka-eval-mitmproxy:8080", "allowedHost": "maka-eval-mitmproxy", "containerCaPath": "/opt/maka-egress/mitmproxy-ca-cert.pem" @@ -73,7 +73,7 @@ "credentials": ["OPENAI_API_KEY"], "config": { "nodePath": "/opt/maka-node-toolchain/bin/node", - "shimPath": "/opt/maka-agent/packages/eval/dist/harbor-maka-subject.js", + "shimPath": "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-maka-subject.js", "runtimeHostsPath": "/tmp/maka-runtime-hosts", "connectionSlug": "env-openai", "baseUrl": "https://api.deepseek.com", @@ -93,7 +93,7 @@ "config": { "command": "/opt/maka-node-toolchain/bin/node", "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "codex", "https://api.deepseek.com", "/", @@ -114,7 +114,7 @@ "config": { "command": "/opt/maka-node-toolchain/bin/node", "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "claude-code", "https://api.deepseek.com/anthropic", "/", @@ -140,7 +140,7 @@ "config": { "command": "/opt/maka-node-toolchain/bin/node", "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "reasonix", "https://api.deepseek.com", "/", diff --git a/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-maka-vs-deepseek-harness.json b/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-maka-vs-deepseek-harness.json index 372e8d2b7e..da53a7f8b8 100644 --- a/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-maka-vs-deepseek-harness.json +++ b/packages/eval/experiments/terminal-bench-2.1-deepseek-v4-flash-maka-vs-deepseek-harness.json @@ -34,8 +34,8 @@ ], "egressProxy": { "composeSourceEnv": "MAKA_EVAL_MAKA_BUNDLE_PATH", - "composeRelativePath": "packages/eval/harbor/docker-compose-egress-proxy.yaml", - "networkPolicyRelativePath": "packages/eval/harbor/egress-proxy/network-policy", + "composeRelativePath": "node_modules/@maka/eval/harbor/docker-compose-egress-proxy.yaml", + "networkPolicyRelativePath": "node_modules/@maka/eval/harbor/egress-proxy/network-policy", "proxyUrl": "http://maka-eval-mitmproxy:8080", "allowedHost": "maka-eval-mitmproxy", "containerCaPath": "/opt/maka-egress/mitmproxy-ca-cert.pem" @@ -69,7 +69,7 @@ "credentials": ["DEEPSEEK_API_KEY"], "config": { "nodePath": "/opt/maka-node-toolchain/bin/node", - "shimPath": "/opt/maka-agent/packages/eval/dist/harbor-maka-subject.js", + "shimPath": "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-maka-subject.js", "runtimeHostsPath": "/tmp/maka-runtime-hosts", "hostSettlementTimeoutMs": 120000, "connectionSlug": "env-deepseek", @@ -92,7 +92,7 @@ "DEEPSEEK_API_KEY": "DEEPSEEK_API_KEY" }, "args": [ - "/opt/maka-agent/packages/eval/dist/harbor-external-subject.js", + "/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js", "deepseek-harness", "https://api.deepseek.com/v1", "/", diff --git a/packages/eval/package.json b/packages/eval/package.json index f23d7fce60..a7df3aa3e4 100644 --- a/packages/eval/package.json +++ b/packages/eval/package.json @@ -7,9 +7,7 @@ "releaseFiles": [ "dist", "harbor/deepseek-codex-models.json", - "harbor/deepseek-harness-profile/cordis.patch.yml", - "harbor/deepseek-harness-profile/cordis.yml", - "harbor/deepseek-harness-profile/package.json", + "harbor/deepseek-harness-profile", "harbor/docker-compose-egress-proxy.yaml", "harbor/egress-proxy/Dockerfile", "harbor/egress-proxy/entrypoint.sh", diff --git a/packages/eval/src/__tests__/external-subject.test.ts b/packages/eval/src/__tests__/external-subject.test.ts index bc187bca9b..d5ee0e8473 100644 --- a/packages/eval/src/__tests__/external-subject.test.ts +++ b/packages/eval/src/__tests__/external-subject.test.ts @@ -405,7 +405,7 @@ test('refuses a mounted toolchain that is not the pinned tree', async () => { ...externalCell({ command: '/opt/maka-node-toolchain/bin/node', args: [ - '/opt/maka-agent/packages/eval/dist/harbor-external-subject.js', + '/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js', 'codex', 'https://api.deepseek.com', '/', @@ -469,7 +469,7 @@ test('a verified toolchain reaches the subject and its later attempts', async () ...externalCell({ command: '/opt/maka-node-toolchain/bin/node', args: [ - '/opt/maka-agent/packages/eval/dist/harbor-external-subject.js', + '/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js', 'codex', 'https://api.deepseek.com', '/', diff --git a/packages/eval/src/__tests__/lifecycle-boundaries.test.ts b/packages/eval/src/__tests__/lifecycle-boundaries.test.ts index c039dabe11..aadcfe8f55 100644 --- a/packages/eval/src/__tests__/lifecycle-boundaries.test.ts +++ b/packages/eval/src/__tests__/lifecycle-boundaries.test.ts @@ -828,7 +828,10 @@ test('eight-arm spec and wrappers freeze the working provider contracts', async }; // The DeepSeek Harness arm copies its checked-in profile out of the repo // mount, so the wrapper needs to find it under the fake system root. - const profileSource = join(root, 'opt/maka-agent/packages/eval/harbor/deepseek-harness-profile'); + const profileSource = join( + root, + 'opt/maka-agent/node_modules/@maka/eval/harbor/deepseek-harness-profile', + ); await mkdir(profileSource, { recursive: true }); for (const file of ['package.json', 'cordis.yml', 'cordis.patch.yml']) { await copyFile( @@ -998,8 +1001,8 @@ test('eight-arm spec adds Pi with the same pinned DeepSeek execution contract', ); assert.deepEqual(spec.executor.config.egressProxy, { composeSourceEnv: 'MAKA_EVAL_MAKA_BUNDLE_PATH', - composeRelativePath: 'packages/eval/harbor/docker-compose-egress-proxy.yaml', - networkPolicyRelativePath: 'packages/eval/harbor/egress-proxy/network-policy', + composeRelativePath: 'node_modules/@maka/eval/harbor/docker-compose-egress-proxy.yaml', + networkPolicyRelativePath: 'node_modules/@maka/eval/harbor/egress-proxy/network-policy', proxyUrl: 'http://maka-eval-mitmproxy:8080', allowedHost: 'maka-eval-mitmproxy', containerCaPath: '/opt/maka-egress/mitmproxy-ca-cert.pem', @@ -1310,8 +1313,8 @@ function experiment(): ExperimentSpec { test('pier cannot declare an egress proxy it never enforces', () => { const egressProxy = { composeSourceEnv: 'MAKA_TEST_BUNDLE', - composeRelativePath: 'packages/eval/harbor/docker-compose-egress-proxy.yaml', - networkPolicyRelativePath: 'packages/eval/harbor/egress-proxy/network-policy', + composeRelativePath: 'node_modules/@maka/eval/harbor/docker-compose-egress-proxy.yaml', + networkPolicyRelativePath: 'node_modules/@maka/eval/harbor/egress-proxy/network-policy', proxyUrl: 'http://maka-eval-mitmproxy:8080', allowedHost: 'maka-eval-mitmproxy', containerCaPath: '/opt/maka-egress/mitmproxy-ca-cert.pem', diff --git a/packages/eval/src/external-subject.ts b/packages/eval/src/external-subject.ts index 27a2c71173..5180aa8932 100644 --- a/packages/eval/src/external-subject.ts +++ b/packages/eval/src/external-subject.ts @@ -33,7 +33,8 @@ import { verifyToolchainDirectory, } from './toolchain-verification.js'; -const BUNDLED_EXTERNAL_WRAPPER = '/opt/maka-agent/packages/eval/dist/harbor-external-subject.js'; +const BUNDLED_EXTERNAL_WRAPPER = + '/opt/maka-agent/node_modules/@maka/eval/dist/harbor-external-subject.js'; export function createExternalSubjectAdapter(): SubjectAdapter { const verifiedToolchains = new Map(); diff --git a/packages/eval/src/harbor-external-subject.ts b/packages/eval/src/harbor-external-subject.ts index b4b58a59db..e2c0ceb8dc 100644 --- a/packages/eval/src/harbor-external-subject.ts +++ b/packages/eval/src/harbor-external-subject.ts @@ -69,7 +69,10 @@ const PROFILE_PREPARERS: Record Promise { env.OPENAI_API_KEY = 'maka-eval-local'; env.CODEX_HOME = home; - const catalog = rooted(root, '/opt/maka-agent/packages/eval/harbor/deepseek-codex-models.json'); + const catalog = rooted( + root, + '/opt/maka-agent/node_modules/@maka/eval/harbor/deepseek-codex-models.json', + ); await writeFile( join(home, 'config.toml'), [ @@ -261,7 +264,10 @@ const PROFILE_PREPARERS: Record Promise { } }); - test('release file declarations reject directories other than dist', () => { + test('release file declarations accept a declared directory and reject non-regular entries', () => { const workspace = mkdtempSync(join(tmpdir(), 'maka-release-files-')); try { mkdirSync(join(workspace, 'dist')); mkdirSync(join(workspace, 'runtime-assets')); + writeFileSync(join(workspace, 'runtime-assets', 'profile.yml'), 'a: 1'); + // A declared directory is allowed (the whole tree ships) ... + assert.deepEqual( + resolveWorkspaceReleaseFiles(workspace, { + name: '@maka/example', + releaseFiles: ['dist', 'runtime-assets'], + }), + ['dist', 'runtime-assets'], + ); + // ... but a missing entry is still rejected. assert.throws( () => resolveWorkspaceReleaseFiles(workspace, { name: '@maka/example', - releaseFiles: ['dist', 'runtime-assets'], + releaseFiles: ['dist', 'absent'], }), - /must be a regular file/u, + /release file is missing/u, ); } finally { rmSync(workspace, { recursive: true, force: true }); diff --git a/scripts/release-cli-package.mjs b/scripts/release-cli-package.mjs index 3ca6e535d2..c3976e694c 100644 --- a/scripts/release-cli-package.mjs +++ b/scripts/release-cli-package.mjs @@ -151,7 +151,6 @@ function packageCli(publishable) { copyCliRuntime(); copyRuntimeHostPeerPrebuilds(publishable); const expectedDependencyManifests = copyDependencyClosure(cli); - copyEvalMirror(); copyReleaseDocuments(); writeReleaseManifest(cli, publishable); validateStaging(publishable); @@ -430,7 +429,7 @@ function copyInternalPackage(source, destination) { writeFileSync(join(destination, 'package.json'), `${JSON.stringify(releaseManifest, null, 2)}\n`); for (const releaseFile of resolveWorkspaceReleaseFiles(source, manifest)) { if (releaseFile === 'dist') copyRuntimeDist(source, destination, manifest.name); - else copyDeclaredFile(source, destination, releaseFile); + else copyDeclaredReleaseFile(source, destination, releaseFile); } } @@ -500,17 +499,6 @@ function pruneNodePtyBuildInputs(destination) { } } -function copyEvalMirror() { - const stagedEval = join(stageRoot, 'node_modules/@maka/eval'); - const mirror = join(stageRoot, 'packages/eval'); - cpSync(stagedEval, mirror, { - recursive: true, - preserveTimestamps: true, - filter: (path) => - path === stagedEval || !relative(stagedEval, path).split(sep).includes('node_modules'), - }); -} - function copyReleaseDocuments() { const readme = readFileSync(join(cliSource, 'README.md'), 'utf8'); const readmeZhCn = readFileSync(join(cliSource, 'README.zh-CN.md'), 'utf8'); @@ -684,7 +672,6 @@ function writeReleaseManifest(cli, publishable) { files: [ 'dist', 'native', - 'packages/eval', 'README.md', 'README.zh-CN.md', 'LICENSE', @@ -730,9 +717,9 @@ function validateStaging(publishable) { 'RUNTIME_HOST_PEER_THIRD_PARTY_NOTICES.txt', 'node_modules/@maka/runtime/dist/workers/filesystem-worker.js', 'node_modules/@maka/runtime-host/dist/execution-candidate-main.js', - 'packages/eval/dist/harbor-external-subject.js', - 'packages/eval/harbor/relay_agent.py', - 'packages/eval/harbor/docker-compose-egress-proxy.yaml', + 'node_modules/@maka/eval/dist/harbor-external-subject.js', + 'node_modules/@maka/eval/harbor/relay_agent.py', + 'node_modules/@maka/eval/harbor/docker-compose-egress-proxy.yaml', 'node_modules/node-pty/prebuilds/linux-x64/pty.node', 'node_modules/node-pty/prebuilds/darwin-arm64/pty.node', 'node_modules/node-pty/prebuilds/win32-x64/conpty.node', @@ -811,7 +798,6 @@ function validatePackedFiles(files, expectedDependencyManifests, publishable) { const segments = path.split('/'); const makaOwned = path.startsWith('dist/') || - path.startsWith('packages/eval/') || (segments[0] === 'node_modules' && segments[1] === '@maka' && segments[3] !== 'node_modules'); if (makaOwned && isMakaDevelopmentArtifact(path)) { throw new Error(`Development artifact escaped into the tarball: ${path}`); @@ -835,7 +821,7 @@ function validatePackedFiles(files, expectedDependencyManifests, publishable) { 'DISCLAIMER-WIP', 'node_modules/@maka/runtime/dist/workers/filesystem-worker.js', 'node_modules/@maka/runtime-host/dist/execution-candidate-main.js', - 'packages/eval/harbor/relay_agent.py', + 'node_modules/@maka/eval/harbor/relay_agent.py', ...(publishable || privatePeerTarget !== 'none' ? ['native/runtime-host-peer/prebuilds/'] : []), ]; for (const suffix of requiredPacked) { @@ -877,14 +863,24 @@ function findDependency(root, name, version) { return result; } -function copyDeclaredFile(source, destination, relativePath) { +function copyDeclaredReleaseFile(source, destination, relativePath) { const from = join(source, relativePath); - if (!existsSync(from) || !statSync(from).isFile()) { - throw new Error(`Declared Eval runtime asset is missing: ${from}`); + if (!existsSync(from)) throw new Error(`Declared release asset is missing: ${from}`); + const entry = statSync(from); + if (entry.isDirectory()) { + for (const child of readdirSync(from, { withFileTypes: true })) { + if (child.isSymbolicLink()) { + throw new Error(`Declared release directory contains a symlink: ${join(from, child.name)}`); + } + copyDeclaredReleaseFile(source, destination, join(relativePath, child.name)); + } + } else if (entry.isFile()) { + const to = join(destination, relativePath); + mkdirSync(dirname(to), { recursive: true, mode: 0o755 }); + copyFileSync(from, to); + } else { + throw new Error(`Declared release asset is not a regular file or directory: ${from}`); } - const to = join(destination, relativePath); - mkdirSync(dirname(to), { recursive: true, mode: 0o755 }); - copyFileSync(from, to); } function copyTreeFiles(source, destination, allow) { diff --git a/scripts/smoke-release-cli-package.mjs b/scripts/smoke-release-cli-package.mjs index 256120c2b6..774a1832d8 100644 --- a/scripts/smoke-release-cli-package.mjs +++ b/scripts/smoke-release-cli-package.mjs @@ -400,8 +400,8 @@ function validateInstalledRuntimeFiles(packageRoot) { 'node_modules/@maka/runtime/dist/workers/filesystem-worker.js', 'node_modules/@maka/runtime-host/dist/execution-candidate-main.js', 'node_modules/@maka/eval/dist/index.js', - 'packages/eval/harbor/relay_agent.py', - 'packages/eval/harbor/egress-proxy/network-policy', + 'node_modules/@maka/eval/harbor/relay_agent.py', + 'node_modules/@maka/eval/harbor/egress-proxy/network-policy', ]) { if (!existsSync(join(packageRoot, path))) { throw new Error(`Installed runtime file is missing: ${path}`); diff --git a/scripts/verify-macos-arm64-cli.mjs b/scripts/verify-macos-arm64-cli.mjs index 137ae9adc1..12c187b970 100644 --- a/scripts/verify-macos-arm64-cli.mjs +++ b/scripts/verify-macos-arm64-cli.mjs @@ -302,8 +302,8 @@ async function smokePackagedEval(archiveRoot, sourceCommit, environment, run) { mounts: [], egressProxy: { composeSourceEnv: 'MAKA_EVAL_MAKA_BUNDLE_PATH', - composeRelativePath: 'packages/eval/harbor/docker-compose-egress-proxy.yaml', - networkPolicyRelativePath: 'packages/eval/harbor/egress-proxy/network-policy', + composeRelativePath: 'node_modules/@maka/eval/harbor/docker-compose-egress-proxy.yaml', + networkPolicyRelativePath: 'node_modules/@maka/eval/harbor/egress-proxy/network-policy', proxyUrl: 'http://maka-eval-mitmproxy:8080', allowedHost: 'maka-eval-mitmproxy', containerCaPath: '/opt/maka-egress/mitmproxy-ca-cert.pem',