Smooth cursor onboarding (#1143)
* WIP cursor onboarding
Claude rebase fixes
fmt
WIP
WIP
WIP Add login button
Remove auto login check
Login needed detection
Setup script for login and install
Fix install+login case
Update task to inreview upon failure, cleanup
Feedback in next action box
Use errortype isntead of next action to communicate setup needed
* Add auto retry after install
* Fix setup needed detection
* Fix next_run_reason
* Lint and format
* i18n
* Rename to setup helper
* rename ErrorType to NormalizedEntryError
* Better setupHelpText i18n (vibe-kanban a8dd795e)
frontend/src/i18n/locales/en/tasks.json setupHelpText currently isn't very informative. We should change it to
"{agent_name} isn't setup correctly. Click 'Run Setup' to install it and login." or similar.
* Cursor login should be exempt from the 2 execution process limit (vibe-kanban deca56cd)
frontend/src/components/NormalizedConversation/NextActionCard.tsx
Display run setup even if there are more than 2 execution processes
* Move agent setup to server
This commit is contained in:
@@ -156,7 +156,7 @@ variant: string | null, };
|
||||
|
||||
export type ExecutorConfig = { [key in string]?: { "CLAUDE_CODE": ClaudeCode } | { "AMP": Amp } | { "GEMINI": Gemini } | { "CODEX": Codex } | { "OPENCODE": Opencode } | { "CURSOR_AGENT": CursorAgent } | { "QWEN_CODE": QwenCode } | { "COPILOT": Copilot } };
|
||||
|
||||
export type BaseAgentCapability = "SESSION_FORK";
|
||||
export enum BaseAgentCapability { SESSION_FORK = "SESSION_FORK", SETUP_HELPER = "SETUP_HELPER" }
|
||||
|
||||
export type ClaudeCode = { append_prompt: AppendPrompt, claude_code_router?: boolean | null, plan?: boolean | null, approvals?: boolean | null, model?: string | null, dangerously_skip_permissions?: boolean | null, base_command_override?: string | null, additional_params?: Array<string> | null, };
|
||||
|
||||
@@ -206,6 +206,10 @@ export type CreateTaskAttemptBody = { task_id: string,
|
||||
*/
|
||||
executor_profile_id: ExecutorProfileId, base_branch: string, };
|
||||
|
||||
export type RunAgentSetupRequest = { executor_profile_id: ExecutorProfileId, };
|
||||
|
||||
export type RunAgentSetupResponse = Record<string, never>;
|
||||
|
||||
export type RebaseTaskAttemptRequest = { old_base_branch: string | null, new_base_branch: string | null, };
|
||||
|
||||
export type GitOperationError = { "type": "merge_conflicts", message: string, op: ConflictOp, } | { "type": "rebase_in_progress" };
|
||||
@@ -292,7 +296,7 @@ export type CommandRunResult = { exit_status: CommandExitStatus | null, output:
|
||||
|
||||
export type NormalizedEntry = { timestamp: string | null, entry_type: NormalizedEntryType, content: string, };
|
||||
|
||||
export type NormalizedEntryType = { "type": "user_message" } | { "type": "user_feedback", denied_tool: string, } | { "type": "assistant_message" } | { "type": "tool_use", tool_name: string, action_type: ActionType, status: ToolStatus, } | { "type": "system_message" } | { "type": "error_message" } | { "type": "thinking" } | { "type": "loading" } | { "type": "next_action", failed: boolean, execution_processes: number, };
|
||||
export type NormalizedEntryType = { "type": "user_message" } | { "type": "user_feedback", denied_tool: string, } | { "type": "assistant_message" } | { "type": "tool_use", tool_name: string, action_type: ActionType, status: ToolStatus, } | { "type": "system_message" } | { "type": "error_message", error_type: NormalizedEntryError, } | { "type": "thinking" } | { "type": "loading" } | { "type": "next_action", failed: boolean, execution_processes: number, needs_setup: boolean, };
|
||||
|
||||
export type FileChange = { "action": "write", content: string, } | { "action": "delete" } | { "action": "rename", new_path: string, } | { "action": "edit",
|
||||
/**
|
||||
@@ -308,6 +312,8 @@ export type ActionType = { "action": "file_read", path: string, } | { "action":
|
||||
|
||||
export type TodoItem = { content: string, status: string, priority: string | null, };
|
||||
|
||||
export type NormalizedEntryError = { "type": "setup_required" } | { "type": "other" };
|
||||
|
||||
export type ToolResult = { type: ToolResultValueType,
|
||||
/**
|
||||
* For Markdown, this will be a JSON string; for JSON, a structured value
|
||||
|
||||
Reference in New Issue
Block a user