* feat: allow pushing updates to open PRs (#470) PR push after creation (vibe-kanban c22efac9) In the last commit, we added the ability to push new changes after a PR has been created. Is there a good way to only show this if there are actually new changes? feat: allow pushing updates to open PRs (#470) Commit changes from coding agent for task attempt 771ed0db-8c90-4556-b732-5888b665c42b refactor: simplify unpushed commits check by focusing on origin/branch_name PR creation review (vibe-kanban 89c2ecdd) In the last two commits, we added the ability to push new changes after a PR has been created. Please review this and explain potential shortcomings * Fix git push frontend * Use GitService provided by deployment * Fix ssh auth failing blocking BranchStatus request * Fix refspec * Fix frontend to reflect disconnected
193 lines
12 KiB
TypeScript
193 lines
12 KiB
TypeScript
// This file was generated by `crates/core/src/bin/generate_types.rs`.
|
|
|
|
// Do not edit this file manually.
|
|
|
|
// If you are an AI, and you absolutely have to edit this file, please confirm with the user first.
|
|
|
|
export type DirectoryEntry = { name: string, path: string, is_directory: boolean, is_git_repo: boolean, last_modified: bigint | null, };
|
|
|
|
export type DirectoryListResponse = { entries: Array<DirectoryEntry>, current_path: string, };
|
|
|
|
export type Project = { id: string, name: string, git_repo_path: string, setup_script: string | null, dev_script: string | null, cleanup_script: string | null, copy_files: string | null, created_at: Date, updated_at: Date, };
|
|
|
|
export type ProjectWithBranch = { id: string, name: string, git_repo_path: string, setup_script: string | null, dev_script: string | null, cleanup_script: string | null, copy_files: string | null, current_branch: string | null, created_at: Date, updated_at: Date, };
|
|
|
|
export type CreateProject = { name: string, git_repo_path: string, use_existing_repo: boolean, setup_script: string | null, dev_script: string | null, cleanup_script: string | null, copy_files: string | null, };
|
|
|
|
export type UpdateProject = { name: string | null, git_repo_path: string | null, setup_script: string | null, dev_script: string | null, cleanup_script: string | null, copy_files: string | null, };
|
|
|
|
export type SearchResult = { path: string, is_file: boolean, match_type: SearchMatchType, };
|
|
|
|
export type SearchMatchType = "FileName" | "DirectoryName" | "FullPath";
|
|
|
|
export type ExecutorAction = { typ: ExecutorActionType, next_action: ExecutorAction | null, };
|
|
|
|
export type McpConfig = { servers: { [key in string]?: JsonValue }, servers_path: Array<string>, template: JsonValue, vibe_kanban: JsonValue, is_toml_config: boolean, };
|
|
|
|
export type ExecutorActionType = { "type": "CodingAgentInitialRequest" } & CodingAgentInitialRequest | { "type": "CodingAgentFollowUpRequest" } & CodingAgentFollowUpRequest | { "type": "ScriptRequest" } & ScriptRequest;
|
|
|
|
export type ScriptContext = "SetupScript" | "CleanupScript" | "DevServer";
|
|
|
|
export type ScriptRequest = { script: string, language: ScriptRequestLanguage, context: ScriptContext, };
|
|
|
|
export type ScriptRequestLanguage = "Bash";
|
|
|
|
export type TaskTemplate = { id: string, project_id: string | null, title: string, description: string | null, template_name: string, created_at: string, updated_at: string, };
|
|
|
|
export type CreateTaskTemplate = { project_id: string | null, title: string, description: string | null, template_name: string, };
|
|
|
|
export type UpdateTaskTemplate = { title: string | null, description: string | null, template_name: string | null, };
|
|
|
|
export type TaskStatus = "todo" | "inprogress" | "inreview" | "done" | "cancelled";
|
|
|
|
export type Task = { id: string, project_id: string, title: string, description: string | null, status: TaskStatus, parent_task_attempt: string | null, created_at: string, updated_at: string, };
|
|
|
|
export type TaskWithAttemptStatus = { id: string, project_id: string, title: string, description: string | null, status: TaskStatus, parent_task_attempt: string | null, created_at: string, updated_at: string, has_in_progress_attempt: boolean, has_merged_attempt: boolean, last_attempt_failed: boolean, profile: string, };
|
|
|
|
export type CreateTask = { project_id: string, title: string, description: string | null, parent_task_attempt: string | null, };
|
|
|
|
export type UpdateTask = { title: string | null, description: string | null, status: TaskStatus | null, parent_task_attempt: string | null, };
|
|
|
|
export type ApiResponse<T, E = T> = { success: boolean, data: T | null, error_data: E | null, message: string | null, };
|
|
|
|
export type UserSystemInfo = { config: Config, environment: Environment, profiles: Array<ProfileConfig>, };
|
|
|
|
export type Environment = { os_type: string, os_version: string, os_architecture: string, bitness: string, };
|
|
|
|
export type McpServerQuery = { profile: string, };
|
|
|
|
export type UpdateMcpServersBody = { servers: { [key in string]?: JsonValue }, };
|
|
|
|
export type GetMcpServerResponse = { mcp_config: McpConfig, config_path: string, };
|
|
|
|
export type CreateFollowUpAttempt = { prompt: string, variant: string | null, };
|
|
|
|
export type CreateGitHubPrRequest = { title: string, body: string | null, base_branch: string | null, };
|
|
|
|
export enum GitHubServiceError { TOKEN_INVALID = "TOKEN_INVALID", INSUFFICIENT_PERMISSIONS = "INSUFFICIENT_PERMISSIONS", REPO_NOT_FOUND_OR_NO_ACCESS = "REPO_NOT_FOUND_OR_NO_ACCESS" }
|
|
|
|
export type Config = { config_version: string, theme: ThemeMode, profile: ProfileVariantLabel, disclaimer_acknowledged: boolean, onboarding_acknowledged: boolean, github_login_acknowledged: boolean, telemetry_acknowledged: boolean, notifications: NotificationConfig, editor: EditorConfig, github: GitHubConfig, analytics_enabled: boolean | null, workspace_dir: string | null, };
|
|
|
|
export type NotificationConfig = { sound_enabled: boolean, push_enabled: boolean, sound_file: SoundFile, };
|
|
|
|
export enum ThemeMode { LIGHT = "LIGHT", DARK = "DARK", SYSTEM = "SYSTEM", PURPLE = "PURPLE", GREEN = "GREEN", BLUE = "BLUE", ORANGE = "ORANGE", RED = "RED" }
|
|
|
|
export type EditorConfig = { editor_type: EditorType, custom_command: string | null, };
|
|
|
|
export enum EditorType { VS_CODE = "VS_CODE", CURSOR = "CURSOR", WINDSURF = "WINDSURF", INTELLI_J = "INTELLI_J", ZED = "ZED", CUSTOM = "CUSTOM" }
|
|
|
|
export type GitHubConfig = { pat: string | null, oauth_token: string | null, username: string | null, primary_email: string | null, default_pr_base: string | null, };
|
|
|
|
export enum SoundFile { ABSTRACT_SOUND1 = "ABSTRACT_SOUND1", ABSTRACT_SOUND2 = "ABSTRACT_SOUND2", ABSTRACT_SOUND3 = "ABSTRACT_SOUND3", ABSTRACT_SOUND4 = "ABSTRACT_SOUND4", COW_MOOING = "COW_MOOING", PHONE_VIBRATION = "PHONE_VIBRATION", ROOSTER = "ROOSTER" }
|
|
|
|
export type DeviceFlowStartResponse = { user_code: string, verification_uri: string, expires_in: number, interval: number, };
|
|
|
|
export enum DevicePollStatus { SLOW_DOWN = "SLOW_DOWN", AUTHORIZATION_PENDING = "AUTHORIZATION_PENDING", SUCCESS = "SUCCESS" }
|
|
|
|
export enum CheckTokenResponse { VALID = "VALID", INVALID = "INVALID" }
|
|
|
|
export type GitBranch = { name: string, is_current: boolean, is_remote: boolean, last_commit_date: Date, };
|
|
|
|
export type BranchStatus = { commits_behind: number | null, commits_ahead: number | null, up_to_date: boolean | null, merged: boolean, has_uncommitted_changes: boolean, base_branch_name: string, remote_commits_behind: number | null, remote_commits_ahead: number | null, remote_up_to_date: boolean | null, };
|
|
|
|
export type Diff = { oldFile: FileDiffDetails | null, newFile: FileDiffDetails | null, hunks: Array<string>, };
|
|
|
|
export type FileDiffDetails = { fileName: string | null, content: string | null, };
|
|
|
|
export type RepositoryInfo = { id: bigint, name: string, full_name: string, owner: string, description: string | null, clone_url: string, ssh_url: string, default_branch: string, private: boolean, };
|
|
|
|
export type CommandBuilder = {
|
|
/**
|
|
* Base executable command (e.g., "npx -y @anthropic-ai/claude-code@latest")
|
|
*/
|
|
base: string,
|
|
/**
|
|
* Optional parameters to append to the base command
|
|
*/
|
|
params: Array<string> | null, };
|
|
|
|
export type ProfileVariantLabel = { profile: string, variant: string | null, };
|
|
|
|
export type ProfileConfig = {
|
|
/**
|
|
* additional variants for this profile, e.g. plan, review, subagent
|
|
*/
|
|
variants: Array<VariantAgentConfig>,
|
|
/**
|
|
* Unique identifier for this profile (e.g., "MyClaudeCode", "FastAmp")
|
|
*/
|
|
label: string,
|
|
/**
|
|
* Optional profile-specific MCP config file path (absolute; supports leading ~). Overrides the default `BaseCodingAgent` config path
|
|
*/
|
|
mcp_config_path: string | null, } & ({ "CLAUDE_CODE": ClaudeCode } | { "AMP": Amp } | { "GEMINI": Gemini } | { "CODEX": Codex } | { "OPENCODE": Opencode } | { "CURSOR": Cursor });
|
|
|
|
export type VariantAgentConfig = {
|
|
/**
|
|
* Unique identifier for this profile (e.g., "MyClaudeCode", "FastAmp")
|
|
*/
|
|
label: string,
|
|
/**
|
|
* Optional profile-specific MCP config file path (absolute; supports leading ~). Overrides the default `BaseCodingAgent` config path
|
|
*/
|
|
mcp_config_path: string | null, } & ({ "CLAUDE_CODE": ClaudeCode } | { "AMP": Amp } | { "GEMINI": Gemini } | { "CODEX": Codex } | { "OPENCODE": Opencode } | { "CURSOR": Cursor });
|
|
|
|
export type ProfileConfigs = { profiles: Array<ProfileConfig>, };
|
|
|
|
export type ClaudeCode = { command: CommandBuilder, plan: boolean, };
|
|
|
|
export type Gemini = { command: CommandBuilder, };
|
|
|
|
export type Amp = { command: CommandBuilder, };
|
|
|
|
export type Codex = { command: CommandBuilder, };
|
|
|
|
export type Cursor = { command: CommandBuilder, };
|
|
|
|
export type Opencode = { command: CommandBuilder, };
|
|
|
|
export type CodingAgentInitialRequest = { prompt: string, profile_variant_label: ProfileVariantLabel, };
|
|
|
|
export type CodingAgentFollowUpRequest = { prompt: string, session_id: string, profile_variant_label: ProfileVariantLabel, };
|
|
|
|
export type CreateTaskAttemptBody = { task_id: string, profile_variant_label: ProfileVariantLabel | null, base_branch: string, };
|
|
|
|
export type RebaseTaskAttemptRequest = { new_base_branch: string | null, };
|
|
|
|
export type TaskAttempt = { id: string, task_id: string, container_ref: string | null, branch: string | null, base_branch: string, merge_commit: string | null, profile: string, pr_url: string | null, pr_number: bigint | null, pr_status: string | null, pr_merged_at: string | null, worktree_deleted: boolean, setup_completed_at: string | null, created_at: string, updated_at: string, };
|
|
|
|
export type ExecutionProcess = { id: string, task_attempt_id: string, run_reason: ExecutionProcessRunReason, executor_action: ExecutorAction, status: ExecutionProcessStatus, exit_code: bigint | null, started_at: string, completed_at: string | null, created_at: string, updated_at: string, };
|
|
|
|
export type ExecutionProcessStatus = "running" | "completed" | "failed" | "killed";
|
|
|
|
export type ExecutionProcessRunReason = "setupscript" | "cleanupscript" | "codingagent" | "devserver";
|
|
|
|
export type EventPatch = { op: string, path: string, value: EventPatchInner, };
|
|
|
|
export type EventPatchInner = { db_op: string, record: RecordTypes, };
|
|
|
|
export type RecordTypes = { "type": "TASK", "data": Task } | { "type": "TASK_ATTEMPT", "data": TaskAttempt } | { "type": "EXECUTION_PROCESS", "data": ExecutionProcess } | { "type": "DELETED_TASK", "data": { rowid: bigint, } } | { "type": "DELETED_TASK_ATTEMPT", "data": { rowid: bigint, } } | { "type": "DELETED_EXECUTION_PROCESS", "data": { rowid: bigint, } };
|
|
|
|
export type NormalizedConversation = { entries: Array<NormalizedEntry>, session_id: string | null, executor_type: string, prompt: string | null, summary: string | null, };
|
|
|
|
export type NormalizedEntry = { timestamp: string | null, entry_type: NormalizedEntryType, content: string, };
|
|
|
|
export type NormalizedEntryType = { "type": "user_message" } | { "type": "assistant_message" } | { "type": "tool_use", tool_name: string, action_type: ActionType, } | { "type": "system_message" } | { "type": "error_message" } | { "type": "thinking" };
|
|
|
|
export type FileChange = { "action": "write", content: string, } | { "action": "delete" } | { "action": "rename", new_path: string, } | { "action": "edit",
|
|
/**
|
|
* Unified diff containing file header and hunks.
|
|
*/
|
|
unified_diff: string,
|
|
/**
|
|
* Whether line number in the hunks are reliable.
|
|
*/
|
|
has_line_numbers: boolean, };
|
|
|
|
export type ActionType = { "action": "file_read", path: string, } | { "action": "file_edit", path: string, changes: Array<FileChange>, } | { "action": "command_run", command: string, } | { "action": "search", query: string, } | { "action": "web_fetch", url: string, } | { "action": "task_create", description: string, } | { "action": "plan_presentation", plan: string, } | { "action": "todo_management", todos: Array<TodoItem>, operation: string, } | { "action": "other", description: string, };
|
|
|
|
export type TodoItem = { content: string, status: string, priority: string | null, };
|
|
|
|
export type PatchType = { "type": "NORMALIZED_ENTRY", "content": NormalizedEntry } | { "type": "STDOUT", "content": string } | { "type": "STDERR", "content": string } | { "type": "DIFF", "content": Diff };
|
|
|
|
export type JsonValue = number | string | boolean | Array<JsonValue> | { [key in string]?: JsonValue } | null; |