Skip to main content
Blitz
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

workspace.proto

Generated from proto/blitz/v1/workspace.proto by proto-gen-md-diagrams.

Imports

Import Description
blitz/v1/session.proto
blitz/v1/turn.proto
google/protobuf/duration.proto
google/protobuf/timestamp.proto

Options

Name Value Description
go_package github.com/retail-cortex/blitz/proto/blitz/v1

blitz.v1 Diagram

classDiagram
direction LR
%% Mermaid Diagram for package: blitz.v1

%% Saved reports where a change was written in the config file. The change applies even when saving fails.

class Saved {
  + string path
  + string error
}

%% Request message for WorkspaceService.Shutdown.

class ShutdownRequest {
}

%% Response message for WorkspaceService.Shutdown: sent before the service stops.

class ShutdownResponse {
}

%% Request message for WorkspaceService.GetServiceInfo.

class GetServiceInfoRequest {
}

%% Response message for WorkspaceService.GetServiceInfo.

class GetServiceInfoResponse {
  + string version
  + string executable
  + google.protobuf.Timestamp started
  + int32 pid
  + bool replaced
}

%% Request message for WorkspaceService.ListLogDays.

class ListLogDaysRequest {
}

%% Response message for WorkspaceService.ListLogDays.

class ListLogDaysResponse {
  + List~string~ days
  + string dir
}

%% Request message for WorkspaceService.ReadLog.

class ReadLogRequest {
  + string day
  + string min_level
  + string text
  + int32 limit
}

%% A field of a log record.

class LogAttr {
  + string key
  + string value
}

%% A log record.

class LogEntry {
  + google.protobuf.Timestamp time
  + string level
  + string message
  + List~LogAttr~ attrs
}
LogEntry --> `LogAttr`

%% Response message for WorkspaceService.ReadLog.

class ReadLogResponse {
  + string day
  + string path
  + List~LogEntry~ entries
  + int32 matched
}
ReadLogResponse --> `LogEntry`

%% Request message for WorkspaceService.DeleteLogDay.

class DeleteLogDayRequest {
  + string day
}

%% Response message for WorkspaceService.DeleteLogDay.

class DeleteLogDayResponse {
}

%% Request message for WorkspaceService.ListWorkspaces.

class ListWorkspacesRequest {
}

%% Response message for WorkspaceService.ListWorkspaces.

class ListWorkspacesResponse {
  + List~string~ workspaces
}

%% Request message for WorkspaceService.CloseWorkspace.

class CloseWorkspaceRequest {
  + string workspace
}

%% Response message for WorkspaceService.CloseWorkspace.

class CloseWorkspaceResponse {
}

%% Request message for WorkspaceService.GetSandbox.

class GetSandboxRequest {
  + string workspace
}

%% Response message for WorkspaceService.GetSandbox.

class GetSandboxResponse {
  + List~string~ summary
}

%% AgentInfo describes an agent.

class AgentInfo {
  + string name
  + string display_name
  + string description
  + bool active
  + string pinned_model
}

%% Request message for WorkspaceService.ListAgents.

class ListAgentsRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListAgents.

class ListAgentsResponse {
  + List~AgentInfo~ agents
}
ListAgentsResponse --> `AgentInfo`

%% Request message for WorkspaceService.SetAgent.

class SetAgentRequest {
  + string workspace
  + string name
}

%% Response message for WorkspaceService.SetAgent.

class SetAgentResponse {
  + AgentInfo agent
}
SetAgentResponse --> `AgentInfo`

%% Suggestion is one welcome tile.

class Suggestion {
  + SuggestionKind kind
  + string title
  + string prompt
  + string session_id
  + string worker
  + int32 count
  + string detail
}
Suggestion --> `SuggestionKind`

%% Request message for WorkspaceService.GetSuggestions.

class GetSuggestionsRequest {
  + string workspace
}

%% Response message for WorkspaceService.GetSuggestions.

class GetSuggestionsResponse {
  + List~Suggestion~ suggestions
  + bool harness_missing
  + bool pending
}
GetSuggestionsResponse --> `Suggestion`

%% AgentDefinition is an agent's file: its frontmatter and its prompt.

class AgentDefinition {
  + string name
  + string display_name
  + string description
  + List~string~ tools
  + string default_model
  + string agency_level
  + string permission_mode
  + int32 max_turns
  + bool background
  + string isolation
  + Optional~double~ temperature
  + Optional~double~ top_p
  + Optional~int32~ max_tokens
  + string effort
  + Optional~int32~ thinking_budget
  + string prompt
}

%% AgentFile is one agent file of a scope.

class AgentFile {
  + string path
  + AgentDefinition agent
  + string problem
}
AgentFile --> `AgentDefinition`

%% Request message for WorkspaceService.ListAgentFiles.

class ListAgentFilesRequest {
  + string workspace
  + AgentScope scope
}
ListAgentFilesRequest --> `AgentScope`

%% Response message for WorkspaceService.ListAgentFiles.

class ListAgentFilesResponse {
  + List~AgentFile~ files
  + string dir
}
ListAgentFilesResponse --> `AgentFile`

%% Request message for WorkspaceService.SaveAgentFile.

class SaveAgentFileRequest {
  + string workspace
  + AgentScope scope
  + string previous_name
  + AgentDefinition agent
}
SaveAgentFileRequest --> `AgentScope`
SaveAgentFileRequest --> `AgentDefinition`

%% Response message for WorkspaceService.SaveAgentFile.

class SaveAgentFileResponse {
  + AgentFile file
  + List~string~ problems
}
SaveAgentFileResponse --> `AgentFile`

%% Request message for WorkspaceService.DeleteAgentFile.

class DeleteAgentFileRequest {
  + string workspace
  + AgentScope scope
  + string name
  + string path
}
DeleteAgentFileRequest --> `AgentScope`

%% Response message for WorkspaceService.DeleteAgentFile.

class DeleteAgentFileResponse {
}

%% Request message for WorkspaceService.GetModel.

class GetModelRequest {
  + string workspace
}

%% Response message for WorkspaceService.GetModel.

class GetModelResponse {
  + string name
  + string provider
  + string unavailable
}

%% Request message for WorkspaceService.SetModel.

class SetModelRequest {
  + string workspace
  + string ref
}

%% Response message for WorkspaceService.SetModel.

class SetModelResponse {
  + string active_pin
}

%% Request message for WorkspaceService.PinModel.

class PinModelRequest {
  + string workspace
  + string agent
  + string ref
}

%% Response message for WorkspaceService.PinModel.

class PinModelResponse {
  + string agent
  + string model
  + Saved saved
}
PinModelResponse --> `Saved`

%% Request message for WorkspaceService.UnpinModel.

class UnpinModelRequest {
  + string workspace
  + string agent
}

%% Response message for WorkspaceService.UnpinModel.

class UnpinModelResponse {
  + string agent
  + string model
  + Saved saved
}
UnpinModelResponse --> `Saved`

%% ModelSettings are a model's generation settings; unset fields use the global value or the provider's default.

class ModelSettings {
  + Optional~double~ temperature
  + Optional~int32~ max_tokens
  + Optional~double~ top_p
  + Optional~int32~ seed
  + Optional~string~ reasoning_effort
  + Optional~int32~ thinking_budget
}

%% ModelSettingsInfo is one model's settings and what applies otherwise.

class ModelSettingsInfo {
  + string model
  + string provider
  + ModelSettings settings
  + double global_temperature
  + int32 global_max_tokens
}
ModelSettingsInfo --> `ModelSettings`

%% Request message for WorkspaceService.GetModelSettings.

class GetModelSettingsRequest {
  + string workspace
  + string ref
}

%% Response message for WorkspaceService.GetModelSettings.

class GetModelSettingsResponse {
  + Map~string,  ModelSettings~ all
  + ModelSettingsInfo model
}
GetModelSettingsResponse .. ` ModelSettings`
GetModelSettingsResponse --> `ModelSettingsInfo`

%% Setting is one key=value change; an empty value clears the key.

class Setting {
  + string key
  + string value
}

%% Request message for WorkspaceService.UpdateModelSettings.

class UpdateModelSettingsRequest {
  + string workspace
  + string ref
  + bool reset
  + List~Setting~ changes
}
UpdateModelSettingsRequest --> `Setting`

%% Response message for WorkspaceService.UpdateModelSettings.

class UpdateModelSettingsResponse {
  + ModelSettingsInfo model
  + List~string~ unsupported
  + Saved saved
}
UpdateModelSettingsResponse --> `ModelSettingsInfo`
UpdateModelSettingsResponse --> `Saved`

%% Request message for WorkspaceService.GetSettings.

class GetSettingsRequest {
  + string workspace
}

%% Response message for WorkspaceService.GetSettings.

class GetSettingsResponse {
  + string agency
  + string model
  + string provider
  + string agent
  + string locale
  + bool images_enabled
  + string permission_mode
  + string effort
  + string style
  + string speech_model
  + string speech_error
  + List~AcceptedMedia~ accepted_media
}
GetSettingsResponse --> `AcceptedMedia`

%% AcceptedMedia is a kind of attachment a model takes.

class AcceptedMedia {
  + string kind
  + List~string~ mime_types
  + List~string~ extensions
  + int64 max_bytes
}

%% Request message for WorkspaceService.SetPermissionMode.

class SetPermissionModeRequest {
  + string workspace
  + string mode
}

%% Response message for WorkspaceService.SetPermissionMode.

class SetPermissionModeResponse {
  + string mode
}

%% Command is a custom slash command.

class Command {
  + string name
  + string description
  + string argument_hint
  + string source
}

%% Request message for WorkspaceService.ListCommands.

class ListCommandsRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListCommands.

class ListCommandsResponse {
  + List~Command~ commands
}
ListCommandsResponse --> `Command`

%% PermissionRule is an allow, ask or deny rule.

class PermissionRule {
  + string effect
  + string rule
  + string source
}

%% Request message for WorkspaceService.ListPermissionRules.

class ListPermissionRulesRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListPermissionRules.

class ListPermissionRulesResponse {
  + List~PermissionRule~ rules
  + string problem
}
ListPermissionRulesResponse --> `PermissionRule`

%% Request message for WorkspaceService.AddPermissionRule.

class AddPermissionRuleRequest {
  + string workspace
  + string effect
  + string rule
  + bool save
  + string scope
}

%% Response message for WorkspaceService.AddPermissionRule.

class AddPermissionRuleResponse {
  + string rule
  + bool next_start
  + Saved saved
}
AddPermissionRuleResponse --> `Saved`

%% Request message for WorkspaceService.RemovePermissionRule.

class RemovePermissionRuleRequest {
  + string workspace
  + string rule
  + bool save
  + string scope
}

%% Response message for WorkspaceService.RemovePermissionRule.

class RemovePermissionRuleResponse {
  + string rule
  + int32 removed
  + Saved saved
}
RemovePermissionRuleResponse --> `Saved`

%% Request message for WorkspaceService.SetSetting.

class SetSettingRequest {
  + string workspace
  + string key
  + string value
}

%% Response message for WorkspaceService.SetSetting.

class SetSettingResponse {
  + string key
}

%% SkillInfo describes a skill and what the skills policy lets it do.

class SkillInfo {
  + string name
  + string description
  + string version
  + string license
  + string category
  + string compatibility
  + List~string~ tags
  + string hash
  + List~SkillTool~ tools
  + List~SkillScript~ scripts
  + string tier
  + bool bypass
  + bool network
  + bool needs_network
  + List~string~ env
  + List~string~ withheld
  + List~string~ blocked
  + string dir
  + string kind
  + List~string~ agents
  + List~string~ members
  + List~string~ references
  + bool project
  + List~string~ package_files
  + bool needs_review
}
SkillInfo --> `SkillTool`
SkillInfo --> `SkillScript`

%% SkillTool is a tool a skill needs.

class SkillTool {
  + string name
  + List~string~ scopes
  + string why
}

%% SkillScript is one of a skill's scripts and the policy's verdict.

class SkillScript {
  + string name
  + string language
  + string source
  + google.protobuf.Duration timeout
  + List~string~ deps
  + bool allowed
  + List~string~ reasons
  + bool found
}

%% Request message for WorkspaceService.ListSkills.

class ListSkillsRequest {
  + string workspace
  + string query
}

%% Response message for WorkspaceService.ListSkills.

class ListSkillsResponse {
  + List~SkillInfo~ skills
}
ListSkillsResponse --> `SkillInfo`

%% Request message for WorkspaceService.GetSkill.

class GetSkillRequest {
  + string workspace
  + string name
}

%% Response message for WorkspaceService.GetSkill.

class GetSkillResponse {
  + SkillInfo skill
}
GetSkillResponse --> `SkillInfo`

%% What Studio's skill form edits.

class SkillSpec {
  + string name
  + string description
  + string tools
  + List~string~ agents
  + List~string~ members
  + string instructions
}

%% A skill as Studio edits it.

class SkillFile {
  + SkillInfo skill
  + string path
  + string hash
  + SkillSpec spec
  + bool editable
}
SkillFile --> `SkillInfo`
SkillFile --> `SkillSpec`

%% Request message for WorkspaceService.GetSkillFile.

class GetSkillFileRequest {
  + string workspace
  + string name
}

%% Response message for WorkspaceService.GetSkillFile.

class GetSkillFileResponse {
  + SkillFile file
}
GetSkillFileResponse --> `SkillFile`

%% Request message for WorkspaceService.SaveSkill.

class SaveSkillRequest {
  + string workspace
  + string previous_name
  + string hash
  + SkillSpec skill
}
SaveSkillRequest --> `SkillSpec`

%% Response message for WorkspaceService.SaveSkill.

class SaveSkillResponse {
  + SkillFile file
  + List~string~ problems
}
SaveSkillResponse --> `SkillFile`

%% Request message for WorkspaceService.DeleteSkill.

class DeleteSkillRequest {
  + string workspace
  + string name
}

%% Response message for WorkspaceService.DeleteSkill.

class DeleteSkillResponse {
}

%% Request message for WorkspaceService.ReadSkillFile.

class ReadSkillFileRequest {
  + string workspace
  + string name
  + string path
}

%% Response message for WorkspaceService.ReadSkillFile.

class ReadSkillFileResponse {
  + bytes content
}

%% Request message for WorkspaceService.WriteSkillFile.

class WriteSkillFileRequest {
  + string workspace
  + string name
  + string path
  + bytes content
}

%% Response message for WorkspaceService.WriteSkillFile.

class WriteSkillFileResponse {
  + SkillFile file
}
WriteSkillFileResponse --> `SkillFile`

%% Request message for WorkspaceService.DeleteSkillFile.

class DeleteSkillFileRequest {
  + string workspace
  + string name
  + string path
}

%% Response message for WorkspaceService.DeleteSkillFile.

class DeleteSkillFileResponse {
  + SkillFile file
}
DeleteSkillFileResponse --> `SkillFile`

%% Request message for WorkspaceService.CopySkill.

class CopySkillRequest {
  + string workspace
  + string from
  + string name
}

%% Response message for WorkspaceService.CopySkill.

class CopySkillResponse {
  + SkillFile file
  + List~string~ problems
}
CopySkillResponse --> `SkillFile`

%% Request message for WorkspaceService.RunSkillScript.

class RunSkillScriptRequest {
  + string workspace
  + string name
  + string script
  + List~string~ args
}

%% Response message for WorkspaceService.RunSkillScript.

class RunSkillScriptResponse {
  + int32 exit_code
  + string stdout
  + string stderr
  + bool timed_out
  + string sandbox
  + List~string~ output_files
  + string error
}

%% Env is an isolated Python environment built for skill scripts.

class Env {
  + string key
  + List~string~ deps
  + List~string~ skills
  + int64 size
  + google.protobuf.Timestamp last_used
  + bool ready
}

%% Request message for WorkspaceService.ListEnvs.

class ListEnvsRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListEnvs.

class ListEnvsResponse {
  + List~Env~ envs
}
ListEnvsResponse --> `Env`

%% Request message for WorkspaceService.RemoveEnv.

class RemoveEnvRequest {
  + string workspace
  + string key
}

%% Response message for WorkspaceService.RemoveEnv.

class RemoveEnvResponse {
}

%% Request message for WorkspaceService.PruneEnvs.

class PruneEnvsRequest {
  + string workspace
}

%% EnvError is an environment that couldn't be removed.

class EnvError {
  + string key
  + string error
}

%% Response message for WorkspaceService.PruneEnvs.

class PruneEnvsResponse {
  + int32 removed
  + int64 freed
  + List~EnvError~ failed
}
PruneEnvsResponse --> `EnvError`

%% MCPServer is a configured MCP server.

class MCPServer {
  + string name
  + string target
  + bool auto_approve
  + bool disabled
  + string state
  + string error
  + int32 tools
}

%% Request message for WorkspaceService.ListMCPServers.

class ListMCPServersRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListMCPServers.

class ListMCPServersResponse {
  + List~MCPServer~ servers
}
ListMCPServersResponse --> `MCPServer`

%% Request message for WorkspaceService.RestartMCPServer.

class RestartMCPServerRequest {
  + string workspace
  + string name
}

%% Response message for WorkspaceService.RestartMCPServer.

class RestartMCPServerResponse {
}

%% ToolInfo is a tool an agent can call.

class ToolInfo {
  + string name
  + string description
  + bool plan_allowed
}

%% MCPOffer is an MCP server offered to an agent.

class MCPOffer {
  + string server
  + List~string~ tools
  + string prefix
}

%% Request message for WorkspaceService.ListTools.

class ListToolsRequest {
  + string workspace
  + bool all
}

%% Response message for WorkspaceService.ListTools.

class ListToolsResponse {
  + string agent
  + List~ToolInfo~ tools
  + List~MCPOffer~ mcp
}
ListToolsResponse --> `ToolInfo`
ListToolsResponse --> `MCPOffer`

%% Request message for WorkspaceService.ReloadMemory.

class ReloadMemoryRequest {
  + string workspace
}

%% Response message for WorkspaceService.ReloadMemory.

class ReloadMemoryResponse {
  + List~string~ paths
  + List~string~ files
}

%% Request message for WorkspaceService.ReloadAgentFiles.

class ReloadAgentFilesRequest {
  + string workspace
}

%% Response message for WorkspaceService.ReloadAgentFiles.

class ReloadAgentFilesResponse {
  + int32 agents
  + int32 skills
  + List~string~ files
  + List~string~ problems
}

%% Request message for WorkspaceService.AddMemory.

class AddMemoryRequest {
  + string workspace
  + string text
}

%% Response message for WorkspaceService.AddMemory.

class AddMemoryResponse {
  + string path
}

%% LocaleInfo names a language with an interface catalog.

class LocaleInfo {
  + string tag
  + string name
}

%% Request message for WorkspaceService.ListLocales.

class ListLocalesRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListLocales.

class ListLocalesResponse {
  + List~LocaleInfo~ locales
  + string custom_dir
}
ListLocalesResponse --> `LocaleInfo`

%% Request message for WorkspaceService.SetLocale.

class SetLocaleRequest {
  + string workspace
  + string input
}

%% Response message for WorkspaceService.SetLocale.

class SetLocaleResponse {
  + string tag
  + string native_name
  + string language_name
  + bool has_catalog
  + Saved saved
}
SetLocaleResponse --> `Saved`

%% Checkpoint is the files one turn changed.

class Checkpoint {
  + int32 id
  + string label
  + google.protobuf.Timestamp time
  + List~string~ files
}

%% Request message for WorkspaceService.ListCheckpoints.

class ListCheckpointsRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListCheckpoints.

class ListCheckpointsResponse {
  + List~Checkpoint~ checkpoints
}
ListCheckpointsResponse --> `Checkpoint`

%% Request message for WorkspaceService.Undo.

class UndoRequest {
  + string workspace
  + bool force
}

%% Response message for WorkspaceService.Undo.

class UndoResponse {
  + string label
  + List~string~ restored
  + ErrorInfo error
}
UndoResponse --> `ErrorInfo`

%% Request message for WorkspaceService.GetDiff.

class GetDiffRequest {
  + string workspace
  + bool git
  + bool color
}

%% Response message for WorkspaceService.GetDiff.

class GetDiffResponse {
  + string diff
}

%% Approval is a standing permission.

class Approval {
  + string key
  + string kind
  + string subject
  + string dir
  + bool always
  + google.protobuf.Timestamp added
}

%% Request message for WorkspaceService.ListApprovals.

class ListApprovalsRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListApprovals.

class ListApprovalsResponse {
  + List~Approval~ approvals
}
ListApprovalsResponse --> `Approval`

%% Request message for WorkspaceService.RevokeApprovals.

class RevokeApprovalsRequest {
  + string workspace
  + List~string~ keys
  + bool all
}

%% Response message for WorkspaceService.RevokeApprovals.

class RevokeApprovalsResponse {
  + int32 revoked
  + ErrorInfo error
}
RevokeApprovalsResponse --> `ErrorInfo`

%% Process is a background process the agent started, and how it is.

class Process {
  + int32 id
  + string command
  + bool running
  + int32 exit_code
  + int64 runtime_ms
}

%% Request message for WorkspaceService.ListProcesses.

class ListProcessesRequest {
  + string workspace
  + List~string~ session_ids
}

%% Response message for WorkspaceService.ListProcesses.

class ListProcessesResponse {
  + List~Process~ processes
}
ListProcessesResponse --> `Process`

%% Request message for WorkspaceService.GetProcessOutput.

class GetProcessOutputRequest {
  + string workspace
  + List~string~ session_ids
  + int32 id
}

%% Response message for WorkspaceService.GetProcessOutput.

class GetProcessOutputResponse {
  + string output
  + Process process
}
GetProcessOutputResponse --> `Process`

%% Request message for WorkspaceService.KillProcess.

class KillProcessRequest {
  + string workspace
  + List~string~ session_ids
  + int32 id
}

%% Response message for WorkspaceService.KillProcess.

class KillProcessResponse {
  + Process process
}
KillProcessResponse --> `Process`

%% Request message for WorkspaceService.AuditShell.

class AuditShellRequest {
  + string workspace
  + string command
  + int32 exit_code
  + string start_error
}

%% Response message for WorkspaceService.AuditShell.

class AuditShellResponse {
}

%% BackgroundTask is a sub-agent running beside the turn that started it.

class BackgroundTask {
  + string id
  + string agent
  + string prompt
  + string session_id
  + string state
  + google.protobuf.Timestamp started
  + google.protobuf.Timestamp ended
  + string result
  + string error
  + Usage usage
  + string worktree
  + string branch
}
BackgroundTask --> `Usage`

%% Request message for WorkspaceService.ListTasks.

class ListTasksRequest {
  + string workspace
  + List~string~ session_ids
}

%% Response message for WorkspaceService.ListTasks.

class ListTasksResponse {
  + List~BackgroundTask~ tasks
}
ListTasksResponse --> `BackgroundTask`

%% Request message for WorkspaceService.GetTask.

class GetTaskRequest {
  + string workspace
  + List~string~ session_ids
  + string id
}

%% Response message for WorkspaceService.GetTask.

class GetTaskResponse {
  + BackgroundTask task
  + List~string~ events
}
GetTaskResponse --> `BackgroundTask`

%% Request message for WorkspaceService.StopTask.

class StopTaskRequest {
  + string workspace
  + List~string~ session_ids
  + string id
}

%% TaskEvent is something that happened to a background task outside a turn.

class TaskEvent {
  + Oneof~BackgroundTask~ task [oneof: kind]
  + Oneof~ApprovalRequest~ approval_request [oneof: kind]
  + Oneof~Question~ question [oneof: kind]
  + Oneof~string~ resolved [oneof: kind]
  + Oneof~bool~ ready [oneof: kind]
  + Oneof~bool~ settings_changed [oneof: kind]
}
TaskEvent --> `BackgroundTask`
TaskEvent --> `ApprovalRequest`
TaskEvent --> `Question`

%% Request message for WorkspaceService.WatchTasks.

class WatchTasksRequest {
  + string workspace
  + List~string~ session_ids
}

%% Response message for WorkspaceService.WatchTasks.

class WatchTasksResponse {
  + TaskEvent event
}
WatchTasksResponse --> `TaskEvent`

%% Request message for WorkspaceService.ListTaskRequests.

class ListTaskRequestsRequest {
  + string workspace
  + List~string~ session_ids
}

%% Response message for WorkspaceService.ListTaskRequests.

class ListTaskRequestsResponse {
  + List~TaskEvent~ requests
}
ListTaskRequestsResponse --> `TaskEvent`

%% Response message for WorkspaceService.StopTask.

class StopTaskResponse {
  + BackgroundTask task
}
StopTaskResponse --> `BackgroundTask`

%% ProjectItem is one setting from a project file.

class ProjectItem {
  + string file
  + string kind
  + string key
  + string value
  + string reason
}

%% ProjectSettings are what a workspace's project files say.

class ProjectSettings {
  + List~string~ files
  + string state
  + string hash
  + bool loaded
  + List~ProjectItem~ applied
  + List~ProjectItem~ pending
  + List~ProjectItem~ ignored
  + List~string~ problems
}
ProjectSettings --> `ProjectItem`
ProjectSettings --> `ProjectItem`
ProjectSettings --> `ProjectItem`

%% Request message for WorkspaceService.GetProjectSettings.

class GetProjectSettingsRequest {
  + string workspace
}

%% Response message for WorkspaceService.GetProjectSettings.

class GetProjectSettingsResponse {
  + ProjectSettings settings
}
GetProjectSettingsResponse --> `ProjectSettings`

%% Request message for WorkspaceService.TakeProcessNotices.

class TakeProcessNoticesRequest {
  + string workspace
  + string session_id
}

%% Response message for WorkspaceService.TakeProcessNotices.

class TakeProcessNoticesResponse {
  + List~string~ notices
}

%% Style is an output style.

class Style {
  + string name
  + string description
  + string source
  + bool active
}

%% Request message for WorkspaceService.ListStyles.

class ListStylesRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListStyles.

class ListStylesResponse {
  + List~Style~ styles
}
ListStylesResponse --> `Style`

%% Hook is a configured hook.

class Hook {
  + string event
  + string type
  + string match
  + string if
  + string runs
  + string source
  + bool fail_closed
  + List~HookFailure~ failures
}
Hook --> `HookFailure`

%% HookFailure is one failed run of a hook.

class HookFailure {
  + google.protobuf.Timestamp time
  + string error
}

%% Request message for WorkspaceService.ListHooks.

class ListHooksRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListHooks.

class ListHooksResponse {
  + List~Hook~ hooks
}
ListHooksResponse --> `Hook`

%% Note is something the agent remembered across sessions of a workspace.

class Note {
  + string name
  + string kind
  + string text
  + google.protobuf.Timestamp time
  + string path
}

%% Request message for WorkspaceService.ListNotes.

class ListNotesRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListNotes.

class ListNotesResponse {
  + List~Note~ notes
}
ListNotesResponse --> `Note`

%% Request message for WorkspaceService.ForgetNote.

class ForgetNoteRequest {
  + string workspace
  + string name
}

%% Response message for WorkspaceService.ForgetNote.

class ForgetNoteResponse {
}

%% Request message for WorkspaceService.ForgetProjectTrust.

class ForgetProjectTrustRequest {
  + string workspace
}

%% Response message for WorkspaceService.ForgetProjectTrust.

class ForgetProjectTrustResponse {
  + bool reopened
}

%% Request message for WorkspaceService.TrustProject.

class TrustProjectRequest {
  + string workspace
  + string hash
  + bool trusted
}

%% Response message for WorkspaceService.TrustProject.

class TrustProjectResponse {
  + bool reopened
}

%% Image is an image or a PDF stored for a prompt.

class Image {
  + string id
  + string name
  + string mime_type
  + int32 width
  + int32 height
  + int64 size
  + bool resized
  + int32 pages
  + string kind
  + double seconds
}

%% Request message for WorkspaceService.LoadImage.

class LoadImageRequest {
  + string workspace
  + string path
}

%% Response message for WorkspaceService.LoadImage.

class LoadImageResponse {
  + Image image
}
LoadImageResponse --> `Image`

%% Request message for WorkspaceService.AddImage.

class AddImageRequest {
  + string workspace
  + string name
  + bytes data
}

%% Response message for WorkspaceService.AddImage.

class AddImageResponse {
  + Image image
}
AddImageResponse --> `Image`

%% Link is a search result handed to the agent.

class Link {
  + string title
  + string url
}

%% Request message for WorkspaceService.GetSearchProvider.

class GetSearchProviderRequest {
  + string workspace
}

%% Response message for WorkspaceService.GetSearchProvider.

class GetSearchProviderResponse {
  + string provider
}

%% Request message for WorkspaceService.SearchWeb.

class SearchWebRequest {
  + string workspace
  + string terms
}

%% Response message for WorkspaceService.SearchWeb.

class SearchWebResponse {
  + string provider
  + List~Link~ links
  + string prompt
}
SearchWebResponse --> `Link`

%% Request message for WorkspaceService.SearchWorkspace.

class SearchWorkspaceRequest {
  + string workspace
  + string query
  + List~string~ sources
  + int32 limit
  + string mode
  + bool hidden
}

%% SearchHit is one item workspace search found.

class SearchHit {
  + string source
  + string ref
  + string title
  + int32 line
  + string section
  + string snippet
  + double score
  + string summary
  + List~string~ tags
}

%% Response message for WorkspaceService.SearchWorkspace.

class SearchWorkspaceResponse {
  + List~SearchHit~ hits
  + List~string~ sources
}
SearchWorkspaceResponse --> `SearchHit`

%% Request message for WorkspaceService.GetSearchStatus.

class GetSearchStatusRequest {
  + string workspace
}

%% SearchStatus is how a workspace's search index is.

class SearchStatus {
  + bool enabled
  + Map~string,  int32~ items
  + bool scanning
  + google.protobuf.Timestamp last_scan
  + int32 unreadable
  + string error
  + string embedding_model
  + int32 embedded
  + string embed_error
  + int32 enriched
  + string enrich_error
  + SearchSettings settings
  + string problem
}
SearchStatus --> `SearchSettings`

%% SearchSettings are a workspace's [search] settings (set with ConfigService.SetConfigValue: search.enabled, search.sources, …).

class SearchSettings {
  + bool enabled
  + List~string~ sources
  + string embedding_model
  + bool enrich
  + string enrich_model
  + int32 enrich_daily_limit
  + bool include_ignored
}

%% Response message for WorkspaceService.GetSearchStatus.

class GetSearchStatusResponse {
  + SearchStatus status
}
GetSearchStatusResponse --> `SearchStatus`

%% Request message for WorkspaceService.Reindex.

class ReindexRequest {
  + string workspace
}

%% Response message for WorkspaceService.Reindex.

class ReindexResponse {
}

%% Request message for WorkspaceService.GetGitStatus.

class GetGitStatusRequest {
  + string workspace
}

%% Response message for WorkspaceService.GetGitStatus.

class GetGitStatusResponse {
  + bool repo
  + string branch
  + int32 changed
  + bool git
  + bool remote
  + string upstream
  + int32 ahead
  + int32 behind
  + GitOperation operation
  + List~string~ conflicts
  + string merging
}
GetGitStatusResponse --> `GitOperation`

%% Request message for WorkspaceService.InitGitRepo.

class InitGitRepoRequest {
  + string workspace
}

%% Response message for WorkspaceService.InitGitRepo.

class InitGitRepoResponse {
  + GetGitStatusResponse status
}
InitGitRepoResponse --> `GetGitStatusResponse`

%% A file in the index, for the commit dialog.

class StagedFile {
  + string status
  + string path
}

%% Request message for WorkspaceService.DraftCommit.

class DraftCommitRequest {
  + string workspace
  + bool stage_all
}

%% Response message for WorkspaceService.DraftCommit.

class DraftCommitResponse {
  + List~StagedFile~ files
  + string message
  + string problem
}
DraftCommitResponse --> `StagedFile`

%% Request message for WorkspaceService.Commit.

class CommitRequest {
  + string workspace
  + string message
}

%% Response message for WorkspaceService.Commit.

class CommitResponse {
  + string hash
  + string subject
}

%% Request message for WorkspaceService.FetchRemote.

class FetchRemoteRequest {
  + string workspace
}

%% Response message for WorkspaceService.FetchRemote.

class FetchRemoteResponse {
  + GetGitStatusResponse status
}
FetchRemoteResponse --> `GetGitStatusResponse`

%% Request message for WorkspaceService.Pull.

class PullRequest {
  + string workspace
}

%% Response message for WorkspaceService.Pull.

class PullResponse {
  + PullOutcome outcome
  + int32 commits
  + GetGitStatusResponse status
}
PullResponse --> `PullOutcome`
PullResponse --> `GetGitStatusResponse`

%% Request message for WorkspaceService.Push.

class PushRequest {
  + string workspace
}

%% Response message for WorkspaceService.Push.

class PushResponse {
  + string target
  + GetGitStatusResponse status
}
PushResponse --> `GetGitStatusResponse`

%% Request message for WorkspaceService.ResolveConflict.

class ResolveConflictRequest {
  + string workspace
  + string path
  + ConflictChoice choice
}
ResolveConflictRequest --> `ConflictChoice`

%% Response message for WorkspaceService.ResolveConflict.

class ResolveConflictResponse {
  + GetGitStatusResponse status
}
ResolveConflictResponse --> `GetGitStatusResponse`

%% Request message for WorkspaceService.CompleteMerge.

class CompleteMergeRequest {
  + string workspace
}

%% Response message for WorkspaceService.CompleteMerge.

class CompleteMergeResponse {
  + GetGitStatusResponse status
}
CompleteMergeResponse --> `GetGitStatusResponse`

%% Request message for WorkspaceService.AbortMerge.

class AbortMergeRequest {
  + string workspace
}

%% Response message for WorkspaceService.AbortMerge.

class AbortMergeResponse {
  + GetGitStatusResponse status
}
AbortMergeResponse --> `GetGitStatusResponse`

%% A branch the workspace can switch to or merge.

class Branch {
  + string name
  + bool remote
  + bool current
  + string upstream
  + string subject
  + google.protobuf.Timestamp time
}

%% Request message for WorkspaceService.ListBranches.

class ListBranchesRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListBranches.

class ListBranchesResponse {
  + List~Branch~ branches
}
ListBranchesResponse --> `Branch`

%% Request message for WorkspaceService.SwitchBranch.

class SwitchBranchRequest {
  + string workspace
  + string branch
}

%% Response message for WorkspaceService.SwitchBranch.

class SwitchBranchResponse {
  + GetGitStatusResponse status
}
SwitchBranchResponse --> `GetGitStatusResponse`

%% Request message for WorkspaceService.CreateBranch.

class CreateBranchRequest {
  + string workspace
  + string branch
}

%% Response message for WorkspaceService.CreateBranch.

class CreateBranchResponse {
  + GetGitStatusResponse status
}
CreateBranchResponse --> `GetGitStatusResponse`

%% Request message for WorkspaceService.MergeBranch.

class MergeBranchRequest {
  + string workspace
  + string branch
}

%% Response message for WorkspaceService.MergeBranch.

class MergeBranchResponse {
  + PullOutcome outcome
  + int32 commits
  + GetGitStatusResponse status
}
MergeBranchResponse --> `PullOutcome`
MergeBranchResponse --> `GetGitStatusResponse`

%% Request message for WorkspaceService.DraftManifest.

class DraftManifestRequest {
  + string workspace
  + string kind
  + string name
  + string description
  + string current
  + string request
  + string language
}

%% Response message for WorkspaceService.DraftManifest.

class DraftManifestResponse {
  + string text
  + List~string~ changes
  + string problem
}

%% A rule file: a gate (when set) or an instruction rule.

class RuleFile {
  + string name
  + string path
  + string when
  + string action
  + int32 order
  + List~string~ agents
  + string description
  + List~string~ paths
  + string text
  + string problem
  + bool editable
}

