"time"
)
-// newTurnLoop returns the loop of agent with its memory and its subagents. Its
-// calls go through client, and notify gets each event. The clock gives the date
-// of a turn.
-func newTurnLoop(agent *Agent, memory *Memory, subagents *Subagents, client ChainClient, clock func() time.Time, notify func(Event)) (*TurnLoop, error) {
+// newTurnLoop returns the loop of agent with its memory, its subagents, and the
+// WhatsApp link of its tools. Its calls go through client, and notify gets each
+// event. The clock gives the date of a turn.
+func newTurnLoop(agent *Agent, memory *Memory, subagents *Subagents, whatsapp *WhatsApp, client ChainClient, clock func() time.Time, notify func(Event)) (*TurnLoop, error) {
layout, err := loadViewLayout(filepath.Join(agent.dir, viewLayoutFileName))
if err != nil {
return nil, err
chat: memory,
subagents: subagents,
runs: l.runs,
+ whatsapp: whatsapp,
workdir: agent.config.Workdir,
}