@every-env/cli
Version:
Multi-agent orchestrator for AI-powered development workflows
75 lines • 2.52 kB
JavaScript
export const initialState = {
currentPhase: 1,
selectedIndex: null,
inputValue: '',
inputMode: 'idle',
showHelp: false,
showLogs: null,
commandFeedback: null,
tasks: {
plan: [],
delegate: [],
assess: [],
codify: []
}
};
export function appReducer(state, action) {
switch (action.type) {
case 'SET_PHASE':
return { ...state, currentPhase: action.phase, selectedIndex: null };
case 'SET_SELECTED_INDEX':
return { ...state, selectedIndex: action.index };
case 'SET_INPUT_VALUE':
return { ...state, inputValue: action.value };
case 'SET_INPUT_MODE':
return { ...state, inputMode: action.mode };
case 'SET_SHOW_HELP':
return { ...state, showHelp: action.show };
case 'SET_SHOW_LOGS':
return { ...state, showLogs: action.taskId };
case 'SET_COMMAND_FEEDBACK':
return { ...state, commandFeedback: action.message };
case 'ADD_TASK':
return {
...state,
tasks: {
...state.tasks,
[action.phase]: [...state.tasks[action.phase], action.task]
}
};
case 'UPDATE_TASK':
return {
...state,
tasks: {
...state.tasks,
[action.phase]: state.tasks[action.phase].map(task => task.id === action.taskId ? { ...task, ...action.updates } : task)
}
};
case 'DELETE_TASK':
return {
...state,
tasks: {
...state.tasks,
[action.phase]: state.tasks[action.phase].filter(task => task.id !== action.taskId)
}
};
case 'MOVE_TASK': {
const task = state.tasks[action.fromPhase].find(t => t.id === action.taskId);
if (!task)
return state;
return {
...state,
tasks: {
...state.tasks,
[action.fromPhase]: state.tasks[action.fromPhase].filter(t => t.id !== action.taskId),
[action.toPhase]: [...state.tasks[action.toPhase], task]
}
};
}
case 'LOAD_STATE':
return { ...state, ...action.state };
default:
return state;
}
}
//# sourceMappingURL=reducer.js.map