%% What Studio's rule form edits.

class RuleSpec {
  + string name
  + string when
  + string action
  + int32 order
  + List~string~ agents
  + string description
  + List~string~ paths
  + string text
}

%% Request message for WorkspaceService.ListRules.

class ListRulesRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListRules.

class ListRulesResponse {
  + List~RuleFile~ rules
  + string dir
}
ListRulesResponse --> `RuleFile`

%% Request message for WorkspaceService.SaveRule.

class SaveRuleRequest {
  + string workspace
  + string previous_name
  + RuleSpec rule
}
SaveRuleRequest --> `RuleSpec`

%% Response message for WorkspaceService.SaveRule.

class SaveRuleResponse {
  + RuleFile rule
  + List~string~ problems
}
SaveRuleResponse --> `RuleFile`

%% Request message for WorkspaceService.DeleteRule.

class DeleteRuleRequest {
  + string workspace
  + string name
}

%% Response message for WorkspaceService.DeleteRule.

class DeleteRuleResponse {
}

%% Request message for WorkspaceService.ReorderRules.

class ReorderRulesRequest {
  + string workspace
  + List~string~ names
}

%% Response message for WorkspaceService.ReorderRules.

class ReorderRulesResponse {
}

%% Request message for WorkspaceService.TryRule.

class TryRuleRequest {
  + string workspace
  + RuleSpec rule
  + string sample
}
TryRuleRequest --> `RuleSpec`

%% Response message for WorkspaceService.TryRule.

class TryRuleResponse {
  + bool pass
  + string reason
  + string problem
}

%% The limits guardrail's limits; zero or empty means none of that kind.

class GuardrailLimits {
  + double max_cost_usd
  + int32 max_turns
  + int32 max_files_changed
  + List~string~ allowed_domains
  + List~string~ commands
}

%% A guardrail file, or a built-in guardrail without one (its defaults).

class GuardrailFile {
  + string name
  + string path
  + string builtin
  + string stage
  + string action
  + List~string~ agents
  + List~string~ tools
  + string description
  + bool pii
  + bool judge
  + GuardrailLimits limits
  + string text
  + string problem
  + bool editable
  + bool off
}
GuardrailFile --> `GuardrailLimits`

%% A built-in guardrail: on by default.

class BuiltinGuardrail {
  + string id
  + string stage
  + string default_action
  + List~string~ actions
  + GuardrailFile file
}
BuiltinGuardrail --> `GuardrailFile`

%% What Studio's guardrail form edits.

class GuardrailSpec {
  + string name
  + string builtin
  + string stage
  + string action
  + List~string~ agents
  + List~string~ tools
  + string description
  + bool pii
  + bool judge
  + GuardrailLimits limits
  + string text
  + bool off
}
GuardrailSpec --> `GuardrailLimits`

%% Request message for WorkspaceService.ListGuardrails.

class ListGuardrailsRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListGuardrails.

class ListGuardrailsResponse {
  + List~BuiltinGuardrail~ builtins
  + List~GuardrailFile~ guardrails
  + string dir
}
ListGuardrailsResponse --> `BuiltinGuardrail`
ListGuardrailsResponse --> `GuardrailFile`

%% Request message for WorkspaceService.SaveGuardrail.

class SaveGuardrailRequest {
  + string workspace
  + string previous_name
  + GuardrailSpec guardrail
}
SaveGuardrailRequest --> `GuardrailSpec`

%% Response message for WorkspaceService.SaveGuardrail.

class SaveGuardrailResponse {
  + GuardrailFile guardrail
  + List~string~ problems
}
SaveGuardrailResponse --> `GuardrailFile`

%% Request message for WorkspaceService.DeleteGuardrail.

class DeleteGuardrailRequest {
  + string workspace
  + string name
}

%% Response message for WorkspaceService.DeleteGuardrail.

class DeleteGuardrailResponse {
}

%% Request message for WorkspaceService.TryGuardrail.

class TryGuardrailRequest {
  + string workspace
  + GuardrailSpec guardrail
  + string sample
}
TryGuardrailRequest --> `GuardrailSpec`

%% Response message for WorkspaceService.TryGuardrail.

class TryGuardrailResponse {
  + bool pass
  + string reason
  + string problem
}

%% A row of an eval's table.

class EvalCase {
  + string id
  + string name
  + string prompt
  + string output
  + string type
  + double threshold
  + string scope
}

%% An eval file in .agents/evals.

class EvalFile {
  + string name
  + string path
  + string description
  + List~string~ agents
  + List~string~ skills
  + string near
  + List~string~ allow
  + List~EvalCase~ cases
  + string problem
  + EvalRun last_run
}
EvalFile --> `EvalCase`
EvalFile --> `EvalRun`

%% What Studio's eval form edits.

class EvalSpec {
  + string name
  + string description
  + List~string~ agents
  + List~string~ skills
  + string near
  + List~string~ allow
  + List~EvalCase~ cases
}
EvalSpec --> `EvalCase`

%% One case run by one agent, and its score.

class EvalResult {
  + string case
  + string name
  + string agent
  + string type
  + string scope
  + string status
  + double score
  + double threshold
  + string prompt
  + string expected
  + string output
  + string reason
  + List~string~ refusals
  + double cost_usd
  + google.protobuf.Duration duration
}

%% A run of an eval.

class EvalRun {
  + string id
  + string eval
  + google.protobuf.Timestamp started
  + google.protobuf.Duration duration
  + string status
  + List~EvalResult~ results
  + double cost_usd
  + string error
  + Map~string,  int32~ counts
}
EvalRun --> `EvalResult`

%% Request message for WorkspaceService.ListEvals.

class ListEvalsRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListEvals.

class ListEvalsResponse {
  + List~EvalFile~ evals
  + string dir
}
ListEvalsResponse --> `EvalFile`

%% Request message for WorkspaceService.SaveEval.

class SaveEvalRequest {
  + string workspace
  + string previous_name
  + EvalSpec eval
}
SaveEvalRequest --> `EvalSpec`

%% Response message for WorkspaceService.SaveEval.

class SaveEvalResponse {
  + EvalFile eval
  + List~string~ problems
}
SaveEvalResponse --> `EvalFile`

%% Request message for WorkspaceService.DeleteEval.

class DeleteEvalRequest {
  + string workspace
  + string name
}

%% Response message for WorkspaceService.DeleteEval.

class DeleteEvalResponse {
}

%% Request message for WorkspaceService.RunEval.

class RunEvalRequest {
  + string workspace
  + string name
  + List~string~ cases
}

%% Response message for WorkspaceService.RunEval: the run as it starts, each result, then the finished run.

class RunEvalResponse {
  + Oneof~EvalRun~ started [oneof: event]
  + Oneof~EvalResult~ result [oneof: event]
  + Oneof~EvalRun~ finished [oneof: event]
}
RunEvalResponse --> `EvalRun`
RunEvalResponse --> `EvalResult`
RunEvalResponse --> `EvalRun`

%% Request message for WorkspaceService.ListEvalRuns.

class ListEvalRunsRequest {
  + string workspace
  + string name
  + int32 limit
}

%% Response message for WorkspaceService.ListEvalRuns.

class ListEvalRunsResponse {
  + List~EvalRun~ runs
}
ListEvalRunsResponse --> `EvalRun`

%% Request message for WorkspaceService.DraftEvalCases.

class DraftEvalCasesRequest {
  + string workspace
  + string agent
  + string request
  + List~EvalCase~ existing
}
DraftEvalCasesRequest --> `EvalCase`

%% Response message for WorkspaceService.DraftEvalCases.

class DraftEvalCasesResponse {
  + List~EvalCase~ cases
  + string problem
}
DraftEvalCasesResponse --> `EvalCase`

%% A workflow's step.

class FlowNode {
  + string id
  + string type
  + string title
  + double x
  + double y
  + string agent
  + List~string~ skills
  + string instructions
  + List~string~ rules
  + string skill
  + string script
  + List~string~ args
  + string path
  + List~FlowField~ fields
  + int32 retry_attempts
  + string retry_delay
  + string timeout
  + string server
  + string tool
  + string arguments_json
  + string url
  + string method
  + List~FlowPair~ query
  + List~FlowPair~ headers
  + string body
  + string json_body
  + FlowAuth auth
  + string workflow
  + string for_each
  + int32 concurrency
  + string form_json
  + string wait
  + string until
}
FlowNode --> `FlowField`
FlowNode --> `FlowPair`
FlowNode --> `FlowPair`
FlowNode --> `FlowAuth`

%% A paused workflow run's task: a human task's form waiting for an answer, or a timer waiting for its time.

class HumanTask {
  + string id
  + string run
  + string workspace
  + string workflow
  + string step
  + string title
  + string kind
  + string message
  + string a2ui_json
  + google.protobuf.Timestamp fire_at
  + google.protobuf.Timestamp created
  + string session_id
}

%% Request message for WorkspaceService.ListHumanTasks.

class ListHumanTasksRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListHumanTasks.

class ListHumanTasksResponse {
  + List~HumanTask~ tasks
  + string alerts
}
ListHumanTasksResponse --> `HumanTask`

%% Request message for WorkspaceService.WatchHumanTasks.

class WatchHumanTasksRequest {
  + string workspace
}

%% Response message for WorkspaceService.WatchHumanTasks: the tasks now (each message the whole list).

class WatchHumanTasksResponse {
  + List~HumanTask~ tasks
  + string alerts
}
WatchHumanTasksResponse --> `HumanTask`

%% Request message for WorkspaceService.AnswerHumanTask.

class AnswerHumanTaskRequest {
  + string workspace
  + string task_id
  + string action_json
  + string data_json
}

%% Response message for WorkspaceService.AnswerHumanTask.

class AnswerHumanTaskResponse {
  + BackgroundRun run
}
AnswerHumanTaskResponse --> `BackgroundRun`

%% A named value: a header, a query parameter.

class FlowPair {
  + string name
  + string value
}

%% How an API call authenticates.

class FlowAuth {
  + string type
  + string token
  + string username
  + string password
  + string name
  + string value
  + string in
  + string token_url
  + string client_id
  + string client_secret
  + List~string~ scopes
  + string audience
}

%% A value an extract step pulls out.

class FlowField {
  + string name
  + string type
  + string description
}

%% A link carrying a step's output to another.

class FlowEdge {
  + string from
  + string to
  + string when
  + string if
  + bool default
  + bool error
  + string label
}

%% A workflow file in .agents/workflows.

class WorkflowFile {
  + string name
  + string path
  + string description
  + List~FlowNode~ nodes
  + List~FlowEdge~ edges
  + string problem
  + string mode
}
WorkflowFile --> `FlowNode`
WorkflowFile --> `FlowEdge`

%% Request message for WorkspaceService.ListWorkflows.

class ListWorkflowsRequest {
  + string workspace
}

%% Response message for WorkspaceService.ListWorkflows.

class ListWorkflowsResponse {
  + List~WorkflowFile~ workflows
  + string dir
}
ListWorkflowsResponse --> `WorkflowFile`

%% Request message for WorkspaceService.SaveWorkflow.

class SaveWorkflowRequest {
  + string workspace
  + string previous_name
  + WorkflowFile workflow
}
SaveWorkflowRequest --> `WorkflowFile`

%% Response message for WorkspaceService.SaveWorkflow.

class SaveWorkflowResponse {
  + WorkflowFile workflow
  + List~string~ problems
}
SaveWorkflowResponse --> `WorkflowFile`

%% Request message for WorkspaceService.DeleteWorkflow.

class DeleteWorkflowRequest {
  + string workspace
  + string name
}

%% Response message for WorkspaceService.DeleteWorkflow.

class DeleteWorkflowResponse {
}

%% A workflow run's receipt (spec_workflows_043 WF-19): its envelope (what started it, when, on what) and routing slip (each step's run, in the order they ran), with what it spent.

class WorkflowRun {
  + string id
  + string workspace
  + string workflow
  + string origin
  + string session_id
  + string input
  + google.protobuf.Timestamp started
  + google.protobuf.Timestamp ended
  + string status
  + string error
  + string output
  + Usage usage
  + List~string~ models
  + List~WorkflowRunStep~ steps
  + List~WorkflowRunEvent~ events
  + string background_id
  + int32 approvals
  + string mode
}
WorkflowRun --> `Usage`
WorkflowRun --> `WorkflowRunStep`
WorkflowRun --> `WorkflowRunEvent`

%% One run of a workflow's step.

class WorkflowRunStep {
  + string id
  + string title
  + string type
  + string status
  + google.protobuf.Timestamp started
  + google.protobuf.Timestamp ended
  + int32 attempts
  + string agent
  + List~string~ models
  + Usage usage
  + string output
  + string stream
  + string error
}
WorkflowRunStep --> `Usage`

%% Something that happened in a workflow run.

class WorkflowRunEvent {
  + google.protobuf.Timestamp at
  + string step
  + string kind
  + string text
  + bool error
}

%% Request message for WorkspaceService.ListWorkflowRuns.

class ListWorkflowRunsRequest {
  + string workspace
  + string workflow
  + int32 limit
}

%% Response message for WorkspaceService.ListWorkflowRuns.

class ListWorkflowRunsResponse {
  + List~WorkflowRun~ runs
}
ListWorkflowRunsResponse --> `WorkflowRun`

%% Request message for WorkspaceService.GetWorkflowRun.

class GetWorkflowRunRequest {
  + string workspace
  + string id
}

%% Response message for WorkspaceService.GetWorkflowRun.

class GetWorkflowRunResponse {
  + WorkflowRun run
}
GetWorkflowRunResponse --> `WorkflowRun`

%% Request message for WorkspaceService.WatchWorkflowRun.

class WatchWorkflowRunRequest {
  + string workspace
  + string id
}

%% Response message for WorkspaceService.WatchWorkflowRun.

class WatchWorkflowRunResponse {
  + WorkflowRun run
}
WatchWorkflowRunResponse --> `WorkflowRun`

%% Request message for WorkspaceService.WatchWorkflowRuns.

class WatchWorkflowRunsRequest {
  + string workspace
}

%% Response message for WorkspaceService.WatchWorkflowRuns.

class WatchWorkflowRunsResponse {
  + List~WorkflowRun~ runs
}
WatchWorkflowRunsResponse --> `WorkflowRun`

%% Request message for WorkspaceService.StopWorkflowRun.

class StopWorkflowRunRequest {
  + string workspace
  + string id
}

%% Response message for WorkspaceService.StopWorkflowRun.

class StopWorkflowRunResponse {
}

%% A workspace's dashboard (spec_health_044).

class WorkspaceHealth {
  + google.protobuf.Timestamp at
  + List~HealthItem~ items
  + List~HealthDay~ days
  + List~HealthSignal~ signals
  + double overall
  + Map~string,  double~ by_kind
  + double previous_overall
  + google.protobuf.Timestamp last_check
  + double last_cost_usd
  + string skipped
  + string model
  + string schedule
  + google.protobuf.Timestamp next
  + double max_cost_usd
  + bool checking
  + HealthCheckProgress progress
  + int32 last_judged
  + List~string~ last_errors
}
WorkspaceHealth --> `HealthItem`
WorkspaceHealth --> `HealthDay`
WorkspaceHealth --> `HealthSignal`
WorkspaceHealth --> `HealthCheckProgress`

%% How far a check going is.

class HealthCheckProgress {
  + string item
  + int32 index
  + int32 total
  + double cost_usd
}

%% One agent, skill, rule, guardrail, eval, workflow or worker.

class HealthItem {
  + string kind
  + string name
  + string path
  + string detail
  + string problem
  + List~string~ flags
  + int32 uses
  + int32 fired
  + HealthRuns runs
  + HealthEvals evals
  + List~int32~ daily
  + HealthVerdict verdict
  + List~double~ history
}
HealthItem --> `HealthRuns`
HealthItem --> `HealthEvals`
HealthItem --> `HealthVerdict`

%% A workflow's or a worker's runs in the last 30 days.

class HealthRuns {
  + int32 runs
  + int32 done
  + int32 failed
  + int32 stopped
  + double cost_usd
  + int64 median_ms
  + google.protobuf.Timestamp last
  + string failing_step
}

%% An agent's or an eval's latest eval results.

class HealthEvals {
  + int32 runs
  + google.protobuf.Timestamp last
  + int32 passed
  + int32 cases
}

%% The judge's verdict on an item.

class HealthVerdict {
  + string model
  + google.protobuf.Timestamp at
  + List~HealthScore~ scores
  + double overall
  + string grade
  + string summary
  + List~string~ fixes
  + double cost_usd
  + bool current
}
HealthVerdict --> `HealthScore`

%% One rubric line's score.

class HealthScore {
  + string line
  + int32 score
  + string reason
}

%% One day's runs.

class HealthDay {
  + string date
  + int32 done
  + int32 failed
  + int32 stopped
  + double cost_usd
}

%% A safety signal: the reviewer's denials, a rule's or a guardrail's decisions, by what they were about.

class HealthSignal {
  + string kind
  + string about
  + int32 count
  + google.protobuf.Timestamp last
  + string detail
}

%% Request message for WorkspaceService.GetWorkspaceHealth.

class GetWorkspaceHealthRequest {
  + string workspace
}

%% Response message for WorkspaceService.GetWorkspaceHealth.

class GetWorkspaceHealthResponse {
  + WorkspaceHealth health
}
GetWorkspaceHealthResponse --> `WorkspaceHealth`

%% Request message for WorkspaceService.WatchWorkspaceHealth.

class WatchWorkspaceHealthRequest {
  + string workspace
}

%% Response message for WorkspaceService.WatchWorkspaceHealth.

class WatchWorkspaceHealthResponse {
  + WorkspaceHealth health
}
WatchWorkspaceHealthResponse --> `WorkspaceHealth`

%% Which items a check judges: kinds, items ("kind/name"), or all; force re-judges unchanged ones.

class HealthCheckScope {
  + List~string~ kinds
  + List~string~ items
  + bool force
}

%% Request message for WorkspaceService.EstimateHealthCheck.

class EstimateHealthCheckRequest {
  + string workspace
  + HealthCheckScope scope
}
EstimateHealthCheckRequest --> `HealthCheckScope`

%% Response message for WorkspaceService.EstimateHealthCheck.

class EstimateHealthCheckResponse {
  + int32 items
  + double cost_usd
  + bool priced
}

%% Request message for WorkspaceService.CheckWorkspaceHealth.

class CheckWorkspaceHealthRequest {
  + string workspace
  + HealthCheckScope scope
}
CheckWorkspaceHealthRequest --> `HealthCheckScope`

%% Response message for WorkspaceService.CheckWorkspaceHealth: one item's verdict (or why it has none), then a last one with done.

class CheckWorkspaceHealthResponse {
  + string item
  + int32 index
  + int32 total
  + HealthVerdict verdict
  + string error
  + double cost_usd
  + bool done
  + int32 judged
}
CheckWorkspaceHealthResponse --> `HealthVerdict`

%% Request message for WorkspaceService.StopHealthCheck.

class StopHealthCheckRequest {
  + string workspace
}

%% Response message for WorkspaceService.StopHealthCheck.

class StopHealthCheckResponse {
}

%% Request message for WorkspaceService.StartHealthCheck.

class StartHealthCheckRequest {
  + string workspace
  + HealthCheckScope scope
}
StartHealthCheckRequest --> `HealthCheckScope`

%% Response message for WorkspaceService.StartHealthCheck.

class StartHealthCheckResponse {
}

%% A composer conversation as it is.

class ComposeSession {
  + string id
  + string kind
  + List~ComposeTurn~ turns
  + bool asking
  + ComposeDraft draft
  + double cost_usd
}
ComposeSession --> `ComposeTurn`
ComposeSession --> `ComposeDraft`

