Removed - sentinel for Qwen CLI (#1332)
Some checks failed
ci / Packaged mac smoke (push) Blocked by required conditions
ci / Packaged windows smoke (push) Blocked by required conditions
ci / Detect PR change scopes (push) Failing after 1s
ci / Validate workspace (push) Has been skipped
Docker image / build-and-push (push) Failing after 10s
nix-check / build (push) Failing after 2s
ci / Packaged linux headless smoke (push) Has been skipped

* Removed - sentinel for Qwen CLI

* Addressed reviewer's comments

* Removed IDE config file

* Removed IDE file
This commit is contained in:
Sam Morreel 2026-05-15 22:07:32 -06:00 committed by GitHub
parent 57372a7519
commit 70e5ea6f70
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 25 additions and 3 deletions

View file

@ -11,15 +11,17 @@ export const qwenAgentDef = {
{ id: 'qwen3-coder-plus', label: 'qwen3-coder-plus' },
{ id: 'qwen3-coder-flash', label: 'qwen3-coder-flash' },
],
// Prompt delivered via stdin (`qwen -`) to avoid Windows
// Prompt delivered via stdin (gated by `promptViaStdin: true`) to avoid Windows
// `spawn ENAMETOOLONG` for large composed prompts. Qwen Code is a
// Gemini-CLI fork and supports the same `--yolo` non-interactive mode.
// Qwen Code reads from piped stdin when no positional prompt is supplied.
// Current Qwen treats/rejects a bare `-` rather than needing it as a stdin sentinel.
buildArgs: (_prompt, _imagePaths, _extra, options = {}) => {
const args = ['--yolo'];
if (options.model && options.model !== 'default') {
args.push('--model', options.model);
}
args.push('-');
return args;
},
promptViaStdin: true,

View file

@ -1,6 +1,6 @@
import { test } from 'vitest';
import {
assert, claude, codex, copilot, cursorAgent, deepseek, devin, detectAgents, gemini, join, kilo, kiro, mkdtempSync, opencode, pi, qoder, rmSync, spawnEnvForAgent, tmpdir, vibe, writeFileSync, chmodSync,
assert, claude, codex, copilot, cursorAgent, deepseek, devin, detectAgents, gemini, join, kilo, kiro, mkdtempSync, opencode, pi, qoder, qwen, rmSync, spawnEnvForAgent, tmpdir, vibe, writeFileSync, chmodSync,
} from './helpers/test-helpers.js';
import type { TestAgentDef } from './helpers/test-helpers.js';
@ -431,6 +431,25 @@ test('detectAgents keeps qoder unavailable with fallback metadata when qodercli
}
});
test('qwen args check promptViaStdin, base args, model args and exclude `-` sentinel', () => {
assert.equal(qwen.promptViaStdin, true);
const baseArgs = qwen.buildArgs('', [], [], {}, { cwd: '/tmp/od-project' });
assert.deepEqual(baseArgs, ['--yolo']);
assert.equal(baseArgs.includes('-'), false);
const withModel = qwen.buildArgs(
'',
[],
[],
{ model: 'qwen3-coder-plus' },
{ cwd: '/tmp/od-project' },
);
assert.deepEqual(withModel, ['--yolo', '--model', 'qwen3-coder-plus']);
assert.equal(withModel.includes('-'), false);
});
test('kiro fetchModels falls back to fallbackModels when detection fails', async () => {
// fetchModels rejects when the binary doesn't exist; the daemon's
// probe() catches this and uses fallbackModels instead.

View file

@ -84,6 +84,7 @@ export const pi = requireAgent('pi');
export const deepseek = requireAgent('deepseek');
export const gemini = requireAgent('gemini');
export const qoder = requireAgent('qoder');
export const qwen = requireAgent('qwen');
export const opencode = requireAgent('opencode');
export const deepseekMaxPromptArgBytes = (() => {
assert.ok(