@@ -8,9 +8,12 @@ import (
88 "charm.land/bubbles/v2/key"
99 tea "charm.land/bubbletea/v2"
1010 "charm.land/lipgloss/v2"
11+
12+ "github.com/charmbracelet/crush/internal/agent"
1113 "github.com/charmbracelet/crush/internal/config"
1214 "github.com/charmbracelet/crush/internal/home"
1315 "github.com/charmbracelet/crush/internal/ui/common"
16+ "github.com/charmbracelet/crush/internal/uiutil"
1417)
1518
1619// markProjectInitialized marks the current project as initialized in the config.
@@ -44,12 +47,22 @@ func (m *UI) updateInitializeView(msg tea.KeyPressMsg) (cmds []tea.Cmd) {
4447
4548// initializeProject starts project initialization and transitions to the landing view.
4649func (m *UI) initializeProject() tea.Cmd {
47− // TODO: initialize the project
48− // for now we just go to the landing page
49− m.state = uiLanding
50− m.focus = uiFocusEditor
51− // TODO: actually send a message to the agent
52− return m.markProjectInitialized
50+ // clear the session
51+ m.newSession()
52+ cfg := m.com.Config()
53+ var cmds []tea.Cmd
54+
55+ initialize := func() tea.Msg {
56+ initPrompt, err := agent.InitializePrompt(*cfg)
57+ if err != nil {
58+ return uiutil.InfoMsg{Type: uiutil.InfoTypeError, Msg: err.Error()}
59+ }
60+ return sendMessageMsg{Content: initPrompt}
61+ }
62+ // Mark the project as initialized
63+ cmds = append(cmds, initialize, m.markProjectInitialized)
64+
65+ return tea.Sequence(cmds...)
5366}
5467
5568// skipInitializeProject skips project initialization and transitions to the landing view.