%% One message of a composer conversation: the user's, or the composer's (a question with its suggested answers, or a draft's summary).

class ComposeTurn {
  + string role
  + string text
  + List~string~ options
}

%% A component the composer wrote: its name, a summary, its file, what the kind's checks still find wrong, and for a workflow the workflow itself.

class ComposeDraft {
  + string name
  + string summary
  + string file
  + List~string~ problems
  + WorkflowFile workflow
}
ComposeDraft --> `WorkflowFile`

%% Request message for WorkspaceService.StartCompose.

class StartComposeRequest {
  + string workspace
  + string kind
  + string request
  + string current
}

%% Response message for WorkspaceService.StartCompose.

class StartComposeResponse {
  + ComposeSession session
}
StartComposeResponse --> `ComposeSession`

%% Request message for WorkspaceService.AnswerCompose.

class AnswerComposeRequest {
  + string workspace
  + string id
  + string answer
}

%% Response message for WorkspaceService.AnswerCompose.

class AnswerComposeResponse {
  + ComposeSession session
}
AnswerComposeResponse --> `ComposeSession`

%% Request message for WorkspaceService.DropCompose.

class DropComposeRequest {
  + string workspace
  + string id
}

%% Response message for WorkspaceService.DropCompose.

class DropComposeResponse {
}
%% SuggestionKind is what a welcome tile does. The state kinds carry data for the front end to word in its own language; IDEA carries text.

class SuggestionKind{
  <<enumeration>>
  SUGGESTION_KIND_UNSPECIFIED
  SUGGESTION_KIND_SETUP
  SUGGESTION_KIND_CONTINUE
  SUGGESTION_KIND_CHANGES
  SUGGESTION_KIND_WORKER_FAILED
  SUGGESTION_KIND_IDEA
  SUGGESTION_KIND_HARNESS_UPDATE
}
%% AgentScope is where an agent's file is kept.

class AgentScope{
  <<enumeration>>
  AGENT_SCOPE_UNSPECIFIED
  AGENT_SCOPE_WORKSPACE
  AGENT_SCOPE_USER
}
%% What a repository is in the middle of.

class GitOperation{
  <<enumeration>>
  GIT_OPERATION_UNSPECIFIED
  GIT_OPERATION_MERGE
  GIT_OPERATION_REBASE
}
%% How a pull went.

class PullOutcome{
  <<enumeration>>
  PULL_OUTCOME_UNSPECIFIED
  PULL_OUTCOME_UP_TO_DATE
  PULL_OUTCOME_FAST_FORWARD
  PULL_OUTCOME_MERGED
  PULL_OUTCOME_REBASED
  PULL_OUTCOME_CONFLICTS
}
%% How a conflicted file is settled.

class ConflictChoice{
  <<enumeration>>
  CONFLICT_CHOICE_UNSPECIFIED
  CONFLICT_CHOICE_MINE
  CONFLICT_CHOICE_THEIRS
  CONFLICT_CHOICE_RESOLVED
}
class WorkspaceService {
  <<service>>
  +GetServiceInfo(GetServiceInfoRequest) GetServiceInfoResponse
  +Shutdown(ShutdownRequest) ShutdownResponse
  +ListLogDays(ListLogDaysRequest) ListLogDaysResponse
  +ReadLog(ReadLogRequest) ReadLogResponse
  +DeleteLogDay(DeleteLogDayRequest) DeleteLogDayResponse
  +ListWorkspaces(ListWorkspacesRequest) ListWorkspacesResponse
  +CloseWorkspace(CloseWorkspaceRequest) CloseWorkspaceResponse
  +GetSandbox(GetSandboxRequest) GetSandboxResponse
  +ListAgents(ListAgentsRequest) ListAgentsResponse
  +SetAgent(SetAgentRequest) SetAgentResponse
  +GetSuggestions(GetSuggestionsRequest) GetSuggestionsResponse
  +ListAgentFiles(ListAgentFilesRequest) ListAgentFilesResponse
  +SaveAgentFile(SaveAgentFileRequest) SaveAgentFileResponse
  +DeleteAgentFile(DeleteAgentFileRequest) DeleteAgentFileResponse
  +GetModel(GetModelRequest) GetModelResponse
  +SetModel(SetModelRequest) SetModelResponse
  +PinModel(PinModelRequest) PinModelResponse
  +UnpinModel(UnpinModelRequest) UnpinModelResponse
  +GetModelSettings(GetModelSettingsRequest) GetModelSettingsResponse
  +UpdateModelSettings(UpdateModelSettingsRequest) UpdateModelSettingsResponse
  +GetSettings(GetSettingsRequest) GetSettingsResponse
  +GetGitStatus(GetGitStatusRequest) GetGitStatusResponse
  +InitGitRepo(InitGitRepoRequest) InitGitRepoResponse
  +DraftCommit(DraftCommitRequest) DraftCommitResponse
  +Commit(CommitRequest) CommitResponse
  +FetchRemote(FetchRemoteRequest) FetchRemoteResponse
  +Pull(PullRequest) PullResponse
  +Push(PushRequest) PushResponse
  +ResolveConflict(ResolveConflictRequest) ResolveConflictResponse
  +CompleteMerge(CompleteMergeRequest) CompleteMergeResponse
  +AbortMerge(AbortMergeRequest) AbortMergeResponse
  +ListBranches(ListBranchesRequest) ListBranchesResponse
  +SwitchBranch(SwitchBranchRequest) SwitchBranchResponse
  +CreateBranch(CreateBranchRequest) CreateBranchResponse
  +MergeBranch(MergeBranchRequest) MergeBranchResponse
  +SetSetting(SetSettingRequest) SetSettingResponse
  +SetPermissionMode(SetPermissionModeRequest) SetPermissionModeResponse
  +ListCommands(ListCommandsRequest) ListCommandsResponse
  +ListPermissionRules(ListPermissionRulesRequest) ListPermissionRulesResponse
  +AddPermissionRule(AddPermissionRuleRequest) AddPermissionRuleResponse
  +RemovePermissionRule(RemovePermissionRuleRequest) RemovePermissionRuleResponse
  +ListSkills(ListSkillsRequest) ListSkillsResponse
  +GetSkill(GetSkillRequest) GetSkillResponse
  +GetSkillFile(GetSkillFileRequest) GetSkillFileResponse
  +SaveSkill(SaveSkillRequest) SaveSkillResponse
  +DeleteSkill(DeleteSkillRequest) DeleteSkillResponse
  +ReadSkillFile(ReadSkillFileRequest) ReadSkillFileResponse
  +WriteSkillFile(WriteSkillFileRequest) WriteSkillFileResponse
  +DeleteSkillFile(DeleteSkillFileRequest) DeleteSkillFileResponse
  +CopySkill(CopySkillRequest) CopySkillResponse
  +RunSkillScript(RunSkillScriptRequest) RunSkillScriptResponse
  +ListRules(ListRulesRequest) ListRulesResponse
  +SaveRule(SaveRuleRequest) SaveRuleResponse
  +DeleteRule(DeleteRuleRequest) DeleteRuleResponse
  +ReorderRules(ReorderRulesRequest) ReorderRulesResponse
  +TryRule(TryRuleRequest) TryRuleResponse
  +ListGuardrails(ListGuardrailsRequest) ListGuardrailsResponse
  +SaveGuardrail(SaveGuardrailRequest) SaveGuardrailResponse
  +DeleteGuardrail(DeleteGuardrailRequest) DeleteGuardrailResponse
  +TryGuardrail(TryGuardrailRequest) TryGuardrailResponse
  +ListEvals(ListEvalsRequest) ListEvalsResponse
  +SaveEval(SaveEvalRequest) SaveEvalResponse
  +DeleteEval(DeleteEvalRequest) DeleteEvalResponse
  +RunEval(RunEvalRequest) Stream~RunEvalResponse~
  +ListEvalRuns(ListEvalRunsRequest) ListEvalRunsResponse
  +DraftEvalCases(DraftEvalCasesRequest) DraftEvalCasesResponse
  +ListWorkflows(ListWorkflowsRequest) ListWorkflowsResponse
  +SaveWorkflow(SaveWorkflowRequest) SaveWorkflowResponse
  +DeleteWorkflow(DeleteWorkflowRequest) DeleteWorkflowResponse
  +ListWorkflowRuns(ListWorkflowRunsRequest) ListWorkflowRunsResponse
  +GetWorkflowRun(GetWorkflowRunRequest) GetWorkflowRunResponse
  +WatchWorkflowRun(WatchWorkflowRunRequest) Stream~WatchWorkflowRunResponse~
  +WatchWorkflowRuns(WatchWorkflowRunsRequest) Stream~WatchWorkflowRunsResponse~
  +StopWorkflowRun(StopWorkflowRunRequest) StopWorkflowRunResponse
  +GetWorkspaceHealth(GetWorkspaceHealthRequest) GetWorkspaceHealthResponse
  +WatchWorkspaceHealth(WatchWorkspaceHealthRequest) Stream~WatchWorkspaceHealthResponse~
  +EstimateHealthCheck(EstimateHealthCheckRequest) EstimateHealthCheckResponse
  +CheckWorkspaceHealth(CheckWorkspaceHealthRequest) Stream~CheckWorkspaceHealthResponse~
  +StopHealthCheck(StopHealthCheckRequest) StopHealthCheckResponse
  +StartHealthCheck(StartHealthCheckRequest) StartHealthCheckResponse
  +StartCompose(StartComposeRequest) StartComposeResponse
  +AnswerCompose(AnswerComposeRequest) AnswerComposeResponse
  +DropCompose(DropComposeRequest) DropComposeResponse
  +ListHumanTasks(ListHumanTasksRequest) ListHumanTasksResponse
  +WatchHumanTasks(WatchHumanTasksRequest) Stream~WatchHumanTasksResponse~
  +AnswerHumanTask(AnswerHumanTaskRequest) AnswerHumanTaskResponse
  +ListEnvs(ListEnvsRequest) ListEnvsResponse
  +RemoveEnv(RemoveEnvRequest) RemoveEnvResponse
  +PruneEnvs(PruneEnvsRequest) PruneEnvsResponse
  +DraftManifest(DraftManifestRequest) DraftManifestResponse
  +ListMCPServers(ListMCPServersRequest) ListMCPServersResponse
  +RestartMCPServer(RestartMCPServerRequest) RestartMCPServerResponse
  +ListTools(ListToolsRequest) ListToolsResponse
  +ReloadMemory(ReloadMemoryRequest) ReloadMemoryResponse
  +ReloadAgentFiles(ReloadAgentFilesRequest) ReloadAgentFilesResponse
  +AddMemory(AddMemoryRequest) AddMemoryResponse
  +ListLocales(ListLocalesRequest) ListLocalesResponse
  +SetLocale(SetLocaleRequest) SetLocaleResponse
  +ListCheckpoints(ListCheckpointsRequest) ListCheckpointsResponse
  +Undo(UndoRequest) UndoResponse
  +GetDiff(GetDiffRequest) GetDiffResponse
  +ListApprovals(ListApprovalsRequest) ListApprovalsResponse
  +RevokeApprovals(RevokeApprovalsRequest) RevokeApprovalsResponse
  +ListProcesses(ListProcessesRequest) ListProcessesResponse
  +GetProcessOutput(GetProcessOutputRequest) GetProcessOutputResponse
  +KillProcess(KillProcessRequest) KillProcessResponse
  +AuditShell(AuditShellRequest) AuditShellResponse
  +ListTasks(ListTasksRequest) ListTasksResponse
  +GetTask(GetTaskRequest) GetTaskResponse
  +StopTask(StopTaskRequest) StopTaskResponse
  +WatchTasks(WatchTasksRequest) Stream~WatchTasksResponse~
  +ListTaskRequests(ListTaskRequestsRequest) ListTaskRequestsResponse
  +GetProjectSettings(GetProjectSettingsRequest) GetProjectSettingsResponse
  +TrustProject(TrustProjectRequest) TrustProjectResponse
  +ForgetProjectTrust(ForgetProjectTrustRequest) ForgetProjectTrustResponse
  +TakeProcessNotices(TakeProcessNoticesRequest) TakeProcessNoticesResponse
  +ListStyles(ListStylesRequest) ListStylesResponse
  +ListHooks(ListHooksRequest) ListHooksResponse
  +ListNotes(ListNotesRequest) ListNotesResponse
  +ForgetNote(ForgetNoteRequest) ForgetNoteResponse
  +LoadImage(LoadImageRequest) LoadImageResponse
  +AddImage(AddImageRequest) AddImageResponse
  +GetSearchProvider(GetSearchProviderRequest) GetSearchProviderResponse
  +SearchWeb(SearchWebRequest) SearchWebResponse
  +SearchWorkspace(SearchWorkspaceRequest) SearchWorkspaceResponse
  +GetSearchStatus(GetSearchStatusRequest) GetSearchStatusResponse
  +Reindex(ReindexRequest) ReindexResponse
}
WorkspaceService --> `GetServiceInfoRequest`
WorkspaceService --> `GetServiceInfoResponse`
WorkspaceService --> `ShutdownRequest`
WorkspaceService --> `ShutdownResponse`
WorkspaceService --> `ListLogDaysRequest`
WorkspaceService --> `ListLogDaysResponse`
WorkspaceService --> `ReadLogRequest`
WorkspaceService --> `ReadLogResponse`
WorkspaceService --> `DeleteLogDayRequest`
WorkspaceService --> `DeleteLogDayResponse`
WorkspaceService --> `ListWorkspacesRequest`
WorkspaceService --> `ListWorkspacesResponse`
WorkspaceService --> `CloseWorkspaceRequest`
WorkspaceService --> `CloseWorkspaceResponse`
WorkspaceService --> `GetSandboxRequest`
WorkspaceService --> `GetSandboxResponse`
WorkspaceService --> `ListAgentsRequest`
WorkspaceService --> `ListAgentsResponse`
WorkspaceService --> `SetAgentRequest`
WorkspaceService --> `SetAgentResponse`
WorkspaceService --> `GetSuggestionsRequest`
WorkspaceService --> `GetSuggestionsResponse`
WorkspaceService --> `ListAgentFilesRequest`
WorkspaceService --> `ListAgentFilesResponse`
WorkspaceService --> `SaveAgentFileRequest`
WorkspaceService --> `SaveAgentFileResponse`
WorkspaceService --> `DeleteAgentFileRequest`
WorkspaceService --> `DeleteAgentFileResponse`
WorkspaceService --> `GetModelRequest`
WorkspaceService --> `GetModelResponse`
WorkspaceService --> `SetModelRequest`
WorkspaceService --> `SetModelResponse`
WorkspaceService --> `PinModelRequest`
WorkspaceService --> `PinModelResponse`
WorkspaceService --> `UnpinModelRequest`
WorkspaceService --> `UnpinModelResponse`
WorkspaceService --> `GetModelSettingsRequest`
WorkspaceService --> `GetModelSettingsResponse`
WorkspaceService --> `UpdateModelSettingsRequest`
WorkspaceService --> `UpdateModelSettingsResponse`
WorkspaceService --> `GetSettingsRequest`
WorkspaceService --> `GetSettingsResponse`
WorkspaceService --> `GetGitStatusRequest`
WorkspaceService --> `GetGitStatusResponse`
WorkspaceService --> `InitGitRepoRequest`
WorkspaceService --> `InitGitRepoResponse`
WorkspaceService --> `DraftCommitRequest`
WorkspaceService --> `DraftCommitResponse`
WorkspaceService --> `CommitRequest`
WorkspaceService --> `CommitResponse`
WorkspaceService --> `FetchRemoteRequest`
WorkspaceService --> `FetchRemoteResponse`
WorkspaceService --> `PullRequest`
WorkspaceService --> `PullResponse`
WorkspaceService --> `PushRequest`
WorkspaceService --> `PushResponse`
WorkspaceService --> `ResolveConflictRequest`
WorkspaceService --> `ResolveConflictResponse`
WorkspaceService --> `CompleteMergeRequest`
WorkspaceService --> `CompleteMergeResponse`
WorkspaceService --> `AbortMergeRequest`
WorkspaceService --> `AbortMergeResponse`
WorkspaceService --> `ListBranchesRequest`
WorkspaceService --> `ListBranchesResponse`
WorkspaceService --> `SwitchBranchRequest`
WorkspaceService --> `SwitchBranchResponse`
WorkspaceService --> `CreateBranchRequest`
WorkspaceService --> `CreateBranchResponse`
WorkspaceService --> `MergeBranchRequest`
WorkspaceService --> `MergeBranchResponse`
WorkspaceService --> `SetSettingRequest`
WorkspaceService --> `SetSettingResponse`
WorkspaceService --> `SetPermissionModeRequest`
WorkspaceService --> `SetPermissionModeResponse`
WorkspaceService --> `ListCommandsRequest`
WorkspaceService --> `ListCommandsResponse`
WorkspaceService --> `ListPermissionRulesRequest`
WorkspaceService --> `ListPermissionRulesResponse`
WorkspaceService --> `AddPermissionRuleRequest`
WorkspaceService --> `AddPermissionRuleResponse`
WorkspaceService --> `RemovePermissionRuleRequest`
WorkspaceService --> `RemovePermissionRuleResponse`
WorkspaceService --> `ListSkillsRequest`
WorkspaceService --> `ListSkillsResponse`
WorkspaceService --> `GetSkillRequest`
WorkspaceService --> `GetSkillResponse`
WorkspaceService --> `GetSkillFileRequest`
WorkspaceService --> `GetSkillFileResponse`
WorkspaceService --> `SaveSkillRequest`
WorkspaceService --> `SaveSkillResponse`
WorkspaceService --> `DeleteSkillRequest`
WorkspaceService --> `DeleteSkillResponse`
WorkspaceService --> `ReadSkillFileRequest`
WorkspaceService --> `ReadSkillFileResponse`
WorkspaceService --> `WriteSkillFileRequest`
WorkspaceService --> `WriteSkillFileResponse`
WorkspaceService --> `DeleteSkillFileRequest`
WorkspaceService --> `DeleteSkillFileResponse`
WorkspaceService --> `CopySkillRequest`
WorkspaceService --> `CopySkillResponse`
WorkspaceService --> `RunSkillScriptRequest`
WorkspaceService --> `RunSkillScriptResponse`
WorkspaceService --> `ListRulesRequest`
WorkspaceService --> `ListRulesResponse`
WorkspaceService --> `SaveRuleRequest`
WorkspaceService --> `SaveRuleResponse`
WorkspaceService --> `DeleteRuleRequest`
WorkspaceService --> `DeleteRuleResponse`
WorkspaceService --> `ReorderRulesRequest`
WorkspaceService --> `ReorderRulesResponse`
WorkspaceService --> `TryRuleRequest`
WorkspaceService --> `TryRuleResponse`
WorkspaceService --> `ListGuardrailsRequest`
WorkspaceService --> `ListGuardrailsResponse`
WorkspaceService --> `SaveGuardrailRequest`
WorkspaceService --> `SaveGuardrailResponse`
WorkspaceService --> `DeleteGuardrailRequest`
WorkspaceService --> `DeleteGuardrailResponse`
WorkspaceService --> `TryGuardrailRequest`
WorkspaceService --> `TryGuardrailResponse`
WorkspaceService --> `ListEvalsRequest`
WorkspaceService --> `ListEvalsResponse`
WorkspaceService --> `SaveEvalRequest`
WorkspaceService --> `SaveEvalResponse`
WorkspaceService --> `DeleteEvalRequest`
WorkspaceService --> `DeleteEvalResponse`
WorkspaceService --> `RunEvalRequest`
WorkspaceService --o `RunEvalResponse` : server stream
WorkspaceService --> `ListEvalRunsRequest`
WorkspaceService --> `ListEvalRunsResponse`
WorkspaceService --> `DraftEvalCasesRequest`
WorkspaceService --> `DraftEvalCasesResponse`
WorkspaceService --> `ListWorkflowsRequest`
WorkspaceService --> `ListWorkflowsResponse`
WorkspaceService --> `SaveWorkflowRequest`
WorkspaceService --> `SaveWorkflowResponse`
WorkspaceService --> `DeleteWorkflowRequest`
WorkspaceService --> `DeleteWorkflowResponse`
WorkspaceService --> `ListWorkflowRunsRequest`
WorkspaceService --> `ListWorkflowRunsResponse`
WorkspaceService --> `GetWorkflowRunRequest`
WorkspaceService --> `GetWorkflowRunResponse`
WorkspaceService --> `WatchWorkflowRunRequest`
WorkspaceService --o `WatchWorkflowRunResponse` : server stream
WorkspaceService --> `WatchWorkflowRunsRequest`
WorkspaceService --o `WatchWorkflowRunsResponse` : server stream
WorkspaceService --> `StopWorkflowRunRequest`
WorkspaceService --> `StopWorkflowRunResponse`
WorkspaceService --> `GetWorkspaceHealthRequest`
WorkspaceService --> `GetWorkspaceHealthResponse`
WorkspaceService --> `WatchWorkspaceHealthRequest`
WorkspaceService --o `WatchWorkspaceHealthResponse` : server stream
WorkspaceService --> `EstimateHealthCheckRequest`
WorkspaceService --> `EstimateHealthCheckResponse`
WorkspaceService --> `CheckWorkspaceHealthRequest`
WorkspaceService --o `CheckWorkspaceHealthResponse` : server stream
WorkspaceService --> `StopHealthCheckRequest`
WorkspaceService --> `StopHealthCheckResponse`
WorkspaceService --> `StartHealthCheckRequest`
WorkspaceService --> `StartHealthCheckResponse`
WorkspaceService --> `StartComposeRequest`
WorkspaceService --> `StartComposeResponse`
WorkspaceService --> `AnswerComposeRequest`
WorkspaceService --> `AnswerComposeResponse`
WorkspaceService --> `DropComposeRequest`
WorkspaceService --> `DropComposeResponse`
WorkspaceService --> `ListHumanTasksRequest`
WorkspaceService --> `ListHumanTasksResponse`
WorkspaceService --> `WatchHumanTasksRequest`
WorkspaceService --o `WatchHumanTasksResponse` : server stream
WorkspaceService --> `AnswerHumanTaskRequest`
WorkspaceService --> `AnswerHumanTaskResponse`
WorkspaceService --> `ListEnvsRequest`
WorkspaceService --> `ListEnvsResponse`
WorkspaceService --> `RemoveEnvRequest`
WorkspaceService --> `RemoveEnvResponse`
WorkspaceService --> `PruneEnvsRequest`
WorkspaceService --> `PruneEnvsResponse`
WorkspaceService --> `DraftManifestRequest`
WorkspaceService --> `DraftManifestResponse`
WorkspaceService --> `ListMCPServersRequest`
WorkspaceService --> `ListMCPServersResponse`
WorkspaceService --> `RestartMCPServerRequest`
WorkspaceService --> `RestartMCPServerResponse`
WorkspaceService --> `ListToolsRequest`
WorkspaceService --> `ListToolsResponse`
WorkspaceService --> `ReloadMemoryRequest`
WorkspaceService --> `ReloadMemoryResponse`
WorkspaceService --> `ReloadAgentFilesRequest`
WorkspaceService --> `ReloadAgentFilesResponse`
WorkspaceService --> `AddMemoryRequest`
WorkspaceService --> `AddMemoryResponse`
WorkspaceService --> `ListLocalesRequest`
WorkspaceService --> `ListLocalesResponse`
WorkspaceService --> `SetLocaleRequest`
WorkspaceService --> `SetLocaleResponse`
WorkspaceService --> `ListCheckpointsRequest`
WorkspaceService --> `ListCheckpointsResponse`
WorkspaceService --> `UndoRequest`
WorkspaceService --> `UndoResponse`
WorkspaceService --> `GetDiffRequest`
WorkspaceService --> `GetDiffResponse`
WorkspaceService --> `ListApprovalsRequest`
WorkspaceService --> `ListApprovalsResponse`
WorkspaceService --> `RevokeApprovalsRequest`
WorkspaceService --> `RevokeApprovalsResponse`
WorkspaceService --> `ListProcessesRequest`
WorkspaceService --> `ListProcessesResponse`
WorkspaceService --> `GetProcessOutputRequest`
WorkspaceService --> `GetProcessOutputResponse`
WorkspaceService --> `KillProcessRequest`
WorkspaceService --> `KillProcessResponse`
WorkspaceService --> `AuditShellRequest`
WorkspaceService --> `AuditShellResponse`
WorkspaceService --> `ListTasksRequest`
WorkspaceService --> `ListTasksResponse`
WorkspaceService --> `GetTaskRequest`
WorkspaceService --> `GetTaskResponse`
WorkspaceService --> `StopTaskRequest`
WorkspaceService --> `StopTaskResponse`
WorkspaceService --> `WatchTasksRequest`
WorkspaceService --o `WatchTasksResponse` : server stream
WorkspaceService --> `ListTaskRequestsRequest`
WorkspaceService --> `ListTaskRequestsResponse`
WorkspaceService --> `GetProjectSettingsRequest`
WorkspaceService --> `GetProjectSettingsResponse`
WorkspaceService --> `TrustProjectRequest`
WorkspaceService --> `TrustProjectResponse`
WorkspaceService --> `ForgetProjectTrustRequest`
WorkspaceService --> `ForgetProjectTrustResponse`
WorkspaceService --> `TakeProcessNoticesRequest`
WorkspaceService --> `TakeProcessNoticesResponse`
WorkspaceService --> `ListStylesRequest`
WorkspaceService --> `ListStylesResponse`
WorkspaceService --> `ListHooksRequest`
WorkspaceService --> `ListHooksResponse`
WorkspaceService --> `ListNotesRequest`
WorkspaceService --> `ListNotesResponse`
WorkspaceService --> `ForgetNoteRequest`
WorkspaceService --> `ForgetNoteResponse`
WorkspaceService --> `LoadImageRequest`
WorkspaceService --> `LoadImageResponse`
WorkspaceService --> `AddImageRequest`
WorkspaceService --> `AddImageResponse`
WorkspaceService --> `GetSearchProviderRequest`
WorkspaceService --> `GetSearchProviderResponse`
WorkspaceService --> `SearchWebRequest`
WorkspaceService --> `SearchWebResponse`
WorkspaceService --> `SearchWorkspaceRequest`
WorkspaceService --> `SearchWorkspaceResponse`
WorkspaceService --> `GetSearchStatusRequest`
WorkspaceService --> `GetSearchStatusResponse`
WorkspaceService --> `ReindexRequest`
WorkspaceService --> `ReindexResponse`

Service: WorkspaceService

FQN: blitz.v1
WorkspaceService covers everything about a workspace except its conversations (SessionService) and workers (WorkerService): agents and models, settings, skills and their environments, MCP servers and tools, project memory, the reply language, checkpoints, approvals, images and web search. Mirrors pkg/api's Backend. Every request names its workspace by absolute directory; the service opens it on first use. Errors carry an ErrorInfo detail.

WorkspaceService Diagram

classDiagram
direction LR
class WorkspaceService {
  <<service>>
  +GetServiceInfo(GetServiceInfoRequest) GetServiceInfoResponse
  +Shutdown(ShutdownRequest) ShutdownResponse
  +ListLogDays(ListLogDaysRequest) ListLogDaysResponse
  +ReadLog(ReadLogRequest) ReadLogResponse
  +DeleteLogDay(DeleteLogDayRequest) DeleteLogDayResponse
  +ListWorkspaces(ListWorkspacesRequest) ListWorkspacesResponse
  +CloseWorkspace(CloseWorkspaceRequest) CloseWorkspaceResponse
  +GetSandbox(GetSandboxRequest) GetSandboxResponse
  +ListAgents(ListAgentsRequest) ListAgentsResponse
  +SetAgent(SetAgentRequest) SetAgentResponse
  +GetSuggestions(GetSuggestionsRequest) GetSuggestionsResponse
  +ListAgentFiles(ListAgentFilesRequest) ListAgentFilesResponse
  +SaveAgentFile(SaveAgentFileRequest) SaveAgentFileResponse
  +DeleteAgentFile(DeleteAgentFileRequest) DeleteAgentFileResponse
  +GetModel(GetModelRequest) GetModelResponse
  +SetModel(SetModelRequest) SetModelResponse
  +PinModel(PinModelRequest) PinModelResponse
  +UnpinModel(UnpinModelRequest) UnpinModelResponse
  +GetModelSettings(GetModelSettingsRequest) GetModelSettingsResponse
  +UpdateModelSettings(UpdateModelSettingsRequest) UpdateModelSettingsResponse
  +GetSettings(GetSettingsRequest) GetSettingsResponse
  +GetGitStatus(GetGitStatusRequest) GetGitStatusResponse
  +InitGitRepo(InitGitRepoRequest) InitGitRepoResponse
  +DraftCommit(DraftCommitRequest) DraftCommitResponse
  +Commit(CommitRequest) CommitResponse
  +FetchRemote(FetchRemoteRequest) FetchRemoteResponse
  +Pull(PullRequest) PullResponse
  +Push(PushRequest) PushResponse
  +ResolveConflict(ResolveConflictRequest) ResolveConflictResponse
  +CompleteMerge(CompleteMergeRequest) CompleteMergeResponse
  +AbortMerge(AbortMergeRequest) AbortMergeResponse
  +ListBranches(ListBranchesRequest) ListBranchesResponse
  +SwitchBranch(SwitchBranchRequest) SwitchBranchResponse
  +CreateBranch(CreateBranchRequest) CreateBranchResponse
  +MergeBranch(MergeBranchRequest) MergeBranchResponse
  +SetSetting(SetSettingRequest) SetSettingResponse
  +SetPermissionMode(SetPermissionModeRequest) SetPermissionModeResponse
  +ListCommands(ListCommandsRequest) ListCommandsResponse
  +ListPermissionRules(ListPermissionRulesRequest) ListPermissionRulesResponse
  +AddPermissionRule(AddPermissionRuleRequest) AddPermissionRuleResponse
  +RemovePermissionRule(RemovePermissionRuleRequest) RemovePermissionRuleResponse
  +ListSkills(ListSkillsRequest) ListSkillsResponse
  +GetSkill(GetSkillRequest) GetSkillResponse
  +GetSkillFile(GetSkillFileRequest) GetSkillFileResponse
  +SaveSkill(SaveSkillRequest) SaveSkillResponse
  +DeleteSkill(DeleteSkillRequest) DeleteSkillResponse
  +ReadSkillFile(ReadSkillFileRequest) ReadSkillFileResponse
  +WriteSkillFile(WriteSkillFileRequest) WriteSkillFileResponse
  +DeleteSkillFile(DeleteSkillFileRequest) DeleteSkillFileResponse
  +CopySkill(CopySkillRequest) CopySkillResponse
  +RunSkillScript(RunSkillScriptRequest) RunSkillScriptResponse
  +ListRules(ListRulesRequest) ListRulesResponse
  +SaveRule(SaveRuleRequest) SaveRuleResponse
  +DeleteRule(DeleteRuleRequest) DeleteRuleResponse
  +ReorderRules(ReorderRulesRequest) ReorderRulesResponse
  +TryRule(TryRuleRequest) TryRuleResponse
  +ListGuardrails(ListGuardrailsRequest) ListGuardrailsResponse
  +SaveGuardrail(SaveGuardrailRequest) SaveGuardrailResponse
  +DeleteGuardrail(DeleteGuardrailRequest) DeleteGuardrailResponse
  +TryGuardrail(TryGuardrailRequest) TryGuardrailResponse
  +ListEvals(ListEvalsRequest) ListEvalsResponse
  +SaveEval(SaveEvalRequest) SaveEvalResponse
  +DeleteEval(DeleteEvalRequest) DeleteEvalResponse
  +RunEval(RunEvalRequest) Stream~RunEvalResponse~
  +ListEvalRuns(ListEvalRunsRequest) ListEvalRunsResponse
  +DraftEvalCases(DraftEvalCasesRequest) DraftEvalCasesResponse
  +ListWorkflows(ListWorkflowsRequest) ListWorkflowsResponse
  +SaveWorkflow(SaveWorkflowRequest) SaveWorkflowResponse
  +DeleteWorkflow(DeleteWorkflowRequest) DeleteWorkflowResponse
  +ListWorkflowRuns(ListWorkflowRunsRequest) ListWorkflowRunsResponse
  +GetWorkflowRun(GetWorkflowRunRequest) GetWorkflowRunResponse
  +WatchWorkflowRun(WatchWorkflowRunRequest) Stream~WatchWorkflowRunResponse~
  +WatchWorkflowRuns(WatchWorkflowRunsRequest) Stream~WatchWorkflowRunsResponse~
  +StopWorkflowRun(StopWorkflowRunRequest) StopWorkflowRunResponse
  +GetWorkspaceHealth(GetWorkspaceHealthRequest) GetWorkspaceHealthResponse
  +WatchWorkspaceHealth(WatchWorkspaceHealthRequest) Stream~WatchWorkspaceHealthResponse~
  +EstimateHealthCheck(EstimateHealthCheckRequest) EstimateHealthCheckResponse
  +CheckWorkspaceHealth(CheckWorkspaceHealthRequest) Stream~CheckWorkspaceHealthResponse~
  +StopHealthCheck(StopHealthCheckRequest) StopHealthCheckResponse
  +StartHealthCheck(StartHealthCheckRequest) StartHealthCheckResponse
  +StartCompose(StartComposeRequest) StartComposeResponse
  +AnswerCompose(AnswerComposeRequest) AnswerComposeResponse
  +DropCompose(DropComposeRequest) DropComposeResponse
  +ListHumanTasks(ListHumanTasksRequest) ListHumanTasksResponse
  +WatchHumanTasks(WatchHumanTasksRequest) Stream~WatchHumanTasksResponse~
  +AnswerHumanTask(AnswerHumanTaskRequest) AnswerHumanTaskResponse
  +ListEnvs(ListEnvsRequest) ListEnvsResponse
  +RemoveEnv(RemoveEnvRequest) RemoveEnvResponse
  +PruneEnvs(PruneEnvsRequest) PruneEnvsResponse
  +DraftManifest(DraftManifestRequest) DraftManifestResponse
  +ListMCPServers(ListMCPServersRequest) ListMCPServersResponse
  +RestartMCPServer(RestartMCPServerRequest) RestartMCPServerResponse
  +ListTools(ListToolsRequest) ListToolsResponse
  +ReloadMemory(ReloadMemoryRequest) ReloadMemoryResponse
  +ReloadAgentFiles(ReloadAgentFilesRequest) ReloadAgentFilesResponse
  +AddMemory(AddMemoryRequest) AddMemoryResponse
  +ListLocales(ListLocalesRequest) ListLocalesResponse
  +SetLocale(SetLocaleRequest) SetLocaleResponse
  +ListCheckpoints(ListCheckpointsRequest) ListCheckpointsResponse
  +Undo(UndoRequest) UndoResponse
  +GetDiff(GetDiffRequest) GetDiffResponse
  +ListApprovals(ListApprovalsRequest) ListApprovalsResponse
  +RevokeApprovals(RevokeApprovalsRequest) RevokeApprovalsResponse
  +ListProcesses(ListProcessesRequest) ListProcessesResponse
  +GetProcessOutput(GetProcessOutputRequest) GetProcessOutputResponse
  +KillProcess(KillProcessRequest) KillProcessResponse
  +AuditShell(AuditShellRequest) AuditShellResponse
  +ListTasks(ListTasksRequest) ListTasksResponse
  +GetTask(GetTaskRequest) GetTaskResponse
  +StopTask(StopTaskRequest) StopTaskResponse
  +WatchTasks(WatchTasksRequest) Stream~WatchTasksResponse~
  +ListTaskRequests(ListTaskRequestsRequest) ListTaskRequestsResponse
  +GetProjectSettings(GetProjectSettingsRequest) GetProjectSettingsResponse
  +TrustProject(TrustProjectRequest) TrustProjectResponse
  +ForgetProjectTrust(ForgetProjectTrustRequest) ForgetProjectTrustResponse
  +TakeProcessNotices(TakeProcessNoticesRequest) TakeProcessNoticesResponse
  +ListStyles(ListStylesRequest) ListStylesResponse
  +ListHooks(ListHooksRequest) ListHooksResponse
  +ListNotes(ListNotesRequest) ListNotesResponse
  +ForgetNote(ForgetNoteRequest) ForgetNoteResponse
  +LoadImage(LoadImageRequest) LoadImageResponse
  +AddImage(AddImageRequest) AddImageResponse
  +GetSearchProvider(GetSearchProviderRequest) GetSearchProviderResponse
  +SearchWeb(SearchWebRequest) SearchWebResponse
  +SearchWorkspace(SearchWorkspaceRequest) SearchWorkspaceResponse
  +GetSearchStatus(GetSearchStatusRequest) GetSearchStatusResponse
  +Reindex(ReindexRequest) ReindexResponse
}
WorkspaceService --> `GetServiceInfoRequest`
WorkspaceService --> `GetServiceInfoResponse`
WorkspaceService --> `ShutdownRequest`
WorkspaceService --> `ShutdownResponse`
WorkspaceService --> `ListLogDaysRequest`
WorkspaceService --> `ListLogDaysResponse`
WorkspaceService --> `ReadLogRequest`
WorkspaceService --> `ReadLogResponse`
WorkspaceService --> `DeleteLogDayRequest`
WorkspaceService --> `DeleteLogDayResponse`
WorkspaceService --> `ListWorkspacesRequest`
WorkspaceService --> `ListWorkspacesResponse`
WorkspaceService --> `CloseWorkspaceRequest`
WorkspaceService --> `CloseWorkspaceResponse`
WorkspaceService --> `GetSandboxRequest`
WorkspaceService --> `GetSandboxResponse`
WorkspaceService --> `ListAgentsRequest`
WorkspaceService --> `ListAgentsResponse`
WorkspaceService --> `SetAgentRequest`
WorkspaceService --> `SetAgentResponse`
WorkspaceService --> `GetSuggestionsRequest`
WorkspaceService --> `GetSuggestionsResponse`
WorkspaceService --> `ListAgentFilesRequest`
WorkspaceService --> `ListAgentFilesResponse`
WorkspaceService --> `SaveAgentFileRequest`
WorkspaceService --> `SaveAgentFileResponse`
WorkspaceService --> `DeleteAgentFileRequest`
WorkspaceService --> `DeleteAgentFileResponse`
WorkspaceService --> `GetModelRequest`
WorkspaceService --> `GetModelResponse`
WorkspaceService --> `SetModelRequest`
WorkspaceService --> `SetModelResponse`
WorkspaceService --> `PinModelRequest`
WorkspaceService --> `PinModelResponse`
WorkspaceService --> `UnpinModelRequest`
WorkspaceService --> `UnpinModelResponse`
WorkspaceService --> `GetModelSettingsRequest`
WorkspaceService --> `GetModelSettingsResponse`
WorkspaceService --> `UpdateModelSettingsRequest`
WorkspaceService --> `UpdateModelSettingsResponse`
WorkspaceService --> `GetSettingsRequest`
WorkspaceService --> `GetSettingsResponse`
WorkspaceService --> `GetGitStatusRequest`
WorkspaceService --> `GetGitStatusResponse`
WorkspaceService --> `InitGitRepoRequest`
WorkspaceService --> `InitGitRepoResponse`
WorkspaceService --> `DraftCommitRequest`
WorkspaceService --> `DraftCommitResponse`
WorkspaceService --> `CommitRequest`
WorkspaceService --> `CommitResponse`
WorkspaceService --> `FetchRemoteRequest`
WorkspaceService --> `FetchRemoteResponse`
WorkspaceService --> `PullRequest`
WorkspaceService --> `PullResponse`
WorkspaceService --> `PushRequest`
WorkspaceService --> `PushResponse`
WorkspaceService --> `ResolveConflictRequest`
WorkspaceService --> `ResolveConflictResponse`
WorkspaceService --> `CompleteMergeRequest`
WorkspaceService --> `CompleteMergeResponse`
WorkspaceService --> `AbortMergeRequest`
WorkspaceService --> `AbortMergeResponse`
WorkspaceService --> `ListBranchesRequest`
WorkspaceService --> `ListBranchesResponse`
WorkspaceService --> `SwitchBranchRequest`
WorkspaceService --> `SwitchBranchResponse`
WorkspaceService --> `CreateBranchRequest`
WorkspaceService --> `CreateBranchResponse`
WorkspaceService --> `MergeBranchRequest`
WorkspaceService --> `MergeBranchResponse`
WorkspaceService --> `SetSettingRequest`
WorkspaceService --> `SetSettingResponse`
WorkspaceService --> `SetPermissionModeRequest`
WorkspaceService --> `SetPermissionModeResponse`
WorkspaceService --> `ListCommandsRequest`
WorkspaceService --> `ListCommandsResponse`
WorkspaceService --> `ListPermissionRulesRequest`
WorkspaceService --> `ListPermissionRulesResponse`
WorkspaceService --> `AddPermissionRuleRequest`
WorkspaceService --> `AddPermissionRuleResponse`
WorkspaceService --> `RemovePermissionRuleRequest`
WorkspaceService --> `RemovePermissionRuleResponse`
WorkspaceService --> `ListSkillsRequest`
WorkspaceService --> `ListSkillsResponse`
WorkspaceService --> `GetSkillRequest`
WorkspaceService --> `GetSkillResponse`
WorkspaceService --> `GetSkillFileRequest`
WorkspaceService --> `GetSkillFileResponse`
WorkspaceService --> `SaveSkillRequest`
WorkspaceService --> `SaveSkillResponse`
WorkspaceService --> `DeleteSkillRequest`
WorkspaceService --> `DeleteSkillResponse`
WorkspaceService --> `ReadSkillFileRequest`
WorkspaceService --> `ReadSkillFileResponse`
WorkspaceService --> `WriteSkillFileRequest`
WorkspaceService --> `WriteSkillFileResponse`
WorkspaceService --> `DeleteSkillFileRequest`
WorkspaceService --> `DeleteSkillFileResponse`
WorkspaceService --> `CopySkillRequest`
WorkspaceService --> `CopySkillResponse`
WorkspaceService --> `RunSkillScriptRequest`
WorkspaceService --> `RunSkillScriptResponse`
WorkspaceService --> `ListRulesRequest`
WorkspaceService --> `ListRulesResponse`
WorkspaceService --> `SaveRuleRequest`
WorkspaceService --> `SaveRuleResponse`
WorkspaceService --> `DeleteRuleRequest`
WorkspaceService --> `DeleteRuleResponse`
WorkspaceService --> `ReorderRulesRequest`
WorkspaceService --> `ReorderRulesResponse`
WorkspaceService --> `TryRuleRequest`
WorkspaceService --> `TryRuleResponse`
WorkspaceService --> `ListGuardrailsRequest`
WorkspaceService --> `ListGuardrailsResponse`
WorkspaceService --> `SaveGuardrailRequest`
WorkspaceService --> `SaveGuardrailResponse`
WorkspaceService --> `DeleteGuardrailRequest`
WorkspaceService --> `DeleteGuardrailResponse`
WorkspaceService --> `TryGuardrailRequest`
WorkspaceService --> `TryGuardrailResponse`
WorkspaceService --> `ListEvalsRequest`
WorkspaceService --> `ListEvalsResponse`
WorkspaceService --> `SaveEvalRequest`
WorkspaceService --> `SaveEvalResponse`
WorkspaceService --> `DeleteEvalRequest`
WorkspaceService --> `DeleteEvalResponse`
WorkspaceService --> `RunEvalRequest`
WorkspaceService --o `RunEvalResponse` : server stream
WorkspaceService --> `ListEvalRunsRequest`
WorkspaceService --> `ListEvalRunsResponse`
WorkspaceService --> `DraftEvalCasesRequest`
WorkspaceService --> `DraftEvalCasesResponse`
WorkspaceService --> `ListWorkflowsRequest`
WorkspaceService --> `ListWorkflowsResponse`
WorkspaceService --> `SaveWorkflowRequest`
WorkspaceService --> `SaveWorkflowResponse`
WorkspaceService --> `DeleteWorkflowRequest`
WorkspaceService --> `DeleteWorkflowResponse`
WorkspaceService --> `ListWorkflowRunsRequest`
WorkspaceService --> `ListWorkflowRunsResponse`
WorkspaceService --> `GetWorkflowRunRequest`
WorkspaceService --> `GetWorkflowRunResponse`
WorkspaceService --> `WatchWorkflowRunRequest`
WorkspaceService --o `WatchWorkflowRunResponse` : server stream
WorkspaceService --> `WatchWorkflowRunsRequest`
WorkspaceService --o `WatchWorkflowRunsResponse` : server stream
WorkspaceService --> `StopWorkflowRunRequest`
WorkspaceService --> `StopWorkflowRunResponse`
WorkspaceService --> `GetWorkspaceHealthRequest`
WorkspaceService --> `GetWorkspaceHealthResponse`
WorkspaceService --> `WatchWorkspaceHealthRequest`
WorkspaceService --o `WatchWorkspaceHealthResponse` : server stream
WorkspaceService --> `EstimateHealthCheckRequest`
WorkspaceService --> `EstimateHealthCheckResponse`
WorkspaceService --> `CheckWorkspaceHealthRequest`
WorkspaceService --o `CheckWorkspaceHealthResponse` : server stream
WorkspaceService --> `StopHealthCheckRequest`
WorkspaceService --> `StopHealthCheckResponse`
WorkspaceService --> `StartHealthCheckRequest`
WorkspaceService --> `StartHealthCheckResponse`
WorkspaceService --> `StartComposeRequest`
WorkspaceService --> `StartComposeResponse`
WorkspaceService --> `AnswerComposeRequest`
WorkspaceService --> `AnswerComposeResponse`
WorkspaceService --> `DropComposeRequest`
WorkspaceService --> `DropComposeResponse`
WorkspaceService --> `ListHumanTasksRequest`
WorkspaceService --> `ListHumanTasksResponse`
WorkspaceService --> `WatchHumanTasksRequest`
WorkspaceService --o `WatchHumanTasksResponse` : server stream
WorkspaceService --> `AnswerHumanTaskRequest`
WorkspaceService --> `AnswerHumanTaskResponse`
WorkspaceService --> `ListEnvsRequest`
WorkspaceService --> `ListEnvsResponse`
WorkspaceService --> `RemoveEnvRequest`
WorkspaceService --> `RemoveEnvResponse`
WorkspaceService --> `PruneEnvsRequest`
WorkspaceService --> `PruneEnvsResponse`
WorkspaceService --> `DraftManifestRequest`
WorkspaceService --> `DraftManifestResponse`
WorkspaceService --> `ListMCPServersRequest`
WorkspaceService --> `ListMCPServersResponse`
WorkspaceService --> `RestartMCPServerRequest`
WorkspaceService --> `RestartMCPServerResponse`
WorkspaceService --> `ListToolsRequest`
WorkspaceService --> `ListToolsResponse`
WorkspaceService --> `ReloadMemoryRequest`
WorkspaceService --> `ReloadMemoryResponse`
WorkspaceService --> `ReloadAgentFilesRequest`
WorkspaceService --> `ReloadAgentFilesResponse`
WorkspaceService --> `AddMemoryRequest`
WorkspaceService --> `AddMemoryResponse`
WorkspaceService --> `ListLocalesRequest`
WorkspaceService --> `ListLocalesResponse`
WorkspaceService --> `SetLocaleRequest`
WorkspaceService --> `SetLocaleResponse`
WorkspaceService --> `ListCheckpointsRequest`
WorkspaceService --> `ListCheckpointsResponse`
WorkspaceService --> `UndoRequest`
WorkspaceService --> `UndoResponse`
WorkspaceService --> `GetDiffRequest`
WorkspaceService --> `GetDiffResponse`
WorkspaceService --> `ListApprovalsRequest`
WorkspaceService --> `ListApprovalsResponse`
WorkspaceService --> `RevokeApprovalsRequest`
WorkspaceService --> `RevokeApprovalsResponse`
WorkspaceService --> `ListProcessesRequest`
WorkspaceService --> `ListProcessesResponse`
WorkspaceService --> `GetProcessOutputRequest`
WorkspaceService --> `GetProcessOutputResponse`
WorkspaceService --> `KillProcessRequest`
WorkspaceService --> `KillProcessResponse`
WorkspaceService --> `AuditShellRequest`
WorkspaceService --> `AuditShellResponse`
WorkspaceService --> `ListTasksRequest`
WorkspaceService --> `ListTasksResponse`
WorkspaceService --> `GetTaskRequest`
WorkspaceService --> `GetTaskResponse`
WorkspaceService --> `StopTaskRequest`
WorkspaceService --> `StopTaskResponse`
WorkspaceService --> `WatchTasksRequest`
WorkspaceService --o `WatchTasksResponse` : server stream
WorkspaceService --> `ListTaskRequestsRequest`
WorkspaceService --> `ListTaskRequestsResponse`
WorkspaceService --> `GetProjectSettingsRequest`
WorkspaceService --> `GetProjectSettingsResponse`
WorkspaceService --> `TrustProjectRequest`
WorkspaceService --> `TrustProjectResponse`
WorkspaceService --> `ForgetProjectTrustRequest`
WorkspaceService --> `ForgetProjectTrustResponse`
WorkspaceService --> `TakeProcessNoticesRequest`
WorkspaceService --> `TakeProcessNoticesResponse`
WorkspaceService --> `ListStylesRequest`
WorkspaceService --> `ListStylesResponse`
WorkspaceService --> `ListHooksRequest`
WorkspaceService --> `ListHooksResponse`
WorkspaceService --> `ListNotesRequest`
WorkspaceService --> `ListNotesResponse`
WorkspaceService --> `ForgetNoteRequest`
WorkspaceService --> `ForgetNoteResponse`
WorkspaceService --> `LoadImageRequest`
WorkspaceService --> `LoadImageResponse`
WorkspaceService --> `AddImageRequest`
WorkspaceService --> `AddImageResponse`
WorkspaceService --> `GetSearchProviderRequest`
WorkspaceService --> `GetSearchProviderResponse`
WorkspaceService --> `SearchWebRequest`
WorkspaceService --> `SearchWebResponse`
WorkspaceService --> `SearchWorkspaceRequest`
WorkspaceService --> `SearchWorkspaceResponse`
WorkspaceService --> `GetSearchStatusRequest`
WorkspaceService --> `GetSearchStatusResponse`
WorkspaceService --> `ReindexRequest`
WorkspaceService --> `ReindexResponse`
Method Parameter (In) Parameter (Out) Description
GetServiceInfo GetServiceInfoRequest GetServiceInfoResponse Describes the service itself, so a client can tell whether it’s the version it expects (older services don’t have it: Unimplemented).
Shutdown ShutdownRequest ShutdownResponse Stops the service as SIGTERM does: turns in progress get a few seconds, then it exits. For clients that can’t signal it (Windows, where it isn’t a login item: the tray stops it this way). A service that can’t stop itself (one in a test) is FAILED_PRECONDITION.
ListLogDays ListLogDaysRequest ListLogDaysResponse The days the service has a log for, newest first, and its log directory.
ReadLog ReadLogRequest ReadLogResponse A day’s log records, newest first, filtered by level and text.
DeleteLogDay DeleteLogDayRequest DeleteLogDayResponse Deletes a past day’s log. Today’s is being written: LOG_IN_USE; a day with no log is LOG_NOT_FOUND.
ListWorkspaces ListWorkspacesRequest ListWorkspacesResponse Returns the workspaces the service has open.
CloseWorkspace CloseWorkspaceRequest CloseWorkspaceResponse Closes a workspace: kills its background processes and MCP servers.
GetSandbox GetSandboxRequest GetSandboxResponse Describes the sandbox commands run in, one line each.
ListAgents ListAgentsRequest ListAgentsResponse Returns every agent and which is active.
SetAgent SetAgentRequest SetAgentResponse Makes an agent the active one (UNKNOWN_AGENT).
GetSuggestions GetSuggestionsRequest GetSuggestionsResponse Returns what the welcome screen suggests for the workspace: tiles from its state at once, and up to three a model wrote from the recent conversations (cached; pending while new ones are being written), and whether it has no agent instructions yet, so setup (/setup) is offered.
ListAgentFiles ListAgentFilesRequest ListAgentFilesResponse Lists the agent files of a scope: the workspace’s (.agents/agents) or the user’s (~/.blitz/agents), with why a file doesn’t load.
SaveAgentFile SaveAgentFileRequest SaveAgentFileResponse Writes an agent’s file, a new one or in place of previous_name’s; what is wrong with it comes back as problems, with nothing written.
DeleteAgentFile DeleteAgentFileRequest DeleteAgentFileResponse Deletes an agent’s file (UNKNOWN_AGENT).
GetModel GetModelRequest GetModelResponse Returns the model the active agent runs on.
SetModel SetModelRequest SetModelResponse Switches every unpinned agent to a model.
PinModel PinModelRequest PinModelResponse Pins an agent to a model and saves the pin (UNKNOWN_AGENT).
UnpinModel UnpinModelRequest UnpinModelResponse Returns an agent to the configured model, or its own default.
GetModelSettings GetModelSettingsRequest GetModelSettingsResponse Returns every model’s generation settings, or one model’s.
UpdateModelSettings UpdateModelSettingsRequest UpdateModelSettingsResponse Changes a model’s generation settings and saves them (BAD_MODEL_REF, INVALID_SETTING; nothing changes on error).
GetSettings GetSettingsRequest GetSettingsResponse Returns the agency level, plus model, agent and reply language.
GetGitStatus GetGitStatusRequest GetGitStatusResponse Returns the workspace’s git branch and how many files differ from HEAD (repo false outside a repository; one with no commit yet is a repository), and whether git is installed, for the status bar and Changes.
InitGitRepo InitGitRepoRequest InitGitRepoResponse Makes the workspace a git repository (git init) unless it’s in one already, and returns its git status (NO_GIT without git on the service’s PATH, GIT_FAILED).
DraftCommit DraftCommitRequest DraftCommitResponse Lists what’s staged (everything staged first with stage_all, as git add –all) and has the model draft a commit message from its diff, secrets redacted; nothing is asked with nothing staged, and a model that fails leaves the message empty with problem saying why (NOT_A_REPOSITORY, GIT_FAILED).
Commit CommitRequest CommitResponse Commits what’s staged with the message (the repository’s hooks run) (NOT_A_REPOSITORY, NOTHING_STAGED, EMPTY_MESSAGE, GIT_FAILED).
FetchRemote FetchRemoteRequest FetchRemoteResponse Fetches the upstream’s remote (else every remote) for the ahead and behind counts, and returns the git status (NOT_A_REPOSITORY, NO_REMOTE, REPO_CONFIG_COMMAND, REMOTE_AUTH, GIT_FAILED).
Pull PullRequest PullResponse Pulls the upstream’s commits as the repository’s git config says (pull.rebase, pull.ff; a merge when neither is set), keeping uncommitted changes. One that stops on conflicts isn’t an error: its outcome is CONFLICTS (NOT_A_REPOSITORY, NO_UPSTREAM, GIT_BUSY, REPO_CONFIG_COMMAND, REMOTE_AUTH, GIT_FAILED).
Push PushRequest PushResponse Pushes the branch to its upstream, or publishes it to the remote and tracks it (NOT_A_REPOSITORY, NO_REMOTE, GIT_BUSY, PUSH_REJECTED, REPO_CONFIG_COMMAND, REMOTE_AUTH, GIT_FAILED).
ResolveConflict ResolveConflictRequest ResolveConflictResponse Settles a file a pull left in conflict (NO_MERGE, NOT_CONFLICTED, MARKERS_REMAIN, BAD_PATH, REPO_CONFIG_COMMAND, GIT_FAILED).
CompleteMerge CompleteMergeRequest CompleteMergeResponse Completes the merge or rebase a pull started; a rebase may stop on its next commit’s conflicts (NO_MERGE, CONFLICTS_REMAIN, REPO_CONFIG_COMMAND, GIT_FAILED).
AbortMerge AbortMergeRequest AbortMergeResponse Gives up the merge or rebase a pull started, putting the branch and the uncommitted changes back (NO_MERGE, REPO_CONFIG_COMMAND, GIT_FAILED).
ListBranches ListBranchesRequest ListBranchesResponse Lists the local branches, then the remotes’ branches no local branch tracks, each newest commit first (NOT_A_REPOSITORY, GIT_FAILED).
SwitchBranch SwitchBranchRequest SwitchBranchResponse Checks out a branch, carrying uncommitted changes along; a remote’s branch gets a local one that tracks it (NOT_A_REPOSITORY, NO_BRANCH, BAD_BRANCH_NAME, LOCAL_CHANGES, GIT_BUSY, REPO_CONFIG_COMMAND, GIT_FAILED).
CreateBranch CreateBranchRequest CreateBranchResponse Makes a branch at the current commit and switches to it, keeping uncommitted changes (NOT_A_REPOSITORY, BRANCH_EXISTS, BAD_BRANCH_NAME, GIT_BUSY, REPO_CONFIG_COMMAND, GIT_FAILED).
MergeBranch MergeBranchRequest MergeBranchResponse Merges a branch into the current one, keeping uncommitted changes. One that stops on conflicts isn’t an error: its outcome is CONFLICTS, and ResolveConflict, CompleteMerge and AbortMerge finish it (NOT_A_REPOSITORY, NO_BRANCH, BAD_BRANCH_NAME, MERGE_SELF, GIT_BUSY, REPO_CONFIG_COMMAND, GIT_FAILED).
SetSetting SetSettingRequest SetSettingResponse Changes a setting for the workspace: agency, or effort (a reasoning effort, or “auto” to clear it) (UNKNOWN_SETTING, INVALID_AGENCY, INVALID_SETTING).
SetPermissionMode SetPermissionModeRequest SetPermissionModeResponse Changes which actions run without asking, for every session of the workspace (UNKNOWN_MODE; BYPASS_NEEDS_SANDBOX when bypass is asked for without an active OS sandbox).
ListCommands ListCommandsRequest ListCommandsResponse Returns the custom slash commands: command files, bundled commands, and skills run by name.
ListPermissionRules ListPermissionRulesRequest ListPermissionRulesResponse Returns the permission rules in force: deny, then ask, then allow.
AddPermissionRule AddPermissionRuleRequest AddPermissionRuleResponse Adds an allow, ask or deny rule for the workspace and, with save, to a settings file: the global one or, with scope “workspace”, the workspace’s own (BAD_RULE). Read rules must be saved and apply from the next start.
RemovePermissionRule RemovePermissionRuleRequest RemovePermissionRuleResponse Removes a rule (any effect), and with save from a settings file.
ListSkills ListSkillsRequest ListSkillsResponse Returns the skills found, or those matching a query.
GetSkill GetSkillRequest GetSkillResponse Returns one skill (SKILL_NOT_FOUND).
GetSkillFile GetSkillFileRequest GetSkillFileResponse Returns a skill as Studio edits it: its SKILL.md’s fields and hash, and whether it’s the workspace’s own, which may be edited (SKILL_NOT_FOUND; spec_skills_013 SK-100).
SaveSkill SaveSkillRequest SaveSkillResponse Writes a skill of the workspace’s from Studio’s form: a new one in .agents/skills, or an existing one (renamed when the name differs) if its SKILL.md still has the hash read (HASH_MISMATCH). Its front matter’s other fields are kept. Problems are returned, with nothing written, when it can’t be saved.
DeleteSkill DeleteSkillRequest DeleteSkillResponse Deletes a skill of the workspace’s: its folder (SKILL_NOT_FOUND).
ReadSkillFile ReadSkillFileRequest ReadSkillFileResponse Returns one of a skill’s files (references/…, scripts/…).
WriteSkillFile WriteSkillFileRequest WriteSkillFileResponse Writes one of a workspace skill’s files, under references/ or scripts/, never outside its folder.
DeleteSkillFile DeleteSkillFileRequest DeleteSkillFileResponse Removes one of a workspace skill’s files.
CopySkill CopySkillRequest CopySkillResponse Copies any skill the workspace sees into .agents/skills under a name of its own, files and all, to edit (problems, nothing written, when the name won’t do).
RunSkillScript RunSkillScriptRequest RunSkillScriptResponse Runs one of a skill’s scripts now with arguments, as run_skill_script would (the policy, its sandbox and the permission rules apply): the user starts it, so its approvals are given.
ListRules ListRulesRequest ListRulesResponse Returns the workspace’s rules (spec_gates_041): the gates in the order they run (before the agent, then after), then the instruction rules.
SaveRule SaveRuleRequest SaveRuleResponse Writes a rule in .agents/rules from Studio’s form (renamed when the name differs from previous_name), keeping its front matter’s other fields; problems, with nothing written, when it can’t be saved.
DeleteRule DeleteRuleRequest DeleteRuleResponse Deletes a rule from .agents/rules (RULE_NOT_FOUND).
ReorderRules ReorderRulesRequest ReorderRulesResponse Numbers the named rules in .agents/rules 10, 20, 30… in the order given: the order they run.
TryRule TryRuleRequest TryRuleResponse Judges a sample against a rule as written (Try it): a prompt for a before-agent rule, an answer for an after-agent one. A judge that fails gives problem.
ListGuardrails ListGuardrailsRequest ListGuardrailsResponse Returns the workspace’s guardrails (spec_gates_041): each built-in one (its file, or its defaults), then the custom ones.
SaveGuardrail SaveGuardrailRequest SaveGuardrailResponse Writes a guardrail in .agents/guardrails from Studio’s form (a built-in’s file holds its settings, or switches it off), keeping its front matter’s other fields; problems, with nothing written, when it can’t be saved.
DeleteGuardrail DeleteGuardrailRequest DeleteGuardrailResponse Deletes a guardrail from .agents/guardrails (a built-in’s: back to its defaults; GUARDRAIL_NOT_FOUND).
TryGuardrail TryGuardrailRequest TryGuardrailResponse Checks a sample against a guardrail as written (Try it): a custom one by the judge, the injection and secrets ones by their patterns. A judge that fails gives problem.
ListEvals ListEvalsRequest ListEvalsResponse Returns the workspace’s evals (spec_evals_042), by name, each with its last run’s status.
SaveEval SaveEvalRequest SaveEvalResponse Writes an eval in .agents/evals from Studio’s form, keeping its front matter’s other fields and the text around its table; problems, with nothing written, when it can’t be saved (EVAL_NOT_FOUND for an unknown previous_name).
DeleteEval DeleteEvalRequest DeleteEvalResponse Deletes an eval from .agents/evals (EVAL_NOT_FOUND).
RunEval RunEvalRequest Stream<RunEvalResponse> Runs an eval: its cases (or those named) on each of its agents, streaming each result as it’s scored, then the finished run, which is recorded. An eval with a problem, or no case to run, is FAILED_PRECONDITION (EVAL_NOT_RUNNABLE).
ListEvalRuns ListEvalRunsRequest ListEvalRunsResponse Returns an eval’s recorded runs, newest first.
DraftEvalCases DraftEvalCasesRequest DraftEvalCasesResponse Drafts cases for an agent from its description and instructions, beside the cases given, saving nothing. An unknown agent is INVALID_ARGUMENT; a model that fails gives problem.
ListWorkflows ListWorkflowsRequest ListWorkflowsResponse Returns the workspace’s workflows (spec_workflows_043), by name. Run one as a turn ("/name input"), in a session or in the background.
SaveWorkflow SaveWorkflowRequest SaveWorkflowResponse Writes a workflow in .agents/workflows from Studio’s canvas; problems, with nothing written, when it can’t be saved (WORKFLOW_NOT_FOUND for an unknown previous_name). A step not filled in yet is saved, and is the workflow’s problem until it is.
DeleteWorkflow DeleteWorkflowRequest DeleteWorkflowResponse Deletes a workflow from .agents/workflows (WORKFLOW_NOT_FOUND).
ListWorkflowRuns ListWorkflowRunsRequest ListWorkflowRunsResponse Returns workflows’ runs, newest first: each run’s receipt (WF-19) without its events and its steps’ text. Running ones are as they are now.
GetWorkflowRun GetWorkflowRunRequest GetWorkflowRunResponse Returns one run’s whole receipt (RUN_NOT_FOUND).
WatchWorkflowRun WatchWorkflowRunRequest Stream<WatchWorkflowRunResponse> Streams one run’s receipt: as it is, then again each time it changes, until the run ends or pauses (RUN_NOT_FOUND).
WatchWorkflowRuns WatchWorkflowRunsRequest Stream<WatchWorkflowRunsResponse> Streams the runs going and those that ended lately (summaries): as they are, then again each time one starts, changes state or ends, so a client shows what’s running and hears of a failure from anywhere.
StopWorkflowRun StopWorkflowRunRequest StopWorkflowRunResponse Stops a running workflow run, wherever it was started (a chat, the background, a worker); RUN_NOT_FOUND when it isn’t running.
GetWorkspaceHealth GetWorkspaceHealthRequest GetWorkspaceHealthResponse The workspace dashboard (spec_health_044): the facts about its items and runs, each item’s latest verdict, and the scores.
WatchWorkspaceHealth WatchWorkspaceHealthRequest Stream<WatchWorkspaceHealthResponse> Streams the dashboard: as it is, then again each time it changes (a file, a run, a verdict).
EstimateHealthCheck EstimateHealthCheckRequest EstimateHealthCheckResponse How many items a check would judge, and its estimated cost.
CheckWorkspaceHealth CheckWorkspaceHealthRequest Stream<CheckWorkspaceHealthResponse> Judges the items that changed (or all, with force), one at a time, streaming each verdict; HEALTH_CHECK_RUNNING when one is going.
StopHealthCheck StopHealthCheckRequest StopHealthCheckResponse Stops the workspace’s check after the item being judged.
StartHealthCheck StartHealthCheckRequest StartHealthCheckResponse Starts a check in the service and returns at once: it goes on whoever watches, its progress in the dashboard (WorkspaceHealth.progress); HEALTH_CHECK_RUNNING when one is going.
StartCompose StartComposeRequest StartComposeResponse The composer (spec_composer_045): starts a guided conversation that makes a component of a kind (“workflow”), and runs its first turn: a question, or a draft checked by the kind’s own rules.
AnswerCompose AnswerComposeRequest AnswerComposeResponse Answers the composer’s question (or asks a change of its draft) and runs its next turn; COMPOSE_NOT_FOUND once the session has ended.
DropCompose DropComposeRequest DropComposeResponse Ends a composer session.
ListHumanTasks ListHumanTasksRequest ListHumanTasksResponse Returns the tasks paused workflow runs wait on (human tasks’ forms, timers), oldest first: one workspace’s, or every one’s.
WatchHumanTasks WatchHumanTasksRequest Stream<WatchHumanTasksResponse> Streams the tasks: the list now, then again each time it changes (a run pauses, a task is answered, a timer fires).
AnswerHumanTask AnswerHumanTaskRequest AnswerHumanTaskResponse Answers a human task with A2UI’s action message, checked against its form by the service: its run resumes in the background (TASK_NOT_FOUND; ANSWER_INVALID with the problems; NOT_ANSWERABLE for a timer; WORKFLOW_CHANGED when its workflow changed since).
ListEnvs ListEnvsRequest ListEnvsResponse Returns skill scripts’ environments (SCRIPTS_DISABLED).
RemoveEnv RemoveEnvRequest RemoveEnvResponse Removes one environment.
PruneEnvs PruneEnvsRequest PruneEnvsResponse Removes environments no allowed script needs, and incomplete ones.
DraftManifest DraftManifestRequest DraftManifestResponse Has the model write or improve a manifest field (an agent’s or a skill’s instructions, a script, a rule): nothing is saved.
ListMCPServers ListMCPServersRequest ListMCPServersResponse Returns the configured MCP servers and how each is doing.
RestartMCPServer RestartMCPServerRequest RestartMCPServerResponse Stops an MCP server and starts it afresh when the next turn lists its tools (NOT_FOUND when it isn’t running).
ListTools ListToolsRequest ListToolsResponse Returns what the active agent can use.
ReloadMemory ReloadMemoryRequest ReloadMemoryResponse Re-reads project instruction files and returns their paths.
ReloadAgentFiles ReloadAgentFilesRequest ReloadAgentFilesResponse Re-reads the agents, skills, instruction files and rules whether or not they look changed, and says what it loaded (/reload). Each turn already reloads what changed; MCP servers aren’t restarted.
AddMemory AddMemoryRequest AddMemoryResponse Appends a note to the project instruction file.
ListLocales ListLocalesRequest ListLocalesResponse Returns the languages with an interface catalog.
SetLocale SetLocaleRequest SetLocaleResponse Sets the language the model replies in and saves it (UNKNOWN_LOCALE). The client switches its own interface language to the returned tag.
ListCheckpoints ListCheckpointsRequest ListCheckpointsResponse Returns the turns that changed files, newest first.
Undo UndoRequest UndoResponse Restores the files the latest turn with changes modified (UNDO_CONFLICT unless force; NOTHING_TO_UNDO when none are left).
GetDiff GetDiffRequest GetDiffResponse Returns a diff of the agent’s changes this session, or git’s.
ListApprovals ListApprovalsRequest ListApprovalsResponse Returns standing approvals.
RevokeApprovals RevokeApprovalsRequest RevokeApprovalsResponse Revokes approvals by key, or all of them.
ListProcesses ListProcessesRequest ListProcessesResponse Returns the background processes started in the given sessions’ turns (a client’s), finished ones too, ordered by ID.
GetProcessOutput GetProcessOutputRequest GetProcessOutputResponse Returns a background process’s captured output and status (UNKNOWN_PROCESS unless one of the given sessions started it).
KillProcess KillProcessRequest KillProcessResponse Stops a background process and its descendants (UNKNOWN_PROCESS unless one of the given sessions started it).
AuditShell AuditShellRequest AuditShellResponse Records in the workspace’s audit log a command the user ran directly in a client (!cmd), as user_shell.
ListTasks ListTasksRequest ListTasksResponse Returns the background tasks (invoke_agent with background: true) started in the given sessions’ turns, oldest first.
GetTask GetTaskRequest GetTaskResponse Returns a background task with its latest events (UNKNOWN_TASK unless one of the given sessions started it).
StopTask StopTaskRequest StopTaskResponse Stops a background task (UNKNOWN_TASK unless one of the given sessions started it).
WatchTasks WatchTasksRequest Stream<WatchTasksResponse> Streams what happens to the given sessions’ background tasks outside turns: first their active tasks and waiting requests, then ready, then each change. Requests are answered with SessionService.Approve and Answer.
ListTaskRequests ListTaskRequestsRequest ListTaskRequestsResponse Returns the given sessions’ tasks’ approval requests and questions waiting for an answer.
GetProjectSettings GetProjectSettingsRequest GetProjectSettingsResponse Returns the workspace’s project settings (.blitz/settings.toml) and the trust decision for the part that runs code or loosens a policy.
TrustProject TrustProjectRequest TrustProjectResponse Records trusting or declining the project settings with the hash shown (PROJECT_CHANGED if they have changed since), and reopens the workspace so they take effect, unless a turn is running in it.
ForgetProjectTrust ForgetProjectTrustRequest ForgetProjectTrustResponse Forgets the decision about the project settings (blitz trust –revoke): they wait for trust again, and the workspace reopens without them unless a turn is running in it.
TakeProcessNotices TakeProcessNoticesRequest TakeProcessNoticesResponse Removes and returns what watched background processes (notify) of a session reported while no turn ran there.
ListStyles ListStylesRequest ListStylesResponse Returns the output styles, with the one in use (SetSetting “style” changes it).
ListHooks ListHooksRequest ListHooksResponse Returns the configured hooks, by event, with their recent failures.
ListNotes ListNotesRequest ListNotesResponse Returns the notes the agent saved across sessions of the workspace with its remember tool, newest first.
ForgetNote ForgetNoteRequest ForgetNoteResponse Deletes one of those notes, by its name (NO_NOTE).
LoadImage LoadImageRequest LoadImageResponse Reads an image or a PDF from the workspace for a prompt (IMAGES_DISABLED).
AddImage AddImageRequest AddImageResponse Stores image or PDF data (e.g. pasted) for a prompt (IMAGES_DISABLED).
GetSearchProvider GetSearchProviderRequest GetSearchProviderResponse Names the web search provider (NO_FETCH when the agent can’t fetch pages, so a search would give it nothing to read).
SearchWeb SearchWebRequest SearchWebResponse Searches the web and prepares the prompt that hands the readable results to the agent (NO_FETCH, NO_SEARCH): run it as a turn with fetch_grants set to the links’ URLs.
SearchWorkspace SearchWorkspaceRequest SearchWorkspaceResponse Searches the workspace’s index: its files, the text of its PDFs and notebooks, its chats and notes (SEARCH_DISABLED, UNKNOWN_SEARCH_SOURCE; spec_search_035).
GetSearchStatus GetSearchStatusRequest GetSearchStatusResponse Says how the workspace’s search index is.
Reindex ReindexRequest ReindexResponse Starts a scan of the workspace for search and returns at once (SEARCH_DISABLED).

Enum: SuggestionKind

FQN: blitz.v1.SuggestionKind
SuggestionKind is what a welcome tile does. The state kinds carry data for the front end to word in its own language; IDEA carries text.
Name Ordinal Description
SUGGESTION_KIND_UNSPECIFIED 0
SUGGESTION_KIND_SETUP 1 No agent instructions yet: run /setup in a new chat.
SUGGESTION_KIND_CONTINUE 2 Pick up the latest conversation: open session_id (title is its title).
SUGGESTION_KIND_CHANGES 3 Uncommitted changes (count files): review them and propose a commit.
SUGGESTION_KIND_WORKER_FAILED 4 A worker’s latest run failed or hit a limit (worker, detail: why).
SUGGESTION_KIND_IDEA 5 A model’s suggestion from the recent conversations: title on the tile, prompt sent when it’s chosen.
SUGGESTION_KIND_HARNESS_UPDATE 6 The specification (.agents/specs/) changed after the skills and agents: run /skills update (then /agents update).

Enum: AgentScope

FQN: blitz.v1.AgentScope
AgentScope is where an agent's file is kept.
Name Ordinal Description
AGENT_SCOPE_UNSPECIFIED 0
AGENT_SCOPE_WORKSPACE 1 The workspace’s .agents/agents.
AGENT_SCOPE_USER 2 The user’s ~/.blitz/agents, for every workspace.

Enum: GitOperation

FQN: blitz.v1.GitOperation
What a repository is in the middle of.
Name Ordinal Description
GIT_OPERATION_UNSPECIFIED 0 Nothing: no merge or rebase in progress.
GIT_OPERATION_MERGE 1 A merge, to complete (a merge commit) or abort.
GIT_OPERATION_REBASE 2 A rebase, to continue or abort.

Enum: PullOutcome

FQN: blitz.v1.PullOutcome
How a pull went.
Name Ordinal Description
PULL_OUTCOME_UNSPECIFIED 0
PULL_OUTCOME_UP_TO_DATE 1 Nothing new.
PULL_OUTCOME_FAST_FORWARD 2 The branch moved to the upstream’s commit.
PULL_OUTCOME_MERGED 3 A merge commit joined the two.
PULL_OUTCOME_REBASED 4 The branch’s commits were replayed on the upstream’s.
PULL_OUTCOME_CONFLICTS 5 Stopped on conflicts: a merge or rebase waits (status.conflicts).

Enum: ConflictChoice

FQN: blitz.v1.ConflictChoice
How a conflicted file is settled.
Name Ordinal Description
CONFLICT_CHOICE_UNSPECIFIED 0
CONFLICT_CHOICE_MINE 1 The branch’s version, from before the pull.
CONFLICT_CHOICE_THEIRS 2 The upstream’s version.
CONFLICT_CHOICE_RESOLVED 3 As edited by hand (refused while conflict markers remain).

SuggestionKind Diagram

classDiagram
direction LR
%% SuggestionKind is what a welcome tile does. The state kinds carry data for the front end to word in its own language; IDEA carries text.

class SuggestionKind{
  <<enumeration>>
  SUGGESTION_KIND_UNSPECIFIED
  SUGGESTION_KIND_SETUP
  SUGGESTION_KIND_CONTINUE
  SUGGESTION_KIND_CHANGES
  SUGGESTION_KIND_WORKER_FAILED
  SUGGESTION_KIND_IDEA
  SUGGESTION_KIND_HARNESS_UPDATE
}

AgentScope Diagram

classDiagram
direction LR
%% AgentScope is where an agent's file is kept.

class AgentScope{
  <<enumeration>>
  AGENT_SCOPE_UNSPECIFIED
  AGENT_SCOPE_WORKSPACE
  AGENT_SCOPE_USER
}

GitOperation Diagram

classDiagram
direction LR
%% What a repository is in the middle of.

class GitOperation{
  <<enumeration>>
  GIT_OPERATION_UNSPECIFIED
  GIT_OPERATION_MERGE
  GIT_OPERATION_REBASE
}

PullOutcome Diagram

classDiagram
direction LR
%% How a pull went.

class PullOutcome{
  <<enumeration>>
  PULL_OUTCOME_UNSPECIFIED
  PULL_OUTCOME_UP_TO_DATE
  PULL_OUTCOME_FAST_FORWARD
  PULL_OUTCOME_MERGED
  PULL_OUTCOME_REBASED
  PULL_OUTCOME_CONFLICTS
}

ConflictChoice Diagram

classDiagram
direction LR
%% How a conflicted file is settled.

class ConflictChoice{
  <<enumeration>>
  CONFLICT_CHOICE_UNSPECIFIED
  CONFLICT_CHOICE_MINE
  CONFLICT_CHOICE_THEIRS
  CONFLICT_CHOICE_RESOLVED
}

Saved Diagram

classDiagram
direction LR

%% Saved reports where a change was written in the config file. The change applies even when saving fails.

class Saved {
  + string path
  + string error
}

ShutdownRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.Shutdown.

class ShutdownRequest {
}

ShutdownResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.Shutdown: sent before the service stops.

class ShutdownResponse {
}

GetServiceInfoRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetServiceInfo.

class GetServiceInfoRequest {
}

GetServiceInfoResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetServiceInfo.

class GetServiceInfoResponse {
  + string version
  + string executable
  + google.protobuf.Timestamp started
  + int32 pid
  + bool replaced
}

ListLogDaysRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListLogDays.

class ListLogDaysRequest {
}

ListLogDaysResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListLogDays.

class ListLogDaysResponse {
  + List~string~ days
  + string dir
}

ReadLogRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ReadLog.

class ReadLogRequest {
  + string day
  + string min_level
  + string text
  + int32 limit
}

LogAttr Diagram

classDiagram
direction LR

%% A field of a log record.

class LogAttr {
  + string key
  + string value
}

LogEntry Diagram

classDiagram
direction LR

%% A log record.

class LogEntry {
  + google.protobuf.Timestamp time
  + string level
  + string message
  + List~LogAttr~ attrs
}
LogEntry --> `LogAttr`

ReadLogResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ReadLog.

class ReadLogResponse {
  + string day
  + string path
  + List~LogEntry~ entries
  + int32 matched
}
ReadLogResponse --> `LogEntry`

DeleteLogDayRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DeleteLogDay.

class DeleteLogDayRequest {
  + string day
}

DeleteLogDayResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DeleteLogDay.

class DeleteLogDayResponse {
}

ListWorkspacesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListWorkspaces.

class ListWorkspacesRequest {
}

ListWorkspacesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListWorkspaces.

class ListWorkspacesResponse {
  + List~string~ workspaces
}

CloseWorkspaceRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.CloseWorkspace.

class CloseWorkspaceRequest {
  + string workspace
}

CloseWorkspaceResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.CloseWorkspace.

class CloseWorkspaceResponse {
}

GetSandboxRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetSandbox.

class GetSandboxRequest {
  + string workspace
}

GetSandboxResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetSandbox.

class GetSandboxResponse {
  + List~string~ summary
}

AgentInfo Diagram

classDiagram
direction LR

%% AgentInfo describes an agent.

class AgentInfo {
  + string name
  + string display_name
  + string description
  + bool active
  + string pinned_model
}

ListAgentsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListAgents.

class ListAgentsRequest {
  + string workspace
}

ListAgentsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListAgents.

class ListAgentsResponse {
  + List~AgentInfo~ agents
}
ListAgentsResponse --> `AgentInfo`

SetAgentRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SetAgent.

class SetAgentRequest {
  + string workspace
  + string name
}

SetAgentResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SetAgent.

class SetAgentResponse {
  + AgentInfo agent
}
SetAgentResponse --> `AgentInfo`

Suggestion Diagram

classDiagram
direction LR

%% Suggestion is one welcome tile.

class Suggestion {
  + SuggestionKind kind
  + string title
  + string prompt
  + string session_id
  + string worker
  + int32 count
  + string detail
}
Suggestion --> `SuggestionKind`

GetSuggestionsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetSuggestions.

class GetSuggestionsRequest {
  + string workspace
}

GetSuggestionsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetSuggestions.

class GetSuggestionsResponse {
  + List~Suggestion~ suggestions
  + bool harness_missing
  + bool pending
}
GetSuggestionsResponse --> `Suggestion`

AgentDefinition Diagram

classDiagram
direction LR

%% AgentDefinition is an agent's file: its frontmatter and its prompt.

class AgentDefinition {
  + string name
  + string display_name
  + string description
  + List~string~ tools
  + string default_model
  + string agency_level
  + string permission_mode
  + int32 max_turns
  + bool background
  + string isolation
  + Optional~double~ temperature
  + Optional~double~ top_p
  + Optional~int32~ max_tokens
  + string effort
  + Optional~int32~ thinking_budget
  + string prompt
}

AgentFile Diagram

classDiagram
direction LR

%% AgentFile is one agent file of a scope.

class AgentFile {
  + string path
  + AgentDefinition agent
  + string problem
}
AgentFile --> `AgentDefinition`

ListAgentFilesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListAgentFiles.

class ListAgentFilesRequest {
  + string workspace
  + AgentScope scope
}
ListAgentFilesRequest --> `AgentScope`

ListAgentFilesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListAgentFiles.

class ListAgentFilesResponse {
  + List~AgentFile~ files
  + string dir
}
ListAgentFilesResponse --> `AgentFile`

SaveAgentFileRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SaveAgentFile.

class SaveAgentFileRequest {
  + string workspace
  + AgentScope scope
  + string previous_name
  + AgentDefinition agent
}
SaveAgentFileRequest --> `AgentScope`
SaveAgentFileRequest --> `AgentDefinition`

SaveAgentFileResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SaveAgentFile.

class SaveAgentFileResponse {
  + AgentFile file
  + List~string~ problems
}
SaveAgentFileResponse --> `AgentFile`

DeleteAgentFileRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DeleteAgentFile.

class DeleteAgentFileRequest {
  + string workspace
  + AgentScope scope
  + string name
  + string path
}
DeleteAgentFileRequest --> `AgentScope`

DeleteAgentFileResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DeleteAgentFile.

class DeleteAgentFileResponse {
}

GetModelRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetModel.

class GetModelRequest {
  + string workspace
}

GetModelResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetModel.

class GetModelResponse {
  + string name
  + string provider
  + string unavailable
}

SetModelRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SetModel.

class SetModelRequest {
  + string workspace
  + string ref
}

SetModelResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SetModel.

class SetModelResponse {
  + string active_pin
}

PinModelRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.PinModel.

class PinModelRequest {
  + string workspace
  + string agent
  + string ref
}

PinModelResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.PinModel.

class PinModelResponse {
  + string agent
  + string model
  + Saved saved
}
PinModelResponse --> `Saved`

UnpinModelRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.UnpinModel.

class UnpinModelRequest {
  + string workspace
  + string agent
}

UnpinModelResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.UnpinModel.

class UnpinModelResponse {
  + string agent
  + string model
  + Saved saved
}
UnpinModelResponse --> `Saved`

ModelSettings Diagram

classDiagram
direction LR

%% ModelSettings are a model's generation settings; unset fields use the global value or the provider's default.

class ModelSettings {
  + Optional~double~ temperature
  + Optional~int32~ max_tokens
  + Optional~double~ top_p
  + Optional~int32~ seed
  + Optional~string~ reasoning_effort
  + Optional~int32~ thinking_budget
}

ModelSettingsInfo Diagram

classDiagram
direction LR

%% ModelSettingsInfo is one model's settings and what applies otherwise.

class ModelSettingsInfo {
  + string model
  + string provider
  + ModelSettings settings
  + double global_temperature
  + int32 global_max_tokens
}
ModelSettingsInfo --> `ModelSettings`

GetModelSettingsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetModelSettings.

class GetModelSettingsRequest {
  + string workspace
  + string ref
}

GetModelSettingsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetModelSettings.

class GetModelSettingsResponse {
  + Map~string,  ModelSettings~ all
  + ModelSettingsInfo model
}
GetModelSettingsResponse .. ` ModelSettings`
GetModelSettingsResponse --> `ModelSettingsInfo`

Setting Diagram

classDiagram
direction LR

%% Setting is one key=value change; an empty value clears the key.

class Setting {
  + string key
  + string value
}

UpdateModelSettingsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.UpdateModelSettings.

class UpdateModelSettingsRequest {
  + string workspace
  + string ref
  + bool reset
  + List~Setting~ changes
}
UpdateModelSettingsRequest --> `Setting`

UpdateModelSettingsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.UpdateModelSettings.

class UpdateModelSettingsResponse {
  + ModelSettingsInfo model
  + List~string~ unsupported
  + Saved saved
}
UpdateModelSettingsResponse --> `ModelSettingsInfo`
UpdateModelSettingsResponse --> `Saved`

GetSettingsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetSettings.

class GetSettingsRequest {
  + string workspace
}

GetSettingsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetSettings.

class GetSettingsResponse {
  + string agency
  + string model
  + string provider
  + string agent
  + string locale
  + bool images_enabled
  + string permission_mode
  + string effort
  + string style
  + string speech_model
  + string speech_error
  + List~AcceptedMedia~ accepted_media
}
GetSettingsResponse --> `AcceptedMedia`

AcceptedMedia Diagram

classDiagram
direction LR

%% AcceptedMedia is a kind of attachment a model takes.

class AcceptedMedia {
  + string kind
  + List~string~ mime_types
  + List~string~ extensions
  + int64 max_bytes
}

SetPermissionModeRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SetPermissionMode.

class SetPermissionModeRequest {
  + string workspace
  + string mode
}

SetPermissionModeResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SetPermissionMode.

class SetPermissionModeResponse {
  + string mode
}

Command Diagram

classDiagram
direction LR

%% Command is a custom slash command.

class Command {
  + string name
  + string description
  + string argument_hint
  + string source
}

ListCommandsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListCommands.

class ListCommandsRequest {
  + string workspace
}

ListCommandsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListCommands.

class ListCommandsResponse {
  + List~Command~ commands
}
ListCommandsResponse --> `Command`

PermissionRule Diagram

classDiagram
direction LR

%% PermissionRule is an allow, ask or deny rule.

class PermissionRule {
  + string effect
  + string rule
  + string source
}

ListPermissionRulesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListPermissionRules.

class ListPermissionRulesRequest {
  + string workspace
}

ListPermissionRulesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListPermissionRules.

class ListPermissionRulesResponse {
  + List~PermissionRule~ rules
  + string problem
}
ListPermissionRulesResponse --> `PermissionRule`

AddPermissionRuleRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.AddPermissionRule.

class AddPermissionRuleRequest {
  + string workspace
  + string effect
  + string rule
  + bool save
  + string scope
}

AddPermissionRuleResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.AddPermissionRule.

class AddPermissionRuleResponse {
  + string rule
  + bool next_start
  + Saved saved
}
AddPermissionRuleResponse --> `Saved`

RemovePermissionRuleRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.RemovePermissionRule.

class RemovePermissionRuleRequest {
  + string workspace
  + string rule
  + bool save
  + string scope
}

RemovePermissionRuleResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.RemovePermissionRule.

class RemovePermissionRuleResponse {
  + string rule
  + int32 removed
  + Saved saved
}
RemovePermissionRuleResponse --> `Saved`

SetSettingRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SetSetting.

class SetSettingRequest {
  + string workspace
  + string key
  + string value
}

SetSettingResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SetSetting.

class SetSettingResponse {
  + string key
}

SkillInfo Diagram

classDiagram
direction LR

%% SkillInfo describes a skill and what the skills policy lets it do.

class SkillInfo {
  + string name
  + string description
  + string version
  + string license
  + string category
  + string compatibility
  + List~string~ tags
  + string hash
  + List~SkillTool~ tools
  + List~SkillScript~ scripts
  + string tier
  + bool bypass
  + bool network
  + bool needs_network
  + List~string~ env
  + List~string~ withheld
  + List~string~ blocked
  + string dir
  + string kind
  + List~string~ agents
  + List~string~ members
  + List~string~ references
  + bool project
  + List~string~ package_files
  + bool needs_review
}
SkillInfo --> `SkillTool`
SkillInfo --> `SkillScript`

SkillTool Diagram

classDiagram
direction LR

%% SkillTool is a tool a skill needs.

class SkillTool {
  + string name
  + List~string~ scopes
  + string why
}

SkillScript Diagram

classDiagram
direction LR

%% SkillScript is one of a skill's scripts and the policy's verdict.

class SkillScript {
  + string name
  + string language
  + string source
  + google.protobuf.Duration timeout
  + List~string~ deps
  + bool allowed
  + List~string~ reasons
  + bool found
}

ListSkillsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListSkills.

class ListSkillsRequest {
  + string workspace
  + string query
}

ListSkillsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListSkills.

class ListSkillsResponse {
  + List~SkillInfo~ skills
}
ListSkillsResponse --> `SkillInfo`

GetSkillRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetSkill.

class GetSkillRequest {
  + string workspace
  + string name
}

GetSkillResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetSkill.

class GetSkillResponse {
  + SkillInfo skill
}
GetSkillResponse --> `SkillInfo`

SkillSpec Diagram

classDiagram
direction LR

%% What Studio's skill form edits.

class SkillSpec {
  + string name
  + string description
  + string tools
  + List~string~ agents
  + List~string~ members
  + string instructions
}

SkillFile Diagram

classDiagram
direction LR

%% A skill as Studio edits it.

class SkillFile {
  + SkillInfo skill
  + string path
  + string hash
  + SkillSpec spec
  + bool editable
}
SkillFile --> `SkillInfo`
SkillFile --> `SkillSpec`

GetSkillFileRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetSkillFile.

class GetSkillFileRequest {
  + string workspace
  + string name
}

GetSkillFileResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetSkillFile.

class GetSkillFileResponse {
  + SkillFile file
}
GetSkillFileResponse --> `SkillFile`

SaveSkillRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SaveSkill.

class SaveSkillRequest {
  + string workspace
  + string previous_name
  + string hash
  + SkillSpec skill
}
SaveSkillRequest --> `SkillSpec`

SaveSkillResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SaveSkill.

class SaveSkillResponse {
  + SkillFile file
  + List~string~ problems
}
SaveSkillResponse --> `SkillFile`

DeleteSkillRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DeleteSkill.

class DeleteSkillRequest {
  + string workspace
  + string name
}

DeleteSkillResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DeleteSkill.

class DeleteSkillResponse {
}

ReadSkillFileRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ReadSkillFile.

class ReadSkillFileRequest {
  + string workspace
  + string name
  + string path
}

ReadSkillFileResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ReadSkillFile.

class ReadSkillFileResponse {
  + bytes content
}

WriteSkillFileRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.WriteSkillFile.

class WriteSkillFileRequest {
  + string workspace
  + string name
  + string path
  + bytes content
}

WriteSkillFileResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.WriteSkillFile.

class WriteSkillFileResponse {
  + SkillFile file
}
WriteSkillFileResponse --> `SkillFile`

DeleteSkillFileRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DeleteSkillFile.

class DeleteSkillFileRequest {
  + string workspace
  + string name
  + string path
}

DeleteSkillFileResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DeleteSkillFile.

class DeleteSkillFileResponse {
  + SkillFile file
}
DeleteSkillFileResponse --> `SkillFile`

CopySkillRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.CopySkill.

class CopySkillRequest {
  + string workspace
  + string from
  + string name
}

CopySkillResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.CopySkill.

class CopySkillResponse {
  + SkillFile file
  + List~string~ problems
}
CopySkillResponse --> `SkillFile`

RunSkillScriptRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.RunSkillScript.

class RunSkillScriptRequest {
  + string workspace
  + string name
  + string script
  + List~string~ args
}

RunSkillScriptResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.RunSkillScript.

class RunSkillScriptResponse {
  + int32 exit_code
  + string stdout
  + string stderr
  + bool timed_out
  + string sandbox
  + List~string~ output_files
  + string error
}

Env Diagram

classDiagram
direction LR

%% Env is an isolated Python environment built for skill scripts.

class Env {
  + string key
  + List~string~ deps
  + List~string~ skills
  + int64 size
  + google.protobuf.Timestamp last_used
  + bool ready
}

ListEnvsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListEnvs.

class ListEnvsRequest {
  + string workspace
}

ListEnvsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListEnvs.

class ListEnvsResponse {
  + List~Env~ envs
}
ListEnvsResponse --> `Env`

RemoveEnvRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.RemoveEnv.

class RemoveEnvRequest {
  + string workspace
  + string key
}

RemoveEnvResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.RemoveEnv.

class RemoveEnvResponse {
}

PruneEnvsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.PruneEnvs.

class PruneEnvsRequest {
  + string workspace
}

EnvError Diagram

classDiagram
direction LR

%% EnvError is an environment that couldn't be removed.

class EnvError {
  + string key
  + string error
}

PruneEnvsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.PruneEnvs.

class PruneEnvsResponse {
  + int32 removed
  + int64 freed
  + List~EnvError~ failed
}
PruneEnvsResponse --> `EnvError`

MCPServer Diagram

classDiagram
direction LR

%% MCPServer is a configured MCP server.

class MCPServer {
  + string name
  + string target
  + bool auto_approve
  + bool disabled
  + string state
  + string error
  + int32 tools
}

ListMCPServersRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListMCPServers.

class ListMCPServersRequest {
  + string workspace
}

ListMCPServersResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListMCPServers.

class ListMCPServersResponse {
  + List~MCPServer~ servers
}
ListMCPServersResponse --> `MCPServer`

RestartMCPServerRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.RestartMCPServer.

class RestartMCPServerRequest {
  + string workspace
  + string name
}

RestartMCPServerResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.RestartMCPServer.

class RestartMCPServerResponse {
}

ToolInfo Diagram

classDiagram
direction LR

%% ToolInfo is a tool an agent can call.

class ToolInfo {
  + string name
  + string description
  + bool plan_allowed
}

MCPOffer Diagram

classDiagram
direction LR

%% MCPOffer is an MCP server offered to an agent.

class MCPOffer {
  + string server
  + List~string~ tools
  + string prefix
}

ListToolsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListTools.

class ListToolsRequest {
  + string workspace
  + bool all
}

ListToolsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListTools.

class ListToolsResponse {
  + string agent
  + List~ToolInfo~ tools
  + List~MCPOffer~ mcp
}
ListToolsResponse --> `ToolInfo`
ListToolsResponse --> `MCPOffer`

ReloadMemoryRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ReloadMemory.

class ReloadMemoryRequest {
  + string workspace
}

ReloadMemoryResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ReloadMemory.

class ReloadMemoryResponse {
  + List~string~ paths
  + List~string~ files
}

ReloadAgentFilesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ReloadAgentFiles.

class ReloadAgentFilesRequest {
  + string workspace
}

ReloadAgentFilesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ReloadAgentFiles.

class ReloadAgentFilesResponse {
  + int32 agents
  + int32 skills
  + List~string~ files
  + List~string~ problems
}

AddMemoryRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.AddMemory.

class AddMemoryRequest {
  + string workspace
  + string text
}

AddMemoryResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.AddMemory.

class AddMemoryResponse {
  + string path
}

LocaleInfo Diagram

classDiagram
direction LR

%% LocaleInfo names a language with an interface catalog.

class LocaleInfo {
  + string tag
  + string name
}

ListLocalesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListLocales.

class ListLocalesRequest {
  + string workspace
}

ListLocalesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListLocales.

class ListLocalesResponse {
  + List~LocaleInfo~ locales
  + string custom_dir
}
ListLocalesResponse --> `LocaleInfo`

SetLocaleRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SetLocale.

class SetLocaleRequest {
  + string workspace
  + string input
}

SetLocaleResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SetLocale.

class SetLocaleResponse {
  + string tag
  + string native_name
  + string language_name
  + bool has_catalog
  + Saved saved
}
SetLocaleResponse --> `Saved`

Checkpoint Diagram

classDiagram
direction LR

%% Checkpoint is the files one turn changed.

class Checkpoint {
  + int32 id
  + string label
  + google.protobuf.Timestamp time
  + List~string~ files
}

ListCheckpointsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListCheckpoints.

class ListCheckpointsRequest {
  + string workspace
}

ListCheckpointsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListCheckpoints.

class ListCheckpointsResponse {
  + List~Checkpoint~ checkpoints
}
ListCheckpointsResponse --> `Checkpoint`

UndoRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.Undo.

class UndoRequest {
  + string workspace
  + bool force
}

UndoResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.Undo.

class UndoResponse {
  + string label
  + List~string~ restored
  + ErrorInfo error
}
UndoResponse --> `ErrorInfo`

GetDiffRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetDiff.

class GetDiffRequest {
  + string workspace
  + bool git
  + bool color
}

GetDiffResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetDiff.

class GetDiffResponse {
  + string diff
}

Approval Diagram

classDiagram
direction LR

%% Approval is a standing permission.

class Approval {
  + string key
  + string kind
  + string subject
  + string dir
  + bool always
  + google.protobuf.Timestamp added
}

ListApprovalsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListApprovals.

class ListApprovalsRequest {
  + string workspace
}

ListApprovalsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListApprovals.

class ListApprovalsResponse {
  + List~Approval~ approvals
}
ListApprovalsResponse --> `Approval`

RevokeApprovalsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.RevokeApprovals.

class RevokeApprovalsRequest {
  + string workspace
  + List~string~ keys
  + bool all
}

RevokeApprovalsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.RevokeApprovals.

class RevokeApprovalsResponse {
  + int32 revoked
  + ErrorInfo error
}
RevokeApprovalsResponse --> `ErrorInfo`

Process Diagram

classDiagram
direction LR

%% Process is a background process the agent started, and how it is.

class Process {
  + int32 id
  + string command
  + bool running
  + int32 exit_code
  + int64 runtime_ms
}

ListProcessesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListProcesses.

class ListProcessesRequest {
  + string workspace
  + List~string~ session_ids
}

ListProcessesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListProcesses.

class ListProcessesResponse {
  + List~Process~ processes
}
ListProcessesResponse --> `Process`

GetProcessOutputRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetProcessOutput.

class GetProcessOutputRequest {
  + string workspace
  + List~string~ session_ids
  + int32 id
}

GetProcessOutputResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetProcessOutput.

class GetProcessOutputResponse {
  + string output
  + Process process
}
GetProcessOutputResponse --> `Process`

KillProcessRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.KillProcess.

class KillProcessRequest {
  + string workspace
  + List~string~ session_ids
  + int32 id
}

KillProcessResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.KillProcess.

class KillProcessResponse {
  + Process process
}
KillProcessResponse --> `Process`

AuditShellRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.AuditShell.

class AuditShellRequest {
  + string workspace
  + string command
  + int32 exit_code
  + string start_error
}

AuditShellResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.AuditShell.

class AuditShellResponse {
}

BackgroundTask Diagram

classDiagram
direction LR

%% BackgroundTask is a sub-agent running beside the turn that started it.

class BackgroundTask {
  + string id
  + string agent
  + string prompt
  + string session_id
  + string state
  + google.protobuf.Timestamp started
  + google.protobuf.Timestamp ended
  + string result
  + string error
  + Usage usage
  + string worktree
  + string branch
}
BackgroundTask --> `Usage`

ListTasksRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListTasks.

class ListTasksRequest {
  + string workspace
  + List~string~ session_ids
}

ListTasksResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListTasks.

class ListTasksResponse {
  + List~BackgroundTask~ tasks
}
ListTasksResponse --> `BackgroundTask`

GetTaskRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetTask.

class GetTaskRequest {
  + string workspace
  + List~string~ session_ids
  + string id
}

GetTaskResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetTask.

class GetTaskResponse {
  + BackgroundTask task
  + List~string~ events
}
GetTaskResponse --> `BackgroundTask`

StopTaskRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.StopTask.

class StopTaskRequest {
  + string workspace
  + List~string~ session_ids
  + string id
}

TaskEvent Diagram

classDiagram
direction LR

%% TaskEvent is something that happened to a background task outside a turn.

class TaskEvent {
  + Oneof~BackgroundTask~ task [oneof: kind]
  + Oneof~ApprovalRequest~ approval_request [oneof: kind]
  + Oneof~Question~ question [oneof: kind]
  + Oneof~string~ resolved [oneof: kind]
  + Oneof~bool~ ready [oneof: kind]
  + Oneof~bool~ settings_changed [oneof: kind]
}
TaskEvent --> `BackgroundTask`
TaskEvent --> `ApprovalRequest`
TaskEvent --> `Question`

WatchTasksRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.WatchTasks.

class WatchTasksRequest {
  + string workspace
  + List~string~ session_ids
}

WatchTasksResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.WatchTasks.

class WatchTasksResponse {
  + TaskEvent event
}
WatchTasksResponse --> `TaskEvent`

ListTaskRequestsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListTaskRequests.

class ListTaskRequestsRequest {
  + string workspace
  + List~string~ session_ids
}

ListTaskRequestsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListTaskRequests.

class ListTaskRequestsResponse {
  + List~TaskEvent~ requests
}
ListTaskRequestsResponse --> `TaskEvent`

StopTaskResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.StopTask.

class StopTaskResponse {
  + BackgroundTask task
}
StopTaskResponse --> `BackgroundTask`

ProjectItem Diagram

classDiagram
direction LR

%% ProjectItem is one setting from a project file.

class ProjectItem {
  + string file
  + string kind
  + string key
  + string value
  + string reason
}

ProjectSettings Diagram

classDiagram
direction LR

%% ProjectSettings are what a workspace's project files say.

class ProjectSettings {
  + List~string~ files
  + string state
  + string hash
  + bool loaded
  + List~ProjectItem~ applied
  + List~ProjectItem~ pending
  + List~ProjectItem~ ignored
  + List~string~ problems
}
ProjectSettings --> `ProjectItem`
ProjectSettings --> `ProjectItem`
ProjectSettings --> `ProjectItem`

GetProjectSettingsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetProjectSettings.

class GetProjectSettingsRequest {
  + string workspace
}

GetProjectSettingsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetProjectSettings.

class GetProjectSettingsResponse {
  + ProjectSettings settings
}
GetProjectSettingsResponse --> `ProjectSettings`

TakeProcessNoticesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.TakeProcessNotices.

class TakeProcessNoticesRequest {
  + string workspace
  + string session_id
}

TakeProcessNoticesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.TakeProcessNotices.

class TakeProcessNoticesResponse {
  + List~string~ notices
}

Style Diagram

classDiagram
direction LR

%% Style is an output style.

class Style {
  + string name
  + string description
  + string source
  + bool active
}

ListStylesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListStyles.

class ListStylesRequest {
  + string workspace
}

ListStylesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListStyles.

class ListStylesResponse {
  + List~Style~ styles
}
ListStylesResponse --> `Style`

Hook Diagram

classDiagram
direction LR

%% Hook is a configured hook.

class Hook {
  + string event
  + string type
  + string match
  + string if
  + string runs
  + string source
  + bool fail_closed
  + List~HookFailure~ failures
}
Hook --> `HookFailure`

HookFailure Diagram

classDiagram
direction LR

%% HookFailure is one failed run of a hook.

class HookFailure {
  + google.protobuf.Timestamp time
  + string error
}

ListHooksRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListHooks.

class ListHooksRequest {
  + string workspace
}

ListHooksResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListHooks.

class ListHooksResponse {
  + List~Hook~ hooks
}
ListHooksResponse --> `Hook`

Note Diagram

classDiagram
direction LR

%% Note is something the agent remembered across sessions of a workspace.

class Note {
  + string name
  + string kind
  + string text
  + google.protobuf.Timestamp time
  + string path
}

ListNotesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListNotes.

class ListNotesRequest {
  + string workspace
}

ListNotesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListNotes.

class ListNotesResponse {
  + List~Note~ notes
}
ListNotesResponse --> `Note`

ForgetNoteRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ForgetNote.

class ForgetNoteRequest {
  + string workspace
  + string name
}

ForgetNoteResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ForgetNote.

class ForgetNoteResponse {
}

ForgetProjectTrustRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ForgetProjectTrust.

class ForgetProjectTrustRequest {
  + string workspace
}

ForgetProjectTrustResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ForgetProjectTrust.

class ForgetProjectTrustResponse {
  + bool reopened
}

TrustProjectRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.TrustProject.

class TrustProjectRequest {
  + string workspace
  + string hash
  + bool trusted
}

TrustProjectResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.TrustProject.

class TrustProjectResponse {
  + bool reopened
}

Image Diagram

classDiagram
direction LR

%% Image is an image or a PDF stored for a prompt.

class Image {
  + string id
  + string name
  + string mime_type
  + int32 width
  + int32 height
  + int64 size
  + bool resized
  + int32 pages
  + string kind
  + double seconds
}

LoadImageRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.LoadImage.

class LoadImageRequest {
  + string workspace
  + string path
}

LoadImageResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.LoadImage.

class LoadImageResponse {
  + Image image
}
LoadImageResponse --> `Image`

AddImageRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.AddImage.

class AddImageRequest {
  + string workspace
  + string name
  + bytes data
}

AddImageResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.AddImage.

class AddImageResponse {
  + Image image
}
AddImageResponse --> `Image`
classDiagram
direction LR

%% Link is a search result handed to the agent.

class Link {
  + string title
  + string url
}

GetSearchProviderRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetSearchProvider.

class GetSearchProviderRequest {
  + string workspace
}

GetSearchProviderResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetSearchProvider.

class GetSearchProviderResponse {
  + string provider
}

SearchWebRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SearchWeb.

class SearchWebRequest {
  + string workspace
  + string terms
}

SearchWebResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SearchWeb.

class SearchWebResponse {
  + string provider
  + List~Link~ links
  + string prompt
}
SearchWebResponse --> `Link`

SearchWorkspaceRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SearchWorkspace.

class SearchWorkspaceRequest {
  + string workspace
  + string query
  + List~string~ sources
  + int32 limit
  + string mode
  + bool hidden
}

SearchHit Diagram

classDiagram
direction LR

%% SearchHit is one item workspace search found.

class SearchHit {
  + string source
  + string ref
  + string title
  + int32 line
  + string section
  + string snippet
  + double score
  + string summary
  + List~string~ tags
}

SearchWorkspaceResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SearchWorkspace.

class SearchWorkspaceResponse {
  + List~SearchHit~ hits
  + List~string~ sources
}
SearchWorkspaceResponse --> `SearchHit`

GetSearchStatusRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetSearchStatus.

class GetSearchStatusRequest {
  + string workspace
}

SearchStatus Diagram

classDiagram
direction LR

%% SearchStatus is how a workspace's search index is.

class SearchStatus {
  + bool enabled
  + Map~string,  int32~ items
  + bool scanning
  + google.protobuf.Timestamp last_scan
  + int32 unreadable
  + string error
  + string embedding_model
  + int32 embedded
  + string embed_error
  + int32 enriched
  + string enrich_error
  + SearchSettings settings
  + string problem
}
SearchStatus --> `SearchSettings`

SearchSettings Diagram

classDiagram
direction LR

%% SearchSettings are a workspace's [search] settings (set with ConfigService.SetConfigValue: search.enabled, search.sources, …).

class SearchSettings {
  + bool enabled
  + List~string~ sources
  + string embedding_model
  + bool enrich
  + string enrich_model
  + int32 enrich_daily_limit
  + bool include_ignored
}

GetSearchStatusResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetSearchStatus.

class GetSearchStatusResponse {
  + SearchStatus status
}
GetSearchStatusResponse --> `SearchStatus`

ReindexRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.Reindex.

class ReindexRequest {
  + string workspace
}

ReindexResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.Reindex.

class ReindexResponse {
}

GetGitStatusRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetGitStatus.

class GetGitStatusRequest {
  + string workspace
}

GetGitStatusResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetGitStatus.

class GetGitStatusResponse {
  + bool repo
  + string branch
  + int32 changed
  + bool git
  + bool remote
  + string upstream
  + int32 ahead
  + int32 behind
  + GitOperation operation
  + List~string~ conflicts
  + string merging
}
GetGitStatusResponse --> `GitOperation`

InitGitRepoRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.InitGitRepo.

class InitGitRepoRequest {
  + string workspace
}

InitGitRepoResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.InitGitRepo.

class InitGitRepoResponse {
  + GetGitStatusResponse status
}
InitGitRepoResponse --> `GetGitStatusResponse`

StagedFile Diagram

classDiagram
direction LR

%% A file in the index, for the commit dialog.

class StagedFile {
  + string status
  + string path
}

DraftCommitRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DraftCommit.

class DraftCommitRequest {
  + string workspace
  + bool stage_all
}

DraftCommitResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DraftCommit.

class DraftCommitResponse {
  + List~StagedFile~ files
  + string message
  + string problem
}
DraftCommitResponse --> `StagedFile`

CommitRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.Commit.

class CommitRequest {
  + string workspace
  + string message
}

CommitResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.Commit.

class CommitResponse {
  + string hash
  + string subject
}

FetchRemoteRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.FetchRemote.

class FetchRemoteRequest {
  + string workspace
}

FetchRemoteResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.FetchRemote.

class FetchRemoteResponse {
  + GetGitStatusResponse status
}
FetchRemoteResponse --> `GetGitStatusResponse`

PullRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.Pull.

class PullRequest {
  + string workspace
}

PullResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.Pull.

class PullResponse {
  + PullOutcome outcome
  + int32 commits
  + GetGitStatusResponse status
}
PullResponse --> `PullOutcome`
PullResponse --> `GetGitStatusResponse`

PushRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.Push.

class PushRequest {
  + string workspace
}

PushResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.Push.

class PushResponse {
  + string target
  + GetGitStatusResponse status
}
PushResponse --> `GetGitStatusResponse`

ResolveConflictRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ResolveConflict.

class ResolveConflictRequest {
  + string workspace
  + string path
  + ConflictChoice choice
}
ResolveConflictRequest --> `ConflictChoice`

ResolveConflictResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ResolveConflict.

class ResolveConflictResponse {
  + GetGitStatusResponse status
}
ResolveConflictResponse --> `GetGitStatusResponse`

CompleteMergeRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.CompleteMerge.

class CompleteMergeRequest {
  + string workspace
}

CompleteMergeResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.CompleteMerge.

class CompleteMergeResponse {
  + GetGitStatusResponse status
}
CompleteMergeResponse --> `GetGitStatusResponse`

AbortMergeRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.AbortMerge.

class AbortMergeRequest {
  + string workspace
}

AbortMergeResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.AbortMerge.

class AbortMergeResponse {
  + GetGitStatusResponse status
}
AbortMergeResponse --> `GetGitStatusResponse`

Branch Diagram

classDiagram
direction LR

%% A branch the workspace can switch to or merge.

class Branch {
  + string name
  + bool remote
  + bool current
  + string upstream
  + string subject
  + google.protobuf.Timestamp time
}

ListBranchesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListBranches.

class ListBranchesRequest {
  + string workspace
}

ListBranchesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListBranches.

class ListBranchesResponse {
  + List~Branch~ branches
}
ListBranchesResponse --> `Branch`

SwitchBranchRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SwitchBranch.

class SwitchBranchRequest {
  + string workspace
  + string branch
}

SwitchBranchResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SwitchBranch.

class SwitchBranchResponse {
  + GetGitStatusResponse status
}
SwitchBranchResponse --> `GetGitStatusResponse`

CreateBranchRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.CreateBranch.

class CreateBranchRequest {
  + string workspace
  + string branch
}

CreateBranchResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.CreateBranch.

class CreateBranchResponse {
  + GetGitStatusResponse status
}
CreateBranchResponse --> `GetGitStatusResponse`

MergeBranchRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.MergeBranch.

class MergeBranchRequest {
  + string workspace
  + string branch
}

MergeBranchResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.MergeBranch.

class MergeBranchResponse {
  + PullOutcome outcome
  + int32 commits
  + GetGitStatusResponse status
}
MergeBranchResponse --> `PullOutcome`
MergeBranchResponse --> `GetGitStatusResponse`

DraftManifestRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DraftManifest.

class DraftManifestRequest {
  + string workspace
  + string kind
  + string name
  + string description
  + string current
  + string request
  + string language
}

DraftManifestResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DraftManifest.

class DraftManifestResponse {
  + string text
  + List~string~ changes
  + string problem
}

RuleFile Diagram

classDiagram
direction LR

%% A rule file: a gate (when set) or an instruction rule.

class RuleFile {
  + string name
  + string path
  + string when
  + string action
  + int32 order
  + List~string~ agents
  + string description
  + List~string~ paths
  + string text
  + string problem
  + bool editable
}

RuleSpec Diagram

classDiagram
direction LR

%% What Studio's rule form edits.

class RuleSpec {
  + string name
  + string when
  + string action
  + int32 order
  + List~string~ agents
  + string description
  + List~string~ paths
  + string text
}

ListRulesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListRules.

class ListRulesRequest {
  + string workspace
}

ListRulesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListRules.

class ListRulesResponse {
  + List~RuleFile~ rules
  + string dir
}
ListRulesResponse --> `RuleFile`

SaveRuleRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SaveRule.

class SaveRuleRequest {
  + string workspace
  + string previous_name
  + RuleSpec rule
}
SaveRuleRequest --> `RuleSpec`

SaveRuleResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SaveRule.

class SaveRuleResponse {
  + RuleFile rule
  + List~string~ problems
}
SaveRuleResponse --> `RuleFile`

DeleteRuleRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DeleteRule.

class DeleteRuleRequest {
  + string workspace
  + string name
}

DeleteRuleResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DeleteRule.

class DeleteRuleResponse {
}

ReorderRulesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ReorderRules.

class ReorderRulesRequest {
  + string workspace
  + List~string~ names
}

ReorderRulesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ReorderRules.

class ReorderRulesResponse {
}

TryRuleRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.TryRule.

class TryRuleRequest {
  + string workspace
  + RuleSpec rule
  + string sample
}
TryRuleRequest --> `RuleSpec`

TryRuleResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.TryRule.

class TryRuleResponse {
  + bool pass
  + string reason
  + string problem
}

GuardrailLimits Diagram

classDiagram
direction LR

%% The limits guardrail's limits; zero or empty means none of that kind.

class GuardrailLimits {
  + double max_cost_usd
  + int32 max_turns
  + int32 max_files_changed
  + List~string~ allowed_domains
  + List~string~ commands
}

GuardrailFile Diagram

classDiagram
direction LR

%% A guardrail file, or a built-in guardrail without one (its defaults).

class GuardrailFile {
  + string name
  + string path
  + string builtin
  + string stage
  + string action
  + List~string~ agents
  + List~string~ tools
  + string description
  + bool pii
  + bool judge
  + GuardrailLimits limits
  + string text
  + string problem
  + bool editable
  + bool off
}
GuardrailFile --> `GuardrailLimits`

BuiltinGuardrail Diagram

classDiagram
direction LR

%% A built-in guardrail: on by default.

class BuiltinGuardrail {
  + string id
  + string stage
  + string default_action
  + List~string~ actions
  + GuardrailFile file
}
BuiltinGuardrail --> `GuardrailFile`

GuardrailSpec Diagram

classDiagram
direction LR

%% What Studio's guardrail form edits.

class GuardrailSpec {
  + string name
  + string builtin
  + string stage
  + string action
  + List~string~ agents
  + List~string~ tools
  + string description
  + bool pii
  + bool judge
  + GuardrailLimits limits
  + string text
  + bool off
}
GuardrailSpec --> `GuardrailLimits`

ListGuardrailsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListGuardrails.

class ListGuardrailsRequest {
  + string workspace
}

ListGuardrailsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListGuardrails.

class ListGuardrailsResponse {
  + List~BuiltinGuardrail~ builtins
  + List~GuardrailFile~ guardrails
  + string dir
}
ListGuardrailsResponse --> `BuiltinGuardrail`
ListGuardrailsResponse --> `GuardrailFile`

SaveGuardrailRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SaveGuardrail.

class SaveGuardrailRequest {
  + string workspace
  + string previous_name
  + GuardrailSpec guardrail
}
SaveGuardrailRequest --> `GuardrailSpec`

SaveGuardrailResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SaveGuardrail.

class SaveGuardrailResponse {
  + GuardrailFile guardrail
  + List~string~ problems
}
SaveGuardrailResponse --> `GuardrailFile`

DeleteGuardrailRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DeleteGuardrail.

class DeleteGuardrailRequest {
  + string workspace
  + string name
}

DeleteGuardrailResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DeleteGuardrail.

class DeleteGuardrailResponse {
}

TryGuardrailRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.TryGuardrail.

class TryGuardrailRequest {
  + string workspace
  + GuardrailSpec guardrail
  + string sample
}
TryGuardrailRequest --> `GuardrailSpec`

TryGuardrailResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.TryGuardrail.

class TryGuardrailResponse {
  + bool pass
  + string reason
  + string problem
}

EvalCase Diagram

classDiagram
direction LR

%% A row of an eval's table.

class EvalCase {
  + string id
  + string name
  + string prompt
  + string output
  + string type
  + double threshold
  + string scope
}

EvalFile Diagram

classDiagram
direction LR

%% An eval file in .agents/evals.

class EvalFile {
  + string name
  + string path
  + string description
  + List~string~ agents
  + List~string~ skills
  + string near
  + List~string~ allow
  + List~EvalCase~ cases
  + string problem
  + EvalRun last_run
}
EvalFile --> `EvalCase`
EvalFile --> `EvalRun`

EvalSpec Diagram

classDiagram
direction LR

%% What Studio's eval form edits.

class EvalSpec {
  + string name
  + string description
  + List~string~ agents
  + List~string~ skills
  + string near
  + List~string~ allow
  + List~EvalCase~ cases
}
EvalSpec --> `EvalCase`

EvalResult Diagram

classDiagram
direction LR

%% One case run by one agent, and its score.

class EvalResult {
  + string case
  + string name
  + string agent
  + string type
  + string scope
  + string status
  + double score
  + double threshold
  + string prompt
  + string expected
  + string output
  + string reason
  + List~string~ refusals
  + double cost_usd
  + google.protobuf.Duration duration
}

EvalRun Diagram

classDiagram
direction LR

%% A run of an eval.

class EvalRun {
  + string id
  + string eval
  + google.protobuf.Timestamp started
  + google.protobuf.Duration duration
  + string status
  + List~EvalResult~ results
  + double cost_usd
  + string error
  + Map~string,  int32~ counts
}
EvalRun --> `EvalResult`

ListEvalsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListEvals.

class ListEvalsRequest {
  + string workspace
}

ListEvalsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListEvals.

class ListEvalsResponse {
  + List~EvalFile~ evals
  + string dir
}
ListEvalsResponse --> `EvalFile`

SaveEvalRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SaveEval.

class SaveEvalRequest {
  + string workspace
  + string previous_name
  + EvalSpec eval
}
SaveEvalRequest --> `EvalSpec`

SaveEvalResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SaveEval.

class SaveEvalResponse {
  + EvalFile eval
  + List~string~ problems
}
SaveEvalResponse --> `EvalFile`

DeleteEvalRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DeleteEval.

class DeleteEvalRequest {
  + string workspace
  + string name
}

DeleteEvalResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DeleteEval.

class DeleteEvalResponse {
}

RunEvalRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.RunEval.

class RunEvalRequest {
  + string workspace
  + string name
  + List~string~ cases
}

RunEvalResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.RunEval: the run as it starts, each result, then the finished run.

class RunEvalResponse {
  + Oneof~EvalRun~ started [oneof: event]
  + Oneof~EvalResult~ result [oneof: event]
  + Oneof~EvalRun~ finished [oneof: event]
}
RunEvalResponse --> `EvalRun`
RunEvalResponse --> `EvalResult`
RunEvalResponse --> `EvalRun`

ListEvalRunsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListEvalRuns.

class ListEvalRunsRequest {
  + string workspace
  + string name
  + int32 limit
}

ListEvalRunsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListEvalRuns.

class ListEvalRunsResponse {
  + List~EvalRun~ runs
}
ListEvalRunsResponse --> `EvalRun`

DraftEvalCasesRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DraftEvalCases.

class DraftEvalCasesRequest {
  + string workspace
  + string agent
  + string request
  + List~EvalCase~ existing
}
DraftEvalCasesRequest --> `EvalCase`

DraftEvalCasesResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DraftEvalCases.

class DraftEvalCasesResponse {
  + List~EvalCase~ cases
  + string problem
}
DraftEvalCasesResponse --> `EvalCase`

FlowNode Diagram

classDiagram
direction LR

%% A workflow's step.

class FlowNode {
  + string id
  + string type
  + string title
  + double x
  + double y
  + string agent
  + List~string~ skills
  + string instructions
  + List~string~ rules
  + string skill
  + string script
  + List~string~ args
  + string path
  + List~FlowField~ fields
  + int32 retry_attempts
  + string retry_delay
  + string timeout
  + string server
  + string tool
  + string arguments_json
  + string url
  + string method
  + List~FlowPair~ query
  + List~FlowPair~ headers
  + string body
  + string json_body
  + FlowAuth auth
  + string workflow
  + string for_each
  + int32 concurrency
  + string form_json
  + string wait
  + string until
}
FlowNode --> `FlowField`
FlowNode --> `FlowPair`
FlowNode --> `FlowPair`
FlowNode --> `FlowAuth`

HumanTask Diagram

classDiagram
direction LR

%% A paused workflow run's task: a human task's form waiting for an answer, or a timer waiting for its time.

class HumanTask {
  + string id
  + string run
  + string workspace
  + string workflow
  + string step
  + string title
  + string kind
  + string message
  + string a2ui_json
  + google.protobuf.Timestamp fire_at
  + google.protobuf.Timestamp created
  + string session_id
}

ListHumanTasksRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListHumanTasks.

class ListHumanTasksRequest {
  + string workspace
}

ListHumanTasksResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListHumanTasks.

class ListHumanTasksResponse {
  + List~HumanTask~ tasks
  + string alerts
}
ListHumanTasksResponse --> `HumanTask`

WatchHumanTasksRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.WatchHumanTasks.

class WatchHumanTasksRequest {
  + string workspace
}

WatchHumanTasksResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.WatchHumanTasks: the tasks now (each message the whole list).

class WatchHumanTasksResponse {
  + List~HumanTask~ tasks
  + string alerts
}
WatchHumanTasksResponse --> `HumanTask`

AnswerHumanTaskRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.AnswerHumanTask.

class AnswerHumanTaskRequest {
  + string workspace
  + string task_id
  + string action_json
  + string data_json
}

AnswerHumanTaskResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.AnswerHumanTask.

class AnswerHumanTaskResponse {
  + BackgroundRun run
}
AnswerHumanTaskResponse --> `BackgroundRun`

FlowPair Diagram

classDiagram
direction LR

%% A named value: a header, a query parameter.

class FlowPair {
  + string name
  + string value
}

FlowAuth Diagram

classDiagram
direction LR

%% How an API call authenticates.

class FlowAuth {
  + string type
  + string token
  + string username
  + string password
  + string name
  + string value
  + string in
  + string token_url
  + string client_id
  + string client_secret
  + List~string~ scopes
  + string audience
}

FlowField Diagram

classDiagram
direction LR

%% A value an extract step pulls out.

class FlowField {
  + string name
  + string type
  + string description
}

FlowEdge Diagram

classDiagram
direction LR

%% A link carrying a step's output to another.

class FlowEdge {
  + string from
  + string to
  + string when
  + string if
  + bool default
  + bool error
  + string label
}

WorkflowFile Diagram

classDiagram
direction LR

%% A workflow file in .agents/workflows.

class WorkflowFile {
  + string name
  + string path
  + string description
  + List~FlowNode~ nodes
  + List~FlowEdge~ edges
  + string problem
  + string mode
}
WorkflowFile --> `FlowNode`
WorkflowFile --> `FlowEdge`

ListWorkflowsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListWorkflows.

class ListWorkflowsRequest {
  + string workspace
}

ListWorkflowsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListWorkflows.

class ListWorkflowsResponse {
  + List~WorkflowFile~ workflows
  + string dir
}
ListWorkflowsResponse --> `WorkflowFile`

SaveWorkflowRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.SaveWorkflow.

class SaveWorkflowRequest {
  + string workspace
  + string previous_name
  + WorkflowFile workflow
}
SaveWorkflowRequest --> `WorkflowFile`

SaveWorkflowResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.SaveWorkflow.

class SaveWorkflowResponse {
  + WorkflowFile workflow
  + List~string~ problems
}
SaveWorkflowResponse --> `WorkflowFile`

DeleteWorkflowRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DeleteWorkflow.

class DeleteWorkflowRequest {
  + string workspace
  + string name
}

DeleteWorkflowResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DeleteWorkflow.

class DeleteWorkflowResponse {
}

WorkflowRun Diagram

classDiagram
direction LR

%% A workflow run's receipt (spec_workflows_043 WF-19): its envelope (what started it, when, on what) and routing slip (each step's run, in the order they ran), with what it spent.

