feat: unwrap cli-tui namespaces to flat exports + barrel (#22759)
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import { render, TimeToFirstDraw, useKeyboard, useRenderer, useTerminalDimensions } from "@opentui/solid"
|
import { render, TimeToFirstDraw, useKeyboard, useRenderer, useTerminalDimensions } from "@opentui/solid"
|
||||||
import { Clipboard } from "@tui/util/clipboard"
|
import * as Clipboard from "@tui/util/clipboard"
|
||||||
import { Selection } from "@tui/util/selection"
|
import * as Selection from "@tui/util/selection"
|
||||||
import { Terminal } from "@tui/util/terminal"
|
import * as Terminal from "@tui/util/terminal"
|
||||||
import { createCliRenderer, MouseButton, type CliRendererConfig } from "@opentui/core"
|
import { createCliRenderer, MouseButton, type CliRendererConfig } from "@opentui/core"
|
||||||
import { RouteProvider, useRoute } from "@tui/context/route"
|
import { RouteProvider, useRoute } from "@tui/context/route"
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { TextAttributes } from "@opentui/core"
|
|||||||
import type { ProviderAuthAuthorization, ProviderAuthMethod } from "@opencode-ai/sdk/v2"
|
import type { ProviderAuthAuthorization, ProviderAuthMethod } from "@opencode-ai/sdk/v2"
|
||||||
import { DialogModel } from "./dialog-model"
|
import { DialogModel } from "./dialog-model"
|
||||||
import { useKeyboard } from "@opentui/solid"
|
import { useKeyboard } from "@opentui/solid"
|
||||||
import { Clipboard } from "@tui/util/clipboard"
|
import * as Clipboard from "@tui/util/clipboard"
|
||||||
import { useToast } from "../ui/toast"
|
import { useToast } from "../ui/toast"
|
||||||
import { isConsoleManagedProvider } from "@tui/util/provider-origin"
|
import { isConsoleManagedProvider } from "@tui/util/provider-origin"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { TextAttributes } from "@opentui/core"
|
import { TextAttributes } from "@opentui/core"
|
||||||
import { useKeyboard, useRenderer, useTerminalDimensions } from "@opentui/solid"
|
import { useKeyboard, useRenderer, useTerminalDimensions } from "@opentui/solid"
|
||||||
import { Clipboard } from "@tui/util/clipboard"
|
import * as Clipboard from "@tui/util/clipboard"
|
||||||
import { createSignal } from "solid-js"
|
import { createSignal } from "solid-js"
|
||||||
import { Installation } from "@/installation"
|
import { Installation } from "@/installation"
|
||||||
import { win32FlushInputBuffer } from "../win32"
|
import { win32FlushInputBuffer } from "../win32"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { BoxRenderable, MouseButton, MouseEvent, RGBA, TextAttributes } from "@opentui/core"
|
import { BoxRenderable, MouseButton, MouseEvent, RGBA, TextAttributes } from "@opentui/core"
|
||||||
import { For, createMemo, createSignal, onCleanup, type JSX } from "solid-js"
|
import { For, createMemo, createSignal, onCleanup, type JSX } from "solid-js"
|
||||||
import { useTheme, tint } from "@tui/context/theme"
|
import { useTheme, tint } from "@tui/context/theme"
|
||||||
import { Sound } from "@tui/util/sound"
|
import * as Sound from "@tui/util/sound"
|
||||||
import { logo } from "@/cli/logo"
|
import { logo } from "@/cli/logo"
|
||||||
|
|
||||||
// Shadow markers (rendered chars in parens):
|
// Shadow markers (rendered chars in parens):
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ import { DialogStash } from "../dialog-stash"
|
|||||||
import { type AutocompleteRef, Autocomplete } from "./autocomplete"
|
import { type AutocompleteRef, Autocomplete } from "./autocomplete"
|
||||||
import { useCommandDialog } from "../dialog-command"
|
import { useCommandDialog } from "../dialog-command"
|
||||||
import { useRenderer, type JSX } from "@opentui/solid"
|
import { useRenderer, type JSX } from "@opentui/solid"
|
||||||
import { Editor } from "@tui/util/editor"
|
import * as Editor from "@tui/util/editor"
|
||||||
import { useExit } from "../../context/exit"
|
import { useExit } from "../../context/exit"
|
||||||
import { Clipboard } from "../../util/clipboard"
|
import * as Clipboard from "../../util/clipboard"
|
||||||
import type { AssistantMessage, FilePart, UserMessage } from "@opencode-ai/sdk/v2"
|
import type { AssistantMessage, FilePart, UserMessage } from "@opencode-ai/sdk/v2"
|
||||||
import { TuiEvent } from "../../event"
|
import { TuiEvent } from "../../event"
|
||||||
import { iife } from "@/util/iife"
|
import { iife } from "@/util/iife"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { useSync } from "@tui/context/sync"
|
|||||||
import { DialogSelect } from "@tui/ui/dialog-select"
|
import { DialogSelect } from "@tui/ui/dialog-select"
|
||||||
import { useSDK } from "@tui/context/sdk"
|
import { useSDK } from "@tui/context/sdk"
|
||||||
import { useRoute } from "@tui/context/route"
|
import { useRoute } from "@tui/context/route"
|
||||||
import { Clipboard } from "@tui/util/clipboard"
|
import * as Clipboard from "@tui/util/clipboard"
|
||||||
import type { PromptInfo } from "@tui/component/prompt/history"
|
import type { PromptInfo } from "@tui/component/prompt/history"
|
||||||
import { strip } from "@tui/component/prompt/part"
|
import { strip } from "@tui/component/prompt/part"
|
||||||
|
|
||||||
|
|||||||
@@ -66,10 +66,10 @@ import { SubagentFooter } from "./subagent-footer.tsx"
|
|||||||
import { Flag } from "@/flag/flag"
|
import { Flag } from "@/flag/flag"
|
||||||
import { LANGUAGE_EXTENSIONS } from "@/lsp/language"
|
import { LANGUAGE_EXTENSIONS } from "@/lsp/language"
|
||||||
import parsers from "../../../../../../parsers-config.ts"
|
import parsers from "../../../../../../parsers-config.ts"
|
||||||
import { Clipboard } from "../../util/clipboard"
|
import * as Clipboard from "../../util/clipboard"
|
||||||
import { Toast, useToast } from "../../ui/toast"
|
import { Toast, useToast } from "../../ui/toast"
|
||||||
import { useKV } from "../../context/kv.tsx"
|
import { useKV } from "../../context/kv.tsx"
|
||||||
import { Editor } from "../../util/editor"
|
import * as Editor from "../../util/editor"
|
||||||
import stripAnsi from "strip-ansi"
|
import stripAnsi from "strip-ansi"
|
||||||
import { usePromptRef } from "../../context/prompt"
|
import { usePromptRef } from "../../context/prompt"
|
||||||
import { useExit } from "../../context/exit"
|
import { useExit } from "../../context/exit"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { MouseButton, Renderable, RGBA } from "@opentui/core"
|
|||||||
import { createStore } from "solid-js/store"
|
import { createStore } from "solid-js/store"
|
||||||
import { useToast } from "./toast"
|
import { useToast } from "./toast"
|
||||||
import { Flag } from "@/flag/flag"
|
import { Flag } from "@/flag/flag"
|
||||||
import { Selection } from "@tui/util/selection"
|
import * as Selection from "@tui/util/selection"
|
||||||
|
|
||||||
export function Dialog(
|
export function Dialog(
|
||||||
props: ParentProps<{
|
props: ParentProps<{
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ function writeOsc52(text: string): void {
|
|||||||
process.stdout.write(sequence)
|
process.stdout.write(sequence)
|
||||||
}
|
}
|
||||||
|
|
||||||
export namespace Clipboard {
|
|
||||||
export interface Content {
|
export interface Content {
|
||||||
data: string
|
data: string
|
||||||
mime: string
|
mime: string
|
||||||
@@ -189,4 +188,3 @@ export namespace Clipboard {
|
|||||||
writeOsc52(text)
|
writeOsc52(text)
|
||||||
await getCopyMethod()(text)
|
await getCopyMethod()(text)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { CliRenderer } from "@opentui/core"
|
|||||||
import { Filesystem } from "@/util"
|
import { Filesystem } from "@/util"
|
||||||
import { Process } from "@/util"
|
import { Process } from "@/util"
|
||||||
|
|
||||||
export namespace Editor {
|
|
||||||
export async function open(opts: { value: string; renderer: CliRenderer }): Promise<string | undefined> {
|
export async function open(opts: { value: string; renderer: CliRenderer }): Promise<string | undefined> {
|
||||||
const editor = process.env["VISUAL"] || process.env["EDITOR"]
|
const editor = process.env["VISUAL"] || process.env["EDITOR"]
|
||||||
if (!editor) return
|
if (!editor) return
|
||||||
@@ -34,4 +33,3 @@ export namespace Editor {
|
|||||||
opts.renderer.requestRender()
|
opts.renderer.requestRender()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
export * as Editor from "./editor"
|
||||||
|
export * as Selection from "./selection"
|
||||||
|
export * as Sound from "./sound"
|
||||||
|
export * as Terminal from "./terminal"
|
||||||
|
export * as Clipboard from "./clipboard"
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import { Clipboard } from "./clipboard"
|
import * as Clipboard from "./clipboard"
|
||||||
|
|
||||||
type Toast = {
|
type Toast = {
|
||||||
show: (input: { message: string; variant: "info" | "success" | "warning" | "error" }) => void
|
show: (input: { message: string; variant: "info" | "success" | "warning" | "error" }) => void
|
||||||
@@ -10,7 +10,6 @@ type Renderer = {
|
|||||||
clearSelection: () => void
|
clearSelection: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
export namespace Selection {
|
|
||||||
export function copy(renderer: Renderer, toast: Toast): boolean {
|
export function copy(renderer: Renderer, toast: Toast): boolean {
|
||||||
const text = renderer.getSelection()?.getSelectedText()
|
const text = renderer.getSelection()?.getSelectedText()
|
||||||
if (!text) return false
|
if (!text) return false
|
||||||
@@ -22,4 +21,3 @@ export namespace Selection {
|
|||||||
renderer.clearSelection()
|
renderer.clearSelection()
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ function args(kind: Kind, file: string, volume: number) {
|
|||||||
return [kind, "-c", `(New-Object Media.SoundPlayer '${file.replace(/'/g, "''")}').PlaySync()`]
|
return [kind, "-c", `(New-Object Media.SoundPlayer '${file.replace(/'/g, "''")}').PlaySync()`]
|
||||||
}
|
}
|
||||||
|
|
||||||
export namespace Sound {
|
|
||||||
let item: Player | null | undefined
|
let item: Player | null | undefined
|
||||||
let kind: Kind | null | undefined
|
let kind: Kind | null | undefined
|
||||||
let proc: Process.Child | undefined
|
let proc: Process.Child | undefined
|
||||||
@@ -153,4 +152,3 @@ export namespace Sound {
|
|||||||
export function dispose() {
|
export function dispose() {
|
||||||
stop()
|
stop()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { RGBA } from "@opentui/core"
|
import { RGBA } from "@opentui/core"
|
||||||
|
|
||||||
export namespace Terminal {
|
|
||||||
export type Colors = Awaited<ReturnType<typeof colors>>
|
export type Colors = Awaited<ReturnType<typeof colors>>
|
||||||
|
|
||||||
function parse(color: string): RGBA | null {
|
function parse(color: string): RGBA | null {
|
||||||
@@ -134,4 +133,3 @@ export namespace Terminal {
|
|||||||
}, 1000)
|
}, 1000)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user