| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import type { E2EWindow } from "./terminal"
- export type PromptProbeState = {
- popover: "at" | "slash" | null
- slash: {
- active: string | null
- ids: string[]
- }
- selected: string | null
- selects: number
- }
- export type PromptSendState = {
- started: number
- count: number
- sessionID?: string
- directory?: string
- }
- export const promptEnabled = () => {
- if (typeof window === "undefined") return false
- return (window as E2EWindow).__opencode_e2e?.prompt?.enabled === true
- }
- const root = () => {
- if (!promptEnabled()) return
- return (window as E2EWindow).__opencode_e2e?.prompt
- }
- export const promptProbe = {
- set(input: Omit<PromptProbeState, "selected" | "selects">) {
- const state = root()
- if (!state) return
- state.current = {
- popover: input.popover,
- slash: {
- active: input.slash.active,
- ids: [...input.slash.ids],
- },
- selected: state.current?.selected ?? null,
- selects: state.current?.selects ?? 0,
- }
- },
- select(id: string) {
- const state = root()
- if (!state) return
- const prev = state.current
- state.current = {
- popover: prev?.popover ?? null,
- slash: {
- active: prev?.slash.active ?? null,
- ids: [...(prev?.slash.ids ?? [])],
- },
- selected: id,
- selects: (prev?.selects ?? 0) + 1,
- }
- },
- clear() {
- const state = root()
- if (!state) return
- state.current = undefined
- },
- start() {
- const state = root()
- if (!state) return
- state.sent = {
- started: (state.sent?.started ?? 0) + 1,
- count: state.sent?.count ?? 0,
- sessionID: state.sent?.sessionID,
- directory: state.sent?.directory,
- }
- },
- submit(input: { sessionID: string; directory: string }) {
- const state = root()
- if (!state) return
- state.sent = {
- started: state.sent?.started ?? 0,
- count: (state.sent?.count ?? 0) + 1,
- sessionID: input.sessionID,
- directory: input.directory,
- }
- },
- }
|