| 1815 | } |
| 1816 | |
| 1817 | func (h *HostAPIHandler) submitPrompt( |
| 1818 | ctx context.Context, |
| 1819 | sessionID string, |
| 1820 | message string, |
| 1821 | ) (hostAPIPromptSubmission, error) { |
| 1822 | if h.sessions == nil { |
| 1823 | return hostAPIPromptSubmission{}, errors.New("extension: session manager is not configured") |
| 1824 | } |
| 1825 | |
| 1826 | lastSequence, err := h.latestSessionSequence(ctx, sessionID) |
| 1827 | if err != nil { |
| 1828 | return hostAPIPromptSubmission{}, err |
| 1829 | } |
| 1830 | |
| 1831 | promptCtx := context.WithoutCancel(ctx) |
| 1832 | eventsCh, err := h.sessions.Prompt(promptCtx, sessionID, message) |
| 1833 | if err != nil { |
| 1834 | return hostAPIPromptSubmission{}, err |
| 1835 | } |
| 1836 | drainAgentEvents(eventsCh) |
| 1837 | |
| 1838 | events, err := h.sessions.Events(ctx, sessionID, store.EventQuery{ |
| 1839 | AfterSequence: lastSequence, |
| 1840 | }) |
| 1841 | if err != nil { |
| 1842 | return hostAPIPromptSubmission{}, err |
| 1843 | } |
| 1844 | |
| 1845 | return promptSubmissionFromStoredEvents(events) |
| 1846 | } |
| 1847 | |
| 1848 | func promptSubmissionFromStoredEvents(events []store.SessionEvent) (hostAPIPromptSubmission, error) { |
| 1849 | turnID := promptTurnIDFromStoredEvents(events) |