fix(runtime): stop/restart d'agent visible robuste — kill réel, état stopped, relance froide (#196, QA verte)
Solidifie le cycle stop/restart d'un agent visible en cellule: - terminal/registry: kill effectif de la TUI native et de la CLI custom, arrêt idempotent du live runtime (PTY + structuré), distinction nette « agent stoppé » vs « pas de session ». - workstate + lifecycle: projection d'un état runtime explicite « stopped » (AgentRuntimeState: running/stopping/stopped/failedStart), réconcilié avec le live state; traitement des courses « agent not found ». - relance froide via freshStart: repart de zéro sans réattacher une session morte et recharge la configuration courante de l'agent (y compris changement de modèle). - contrat projeté côté adapters frontend (ports/domain/normalization/mock) pour la consommation UI future (#197/#198), sans surface UI ici. Tests QA verts: workstate_actions, orchestrator_service stop_agent, agent_lifecycle (reopen/fresh_start), workstate stopped runtime state, vitest adapter stop_live_agent.
This commit is contained in:
@ -378,6 +378,8 @@ export interface OpenTerminalOptions {
|
||||
* meaningful for {@link AgentGateway.launchAgent}; ignored for plain terminals.
|
||||
*/
|
||||
conversationId?: string;
|
||||
/** Ignore a previous conversation id and request a cold, clean launch. */
|
||||
freshStart?: boolean;
|
||||
/**
|
||||
* The layout leaf (node) hosting this launch. Drives the "one live session per
|
||||
* agent" invariant backend-side: launching an agent already running in a
|
||||
@ -400,6 +402,8 @@ export interface LiveAgent {
|
||||
sessionId: string;
|
||||
/** Runtime kind backing the live agent. */
|
||||
kind: "pty" | "structured";
|
||||
/** Runtime lifecycle state. Live agents are always running. */
|
||||
runtimeState?: AgentRuntimeState;
|
||||
}
|
||||
|
||||
/** Result returned when the backend stops a live agent. */
|
||||
@ -407,8 +411,15 @@ export interface StoppedLiveAgent {
|
||||
agentId: string;
|
||||
sessionId: string;
|
||||
kind: "pty" | "structured";
|
||||
runtimeState?: AgentRuntimeState;
|
||||
}
|
||||
|
||||
export type AgentRuntimeState =
|
||||
| "running"
|
||||
| "stopping"
|
||||
| "stopped"
|
||||
| "failedStart";
|
||||
|
||||
/**
|
||||
* A live terminal handle returned by {@link TerminalGateway.openTerminal}.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user