SubagentServices class final

The subagent/task complex the builder assembles when the profile wires HostCapability.subagents (issue #1079, slice 3): the messaging fabric, the SubagentManager, the heartbeat and the task/monitoring tool surface become builder-owned, capability-gated wiring. The host provides only what is genuinely shell glue: session persistence, the wake launcher, heartbeat delivery, child-session minting. Absent bundle = the capability run-narrows off with a named reason; the complex never half-wires.

Constructors

SubagentServices({String? homeDir, String? machineName, A2aConfig? a2a, MailboxWakeLauncher? wakeProcess, SubagentRegistrySink? registrySink, SubagentRegistrySource? registrySource, required void notifyHeartbeat(String digest), int heartbeatMinutes()?, int stallMinutes()?, ModelRolesResolver? rolesResolver, CompactionEngine? compactionEngine, bool misuseBreaker = true, Future<Session> childSessionFactory(String parentId, String childId)?, SessionIoRetryConfig? sessionIoRetry})
const

Properties

a2a → A2aConfig?
The parsed a2a: config section (null = no remote agents).
final
childSessionFactory → Future<Session> Function(String parentId, String childId)?
Real JSONL child sessions, created at child COMPLETION (fast register keeps the steering race away; the transcript lands when the child finishes).
final
compactionEngine → CompactionEngine?
final
hashCode → int
The hash code for this object.
no setterinherited
heartbeatMinutes → int Function()?
final
homeDir → String?
Fabric + manager inputs: the user home (cwd-tag shortening, fabric root context) and this host's machine name (name@machine addressing, issue #27 phase 2/3).
final
machineName → String?
final
misuseBreaker → bool
agent.misuseBreaker covers children too (issue #862).
final
notifyHeartbeat → void Function(String digest)
Heartbeat delivery sink — required: a heartbeat without a delivery path would silently discard digests. Threshold getters stay live so a config rewrite applies at the next tick without a restart (E6).
final
registrySink → SubagentRegistrySink?
Registry persistence into the parent session + rehydration at boot (the subagent_registry custom records, issue #488 AC2).
final
registrySource → SubagentRegistrySource?
final
rolesResolver → ModelRolesResolver?
Task children: role resolution (agent types with a modelRole) and the host's compaction choice (live settings override, else config — issue #439).
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sessionIoRetry → SessionIoRetryConfig?
Transient-ENOENT retry for the child-session reopen (issue #427); the builder derives the JSONL opener from it.
final
stallMinutes → int Function()?
final
wakeProcess → MailboxWakeLauncher?
Detached wake launcher for asleep mailboxes (the CLI spawns its own binary with --session <name>). Null keeps the "how to start it" hint path.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited