diff --git a/.github/workflows/ci-closed-pr-caches.yml b/.github/workflows/ci-closed-pr-caches.yml index 27b5f16945a..a2091211188 100644 --- a/.github/workflows/ci-closed-pr-caches.yml +++ b/.github/workflows/ci-closed-pr-caches.yml @@ -10,7 +10,7 @@ permissions: jobs: clean: - runs-on: blacksmith-2vcpu-ubuntu-2204 + runs-on: ubuntu-22.04 timeout-minutes: 5 steps: - name: Cancel obsolete PR checks diff --git a/.github/workflows/ci-runner-demand.yml b/.github/workflows/ci-runner-demand.yml index b64828369b5..f9f063ff37d 100644 --- a/.github/workflows/ci-runner-demand.yml +++ b/.github/workflows/ci-runner-demand.yml @@ -15,7 +15,7 @@ concurrency: jobs: report: - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 15 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/ci-xterm-cache.yml b/.github/workflows/ci-xterm-cache.yml index 27a02178c69..dc0b17bcbcd 100644 --- a/.github/workflows/ci-xterm-cache.yml +++ b/.github/workflows/ci-xterm-cache.yml @@ -23,7 +23,15 @@ env: jobs: seed: if: github.ref == 'refs/heads/main' - runs-on: blacksmith-4vcpu-ubuntu-2404-arm + # Blacksmith and GitHub keep separate cache stores; seed the same key in both for either consumer pool. + strategy: + fail-fast: false + matrix: + runner: [blacksmith-4vcpu-ubuntu-2404-arm, ubuntu-24.04-arm] + concurrency: + group: xterm-cache-seed-${{ github.ref }}-${{ matrix.runner }} + cancel-in-progress: true + runs-on: ${{ matrix.runner }} timeout-minutes: 10 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/cloud-verify.yml b/.github/workflows/cloud-verify.yml index 80d24392106..73417c945a4 100644 --- a/.github/workflows/cloud-verify.yml +++ b/.github/workflows/cloud-verify.yml @@ -34,7 +34,7 @@ jobs: security: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true name: Secret scan - runs-on: blacksmith-4vcpu-ubuntu-2204 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: @@ -83,7 +83,7 @@ jobs: # Compile without Postgres: no database access occurs here, avoiding ~13s service startup. build: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true - runs-on: blacksmith-4vcpu-ubuntu-2204 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 @@ -111,7 +111,7 @@ jobs: containers: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true name: Container security (${{ matrix.app }}) - runs-on: blacksmith-4vcpu-ubuntu-2204 + runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: @@ -170,7 +170,7 @@ jobs: # Run tests beside build; pretest hooks compile their own workspace dependencies. test: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true - runs-on: blacksmith-4vcpu-ubuntu-2204 + runs-on: ubuntu-22.04 services: postgres: image: postgres:16-alpine diff --git a/.github/workflows/computer-e2e.yml b/.github/workflows/computer-e2e.yml index c1cd9fd6416..23c7f739b15 100644 --- a/.github/workflows/computer-e2e.yml +++ b/.github/workflows/computer-e2e.yml @@ -78,7 +78,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-22.04, windows-latest] - runs-on: ${{ fromJSON('{"ubuntu-22.04":"blacksmith-4vcpu-ubuntu-2204"}')[matrix.os] || matrix.os }} + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 with: @@ -136,7 +136,7 @@ jobs: run: node config/scripts/windows-daemon-workspace-close-repro.mjs linux: if: github.event_name != 'pull_request' - runs-on: blacksmith-4vcpu-ubuntu-2204 + runs-on: ubuntu-22.04 env: ORCA_COMPUTER_E2E: '1' ACCESSIBILITY_ENABLED: '1' diff --git a/.github/workflows/computer-macos-native.yml b/.github/workflows/computer-macos-native.yml index 4336535aefa..472822d1de2 100644 --- a/.github/workflows/computer-macos-native.yml +++ b/.github/workflows/computer-macos-native.yml @@ -1,6 +1,6 @@ name: Computer-use macOS native -# Split from computer-e2e.yml so CLI/daemon-only PRs skip the paid macOS runner: this job builds the +# Split from computer-e2e.yml so CLI/daemon-only PRs skip the macOS runner: this job builds the # Swift helper and forks out/main/computer-sidecar.js, whose imports never reach src/cli or src/main/daemon. on: pull_request: @@ -37,7 +37,7 @@ jobs: # grants. Keep the real native build/owner-loss checks on every matching trigger instead. mac-native-owner-smoke: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true - runs-on: blacksmith-6vcpu-macos-15 + runs-on: macos-15 permissions: contents: read steps: diff --git a/.github/workflows/dependency-security.yml b/.github/workflows/dependency-security.yml index 6362d7146ec..e7fc3f27a26 100644 --- a/.github/workflows/dependency-security.yml +++ b/.github/workflows/dependency-security.yml @@ -30,7 +30,7 @@ on: runner: description: Runner override for GitHub-hosted signing provenance. type: string - default: blacksmith-4vcpu-ubuntu-2404 + default: ubuntu-24.04 secrets: SLACK_WEBHOOK_URL: description: Existing orca-releases incoming webhook @@ -50,7 +50,7 @@ env: jobs: javascript: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true - runs-on: ${{ inputs.runner || 'blacksmith-4vcpu-ubuntu-2404' }} + runs-on: ${{ inputs.runner || 'ubuntu-24.04' }} timeout-minutes: 15 outputs: audit_result: ${{ steps.audit.outcome }} @@ -85,7 +85,7 @@ jobs: rust: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true - runs-on: ${{ inputs.runner || 'blacksmith-4vcpu-ubuntu-2404' }} + runs-on: ${{ inputs.runner || 'ubuntu-24.04' }} timeout-minutes: 20 outputs: audit_result: ${{ steps.audit.outcome }} @@ -134,7 +134,7 @@ jobs: (needs.javascript.outputs.audit_result == 'failure' || needs.rust.outputs.audit_result == 'failure' || needs.javascript.result == 'failure' || needs.rust.result == 'failure') - runs-on: ${{ inputs.runner || 'blacksmith-4vcpu-ubuntu-2404' }} + runs-on: ${{ inputs.runner || 'ubuntu-24.04' }} timeout-minutes: 5 steps: - name: Send dependency review to orca-releases diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 8f7ae5d6df0..2c876199f4f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -38,7 +38,7 @@ jobs: check: name: Build and test if: github.event_name == 'pull_request' && github.event.pull_request.draft != true - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 15 steps: - name: Checkout pull request @@ -80,7 +80,7 @@ jobs: if: >- github.repository == 'stablyai/orca' && (github.event_name == 'release' || github.event_name == 'workflow_dispatch') - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 5 outputs: deploy: ${{ steps.validate.outputs.deploy }} @@ -200,7 +200,7 @@ jobs: needs.release_gate.result == 'success' && needs.release_gate.outputs.deploy == 'true' needs: release_gate - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 15 environment: name: docs-production diff --git a/.github/workflows/node-next-compat.yml b/.github/workflows/node-next-compat.yml index c66209614db..c820c708a92 100644 --- a/.github/workflows/node-next-compat.yml +++ b/.github/workflows/node-next-compat.yml @@ -21,7 +21,7 @@ jobs: fail-fast: false matrix: node: ['24', '26'] - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 steps: - name: Checkout @@ -42,4 +42,6 @@ jobs: uses: ./.github/workflows/unit-tests.yml with: node_versions: '["24", "26"]' + # Shards restore the native cache primed above, so both use the same hosted cache. + runner: ubuntu-24.04 shards: ${{ needs.unit_plan.outputs.shards }} diff --git a/.github/workflows/packaged-browser-e2e.yml b/.github/workflows/packaged-browser-e2e.yml index 0265de5d5a3..0ab3e6489ea 100644 --- a/.github/workflows/packaged-browser-e2e.yml +++ b/.github/workflows/packaged-browser-e2e.yml @@ -23,7 +23,7 @@ permissions: cache-mode: read jobs: compatibility: - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 25 steps: - uses: actions/checkout@v6 @@ -67,7 +67,7 @@ jobs: path: test-results/ retention-days: 3 layout-compat: - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 30 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/pi-owner-runtime.yml b/.github/workflows/pi-owner-runtime.yml index c245df8f643..da85f5b6637 100644 --- a/.github/workflows/pi-owner-runtime.yml +++ b/.github/workflows/pi-owner-runtime.yml @@ -21,7 +21,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - runs-on: ${{ fromJSON('{"ubuntu-latest":"blacksmith-4vcpu-ubuntu-2404","macos-latest":"blacksmith-6vcpu-macos-latest","windows-latest":"blacksmith-4vcpu-windows-2025"}')[matrix.os] || matrix.os }} + runs-on: ${{ matrix.os }} timeout-minutes: 20 env: ORCA_BACKGROUND_LAUNCH: '1' diff --git a/.github/workflows/pi-provider-runtime.yml b/.github/workflows/pi-provider-runtime.yml index 778448fc8eb..ac652d64e63 100644 --- a/.github/workflows/pi-provider-runtime.yml +++ b/.github/workflows/pi-provider-runtime.yml @@ -19,7 +19,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - runs-on: ${{ fromJSON('{"ubuntu-latest":"blacksmith-4vcpu-ubuntu-2404","macos-latest":"blacksmith-6vcpu-macos-latest","windows-latest":"blacksmith-4vcpu-windows-2025"}')[matrix.os] || matrix.os }} + runs-on: ${{ matrix.os }} timeout-minutes: 20 env: ORCA_BACKGROUND_LAUNCH: '1' diff --git a/.github/workflows/preflight-cli-platforms.yml b/.github/workflows/preflight-cli-platforms.yml index eed13e44624..2f77f269092 100644 --- a/.github/workflows/preflight-cli-platforms.yml +++ b/.github/workflows/preflight-cli-platforms.yml @@ -25,7 +25,7 @@ jobs: preflight: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true name: Preflight CLI (${{ matrix.os }}) - runs-on: ${{ fromJSON('{"ubuntu-22.04":"blacksmith-4vcpu-ubuntu-2204","macos-15":"blacksmith-6vcpu-macos-15","windows-2022":"blacksmith-4vcpu-windows-2025"}')[matrix.os] || matrix.os }} + runs-on: ${{ matrix.os }} timeout-minutes: 20 strategy: fail-fast: false diff --git a/.github/workflows/release-policy.yml b/.github/workflows/release-policy.yml index 180334b9571..bc6bb8136e2 100644 --- a/.github/workflows/release-policy.yml +++ b/.github/workflows/release-policy.yml @@ -16,7 +16,7 @@ concurrency: jobs: enforce: if: github.repository == 'stablyai/orca' - runs-on: blacksmith-2vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 5 steps: # Why: release events run this file from the tagged commit, so load the module from the same commit. diff --git a/.github/workflows/release-ref-validation.yml b/.github/workflows/release-ref-validation.yml index e7c837207a2..42a55772e53 100644 --- a/.github/workflows/release-ref-validation.yml +++ b/.github/workflows/release-ref-validation.yml @@ -25,7 +25,7 @@ jobs: fail-fast: false matrix: os: [macos-15, windows-2022] - runs-on: ${{ fromJSON('{"macos-15":"blacksmith-6vcpu-macos-15","windows-2022":"blacksmith-4vcpu-windows-2025"}')[matrix.os] || matrix.os }} + runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/ssh-hostile-hosts.yml b/.github/workflows/ssh-hostile-hosts.yml index 48fab51e8d2..10905dd86ab 100644 --- a/.github/workflows/ssh-hostile-hosts.yml +++ b/.github/workflows/ssh-hostile-hosts.yml @@ -53,7 +53,7 @@ jobs: glibc_slot: # A draft carries no verdict; readiness re-triggers this workflow. if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft != true }} - runs-on: blacksmith-4vcpu-ubuntu-2204 + runs-on: ubuntu-22.04 # Same glibc 2.28 builder as the headless-server floor lane, so the slot loads on Debian 10. container: quay.io/pypa/manylinux_2_28_x86_64@sha256:407f771c51a2c3e83ebe5a7970b4289ead3a6db21d9b9c089168775cad11d328 timeout-minutes: 25 @@ -96,7 +96,7 @@ jobs: musl_slot: if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft != true }} - runs-on: blacksmith-4vcpu-ubuntu-2204 + runs-on: ubuntu-22.04 timeout-minutes: 25 steps: - uses: actions/checkout@v6 @@ -138,7 +138,7 @@ jobs: # headless-server compat lane builds it (see linux_glibc217_compat in node-server-tests.yml). glibc217_slot: if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft != true }} - runs-on: blacksmith-4vcpu-ubuntu-2204 + runs-on: ubuntu-22.04 timeout-minutes: 25 env: ORCA_BACKGROUND_LAUNCH: '1' @@ -178,7 +178,7 @@ jobs: hosts: needs: [glibc_slot, musl_slot, glibc217_slot] - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 60 env: ORCA_BACKGROUND_LAUNCH: '1' diff --git a/.github/workflows/ssh-windows-hosts.yml b/.github/workflows/ssh-windows-hosts.yml index 1b4eb0cd03b..7e4b65a9ec5 100644 --- a/.github/workflows/ssh-windows-hosts.yml +++ b/.github/workflows/ssh-windows-hosts.yml @@ -90,7 +90,7 @@ concurrency: jobs: mobile_web_bundle: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 15 steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index acab67dae59..48272d15ba5 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -150,7 +150,7 @@ jobs: export ORCA_SHARD_SOURCE_SHA node config/scripts/run-vitest.mjs run --config config/vitest.config.ts \ --shard=${{ matrix.shard.index }}/${{ matrix.shard.count }} \ - ${{ inputs.runner == 'blacksmith-8vcpu-ubuntu-2404' && '--maxWorkers=8' || (runner.arch == 'ARM64' || inputs.runner == 'blacksmith-4vcpu-ubuntu-2404') && '--maxWorkers=4' || '' }} + ${{ inputs.runner == 'blacksmith-8vcpu-ubuntu-2404' && '--maxWorkers=8' || (runner.arch == 'ARM64' || inputs.runner == 'blacksmith-4vcpu-ubuntu-2404' || inputs.runner == 'ubuntu-24.04') && '--maxWorkers=4' || '' }} - name: Seal unit module cache id: module-cache-seal diff --git a/.github/workflows/windows-typecheck-parity.yml b/.github/workflows/windows-typecheck-parity.yml index b80b993eca8..4e69c84afe5 100644 --- a/.github/workflows/windows-typecheck-parity.yml +++ b/.github/workflows/windows-typecheck-parity.yml @@ -28,7 +28,7 @@ jobs: parity: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true name: Windows compiler diagnostics and file selection - runs-on: blacksmith-4vcpu-windows-2025 + runs-on: windows-2025 timeout-minutes: 40 env: ORCA_BACKGROUND_LAUNCH: '1' diff --git a/.github/workflows/wsl-orcad-e2e-frozen-runner-retry.yml b/.github/workflows/wsl-orcad-e2e-frozen-runner-retry.yml index ebc97fc8330..601e6de5f85 100644 --- a/.github/workflows/wsl-orcad-e2e-frozen-runner-retry.yml +++ b/.github/workflows/wsl-orcad-e2e-frozen-runner-retry.yml @@ -14,7 +14,7 @@ jobs: if: >- github.event.workflow_run.path == '.github/workflows/wsl-orcad-e2e.yml' && github.event.workflow_run.run_attempt == 1 && github.event.workflow_run.conclusion != 'success' - runs-on: blacksmith-2vcpu-ubuntu-2204 + runs-on: ubuntu-22.04 timeout-minutes: 5 permissions: actions: write diff --git a/.github/workflows/wsl-orcad-e2e.yml b/.github/workflows/wsl-orcad-e2e.yml index 678cbdc0830..a34f89e8258 100644 --- a/.github/workflows/wsl-orcad-e2e.yml +++ b/.github/workflows/wsl-orcad-e2e.yml @@ -69,7 +69,7 @@ jobs: template: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true name: Build the linux-x64-glibc orcad template - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 20 outputs: families: ${{ steps.scope.outcome == 'success' && steps.scope.outputs.families || '' }} @@ -119,7 +119,7 @@ jobs: container-rootfs: if: github.event_name != 'pull_request' || github.event.pull_request.draft != true name: Export ${{ matrix.family }} rootfs - runs-on: blacksmith-4vcpu-ubuntu-2404 + runs-on: ubuntu-24.04 timeout-minutes: 10 strategy: fail-fast: false diff --git a/.github/workflows/zcode-credential-contract.yml b/.github/workflows/zcode-credential-contract.yml index 22196e3cd7f..b9688b1bf9e 100644 --- a/.github/workflows/zcode-credential-contract.yml +++ b/.github/workflows/zcode-credential-contract.yml @@ -32,7 +32,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-22.04, macos-15, windows-2022] - runs-on: ${{ fromJSON('{"ubuntu-22.04":"blacksmith-4vcpu-ubuntu-2204","macos-15":"blacksmith-6vcpu-macos-15","windows-2022":"blacksmith-4vcpu-windows-2025"}')[matrix.os] || matrix.os }} + runs-on: ${{ matrix.os }} timeout-minutes: 20 env: ORCA_BACKGROUND_LAUNCH: '1' diff --git a/.github/workflows/zcode-transcript-contract.yml b/.github/workflows/zcode-transcript-contract.yml index dc98006b01e..4c27c29ab73 100644 --- a/.github/workflows/zcode-transcript-contract.yml +++ b/.github/workflows/zcode-transcript-contract.yml @@ -24,7 +24,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-22.04, macos-15, windows-2022] - runs-on: ${{ fromJSON('{"ubuntu-22.04":"blacksmith-4vcpu-ubuntu-2204","macos-15":"blacksmith-6vcpu-macos-15","windows-2022":"blacksmith-4vcpu-windows-2025"}')[matrix.os] || matrix.os }} + runs-on: ${{ matrix.os }} timeout-minutes: 20 env: ORCA_BACKGROUND_LAUNCH: '1' diff --git a/config/scripts/ci-unit-module-cache.test.mjs b/config/scripts/ci-unit-module-cache.test.mjs index 1b9da55fe70..af496f3ba7a 100644 --- a/config/scripts/ci-unit-module-cache.test.mjs +++ b/config/scripts/ci-unit-module-cache.test.mjs @@ -188,7 +188,7 @@ it('uses an optional exact restore after install and saves successful scoped pro expect(workflow.on.workflow_call.inputs.run_relay_integration.default).toBe(true) }) -it('retains four workers on ARM and the four-core Blacksmith unit runner', () => { +it('retains four workers on ARM and the four-core x64 unit runners', () => { const workflow = parse(readFileSync('.github/workflows/unit-tests.yml', 'utf8')) const step = workflow.jobs.test.steps.find((step) => step.name === 'Test shard') const expression = [...step.run.matchAll(/\$\{\{(.+?)\}\}/g)].find((match) => @@ -197,7 +197,8 @@ it('retains four workers on ARM and the four-core Blacksmith unit runner', () => for (const [arch, runner] of [ ['ARM64', 'ubuntu-24.04-arm'], ['ARM64', 'blacksmith-4vcpu-ubuntu-2404-arm'], - ['X64', 'blacksmith-4vcpu-ubuntu-2404'] + ['X64', 'blacksmith-4vcpu-ubuntu-2404'], + ['X64', 'ubuntu-24.04'] ]) { expect(runInNewContext(expression, { runner: { arch }, inputs: { runner } })).toBe( '--maxWorkers=4' diff --git a/config/scripts/ssh-windows-mobile-bundle.test.mjs b/config/scripts/ssh-windows-mobile-bundle.test.mjs index 9e1d6e2a09c..ebed000ae8d 100644 --- a/config/scripts/ssh-windows-mobile-bundle.test.mjs +++ b/config/scripts/ssh-windows-mobile-bundle.test.mjs @@ -20,7 +20,7 @@ const verify = consumer.steps.find( ) it('binds the bundle to the same run and source across architectures and retry attempts', () => { - expect(producer['runs-on']).toBe('blacksmith-4vcpu-ubuntu-2404') + expect(producer['runs-on']).toBe('ubuntu-24.04') for (const job of [producer, consumer]) { expect( job.steps.find((step) => step.uses?.startsWith('actions/checkout')).with.ref diff --git a/tests/tools/pi-provider-runtime-smoke.mjs b/tests/tools/pi-provider-runtime-smoke.mjs index dd1bbffd08a..7f3402d5e39 100644 --- a/tests/tools/pi-provider-runtime-smoke.mjs +++ b/tests/tools/pi-provider-runtime-smoke.mjs @@ -1,6 +1,6 @@ import assert from 'node:assert/strict' import { once } from 'node:events' -import { mkdtemp, mkdir, writeFile, rm } from 'node:fs/promises' +import { mkdtemp, mkdir, writeFile, rm, symlink } from 'node:fs/promises' import { createServer } from 'node:http' import { spawn } from 'node:child_process' import { createInterface } from 'node:readline' @@ -44,7 +44,11 @@ const server = createServer(async (req, res) => { res.end('data: [DONE]\n\n') }) try { - const bundle = join(scratch, 'orca.cjs') + const bundleDir = join(scratch, 'bundle') + await mkdir(bundleDir) + // The bundle keeps packages external, so it must resolve them from the repo's node_modules. + await symlink(resolve('node_modules'), join(bundleDir, 'node_modules'), 'junction') + const bundle = join(bundleDir, 'orca.cjs') await build({ stdin: { contents: "export {planCommitMessageGeneration} from './src/shared/commit-message-plan';",