From e3e54d67d673b852f904e78cd3fad22ccd3613c5 Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Fri, 15 May 2026 14:54:58 -0400 Subject: [PATCH] fix(3567): load SDK bridge via public package export --- .../bin/lib/state-command-router.cjs | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/get-shit-done/bin/lib/state-command-router.cjs b/get-shit-done/bin/lib/state-command-router.cjs index ee472bb0d..0eadad42a 100644 --- a/get-shit-done/bin/lib/state-command-router.cjs +++ b/get-shit-done/bin/lib/state-command-router.cjs @@ -5,21 +5,22 @@ const { routeCjsCommandFamily } = require('./cjs-command-router-adapter.cjs'); const { output } = require('./core.cjs'); // ─── SDK bridge (Phase 5.1) ───────────────────────────────────────────────── -// executeForCjs requires the compiled dist artifact. The require() path is -// resolved from gsd-tools.cjs's node_modules rather than this file's location, -// so we use a lazy require to avoid resolution errors on environments that -// haven't built the SDK yet. +// executeForCjs is loaded lazily from the SDK public package export so this +// router does not rely on private dist subpaths that are not exported. let _executeForCjs = null; let _formatStateLoadRawStdout = null; function tryLoadSdk() { if (_executeForCjs !== null) return true; try { - const bridgeModule = require('@gsd-build/sdk/dist/runtime-bridge-sync/index.js'); - _executeForCjs = bridgeModule.executeForCjs; - // formatStateLoadRawStdout is in state-project-load (re-exported from SDK dist) - const loadModule = require('@gsd-build/sdk/dist/query/state-project-load.js'); - _formatStateLoadRawStdout = loadModule.formatStateLoadRawStdout; + const sdkModule = require('@gsd-build/sdk'); + _executeForCjs = sdkModule.executeForCjs; + _formatStateLoadRawStdout = sdkModule.formatStateLoadRawStdout; + if (typeof _executeForCjs !== 'function' || typeof _formatStateLoadRawStdout !== 'function') { + _executeForCjs = null; + _formatStateLoadRawStdout = null; + return false; + } return true; } catch { return false;