class WorkflowRun {
  + string id
  + string workspace
  + string workflow
  + string origin
  + string session_id
  + string input
  + google.protobuf.Timestamp started
  + google.protobuf.Timestamp ended
  + string status
  + string error
  + string output
  + Usage usage
  + List~string~ models
  + List~WorkflowRunStep~ steps
  + List~WorkflowRunEvent~ events
  + string background_id
  + int32 approvals
  + string mode
}
WorkflowRun --> `Usage`
WorkflowRun --> `WorkflowRunStep`
WorkflowRun --> `WorkflowRunEvent`

WorkflowRunStep Diagram

classDiagram
direction LR

%% One run of a workflow's step.

class WorkflowRunStep {
  + string id
  + string title
  + string type
  + string status
  + google.protobuf.Timestamp started
  + google.protobuf.Timestamp ended
  + int32 attempts
  + string agent
  + List~string~ models
  + Usage usage
  + string output
  + string stream
  + string error
}
WorkflowRunStep --> `Usage`

WorkflowRunEvent Diagram

classDiagram
direction LR

%% Something that happened in a workflow run.

class WorkflowRunEvent {
  + google.protobuf.Timestamp at
  + string step
  + string kind
  + string text
  + bool error
}

ListWorkflowRunsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.ListWorkflowRuns.

