mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-05-02 21:50:52 +00:00
feat(arena): Add agent collaboration arena feature
Introduces a new Arena system for running multiple AI agents in parallel terminal sessions with support for iTerm and Tmux backends. Core: - Add ArenaManager and ArenaAgentClient for orchestrating multi-agent sessions - Add terminal backends (ITermBackend, TmuxBackend) with feature detection - Add git worktree service for isolated agent workspaces - Add arena event system for real-time status updates CLI: - Add /arena command with start, stop, status, and select subcommands - Add Arena dialogs (Select, Start, Status, Stop) - Add ArenaCards component for displaying parallel agent outputs - Consolidate message components into StatusMessages and ConversationMessages - Add MultiSelect component for agent selection Config: - Add arena-related settings to schema and config Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
6bc37c6c23
commit
6b55c8161f
73 changed files with 11225 additions and 417 deletions
|
|
@ -7,6 +7,7 @@
|
|||
import { useCallback, useMemo, useEffect, useState } from 'react';
|
||||
import { type PartListUnion } from '@google/genai';
|
||||
import type { UseHistoryManagerReturn } from './useHistoryManager.js';
|
||||
import type { ArenaDialogType } from './useArenaCommand.js';
|
||||
import {
|
||||
type Logger,
|
||||
type Config,
|
||||
|
|
@ -64,6 +65,7 @@ const SLASH_COMMANDS_SKIP_RECORDING = new Set([
|
|||
|
||||
interface SlashCommandProcessorActions {
|
||||
openAuthDialog: () => void;
|
||||
openArenaDialog?: (type: Exclude<ArenaDialogType, null>) => void;
|
||||
openThemeDialog: () => void;
|
||||
openEditorDialog: () => void;
|
||||
openSettingsDialog: () => void;
|
||||
|
|
@ -395,6 +397,18 @@ export const useSlashCommandProcessor = (
|
|||
return { type: 'handled' };
|
||||
case 'dialog':
|
||||
switch (result.dialog) {
|
||||
case 'arena_start':
|
||||
actions.openArenaDialog?.('start');
|
||||
return { type: 'handled' };
|
||||
case 'arena_select':
|
||||
actions.openArenaDialog?.('select');
|
||||
return { type: 'handled' };
|
||||
case 'arena_stop':
|
||||
actions.openArenaDialog?.('stop');
|
||||
return { type: 'handled' };
|
||||
case 'arena_status':
|
||||
actions.openArenaDialog?.('status');
|
||||
return { type: 'handled' };
|
||||
case 'auth':
|
||||
actions.openAuthDialog();
|
||||
return { type: 'handled' };
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue