From 5e0d804d8f0ec178ddd3966238c36332a5ca5c6f Mon Sep 17 00:00:00 2001 From: Tom Boucher Date: Sun, 24 May 2026 22:03:54 -0400 Subject: [PATCH] fix(#184): preserve query init compatibility while migrating handlers --- sdk/src/query/init-complex.ts | 1 + sdk/src/query/init.ts | 1 + tests/bug-3751-init-local-agents.test.cjs | 14 +++++++------- 3 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 sdk/src/query/init-complex.ts create mode 100644 sdk/src/query/init.ts diff --git a/sdk/src/query/init-complex.ts b/sdk/src/query/init-complex.ts new file mode 100644 index 000000000..0df7f1f38 --- /dev/null +++ b/sdk/src/query/init-complex.ts @@ -0,0 +1 @@ +export * from '../handlers/init/complex.js'; diff --git a/sdk/src/query/init.ts b/sdk/src/query/init.ts new file mode 100644 index 000000000..b97fe1c0c --- /dev/null +++ b/sdk/src/query/init.ts @@ -0,0 +1 @@ +export * from '../handlers/init/composer.js'; diff --git a/tests/bug-3751-init-local-agents.test.cjs b/tests/bug-3751-init-local-agents.test.cjs index 9cad9a557..87ab716f2 100644 --- a/tests/bug-3751-init-local-agents.test.cjs +++ b/tests/bug-3751-init-local-agents.test.cjs @@ -63,12 +63,12 @@ const helpersTs = fs.readFileSync( ); const initTs = fs.readFileSync( - path.join(__dirname, '../sdk/src/query/init.ts'), + path.join(__dirname, '../sdk/src/handlers/init/composer.ts'), 'utf-8', ); const initComplexTs = fs.readFileSync( - path.join(__dirname, '../sdk/src/query/init-complex.ts'), + path.join(__dirname, '../sdk/src/handlers/init/complex.ts'), 'utf-8', ); @@ -140,8 +140,8 @@ describe('#3751: resolveAgentsDir() repo-local fallback — structural contracts ); }); - // ─── Contract 5: init.ts passes projectDir to resolveAgentsDir ────────── - test('init.ts checkAgentsInstalled passes projectDir to resolveAgentsDir', () => { + // ─── Contract 5: init composer passes projectDir to resolveAgentsDir ───── + test('init composer checkAgentsInstalled passes projectDir to resolveAgentsDir', () => { // After fix: resolveAgentsDir must be called with projectDir (not just runtime) // The call site at init.ts must thread projectDir through. // We verify either checkAgentsInstalled gains projectDir param or @@ -151,12 +151,12 @@ describe('#3751: resolveAgentsDir() repo-local fallback — structural contracts const checkFnBody = initTs.slice(checkFnStart, checkFnEnd === -1 ? undefined : checkFnEnd); assert.ok( checkFnBody.includes('projectDir') || checkFnBody.includes('resolveAgentsDir(runtime, '), - 'checkAgentsInstalled in init.ts must pass projectDir to resolveAgentsDir (#3751)', + 'checkAgentsInstalled in init composer must pass projectDir to resolveAgentsDir (#3751)', ); }); - // ─── Contract 6: init-complex.ts passes projectDir to resolveAgentsDir ── - test('init-complex.ts initNewProject passes projectDir to resolveAgentsDir', () => { + // ─── Contract 6: init complex passes projectDir to resolveAgentsDir ────── + test('init complex initNewProject passes projectDir to resolveAgentsDir', () => { const callIdx = initComplexTs.indexOf('resolveAgentsDir(runtime)'); assert.strictEqual( callIdx,