mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
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.
29 lines
1.2 KiB
TypeScript
29 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 examples/repl-agent: boot the real example
|
|
* through the stdio-agent bin and its `cordis.yml`, then close stdin without a
|
|
* prompt and assert the banner. The dummy key satisfies adapter construction;
|
|
* immediate EOF guarantees there is no model call.
|
|
*/
|
|
|
|
const binScript = fileURLToPath(new URL('../../../packages/examples/stdio-demo/src/bin.ts', import.meta.url))
|
|
const configPath = fileURLToPath(new URL('../cordis.yml', import.meta.url))
|
|
const tsconfigPath = fileURLToPath(new URL('../../../tsconfig.json', import.meta.url))
|
|
|
|
describe('repl-agent keyless smoke (real cordis.yml via the Loader)', () => {
|
|
it('boots the full plugin tree, prints its banner, and exits cleanly on EOF', async () => {
|
|
const { stdout } = await runLoaderSmoke({
|
|
label: 'repl-agent',
|
|
tempDirPrefix: 'repl-smoke-',
|
|
binScript,
|
|
configPath,
|
|
tsconfigPath,
|
|
env: { DEEPSEEK_API_KEY: 'keyless-smoke-no-call' },
|
|
})
|
|
expect(stdout).toContain('agent REPL ready.')
|
|
}, LOADER_SMOKE_TEST_TIMEOUT_MS)
|
|
})
|