package websocket // Action constants for WebSocket messages const ( // Health ActionHealthCheck = "health.check" // Workflow actions ActionWorkflowList = "workflow.list" ActionWorkflowCreate = "workflow.create" ActionWorkflowGet = "workflow.get" ActionWorkflowUpdate = "workflow.update" ActionWorkflowDelete = "workflow.delete" ActionWorkflowReorder = "workflow.reorder" // Workspace actions ActionWorkspaceList = "workspace.list" ActionWorkspaceCreate = "workspace.create" ActionWorkspaceGet = "workspace.get" ActionWorkspaceUpdate = "workspace.update" ActionWorkspaceDelete = "workspace.delete" // Repository actions ActionRepositoryList = "repository.list" ActionRepositoryCreate = "repository.create" ActionRepositoryGet = "repository.get" ActionRepositoryUpdate = "repository.update" ActionRepositoryDelete = "repository.delete" // Repository Set actions ActionRepositorySetList = "repository_set.list" ActionRepositorySetCreate = "repository_set.create" ActionRepositorySetGet = "repository_set.get" ActionRepositorySetUpdate = "repository_set.update" ActionRepositorySetDelete = "repository_set.delete" // Repository branch policy actions ActionRepositoryBranchPolicyList = "repository_branch_policy.list" ActionRepositoryBranchPolicyCreate = "repository_branch_policy.create" ActionRepositoryBranchPolicyGet = "repository_branch_policy.get" ActionRepositoryBranchPolicyUpdate = "repository_branch_policy.update" ActionRepositoryBranchPolicyDelete = "repository_branch_policy.delete" ActionRepositoryBranchPolicyGitflow = "repository_branch_policy.gitflow" // Repository Script actions ActionRepositoryScriptList = "repository.script.list" ActionRepositoryScriptCreate = "repository.script.create" ActionRepositoryScriptGet = "repository.script.get" ActionRepositoryScriptUpdate = "repository.script.update" ActionRepositoryScriptDelete = "repository.script.delete" // Executor actions ActionExecutorList = "executor.list" ActionExecutorCreate = "executor.create" ActionExecutorGet = "executor.get" ActionExecutorUpdate = "executor.update" ActionExecutorDelete = "executor.delete" // Executor profile actions ActionExecutorProfileList = "executor.profile.list" ActionExecutorProfileListAll = "executor.profile.list_all" ActionExecutorProfileCreate = "executor.profile.create" ActionExecutorProfileGet = "executor.profile.get" ActionExecutorProfileUpdate = "executor.profile.update" ActionExecutorProfileDelete = "executor.profile.delete" // Environment actions ActionEnvironmentList = "environment.list" ActionEnvironmentCreate = "environment.create" ActionEnvironmentGet = "environment.get" ActionEnvironmentUpdate = "environment.update" ActionEnvironmentDelete = "environment.delete" // Task actions ActionTaskList = "task.list" ActionTaskCreate = "task.create" ActionTaskGet = "task.get" ActionTaskUpdate = "task.update" ActionTaskRepoUpdate = "task.repository.update" ActionTaskDelete = "task.delete" ActionTaskMove = "task.move" ActionTaskState = "task.state" ActionTaskArchive = "task.archive" ActionTaskRunner = "task.runner" ActionTaskPlanCreate = "task.plan.create" ActionTaskPlanGet = "task.plan.get" ActionTaskPlanUpdate = "task.plan.update" ActionTaskPlanDelete = "task.plan.delete" ActionTaskPlanRevisionsList = "task.plan.revisions.list" ActionTaskPlanRevisionGet = "task.plan.revision.get" ActionTaskPlanRevert = "task.plan.revert" ActionTaskPlanImplement = "task.plan.implementation_started" ActionTaskPlanCommentsList = "task.plan.comments.list" ActionTaskPlanCommentCreate = "task.plan.comments.create" ActionTaskPlanCommentUpdate = "task.plan.comments.update" ActionTaskPlanCommentDelete = "task.plan.comments.delete" ActionTaskPreviewFeedbackList = "task.preview_feedback.list" ActionTaskPreviewFeedbackCreate = "task.preview_feedback.create" ActionTaskPreviewFeedbackUpdate = "task.preview_feedback.update" ActionTaskPreviewFeedbackDelete = "task.preview_feedback.delete" ActionTaskPreviewFeedbackClear = "task.preview_feedback.clear" // Plugin-backed canvas lifecycle notifications. These are owner-scoped // workspace/task events and contain no application content or capabilities. ActionCanvasCreated = "canvas.created" ActionCanvasUpdated = "canvas.updated" ActionCanvasReleaseActivated = "canvas.release.activated" ActionCanvasReleasePermissionRequired = "canvas.release.permission_required" ActionCanvasPromoted = "canvas.promoted" ActionCanvasWorkspaceDataEnabled = "canvas.workspace_data_enabled" ActionCanvasArchived = "canvas.archived" ActionCanvasRestored = "canvas.restored" ActionCanvasRemoved = "canvas.removed" ActionTaskSessionList = "task.session.list" ActionTaskSessionStatus = "task.session.status" ActionTaskLaunchRecover = "task.launch.recover" // Unified session launch ActionSessionLaunch = "session.launch" ActionSessionEnsure = "session.ensure" ActionSessionRecover = "session.recover" ActionSessionResetContext = "session.reset_context" ActionSessionStop = "session.stop" ActionSessionDelete = "session.delete" ActionSessionSetPrimary = "session.set_primary" ActionSessionSetPlanMode = "session.set_plan_mode" ActionSessionRename = "session.rename" ActionSessionRouteAction = "session.route_action" // Agent actions ActionAgentList = "agent.list" ActionAgentLaunch = "agent.launch" ActionAgentStatus = "agent.status" ActionAgentLogs = "agent.logs" ActionAgentStop = "agent.stop" ActionAgentPrompt = "agent.prompt" ActionAgentCancel = "agent.cancel" ActionTaskSession = "task.session" ActionAgentTypes = "agent.types" // Agent passthrough actions ActionAgentStdin = "agent.stdin" // Send input to agent process stdin (passthrough mode) ActionAgentStdout = "agent.stdout" // Agent stdout notification (passthrough mode) ActionAgentResize = "agent.resize" // Resize agent PTY (passthrough mode) // Orchestrator actions ActionOrchestratorStatus = "orchestrator.status" ActionOrchestratorQueue = "orchestrator.queue" ActionOrchestratorStop = "orchestrator.stop" // Message Queue actions ActionMessageQueueAdd = "message.queue.add" ActionMessageQueueCancel = "message.queue.cancel" // Clears the entire queue for a session ActionMessageQueueGet = "message.queue.get" ActionMessageQueueUpdate = "message.queue.update" ActionMessageQueueEditBegin = "message.queue.edit.begin" ActionMessageQueueEditRenew = "message.queue.edit.renew" ActionMessageQueueEditEnd = "message.queue.edit.end" ActionMessageQueueAppend = "message.queue.append" ActionMessageQueueDrain = "message.queue.drain" // Dispatch one queued entry now when the session is promptable ActionMessageQueueSendNow = "message.queue.send_now" // Interrupt and replace the active turn with an exact queue selection ActionMessageQueueAutoRunSet = "message.queue.auto_run.set" // Persist automatic queue processing and optionally dispatch the head ActionMessageQueueAutoMergeSet = "message.queue.auto_merge.set" // Persist a per-session automatic-merge override ActionMessageQueueRemove = "message.queue.remove" // Delete a single entry by id ActionMessageQueueMerge = "message.queue.merge" // Fold an entry into the entry above it ActionMessageQueueReorder = "message.queue.reorder" // Rewrite the visible pending order for a session ActionMessageQueueStatusChanged = "message.queue.status_changed" // Notification: queue status changed // Workflow template/step actions ActionWorkflowTemplateList = "workflow.template.list" ActionWorkflowTemplateGet = "workflow.template.get" ActionWorkflowStepList = "workflow.step.list" ActionWorkflowStepGet = "workflow.step.get" ActionWorkflowStepCreate = "workflow.step.create" ActionWorkflowHistoryList = "workflow.history.list" // Subscription actions ActionTaskSubscribe = "task.subscribe" ActionTaskUnsubscribe = "task.unsubscribe" ActionSessionSubscribe = "session.subscribe" ActionSessionUnsubscribe = "session.unsubscribe" // Host-only v2 conversation delivery. These actions use transient // revision-covered change batches and never expose the legacy replay log. ActionSessionConversationSubscribe = "session.conversation.subscribe" ActionSessionConversationUnsubscribe = "session.conversation.unsubscribe" ActionSessionConversationChanged = "session.conversation.changed" // Focus signals are layered on top of subscriptions to indicate which // session the user is actively viewing (task details page or task panel), // vs merely subscribed (sidebar diff badges). Drives backend polling tier. ActionSessionFocus = "session.focus" ActionSessionUnfocus = "session.unfocus" ActionUserSubscribe = "user.subscribe" ActionUserUnsubscribe = "user.unsubscribe" ActionRunSubscribe = "run.subscribe" ActionRunUnsubscribe = "run.unsubscribe" ActionSystemMetricsSubscribe = "system.metrics.subscribe" ActionSystemMetricsUnsubscribe = "system.metrics.unsubscribe" // Message actions ActionMessageAdd = "message.add" ActionMessageGet = "message.get" ActionMessageList = "message.list" ActionMessageSearch = "message.search" // Notification actions (server -> client) ActionACPProgress = "acp.progress" ActionACPLog = "acp.log" ActionACPResult = "acp.result" ActionACPError = "acp.error" ActionACPStatus = "acp.status" ActionACPHeartbeat = "acp.heartbeat" ActionTaskCreated = "task.created" ActionTaskUpdated = "task.updated" ActionTaskReordered = "task.reordered" ActionTaskDeleted = "task.deleted" ActionTaskStateChanged = "task.state_changed" ActionSessionWorkspaceSourcesUpdated = "session.workspace_sources.updated" ActionTaskPlanCreated = "task.plan.created" ActionTaskPlanUpdated = "task.plan.updated" ActionTaskPlanDeleted = "task.plan.deleted" ActionTaskPlanRevisionCreated = "task.plan.revision.created" ActionTaskPlanReverted = "task.plan.reverted" ActionTaskPlanCommentsChanged = "task.plan.comments.changed" ActionTaskPreviewFeedbackChanged = "task.preview_feedback.changed" ActionTaskWalkthroughGet = "task.walkthrough.get" ActionTaskWalkthroughDelete = "task.walkthrough.delete" ActionTaskWalkthroughCreated = "task.walkthrough.created" ActionTaskWalkthroughUpdated = "task.walkthrough.updated" ActionTaskWalkthroughDeleted = "task.walkthrough.deleted" // Native code review. The *.run / *.cancel / *.get / *.finding.update / // *.clear actions are client requests; the rest are server notifications. ActionTaskReviewRun = "task.review.run" ActionTaskReviewCancel = "task.review.cancel" ActionTaskReviewGet = "task.review.get" ActionTaskReviewFindingUpdate = "task.review.finding.update" ActionTaskReviewClear = "task.review.clear" ActionTaskReviewRunUpdated = "task.review.run_updated" ActionTaskReviewFindingsPublished = "task.review.findings_published" ActionTaskReviewFindingUpdated = "task.review.finding_updated" ActionTaskReviewCleared = "task.review.cleared" ActionAgentUpdated = "agent.updated" ActionAgentProfileMCPConfigUpdated = "agent.profile.mcp_config.updated" ActionAgentAvailableUpdated = "agent.available.updated" ActionAgentInstallStarted = "agent.install.started" ActionAgentInstallOutput = "agent.install.output" ActionAgentInstallFinished = "agent.install.finished" ActionAgentUpdateStarted = "agent.update.started" ActionAgentUpdateOutput = "agent.update.output" ActionAgentUpdateFinished = "agent.update.finished" ActionWorkspaceCreated = "workspace.created" ActionWorkspaceUpdated = "workspace.updated" ActionWorkspaceDeleted = "workspace.deleted" ActionWorkflowCreated = "workflow.created" ActionWorkflowUpdated = "workflow.updated" ActionWorkflowDeleted = "workflow.deleted" ActionWorkflowStepCreated = "workflow.step.created" ActionWorkflowStepUpdated = "workflow.step.updated" ActionWorkflowStepDeleted = "workflow.step.deleted" ActionSessionMessageAdded = "session.message.added" ActionSessionMessageUpdated = "session.message.updated" ActionSessionMessageDeleted = "session.message.deleted" ActionSessionRemoved = "session.removed" ActionSessionStateChanged = "session.state_changed" ActionSessionPendingActionChanged = "session.pending_action_changed" ActionSessionActivityChanged = "session.activity_changed" ActionSessionCancellationChanged = "session.cancellation_changed" ActionTaskStatusSummaryUpdated = "task.status_summary.updated" ActionSessionAgentctlStarting = "session.agentctl_starting" ActionSessionAgentctlReady = "session.agentctl_ready" ActionSessionAgentctlError = "session.agentctl_error" ActionSessionTurnStarted = "session.turn.started" ActionSessionTurnCompleted = "session.turn.completed" ActionSessionTurnRemoved = "session.turn.removed" ActionSessionAvailableCommands = "session.available_commands" ActionSessionModeChanged = "session.mode_changed" ActionSessionAgentCapabilities = "session.agent_capabilities" ActionSessionModelsUpdated = "session.models_updated" ActionSessionModelFallback = "session.model_fallback" ActionSessionModelSelectionWarning = "session.model_selection_warning" ActionSessionLaunchWarning = "session.launch.warning" ActionSessionMCPStatusUpdated = "session.mcp_status_updated" ActionSessionInfoUpdated = "session.info_updated" ActionSessionSetMode = "session.set_mode" ActionSessionTodosUpdated = "session.todos_updated" ActionSessionPromptUsage = "session.prompt_usage" ActionSessionPollModeChanged = "session.poll_mode_changed" ActionSessionRouteChanging = "session.route_changing" ActionSessionRouteChanged = "session.route_changed" ActionSessionCapabilitiesReplaced = "session.capabilities_replaced" ActionSessionRouteWaiting = "session.route_waiting" ActionSessionRoutePending = "session.route_pending" ActionInputRequested = "input.requested" ActionRepositoryCreated = "repository.created" ActionRepositoryUpdated = "repository.updated" ActionRepositoryDeleted = "repository.deleted" ActionRepositorySetCreated = "repository_set.created" ActionRepositorySetUpdated = "repository_set.updated" ActionRepositorySetDeleted = "repository_set.deleted" ActionRepositoryBranchPolicyCreated = "repository_branch_policy.created" ActionRepositoryBranchPolicyUpdated = "repository_branch_policy.updated" ActionRepositoryBranchPolicyDeleted = "repository_branch_policy.deleted" ActionRepositoryScriptCreated = "repository.script.created" ActionRepositoryScriptUpdated = "repository.script.updated" ActionRepositoryScriptDeleted = "repository.script.deleted" ActionExecutorCreated = "executor.created" ActionExecutorUpdated = "executor.updated" ActionExecutorDeleted = "executor.deleted" ActionExecutorReachabilityChanged = "executor.reachability.changed" ActionEnvironmentCreated = "environment.created" ActionEnvironmentUpdated = "environment.updated" ActionEnvironmentDeleted = "environment.deleted" ActionExecutorProfileCreated = "executor.profile.created" ActionExecutorProfileUpdated = "executor.profile.updated" ActionExecutorProfileDeleted = "executor.profile.deleted" ActionExecutorPrepareProgress = "executor.prepare.progress" ActionExecutorPrepareCompleted = "executor.prepare.completed" ActionSystemMetricsUpdated = "system.metrics.updated" ActionUpdateAvailable = "system.update_available" ActionAgentProfileDeleted = "agent.profile.deleted" ActionAgentProfileCreated = "agent.profile.created" ActionAgentProfileUpdated = "agent.profile.updated" // ActionAgentSettingsUpdated carries a full agent settings record // (dto.AgentDTO) after a settings-side change such as a custom TUI agent's // MCP strategy. Distinct from ActionAgentUpdated, which is a runtime status // ping keyed by {agentId, status} and feeds a different store slice. ActionAgentSettingsUpdated = "agent.settings.updated" // Permission request actions (agent -> user -> agent) ActionPermissionRequested = "permission.requested" // Agent requesting permission ActionPermissionRespond = "permission.respond" // User responding to permission request // Workspace file operations ActionWorkspaceFileTreeGet = "workspace.tree.get" ActionWorkspaceFileContentGet = "workspace.file.get" ActionWorkspaceFileContentGetRef = "workspace.file.get_at_ref" ActionWorkspaceFileContentUpdate = "workspace.file.update" ActionWorkspaceFileCreate = "workspace.file.create" ActionWorkspaceFileDelete = "workspace.file.delete" ActionWorkspaceFileRename = "workspace.file.rename" ActionWorkspaceFilesSearch = "workspace.files.search" ActionWorkspaceContentSearch = "workspace.content.search" ActionWorkspaceFileChanges = "session.workspace.file.changes" // Notification // Shell actions ActionShellStatus = "session.shell.status" // Get shell status ActionShellSubscribe = "shell.subscribe" // Subscribe to shell output ActionShellInput = "shell.input" // Send input to shell ActionSessionShellOutput = "session.shell.output" // Shell output notification (also used for exit with type: "exit") // User shell actions (independent terminal tabs) ActionUserShellList = "user_shell.list" // List user shells for a task (DB rows + agentctl probes) ActionUserShellCreate = "user_shell.create" // Create a new user shell terminal (assigns ID + seq) ActionUserShellStop = "user_shell.stop" // Legacy alias of destroy; kept for one release ActionUserShellRename = "user_shell.rename" // Rename an ordinary user shell (set/clear custom_name) ActionUserShellPark = "user_shell.park" // Hide tab; PTY continues running ActionUserShellResume = "user_shell.resume" // Unhide a parked tab ActionUserShellDestroy = "user_shell.destroy" // Stop the PTY and delete the row // Session file review actions ActionSessionFileReviewGet = "session.file_review.get" // Get all file reviews for a session ActionSessionFileReviewUpdate = "session.file_review.update" // Upsert a single file review ActionSessionFileReviewReset = "session.file_review.reset" // Delete all reviews for a session // Session git actions (requests) ActionSessionGitSnapshots = "session.git.snapshots" // Get git snapshots for a session ActionSessionGitCommits = "session.git.commits" // Get commits for a session ActionSessionCumulativeDiff = "session.cumulative_diff" // Get cumulative diff from base branch ActionSessionCommitDiff = "session.commit_diff" // Get diff for a specific commit // Session git event (unified notification) ActionSessionGitEvent = "session.git.event" // Notification: unified git event // Session git refresh (explicit detail-surface git snapshot request) ActionSessionGitRefresh = "session.git.refresh" // Retained for older clients. New detail surfaces should use the narrower // ActionSessionGitRefresh request instead. ActionSessionDataRefresh = "session.data.refresh" // Process runner actions ActionSessionProcessOutput = "session.process.output" ActionSessionProcessStatus = "session.process.status" // Git worktree actions ActionWorktreePull = "worktree.pull" // Pull from remote ActionWorktreePush = "worktree.push" // Push to remote ActionWorktreeReplaceContribution = "worktree.replace_contribution" // Replace the bound contribution branch ActionWorktreeUseContribution = "worktree.use_contribution" // Adopt the bound contribution version ActionWorktreeContributionHistoryExplanation = "worktree.contribution_history_explanation" // Observe contribution history evidence ActionWorktreeRebase = "worktree.rebase" // Rebase onto base branch ActionWorktreeMerge = "worktree.merge" // Merge base branch into worktree ActionWorktreeAbort = "worktree.abort" // Abort in-progress merge or rebase ActionWorktreeCommit = "worktree.commit" // Commit changes ActionWorktreeStage = "worktree.stage" // Stage files for commit ActionWorktreeUnstage = "worktree.unstage" // Unstage files from index ActionWorktreeDiscard = "worktree.discard" // Discard changes to files ActionWorktreeCreatePR = "worktree.create_pr" // Create a pull request ActionWorktreeRevertCommit = "worktree.revert_commit" // Revert a commit (staged, no new commit) ActionWorktreeRenameBranch = "worktree.rename_branch" // Rename the current branch ActionWorktreeReset = "worktree.reset" // Reset HEAD to a commit (soft/hard) // User actions ActionUserGet = "user.get" ActionUserSettingsUpdate = "user.settings.update" ActionUserSettingsUpdated = "user.settings.updated" ActionUserAgentProfileRecentUseUpdated = "user.agent_profile_recent_use.updated" ActionSessionHostnameResolved = "auth.session.hostname.resolved" // ActionPluginUserStateUpdated notifies the writing user's other WS // connections that one of their per-user plugin storage keys changed // (Approach F1). Payload: {pluginId, scope, scopeId, key, updatedAt, // writerId, deleted} — keys only, never the stored value. ActionPluginUserStateUpdated = "plugin.user-state.updated" // System maintenance jobs (VACUUM, factory reset, snapshot create/restore, // disk walk). Broadcast to all connected clients so the System pages can // render progress. ActionSystemJobUpdate = "system.job.update" ActionSystemStorageAnalysisUpdated = "system.storage.analysis.updated" ActionSystemAgentRuntimeStatusChanged = "system.agent_runtime.status_changed" // VS Code server actions ActionVscodeStart = "vscode.start" // Start code-server for a session ActionVscodeStop = "vscode.stop" // Stop code-server for a session ActionVscodeStatus = "vscode.status" // Get code-server status for a session ActionVscodeOpenFile = "vscode.openFile" // Open a file in code-server for a session // Port actions ActionPortList = "port.list" // List listening ports on a remote executor ActionPortTunnelStart = "port.tunnel.start" // Start a port tunnel ActionPortTunnelStop = "port.tunnel.stop" // Stop a port tunnel ActionPortTunnelList = "port.tunnel.list" // List active port tunnels // Secret actions ActionSecretList = "secrets.list" ActionSecretCreate = "secrets.create" ActionSecretUpdate = "secrets.update" ActionSecretDelete = "secrets.delete" ActionSecretReveal = "secrets.reveal" ActionSecretCopy = "secrets.copy" ActionSecretMove = "secrets.move" // Sprites actions ActionSpritesStatus = "sprites.status" ActionSpritesInstancesList = "sprites.instances.list" ActionSpritesInstancesDestroy = "sprites.instances.destroy" ActionSpritesTest = "sprites.test" ActionSpritesNetworkPolicyGet = "sprites.network_policy.get" ActionSpritesNetworkPolicyUpdate = "sprites.network_policy.update" // MCP tool actions (agentctl -> backend via WS tunnel) ActionMCPListWorkspaces = "mcp.list_workspaces" ActionMCPListWorkflows = "mcp.list_workflows" ActionMCPListWorkflowSteps = "mcp.list_workflow_steps" ActionMCPListRepositories = "mcp.list_repositories" ActionMCPListTasks = "mcp.list_tasks" ActionMCPCreateTask = "mcp.create_task" ActionMCPUpdateTask = "mcp.update_task" ActionMCPGetTaskPRAutomation = "mcp.get_task_pr_automation" ActionMCPUpdateTaskPRAutomation = "mcp.update_task_pr_automation" ActionMCPReportPRAutoFixOutcome = "mcp.report_pr_auto_fix_outcome" ActionMCPReportTaskChangeRequestAutoFixOutcome = "mcp.report_change_request_auto_fix_outcome" ActionMCPGetTaskMRAutomation = "mcp.get_task_mr_automation" ActionMCPUpdateTaskMRAutomation = "mcp.update_task_mr_automation" ActionMCPLinkTaskPR = "mcp.link_task_pr" ActionMCPUnlinkTaskPR = "mcp.unlink_task_pr" ActionMCPReplaceTaskPR = "mcp.replace_task_pr" ActionMCPManageTaskChangeRequest = "mcp.manage_task_change_request" ActionMCPGetTaskChangeRequests = "mcp.get_task_change_requests" ActionMCPUpdateTaskChangeRequestAutomation = "mcp.update_task_change_request_automation" ActionMCPAddTaskDependency = "mcp.add_task_dependency" ActionMCPRemoveTaskDependency = "mcp.remove_task_dependency" ActionMCPAddBranchToTask = "mcp.add_branch_to_task" ActionMCPAddWorkspaceSources = "mcp.add_workspace_sources" ActionMCPUpdateRepositoryBaseBranch = "mcp.update_repository_base_branch" ActionMCPStepComplete = "mcp.step_complete" // ADR 0015: agent-emitted explicit completion signal ActionMCPAskUserQuestion = "mcp.ask_user_question" ActionMCPAskParentQuestion = "mcp.ask_parent_question" ActionMCPListPendingQuestions = "mcp.list_pending_questions" ActionMCPAnswerQuestion = "mcp.answer_question" ActionMCPCreateTaskPlan = "mcp.create_task_plan" ActionMCPGetTaskPlan = "mcp.get_task_plan" ActionMCPUpdateTaskPlan = "mcp.update_task_plan" ActionMCPEditTaskPlan = "mcp.edit_task_plan" ActionMCPListTaskPlanRevisions = "mcp.list_task_plan_revisions" ActionMCPGetTaskPlanRevision = "mcp.get_task_plan_revision" ActionMCPRestoreTaskPlanRevision = "mcp.restore_task_plan_revision" ActionMCPDeleteTaskPlan = "mcp.delete_task_plan" ActionMCPShowWalkthrough = "mcp.show_walkthrough" ActionMCPGetWalkthrough = "mcp.get_walkthrough" ActionMCPDeleteWalkthrough = "mcp.delete_walkthrough" ActionMCPPublishReviewFindings = "mcp.publish_review_findings" ActionMCPClarificationTimeout = "mcp.clarification_timeout" ActionMCPSetTaskTitle = "mcp.set_task_title" ActionMCPGetDiagnosticBundle = "mcp.get_diagnostic_bundle" // Office task handoffs (cross-task context). ActionMCPListRelatedTasks = "mcp.list_related_tasks" ActionMCPListTaskDocuments = "mcp.list_task_documents" ActionMCPGetTaskDocument = "mcp.get_task_document" ActionMCPWriteTaskDocument = "mcp.write_task_document" ActionMCPListPluginTools = "mcp.list_plugin_tools" ActionMCPInvokePluginTool = "mcp.invoke_plugin_tool" ActionMCPListCanvases = "mcp.list_canvases" ActionMCPReadCanvasAuthoringSkill = "mcp.read_canvas_authoring_skill" ActionMCPCreateCanvas = "mcp.create_canvas" ActionMCPGetCanvas = "mcp.get_canvas" ActionMCPPublishCanvas = "mcp.publish_canvas" ActionMCPGetCanvasState = "mcp.get_canvas_state" ActionMCPSetCanvasState = "mcp.set_canvas_state" // Config-mode MCP actions (agent-native configuration) ActionMCPCreateAutomation = "mcp.create_automation" ActionMCPCreateWorkflow = "mcp.create_workflow" ActionMCPUpdateWorkflow = "mcp.update_workflow" ActionMCPDeleteWorkflow = "mcp.delete_workflow" ActionMCPImportWorkflow = "mcp.import_workflow" ActionMCPExportWorkflow = "mcp.export_workflow" ActionMCPCreateWorkflowStep = "mcp.create_workflow_step" ActionMCPUpdateWorkflowStep = "mcp.update_workflow_step" ActionMCPDeleteWorkflowStep = "mcp.delete_workflow_step" ActionMCPReorderWorkflowStep = "mcp.reorder_workflow_steps" ActionMCPListAgents = "mcp.list_agents" ActionMCPUpdateAgent = "mcp.update_agent" ActionMCPListAgentProfiles = "mcp.list_agent_profiles" ActionMCPCreateAgentProfile = "mcp.create_agent_profile" ActionMCPUpdateAgentProfile = "mcp.update_agent_profile" ActionMCPDeleteAgentProfile = "mcp.delete_agent_profile" ActionMCPGetMcpConfig = "mcp.get_mcp_config" ActionMCPUpdateMcpConfig = "mcp.update_mcp_config" ActionMCPListSharedPrompts = "mcp.list_shared_prompts" ActionMCPGetSharedPrompt = "mcp.get_shared_prompt" ActionMCPSearchSettings = "mcp.search_settings" ActionMCPDescribeSetting = "mcp.describe_setting" ActionMCPGetSettings = "mcp.get_settings" ActionMCPUpdateSettings = "mcp.update_settings" ActionMCPListSettingsResources = "mcp.list_settings_resources" ActionMCPListExecutors = "mcp.list_executors" ActionMCPListExecutorProfiles = "mcp.list_executor_profiles" ActionMCPCreateExecutorProfile = "mcp.create_executor_profile" ActionMCPUpdateExecutorProfile = "mcp.update_executor_profile" ActionMCPDeleteExecutorProfile = "mcp.delete_executor_profile" ActionMCPMoveTask = "mcp.move_task" ActionMCPDeleteTask = "mcp.delete_task" ActionMCPArchiveTask = "mcp.archive_task" ActionMCPUpdateTaskState = "mcp.update_task_state" ActionMCPMessageTask = "mcp.message_task" ActionMCPStopTask = "mcp.stop_task" ActionMCPSpawnSession = "mcp.spawn_session" ActionMCPGetTaskConversation = "mcp.get_task_conversation" ActionMCPListTaskSessions = "mcp.list_task_sessions" ActionMCPListPendingAgentPermissions = "mcp.list_pending_agent_permissions" ActionMCPResolveAgentPermission = "mcp.resolve_agent_permission" ) const ( ActionSessionTurnFinished = "session.turn_finished" ActionSessionClarificationRequested = "session.clarification_requested" ActionOfficeInboxItem = "office.inbox_item" ) // GitHub integration actions const ( ActionGitHubStatus = "github.status" ActionGitHubTaskPRsList = "github.task_prs.list" ActionGitHubTaskPRGet = "github.task_pr.get" ActionGitHubPRFeedbackGet = "github.pr_feedback.get" ActionGitHubReviewWatchesList = "github.review_watches.list" ActionGitHubReviewWatchCreate = "github.review_watches.create" ActionGitHubReviewWatchUpdate = "github.review_watches.update" ActionGitHubReviewWatchDelete = "github.review_watches.delete" ActionGitHubReviewTrigger = "github.review_watches.trigger" ActionGitHubReviewTriggerAll = "github.review_watches.trigger_all" ActionGitHubPRWatchesList = "github.pr_watches.list" ActionGitHubPRWatchDelete = "github.pr_watches.delete" ActionGitHubPRFilesGet = "github.pr_files.get" ActionGitHubPRCommitsGet = "github.pr_commits.get" ActionGitHubPRCommitGet = "github.pr_commit.get" ActionGitHubTaskPRUpdated = "github.task_pr.updated" // Notification ActionGitHubTaskPRDeleted = "github.task_pr.deleted" // Notification ActionGitHubTaskCIOptionsUpdated = "github.task_ci_options.updated" // Notification ActionGitHubRateLimitUpdated = "github.rate_limit.updated" // Notification ActionGitHubPRDiscoveryHealthUpdated = "github.pr_discovery_health.updated" // Notification ActionGitHubPRFeedbackNotify = "github.pr_feedback.notify" // Notification ActionGitHubNewReviewPRNotify = "github.new_review_pr.notify" // Notification ActionGitHubTaskPRSync = "github.task_pr.sync" ActionGitHubStats = "github.stats" ActionGitHubCheckSessionPR = "github.check_session_pr" ActionGitLabCheckSessionMR = "gitlab.check_session_mr" // Issue watch actions ActionGitHubIssueWatchesList = "github.issue_watches.list" ActionGitHubIssueWatchCreate = "github.issue_watches.create" ActionGitHubIssueWatchUpdate = "github.issue_watches.update" ActionGitHubIssueWatchDelete = "github.issue_watches.delete" ActionGitHubIssueTrigger = "github.issue_watches.trigger" ActionGitHubIssueTriggerAll = "github.issue_watches.trigger_all" ActionGitHubNewIssueNotify = "github.new_issue.notify" // Notification // Action preset actions for the /github page quick-launch prompts. ActionGitHubActionPresetsList = "github.action_presets.list" ActionGitHubActionPresetsUpdate = "github.action_presets.update" ActionGitHubActionPresetsReset = "github.action_presets.reset" // Manual cleanup sweeps over all dedup rows (review/issue). Used by the // settings-page button so users can drain piled-up tasks on demand. ActionGitHubCleanupReviewTasks = "github.cleanup.review_tasks" ActionGitHubCleanupIssueTasks = "github.cleanup.issue_tasks" ) // GitLab integration notifications const ( ActionGitLabTaskMRUpdated = "gitlab.task_mr.updated" // Notification ActionGitLabTaskMRDeleted = "gitlab.task_mr.deleted" // Notification ActionGitLabTaskMRAutomationUpdated = "gitlab.task_mr_options.updated" // Notification ) // Jira integration actions const ( ActionJiraConfigGet = "jira.config.get" ActionJiraConfigSet = "jira.config.set" ActionJiraConfigDelete = "jira.config.delete" ActionJiraConfigTest = "jira.config.test" ActionJiraTicketGet = "jira.ticket.get" ActionJiraTicketTransition = "jira.ticket.transition" ActionJiraProjectsList = "jira.projects.list" ) // Linear integration actions const ( ActionLinearConfigGet = "linear.config.get" ActionLinearConfigSet = "linear.config.set" ActionLinearConfigDelete = "linear.config.delete" ActionLinearConfigTest = "linear.config.test" ActionLinearIssueGet = "linear.issue.get" ActionLinearIssueTransition = "linear.issue.transition" ActionLinearTeamsList = "linear.teams.list" ) // Slack integration actions const ( ActionSlackConfigGet = "slack.config.get" ActionSlackConfigSet = "slack.config.set" ActionSlackConfigDelete = "slack.config.delete" ActionSlackConfigTest = "slack.config.test" ) // Office notification actions (server -> client) const ( ActionOfficeTaskUpdated = "office.task.updated" ActionOfficeTaskCreated = "office.task.created" ActionOfficeTaskMoved = "office.task.moved" ActionOfficeTaskStatus = "office.task.status_changed" ActionOfficeTaskDecision = "office.task.decision_recorded" ActionOfficeTaskReview = "office.task.review_requested" ActionOfficeCommentCreated = "office.comment.created" ActionOfficeAgentCompleted = "office.agent.completed" ActionOfficeAgentFailed = "office.agent.failed" ActionOfficeAgentUpdated = "office.agent.updated" ActionOfficeApprovalCreated = "office.approval.created" ActionOfficeApprovalResolved = "office.approval.resolved" ActionOfficeCostRecorded = "office.cost.recorded" ActionOfficeRunQueued = "office.run.queued" ActionOfficeRunProcessed = "office.run.processed" ActionOfficeRoutineTriggered = "office.routine.triggered" ActionOfficeActivityCreated = "office.activity.created" ActionRunEventAppended = "run.event.appended" // Office provider-routing events. ActionOfficeProviderHealthChanged = "office.provider.health_changed" ActionOfficeRouteAttemptAppended = "office.route_attempt.appended" ActionOfficeRoutingSettingsUpdated = "office.routing.settings_updated" ) // Automation actions const ( ActionAutomationList = "automation.list" ActionAutomationGet = "automation.get" ActionAutomationCreate = "automation.create" ActionAutomationUpdate = "automation.update" ActionAutomationDelete = "automation.delete" ActionAutomationEnable = "automation.enable" ActionAutomationDisable = "automation.disable" ActionAutomationTrigger = "automation.trigger" ActionAutomationRunsList = "automation.runs.list" ActionAutomationRunsListWorkspace = "automation.runs.list_workspace" ActionAutomationSummaries = "automation.summaries" ActionAutomationSummary = "automation.summary" ActionAutomationTriggerAdd = "automation.trigger.add" ActionAutomationTriggerUpdate = "automation.trigger.update" ActionAutomationTriggerDelete = "automation.trigger.delete" ActionAutomationTriggerTypes = "automation.trigger_types" ActionAutomationWebhookRevealSecret = "automation.webhook.reveal_secret" ActionAutomationRunDelete = "automation.run.delete" ActionAutomationRunStop = "automation.run.stop" ActionAutomationRunsDeleteAll = "automation.runs.delete_all" ) // Error codes const ( ErrorCodeBadRequest = "BAD_REQUEST" ErrorCodeNotFound = "NOT_FOUND" ErrorCodeInternalError = "INTERNAL_ERROR" ErrorCodeUnauthorized = "UNAUTHORIZED" ErrorCodeForbidden = "FORBIDDEN" ErrorCodeValidation = "VALIDATION_ERROR" ErrorCodeConflict = "CONFLICT" ErrorCodeUnavailable = "UNAVAILABLE" ErrorCodeUnknownAction = "UNKNOWN_ACTION" ErrorCodePlanCommentsChanged = "plan_comments_changed" ErrorCodePreviewFeedbackChanged = "preview_feedback_changed" ErrorCodePrimarySessionChanged = "primary_session_changed" )