restore: bring back all custom UI enhancements from checkpoint

Restored from commit 52be710 (checkpoint before qwen oauth + todo roller):

Enhanced UI Features:
- SMART FIX button with AI code analysis
- APEX (Autonomous Programming EXecution) mode
- SHIELD (Auto-approval) mode
- MULTIX MODE multi-task pipeline interface
- Live streaming token counter
- Thinking indicator with bouncing dots animation

Components restored:
- packages/ui/src/components/chat/multi-task-chat.tsx
- packages/ui/src/components/instance/instance-shell2.tsx
- packages/ui/src/components/settings/OllamaCloudSettings.tsx
- packages/ui/src/components/settings/QwenCodeSettings.tsx
- packages/ui/src/stores/solo-store.ts
- packages/ui/src/stores/task-actions.ts
- packages/ui/src/stores/session-events.ts (autonomous mode)
- packages/server/src/integrations/ollama-cloud.ts
- packages/server/src/server/routes/ollama.ts
- packages/server/src/server/routes/qwen.ts

This ensures all custom features are preserved in source control.
This commit is contained in:
Gemini AI
2025-12-23 13:18:37 +04:00
Unverified
parent 157449a9ad
commit c4ac079660
47 changed files with 4550 additions and 527 deletions

View File

@@ -1,6 +1,6 @@
import debug from "debug"
export type LoggerNamespace = "sse" | "api" | "session" | "actions"
export type LoggerNamespace = "sse" | "api" | "session" | "actions" | "solo" | "multix-chat"
interface Logger {
log: (...args: unknown[]) => void
@@ -22,7 +22,7 @@ export interface LoggerControls {
disableAllLoggers: () => void
}
const KNOWN_NAMESPACES: LoggerNamespace[] = ["sse", "api", "session", "actions"]
const KNOWN_NAMESPACES: LoggerNamespace[] = ["sse", "api", "session", "actions", "solo", "multix-chat"]
const STORAGE_KEY = "opencode:logger:namespaces"
const namespaceLoggers = new Map<LoggerNamespace, Logger>()
@@ -80,36 +80,33 @@ function buildLogger(namespace: LoggerNamespace): Logger {
}
}
function getLogger(namespace: LoggerNamespace): Logger {
if (!KNOWN_NAMESPACES.includes(namespace)) {
throw new Error(`Unknown logger namespace: ${namespace}`)
function getLogger(namespace: string): Logger {
const ns = namespace as LoggerNamespace
if (!namespaceLoggers.has(ns)) {
namespaceLoggers.set(ns, buildLogger(ns))
}
if (!namespaceLoggers.has(namespace)) {
namespaceLoggers.set(namespace, buildLogger(namespace))
}
return namespaceLoggers.get(namespace)!
return namespaceLoggers.get(ns)!
}
function listLoggerNamespaces(): NamespaceState[] {
return KNOWN_NAMESPACES.map((name) => ({ name, enabled: enabledNamespaces.has(name) }))
return Array.from(namespaceLoggers.keys()).map((name) => ({
name,
enabled: enabledNamespaces.has(name)
}))
}
function enableLogger(namespace: LoggerNamespace): void {
if (!KNOWN_NAMESPACES.includes(namespace)) {
throw new Error(`Unknown logger namespace: ${namespace}`)
}
if (enabledNamespaces.has(namespace)) return
enabledNamespaces.add(namespace)
function enableLogger(namespace: string): void {
const ns = namespace as LoggerNamespace
if (enabledNamespaces.has(ns)) return
enabledNamespaces.add(ns)
persistEnabledNamespaces()
applyEnabledNamespaces()
}
function disableLogger(namespace: LoggerNamespace): void {
if (!KNOWN_NAMESPACES.includes(namespace)) {
throw new Error(`Unknown logger namespace: ${namespace}`)
}
if (!enabledNamespaces.has(namespace)) return
enabledNamespaces.delete(namespace)
function disableLogger(namespace: string): void {
const ns = namespace as LoggerNamespace
if (!enabledNamespaces.has(ns)) return
enabledNamespaces.delete(ns)
persistEnabledNamespaces()
applyEnabledNamespaces()
}
@@ -121,7 +118,7 @@ function disableAllLoggers(): void {
}
function enableAllLoggers(): void {
KNOWN_NAMESPACES.forEach((namespace) => enabledNamespaces.add(namespace))
namespaceLoggers.forEach((_, ns) => enabledNamespaces.add(ns))
persistEnabledNamespaces()
applyEnabledNamespaces()
}