From 376d3a43b84f35287b03b793c001f5d91c96794c Mon Sep 17 00:00:00 2001 From: Andrey Avtomonov Date: Mon, 11 May 2026 10:19:04 +0200 Subject: [PATCH] Refine Conductor setup script structure --- scripts/conductor-scripts.test.mjs | 5 +- scripts/conductor-setup.sh | 64 +++++++++++++------ ...or-workspace.sh => link-agent-overlays.sh} | 0 3 files changed, 48 insertions(+), 21 deletions(-) rename scripts/{setup-conductor-workspace.sh => link-agent-overlays.sh} (100%) diff --git a/scripts/conductor-scripts.test.mjs b/scripts/conductor-scripts.test.mjs index 43889f4e..77ab9c4d 100644 --- a/scripts/conductor-scripts.test.mjs +++ b/scripts/conductor-scripts.test.mjs @@ -27,11 +27,12 @@ describe('Conductor workspace scripts', () => { assert.match(setupScript, /pnpm run native:rebuild/); assert.match(setupScript, /pnpm run build/); assert.match(setupScript, /packages\/cli\/dist\/bin\.js dev doctor setup --no-input/); - assert.match(setupScript, /sh scripts\/setup-conductor-workspace\.sh/); + assert.match(setupScript, /link_agent_overlays/); + assert.match(setupScript, /sh scripts\/link-agent-overlays\.sh/); }); it('links private agent overlays when KAELIO_SKILLS_ROOT is set', async () => { - const workspaceScript = await readText('scripts/setup-conductor-workspace.sh'); + const workspaceScript = await readText('scripts/link-agent-overlays.sh'); assert.match(workspaceScript, /KAELIO_SKILLS_ROOT/); assert.match(workspaceScript, /agents_source="\$\{KAELIO_SKILLS_ROOT\}\/\.agents"/); diff --git a/scripts/conductor-setup.sh b/scripts/conductor-setup.sh index 9d94a44b..5cba7a82 100755 --- a/scripts/conductor-setup.sh +++ b/scripts/conductor-setup.sh @@ -82,31 +82,57 @@ resolve_uv_for_project() { printf '%s\n' "$workspace_uv" } -echo "=== Conductor KTX workspace setup ===" +link_agent_overlays() { + sh scripts/link-agent-overlays.sh +} -sh scripts/setup-conductor-workspace.sh +link_root_env_file() { + if [ -n "${CONDUCTOR_ROOT_PATH:-}" ] && [ -f "$CONDUCTOR_ROOT_PATH/.env" ]; then + ln -sf "$CONDUCTOR_ROOT_PATH/.env" .env + echo "Linked .env" + fi +} -if [ -n "${CONDUCTOR_ROOT_PATH:-}" ] && [ -f "$CONDUCTOR_ROOT_PATH/.env" ]; then - ln -sf "$CONDUCTOR_ROOT_PATH/.env" .env - echo "Linked .env" -fi +install_python_dependencies() { + KTX_UV_BIN="$(resolve_uv_for_project "pyproject.toml")" + export PATH="$(dirname "$KTX_UV_BIN"):$PATH" -KTX_UV_BIN="$(resolve_uv_for_project "pyproject.toml")" -export PATH="$(dirname "$KTX_UV_BIN"):$PATH" + echo "Installing KTX Python dependencies..." + uv sync --all-packages --all-groups +} -echo "Installing KTX Python dependencies..." -uv sync --all-packages --all-groups +install_js_dependencies() { + echo "Installing KTX JS dependencies..." + pnpm install --frozen-lockfile --prefer-offline +} -echo "Installing KTX JS dependencies..." -pnpm install --frozen-lockfile --prefer-offline +rebuild_native_dependencies() { + echo "Rebuilding native JS dependencies..." + pnpm run native:rebuild +} -echo "Rebuilding native JS dependencies..." -pnpm run native:rebuild +build_workspace() { + echo "Building KTX packages..." + pnpm run build +} -echo "Building KTX packages..." -pnpm run build +run_setup_doctor() { + echo "Running KTX setup doctor..." + node packages/cli/dist/bin.js dev doctor setup --no-input +} -echo "Running KTX setup doctor..." -node packages/cli/dist/bin.js dev doctor setup --no-input +main() { + echo "=== Conductor KTX workspace setup ===" -echo "=== Setup complete ===" + link_agent_overlays + link_root_env_file + install_python_dependencies + install_js_dependencies + rebuild_native_dependencies + build_workspace + run_setup_doctor + + echo "=== Setup complete ===" +} + +main "$@" diff --git a/scripts/setup-conductor-workspace.sh b/scripts/link-agent-overlays.sh similarity index 100% rename from scripts/setup-conductor-workspace.sh rename to scripts/link-agent-overlays.sh