Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

80 lines
2.5 KiB
TypeScript

import type { AgentToolCallVM } from "./agentToolCallVM";
export type AgentTaskSubAgentStatus =
| "running"
| "completed"
| "failed"
| "canceled";
// Live view of one delegated sub-agent thread (Codex collab child thread).
// The child thread's transcript rows are segregated out of the parent
// conversation; this VM is the parent-side surface that keeps the sub-agent
// perceivable while it runs.
export type AgentTaskSubAgentActivityKind = "message" | "reasoning" | "tool";
export interface AgentTaskSubAgentActivityVM {
kind: AgentTaskSubAgentActivityKind;
text: string;
atUnixMs: number | null;
}
export interface AgentTaskSubAgentVM {
childSessionId: string;
parentToolCallId: string;
status: AgentTaskSubAgentStatus;
// The sub-agent's own identity: its child thread name when known (daemon
// forwards child thread/name/updated as a subAgentName marker). Null until
// named - the view falls back to a localized numbered label, never the
// collab tool name.
name: string | null;
task: string | null;
laneIndex: number;
laneCount: number;
latestActivity: string | null;
latestActivityKind: AgentTaskSubAgentActivityKind | null;
// The latest canonical assistant message, preserved as complete Markdown
// while streaming and after settlement. It is never reduced to an activity
// snippet.
assistantMarkdown?: string | null;
// Chronological recent activity (markers excluded), capped; older entries
// are summarized by activityOmittedCount.
activityLog: readonly AgentTaskSubAgentActivityVM[];
activityOmittedCount: number;
// True while the spawn call is accepted but no child thread exists yet -
// codex queues spawns beyond its per-session concurrency cap.
queued?: boolean;
failureDetail: string | null;
startedAtUnixMs: number | null;
latestActivityAtUnixMs: number | null;
terminalAtUnixMs: number | null;
childSessions: readonly AgentTaskSubAgentVM[];
}
export interface AgentTaskStepVM {
id: string;
turnId: string;
name: string;
toolName: string | null;
status: string | null;
summary: string;
payload: Record<string, unknown> | null;
tool: AgentToolCallVM | null;
occurredAtUnixMs: number | null;
}
export interface AgentTaskItemVM {
kind: "task";
id: string;
turnId: string;
title: string;
status: string | null;
prompt?: string | null;
delegateSessionId?: string | null;
steps: AgentTaskStepVM[];
subAgents?: AgentTaskSubAgentVM[];
result?: string | null;
resultMarkdown?: string | null;
durationMs?: number | null;
occurredAtUnixMs: number | null;
}