Name the runnable leaf for the line-oriented front door it owns, matching the existing tui-agent and acp-agent organization. Move the complete config, Code Mode overlay, tests, metadata, and generated composition graph together, then update every loader path and repository reference. Keep the shared model identity independent of its terminal front door by phrasing the persona as a coding-agent role rather than retaining the retired leaf name. Regenerate graph and tool catalogs and re-record each affected bilingual pair so derived documentation cannot point at the removed path.
28 lines
1.2 KiB
TypeScript
28 lines
1.2 KiB
TypeScript
import { fileURLToPath } from 'node:url'
|
|
import { describe, expect, it } from 'vitest'
|
|
import { LOADER_SMOKE_TEST_TIMEOUT_MS, runLoaderSmoke } from '@deepseek-ai/dsh-loader-smoke'
|
|
|
|
/**
|
|
* Keyless Loader-path smoke for the Code Mode overlay: boot the real include
|
|
* tree through stdio-agent and `code-mode.cordis.yml`, then close stdin without
|
|
* a prompt and assert the banner. No model or `run_code` turn runs.
|
|
*/
|
|
|
|
const binScript = fileURLToPath(new URL('../../../packages/examples/stdio-demo/src/bin.ts', import.meta.url))
|
|
const configPath = fileURLToPath(new URL('../code-mode.cordis.yml', import.meta.url))
|
|
const tsconfigPath = fileURLToPath(new URL('../../../tsconfig.json', import.meta.url))
|
|
|
|
describe('code-mode overlay keyless smoke (real code-mode.cordis.yml via the Loader)', () => {
|
|
it('boots the Code Mode plugin tree, prints its banner, and exits cleanly on EOF', async () => {
|
|
const { stdout } = await runLoaderSmoke({
|
|
label: 'code-mode overlay',
|
|
tempDirPrefix: 'code-mode-smoke-',
|
|
binScript,
|
|
configPath,
|
|
tsconfigPath,
|
|
env: { DEEPSEEK_API_KEY: 'keyless-smoke-no-call' },
|
|
})
|
|
expect(stdout).toContain('code-mode agent ready.')
|
|
}, LOADER_SMOKE_TEST_TIMEOUT_MS)
|
|
})
|