pub enum HarnessOperatorRequestV1 {
Show 74 variants
MonitorGet {
run_id: HarnessRunId,
},
TimelineRead {
run_id: HarnessRunId,
after_sequence: Option<u64>,
limit: u16,
},
TasksList {
after_task_id: Option<HarnessTaskId>,
state: Option<HarnessTaskStateV1>,
parent_task_id: Option<HarnessTaskId>,
limit: u16,
},
TaskGet {
task_id: HarnessTaskId,
},
TaskOperations {
task_id: HarnessTaskId,
limit: u16,
},
RunsList {
task_id: Option<HarnessTaskId>,
after_run_id: Option<HarnessRunId>,
lifecycle: Option<HarnessRunLifecycleV1>,
parent_run_id: Option<HarnessRunId>,
limit: u16,
},
RunGet {
run_id: HarnessRunId,
},
RunCorrelationGet {
run_id: HarnessRunId,
},
RunTransferGet {
run_id: HarnessRunId,
},
ReverseAttributionGet {
subject: HarnessReverseAttributionSubjectV1,
},
ObserveRunContextSource {
run_id: HarnessRunId,
},
InspectRunWorkspace {
run_id: HarnessRunId,
},
ReadRunWorkspaceFile {
run_id: HarnessRunId,
path: HarnessRepositoryPathV1,
},
ReadRunGitHistory {
run_id: HarnessRunId,
path: Option<HarnessRepositoryPathV1>,
before: Option<HarnessGitObjectIdV1>,
limit: u16,
},
ReadRunGitDiff {
run_id: HarnessRunId,
mode: HarnessGitDiffModeV1,
path: Option<HarnessRepositoryPathV1>,
},
InspectNodeWorkspace {
node_id: String,
workspace_id: String,
},
ReadNodeWorkspaceFile {
node_id: String,
workspace_id: String,
path: HarnessRepositoryPathV1,
},
ReadNodeGitHistory {
node_id: String,
workspace_id: String,
path: Option<HarnessRepositoryPathV1>,
before: Option<HarnessGitObjectIdV1>,
limit: u16,
},
ReadNodeGitDiff {
node_id: String,
workspace_id: String,
mode: HarnessGitDiffModeV1,
path: Option<HarnessRepositoryPathV1>,
},
WriteNodeWorkspaceFile {
node_id: String,
workspace_id: String,
path: HarnessRepositoryPathV1,
content: String,
expected_revision: HarnessWorkspaceFileRevisionV1,
},
CreateNodeWorkspaceFile {
node_id: String,
workspace_id: String,
path: HarnessRepositoryPathV1,
},
CreateNodeWorkspaceDirectory {
node_id: String,
workspace_id: String,
path: HarnessRepositoryPathV1,
},
LaunchPlansList {
after_plan_id: Option<HarnessSelectorV1>,
limit: u16,
},
TaskExecutionSpecGet {
task_id: HarnessTaskId,
},
TaskLaunchOptionsGet {
task_id: HarnessTaskId,
provider: Option<HarnessSelectorV1>,
workspace: Option<HarnessSelectorV1>,
plan_id: Option<HarnessSelectorV1>,
after: Option<HarnessSelectorV1>,
},
RuntimeInventoryList {
after_node_id: Option<String>,
limit: u16,
},
TerminalRead {
session: HarnessRuntimeSessionAddressV1,
after_sequence: Option<u64>,
limit: u16,
},
SpawnSession {
node_id: String,
workspace_id: String,
provider: String,
provider_profile: String,
mode: HarnessExecutionModeV1,
terminal_size: HarnessRuntimeTerminalSizeV1,
approval_level: Option<HarnessApprovalLevelV1>,
},
WriteSessionInput {
session: HarnessRuntimeSessionAddressV1,
text: String,
},
PromptSession {
session: HarnessRuntimeSessionAddressV1,
text: String,
},
ResizeSession {
session: HarnessRuntimeSessionAddressV1,
terminal_size: HarnessRuntimeTerminalSizeV1,
},
StopSession {
session: HarnessRuntimeSessionAddressV1,
force: bool,
},
ControlSession {
session: HarnessRuntimeSessionAddressV1,
control: HarnessTerminalControlV1,
},
WriteSessionBytes {
session: HarnessRuntimeSessionAddressV1,
bytes: Vec<u8>,
},
PasteSession {
session: HarnessRuntimeSessionAddressV1,
text: String,
},
RemoveSession {
session: HarnessRuntimeSessionAddressV1,
},
ResumeSession {
session: HarnessRuntimeSessionAddressV1,
terminal_size: HarnessRuntimeTerminalSizeV1,
},
ResolveInteraction {
session: HarnessRuntimeSessionAddressV1,
correlation_id: String,
response: HarnessProviderInteractionResponseV1,
},
SetSessionMode {
session: HarnessRuntimeSessionAddressV1,
mode_id: String,
},
SetSessionConfigOption {
session: HarnessRuntimeSessionAddressV1,
option_id: String,
value_json: String,
},
SetSessionModel {
session: HarnessRuntimeSessionAddressV1,
model_id: String,
},
CatalogNativeSessions {
route: HarnessNativeSessionRouteV1,
limit: u16,
},
PageNativeSessions {
route: HarnessNativeSessionRouteV1,
window: HarnessNativeSessionCatalogWindowV1,
catalog_revision: u64,
recent_cutoff_unix_ms: u64,
after_selection_id: Option<String>,
limit: u16,
},
PreviewNativeSession {
selection: HarnessNativeSessionSelectionV1,
message_limit: u16,
},
PreviewSessionRecord {
node_id: String,
record_id: String,
message_limit: u16,
},
ResumeSessionRecord {
node_id: String,
record_id: String,
terminal_size: HarnessRuntimeTerminalSizeV1,
initial_prompt: Option<String>,
},
RenameSessionRecord {
node_id: String,
record_id: String,
display_name: String,
},
SetSessionTask {
node_id: String,
record_id: String,
expected_revision: u64,
target: HarnessSessionTaskTargetV1,
},
ForgetSessionRecord {
node_id: String,
record_id: String,
},
IndexProviderSession {
node_id: String,
workspace_id: String,
provider: String,
identity: HarnessProviderSessionIdentityV1,
display_name: String,
},
IndexNativeSession {
selection: HarnessNativeSessionSelectionV1,
display_name: String,
},
CreateTask {
request: HarnessCreateTaskRequestV1,
},
ReplaceTask {
request: HarnessReplaceTaskRequestV1,
},
MoveTask {
request: HarnessMoveTaskRequestV1,
},
CancelTask {
request: HarnessCancelTaskRequestV1,
},
RetryTask {
request: HarnessRetryTaskRequestV1,
},
ScheduleNext {
request: HarnessScheduleNextRequestV1,
},
ReplaceTaskExecutionSpec {
request: HarnessReplaceTaskExecutionSpecRequestV1,
},
StartTask {
request: HarnessStartTaskRequestV1,
},
ReplaceTaskExecutionSpecV2 {
request: HarnessReplaceTaskExecutionSpecRequestV2,
},
StartTaskV2 {
request: HarnessStartTaskRequestV2,
},
MintHarnessMcpGrant {
request: HarnessStartTaskRequestV2,
},
SubmitIntent {
intent: HarnessOperatorIntentV1,
},
BrowseHostDirectories {
node_id: String,
directory: Option<HarnessHostPathV1>,
after: Option<HarnessHostPathV1>,
},
RegisterWorkspace {
node_id: String,
workspace_id: String,
root: HarnessHostPathV1,
},
UnregisterWorkspace {
node_id: String,
workspace_id: String,
},
CreateStandaloneWorkspace {
node_id: String,
workspace_id: String,
root: HarnessHostPathV1,
initial_branch: Option<String>,
},
CreateWorktree {
node_id: String,
source_workspace_id: String,
workspace_id: String,
target_root: HarnessHostPathV1,
branch: String,
base: Option<String>,
},
RemoveWorktree {
node_id: String,
source_workspace_id: String,
target_root: HarnessHostPathV1,
},
ExportContextPack {
session: HarnessRuntimeSessionAddressV1,
},
ForgetContextPack {
node_id: String,
context_id: HarnessSelectorV1,
},
SubscribeEvents {},
SubscribeTerminal {
sessions: Vec<HarnessRuntimeSessionAddressV1>,
},
SubscribeAgentStream {
sessions: Vec<HarnessRuntimeSessionAddressV1>,
},
}Variants§
MonitorGet
Fields
run_id: HarnessRunIdTimelineRead
TasksList
Fields
after_task_id: Option<HarnessTaskId>state: Option<HarnessTaskStateV1>parent_task_id: Option<HarnessTaskId>“What did this task spawn”: restricts the page to tasks whose
own parent_task_id equals this one – direct children only,
never deeper descendants. Additive over the original bare
{ after_task_id, state, limit } shape (#[serde(default)]
keeps an older caller decoding), mirrors HarnessReadRequestV1:: TasksList’s own addition of the same filter.
TaskGet
Fields
task_id: HarnessTaskIdTaskOperations
D5, Slice D: the operator’s own per-task operations ledger –
HarnessEngine::operations_for_task’s bounded, newest-first page,
with the raw HarnessActorV1 (the operator is already trusted with
every other raw identity this wire exposes; the agent side never
sees this, only the category – see HarnessOperationLedgerEntryV1’s
own doc comment).
RunsList
Fields
task_id: Option<HarnessTaskId>after_run_id: Option<HarnessRunId>lifecycle: Option<HarnessRunLifecycleV1>parent_run_id: Option<HarnessRunId>“What did this run spawn”: restricts the page to runs whose own
parent_run_id equals this one. Additive (#[serde(default)]),
mirrors HarnessReadRequestV1::RunsList’s own addition.
RunGet
Fields
run_id: HarnessRunIdRunCorrelationGet
Fields
run_id: HarnessRunIdRunTransferGet
Fields
run_id: HarnessRunIdReverseAttributionGet
Fields
subject: HarnessReverseAttributionSubjectV1ObserveRunContextSource
Fields
run_id: HarnessRunIdInspectRunWorkspace
Fields
run_id: HarnessRunIdReadRunWorkspaceFile
ReadRunGitHistory
Fields
run_id: HarnessRunIdpath: Option<HarnessRepositoryPathV1>before: Option<HarnessGitObjectIdV1>ReadRunGitDiff
InspectNodeWorkspace
ReadNodeWorkspaceFile
ReadNodeGitHistory
ReadNodeGitDiff
WriteNodeWorkspaceFile
CreateNodeWorkspaceFile
CreateNodeWorkspaceDirectory
LaunchPlansList
TaskExecutionSpecGet
Fields
task_id: HarnessTaskIdTaskLaunchOptionsGet
provider/workspace/plan_id filter the derived plan catalogue,
after pages it (same idiom as LaunchPlansList’s after_plan_id):
the catalogue itself has no cap (see HarnessTaskLaunchOptionsV1’s
own doc comment), only a page of it does. All four are additive over
the original bare { task_id } shape – #[serde(default)] so an
older caller that only ever sent task_id keeps deserializing.
Fields
task_id: HarnessTaskIdprovider: Option<HarnessSelectorV1>workspace: Option<HarnessSelectorV1>plan_id: Option<HarnessSelectorV1>after: Option<HarnessSelectorV1>RuntimeInventoryList
TerminalRead
SpawnSession
Fields
mode: HarnessExecutionModeV1terminal_size: HarnessRuntimeTerminalSizeV1approval_level: Option<HarnessApprovalLevelV1>WriteSessionInput
PromptSession
ResizeSession
StopSession
ControlSession
WriteSessionBytes
PasteSession
RemoveSession
Fields
session: HarnessRuntimeSessionAddressV1ResumeSession
ResolveInteraction
SetSessionMode
SetSessionConfigOption
SetSessionModel
CatalogNativeSessions
PageNativeSessions
Fields
route: HarnessNativeSessionRouteV1PreviewNativeSession
PreviewSessionRecord
ResumeSessionRecord
Fields
terminal_size: HarnessRuntimeTerminalSizeV1RenameSessionRecord
SetSessionTask
ForgetSessionRecord
IndexProviderSession
Fields
identity: HarnessProviderSessionIdentityV1IndexNativeSession
CreateTask
Fields
request: HarnessCreateTaskRequestV1ReplaceTask
Fields
request: HarnessReplaceTaskRequestV1MoveTask
Fields
request: HarnessMoveTaskRequestV1CancelTask
Fields
request: HarnessCancelTaskRequestV1RetryTask
Fields
request: HarnessRetryTaskRequestV1ScheduleNext
Fields
request: HarnessScheduleNextRequestV1ReplaceTaskExecutionSpec
Fields
StartTask
Fields
request: HarnessStartTaskRequestV1ReplaceTaskExecutionSpecV2
Fields
StartTaskV2
Fields
request: HarnessStartTaskRequestV2MintHarnessMcpGrant
Starts the issued task the same way StartTaskV2 does, then mints
the dispatch’s default harness-MCP grant through
runtime::resolve_harness_mcp_grant (the production mint, not a test
helper). Refused unless the issued plan is GrantBound with an
Operator grant policy. The reply is the grant id and revision; it
does not carry a read credential.
Fields
request: HarnessStartTaskRequestV2SubmitIntent
Fields
intent: HarnessOperatorIntentV1BrowseHostDirectories
RegisterWorkspace
UnregisterWorkspace
CreateStandaloneWorkspace
CreateWorktree
Fields
target_root: HarnessHostPathV1RemoveWorktree
ExportContextPack
Fields
session: HarnessRuntimeSessionAddressV1ForgetContextPack
SubscribeEvents
SubscribeTerminal
Fields
sessions: Vec<HarnessRuntimeSessionAddressV1>SubscribeAgentStream
Fields
sessions: Vec<HarnessRuntimeSessionAddressV1>