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@machineaddressing, issue #27 phase 2/3).final - machineName → String?
-
final
- misuseBreaker → bool
-
agent.misuseBreakercovers 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_registrycustom 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