class ListWorkflowRunsRequest {
  + string workspace
  + string workflow
  + int32 limit
}

ListWorkflowRunsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.ListWorkflowRuns.

class ListWorkflowRunsResponse {
  + List~WorkflowRun~ runs
}
ListWorkflowRunsResponse --> `WorkflowRun`

GetWorkflowRunRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetWorkflowRun.

class GetWorkflowRunRequest {
  + string workspace
  + string id
}

GetWorkflowRunResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetWorkflowRun.

class GetWorkflowRunResponse {
  + WorkflowRun run
}
GetWorkflowRunResponse --> `WorkflowRun`

WatchWorkflowRunRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.WatchWorkflowRun.

class WatchWorkflowRunRequest {
  + string workspace
  + string id
}

WatchWorkflowRunResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.WatchWorkflowRun.

class WatchWorkflowRunResponse {
  + WorkflowRun run
}
WatchWorkflowRunResponse --> `WorkflowRun`

WatchWorkflowRunsRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.WatchWorkflowRuns.

class WatchWorkflowRunsRequest {
  + string workspace
}

WatchWorkflowRunsResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.WatchWorkflowRuns.

class WatchWorkflowRunsResponse {
  + List~WorkflowRun~ runs
}
WatchWorkflowRunsResponse --> `WorkflowRun`

StopWorkflowRunRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.StopWorkflowRun.

class StopWorkflowRunRequest {
  + string workspace
  + string id
}

StopWorkflowRunResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.StopWorkflowRun.

class StopWorkflowRunResponse {
}

WorkspaceHealth Diagram

classDiagram
direction LR

%% A workspace's dashboard (spec_health_044).

class WorkspaceHealth {
  + google.protobuf.Timestamp at
  + List~HealthItem~ items
  + List~HealthDay~ days
  + List~HealthSignal~ signals
  + double overall
  + Map~string,  double~ by_kind
  + double previous_overall
  + google.protobuf.Timestamp last_check
  + double last_cost_usd
  + string skipped
  + string model
  + string schedule
  + google.protobuf.Timestamp next
  + double max_cost_usd
  + bool checking
  + HealthCheckProgress progress
  + int32 last_judged
  + List~string~ last_errors
}
WorkspaceHealth --> `HealthItem`
WorkspaceHealth --> `HealthDay`
WorkspaceHealth --> `HealthSignal`
WorkspaceHealth --> `HealthCheckProgress`

HealthCheckProgress Diagram

classDiagram
direction LR

%% How far a check going is.

class HealthCheckProgress {
  + string item
  + int32 index
  + int32 total
  + double cost_usd
}

HealthItem Diagram

classDiagram
direction LR

%% One agent, skill, rule, guardrail, eval, workflow or worker.

class HealthItem {
  + string kind
  + string name
  + string path
  + string detail
  + string problem
  + List~string~ flags
  + int32 uses
  + int32 fired
  + HealthRuns runs
  + HealthEvals evals
  + List~int32~ daily
  + HealthVerdict verdict
  + List~double~ history
}
HealthItem --> `HealthRuns`
HealthItem --> `HealthEvals`
HealthItem --> `HealthVerdict`

HealthRuns Diagram

classDiagram
direction LR

%% A workflow's or a worker's runs in the last 30 days.

class HealthRuns {
  + int32 runs
  + int32 done
  + int32 failed
  + int32 stopped
  + double cost_usd
  + int64 median_ms
  + google.protobuf.Timestamp last
  + string failing_step
}

HealthEvals Diagram

classDiagram
direction LR

%% An agent's or an eval's latest eval results.

class HealthEvals {
  + int32 runs
  + google.protobuf.Timestamp last
  + int32 passed
  + int32 cases
}

HealthVerdict Diagram

classDiagram
direction LR

%% The judge's verdict on an item.

class HealthVerdict {
  + string model
  + google.protobuf.Timestamp at
  + List~HealthScore~ scores
  + double overall
  + string grade
  + string summary
  + List~string~ fixes
  + double cost_usd
  + bool current
}
HealthVerdict --> `HealthScore`

HealthScore Diagram

classDiagram
direction LR

%% One rubric line's score.

class HealthScore {
  + string line
  + int32 score
  + string reason
}

HealthDay Diagram

classDiagram
direction LR

%% One day's runs.

class HealthDay {
  + string date
  + int32 done
  + int32 failed
  + int32 stopped
  + double cost_usd
}

HealthSignal Diagram

classDiagram
direction LR

%% A safety signal: the reviewer's denials, a rule's or a guardrail's decisions, by what they were about.

class HealthSignal {
  + string kind
  + string about
  + int32 count
  + google.protobuf.Timestamp last
  + string detail
}

GetWorkspaceHealthRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.GetWorkspaceHealth.

class GetWorkspaceHealthRequest {
  + string workspace
}

GetWorkspaceHealthResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.GetWorkspaceHealth.

class GetWorkspaceHealthResponse {
  + WorkspaceHealth health
}
GetWorkspaceHealthResponse --> `WorkspaceHealth`

WatchWorkspaceHealthRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.WatchWorkspaceHealth.

class WatchWorkspaceHealthRequest {
  + string workspace
}

WatchWorkspaceHealthResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.WatchWorkspaceHealth.

class WatchWorkspaceHealthResponse {
  + WorkspaceHealth health
}
WatchWorkspaceHealthResponse --> `WorkspaceHealth`

HealthCheckScope Diagram

classDiagram
direction LR

%% Which items a check judges: kinds, items ("kind/name"), or all; force re-judges unchanged ones.

class HealthCheckScope {
  + List~string~ kinds
  + List~string~ items
  + bool force
}

EstimateHealthCheckRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.EstimateHealthCheck.

class EstimateHealthCheckRequest {
  + string workspace
  + HealthCheckScope scope
}
EstimateHealthCheckRequest --> `HealthCheckScope`

EstimateHealthCheckResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.EstimateHealthCheck.

class EstimateHealthCheckResponse {
  + int32 items
  + double cost_usd
  + bool priced
}

CheckWorkspaceHealthRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.CheckWorkspaceHealth.

class CheckWorkspaceHealthRequest {
  + string workspace
  + HealthCheckScope scope
}
CheckWorkspaceHealthRequest --> `HealthCheckScope`

CheckWorkspaceHealthResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.CheckWorkspaceHealth: one item's verdict (or why it has none), then a last one with done.

class CheckWorkspaceHealthResponse {
  + string item
  + int32 index
  + int32 total
  + HealthVerdict verdict
  + string error
  + double cost_usd
  + bool done
  + int32 judged
}
CheckWorkspaceHealthResponse --> `HealthVerdict`

StopHealthCheckRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.StopHealthCheck.

class StopHealthCheckRequest {
  + string workspace
}

StopHealthCheckResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.StopHealthCheck.

class StopHealthCheckResponse {
}

StartHealthCheckRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.StartHealthCheck.

class StartHealthCheckRequest {
  + string workspace
  + HealthCheckScope scope
}
StartHealthCheckRequest --> `HealthCheckScope`

StartHealthCheckResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.StartHealthCheck.

class StartHealthCheckResponse {
}

ComposeSession Diagram

classDiagram
direction LR

%% A composer conversation as it is.

class ComposeSession {
  + string id
  + string kind
  + List~ComposeTurn~ turns
  + bool asking
  + ComposeDraft draft
  + double cost_usd
}
ComposeSession --> `ComposeTurn`
ComposeSession --> `ComposeDraft`

ComposeTurn Diagram

classDiagram
direction LR

