refactor: split onboarding view

This commit is contained in:
Peter Steinberger
2025-12-24 19:29:27 +01:00
parent 01719b02e2
commit f44014ff00
9 changed files with 1436 additions and 1409 deletions

View File

@@ -0,0 +1,26 @@
import Foundation
extension OnboardingView {
func maybeKickoffOnboardingChat(for pageIndex: Int) {
guard pageIndex == self.onboardingChatPageIndex else { return }
guard self.needsBootstrap else { return }
guard !self.didAutoKickoff else { return }
self.didAutoKickoff = true
Task { @MainActor in
for _ in 0..<20 {
if !self.onboardingChatModel.isLoading { break }
try? await Task.sleep(nanoseconds: 200_000_000)
}
guard self.onboardingChatModel.messages.isEmpty else { return }
let kickoff =
"Hi! I just installed Clawdis and youre my brandnew agent. " +
"Please start the firstrun ritual from BOOTSTRAP.md, ask one question at a time, " +
"and before we talk about WhatsApp/Telegram, visit soul.md with me to craft SOUL.md: " +
"ask what matters to me and how you should be. Then guide me through choosing " +
"how we should talk (webonly, WhatsApp, or Telegram)."
self.onboardingChatModel.input = kickoff
self.onboardingChatModel.send()
}
}
}