snow-flow 10.0.122 → 10.0.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/cli/cmd/tui/app.tsx +45 -15
- package/src/pty/index.ts +1 -0
- package/src/server/routes/tui-ws.ts +1 -0
package/package.json
CHANGED
package/src/cli/cmd/tui/app.tsx
CHANGED
|
@@ -116,6 +116,7 @@ export function tui(input: {
|
|
|
116
116
|
}) {
|
|
117
117
|
_onUpgrade = input.onUpgrade
|
|
118
118
|
const skipThemeDetection = !!process.env.OPENCODE_SKIP_THEME_DETECTION || !!process.env.OPENCODE_REMOTE_TUI
|
|
119
|
+
const log = (msg: string) => process.stderr.write("[sf] " + msg + "\n")
|
|
119
120
|
// promise to prevent immediate exit
|
|
120
121
|
return new Promise<void>(async (resolve) => {
|
|
121
122
|
let mode: "dark" | "light" = "dark"
|
|
@@ -127,9 +128,49 @@ export function tui(input: {
|
|
|
127
128
|
resolve()
|
|
128
129
|
}
|
|
129
130
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
131
|
+
const { createCliRenderer } = await import("@opentui/core")
|
|
132
|
+
|
|
133
|
+
const renderer = await createCliRenderer({
|
|
134
|
+
targetFps: 60,
|
|
135
|
+
gatherStats: false,
|
|
136
|
+
exitOnCtrlC: false,
|
|
137
|
+
useKittyKeyboard: process.env.OPENCODE_DISABLE_KITTY_KEYBOARD ? undefined : {},
|
|
138
|
+
consoleOptions: {
|
|
139
|
+
keyBindings: [{ name: "y", ctrl: true, action: "copy-selection" }],
|
|
140
|
+
onCopySelection: (text: string) => {
|
|
141
|
+
Clipboard.copy(text).catch(() => {})
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
})
|
|
145
|
+
|
|
146
|
+
// Diagnostic: check renderer internals
|
|
147
|
+
const r = renderer as any
|
|
148
|
+
log("renderer.lib=" + !!r.lib)
|
|
149
|
+
log("renderer.rendererPtr=" + !!r.rendererPtr)
|
|
150
|
+
log("renderer._useThread=" + r._useThread)
|
|
151
|
+
log("renderer._useAlternateScreen=" + r._useAlternateScreen)
|
|
152
|
+
log("renderer.width=" + r.width + " height=" + r.height)
|
|
153
|
+
if (r.lib) {
|
|
154
|
+
log("lib.render=" + typeof r.lib.render)
|
|
155
|
+
log("lib.writeOut=" + typeof r.lib.writeOut)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// Test: can we write to terminal via renderer.writeOut()?
|
|
159
|
+
try {
|
|
160
|
+
r.writeOut("\x1b[2J\x1b[H\x1b[32m=== RENDERER WRITEOUT TEST ===\x1b[0m\r\n")
|
|
161
|
+
log("writeOut succeeded")
|
|
162
|
+
} catch (e: any) {
|
|
163
|
+
log("writeOut FAILED: " + e.message)
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Test: can we write to terminal via realStdoutWrite?
|
|
167
|
+
try {
|
|
168
|
+
const write = r.realStdoutWrite || process.stdout.write
|
|
169
|
+
write.call(process.stdout, "\x1b[33m=== REAL STDOUT TEST ===\x1b[0m\r\n")
|
|
170
|
+
log("realStdoutWrite succeeded")
|
|
171
|
+
} catch (e: any) {
|
|
172
|
+
log("realStdoutWrite FAILED: " + e.message)
|
|
173
|
+
}
|
|
133
174
|
|
|
134
175
|
await render(
|
|
135
176
|
() => (
|
|
@@ -176,18 +217,7 @@ export function tui(input: {
|
|
|
176
217
|
</ArgsProvider>
|
|
177
218
|
</ErrorBoundary>
|
|
178
219
|
),
|
|
179
|
-
|
|
180
|
-
targetFps: 60,
|
|
181
|
-
gatherStats: false,
|
|
182
|
-
exitOnCtrlC: false,
|
|
183
|
-
useKittyKeyboard: process.env.OPENCODE_DISABLE_KITTY_KEYBOARD ? undefined : {},
|
|
184
|
-
consoleOptions: {
|
|
185
|
-
keyBindings: [{ name: "y", ctrl: true, action: "copy-selection" }],
|
|
186
|
-
onCopySelection: (text: string) => {
|
|
187
|
-
Clipboard.copy(text).catch(() => {})
|
|
188
|
-
},
|
|
189
|
-
},
|
|
190
|
-
},
|
|
220
|
+
renderer,
|
|
191
221
|
)
|
|
192
222
|
})
|
|
193
223
|
}
|
package/src/pty/index.ts
CHANGED