snow-flow 10.0.134 → 10.0.136
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 +62 -79
- package/src/pty/index.ts +0 -1
- package/src/server/routes/tui-ws.ts +0 -1
package/package.json
CHANGED
package/src/cli/cmd/tui/app.tsx
CHANGED
|
@@ -115,94 +115,77 @@ export function tui(input: {
|
|
|
115
115
|
onUpgrade?: () => Promise<{ success: boolean; version?: string; error?: string }>
|
|
116
116
|
}) {
|
|
117
117
|
_onUpgrade = input.onUpgrade
|
|
118
|
-
const skipThemeDetection = !!process.env.OPENCODE_SKIP_THEME_DETECTION || !!process.env.OPENCODE_REMOTE_TUI
|
|
119
|
-
const log = (msg: string) => console.log(msg)
|
|
120
118
|
// promise to prevent immediate exit
|
|
121
119
|
return new Promise<void>(async (resolve) => {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
log("[snow-flow] skipping theme detection")
|
|
125
|
-
} else {
|
|
126
|
-
log("[snow-flow] detecting theme...")
|
|
127
|
-
mode = await getTerminalBackgroundColor()
|
|
128
|
-
log(`[snow-flow] theme: ${mode}`)
|
|
129
|
-
}
|
|
120
|
+
const skipThemeDetection = !!process.env.OPENCODE_SKIP_THEME_DETECTION || !!process.env.OPENCODE_REMOTE_TUI
|
|
121
|
+
const mode = skipThemeDetection ? "dark" : await getTerminalBackgroundColor()
|
|
130
122
|
const onExit = async () => {
|
|
131
123
|
await input.onExit?.()
|
|
132
124
|
resolve()
|
|
133
125
|
}
|
|
134
126
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
127
|
+
render(
|
|
128
|
+
() => {
|
|
129
|
+
return (
|
|
130
|
+
<ErrorBoundary
|
|
131
|
+
fallback={(error, reset) => <ErrorComponent error={error} reset={reset} onExit={onExit} mode={mode} />}
|
|
132
|
+
>
|
|
133
|
+
<ArgsProvider {...input.args}>
|
|
134
|
+
<ExitProvider onExit={onExit}>
|
|
135
|
+
<KVProvider>
|
|
136
|
+
<ToastProvider>
|
|
137
|
+
<RouteProvider>
|
|
138
|
+
<SDKProvider
|
|
139
|
+
url={input.url}
|
|
140
|
+
directory={input.directory}
|
|
141
|
+
fetch={input.fetch}
|
|
142
|
+
events={input.events}
|
|
143
|
+
>
|
|
144
|
+
<SyncProvider>
|
|
145
|
+
<ThemeProvider mode={mode}>
|
|
146
|
+
<LocalProvider>
|
|
147
|
+
<KeybindProvider>
|
|
148
|
+
<PromptStashProvider>
|
|
149
|
+
<DialogProvider>
|
|
150
|
+
<CommandProvider>
|
|
151
|
+
<FrecencyProvider>
|
|
152
|
+
<PromptHistoryProvider>
|
|
153
|
+
<PromptRefProvider>
|
|
154
|
+
<App />
|
|
155
|
+
</PromptRefProvider>
|
|
156
|
+
</PromptHistoryProvider>
|
|
157
|
+
</FrecencyProvider>
|
|
158
|
+
</CommandProvider>
|
|
159
|
+
</DialogProvider>
|
|
160
|
+
</PromptStashProvider>
|
|
161
|
+
</KeybindProvider>
|
|
162
|
+
</LocalProvider>
|
|
163
|
+
</ThemeProvider>
|
|
164
|
+
</SyncProvider>
|
|
165
|
+
</SDKProvider>
|
|
166
|
+
</RouteProvider>
|
|
167
|
+
</ToastProvider>
|
|
168
|
+
</KVProvider>
|
|
169
|
+
</ExitProvider>
|
|
170
|
+
</ArgsProvider>
|
|
171
|
+
</ErrorBoundary>
|
|
172
|
+
)
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
targetFps: 60,
|
|
176
|
+
gatherStats: false,
|
|
177
|
+
exitOnCtrlC: false,
|
|
178
|
+
useKittyKeyboard: process.env.OPENCODE_DISABLE_KITTY_KEYBOARD ? undefined : {},
|
|
179
|
+
consoleOptions: {
|
|
180
|
+
keyBindings: [{ name: "y", ctrl: true, action: "copy-selection" }],
|
|
181
|
+
onCopySelection: (text: string) => {
|
|
182
|
+
Clipboard.copy(text).catch((error: Error) => {
|
|
183
|
+
console.error(`Failed to copy console selection to clipboard: ${error}`)
|
|
184
|
+
})
|
|
185
|
+
},
|
|
146
186
|
},
|
|
147
187
|
},
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
try {
|
|
151
|
-
log("[snow-flow] starting tui...")
|
|
152
|
-
await render(
|
|
153
|
-
() => {
|
|
154
|
-
return (
|
|
155
|
-
<ErrorBoundary
|
|
156
|
-
fallback={(error, reset) => <ErrorComponent error={error} reset={reset} onExit={onExit} mode={mode} />}
|
|
157
|
-
>
|
|
158
|
-
<ArgsProvider {...input.args}>
|
|
159
|
-
<ExitProvider onExit={onExit}>
|
|
160
|
-
<KVProvider>
|
|
161
|
-
<ToastProvider>
|
|
162
|
-
<RouteProvider>
|
|
163
|
-
<SDKProvider
|
|
164
|
-
url={input.url}
|
|
165
|
-
directory={input.directory}
|
|
166
|
-
fetch={input.fetch}
|
|
167
|
-
events={input.events}
|
|
168
|
-
>
|
|
169
|
-
<SyncProvider>
|
|
170
|
-
<ThemeProvider mode={mode}>
|
|
171
|
-
<LocalProvider>
|
|
172
|
-
<KeybindProvider>
|
|
173
|
-
<PromptStashProvider>
|
|
174
|
-
<DialogProvider>
|
|
175
|
-
<CommandProvider>
|
|
176
|
-
<FrecencyProvider>
|
|
177
|
-
<PromptHistoryProvider>
|
|
178
|
-
<PromptRefProvider>
|
|
179
|
-
<App />
|
|
180
|
-
</PromptRefProvider>
|
|
181
|
-
</PromptHistoryProvider>
|
|
182
|
-
</FrecencyProvider>
|
|
183
|
-
</CommandProvider>
|
|
184
|
-
</DialogProvider>
|
|
185
|
-
</PromptStashProvider>
|
|
186
|
-
</KeybindProvider>
|
|
187
|
-
</LocalProvider>
|
|
188
|
-
</ThemeProvider>
|
|
189
|
-
</SyncProvider>
|
|
190
|
-
</SDKProvider>
|
|
191
|
-
</RouteProvider>
|
|
192
|
-
</ToastProvider>
|
|
193
|
-
</KVProvider>
|
|
194
|
-
</ExitProvider>
|
|
195
|
-
</ArgsProvider>
|
|
196
|
-
</ErrorBoundary>
|
|
197
|
-
)
|
|
198
|
-
},
|
|
199
|
-
renderConfig,
|
|
200
|
-
)
|
|
201
|
-
} catch (e) {
|
|
202
|
-
console.error("[snow-flow] render failed:", e instanceof Error ? e.message : e)
|
|
203
|
-
if (e instanceof Error && e.stack) console.error(e.stack)
|
|
204
|
-
resolve()
|
|
205
|
-
}
|
|
188
|
+
)
|
|
206
189
|
})
|
|
207
190
|
}
|
|
208
191
|
|
package/src/pty/index.ts
CHANGED