// Would be a Stream<string>
const agentLoop = Effect.gen(function*() {
while (true) {
const plan = yield* getPlan()
// Emit message
const queries = yield* getQueries(plan)
const crawlResults = yield* Effect.all(
queries.map((query) =>
crawlSite(query).pipe(
Effect.tap(() => {
// Emit message
}),
Effect.flatMap((result) => summarizeSite(result)),
Effect.tap(() => {
// Emit message
})
)
)
)
}
})
// Would be a Stream<string>
const agentLoop = Effect.gen(function*() {
while (true) {
const plan = yield* getPlan()
// Emit message
const queries = yield* getQueries(plan)
const crawlResults = yield* Effect.all(
queries.map((query) =>
crawlSite(query).pipe(
Effect.tap(() => {
// Emit message
}),
Effect.flatMap((result) => summarizeSite(result)),
Effect.tap(() => {
// Emit message
})
)
)
)
}
})