%% One message of a composer conversation: the user's, or the composer's (a question with its suggested answers, or a draft's summary).

class ComposeTurn {
  + string role
  + string text
  + List~string~ options
}

ComposeDraft Diagram

classDiagram
direction LR

%% A component the composer wrote: its name, a summary, its file, what the kind's checks still find wrong, and for a workflow the workflow itself.

class ComposeDraft {
  + string name
  + string summary
  + string file
  + List~string~ problems
  + WorkflowFile workflow
}
ComposeDraft --> `WorkflowFile`

StartComposeRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.StartCompose.

class StartComposeRequest {
  + string workspace
  + string kind
  + string request
  + string current
}

StartComposeResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.StartCompose.

class StartComposeResponse {
  + ComposeSession session
}
StartComposeResponse --> `ComposeSession`

AnswerComposeRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.AnswerCompose.

class AnswerComposeRequest {
  + string workspace
  + string id
  + string answer
}

AnswerComposeResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.AnswerCompose.

class AnswerComposeResponse {
  + ComposeSession session
}
AnswerComposeResponse --> `ComposeSession`

DropComposeRequest Diagram

classDiagram
direction LR

%% Request message for WorkspaceService.DropCompose.

class DropComposeRequest {
  + string workspace
  + string id
}

DropComposeResponse Diagram

classDiagram
direction LR

%% Response message for WorkspaceService.DropCompose.

class DropComposeResponse {
}

Message: Saved

FQN: blitz.v1.Saved
Saved reports where a change was written in the config file. The change applies even when saving fails.
Field Ordinal Type Label Description
path 1 string
error 2 string Why it wasn’t saved; empty on success.

Message: ShutdownRequest

FQN: blitz.v1.ShutdownRequest
Request message for WorkspaceService.Shutdown.
Field Ordinal Type Label Description

Message: ShutdownResponse

FQN: blitz.v1.ShutdownResponse
Response message for WorkspaceService.Shutdown: sent before the service stops.
Field Ordinal Type Label Description

Message: GetServiceInfoRequest

FQN: blitz.v1.GetServiceInfoRequest
Request message for WorkspaceService.GetServiceInfo.
Field Ordinal Type Label Description

Message: GetServiceInfoResponse

FQN: blitz.v1.GetServiceInfoResponse
Response message for WorkspaceService.GetServiceInfo.
Field Ordinal Type Label Description
version 1 string The release (1.4.0), or “dev” for an unstamped build.
executable 2 string The program the service runs from, as it started (the file may have been replaced or removed since).
started 3 google.protobuf.Timestamp
pid 4 int32 The service’s process, so a client can stop one that isn’t a login item.
replaced 5 bool The program file has been replaced or removed since the service started (a new build or package installed): it runs the old program.

Message: ListLogDaysRequest

FQN: blitz.v1.ListLogDaysRequest
Request message for WorkspaceService.ListLogDays.
Field Ordinal Type Label Description

Message: ListLogDaysResponse

FQN: blitz.v1.ListLogDaysResponse
Response message for WorkspaceService.ListLogDays.
Field Ordinal Type Label Description
days 1 string Repeated YYYY-MM-DD, newest first.
dir 2 string Where the log files are ("" when logging is off).

Message: ReadLogRequest

FQN: blitz.v1.ReadLogRequest
Request message for WorkspaceService.ReadLog.
Field Ordinal Type Label Description
day 1 string YYYY-MM-DD; "" is the newest day.
min_level 2 string debug, info, warn or error: that level and above ("" is all).
text 3 string Records containing every word, in any field, ignoring case.
limit 4 int32 The most records returned (0: 500).

Message: LogAttr

FQN: blitz.v1.LogAttr
A field of a log record.
Field Ordinal Type Label Description
key 1 string
value 2 string Strings as they are, other values as JSON.

Message: LogEntry

FQN: blitz.v1.LogEntry
A log record.
Field Ordinal Type Label Description
time 1 google.protobuf.Timestamp
level 2 string DEBUG, INFO, WARN or ERROR.
message 3 string
attrs 4 LogAttr Repeated The record’s other fields, in order.

Message: ReadLogResponse

FQN: blitz.v1.ReadLogResponse
Response message for WorkspaceService.ReadLog.
Field Ordinal Type Label Description
day 1 string The day read, and its file.
path 2 string
entries 3 LogEntry Repeated Newest first.
matched 4 int32 How many records matched (more than entries when the limit cut them).

Message: DeleteLogDayRequest

FQN: blitz.v1.DeleteLogDayRequest
Request message for WorkspaceService.DeleteLogDay.
Field Ordinal Type Label Description
day 1 string YYYY-MM-DD.

Message: DeleteLogDayResponse

FQN: blitz.v1.DeleteLogDayResponse
Response message for WorkspaceService.DeleteLogDay.
Field Ordinal Type Label Description

Message: ListWorkspacesRequest

FQN: blitz.v1.ListWorkspacesRequest
Request message for WorkspaceService.ListWorkspaces.
Field Ordinal Type Label Description

Message: ListWorkspacesResponse

FQN: blitz.v1.ListWorkspacesResponse
Response message for WorkspaceService.ListWorkspaces.
Field Ordinal Type Label Description
workspaces 1 string Repeated Absolute directories.

Message: CloseWorkspaceRequest

FQN: blitz.v1.CloseWorkspaceRequest
Request message for WorkspaceService.CloseWorkspace.
Field Ordinal Type Label Description
workspace 1 string

Message: CloseWorkspaceResponse

FQN: blitz.v1.CloseWorkspaceResponse
Response message for WorkspaceService.CloseWorkspace.
Field Ordinal Type Label Description

Message: GetSandboxRequest

FQN: blitz.v1.GetSandboxRequest
Request message for WorkspaceService.GetSandbox.
Field Ordinal Type Label Description
workspace 1 string

Message: GetSandboxResponse

FQN: blitz.v1.GetSandboxResponse
Response message for WorkspaceService.GetSandbox.
Field Ordinal Type Label Description
summary 1 string Repeated

Message: AgentInfo

FQN: blitz.v1.AgentInfo
AgentInfo describes an agent.
Field Ordinal Type Label Description
name 1 string
display_name 2 string
description 3 string
active 4 bool
pinned_model 5 string The model it is pinned to; empty when it runs on the configured model.

Message: ListAgentsRequest

FQN: blitz.v1.ListAgentsRequest
Request message for WorkspaceService.ListAgents.
Field Ordinal Type Label Description
workspace 1 string

Message: ListAgentsResponse

FQN: blitz.v1.ListAgentsResponse
Response message for WorkspaceService.ListAgents.
Field Ordinal Type Label Description
agents 1 AgentInfo Repeated

Message: SetAgentRequest

FQN: blitz.v1.SetAgentRequest
Request message for WorkspaceService.SetAgent.
Field Ordinal Type Label Description
workspace 1 string
name 2 string

Message: SetAgentResponse

FQN: blitz.v1.SetAgentResponse
Response message for WorkspaceService.SetAgent.
Field Ordinal Type Label Description
agent 1 AgentInfo

Message: Suggestion

FQN: blitz.v1.Suggestion
Suggestion is one welcome tile.
Field Ordinal Type Label Description
kind 1 SuggestionKind
title 2 string
prompt 3 string
session_id 4 string
worker 5 string
count 6 int32
detail 7 string

Message: GetSuggestionsRequest

FQN: blitz.v1.GetSuggestionsRequest
Request message for WorkspaceService.GetSuggestions.
Field Ordinal Type Label Description
workspace 1 string

Message: GetSuggestionsResponse

FQN: blitz.v1.GetSuggestionsResponse
Response message for WorkspaceService.GetSuggestions.
Field Ordinal Type Label Description
suggestions 1 Suggestion Repeated State tiles first, then ideas; empty: the front end’s own defaults.
harness_missing 2 bool No .agents/AGENTS.md, AGENTS.md, CLAUDE.md, GEMINI.md or BLITZ.md.
pending 3 bool Ideas are being written from newer conversations: ask again shortly.

Message: AgentDefinition

FQN: blitz.v1.AgentDefinition
AgentDefinition is an agent's file: its frontmatter and its prompt.
Field Ordinal Type Label Description
name 1 string Lowercase letters, digits, - and _.
display_name 2 string
description 3 string
tools 4 string Repeated The tools it may use, by name.
default_model 5 string The model it runs on (“provider/” optional); empty: the configured one.
agency_level 6 string low, medium, high or extreme; empty: high.
permission_mode 7 string Its permission mode through invoke_agent; empty: the workspace’s.
max_turns 8 int32 Its model calls through invoke_agent (0: the caller’s budget).
background 9 bool
isolation 10 string "" or “worktree”.
temperature 11 double Optional The model settings this agent runs with, over the model’s own; unset leaves the model’s.
top_p 12 double Optional
max_tokens 13 int32 Optional
effort 14 string minimal, low, medium, high or max; empty: the model’s.
thinking_budget 15 int32 Optional
prompt 16 string The system prompt: the file’s body.

Message: AgentFile

FQN: blitz.v1.AgentFile
AgentFile is one agent file of a scope.
Field Ordinal Type Label Description
path 1 string
agent 2 AgentDefinition What the file defines; unset when it doesn’t parse.
problem 3 string Why it doesn’t load ("" when it does).

Message: ListAgentFilesRequest

FQN: blitz.v1.ListAgentFilesRequest
Request message for WorkspaceService.ListAgentFiles.
Field Ordinal Type Label Description
workspace 1 string Required for AGENT_SCOPE_WORKSPACE.
scope 2 AgentScope

Message: ListAgentFilesResponse

FQN: blitz.v1.ListAgentFilesResponse
Response message for WorkspaceService.ListAgentFiles.
Field Ordinal Type Label Description
files 1 AgentFile Repeated By file name.
dir 2 string The scope’s folder.

Message: SaveAgentFileRequest

FQN: blitz.v1.SaveAgentFileRequest
Request message for WorkspaceService.SaveAgentFile.
Field Ordinal Type Label Description
workspace 1 string
scope 2 AgentScope
previous_name 3 string The agent it replaces (a rename); empty for a new agent.
agent 4 AgentDefinition

Message: SaveAgentFileResponse

FQN: blitz.v1.SaveAgentFileResponse
Response message for WorkspaceService.SaveAgentFile.
Field Ordinal Type Label Description
file 1 AgentFile The file written, unless there were problems.
problems 2 string Repeated

Message: DeleteAgentFileRequest

FQN: blitz.v1.DeleteAgentFileRequest
Request message for WorkspaceService.DeleteAgentFile.
Field Ordinal Type Label Description
workspace 1 string
scope 2 AgentScope
name 3 string The agent whose file goes.
path 4 string Or the file itself, which must be one of the scope’s (for a file that doesn’t parse, so names no agent).

Message: DeleteAgentFileResponse

FQN: blitz.v1.DeleteAgentFileResponse
Response message for WorkspaceService.DeleteAgentFile.
Field Ordinal Type Label Description

Message: GetModelRequest

FQN: blitz.v1.GetModelRequest
Request message for WorkspaceService.GetModel.
Field Ordinal Type Label Description
workspace 1 string

Message: GetModelResponse

FQN: blitz.v1.GetModelResponse
Response message for WorkspaceService.GetModel.
Field Ordinal Type Label Description
name 1 string
provider 2 string The configured provider.
unavailable 3 string Why the configured model couldn’t be built, if it couldn’t; the workspace then runs on a placeholder model.

Message: SetModelRequest

FQN: blitz.v1.SetModelRequest
Request message for WorkspaceService.SetModel.
Field Ordinal Type Label Description
workspace 1 string
ref 2 string A name or “provider/model”.

Message: SetModelResponse

FQN: blitz.v1.SetModelResponse
Response message for WorkspaceService.SetModel.
Field Ordinal Type Label Description
active_pin 1 string The model the active agent is pinned to, which still applies to it; empty if it isn’t pinned.

Message: PinModelRequest

FQN: blitz.v1.PinModelRequest
Request message for WorkspaceService.PinModel.
Field Ordinal Type Label Description
workspace 1 string
agent 2 string
ref 3 string

Message: PinModelResponse

FQN: blitz.v1.PinModelResponse
Response message for WorkspaceService.PinModel.
Field Ordinal Type Label Description
agent 1 string
model 2 string The model the agent now runs on.
saved 3 Saved

Message: UnpinModelRequest

FQN: blitz.v1.UnpinModelRequest
Request message for WorkspaceService.UnpinModel.
Field Ordinal Type Label Description
workspace 1 string
agent 2 string

Message: UnpinModelResponse

FQN: blitz.v1.UnpinModelResponse
Response message for WorkspaceService.UnpinModel.
Field Ordinal Type Label Description
agent 1 string
model 2 string
saved 3 Saved

Message: ModelSettings

FQN: blitz.v1.ModelSettings
ModelSettings are a model's generation settings; unset fields use the global value or the provider's default.
Field Ordinal Type Label Description
temperature 1 double Optional
max_tokens 2 int32 Optional
top_p 3 double Optional
seed 4 int32 Optional
reasoning_effort 5 string Optional minimal, low, medium, high or max.
thinking_budget 6 int32 Optional Tokens the model may spend thinking; 0 turns thinking off.

Message: ModelSettingsInfo

FQN: blitz.v1.ModelSettingsInfo
ModelSettingsInfo is one model's settings and what applies otherwise.
Field Ordinal Type Label Description
model 1 string Without a provider prefix.
provider 2 string
settings 3 ModelSettings
global_temperature 4 double Apply when settings leaves them unset (0: the provider’s default).
global_max_tokens 5 int32

Message: GetModelSettingsRequest

FQN: blitz.v1.GetModelSettingsRequest
Request message for WorkspaceService.GetModelSettings.
Field Ordinal Type Label Description
workspace 1 string
ref 2 string One model (“provider/” optional); empty for every model with settings.

Message: GetModelSettingsResponse

FQN: blitz.v1.GetModelSettingsResponse
Response message for WorkspaceService.GetModelSettings.
Field Ordinal Type Label Description
all 1 string, ModelSettings Map Every model with settings, by name (when ref is empty).
model 2 ModelSettingsInfo The requested model (when ref is set).

Message: Setting

FQN: blitz.v1.Setting
Setting is one key=value change; an empty value clears the key.
Field Ordinal Type Label Description
key 1 string
value 2 string

Message: UpdateModelSettingsRequest

FQN: blitz.v1.UpdateModelSettingsRequest
Request message for WorkspaceService.UpdateModelSettings.
Field Ordinal Type Label Description
workspace 1 string
ref 2 string
reset 3 bool Clear every setting before applying changes.
changes 4 Setting Repeated

Message: UpdateModelSettingsResponse

FQN: blitz.v1.UpdateModelSettingsResponse
Response message for WorkspaceService.UpdateModelSettings.
Field Ordinal Type Label Description
model 1 ModelSettingsInfo
unsupported 2 string Repeated Keys set that the provider or model ignores.
saved 3 Saved

Message: GetSettingsRequest

FQN: blitz.v1.GetSettingsRequest
Request message for WorkspaceService.GetSettings.
Field Ordinal Type Label Description
workspace 1 string

Message: GetSettingsResponse

FQN: blitz.v1.GetSettingsResponse
Response message for WorkspaceService.GetSettings.
Field Ordinal Type Label Description
agency 3 string
model 4 string
provider 5 string
agent 6 string
locale 7 string The language the model replies in.
images_enabled 8 bool Images can be attached to prompts.
permission_mode 9 string default, accept-edits, plan, dont-ask or bypass.
effort 10 string The session’s reasoning effort (minimal … max), empty when unset.
style 11 string The output style in use (“default”: none).
speech_model 12 string The speech model generate_audio reads aloud with ([audio] model, “provider/model”; "" for none).
speech_error 13 string Why the speech model can’t be used ("" when it can, or there’s none).
accepted_media 14 AcceptedMedia Repeated What the active agent’s model takes as attachments, for the front ends to offer only those (LoadImage and AddImage refuse others, UNSUPPORTED_MEDIA).

Message: AcceptedMedia

FQN: blitz.v1.AcceptedMedia
AcceptedMedia is a kind of attachment a model takes.
Field Ordinal Type Label Description
kind 1 string image, document (PDF), text, audio or video.
mime_types 2 string Repeated
extensions 3 string Repeated The file name extensions of those types, with their dot.
max_bytes 4 int64 The largest file the model takes.

Message: SetPermissionModeRequest

FQN: blitz.v1.SetPermissionModeRequest
Request message for WorkspaceService.SetPermissionMode.
Field Ordinal Type Label Description
workspace 1 string
mode 2 string default, accept-edits, plan, dont-ask or bypass (other spellings such as acceptEdits are accepted).

Message: SetPermissionModeResponse

FQN: blitz.v1.SetPermissionModeResponse
Response message for WorkspaceService.SetPermissionMode.
Field Ordinal Type Label Description
mode 1 string The mode’s canonical name.

Message: Command

FQN: blitz.v1.Command
Command is a custom slash command.
Field Ordinal Type Label Description
name 1 string Without the slash; may be namespaced (“db:migrate”).
description 2 string
argument_hint 3 string
source 4 string project, user, bundled or skill.

Message: ListCommandsRequest

FQN: blitz.v1.ListCommandsRequest
Request message for WorkspaceService.ListCommands.
Field Ordinal Type Label Description
workspace 1 string

Message: ListCommandsResponse

FQN: blitz.v1.ListCommandsResponse
Response message for WorkspaceService.ListCommands.
Field Ordinal Type Label Description
commands 1 Command Repeated

Message: PermissionRule

FQN: blitz.v1.PermissionRule
PermissionRule is an allow, ask or deny rule.
Field Ordinal Type Label Description
effect 1 string allow, ask or deny.
rule 2 string kind(pattern), e.g. shell(git push *), or a tool name.
source 3 string Where it comes from: global or workspace (the settings file it’s in), built-in (read_only_defaults), flag or session.

Message: ListPermissionRulesRequest

FQN: blitz.v1.ListPermissionRulesRequest
Request message for WorkspaceService.ListPermissionRules.
Field Ordinal Type Label Description
workspace 1 string

Message: ListPermissionRulesResponse

FQN: blitz.v1.ListPermissionRulesResponse
Response message for WorkspaceService.ListPermissionRules.
Field Ordinal Type Label Description
rules 1 PermissionRule Repeated
problem 2 string Why some of the settings’ rules were left out when they last changed (not enforced until fixed; the workspace won’t open with them).

Message: AddPermissionRuleRequest

FQN: blitz.v1.AddPermissionRuleRequest
Request message for WorkspaceService.AddPermissionRule.
Field Ordinal Type Label Description
workspace 1 string
effect 2 string
rule 3 string
save 4 bool
scope 5 string With save: “global” ("" too) or “workspace”.

Message: AddPermissionRuleResponse

FQN: blitz.v1.AddPermissionRuleResponse
Response message for WorkspaceService.AddPermissionRule.
Field Ordinal Type Label Description
rule 1 string The rule in canonical form.
next_start 2 bool Saved, but only applies from the next start (read rules).
saved 3 Saved

Message: RemovePermissionRuleRequest

FQN: blitz.v1.RemovePermissionRuleRequest
Request message for WorkspaceService.RemovePermissionRule.
Field Ordinal Type Label Description
workspace 1 string
rule 2 string
save 3 bool
scope 4 string With save: “global” ("" too) or “workspace”.

Message: RemovePermissionRuleResponse

FQN: blitz.v1.RemovePermissionRuleResponse
Response message for WorkspaceService.RemovePermissionRule.
Field Ordinal Type Label Description
rule 1 string
removed 2 int32 How many rules were removed.
saved 3 Saved

Message: SetSettingRequest

FQN: blitz.v1.SetSettingRequest
Request message for WorkspaceService.SetSetting.
Field Ordinal Type Label Description
workspace 1 string
key 2 string “agency”.
value 3 string

Message: SetSettingResponse

FQN: blitz.v1.SetSettingResponse
Response message for WorkspaceService.SetSetting.
Field Ordinal Type Label Description
key 1 string The key in canonical form.

Message: SkillInfo

FQN: blitz.v1.SkillInfo
SkillInfo describes a skill and what the skills policy lets it do.
Field Ordinal Type Label Description
name 1 string
description 2 string
version 3 string
license 4 string
category 5 string
compatibility 6 string
tags 7 string Repeated
hash 8 string Identifies the content, for pinning it in the policy.
tools 9 SkillTool Repeated
scripts 10 SkillScript Repeated
tier 11 string The approval tier the scripts run at; empty without scripts.
bypass 12 bool The skill may skip approvals and the policy allows it.
network 13 bool The scripts may use the network.
needs_network 14 bool The skill asks for the network (granted or not).
env 15 string Repeated Host environment variables passed to the scripts, and those withheld.
withheld 16 string Repeated
blocked 17 string Repeated Why none of the scripts may run.
dir 18 string Its folder on disk ("" for a built-in skill).
kind 19 string simple, references, scripts or meta, from its folder.
agents 20 string Repeated The agents it’s offered to (none: every one).
members 21 string Repeated The skills a meta skill combines.
references 22 string Repeated Its files under references/, as references/<path>.
project 23 bool The workspace’s own: its folder is in the workspace.
package_files 24 string Repeated Its package files (requirements.txt, pyproject.toml, package.json), as paths in its folder: the first of each kind gives its scripts their packages.
needs_review 25 bool Its scripts, on disk, weren’t reviewed and trusted with this content (hash): new, changed, or a registry’s. Each run asks first, until ConfigService.TrustSkillScripts.

Message: SkillTool

FQN: blitz.v1.SkillTool
SkillTool is a tool a skill needs.
Field Ordinal Type Label Description
name 1 string
scopes 2 string Repeated
why 3 string

Message: SkillScript

FQN: blitz.v1.SkillScript
SkillScript is one of a skill's scripts and the policy's verdict.
Field Ordinal Type Label Description
name 1 string
language 2 string
source 3 string Its path in the skill, or “inline”.
timeout 4 google.protobuf.Duration
deps 5 string Repeated
allowed 6 bool
reasons 7 string Repeated
found 8 bool Not declared, but found in scripts/.

Message: ListSkillsRequest

FQN: blitz.v1.ListSkillsRequest
Request message for WorkspaceService.ListSkills.
Field Ordinal Type Label Description
workspace 1 string
query 2 string Only skills matching; empty for all.

Message: ListSkillsResponse

FQN: blitz.v1.ListSkillsResponse
Response message for WorkspaceService.ListSkills.
Field Ordinal Type Label Description
skills 1 SkillInfo Repeated

Message: GetSkillRequest

FQN: blitz.v1.GetSkillRequest
Request message for WorkspaceService.GetSkill.
Field Ordinal Type Label Description
workspace 1 string
name 2 string

Message: GetSkillResponse

FQN: blitz.v1.GetSkillResponse
Response message for WorkspaceService.GetSkill.
Field Ordinal Type Label Description
skill 1 SkillInfo

Message: SkillSpec

FQN: blitz.v1.SkillSpec
What Studio's skill form edits.
Field Ordinal Type Label Description
name 1 string Its folder’s name: lowercase letters, digits and single hyphens.
description 2 string
tools 3 string The tools it may use (allowed-tools), space-separated.
agents 4 string Repeated
members 5 string Repeated The skills a meta skill combines.
instructions 6 string

Message: SkillFile

FQN: blitz.v1.SkillFile
A skill as Studio edits it.
Field Ordinal Type Label Description
skill 1 SkillInfo
path 2 string Its SKILL.md.
hash 3 string SKILL.md’s content hash, for SaveSkill ("" when not editable).
spec 4 SkillSpec
editable 5 bool The workspace’s own: Studio may change it.

Message: GetSkillFileRequest

FQN: blitz.v1.GetSkillFileRequest
Request message for WorkspaceService.GetSkillFile.
Field Ordinal Type Label Description
workspace 1 string
name 2 string

Message: GetSkillFileResponse

FQN: blitz.v1.GetSkillFileResponse
Response message for WorkspaceService.GetSkillFile.
Field Ordinal Type Label Description
file 1 SkillFile

Message: SaveSkillRequest

FQN: blitz.v1.SaveSkillRequest
Request message for WorkspaceService.SaveSkill.
Field Ordinal Type Label Description
workspace 1 string
previous_name 2 string The skill edited; empty for a new one.
hash 3 string Its SKILL.md’s hash when read.
skill 4 SkillSpec

Message: SaveSkillResponse

FQN: blitz.v1.SaveSkillResponse
Response message for WorkspaceService.SaveSkill.
Field Ordinal Type Label Description
file 1 SkillFile
problems 2 string Repeated

Message: DeleteSkillRequest

FQN: blitz.v1.DeleteSkillRequest
Request message for WorkspaceService.DeleteSkill.
Field Ordinal Type Label Description
workspace 1 string
name 2 string

Message: DeleteSkillResponse

FQN: blitz.v1.DeleteSkillResponse
Response message for WorkspaceService.DeleteSkill.
Field Ordinal Type Label Description

Message: ReadSkillFileRequest

FQN: blitz.v1.ReadSkillFileRequest
Request message for WorkspaceService.ReadSkillFile.
Field Ordinal Type Label Description
workspace 1 string
name 2 string
path 3 string Relative to the skill’s folder.

Message: ReadSkillFileResponse

FQN: blitz.v1.ReadSkillFileResponse
Response message for WorkspaceService.ReadSkillFile.
Field Ordinal Type Label Description
content 1 bytes

Message: WriteSkillFileRequest

FQN: blitz.v1.WriteSkillFileRequest
Request message for WorkspaceService.WriteSkillFile.
Field Ordinal Type Label Description
workspace 1 string
name 2 string
path 3 string references/… or scripts/…
content 4 bytes

Message: WriteSkillFileResponse

FQN: blitz.v1.WriteSkillFileResponse
Response message for WorkspaceService.WriteSkillFile.
Field Ordinal Type Label Description
file 1 SkillFile

Message: DeleteSkillFileRequest

FQN: blitz.v1.DeleteSkillFileRequest
Request message for WorkspaceService.DeleteSkillFile.
Field Ordinal Type Label Description
workspace 1 string
name 2 string
path 3 string

Message: DeleteSkillFileResponse

FQN: blitz.v1.DeleteSkillFileResponse
Response message for WorkspaceService.DeleteSkillFile.
Field Ordinal Type Label Description
file 1 SkillFile

Message: CopySkillRequest

FQN: blitz.v1.CopySkillRequest
Request message for WorkspaceService.CopySkill.
Field Ordinal Type Label Description
workspace 1 string
from 2 string The skill copied: any the workspace sees.
name 3 string The copy’s name.

Message: CopySkillResponse

FQN: blitz.v1.CopySkillResponse
Response message for WorkspaceService.CopySkill.
Field Ordinal Type Label Description
file 1 SkillFile
problems 2 string Repeated

Message: RunSkillScriptRequest

FQN: blitz.v1.RunSkillScriptRequest
Request message for WorkspaceService.RunSkillScript.
Field Ordinal Type Label Description
workspace 1 string
name 2 string
script 3 string
args 4 string Repeated

Message: RunSkillScriptResponse

FQN: blitz.v1.RunSkillScriptResponse
Response message for WorkspaceService.RunSkillScript.
Field Ordinal Type Label Description
exit_code 1 int32
stdout 2 string
stderr 3 string
timed_out 4 bool
sandbox 5 string The sandbox it ran in.
output_files 6 string Repeated Files it wrote to its output directory.
error 7 string Why it didn’t run, or failed to.

Message: Env

FQN: blitz.v1.Env
Env is an isolated Python environment built for skill scripts.
Field Ordinal Type Label Description
key 1 string
deps 2 string Repeated
skills 3 string Repeated The skills that used it.
size 4 int64 Bytes on disk.
last_used 5 google.protobuf.Timestamp
ready 6 bool Built completely.

Message: ListEnvsRequest

FQN: blitz.v1.ListEnvsRequest
Request message for WorkspaceService.ListEnvs.
Field Ordinal Type Label Description
workspace 1 string

Message: ListEnvsResponse

FQN: blitz.v1.ListEnvsResponse
Response message for WorkspaceService.ListEnvs.
Field Ordinal Type Label Description
envs 1 Env Repeated

Message: RemoveEnvRequest

FQN: blitz.v1.RemoveEnvRequest
Request message for WorkspaceService.RemoveEnv.
Field Ordinal Type Label Description
workspace 1 string
key 2 string

Message: RemoveEnvResponse

FQN: blitz.v1.RemoveEnvResponse
Response message for WorkspaceService.RemoveEnv.
Field Ordinal Type Label Description

Message: PruneEnvsRequest

FQN: blitz.v1.PruneEnvsRequest
Request message for WorkspaceService.PruneEnvs.
Field Ordinal Type Label Description
workspace 1 string

Message: EnvError

FQN: blitz.v1.EnvError
EnvError is an environment that couldn't be removed.
Field Ordinal Type Label Description
key 1 string
error 2 string

Message: PruneEnvsResponse

FQN: blitz.v1.PruneEnvsResponse
Response message for WorkspaceService.PruneEnvs.
Field Ordinal Type Label Description
removed 1 int32
freed 2 int64 Bytes freed.
failed 3 EnvError Repeated

Message: MCPServer

FQN: blitz.v1.MCPServer
MCPServer is a configured MCP server.
Field Ordinal Type Label Description
name 1 string
target 2 string Its URL, or the command that starts it.
auto_approve 3 bool
disabled 4 bool Configured, but never started (disabled = true).
state 5 string “disabled”, “idle” (its tools not listed yet), “connected” or “failed” (error says why).
error 6 string
tools 7 int32 How many tools it offered when last listed.

Message: ListMCPServersRequest

FQN: blitz.v1.ListMCPServersRequest
Request message for WorkspaceService.ListMCPServers.
Field Ordinal Type Label Description
workspace 1 string

Message: ListMCPServersResponse

FQN: blitz.v1.ListMCPServersResponse
Response message for WorkspaceService.ListMCPServers.
Field Ordinal Type Label Description
servers 1 MCPServer Repeated

Message: RestartMCPServerRequest

FQN: blitz.v1.RestartMCPServerRequest
Request message for WorkspaceService.RestartMCPServer.
Field Ordinal Type Label Description
workspace 1 string
name 2 string

Message: RestartMCPServerResponse

FQN: blitz.v1.RestartMCPServerResponse
Response message for WorkspaceService.RestartMCPServer.
Field Ordinal Type Label Description

Message: ToolInfo

FQN: blitz.v1.ToolInfo
ToolInfo is a tool an agent can call.
Field Ordinal Type Label Description
name 1 string
description 2 string
plan_allowed 3 bool Stays available in plan mode.

Message: MCPOffer

FQN: blitz.v1.MCPOffer
MCPOffer is an MCP server offered to an agent.
Field Ordinal Type Label Description
server 1 string
tools 2 string Repeated The tools offered; empty means all.
prefix 3 string Prepended to tool names.

Message: ListToolsRequest

FQN: blitz.v1.ListToolsRequest
Request message for WorkspaceService.ListTools.
Field Ordinal Type Label Description
workspace 1 string
all 2 bool Every tool an agent can be given (for the agent editors), not only the active agent’s; agent and mcp are left empty.

Message: ListToolsResponse

FQN: blitz.v1.ListToolsResponse
Response message for WorkspaceService.ListTools.
Field Ordinal Type Label Description
agent 1 string
tools 2 ToolInfo Repeated
mcp 3 MCPOffer Repeated

Message: ReloadMemoryRequest

FQN: blitz.v1.ReloadMemoryRequest
Request message for WorkspaceService.ReloadMemory.
Field Ordinal Type Label Description
workspace 1 string

Message: ReloadMemoryResponse

FQN: blitz.v1.ReloadMemoryResponse
Response message for WorkspaceService.ReloadMemory.
Field Ordinal Type Label Description
paths 1 string Repeated
files 2 string Repeated The file names looked for, in order.

Message: ReloadAgentFilesRequest

FQN: blitz.v1.ReloadAgentFilesRequest
Request message for WorkspaceService.ReloadAgentFiles.
Field Ordinal Type Label Description
workspace 1 string

Message: ReloadAgentFilesResponse

FQN: blitz.v1.ReloadAgentFilesResponse
Response message for WorkspaceService.ReloadAgentFiles.
Field Ordinal Type Label Description
agents 1 int32 Agents loaded from files (built-in ones aside).
skills 2 int32 Skills loaded from files (built-in ones aside).
files 3 string Repeated The instruction files and rules loaded.
problems 4 string Repeated Files that didn’t load, and why.

Message: AddMemoryRequest

FQN: blitz.v1.AddMemoryRequest
Request message for WorkspaceService.AddMemory.
Field Ordinal Type Label Description
workspace 1 string
text 2 string

Message: AddMemoryResponse

FQN: blitz.v1.AddMemoryResponse
Response message for WorkspaceService.AddMemory.
Field Ordinal Type Label Description
path 1 string

Message: LocaleInfo

FQN: blitz.v1.LocaleInfo
LocaleInfo names a language with an interface catalog.
Field Ordinal Type Label Description
tag 1 string
name 2 string

Message: ListLocalesRequest

FQN: blitz.v1.ListLocalesRequest
Request message for WorkspaceService.ListLocales.
Field Ordinal Type Label Description
workspace 1 string

Message: ListLocalesResponse

FQN: blitz.v1.ListLocalesResponse
Response message for WorkspaceService.ListLocales.
Field Ordinal Type Label Description
locales 1 LocaleInfo Repeated
custom_dir 2 string Where custom catalogs are read from; empty if none is configured.

Message: SetLocaleRequest

FQN: blitz.v1.SetLocaleRequest
Request message for WorkspaceService.SetLocale.
Field Ordinal Type Label Description
workspace 1 string
input 2 string A language tag or name.

Message: SetLocaleResponse

FQN: blitz.v1.SetLocaleResponse
Response message for WorkspaceService.SetLocale.
Field Ordinal Type Label Description
tag 1 string
native_name 2 string e.g. “Español”.
language_name 3 string In the new language’s terms, e.g. “español”.
has_catalog 4 bool The interface is translated; otherwise only replies are.
saved 5 Saved

Message: Checkpoint

FQN: blitz.v1.Checkpoint
Checkpoint is the files one turn changed.
Field Ordinal Type Label Description
id 1 int32
label 2 string
time 3 google.protobuf.Timestamp
files 4 string Repeated

Message: ListCheckpointsRequest

FQN: blitz.v1.ListCheckpointsRequest
Request message for WorkspaceService.ListCheckpoints.
Field Ordinal Type Label Description
workspace 1 string

Message: ListCheckpointsResponse

FQN: blitz.v1.ListCheckpointsResponse
Response message for WorkspaceService.ListCheckpoints.
Field Ordinal Type Label Description
checkpoints 1 Checkpoint Repeated

Message: UndoRequest

FQN: blitz.v1.UndoRequest
Request message for WorkspaceService.Undo.
Field Ordinal Type Label Description
workspace 1 string
force 2 bool Restore even files changed since the agent’s edit.

Message: UndoResponse

FQN: blitz.v1.UndoResponse
Response message for WorkspaceService.Undo.
Field Ordinal Type Label Description
label 1 string
restored 2 string Repeated
error 3 ErrorInfo Why the rest wasn’t restored, after a partial restore.

Message: GetDiffRequest

FQN: blitz.v1.GetDiffRequest
Request message for WorkspaceService.GetDiff.
Field Ordinal Type Label Description
workspace 1 string
git 2 bool git’s diff (stat and patch) instead of the agent’s changes.
color 3 bool Keep git’s terminal colours.

Message: GetDiffResponse

FQN: blitz.v1.GetDiffResponse
Response message for WorkspaceService.GetDiff.
Field Ordinal Type Label Description
diff 1 string A unified diff; empty when nothing changed.

Message: Approval

FQN: blitz.v1.Approval
Approval is a standing permission.
Field Ordinal Type Label Description
key 1 string Identifies it for RevokeApprovals.
kind 2 string “cmd”, “write”, “delete”, “web”, “mcp”, “uc-run”, or a newer kind.
subject 3 string The command, path, host or tool.
dir 4 string The workspace a command approval is limited to.
always 5 bool Saved for future sessions; otherwise it lasts until the service stops.
added 6 google.protobuf.Timestamp

Message: ListApprovalsRequest

FQN: blitz.v1.ListApprovalsRequest
Request message for WorkspaceService.ListApprovals.
Field Ordinal Type Label Description
workspace 1 string

Message: ListApprovalsResponse

FQN: blitz.v1.ListApprovalsResponse
Response message for WorkspaceService.ListApprovals.
Field Ordinal Type Label Description
approvals 1 Approval Repeated

Message: RevokeApprovalsRequest

FQN: blitz.v1.RevokeApprovalsRequest
Request message for WorkspaceService.RevokeApprovals.
Field Ordinal Type Label Description
workspace 1 string
keys 2 string Repeated
all 3 bool Revoke every approval; keys is ignored.

Message: RevokeApprovalsResponse

FQN: blitz.v1.RevokeApprovalsResponse
Response message for WorkspaceService.RevokeApprovals.
Field Ordinal Type Label Description
revoked 1 int32
error 2 ErrorInfo Saved approvals that couldn’t be removed from the file (APPROVALS_STILL_SAVED): revoked for now, back at the next start.

Message: Process

FQN: blitz.v1.Process
Process is a background process the agent started, and how it is.
Field Ordinal Type Label Description
id 1 int32 The workspace’s number for it.
command 2 string
running 3 bool
exit_code 4 int32 Once it has finished.
runtime_ms 5 int64 How long it has run, or ran.

Message: ListProcessesRequest

FQN: blitz.v1.ListProcessesRequest
Request message for WorkspaceService.ListProcesses.
Field Ordinal Type Label Description
workspace 1 string
session_ids 2 string Repeated The sessions whose processes to list.

Message: ListProcessesResponse

FQN: blitz.v1.ListProcessesResponse
Response message for WorkspaceService.ListProcesses.
Field Ordinal Type Label Description
processes 1 Process Repeated

Message: GetProcessOutputRequest

FQN: blitz.v1.GetProcessOutputRequest
Request message for WorkspaceService.GetProcessOutput.
Field Ordinal Type Label Description
workspace 1 string
session_ids 2 string Repeated The sessions the asking client ran turns in.
id 3 int32

Message: GetProcessOutputResponse

FQN: blitz.v1.GetProcessOutputResponse
Response message for WorkspaceService.GetProcessOutput.
Field Ordinal Type Label Description
output 1 string Its output and errors as captured (the first part, when long).
process 2 Process

Message: KillProcessRequest

FQN: blitz.v1.KillProcessRequest
Request message for WorkspaceService.KillProcess.
Field Ordinal Type Label Description
workspace 1 string
session_ids 2 string Repeated The sessions the asking client ran turns in.
id 3 int32

Message: KillProcessResponse

FQN: blitz.v1.KillProcessResponse
Response message for WorkspaceService.KillProcess.
Field Ordinal Type Label Description
process 1 Process How it is after the kill.

Message: AuditShellRequest

FQN: blitz.v1.AuditShellRequest
Request message for WorkspaceService.AuditShell.
Field Ordinal Type Label Description
workspace 1 string
command 2 string
exit_code 3 int32
start_error 4 string Why it didn’t start, if it didn’t ("" when it ran).

Message: AuditShellResponse

FQN: blitz.v1.AuditShellResponse
Response message for WorkspaceService.AuditShell.
Field Ordinal Type Label Description

Message: BackgroundTask

FQN: blitz.v1.BackgroundTask
BackgroundTask is a sub-agent running beside the turn that started it.
Field Ordinal Type Label Description
id 1 string task-1, task-2, … in the workspace.
agent 2 string
prompt 3 string The first line of what it was asked.
session_id 4 string The session whose turn started it.
state 5 string running, done, failed or stopped.
started 6 google.protobuf.Timestamp
ended 7 google.protobuf.Timestamp Unset while it runs.
result 8 string What it answered, when done.
error 9 string Why it failed or stopped.
usage 10 Usage Its own tokens and cost (also counted in its session’s).
worktree 11 string Its own git worktree and branch, when it ran isolated in one.
branch 12 string

Message: ListTasksRequest

FQN: blitz.v1.ListTasksRequest
Request message for WorkspaceService.ListTasks.
Field Ordinal Type Label Description
workspace 1 string
session_ids 2 string Repeated The sessions whose tasks to list.

Message: ListTasksResponse

FQN: blitz.v1.ListTasksResponse
Response message for WorkspaceService.ListTasks.
Field Ordinal Type Label Description
tasks 1 BackgroundTask Repeated

Message: GetTaskRequest

FQN: blitz.v1.GetTaskRequest
Request message for WorkspaceService.GetTask.
Field Ordinal Type Label Description
workspace 1 string
session_ids 2 string Repeated The sessions the asking client ran turns in.
id 3 string

Message: GetTaskResponse

FQN: blitz.v1.GetTaskResponse
Response message for WorkspaceService.GetTask.
Field Ordinal Type Label Description
task 1 BackgroundTask
events 2 string Repeated Its latest events, in words (the last 200).

Message: StopTaskRequest

FQN: blitz.v1.StopTaskRequest
Request message for WorkspaceService.StopTask.
Field Ordinal Type Label Description
workspace 1 string
session_ids 2 string Repeated The sessions the asking client ran turns in.
id 3 string

Message: TaskEvent

FQN: blitz.v1.TaskEvent
TaskEvent is something that happened to a background task outside a turn.
Field Ordinal Type Label Description
task 1 BackgroundTask Oneof (kind) Started, waiting for an answer, running again, or ended.
approval_request 2 ApprovalRequest Oneof (kind) Waits for Approve.
question 3 Question Oneof (kind) Waits for Answer.
resolved 4 string Oneof (kind) A request that no longer waits (answered, or its task ended).
ready 5 bool Oneof (kind) Sent once, after the active tasks and waiting requests: changes follow.
settings_changed 6 bool Oneof (kind) The workspace’s permission rules or remembered approvals changed (their files were edited, by anyone): views of them should refresh.

Message: WatchTasksRequest

FQN: blitz.v1.WatchTasksRequest
Request message for WorkspaceService.WatchTasks.
Field Ordinal Type Label Description
workspace 1 string
session_ids 2 string Repeated The sessions whose tasks to follow.

Message: WatchTasksResponse

FQN: blitz.v1.WatchTasksResponse
Response message for WorkspaceService.WatchTasks.
Field Ordinal Type Label Description
event 1 TaskEvent

Message: ListTaskRequestsRequest

FQN: blitz.v1.ListTaskRequestsRequest
Request message for WorkspaceService.ListTaskRequests.
Field Ordinal Type Label Description
workspace 1 string
session_ids 2 string Repeated

Message: ListTaskRequestsResponse

FQN: blitz.v1.ListTaskRequestsResponse
Response message for WorkspaceService.ListTaskRequests.
Field Ordinal Type Label Description
requests 1 TaskEvent Repeated Each an approval_request or a question.

Message: StopTaskResponse

FQN: blitz.v1.StopTaskResponse
Response message for WorkspaceService.StopTask.
Field Ordinal Type Label Description
task 1 BackgroundTask How it is once stopped.

Message: ProjectItem

FQN: blitz.v1.ProjectItem
ProjectItem is one setting from a project file.
Field Ordinal Type Label Description
file 1 string The file, relative to the workspace.
kind 2 string deny, ask, blocked_path, limit, skill_policy, worker_limit (applied); hook, mcp, allow, writable, model, agent_model, worker_allow, skill_scripts (needing trust); setting (another key).
key 3 string The hook’s event, the server’s, agent’s or skill’s name, or the key.
value 4 string The rule, command, path, model or number.
reason 5 string Why it was ignored: never, unknown, not_stricter, outside, provider, user_set.

Message: ProjectSettings

FQN: blitz.v1.ProjectSettings
ProjectSettings are what a workspace's project files say.
Field Ordinal Type Label Description
files 1 string Repeated The files found, relative to the workspace.
state 2 string The trust decision for the content as it is now: none, new, changed, trusted, declined.
hash 3 string Identifies the content needing trust; TrustProject takes it back.
loaded 4 bool The settings needing trust are in force.
applied 5 ProjectItem Repeated In force without trust: they only tighten.
pending 6 ProjectItem Repeated Needing trust: they run code or loosen a policy.
ignored 7 ProjectItem Repeated Not taken from a project, or changing nothing.
problems 8 string Repeated Files that couldn’t be read.

Message: GetProjectSettingsRequest

FQN: blitz.v1.GetProjectSettingsRequest
Request message for WorkspaceService.GetProjectSettings.
Field Ordinal Type Label Description
workspace 1 string

Message: GetProjectSettingsResponse

FQN: blitz.v1.GetProjectSettingsResponse
Response message for WorkspaceService.GetProjectSettings.
Field Ordinal Type Label Description
settings 1 ProjectSettings

Message: TakeProcessNoticesRequest

FQN: blitz.v1.TakeProcessNoticesRequest
Request message for WorkspaceService.TakeProcessNotices.
Field Ordinal Type Label Description
workspace 1 string
session_id 2 string

Message: TakeProcessNoticesResponse

FQN: blitz.v1.TakeProcessNoticesResponse
Response message for WorkspaceService.TakeProcessNotices.
Field Ordinal Type Label Description
notices 1 string Repeated

Message: Style

FQN: blitz.v1.Style
Style is an output style.
Field Ordinal Type Label Description
name 1 string
description 2 string
source 3 string “built-in”, or the style’s file.
active 4 bool

Message: ListStylesRequest

FQN: blitz.v1.ListStylesRequest
Request message for WorkspaceService.ListStyles.
Field Ordinal Type Label Description
workspace 1 string

Message: ListStylesResponse

FQN: blitz.v1.ListStylesResponse
Response message for WorkspaceService.ListStyles.
Field Ordinal Type Label Description
styles 1 Style Repeated

Message: Hook

FQN: blitz.v1.Hook
Hook is a configured hook.
Field Ordinal Type Label Description
event 1 string
type 2 string command, http or prompt.
match 3 string The tool-name glob, for tool events.
if 4 string The permission rule calls must match.
runs 5 string What it runs: the command, POST <url>, or prompt: <text>.
source 6 string The project file it came from; empty for the user’s own settings.
fail_closed 7 bool
failures 8 HookFailure Repeated Its latest failed runs since the workspace opened.

Message: HookFailure

FQN: blitz.v1.HookFailure
HookFailure is one failed run of a hook.
Field Ordinal Type Label Description
time 1 google.protobuf.Timestamp
error 2 string

Message: ListHooksRequest

FQN: blitz.v1.ListHooksRequest
Request message for WorkspaceService.ListHooks.
Field Ordinal Type Label Description
workspace 1 string

Message: ListHooksResponse

FQN: blitz.v1.ListHooksResponse
Response message for WorkspaceService.ListHooks.
Field Ordinal Type Label Description
hooks 1 Hook Repeated

Message: Note

FQN: blitz.v1.Note
Note is something the agent remembered across sessions of a workspace.
Field Ordinal Type Label Description
name 1 string Its name, to forget it.
kind 2 string fact, preference or correction.
text 3 string
time 4 google.protobuf.Timestamp
path 5 string Its file, on the service’s machine.

Message: ListNotesRequest

FQN: blitz.v1.ListNotesRequest
Request message for WorkspaceService.ListNotes.
Field Ordinal Type Label Description
workspace 1 string

Message: ListNotesResponse

FQN: blitz.v1.ListNotesResponse
Response message for WorkspaceService.ListNotes.
Field Ordinal Type Label Description
notes 1 Note Repeated

Message: ForgetNoteRequest

FQN: blitz.v1.ForgetNoteRequest
Request message for WorkspaceService.ForgetNote.
Field Ordinal Type Label Description
workspace 1 string
name 2 string The note’s name, or the start of it when only one note’s starts so.

Message: ForgetNoteResponse

FQN: blitz.v1.ForgetNoteResponse
Response message for WorkspaceService.ForgetNote.
Field Ordinal Type Label Description

Message: ForgetProjectTrustRequest

FQN: blitz.v1.ForgetProjectTrustRequest
Request message for WorkspaceService.ForgetProjectTrust.
Field Ordinal Type Label Description
workspace 1 string

Message: ForgetProjectTrustResponse

FQN: blitz.v1.ForgetProjectTrustResponse
Response message for WorkspaceService.ForgetProjectTrust.
Field Ordinal Type Label Description
reopened 1 bool The workspace was reopened without the settings; false when a turn was running (it takes effect when the workspace next opens).

Message: TrustProjectRequest

FQN: blitz.v1.TrustProjectRequest
Request message for WorkspaceService.TrustProject.
Field Ordinal Type Label Description
workspace 1 string
hash 2 string The hash of the content shown.
trusted 3 bool Trust it, or decline it.

Message: TrustProjectResponse

FQN: blitz.v1.TrustProjectResponse
Response message for WorkspaceService.TrustProject.
Field Ordinal Type Label Description
reopened 1 bool The workspace was reopened with the decision; false when a turn was running in it: it applies the next time the workspace opens.

Message: Image

FQN: blitz.v1.Image
Image is an image or a PDF stored for a prompt.
Field Ordinal Type Label Description
id 1 string For Turn.image_ids: the SHA-256 of the data.
name 2 string
mime_type 3 string
width 4 int32
height 5 int32
size 6 int64 Bytes, after any resizing.
resized 7 bool Scaled down to fit the model’s limits.
pages 8 int32 A PDF’s page count (mime_type application/pdf); 0 for a picture.
kind 9 string image, document, text, audio or video.
seconds 10 double The length of audio or video, when its header gives it; 0 otherwise.

Message: LoadImageRequest

FQN: blitz.v1.LoadImageRequest
Request message for WorkspaceService.LoadImage.
Field Ordinal Type Label Description
workspace 1 string
path 2 string Relative to the workspace.

Message: LoadImageResponse

FQN: blitz.v1.LoadImageResponse
Response message for WorkspaceService.LoadImage.
Field Ordinal Type Label Description
image 1 Image

Message: AddImageRequest

FQN: blitz.v1.AddImageRequest
Request message for WorkspaceService.AddImage.
Field Ordinal Type Label Description
workspace 1 string
name 2 string
data 3 bytes

Message: AddImageResponse

FQN: blitz.v1.AddImageResponse
Response message for WorkspaceService.AddImage.
Field Ordinal Type Label Description
image 1 Image
FQN: blitz.v1.Link
Link is a search result handed to the agent.
Field Ordinal Type Label Description
title 1 string
url 2 string

Message: GetSearchProviderRequest

FQN: blitz.v1.GetSearchProviderRequest
Request message for WorkspaceService.GetSearchProvider.
Field Ordinal Type Label Description
workspace 1 string

Message: GetSearchProviderResponse

FQN: blitz.v1.GetSearchProviderResponse
Response message for WorkspaceService.GetSearchProvider.
Field Ordinal Type Label Description
provider 1 string

Message: SearchWebRequest

FQN: blitz.v1.SearchWebRequest
Request message for WorkspaceService.SearchWeb.
Field Ordinal Type Label Description
workspace 1 string
terms 2 string

Message: SearchWebResponse

FQN: blitz.v1.SearchWebResponse
Response message for WorkspaceService.SearchWeb.
Field Ordinal Type Label Description
provider 1 string The provider searched.
links 2 Link Repeated None: nothing worth handing over.
prompt 3 string

Message: SearchWorkspaceRequest

FQN: blitz.v1.SearchWorkspaceRequest
Request message for WorkspaceService.SearchWorkspace.
Field Ordinal Type Label Description
workspace 1 string
query 2 string Words and “quoted phrases”.
sources 3 string Repeated files, documents, chats, notes; none: the search.sources setting.
limit 4 int32 0: 20.
mode 5 string keyword, semantic or hybrid; “”: hybrid with an embedding model, else keyword (NO_EMBEDDINGS, UNKNOWN_SEARCH_MODE).
hidden 6 bool Include hidden items: dotfiles, files git ignores (the desktop app asks for them when it shows hidden files).

Message: SearchHit

FQN: blitz.v1.SearchHit
SearchHit is one item workspace search found.
Field Ordinal Type Label Description
source 1 string files, documents, chats or notes.
ref 2 string A path relative to the workspace (files, documents, plans), a session’s ID (chats) or a note’s name.
title 3 string
line 4 int32 The passage’s line in the item’s text (1-based).
section 5 string What the passage is in: a PDF’s page, a notebook’s cell.
snippet 6 string The lines around the match.
score 7 double
summary 8 string What a model wrote of the item (search.enrich), if it has.
tags 9 string Repeated

Message: SearchWorkspaceResponse

FQN: blitz.v1.SearchWorkspaceResponse
Response message for WorkspaceService.SearchWorkspace.
Field Ordinal Type Label Description
hits 1 SearchHit Repeated Best first, one per item.
sources 2 string Repeated The sources searched.

Message: GetSearchStatusRequest

FQN: blitz.v1.GetSearchStatusRequest
Request message for WorkspaceService.GetSearchStatus.
Field Ordinal Type Label Description
workspace 1 string

Message: SearchStatus

FQN: blitz.v1.SearchStatus
SearchStatus is how a workspace's search index is.
Field Ordinal Type Label Description
enabled 1 bool Search is on (search.enabled).
items 2 string, int32 Map Items indexed, by source.
scanning 3 bool A scan is running.
last_scan 4 google.protobuf.Timestamp When the last scan finished.
unreadable 5 int32 Items that couldn’t be read.
error 6 string
embedding_model 7 string Semantic search’s embedding model ("": off).
embedded 8 int32 Chunks with vectors.
embed_error 9 string Why embedding stopped (the next scan tries again).
enriched 10 int32 Items with a summary (search.enrich), and why describing stopped.
enrich_error 11 string
settings 12 SearchSettings The [search] settings followed, even with search off.
problem 13 string What kept them from applying in full (an embedding model or describer that couldn’t be built, an index that couldn’t open).

Message: SearchSettings

FQN: blitz.v1.SearchSettings
SearchSettings are a workspace's [search] settings (set with ConfigService.SetConfigValue: search.enabled, search.sources, …).
Field Ordinal Type Label Description
enabled 1 bool
sources 2 string Repeated
embedding_model 3 string
enrich 4 bool
enrich_model 5 string
enrich_daily_limit 6 int32
include_ignored 7 bool

Message: GetSearchStatusResponse

FQN: blitz.v1.GetSearchStatusResponse
Response message for WorkspaceService.GetSearchStatus.
Field Ordinal Type Label Description
status 1 SearchStatus

Message: ReindexRequest

FQN: blitz.v1.ReindexRequest
Request message for WorkspaceService.Reindex.
Field Ordinal Type Label Description
workspace 1 string

Message: ReindexResponse

FQN: blitz.v1.ReindexResponse
Response message for WorkspaceService.Reindex.
Field Ordinal Type Label Description

Message: GetGitStatusRequest

FQN: blitz.v1.GetGitStatusRequest
Request message for WorkspaceService.GetGitStatus.
Field Ordinal Type Label Description
workspace 1 string

Message: GetGitStatusResponse

FQN: blitz.v1.GetGitStatusResponse
Response message for WorkspaceService.GetGitStatus.
Field Ordinal Type Label Description
repo 1 bool
branch 2 string The branch, or the short commit when detached.
changed 3 int32 Files that differ from HEAD, untracked ones included.
git 4 bool Git is on the service’s PATH (else repo is false).
remote 5 bool The repository has a remote.
upstream 6 string The branch’s upstream, such as “origin/main”; empty when it has none.
ahead 7 int32 Commits the branch has that the upstream hasn’t, as of the last fetch.
behind 8 int32 Commits the upstream has that the branch hasn’t, as of the last fetch.
operation 9 GitOperation A merge or rebase in progress (a pull that stopped on conflicts).
conflicts 10 string Repeated The files still in conflict, workspace-relative with “/”.
merging 11 string The branch a merge in progress brings in, such as “feature” or “origin/main” (empty when none, or when git can’t name it).

Message: InitGitRepoRequest

FQN: blitz.v1.InitGitRepoRequest
Request message for WorkspaceService.InitGitRepo.
Field Ordinal Type Label Description
workspace 1 string

Message: InitGitRepoResponse

FQN: blitz.v1.InitGitRepoResponse
Response message for WorkspaceService.InitGitRepo.
Field Ordinal Type Label Description
status 1 GetGitStatusResponse The repository’s git status, after git init.

Message: StagedFile

FQN: blitz.v1.StagedFile
A file in the index, for the commit dialog.
Field Ordinal Type Label Description
status 1 string Git’s status letter: A, M, D, T, …
path 2 string Workspace-relative, with “/”.

Message: DraftCommitRequest

FQN: blitz.v1.DraftCommitRequest
Request message for WorkspaceService.DraftCommit.
Field Ordinal Type Label Description
workspace 1 string
stage_all 2 bool Stage every change first (git add –all).

Message: DraftCommitResponse

FQN: blitz.v1.DraftCommitResponse
Response message for WorkspaceService.DraftCommit.
Field Ordinal Type Label Description
files 1 StagedFile Repeated What’s staged; none means nothing to commit.
message 2 string The drafted message ("" with problem set when the model failed).
problem 3 string Why there’s no draft.

Message: CommitRequest

FQN: blitz.v1.CommitRequest
Request message for WorkspaceService.Commit.
Field Ordinal Type Label Description
workspace 1 string
message 2 string

Message: CommitResponse

FQN: blitz.v1.CommitResponse
Response message for WorkspaceService.Commit.
Field Ordinal Type Label Description
hash 1 string The new commit’s short hash.
subject 2 string Its message’s first line.

Message: FetchRemoteRequest

FQN: blitz.v1.FetchRemoteRequest
Request message for WorkspaceService.FetchRemote.
Field Ordinal Type Label Description
workspace 1 string

Message: FetchRemoteResponse

FQN: blitz.v1.FetchRemoteResponse
Response message for WorkspaceService.FetchRemote.
Field Ordinal Type Label Description
status 1 GetGitStatusResponse The git status after the fetch.

Message: PullRequest

FQN: blitz.v1.PullRequest
Request message for WorkspaceService.Pull.
Field Ordinal Type Label Description
workspace 1 string

Message: PullResponse

FQN: blitz.v1.PullResponse
Response message for WorkspaceService.Pull.
Field Ordinal Type Label Description
outcome 1 PullOutcome
commits 2 int32 Commits brought in from the upstream.
status 3 GetGitStatusResponse The git status after the pull.

Message: PushRequest

FQN: blitz.v1.PushRequest
Request message for WorkspaceService.Push.
Field Ordinal Type Label Description
workspace 1 string

Message: PushResponse

FQN: blitz.v1.PushResponse
Response message for WorkspaceService.Push.
Field Ordinal Type Label Description
target 1 string Where it pushed, as “remote/branch”.
status 2 GetGitStatusResponse The git status after the push.

Message: ResolveConflictRequest

FQN: blitz.v1.ResolveConflictRequest
Request message for WorkspaceService.ResolveConflict.
Field Ordinal Type Label Description
workspace 1 string
path 2 string The file, workspace-relative.
choice 3 ConflictChoice

Message: ResolveConflictResponse

FQN: blitz.v1.ResolveConflictResponse
Response message for WorkspaceService.ResolveConflict.
Field Ordinal Type Label Description
status 1 GetGitStatusResponse The git status after it.

Message: CompleteMergeRequest

FQN: blitz.v1.CompleteMergeRequest
Request message for WorkspaceService.CompleteMerge.
Field Ordinal Type Label Description
workspace 1 string

Message: CompleteMergeResponse

FQN: blitz.v1.CompleteMergeResponse
Response message for WorkspaceService.CompleteMerge.
Field Ordinal Type Label Description
status 1 GetGitStatusResponse The git status after it: a rebase may have stopped on new conflicts.

Message: AbortMergeRequest

FQN: blitz.v1.AbortMergeRequest
Request message for WorkspaceService.AbortMerge.
Field Ordinal Type Label Description
workspace 1 string

Message: AbortMergeResponse

FQN: blitz.v1.AbortMergeResponse
Response message for WorkspaceService.AbortMerge.
Field Ordinal Type Label Description
status 1 GetGitStatusResponse The git status after it.

Message: Branch

FQN: blitz.v1.Branch
A branch the workspace can switch to or merge.
Field Ordinal Type Label Description
name 1 string Its short name: “main”, or “origin/feature” for a remote’s.
remote 2 bool A remote’s branch no local branch tracks: switching to it makes one.
current 3 bool The branch checked out.
upstream 4 string A local branch’s upstream, such as “origin/main”.
subject 5 string Its last commit’s subject.
time 6 google.protobuf.Timestamp Its last commit’s time.

Message: ListBranchesRequest

FQN: blitz.v1.ListBranchesRequest
Request message for WorkspaceService.ListBranches.
Field Ordinal Type Label Description
workspace 1 string

Message: ListBranchesResponse

FQN: blitz.v1.ListBranchesResponse
Response message for WorkspaceService.ListBranches.
Field Ordinal Type Label Description
branches 1 Branch Repeated

Message: SwitchBranchRequest

FQN: blitz.v1.SwitchBranchRequest
Request message for WorkspaceService.SwitchBranch.
Field Ordinal Type Label Description
workspace 1 string
branch 2 string A branch’s name as ListBranches gives it.

Message: SwitchBranchResponse

FQN: blitz.v1.SwitchBranchResponse
Response message for WorkspaceService.SwitchBranch.
Field Ordinal Type Label Description
status 1 GetGitStatusResponse The git status after it.

Message: CreateBranchRequest

FQN: blitz.v1.CreateBranchRequest
Request message for WorkspaceService.CreateBranch.
Field Ordinal Type Label Description
workspace 1 string
branch 2 string The new branch’s name.

Message: CreateBranchResponse

FQN: blitz.v1.CreateBranchResponse
Response message for WorkspaceService.CreateBranch.
Field Ordinal Type Label Description
status 1 GetGitStatusResponse The git status after it, on the new branch.

Message: MergeBranchRequest

FQN: blitz.v1.MergeBranchRequest
Request message for WorkspaceService.MergeBranch.
Field Ordinal Type Label Description
workspace 1 string
branch 2 string The branch to merge into the current one, as ListBranches names it.

Message: MergeBranchResponse

FQN: blitz.v1.MergeBranchResponse
Response message for WorkspaceService.MergeBranch.
Field Ordinal Type Label Description
outcome 1 PullOutcome UP_TO_DATE, FAST_FORWARD, MERGED or CONFLICTS (never REBASED).
commits 2 int32 Commits brought in from the branch.
status 3 GetGitStatusResponse The git status after the merge.

Message: DraftManifestRequest

FQN: blitz.v1.DraftManifestRequest
Request message for WorkspaceService.DraftManifest.
Field Ordinal Type Label Description
workspace 1 string
kind 2 string agent, skill, script, rule, guardrail, eval or workflow_step.
name 3 string
description 4 string
current 5 string The text now; empty to write it afresh.
request 6 string What the user asks; empty to improve it.
language 7 string A script’s language (python or typescript).

Message: DraftManifestResponse

FQN: blitz.v1.DraftManifestResponse
Response message for WorkspaceService.DraftManifest.
Field Ordinal Type Label Description
text 1 string
changes 2 string Repeated What was written or changed and why, a line each.
problem 3 string Why there’s no draft (the model failed); the user’s text stands.

Message: RuleFile

FQN: blitz.v1.RuleFile
A rule file: a gate (when set) or an instruction rule.
Field Ordinal Type Label Description
name 1 string Its path in the rule folder, without .md.
path 2 string
when 3 string before_agent or after_agent for a gate; empty for an instruction rule.
action 4 string block, warn or revise (a gate).
order 5 int32
agents 6 string Repeated The agents it gates (none: every one).
description 7 string
paths 8 string Repeated The files an instruction rule is scoped to.
text 9 string
problem 10 string Why its front matter doesn’t hold (it’s skipped).
editable 11 bool In .agents/rules: Studio may change it.

Message: RuleSpec

FQN: blitz.v1.RuleSpec
What Studio's rule form edits.
Field Ordinal Type Label Description
name 1 string
when 2 string
action 3 string
order 4 int32
agents 5 string Repeated
description 6 string
paths 7 string Repeated
text 8 string

Message: ListRulesRequest

FQN: blitz.v1.ListRulesRequest
Request message for WorkspaceService.ListRules.
Field Ordinal Type Label Description
workspace 1 string

Message: ListRulesResponse

FQN: blitz.v1.ListRulesResponse
Response message for WorkspaceService.ListRules.
Field Ordinal Type Label Description
rules 1 RuleFile Repeated
dir 2 string Where new rules are written (.agents/rules).

Message: SaveRuleRequest

FQN: blitz.v1.SaveRuleRequest
Request message for WorkspaceService.SaveRule.
Field Ordinal Type Label Description
workspace 1 string
previous_name 2 string
rule 3 RuleSpec

Message: SaveRuleResponse

FQN: blitz.v1.SaveRuleResponse
Response message for WorkspaceService.SaveRule.
Field Ordinal Type Label Description
rule 1 RuleFile
problems 2 string Repeated

Message: DeleteRuleRequest

FQN: blitz.v1.DeleteRuleRequest
Request message for WorkspaceService.DeleteRule.
Field Ordinal Type Label Description
workspace 1 string
name 2 string

Message: DeleteRuleResponse

FQN: blitz.v1.DeleteRuleResponse
Response message for WorkspaceService.DeleteRule.
Field Ordinal Type Label Description

Message: ReorderRulesRequest

FQN: blitz.v1.ReorderRulesRequest
Request message for WorkspaceService.ReorderRules.
Field Ordinal Type Label Description
workspace 1 string
names 2 string Repeated

Message: ReorderRulesResponse

FQN: blitz.v1.ReorderRulesResponse
Response message for WorkspaceService.ReorderRules.
Field Ordinal Type Label Description

Message: TryRuleRequest

FQN: blitz.v1.TryRuleRequest
Request message for WorkspaceService.TryRule.
Field Ordinal Type Label Description
workspace 1 string
rule 2 RuleSpec
sample 3 string A prompt (before-agent) or an answer (after-agent).

Message: TryRuleResponse

FQN: blitz.v1.TryRuleResponse
Response message for WorkspaceService.TryRule.
Field Ordinal Type Label Description
pass 1 bool
reason 2 string
problem 3 string Why it couldn’t be judged.

Message: GuardrailLimits

FQN: blitz.v1.GuardrailLimits
The limits guardrail's limits; zero or empty means none of that kind.
Field Ordinal Type Label Description
max_cost_usd 1 double
max_turns 2 int32
max_files_changed 3 int32
allowed_domains 4 string Repeated
commands 5 string Repeated Shell commands not to run (globs over the whole command).

Message: GuardrailFile

FQN: blitz.v1.GuardrailFile
A guardrail file, or a built-in guardrail without one (its defaults).
Field Ordinal Type Label Description
name 1 string Its file’s name without .md (a built-in’s is its id).
path 2 string Empty for a built-in guardrail running with its defaults.
builtin 3 string prompt_injection, secrets or limits; empty for a custom one.
stage 4 string input, tool_result, output or action.
action 5 string block, warn or redact.
agents 6 string Repeated
tools 7 string Repeated The tools a tool-result or action guardrail checks.
description 8 string
pii 9 bool The secrets guardrail masks personal data too.
judge 10 bool The injection guardrail confirms with the judge.
limits 11 GuardrailLimits
text 12 string A custom guardrail’s check.
problem 13 string
editable 14 bool In .agents/guardrails, or a built-in one’s defaults: Studio may change it.
off 15 bool Switched off (enabled: false).

Message: BuiltinGuardrail

FQN: blitz.v1.BuiltinGuardrail
A built-in guardrail: on by default.
Field Ordinal Type Label Description
id 1 string
stage 2 string
default_action 3 string
actions 4 string Repeated
file 5 GuardrailFile As it runs: its file, or its defaults (no path).

Message: GuardrailSpec

FQN: blitz.v1.GuardrailSpec
What Studio's guardrail form edits.
Field Ordinal Type Label Description
name 1 string
builtin 2 string
stage 3 string
action 4 string
agents 5 string Repeated
tools 6 string Repeated
description 7 string
pii 8 bool
judge 9 bool
limits 10 GuardrailLimits
text 11 string
off 12 bool Switches it off, keeping its settings.

Message: ListGuardrailsRequest

FQN: blitz.v1.ListGuardrailsRequest
Request message for WorkspaceService.ListGuardrails.
Field Ordinal Type Label Description
workspace 1 string

Message: ListGuardrailsResponse

FQN: blitz.v1.ListGuardrailsResponse
Response message for WorkspaceService.ListGuardrails.
Field Ordinal Type Label Description
builtins 1 BuiltinGuardrail Repeated
guardrails 2 GuardrailFile Repeated
dir 3 string Where new guardrails are written (.agents/guardrails).

Message: SaveGuardrailRequest

FQN: blitz.v1.SaveGuardrailRequest
Request message for WorkspaceService.SaveGuardrail.
Field Ordinal Type Label Description
workspace 1 string
previous_name 2 string
guardrail 3 GuardrailSpec

Message: SaveGuardrailResponse

FQN: blitz.v1.SaveGuardrailResponse
Response message for WorkspaceService.SaveGuardrail.
Field Ordinal Type Label Description
guardrail 1 GuardrailFile
problems 2 string Repeated

Message: DeleteGuardrailRequest

FQN: blitz.v1.DeleteGuardrailRequest
Request message for WorkspaceService.DeleteGuardrail.
Field Ordinal Type Label Description
workspace 1 string
name 2 string

Message: DeleteGuardrailResponse

FQN: blitz.v1.DeleteGuardrailResponse
Response message for WorkspaceService.DeleteGuardrail.
Field Ordinal Type Label Description

Message: TryGuardrailRequest

FQN: blitz.v1.TryGuardrailRequest
Request message for WorkspaceService.TryGuardrail.
Field Ordinal Type Label Description
workspace 1 string
guardrail 2 GuardrailSpec
sample 3 string

Message: TryGuardrailResponse

FQN: blitz.v1.TryGuardrailResponse
Response message for WorkspaceService.TryGuardrail.
Field Ordinal Type Label Description
pass 1 bool
reason 2 string
problem 3 string

Message: EvalCase

FQN: blitz.v1.EvalCase
A row of an eval's table.
Field Ordinal Type Label Description
id 1 string
name 2 string
prompt 3 string
output 4 string The output expected.
type 5 string exact or near.
threshold 6 double A near case’s threshold, above 0 and up to 1.
scope 7 string fail, warn or info.

Message: EvalFile

FQN: blitz.v1.EvalFile
An eval file in .agents/evals.
Field Ordinal Type Label Description
name 1 string
path 2 string
description 3 string
agents 4 string Repeated
skills 5 string Repeated
near 6 string judge or embedding.
allow 7 string Repeated network or mcp.
cases 8 EvalCase Repeated
problem 9 string
last_run 10 EvalRun Its last run, if any (without its results).

Message: EvalSpec

FQN: blitz.v1.EvalSpec
What Studio's eval form edits.
Field Ordinal Type Label Description
name 1 string
description 2 string
agents 3 string Repeated
skills 4 string Repeated
near 5 string
allow 6 string Repeated
cases 7 EvalCase Repeated

Message: EvalResult

FQN: blitz.v1.EvalResult
One case run by one agent, and its score.
Field Ordinal Type Label Description
case 1 string
name 2 string
agent 3 string
type 4 string
scope 5 string
status 6 string pass; fail, warn or info (the case’s scope) when it didn’t pass; or error when it couldn’t be run or scored.
score 7 double
threshold 8 double
prompt 9 string
expected 10 string
output 11 string
reason 12 string
refusals 13 string Repeated Actions the eval didn’t allow, as “tool: detail”.
cost_usd 14 double
duration 15 google.protobuf.Duration

Message: EvalRun

FQN: blitz.v1.EvalRun
A run of an eval.
Field Ordinal Type Label Description
id 1 string
eval 2 string
started 3 google.protobuf.Timestamp
duration 4 google.protobuf.Duration
status 5 string running, passed, failed or stopped.
results 6 EvalResult Repeated
cost_usd 7 double
error 8 string
counts 9 string, int32 Map The results by status (pass, fail, warn, info, error).

Message: ListEvalsRequest

FQN: blitz.v1.ListEvalsRequest
Request message for WorkspaceService.ListEvals.
Field Ordinal Type Label Description
workspace 1 string

Message: ListEvalsResponse

FQN: blitz.v1.ListEvalsResponse
Response message for WorkspaceService.ListEvals.
Field Ordinal Type Label Description
evals 1 EvalFile Repeated
dir 2 string .agents/evals.

Message: SaveEvalRequest

FQN: blitz.v1.SaveEvalRequest
Request message for WorkspaceService.SaveEval.
Field Ordinal Type Label Description
workspace 1 string
previous_name 2 string The eval edited; empty for a new one.
eval 3 EvalSpec

Message: SaveEvalResponse

FQN: blitz.v1.SaveEvalResponse
Response message for WorkspaceService.SaveEval.
Field Ordinal Type Label Description
eval 1 EvalFile
problems 2 string Repeated

Message: DeleteEvalRequest

FQN: blitz.v1.DeleteEvalRequest
Request message for WorkspaceService.DeleteEval.
Field Ordinal Type Label Description
workspace 1 string
name 2 string

Message: DeleteEvalResponse

FQN: blitz.v1.DeleteEvalResponse
Response message for WorkspaceService.DeleteEval.
Field Ordinal Type Label Description

Message: RunEvalRequest

FQN: blitz.v1.RunEvalRequest
Request message for WorkspaceService.RunEval.
Field Ordinal Type Label Description
workspace 1 string
name 2 string
cases 3 string Repeated The case IDs to run; none: every case.

Message: RunEvalResponse

FQN: blitz.v1.RunEvalResponse
Response message for WorkspaceService.RunEval: the run as it starts, each result, then the finished run.
Field Ordinal Type Label Description
started 1 EvalRun Oneof (event)
result 2 EvalResult Oneof (event)
finished 3 EvalRun Oneof (event)

Message: ListEvalRunsRequest

FQN: blitz.v1.ListEvalRunsRequest
Request message for WorkspaceService.ListEvalRuns.
Field Ordinal Type Label Description
workspace 1 string
name 2 string
limit 3 int32 At most this many (0: 20).

Message: ListEvalRunsResponse

FQN: blitz.v1.ListEvalRunsResponse
Response message for WorkspaceService.ListEvalRuns.
Field Ordinal Type Label Description
runs 1 EvalRun Repeated

Message: DraftEvalCasesRequest

FQN: blitz.v1.DraftEvalCasesRequest
Request message for WorkspaceService.DraftEvalCases.
Field Ordinal Type Label Description
workspace 1 string
agent 2 string
request 3 string What to draft cases for (optional).
existing 4 EvalCase Repeated The cases the eval has, not to repeat.

Message: DraftEvalCasesResponse

FQN: blitz.v1.DraftEvalCasesResponse
Response message for WorkspaceService.DraftEvalCases.
Field Ordinal Type Label Description
cases 1 EvalCase Repeated
problem 2 string

Message: FlowNode

FQN: blitz.v1.FlowNode
A workflow's step.
Field Ordinal Type Label Description
id 1 string
type 2 string agent, refine, summarize, accumulate, browser, script, read_file, save_file; email and data are shown, not run yet.
title 3 string
x 4 double Where it sits on the canvas.
y 5 double
agent 6 string The agent an agent, refine, summarize or browser step runs (empty: the active one).
skills 7 string Repeated
instructions 8 string What it’s to do (a browser step’s goal; a summary’s focus).
rules 9 string Repeated Rules its output must pass, beyond the gates every turn has.
skill 10 string A script step’s skill, script and arguments.
script 11 string
args 12 string Repeated
path 13 string A read_file or save_file step’s file, in the workspace.
fields 14 FlowField Repeated What an extract step pulls out.
retry_attempts 15 int32 Tries in all when it fails (0 or 1: once), the first wait (a Go duration, doubled each time), and the most it may take.
retry_delay 16 string
timeout 17 string
server 18 string An MCP call’s server, tool and arguments (a JSON object; string values take templates).
tool 19 string
arguments_json 20 string
url 21 string An API call’s URL (an A2A call’s: where its agent card is), method, query, headers, body (text) or JSON body (JSON), and auth. Values take templates and {secrets:key}.
method 22 string
query 23 FlowPair Repeated
headers 24 FlowPair Repeated
body 25 string
json_body 26 string
auth 27 FlowAuth
workflow 28 string The workflow a call step runs.
for_each 29 string Runs the step once per item of this list (a CEL expression), so many at a time (0: 4).
concurrency 30 int32
form_json 31 string A human task’s form: A2UI v0.9 ({“components”: […], “data”: {…}}).
wait 32 string How long a timer waits (a Go duration), or until when (RFC 3339).
until 33 string

Message: HumanTask

FQN: blitz.v1.HumanTask
A paused workflow run's task: a human task's form waiting for an answer, or a timer waiting for its time.
Field Ordinal Type Label Description
id 1 string Answer with it.
run 2 string
workspace 3 string
workflow 4 string
step 5 string
title 6 string
kind 7 string human_task or timer.
message 8 string What’s shown above the form.
a2ui_json 9 string The form as A2UI v0.9 server-to-client messages, any A2UI renderer’s to draw: a JSON array of createSurface (the surface’s ID is the task’s), updateComponents and updateDataModel, its templates filled from the run as the step started.
fire_at 10 google.protobuf.Timestamp
created 11 google.protobuf.Timestamp
session_id 12 string The chat its run’s agent steps are turns in.

Message: ListHumanTasksRequest

FQN: blitz.v1.ListHumanTasksRequest
Request message for WorkspaceService.ListHumanTasks.
Field Ordinal Type Label Description
workspace 1 string Empty: every workspace’s.

Message: ListHumanTasksResponse

FQN: blitz.v1.ListHumanTasksResponse
Response message for WorkspaceService.ListHumanTasks.
Field Ordinal Type Label Description
tasks 1 HumanTask Repeated
alerts 2 string How a waiting task reaches the user with no window open ([ui] task_alerts): notify, open or off.

Message: WatchHumanTasksRequest

FQN: blitz.v1.WatchHumanTasksRequest
Request message for WorkspaceService.WatchHumanTasks.
Field Ordinal Type Label Description
workspace 1 string Empty: every workspace’s.

Message: WatchHumanTasksResponse

FQN: blitz.v1.WatchHumanTasksResponse
Response message for WorkspaceService.WatchHumanTasks: the tasks now (each message the whole list).
Field Ordinal Type Label Description
tasks 1 HumanTask Repeated
alerts 2 string How a waiting task reaches the user with no window open ([ui] task_alerts): notify, open or off.

Message: AnswerHumanTaskRequest

FQN: blitz.v1.AnswerHumanTaskRequest
Request message for WorkspaceService.AnswerHumanTask.
Field Ordinal Type Label Description
workspace 1 string
task_id 2 string
action_json 3 string A2UI v0.9’s client-to-server action message, from one of the form’s buttons: {“version”: “v0.9”, “action”: {“name”, “surfaceId”, “sourceComponentId”, “timestamp”, “context”}}.
data_json 4 string The surface’s data model as the client had it (a JSON object; empty: the form’s own, with the action’s values), on which every check of the form must pass.

Message: AnswerHumanTaskResponse

FQN: blitz.v1.AnswerHumanTaskResponse
Response message for WorkspaceService.AnswerHumanTask.
Field Ordinal Type Label Description
run 1 BackgroundRun The run, resumed in the background.

Message: FlowPair

FQN: blitz.v1.FlowPair
A named value: a header, a query parameter.
Field Ordinal Type Label Description
name 1 string
value 2 string

Message: FlowAuth

FQN: blitz.v1.FlowAuth
How an API call authenticates.
Field Ordinal Type Label Description
type 1 string bearer, basic, api_key or oauth2 (client credentials).
token 2 string
username 3 string
password 4 string
name 5 string An API key’s name, value, and where it goes (header or query).
value 6 string
in 7 string
token_url 8 string OAuth2 client credentials'.
client_id 9 string
client_secret 10 string
scopes 11 string Repeated
audience 12 string

Message: FlowField

FQN: blitz.v1.FlowField
A value an extract step pulls out.
Field Ordinal Type Label Description
name 1 string
type 2 string string, number, boolean or list.
description 3 string

Message: FlowEdge

FQN: blitz.v1.FlowEdge
A link carrying a step's output to another.
Field Ordinal Type Label Description
from 1 string
to 2 string
when 3 string A condition: CEL (when) or plain English judged by a model (if).
if 4 string
default 5 bool Taken when none of its step’s conditional links is.
error 6 bool Taken when its step fails, the error as its input.
label 7 string

Message: WorkflowFile

FQN: blitz.v1.WorkflowFile
A workflow file in .agents/workflows.
Field Ordinal Type Label Description
name 1 string
path 2 string
description 3 string
nodes 4 FlowNode Repeated
edges 5 FlowEdge Repeated
problem 6 string
mode 7 string The permission mode its steps run in: auto (empty), accept-edits, default, dont-ask or bypass; never looser than the workspace’s (spec_workflows_043 WF-21).

Message: ListWorkflowsRequest

FQN: blitz.v1.ListWorkflowsRequest
Request message for WorkspaceService.ListWorkflows.
Field Ordinal Type Label Description
workspace 1 string

Message: ListWorkflowsResponse

FQN: blitz.v1.ListWorkflowsResponse
Response message for WorkspaceService.ListWorkflows.
Field Ordinal Type Label Description
workflows 1 WorkflowFile Repeated
dir 2 string .agents/workflows.

Message: SaveWorkflowRequest

FQN: blitz.v1.SaveWorkflowRequest
Request message for WorkspaceService.SaveWorkflow.
Field Ordinal Type Label Description
workspace 1 string
previous_name 2 string The workflow edited; empty for a new one.
workflow 3 WorkflowFile What to write (its path and problem aside).

Message: SaveWorkflowResponse

FQN: blitz.v1.SaveWorkflowResponse
Response message for WorkspaceService.SaveWorkflow.
Field Ordinal Type Label Description
workflow 1 WorkflowFile
problems 2 string Repeated

Message: DeleteWorkflowRequest

FQN: blitz.v1.DeleteWorkflowRequest
Request message for WorkspaceService.DeleteWorkflow.
Field Ordinal Type Label Description
workspace 1 string
name 2 string

Message: DeleteWorkflowResponse

FQN: blitz.v1.DeleteWorkflowResponse
Response message for WorkspaceService.DeleteWorkflow.
Field Ordinal Type Label Description

Message: WorkflowRun

FQN: blitz.v1.WorkflowRun
A workflow run's receipt (spec_workflows_043 WF-19): its envelope (what started it, when, on what) and routing slip (each step's run, in the order they ran), with what it spent.
Field Ordinal Type Label Description
id 1 string
workspace 2 string
workflow 3 string
origin 4 string chat, background or worker.
session_id 5 string The chat its agent steps are turns in.
input 6 string
started 7 google.protobuf.Timestamp
ended 8 google.protobuf.Timestamp Unset while it runs or waits.
status 9 string running, waiting (on a human task or a timer), done, failed or stopped.
error 10 string
output 11 string What it produced (the start of it).
usage 12 Usage The steps’ usage together, and every model they used.
models 13 string Repeated
steps 14 WorkflowRunStep Repeated
events 15 WorkflowRunEvent Repeated Its events, oldest first (left out of lists).
background_id 16 string The service’s background run following it while one does (watch it with WatchBackground for approvals and the chat’s events).
approvals 17 int32 Approval requests that background run waits on.
mode 18 string The permission mode its steps ran in (spec_workflows_043 WF-21).

