feat(core): add session form service (#34855)

This commit is contained in:
Aiden Cline 2026-07-02 17:15:18 -05:00 committed by GitHub
commit 7ebd344fa2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
67 changed files with 7862 additions and 5223 deletions

View file

@ -1,6 +1,7 @@
import type { V2Event } from "@opencode-ai/sdk/v2"
import type { TuiAttentionSoundName, TuiPlugin, TuiPluginApi } from "@opencode-ai/plugin/tui"
import type { BuiltinTuiPlugin } from "../builtins"
import { isQuestionForm } from "../../util/question-form"
const id = "internal:notifications"
@ -46,6 +47,21 @@ const tui: TuiPlugin = async (api) => {
questions.delete(event.data.requestID)
})
api.event.on("form.created", (event) => {
if (!isQuestionForm(event.data.form)) return
if (questions.has(event.data.form.id)) return
questions.add(event.data.form.id)
notify(api, event.data.form.sessionID, "Question needs input", "question")
})
api.event.on("form.replied", (event) => {
questions.delete(event.data.id)
})
api.event.on("form.cancelled", (event) => {
questions.delete(event.data.id)
})
api.event.on("permission.asked", (event) => {
if (permissions.has(event.data.id)) return
permissions.add(event.data.id)