pub struct DaemonClient { /* private fields */ }Implementations§
Source§impl DaemonClient
impl DaemonClient
pub async fn connect(metadata: DaemonMetadata) -> Result<DaemonClient, Error>
Sourcepub fn daemon_pid(&self) -> u32
pub fn daemon_pid(&self) -> u32
The process this client is connected to.
Sourcepub async fn request(
&mut self,
action: DaemonAction,
) -> Result<DaemonReply, Error>
pub async fn request( &mut self, action: DaemonAction, ) -> Result<DaemonReply, Error>
Speak the daemon’s advertised dialect, not this build’s: management requests must reach daemons of any protocol version, and the frozen subset encodes identically across all of them.
pub async fn status(&mut self) -> Result<DaemonStatus, Error>
pub async fn web_access(&mut self) -> Result<WebViewerAccess, Error>
pub async fn subagent_options( &mut self, profile: String, model: Option<String>, config: Option<Config>, ) -> Result<SubagentOptions, Error>
pub async fn warm_profile_capabilities( &mut self, config: Config, ) -> Result<(), Error>
pub async fn recover_web_viewer( &mut self, action: WebViewerRecovery, ) -> Result<(), Error>
pub async fn inspect_web_listener( &mut self, ) -> Result<Vec<WebListenerProcess>, Error>
pub async fn list_workspaces(&mut self) -> Result<Vec<WorkspaceListing>, Error>
Sourcepub async fn refresh_quota(&mut self) -> Result<(), Error>
pub async fn refresh_quota(&mut self) -> Result<(), Error>
Ask the daemon to probe every profile that is not on hold. Returns when the daemon has accepted the request, not when the probes finish.
pub async fn rename_profile( &mut self, old_id: String, new_id: String, ) -> Result<(), Error>
pub async fn rename_target( &mut self, old_id: String, new_id: String, ) -> Result<(), Error>
pub async fn create_workspace( &mut self, name: String, ) -> Result<WorkspaceRecord, Error>
pub async fn rename_workspace( &mut self, workspace_id: String, name: String, ) -> Result<(), Error>
pub async fn touch_workspace( &mut self, workspace_id: String, ) -> Result<(), Error>
pub async fn cancel_workspace_close( &mut self, workspace_id: String, ) -> Result<(), Error>
pub async fn close_workspace( &mut self, workspace_id: String, ) -> Result<(), Error>
pub async fn delete_workspace( &mut self, workspace_id: String, ) -> Result<(), Error>
pub async fn attach(&mut self, client_id: String, pid: u32) -> Result<(), Error>
pub async fn detach(&mut self, client_id: String) -> Result<(), Error>
pub async fn persist_read_receipt( &mut self, client_id: String, workspace_id: String, session_id: String, through: u64, ) -> Result<u64, Error>
pub async fn persist_detached_session_state( &mut self, client_id: String, workspace_id: String, session_id: String, through: u64, owner_pid: u32, draft: DetachedSessionDraft, ) -> Result<(), Error>
pub async fn save_active_review( &mut self, session_id: String, review: StoredReview, ) -> Result<(), Error>
pub async fn clear_active_review( &mut self, session_id: String, ) -> Result<(), Error>
pub async fn save_workspace_pane_sizes( &mut self, workspace_id: String, sizes: PaneSizes, ) -> Result<(), Error>
pub async fn save_workspace_layout( &mut self, workspace_id: String, layout: ConversationLayout, ) -> Result<(), Error>
pub async fn persist_imported_session( &mut self, session: SessionRecord, ) -> Result<(), Error>
pub async fn set_session_title( &mut self, session_id: String, title: String, ) -> Result<String, Error>
pub async fn set_session_workspace( &mut self, session_id: String, workspace_id: String, ) -> Result<(), Error>
pub async fn set_session_container_settings( &mut self, session_id: String, cpus: Option<String>, memory: Option<String>, mounts: Vec<AdditionalMount>, mount_history: Vec<PathBuf>, ) -> Result<(), Error>
pub async fn set_session_acp_title( &mut self, session_id: String, title: Option<String>, ) -> Result<(), Error>
pub async fn mark_session_target_missing( &mut self, session_id: String, detail: String, updated_at: String, ) -> Result<Option<SessionState>, Error>
pub async fn checkpoint_session( &mut self, session_id: String, ) -> Result<CheckpointMetadata, Error>
Sourcepub async fn project_catalog(
&mut self,
refresh: bool,
retry: bool,
) -> Result<ProjectCatalogView, Error>
pub async fn project_catalog( &mut self, refresh: bool, retry: bool, ) -> Result<ProjectCatalogView, Error>
Search the user’s SessionWiki index, newest first when the query is empty and best match first otherwise. The reply carries the state of the index as well as the rows, so a caller can say the first build is still running.
pub async fn create_project( &mut self, sources: Vec<String>, ) -> Result<SavedProject, Error>
pub async fn wiki_search( &mut self, query: String, limit: usize, ) -> Result<WikiSearchPage, Error>
Sourcepub async fn session_text_search(
&mut self,
query: String,
) -> Result<Vec<SessionTextMatch>, Error>
pub async fn session_text_search( &mut self, query: String, ) -> Result<Vec<SessionTextMatch>, Error>
The live sessions whose user or agent messages contain query, and
which of the two matched. Answers from the SessionWiki index, so a very
new message can be missing until the next sync.
Sourcepub async fn wiki_brief(
&mut self,
wiki_id: String,
max_chars: usize,
) -> Result<String, Error>
pub async fn wiki_brief( &mut self, wiki_id: String, max_chars: usize, ) -> Result<String, Error>
The markdown briefing for one indexed session.
Sourcepub async fn wiki_hits(
&mut self,
wiki_id: String,
query: String,
context_messages: usize,
per_message_chars: usize,
) -> Result<Option<WikiHitTranscript>, Error>
pub async fn wiki_hits( &mut self, wiki_id: String, query: String, context_messages: usize, per_message_chars: usize, ) -> Result<Option<WikiHitTranscript>, Error>
The passages of one indexed session that match a query, each matching
message with context_messages neighbours on either side and its text
capped at per_message_chars. None when the index holds no session
with that id.
Sourcepub async fn wiki_session(
&mut self,
wiki_id: String,
) -> Result<Option<WikiSessionInfo>, Error>
pub async fn wiki_session( &mut self, wiki_id: String, ) -> Result<Option<WikiSessionInfo>, Error>
What the index knows about one session, or None when the index holds
no session with that id.
Sourcepub async fn wiki_restore(
&mut self,
request: WikiRestoreRequest,
) -> Result<RegisteredSession, Error>
pub async fn wiki_restore( &mut self, request: WikiRestoreRequest, ) -> Result<RegisteredSession, Error>
Start a new session carrying a hand-off compacted from an archived one. It answers like any other session start: the record exists and is provisioning, and the hand-off follows once the harness is ready.
pub async fn scan_recovery( &mut self, all_instances: bool, ) -> Result<RecoveryScan, Error>
pub async fn adopt_recovery( &mut self, session_id: String, target_id: String, profile: Option<String>, bundle: Option<String>, all_instances: bool, ) -> Result<(), Error>
pub async fn destroy_recovery( &mut self, session_id: String, target_id: String, confirmation: String, all_instances: bool, ) -> Result<(), Error>
pub async fn snapshot( &mut self, workspace_id: String, ) -> Result<WorkspaceSnapshot, Error>
pub async fn runtime_changes( &mut self, cursor: Option<RuntimeCursor>, wait: bool, ) -> Result<RuntimeFrame, Error>
pub async fn session_tail( &mut self, session_id: String, cursor: RuntimeCursor, ) -> Result<SessionTailReply, Error>
pub async fn resume_candidates(&mut self) -> Result<ResumeCandidates, Error>
pub async fn session_record( &mut self, session_id: String, ) -> Result<Option<SessionRecord>, Error>
pub async fn go_startup_session( &mut self, workspace_id: String, last_session_id: Option<String>, ) -> Result<Option<SessionRecord>, Error>
pub async fn submit_session_command( &mut self, session_id: String, command_id: String, command: RelayCommand, inherited_draft: Option<String>, ) -> Result<u64, Error>
Sourcepub async fn queue_startup_prompt(
&mut self,
session_id: String,
text: String,
inherited_draft: Option<String>,
) -> Result<(), Error>
pub async fn queue_startup_prompt( &mut self, session_id: String, text: String, inherited_draft: Option<String>, ) -> Result<(), Error>
Hand the daemon a prompt for a session that is still starting. The daemon replies as soon as the prompt is queued, not when it is delivered; delivery failures come back as a session notice.
Sourcepub async fn withdraw_startup_prompt(
&mut self,
session_id: String,
text: String,
) -> Result<bool, Error>
pub async fn withdraw_startup_prompt( &mut self, session_id: String, text: String, ) -> Result<bool, Error>
Take a prompt back from the daemon’s startup queue before delivery.
Ok(true) means it is withdrawn and will not be sent; Ok(false)
means delivery had already started, so it was sent. An error means the
daemon could not be asked, and the prompt may still be queued.
Sourcepub async fn start_turn_review(
&mut self,
session_id: String,
) -> Result<(), Error>
pub async fn start_turn_review( &mut self, session_id: String, ) -> Result<(), Error>
Ask the daemon to review the turn this session just finished.
The refusal is a sentence for a person – “prompts are queued”, “set [review] profile in config.toml” – so it travels as text rather than as a code every surface would have to translate.
pub async fn resolve_turn_review( &mut self, session_id: String, resolution: Resolution, ) -> Result<(), Error>
pub async fn reviewer_action( &mut self, session_id: String, role: Option<String>, action: ReviewerAction, ) -> Result<ReviewerOutcome, Error>
pub async fn sync_session(&mut self, session_id: String) -> Result<(), Error>
pub async fn respond_elicitation( &mut self, session_id: String, elicitation_id: String, response: ElicitationResponse, ) -> Result<(), Error>
pub async fn native_agent_history( &mut self, owner: String, child: String, before: Option<(u64, String)>, ) -> Result<NativeAgentHistoryPage, Error>
pub async fn stop_background_task( &mut self, session_id: String, background_task_id: String, ) -> Result<(), Error>
pub async fn suspend_session(&mut self, session_id: String) -> Result<(), Error>
pub async fn suspend_session_with_ack( &mut self, session_id: String, acknowledge_unpublished_work: bool, ) -> Result<(), Error>
pub async fn start_create_session( &mut self, request: CreateSessionRequest, ) -> Result<RegisteredSession, Error>
pub async fn wait_create_session( &mut self, session_id: String, ) -> Result<(), Error>
pub async fn resume_session( &mut self, request: ResumeSessionRequest, ) -> Result<(), Error>
pub async fn discard_since_checkpoint( &mut self, session_id: String, checkpoint: CheckpointMetadata, ) -> Result<(), Error>
pub async fn destroy_stopped_session( &mut self, session_id: String, delete_branch: bool, ) -> Result<(), Error>
pub async fn force_destroy_session( &mut self, session_id: String, delete_branch: bool, ) -> Result<(), Error>
pub async fn cancel_lifecycle( &mut self, session_id: String, ) -> Result<(), Error>
pub async fn recover_draft(&mut self, draft_id: String) -> Result<(), Error>
pub async fn stop(&mut self) -> Result<(), Error>
Source§impl DaemonClient
impl DaemonClient
pub async fn prepare_move_session( &mut self, selection: MoveSelection, ) -> Result<MovePreparation, Error>
pub async fn move_sources( &mut self, session_id: String, cleanup_operation_id: Option<String>, ) -> Result<Vec<RetainedMoveSource>, Error>
pub async fn move_session( &mut self, request: MoveSessionRequest, ) -> Result<MoveOutcome, Error>
Auto Trait Implementations§
impl !Freeze for DaemonClient
impl RefUnwindSafe for DaemonClient
impl Send for DaemonClient
impl Sync for DaemonClient
impl Unpin for DaemonClient
impl UnsafeUnpin for DaemonClient
impl UnwindSafe for DaemonClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more