Message: WorkflowRunStep

FQN: blitz.v1.WorkflowRunStep
One run of a workflow's step.
Field Ordinal Type Label Description
id 1 string
title 2 string
type 3 string
status 4 string running, waiting, done, failed or skipped.
started 5 google.protobuf.Timestamp
ended 6 google.protobuf.Timestamp Unset while it runs.
attempts 7 int32 How many times it was tried (its retry).
agent 8 string An agent step’s agent, and the models its calls used.
models 9 string Repeated
usage 10 Usage Its model calls’ tokens and cost (so far, while it runs).
output 11 string What it produced (the start of it; left out of lists).
stream 12 string The text its turns streamed (the start of it; left out of lists).
error 13 string

Message: WorkflowRunEvent

FQN: blitz.v1.WorkflowRunEvent
Something that happened in a workflow run.
Field Ordinal Type Label Description
at 1 google.protobuf.Timestamp
step 2 string The step it’s about, if any.
kind 3 string run (started, resumed, ended), step, tool or notice.
text 4 string
error 5 bool

Message: ListWorkflowRunsRequest

FQN: blitz.v1.ListWorkflowRunsRequest
Request message for WorkspaceService.ListWorkflowRuns.
Field Ordinal Type Label Description
workspace 1 string Empty: every workspace’s.
workflow 2 string Empty: every workflow’s.
limit 3 int32 At most this many (50 when unset).

Message: ListWorkflowRunsResponse

FQN: blitz.v1.ListWorkflowRunsResponse
Response message for WorkspaceService.ListWorkflowRuns.
Field Ordinal Type Label Description
runs 1 WorkflowRun Repeated

Message: GetWorkflowRunRequest

FQN: blitz.v1.GetWorkflowRunRequest
Request message for WorkspaceService.GetWorkflowRun.
Field Ordinal Type Label Description
workspace 1 string
id 2 string

Message: GetWorkflowRunResponse

FQN: blitz.v1.GetWorkflowRunResponse
Response message for WorkspaceService.GetWorkflowRun.
Field Ordinal Type Label Description
run 1 WorkflowRun

Message: WatchWorkflowRunRequest

FQN: blitz.v1.WatchWorkflowRunRequest
Request message for WorkspaceService.WatchWorkflowRun.
Field Ordinal Type Label Description
workspace 1 string
id 2 string

Message: WatchWorkflowRunResponse

FQN: blitz.v1.WatchWorkflowRunResponse
Response message for WorkspaceService.WatchWorkflowRun.
Field Ordinal Type Label Description
run 1 WorkflowRun

Message: WatchWorkflowRunsRequest

FQN: blitz.v1.WatchWorkflowRunsRequest
Request message for WorkspaceService.WatchWorkflowRuns.
Field Ordinal Type Label Description
workspace 1 string Empty: every workspace’s.

Message: WatchWorkflowRunsResponse

FQN: blitz.v1.WatchWorkflowRunsResponse
Response message for WorkspaceService.WatchWorkflowRuns.
Field Ordinal Type Label Description
runs 1 WorkflowRun Repeated Running and waiting runs, and those that ended in the last few minutes, newest first (summaries).

Message: StopWorkflowRunRequest

FQN: blitz.v1.StopWorkflowRunRequest
Request message for WorkspaceService.StopWorkflowRun.
Field Ordinal Type Label Description
workspace 1 string
id 2 string

Message: StopWorkflowRunResponse

FQN: blitz.v1.StopWorkflowRunResponse
Response message for WorkspaceService.StopWorkflowRun.
Field Ordinal Type Label Description

Message: WorkspaceHealth

FQN: blitz.v1.WorkspaceHealth
A workspace's dashboard (spec_health_044).
Field Ordinal Type Label Description
at 1 google.protobuf.Timestamp
items 2 HealthItem Repeated
days 3 HealthDay Repeated The runs per day, the last 30, oldest first.
signals 4 HealthSignal Repeated
overall 5 double The workspace’s score and each kind’s (1–5; 0: not judged).
by_kind 6 string, double Map
previous_overall 7 double The workspace’s score before the last check.
last_check 8 google.protobuf.Timestamp
last_cost_usd 9 double
skipped 10 string Why the last scheduled check didn’t run.
model 11 string The judge’s model ("" the default); the schedule ("" or “off”: by hand) and its next time; a scheduled check’s cost limit.
schedule 12 string
next 13 google.protobuf.Timestamp
max_cost_usd 14 double
checking 15 bool A check is going, and how far it is.
progress 16 HealthCheckProgress
last_judged 17 int32 How the last check ended: the items it judged, and those it couldn’t.
last_errors 18 string Repeated

Message: HealthCheckProgress

FQN: blitz.v1.HealthCheckProgress
How far a check going is.
Field Ordinal Type Label Description
item 1 string The item being judged (“kind/name”), its place, and the cost so far.
index 2 int32
total 3 int32
cost_usd 4 double

Message: HealthItem

FQN: blitz.v1.HealthItem
One agent, skill, rule, guardrail, eval, workflow or worker.
Field Ordinal Type Label Description
kind 1 string
name 2 string
path 3 string
detail 4 string
problem 5 string
flags 6 string Repeated uncovered, stale, unused, never_run, failing, disabled, off.
uses 7 int32 Runs, activations or decisions in the last 30 days; fired, a rule’s or guardrail’s that stopped, warned or revised.
fired 8 int32
runs 9 HealthRuns
evals 10 HealthEvals
daily 11 int32 Repeated Uses per day, as WorkspaceHealth.days.
verdict 12 HealthVerdict Its latest verdict, and its overall scores over time (oldest first).
history 13 double Repeated

Message: HealthRuns

FQN: blitz.v1.HealthRuns
A workflow's or a worker's runs in the last 30 days.
Field Ordinal Type Label Description
runs 1 int32
done 2 int32
failed 3 int32
stopped 4 int32
cost_usd 5 double
median_ms 6 int64
last 7 google.protobuf.Timestamp
failing_step 8 string

Message: HealthEvals

FQN: blitz.v1.HealthEvals
An agent's or an eval's latest eval results.
Field Ordinal Type Label Description
runs 1 int32
last 2 google.protobuf.Timestamp
passed 3 int32
cases 4 int32

Message: HealthVerdict

FQN: blitz.v1.HealthVerdict
The judge's verdict on an item.
Field Ordinal Type Label Description
model 1 string
at 2 google.protobuf.Timestamp
scores 3 HealthScore Repeated
overall 4 double
grade 5 string A–D.
summary 6 string
fixes 7 string Repeated
cost_usd 8 double
current 9 bool It’s for the item as it is now (not changed since).

Message: HealthScore

FQN: blitz.v1.HealthScore
One rubric line's score.
Field Ordinal Type Label Description
line 1 string
score 2 int32
reason 3 string

Message: HealthDay

FQN: blitz.v1.HealthDay
One day's runs.
Field Ordinal Type Label Description
date 1 string
done 2 int32
failed 3 int32
stopped 4 int32
cost_usd 5 double

Message: HealthSignal

FQN: blitz.v1.HealthSignal
A safety signal: the reviewer's denials, a rule's or a guardrail's decisions, by what they were about.
Field Ordinal Type Label Description
kind 1 string
about 2 string
count 3 int32
last 4 google.protobuf.Timestamp
detail 5 string

Message: GetWorkspaceHealthRequest

FQN: blitz.v1.GetWorkspaceHealthRequest
Request message for WorkspaceService.GetWorkspaceHealth.
Field Ordinal Type Label Description
workspace 1 string

Message: GetWorkspaceHealthResponse

FQN: blitz.v1.GetWorkspaceHealthResponse
Response message for WorkspaceService.GetWorkspaceHealth.
Field Ordinal Type Label Description
health 1 WorkspaceHealth

Message: WatchWorkspaceHealthRequest

FQN: blitz.v1.WatchWorkspaceHealthRequest
Request message for WorkspaceService.WatchWorkspaceHealth.
Field Ordinal Type Label Description
workspace 1 string

Message: WatchWorkspaceHealthResponse

FQN: blitz.v1.WatchWorkspaceHealthResponse
Response message for WorkspaceService.WatchWorkspaceHealth.
Field Ordinal Type Label Description
health 1 WorkspaceHealth

Message: HealthCheckScope

FQN: blitz.v1.HealthCheckScope
Which items a check judges: kinds, items ("kind/name"), or all; force re-judges unchanged ones.
Field Ordinal Type Label Description
kinds 1 string Repeated
items 2 string Repeated
force 3 bool

Message: EstimateHealthCheckRequest

FQN: blitz.v1.EstimateHealthCheckRequest
Request message for WorkspaceService.EstimateHealthCheck.
Field Ordinal Type Label Description
workspace 1 string
scope 2 HealthCheckScope

Message: EstimateHealthCheckResponse

FQN: blitz.v1.EstimateHealthCheckResponse
Response message for WorkspaceService.EstimateHealthCheck.
Field Ordinal Type Label Description
items 1 int32
cost_usd 2 double
priced 3 bool Every model is priced (else the cost is a floor).

Message: CheckWorkspaceHealthRequest

FQN: blitz.v1.CheckWorkspaceHealthRequest
Request message for WorkspaceService.CheckWorkspaceHealth.
Field Ordinal Type Label Description
workspace 1 string
scope 2 HealthCheckScope

Message: CheckWorkspaceHealthResponse

FQN: blitz.v1.CheckWorkspaceHealthResponse
Response message for WorkspaceService.CheckWorkspaceHealth: one item's verdict (or why it has none), then a last one with done.
Field Ordinal Type Label Description
item 1 string
index 2 int32
total 3 int32
verdict 4 HealthVerdict
error 5 string
cost_usd 6 double
done 7 bool
judged 8 int32

Message: StopHealthCheckRequest

FQN: blitz.v1.StopHealthCheckRequest
Request message for WorkspaceService.StopHealthCheck.
Field Ordinal Type Label Description
workspace 1 string

Message: StopHealthCheckResponse

FQN: blitz.v1.StopHealthCheckResponse
Response message for WorkspaceService.StopHealthCheck.
Field Ordinal Type Label Description

Message: StartHealthCheckRequest

FQN: blitz.v1.StartHealthCheckRequest
Request message for WorkspaceService.StartHealthCheck.
Field Ordinal Type Label Description
workspace 1 string
scope 2 HealthCheckScope

Message: StartHealthCheckResponse

FQN: blitz.v1.StartHealthCheckResponse
Response message for WorkspaceService.StartHealthCheck.
Field Ordinal Type Label Description

Message: ComposeSession

FQN: blitz.v1.ComposeSession
A composer conversation as it is.
Field Ordinal Type Label Description
id 1 string
kind 2 string
turns 3 ComposeTurn Repeated
asking 4 bool The composer’s last turn is a question waiting for an answer.
draft 5 ComposeDraft The latest draft (unset until there’s one).
cost_usd 6 double

Message: ComposeTurn

FQN: blitz.v1.ComposeTurn
One message of a composer conversation: the user's, or the composer's (a question with its suggested answers, or a draft's summary).
Field Ordinal Type Label Description
role 1 string
text 2 string
options 3 string Repeated

Message: ComposeDraft

FQN: blitz.v1.ComposeDraft
A component the composer wrote: its name, a summary, its file, what the kind's checks still find wrong, and for a workflow the workflow itself.
Field Ordinal Type Label Description
name 1 string
summary 2 string
file 3 string
problems 4 string Repeated
workflow 5 WorkflowFile

Message: StartComposeRequest

FQN: blitz.v1.StartComposeRequest
Request message for WorkspaceService.StartCompose.
Field Ordinal Type Label Description
workspace 1 string
kind 2 string
request 3 string What the user wants.
current 4 string The component being changed, as its file ("" for a new one).

Message: StartComposeResponse

FQN: blitz.v1.StartComposeResponse
Response message for WorkspaceService.StartCompose.
Field Ordinal Type Label Description
session 1 ComposeSession

Message: AnswerComposeRequest

FQN: blitz.v1.AnswerComposeRequest
Request message for WorkspaceService.AnswerCompose.
Field Ordinal Type Label Description
workspace 1 string
id 2 string
answer 3 string

Message: AnswerComposeResponse

FQN: blitz.v1.AnswerComposeResponse
Response message for WorkspaceService.AnswerCompose.
Field Ordinal Type Label Description
session 1 ComposeSession

Message: DropComposeRequest

FQN: blitz.v1.DropComposeRequest
Request message for WorkspaceService.DropCompose.
Field Ordinal Type Label Description
workspace 1 string
id 2 string

Message: DropComposeResponse

FQN: blitz.v1.DropComposeResponse
Response message for WorkspaceService.DropCompose.
Field Ordinal Type Label Description