Просмотр исходного кода

feat: unwrap 11 util namespaces to flat exports + barrel (#22739)

Kit Langton 2 дней назад
Родитель
Сommit
343a564183
100 измененных файлов с 135 добавлено и 135 удалено
  1. 2 2
      packages/opencode/src/acp/agent.ts
  2. 1 1
      packages/opencode/src/acp/session.ts
  3. 1 1
      packages/opencode/src/bus/bus.ts
  4. 1 1
      packages/opencode/src/cli/cmd/acp.ts
  5. 1 1
      packages/opencode/src/cli/cmd/agent.ts
  6. 1 1
      packages/opencode/src/cli/cmd/debug/lsp.ts
  7. 1 1
      packages/opencode/src/cli/cmd/debug/scrap.ts
  8. 2 2
      packages/opencode/src/cli/cmd/github.ts
  9. 1 1
      packages/opencode/src/cli/cmd/import.ts
  10. 1 1
      packages/opencode/src/cli/cmd/mcp.ts
  11. 2 2
      packages/opencode/src/cli/cmd/plug.ts
  12. 1 1
      packages/opencode/src/cli/cmd/pr.ts
  13. 1 1
      packages/opencode/src/cli/cmd/providers.ts
  14. 2 2
      packages/opencode/src/cli/cmd/run.ts
  15. 3 3
      packages/opencode/src/cli/cmd/session.ts
  16. 1 1
      packages/opencode/src/cli/cmd/tui/component/dialog-mcp.tsx
  17. 2 2
      packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx
  18. 1 1
      packages/opencode/src/cli/cmd/tui/component/dialog-stash.tsx
  19. 1 1
      packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx
  20. 1 1
      packages/opencode/src/cli/cmd/tui/component/prompt/frecency.tsx
  21. 1 1
      packages/opencode/src/cli/cmd/tui/component/prompt/history.tsx
  22. 2 2
      packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx
  23. 1 1
      packages/opencode/src/cli/cmd/tui/component/prompt/stash.tsx
  24. 1 1
      packages/opencode/src/cli/cmd/tui/component/textarea-keybindings.ts
  25. 1 1
      packages/opencode/src/cli/cmd/tui/context/keybind.tsx
  26. 1 1
      packages/opencode/src/cli/cmd/tui/context/kv.tsx
  27. 1 1
      packages/opencode/src/cli/cmd/tui/context/local.tsx
  28. 1 1
      packages/opencode/src/cli/cmd/tui/context/sync.tsx
  29. 1 1
      packages/opencode/src/cli/cmd/tui/context/theme.tsx
  30. 1 1
      packages/opencode/src/cli/cmd/tui/feature-plugins/system/plugins.tsx
  31. 3 3
      packages/opencode/src/cli/cmd/tui/plugin/runtime.ts
  32. 1 1
      packages/opencode/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx
  33. 1 1
      packages/opencode/src/cli/cmd/tui/routes/session/dialog-timeline.tsx
  34. 2 2
      packages/opencode/src/cli/cmd/tui/routes/session/index.tsx
  35. 2 2
      packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx
  36. 1 1
      packages/opencode/src/cli/cmd/tui/routes/session/subagent-footer.tsx
  37. 3 3
      packages/opencode/src/cli/cmd/tui/thread.ts
  38. 1 1
      packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx
  39. 2 2
      packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
  40. 2 2
      packages/opencode/src/cli/cmd/tui/util/clipboard.ts
  41. 2 2
      packages/opencode/src/cli/cmd/tui/util/editor.ts
  42. 1 1
      packages/opencode/src/cli/cmd/tui/util/sound.ts
  43. 1 1
      packages/opencode/src/cli/cmd/tui/util/transcript.ts
  44. 2 2
      packages/opencode/src/cli/cmd/tui/worker.ts
  45. 2 2
      packages/opencode/src/cli/cmd/uninstall.ts
  46. 1 1
      packages/opencode/src/cli/heap.ts
  47. 2 2
      packages/opencode/src/config/config.ts
  48. 1 1
      packages/opencode/src/config/markdown.ts
  49. 1 1
      packages/opencode/src/config/paths.ts
  50. 2 2
      packages/opencode/src/config/tui-migrate.ts
  51. 1 1
      packages/opencode/src/config/tui.ts
  52. 1 1
      packages/opencode/src/control-plane/workspace-context.ts
  53. 2 2
      packages/opencode/src/control-plane/workspace.ts
  54. 1 1
      packages/opencode/src/effect/bridge.ts
  55. 1 1
      packages/opencode/src/effect/instance-state.ts
  56. 1 1
      packages/opencode/src/effect/logger.ts
  57. 1 1
      packages/opencode/src/effect/run-service.ts
  58. 1 1
      packages/opencode/src/file/file.ts
  59. 2 2
      packages/opencode/src/file/ripgrep.ts
  60. 1 1
      packages/opencode/src/file/time.ts
  61. 1 1
      packages/opencode/src/file/watcher.ts
  62. 1 1
      packages/opencode/src/format/format.ts
  63. 2 2
      packages/opencode/src/format/formatter.ts
  64. 1 1
      packages/opencode/src/global/global.ts
  65. 2 2
      packages/opencode/src/ide/ide.ts
  66. 2 2
      packages/opencode/src/index.ts
  67. 1 1
      packages/opencode/src/installation/installation.ts
  68. 3 3
      packages/opencode/src/lsp/client.ts
  69. 2 2
      packages/opencode/src/lsp/index.ts
  70. 1 1
      packages/opencode/src/lsp/launch.ts
  71. 3 3
      packages/opencode/src/lsp/server.ts
  72. 1 1
      packages/opencode/src/mcp/mcp.ts
  73. 1 1
      packages/opencode/src/mcp/oauth-callback.ts
  74. 1 1
      packages/opencode/src/mcp/oauth-provider.ts
  75. 1 1
      packages/opencode/src/node.ts
  76. 2 2
      packages/opencode/src/npm/npm.ts
  77. 1 1
      packages/opencode/src/patch/patch.ts
  78. 1 1
      packages/opencode/src/permission/evaluate.ts
  79. 2 2
      packages/opencode/src/permission/permission.ts
  80. 1 1
      packages/opencode/src/plugin/codex.ts
  81. 1 1
      packages/opencode/src/plugin/github-copilot/copilot.ts
  82. 1 1
      packages/opencode/src/plugin/install.ts
  83. 1 1
      packages/opencode/src/plugin/meta.ts
  84. 1 1
      packages/opencode/src/plugin/plugin.ts
  85. 1 1
      packages/opencode/src/plugin/shared.ts
  86. 1 1
      packages/opencode/src/project/bootstrap.ts
  87. 2 2
      packages/opencode/src/project/instance.ts
  88. 1 1
      packages/opencode/src/project/project.ts
  89. 1 1
      packages/opencode/src/project/vcs.ts
  90. 2 2
      packages/opencode/src/provider/models.ts
  91. 1 1
      packages/opencode/src/provider/provider.ts
  92. 1 1
      packages/opencode/src/pty/service.ts
  93. 1 1
      packages/opencode/src/question/index.ts
  94. 1 1
      packages/opencode/src/server/control/index.ts
  95. 1 1
      packages/opencode/src/server/fence.ts
  96. 1 1
      packages/opencode/src/server/instance/event.ts
  97. 1 1
      packages/opencode/src/server/instance/global.ts
  98. 1 1
      packages/opencode/src/server/instance/httpapi/server.ts
  99. 1 1
      packages/opencode/src/server/instance/middleware.ts
  100. 1 1
      packages/opencode/src/server/instance/session.ts

+ 2 - 2
packages/opencode/src/acp/agent.ts

@@ -31,9 +31,9 @@ import {
   type Usage,
 } from "@agentclientprotocol/sdk"
 
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { pathToFileURL } from "url"
-import { Filesystem } from "../util/filesystem"
+import { Filesystem } from "../util"
 import { Hash } from "@opencode-ai/shared/util/hash"
 import { ACPSessionManager } from "./session"
 import type { ACPConfig } from "./types"

+ 1 - 1
packages/opencode/src/acp/session.ts

@@ -1,6 +1,6 @@
 import { RequestError, type McpServer } from "@agentclientprotocol/sdk"
 import type { ACPSessionState } from "./types"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import type { OpencodeClient } from "@opencode-ai/sdk/v2"
 
 const log = Log.create({ service: "acp-session-manager" })

+ 1 - 1
packages/opencode/src/bus/bus.ts

@@ -1,7 +1,7 @@
 import z from "zod"
 import { Effect, Exit, Layer, PubSub, Scope, Context, Stream } from "effect"
 import { EffectBridge } from "@/effect"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { BusEvent } from "./bus-event"
 import { GlobalBus } from "./global"
 import { InstanceState } from "@/effect"

+ 1 - 1
packages/opencode/src/cli/cmd/acp.ts

@@ -1,4 +1,4 @@
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { bootstrap } from "../bootstrap"
 import { cmd } from "./cmd"
 import { AgentSideConnection, ndJsonStream } from "@agentclientprotocol/sdk"

+ 1 - 1
packages/opencode/src/cli/cmd/agent.ts

@@ -7,7 +7,7 @@ import { Agent } from "../../agent/agent"
 import { Provider } from "../../provider"
 import path from "path"
 import fs from "fs/promises"
-import { Filesystem } from "../../util/filesystem"
+import { Filesystem } from "../../util"
 import matter from "gray-matter"
 import { Instance } from "../../project/instance"
 import { EOL } from "os"

+ 1 - 1
packages/opencode/src/cli/cmd/debug/lsp.ts

@@ -3,7 +3,7 @@ import { AppRuntime } from "../../../effect/app-runtime"
 import { Effect } from "effect"
 import { bootstrap } from "../../bootstrap"
 import { cmd } from "../cmd"
-import { Log } from "../../../util/log"
+import { Log } from "../../../util"
 import { EOL } from "os"
 
 export const LSPCommand = cmd({

+ 1 - 1
packages/opencode/src/cli/cmd/debug/scrap.ts

@@ -1,6 +1,6 @@
 import { EOL } from "os"
 import { Project } from "../../../project/project"
-import { Log } from "../../../util/log"
+import { Log } from "../../../util"
 import { cmd } from "../cmd"
 
 export const ScrapCommand = cmd({

+ 2 - 2
packages/opencode/src/cli/cmd/github.ts

@@ -1,6 +1,6 @@
 import path from "path"
 import { exec } from "child_process"
-import { Filesystem } from "../../util/filesystem"
+import { Filesystem } from "../../util"
 import * as prompts from "@clack/prompts"
 import { map, pipe, sortBy, values } from "remeda"
 import { Octokit } from "@octokit/rest"
@@ -32,7 +32,7 @@ import { SessionPrompt } from "@/session/prompt"
 import { AppRuntime } from "@/effect/app-runtime"
 import { Git } from "@/git"
 import { setTimeout as sleep } from "node:timers/promises"
-import { Process } from "@/util/process"
+import { Process } from "@/util"
 import { Effect } from "effect"
 
 type GitHubAuthor = {

+ 1 - 1
packages/opencode/src/cli/cmd/import.ts

@@ -9,7 +9,7 @@ import { SessionTable, MessageTable, PartTable } from "../../session/session.sql
 import { Instance } from "../../project/instance"
 import { ShareNext } from "../../share/share-next"
 import { EOL } from "os"
-import { Filesystem } from "../../util/filesystem"
+import { Filesystem } from "../../util"
 import { AppRuntime } from "@/effect/app-runtime"
 
 /** Discriminated union returned by the ShareNext API (GET /api/shares/:id/data) */

+ 1 - 1
packages/opencode/src/cli/cmd/mcp.ts

@@ -13,7 +13,7 @@ import { Installation } from "../../installation"
 import path from "path"
 import { Global } from "../../global"
 import { modify, applyEdits } from "jsonc-parser"
-import { Filesystem } from "../../util/filesystem"
+import { Filesystem } from "../../util"
 import { Bus } from "../../bus"
 import { AppRuntime } from "../../effect/app-runtime"
 import { Effect } from "effect"

+ 2 - 2
packages/opencode/src/cli/cmd/plug.ts

@@ -7,8 +7,8 @@ import { installPlugin, patchPluginConfig, readPluginManifest } from "../../plug
 import { resolvePluginTarget } from "../../plugin/shared"
 import { Instance } from "../../project/instance"
 import { errorMessage } from "../../util/error"
-import { Filesystem } from "../../util/filesystem"
-import { Process } from "../../util/process"
+import { Filesystem } from "../../util"
+import { Process } from "../../util"
 import { UI } from "../ui"
 import { cmd } from "./cmd"
 

+ 1 - 1
packages/opencode/src/cli/cmd/pr.ts

@@ -3,7 +3,7 @@ import { cmd } from "./cmd"
 import { AppRuntime } from "@/effect/app-runtime"
 import { Git } from "@/git"
 import { Instance } from "@/project/instance"
-import { Process } from "@/util/process"
+import { Process } from "@/util"
 
 export const PrCommand = cmd({
   command: "pr <number>",

+ 1 - 1
packages/opencode/src/cli/cmd/providers.ts

@@ -12,7 +12,7 @@ import { Global } from "../../global"
 import { Plugin } from "../../plugin"
 import { Instance } from "../../project/instance"
 import type { Hooks } from "@opencode-ai/plugin"
-import { Process } from "../../util/process"
+import { Process } from "../../util"
 import { text } from "node:stream/consumers"
 import { Effect } from "effect"
 

+ 2 - 2
packages/opencode/src/cli/cmd/run.ts

@@ -6,7 +6,7 @@ import { cmd } from "./cmd"
 import { Flag } from "../../flag/flag"
 import { bootstrap } from "../bootstrap"
 import { EOL } from "os"
-import { Filesystem } from "../../util/filesystem"
+import { Filesystem } from "../../util"
 import { createOpencodeClient, type OpencodeClient, type ToolPart } from "@opencode-ai/sdk/v2"
 import { Server } from "../../server/server"
 import { Provider } from "../../provider"
@@ -25,7 +25,7 @@ import { TaskTool } from "../../tool/task"
 import { SkillTool } from "../../tool/skill"
 import { BashTool } from "../../tool/bash"
 import { TodoWriteTool } from "../../tool/todo"
-import { Locale } from "../../util/locale"
+import { Locale } from "../../util"
 import { AppRuntime } from "@/effect/app-runtime"
 
 type ToolProps<T> = {

+ 3 - 3
packages/opencode/src/cli/cmd/session.ts

@@ -4,10 +4,10 @@ import { Session } from "../../session"
 import { SessionID } from "../../session/schema"
 import { bootstrap } from "../bootstrap"
 import { UI } from "../ui"
-import { Locale } from "../../util/locale"
+import { Locale } from "../../util"
 import { Flag } from "../../flag/flag"
-import { Filesystem } from "../../util/filesystem"
-import { Process } from "../../util/process"
+import { Filesystem } from "../../util"
+import { Process } from "../../util"
 import { EOL } from "os"
 import path from "path"
 import { which } from "../../util/which"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/component/dialog-mcp.tsx

@@ -4,7 +4,7 @@ import { useSync } from "@tui/context/sync"
 import { map, pipe, entries, sortBy } from "remeda"
 import { DialogSelect, type DialogSelectRef, type DialogSelectOption } from "@tui/ui/dialog-select"
 import { useTheme } from "../context/theme"
-import { Keybind } from "@/util/keybind"
+import { Keybind } from "@/util"
 import { TextAttributes } from "@opentui/core"
 import { useSDK } from "@tui/context/sdk"
 

+ 2 - 2
packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx

@@ -3,14 +3,14 @@ import { DialogSelect } from "@tui/ui/dialog-select"
 import { useRoute } from "@tui/context/route"
 import { useSync } from "@tui/context/sync"
 import { createMemo, createResource, createSignal, onMount } from "solid-js"
-import { Locale } from "@/util/locale"
+import { Locale } from "@/util"
 import { useProject } from "@tui/context/project"
 import { useKeybind } from "../context/keybind"
 import { useTheme } from "../context/theme"
 import { useSDK } from "../context/sdk"
 import { Flag } from "@/flag/flag"
 import { DialogSessionRename } from "./dialog-session-rename"
-import { Keybind } from "@/util/keybind"
+import { Keybind } from "@/util"
 import { createDebouncedSignal } from "../util/signal"
 import { useToast } from "../ui/toast"
 import { DialogWorkspaceCreate, openWorkspaceSession } from "./dialog-workspace-create"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/component/dialog-stash.tsx

@@ -1,7 +1,7 @@
 import { useDialog } from "@tui/ui/dialog"
 import { DialogSelect } from "@tui/ui/dialog-select"
 import { createMemo, createSignal } from "solid-js"
-import { Locale } from "@/util/locale"
+import { Locale } from "@/util"
 import { useTheme } from "../context/theme"
 import { useKeybind } from "../context/keybind"
 import { usePromptStash, type StashEntry } from "./prompt/stash"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/component/prompt/autocomplete.tsx

@@ -12,7 +12,7 @@ import { useTheme, selectedForeground } from "@tui/context/theme"
 import { SplitBorder } from "@tui/component/border"
 import { useCommandDialog } from "@tui/component/dialog-command"
 import { useTerminalDimensions } from "@opentui/solid"
-import { Locale } from "@/util/locale"
+import { Locale } from "@/util"
 import type { PromptInfo } from "./history"
 import { useFrecency } from "./frecency"
 

+ 1 - 1
packages/opencode/src/cli/cmd/tui/component/prompt/frecency.tsx

@@ -1,6 +1,6 @@
 import path from "path"
 import { Global } from "@/global"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { onMount } from "solid-js"
 import { createStore } from "solid-js/store"
 import { createSimpleContext } from "../../context/helper"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/component/prompt/history.tsx

@@ -1,6 +1,6 @@
 import path from "path"
 import { Global } from "@/global"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { onMount } from "solid-js"
 import { createStore, produce, unwrap } from "solid-js/store"
 import { createSimpleContext } from "../../context/helper"

+ 2 - 2
packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx

@@ -3,7 +3,7 @@ import { createEffect, createMemo, onMount, createSignal, onCleanup, on, Show, S
 import "opentui-spinner/solid"
 import path from "path"
 import { fileURLToPath } from "url"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { useLocal } from "@tui/context/local"
 import { useTheme } from "@tui/context/theme"
 import { EmptyBorder, SplitBorder } from "@tui/component/border"
@@ -27,7 +27,7 @@ import { Clipboard } from "../../util/clipboard"
 import type { AssistantMessage, FilePart, UserMessage } from "@opencode-ai/sdk/v2"
 import { TuiEvent } from "../../event"
 import { iife } from "@/util/iife"
-import { Locale } from "@/util/locale"
+import { Locale } from "@/util"
 import { formatDuration } from "@/util/format"
 import { createColors, createFrames } from "../../ui/spinner.ts"
 import { useDialog } from "@tui/ui/dialog"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/component/prompt/stash.tsx

@@ -1,6 +1,6 @@
 import path from "path"
 import { Global } from "@/global"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { onMount } from "solid-js"
 import { createStore, produce, unwrap } from "solid-js/store"
 import { createSimpleContext } from "../../context/helper"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/component/textarea-keybindings.ts

@@ -1,7 +1,7 @@
 import { createMemo } from "solid-js"
 import type { KeyBinding } from "@opentui/core"
 import { useKeybind } from "../context/keybind"
-import { Keybind } from "@/util/keybind"
+import { Keybind } from "@/util"
 
 const TEXTAREA_ACTIONS = [
   "submit",

+ 1 - 1
packages/opencode/src/cli/cmd/tui/context/keybind.tsx

@@ -1,5 +1,5 @@
 import { createMemo } from "solid-js"
-import { Keybind } from "@/util/keybind"
+import { Keybind } from "@/util"
 import { pipe, mapValues } from "remeda"
 import type { TuiConfig } from "@/config/tui"
 import type { ParsedKey, Renderable } from "@opentui/core"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/context/kv.tsx

@@ -1,5 +1,5 @@
 import { Global } from "@/global"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { createSignal, type Setter } from "solid-js"
 import { createStore } from "solid-js/store"
 import { createSimpleContext } from "./helper"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/context/local.tsx

@@ -12,7 +12,7 @@ import { Provider } from "@/provider"
 import { useArgs } from "./args"
 import { useSDK } from "./sdk"
 import { RGBA } from "@opentui/core"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 
 export const { use: useLocal, provider: LocalProvider } = createSimpleContext({
   name: "Local",

+ 1 - 1
packages/opencode/src/cli/cmd/tui/context/sync.tsx

@@ -28,7 +28,7 @@ import type { Snapshot } from "@/snapshot"
 import { useExit } from "./exit"
 import { useArgs } from "./args"
 import { batch, createEffect, on } from "solid-js"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { ConsoleState, emptyConsoleState, type ConsoleState as ConsoleStateType } from "@/config/console-state"
 
 export const { use: useSync, provider: SyncProvider } = createSimpleContext({

+ 1 - 1
packages/opencode/src/cli/cmd/tui/context/theme.tsx

@@ -40,7 +40,7 @@ import { useKV } from "./kv"
 import { useRenderer } from "@opentui/solid"
 import { createStore, produce } from "solid-js/store"
 import { Global } from "@/global"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { useTuiConfig } from "./tui-config"
 import { isRecord } from "@/util/record"
 import type { TuiThemeCurrent } from "@opencode-ai/plugin/tui"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/feature-plugins/system/plugins.tsx

@@ -1,4 +1,4 @@
-import { Keybind } from "@/util/keybind"
+import { Keybind } from "@/util"
 import type { TuiPlugin, TuiPluginApi, TuiPluginModule, TuiPluginStatus } from "@opencode-ai/plugin/tui"
 import { useKeyboard, useTerminalDimensions } from "@opentui/solid"
 import { fileURLToPath } from "url"

+ 3 - 3
packages/opencode/src/cli/cmd/tui/plugin/runtime.ts

@@ -15,7 +15,7 @@ import { fileURLToPath } from "url"
 
 import { Config } from "@/config"
 import { TuiConfig } from "@/config/tui"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { errorData, errorMessage } from "@/util/error"
 import { isRecord } from "@/util/record"
 import { Instance } from "@/project/instance"
@@ -32,8 +32,8 @@ import { PluginMeta } from "@/plugin/meta"
 import { installPlugin as installModulePlugin, patchPluginConfig, readPluginManifest } from "@/plugin/install"
 import { hasTheme, upsertTheme } from "../context/theme"
 import { Global } from "@/global"
-import { Filesystem } from "@/util/filesystem"
-import { Process } from "@/util/process"
+import { Filesystem } from "@/util"
+import { Process } from "@/util"
 import { Flock } from "@opencode-ai/shared/util/flock"
 import { Flag } from "@/flag/flag"
 import { INTERNAL_TUI_PLUGINS, type InternalTuiPlugin } from "./internal"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/routes/session/dialog-fork-from-timeline.tsx

@@ -2,7 +2,7 @@ import { createMemo, onMount } from "solid-js"
 import { useSync } from "@tui/context/sync"
 import { DialogSelect, type DialogSelectOption } from "@tui/ui/dialog-select"
 import type { TextPart } from "@opencode-ai/sdk/v2"
-import { Locale } from "@/util/locale"
+import { Locale } from "@/util"
 import { useSDK } from "@tui/context/sdk"
 import { useRoute } from "@tui/context/route"
 import { useDialog } from "../../ui/dialog"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/routes/session/dialog-timeline.tsx

@@ -2,7 +2,7 @@ import { createMemo, onMount } from "solid-js"
 import { useSync } from "@tui/context/sync"
 import { DialogSelect, type DialogSelectOption } from "@tui/ui/dialog-select"
 import type { TextPart } from "@opencode-ai/sdk/v2"
-import { Locale } from "@/util/locale"
+import { Locale } from "@/util"
 import { DialogMessage } from "./dialog-message"
 import { useDialog } from "../../ui/dialog"
 import type { PromptInfo } from "../../component/prompt/history"

+ 2 - 2
packages/opencode/src/cli/cmd/tui/routes/session/index.tsx

@@ -33,7 +33,7 @@ import type {
   ReasoningPart,
 } from "@opencode-ai/sdk/v2"
 import { useLocal } from "@tui/context/local"
-import { Locale } from "@/util/locale"
+import { Locale } from "@/util"
 import type { Tool } from "@/tool/tool"
 import type { ReadTool } from "@/tool/read"
 import type { WriteTool } from "@/tool/write"
@@ -73,7 +73,7 @@ import { Editor } from "../../util/editor"
 import stripAnsi from "strip-ansi"
 import { usePromptRef } from "../../context/prompt"
 import { useExit } from "../../context/exit"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { Global } from "@/global"
 import { PermissionPrompt } from "./permission"
 import { QuestionPrompt } from "./question"

+ 2 - 2
packages/opencode/src/cli/cmd/tui/routes/session/permission.tsx

@@ -11,8 +11,8 @@ import { useSync } from "../../context/sync"
 import { useTextareaKeybindings } from "../../component/textarea-keybindings"
 import path from "path"
 import { LANGUAGE_EXTENSIONS } from "@/lsp/language"
-import { Keybind } from "@/util/keybind"
-import { Locale } from "@/util/locale"
+import { Keybind } from "@/util"
+import { Locale } from "@/util"
 import { Global } from "@/global"
 import { useDialog } from "../../ui/dialog"
 import { getScrollAcceleration } from "../../util/scroll"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/routes/session/subagent-footer.tsx

@@ -6,7 +6,7 @@ import { SplitBorder } from "@tui/component/border"
 import type { AssistantMessage } from "@opencode-ai/sdk/v2"
 import { useCommandDialog } from "@tui/component/dialog-command"
 import { useKeybind } from "../../context/keybind"
-import { Locale } from "@/util/locale"
+import { Locale } from "@/util"
 import { useTerminalDimensions } from "@opentui/solid"
 
 export function SubagentFooter() {

+ 3 - 3
packages/opencode/src/cli/cmd/tui/thread.ts

@@ -1,15 +1,15 @@
 import { cmd } from "@/cli/cmd/cmd"
 import { tui } from "./app"
-import { Rpc } from "@/util/rpc"
+import { Rpc } from "@/util"
 import { type rpc } from "./worker"
 import path from "path"
 import { fileURLToPath } from "url"
 import { UI } from "@/cli/ui"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { errorMessage } from "@/util/error"
 import { withTimeout } from "@/util/timeout"
 import { withNetworkOptions, resolveNetworkOptions } from "@/cli/network"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import type { GlobalEvent } from "@opencode-ai/sdk/v2"
 import type { EventSource } from "./context/sdk"
 import { win32DisableProcessedInput, win32InstallCtrlCGuard } from "./win32"

+ 1 - 1
packages/opencode/src/cli/cmd/tui/ui/dialog-confirm.tsx

@@ -4,7 +4,7 @@ import { useDialog, type DialogContext } from "./dialog"
 import { createStore } from "solid-js/store"
 import { For } from "solid-js"
 import { useKeyboard } from "@opentui/solid"
-import { Locale } from "@/util/locale"
+import { Locale } from "@/util"
 
 export type DialogConfirmProps = {
   title: string

+ 2 - 2
packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx

@@ -8,8 +8,8 @@ import * as fuzzysort from "fuzzysort"
 import { isDeepEqual } from "remeda"
 import { useDialog, type DialogContext } from "@tui/ui/dialog"
 import { useKeybind } from "@tui/context/keybind"
-import { Keybind } from "@/util/keybind"
-import { Locale } from "@/util/locale"
+import { Keybind } from "@/util"
+import { Locale } from "@/util"
 import { getScrollAcceleration } from "../util/scroll"
 import { useTuiConfig } from "../context/tui-config"
 

+ 2 - 2
packages/opencode/src/cli/cmd/tui/util/clipboard.ts

@@ -4,8 +4,8 @@ import { lazy } from "../../../../util/lazy.js"
 import { tmpdir } from "os"
 import path from "path"
 import fs from "fs/promises"
-import { Filesystem } from "../../../../util/filesystem"
-import { Process } from "../../../../util/process"
+import { Filesystem } from "../../../../util"
+import { Process } from "../../../../util"
 import { which } from "../../../../util/which"
 
 /**

+ 2 - 2
packages/opencode/src/cli/cmd/tui/util/editor.ts

@@ -3,8 +3,8 @@ import { rm } from "node:fs/promises"
 import { tmpdir } from "node:os"
 import { join } from "node:path"
 import { CliRenderer } from "@opentui/core"
-import { Filesystem } from "@/util/filesystem"
-import { Process } from "@/util/process"
+import { Filesystem } from "@/util"
+import { Process } from "@/util"
 
 export namespace Editor {
   export async function open(opts: { value: string; renderer: CliRenderer }): Promise<string | undefined> {

+ 1 - 1
packages/opencode/src/cli/cmd/tui/util/sound.ts

@@ -2,7 +2,7 @@ import { Player } from "cli-sound"
 import { mkdirSync } from "node:fs"
 import { tmpdir } from "node:os"
 import { basename, join } from "node:path"
-import { Process } from "@/util/process"
+import { Process } from "@/util"
 import { which } from "@/util/which"
 import pulseA from "../asset/pulse-a.wav" with { type: "file" }
 import pulseB from "../asset/pulse-b.wav" with { type: "file" }

+ 1 - 1
packages/opencode/src/cli/cmd/tui/util/transcript.ts

@@ -1,5 +1,5 @@
 import type { AssistantMessage, Part, Provider, UserMessage } from "@opencode-ai/sdk/v2"
-import { Locale } from "@/util/locale"
+import { Locale } from "@/util"
 import * as Model from "./model"
 
 export type TranscriptOptions = {

+ 2 - 2
packages/opencode/src/cli/cmd/tui/worker.ts

@@ -1,9 +1,9 @@
 import { Installation } from "@/installation"
 import { Server } from "@/server/server"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { Instance } from "@/project/instance"
 import { InstanceBootstrap } from "@/project/bootstrap"
-import { Rpc } from "@/util/rpc"
+import { Rpc } from "@/util"
 import { upgrade } from "@/cli/upgrade"
 import { Config } from "@/config"
 import { GlobalBus } from "@/bus/global"

+ 2 - 2
packages/opencode/src/cli/cmd/uninstall.ts

@@ -7,8 +7,8 @@ import { Global } from "../../global"
 import fs from "fs/promises"
 import path from "path"
 import os from "os"
-import { Filesystem } from "../../util/filesystem"
-import { Process } from "../../util/process"
+import { Filesystem } from "../../util"
+import { Process } from "../../util"
 
 interface UninstallArgs {
   keepConfig: boolean

+ 1 - 1
packages/opencode/src/cli/heap.ts

@@ -2,7 +2,7 @@ import path from "path"
 import { writeHeapSnapshot } from "node:v8"
 import { Flag } from "@/flag/flag"
 import { Global } from "@/global"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 
 const log = Log.create({ service: "heap" })
 const MINUTE = 60_000

+ 2 - 2
packages/opencode/src/config/config.ts

@@ -1,8 +1,8 @@
-import { Log } from "../util/log"
+import { Log } from "../util"
 import path from "path"
 import { pathToFileURL } from "url"
 import os from "os"
-import { Process } from "../util/process"
+import { Process } from "../util"
 import z from "zod"
 import { mergeDeep, pipe, unique } from "remeda"
 import { Global } from "../global"

+ 1 - 1
packages/opencode/src/config/markdown.ts

@@ -1,7 +1,7 @@
 import { NamedError } from "@opencode-ai/shared/util/error"
 import matter from "gray-matter"
 import { z } from "zod"
-import { Filesystem } from "../util/filesystem"
+import { Filesystem } from "../util"
 
 export namespace ConfigMarkdown {
   export const FILE_REGEX = /(?<![\w`])@(\.?[^\s`,.]*(?:\.[^\s`,.]+)*)/g

+ 1 - 1
packages/opencode/src/config/paths.ts

@@ -3,7 +3,7 @@ import os from "os"
 import z from "zod"
 import { type ParseError as JsoncParseError, parse as parseJsonc, printParseErrorCode } from "jsonc-parser"
 import { NamedError } from "@opencode-ai/shared/util/error"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { Flag } from "@/flag/flag"
 import { Global } from "@/global"
 

+ 2 - 2
packages/opencode/src/config/tui-migrate.ts

@@ -6,8 +6,8 @@ import { ConfigPaths } from "./paths"
 import { TuiInfo, TuiOptions } from "./tui-schema"
 import { Instance } from "@/project/instance"
 import { Flag } from "@/flag/flag"
-import { Log } from "@/util/log"
-import { Filesystem } from "@/util/filesystem"
+import { Log } from "@/util"
+import { Filesystem } from "@/util"
 import { Global } from "@/global"
 
 const log = Log.create({ service: "tui.migrate" })

+ 1 - 1
packages/opencode/src/config/tui.ts

@@ -7,7 +7,7 @@ import { ConfigPaths } from "./paths"
 import { migrateTuiConfig } from "./tui-migrate"
 import { TuiInfo } from "./tui-schema"
 import { Flag } from "@/flag/flag"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { isRecord } from "@/util/record"
 import { Global } from "@/global"
 import { InstanceState } from "@/effect"

+ 1 - 1
packages/opencode/src/control-plane/workspace-context.ts

@@ -1,4 +1,4 @@
-import { LocalContext } from "../util/local-context"
+import { LocalContext } from "../util"
 import type { WorkspaceID } from "../control-plane/schema"
 
 export interface WorkspaceContext {

+ 2 - 2
packages/opencode/src/control-plane/workspace.ts

@@ -8,8 +8,8 @@ import { GlobalBus } from "@/bus/global"
 import { SyncEvent } from "@/sync"
 import { EventTable } from "@/sync/event.sql"
 import { Flag } from "@/flag/flag"
-import { Log } from "@/util/log"
-import { Filesystem } from "@/util/filesystem"
+import { Log } from "@/util"
+import { Filesystem } from "@/util"
 import { ProjectID } from "@/project/schema"
 import { Slug } from "@opencode-ai/shared/util/slug"
 import { WorkspaceTable } from "./workspace.sql"

+ 1 - 1
packages/opencode/src/effect/bridge.ts

@@ -1,7 +1,7 @@
 import { Effect, Fiber } from "effect"
 import { WorkspaceContext } from "@/control-plane/workspace-context"
 import { Instance, type InstanceContext } from "@/project/instance"
-import { LocalContext } from "@/util/local-context"
+import { LocalContext } from "@/util"
 import { InstanceRef, WorkspaceRef } from "./instance-ref"
 import { attachWith } from "./run-service"
 

+ 1 - 1
packages/opencode/src/effect/instance-state.ts

@@ -1,7 +1,7 @@
 import { Effect, Fiber, ScopedCache, Scope, Context } from "effect"
 import { EffectLogger } from "@/effect/logger"
 import { Instance, type InstanceContext } from "@/project/instance"
-import { LocalContext } from "@/util/local-context"
+import { LocalContext } from "@/util"
 import { InstanceRef, WorkspaceRef } from "./instance-ref"
 import { registerDisposer } from "./instance-registry"
 import { WorkspaceContext } from "@/control-plane/workspace-context"

+ 1 - 1
packages/opencode/src/effect/logger.ts

@@ -1,5 +1,5 @@
 import { Cause, Effect, Logger, References } from "effect"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 
 export namespace EffectLogger {
   type Fields = Record<string, unknown>

+ 1 - 1
packages/opencode/src/effect/run-service.ts

@@ -1,7 +1,7 @@
 import { Effect, Layer, ManagedRuntime } from "effect"
 import * as Context from "effect/Context"
 import { Instance } from "@/project/instance"
-import { LocalContext } from "@/util/local-context"
+import { LocalContext } from "@/util"
 import { InstanceRef, WorkspaceRef } from "./instance-ref"
 import { Observability } from "./observability"
 import { WorkspaceContext } from "@/control-plane/workspace-context"

+ 1 - 1
packages/opencode/src/file/file.ts

@@ -12,7 +12,7 @@ import path from "path"
 import z from "zod"
 import { Global } from "../global"
 import { Instance } from "../project/instance"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { Protected } from "./protected"
 import { Ripgrep } from "./ripgrep"
 

+ 2 - 2
packages/opencode/src/file/ripgrep.ts

@@ -5,8 +5,8 @@ import z from "zod"
 import { Cause, Context, Effect, Layer, Queue, Stream } from "effect"
 import { ripgrep } from "ripgrep"
 
-import { Filesystem } from "@/util/filesystem"
-import { Log } from "@/util/log"
+import { Filesystem } from "@/util"
+import { Log } from "@/util"
 
 export namespace Ripgrep {
   const log = Log.create({ service: "ripgrep" })

+ 1 - 1
packages/opencode/src/file/time.ts

@@ -3,7 +3,7 @@ import { InstanceState } from "@/effect"
 import { AppFileSystem } from "@opencode-ai/shared/filesystem"
 import { Flag } from "@/flag/flag"
 import type { SessionID } from "@/session/schema"
-import { Log } from "../util/log"
+import { Log } from "../util"
 
 export namespace FileTime {
   const log = Log.create({ service: "file.time" })

+ 1 - 1
packages/opencode/src/file/watcher.ts

@@ -15,7 +15,7 @@ import { lazy } from "@/util/lazy"
 import { Config } from "../config"
 import { FileIgnore } from "./ignore"
 import { Protected } from "./protected"
-import { Log } from "../util/log"
+import { Log } from "../util"
 
 declare const OPENCODE_LIBC: string | undefined
 

+ 1 - 1
packages/opencode/src/format/format.ts

@@ -6,7 +6,7 @@ import path from "path"
 import { mergeDeep } from "remeda"
 import z from "zod"
 import { Config } from "../config"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import * as Formatter from "./formatter"
 
 const log = Log.create({ service: "format" })

+ 2 - 2
packages/opencode/src/format/formatter.ts

@@ -1,7 +1,7 @@
 import { Npm } from "../npm"
 import { Instance } from "../project/instance"
-import { Filesystem } from "../util/filesystem"
-import { Process } from "../util/process"
+import { Filesystem } from "../util"
+import { Process } from "../util"
 import { which } from "../util/which"
 import { Flag } from "@/flag/flag"
 

+ 1 - 1
packages/opencode/src/global/global.ts

@@ -2,7 +2,7 @@ import fs from "fs/promises"
 import { xdgData, xdgCache, xdgConfig, xdgState } from "xdg-basedir"
 import path from "path"
 import os from "os"
-import { Filesystem } from "../util/filesystem"
+import { Filesystem } from "../util"
 import { Flock } from "@opencode-ai/shared/util/flock"
 
 const app = "opencode"

+ 2 - 2
packages/opencode/src/ide/ide.ts

@@ -1,8 +1,8 @@
 import { BusEvent } from "@/bus/bus-event"
 import z from "zod"
 import { NamedError } from "@opencode-ai/shared/util/error"
-import { Log } from "../util/log"
-import { Process } from "@/util/process"
+import { Log } from "../util"
+import { Process } from "@/util"
 
 const SUPPORTED_IDES = [
   { name: "Windsurf" as const, cmd: "windsurf" },

+ 2 - 2
packages/opencode/src/index.ts

@@ -2,7 +2,7 @@ import yargs from "yargs"
 import { hideBin } from "yargs/helpers"
 import { RunCommand } from "./cli/cmd/run"
 import { GenerateCommand } from "./cli/cmd/generate"
-import { Log } from "./util/log"
+import { Log } from "./util"
 import { ConsoleCommand } from "./cli/cmd/account"
 import { ProvidersCommand } from "./cli/cmd/providers"
 import { AgentCommand } from "./cli/cmd/agent"
@@ -14,7 +14,7 @@ import { Installation } from "./installation"
 import { NamedError } from "@opencode-ai/shared/util/error"
 import { FormatError } from "./cli/error"
 import { ServeCommand } from "./cli/cmd/serve"
-import { Filesystem } from "./util/filesystem"
+import { Filesystem } from "./util"
 import { DebugCommand } from "./cli/cmd/debug"
 import { StatsCommand } from "./cli/cmd/stats"
 import { McpCommand } from "./cli/cmd/mcp"

+ 1 - 1
packages/opencode/src/installation/installation.ts

@@ -7,7 +7,7 @@ import path from "path"
 import z from "zod"
 import { BusEvent } from "@/bus/bus-event"
 import { Flag } from "../flag/flag"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { CHANNEL as channel, VERSION as version } from "./meta"
 
 import semver from "semver"

+ 3 - 3
packages/opencode/src/lsp/client.ts

@@ -4,15 +4,15 @@ import path from "path"
 import { pathToFileURL, fileURLToPath } from "url"
 import { createMessageConnection, StreamMessageReader, StreamMessageWriter } from "vscode-jsonrpc/node"
 import type { Diagnostic as VSCodeDiagnostic } from "vscode-languageserver-types"
-import { Log } from "../util/log"
-import { Process } from "../util/process"
+import { Log } from "../util"
+import { Process } from "../util"
 import { LANGUAGE_EXTENSIONS } from "./language"
 import z from "zod"
 import type { LSPServer } from "./server"
 import { NamedError } from "@opencode-ai/shared/util/error"
 import { withTimeout } from "../util/timeout"
 import { Instance } from "../project/instance"
-import { Filesystem } from "../util/filesystem"
+import { Filesystem } from "../util"
 
 const DIAGNOSTICS_DEBOUNCE_MS = 150
 

+ 2 - 2
packages/opencode/src/lsp/index.ts

@@ -1,6 +1,6 @@
 import { BusEvent } from "@/bus/bus-event"
 import { Bus } from "@/bus"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { LSPClient } from "./client"
 import path from "path"
 import { pathToFileURL, fileURLToPath } from "url"
@@ -9,7 +9,7 @@ import z from "zod"
 import { Config } from "../config"
 import { Instance } from "../project/instance"
 import { Flag } from "@/flag/flag"
-import { Process } from "../util/process"
+import { Process } from "../util"
 import { spawn as lspspawn } from "./launch"
 import { Effect, Layer, Context } from "effect"
 import { InstanceState } from "@/effect"

+ 1 - 1
packages/opencode/src/lsp/launch.ts

@@ -1,5 +1,5 @@
 import type { ChildProcessWithoutNullStreams } from "child_process"
-import { Process } from "../util/process"
+import { Process } from "../util"
 
 type Child = Process.Child & ChildProcessWithoutNullStreams
 

+ 3 - 3
packages/opencode/src/lsp/server.ts

@@ -2,14 +2,14 @@ import type { ChildProcessWithoutNullStreams } from "child_process"
 import path from "path"
 import os from "os"
 import { Global } from "../global"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { text } from "node:stream/consumers"
 import fs from "fs/promises"
-import { Filesystem } from "../util/filesystem"
+import { Filesystem } from "../util"
 import { Instance } from "../project/instance"
 import { Flag } from "../flag/flag"
 import { Archive } from "../util"
-import { Process } from "../util/process"
+import { Process } from "../util"
 import { which } from "../util/which"
 import { Module } from "@opencode-ai/shared/util/module"
 import { spawn } from "./launch"

+ 1 - 1
packages/opencode/src/mcp/mcp.ts

@@ -10,7 +10,7 @@ import {
   ToolListChangedNotificationSchema,
 } from "@modelcontextprotocol/sdk/types.js"
 import { Config } from "../config"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { NamedError } from "@opencode-ai/shared/util/error"
 import z from "zod/v4"
 import { Instance } from "../project/instance"

+ 1 - 1
packages/opencode/src/mcp/oauth-callback.ts

@@ -1,6 +1,6 @@
 import { createConnection } from "net"
 import { createServer } from "http"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { OAUTH_CALLBACK_PORT, OAUTH_CALLBACK_PATH, parseRedirectUri } from "./oauth-provider"
 
 const log = Log.create({ service: "mcp.oauth-callback" })

+ 1 - 1
packages/opencode/src/mcp/oauth-provider.ts

@@ -7,7 +7,7 @@ import type {
 } from "@modelcontextprotocol/sdk/shared/auth.js"
 import { Effect } from "effect"
 import { McpAuth } from "./auth"
-import { Log } from "../util/log"
+import { Log } from "../util"
 
 const log = Log.create({ service: "mcp.oauth" })
 

+ 1 - 1
packages/opencode/src/node.ts

@@ -1,6 +1,6 @@
 export { Config } from "./config"
 export { Server } from "./server/server"
 export { bootstrap } from "./cli/bootstrap"
-export { Log } from "./util/log"
+export { Log } from "./util"
 export { Database } from "./storage/db"
 export { JsonMigration } from "./storage/json-migration"

+ 2 - 2
packages/opencode/src/npm/npm.ts

@@ -2,10 +2,10 @@ import semver from "semver"
 import z from "zod"
 import { NamedError } from "@opencode-ai/shared/util/error"
 import { Global } from "../global"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import path from "path"
 import { readdir, rm } from "fs/promises"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { Flock } from "@opencode-ai/shared/util/flock"
 import { Arborist } from "@npmcli/arborist"
 

+ 1 - 1
packages/opencode/src/patch/patch.ts

@@ -2,7 +2,7 @@ import z from "zod"
 import * as path from "path"
 import * as fs from "fs/promises"
 import { readFileSync } from "fs"
-import { Log } from "../util/log"
+import { Log } from "../util"
 
 const log = Log.create({ service: "patch" })
 

+ 1 - 1
packages/opencode/src/permission/evaluate.ts

@@ -1,4 +1,4 @@
-import { Wildcard } from "@/util/wildcard"
+import { Wildcard } from "@/util"
 
 type Rule = {
   permission: string

+ 2 - 2
packages/opencode/src/permission/permission.ts

@@ -7,9 +7,9 @@ import { MessageID, SessionID } from "@/session/schema"
 import { PermissionTable } from "@/session/session.sql"
 import { Database, eq } from "@/storage/db"
 import { zod } from "@/util/effect-zod"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { withStatics } from "@/util/schema"
-import { Wildcard } from "@/util/wildcard"
+import { Wildcard } from "@/util"
 import { Deferred, Effect, Layer, Schema, Context } from "effect"
 import os from "os"
 import { evaluate as evalRule } from "./evaluate"

+ 1 - 1
packages/opencode/src/plugin/codex.ts

@@ -1,5 +1,5 @@
 import type { Hooks, PluginInput } from "@opencode-ai/plugin"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { Installation } from "../installation"
 import { OAUTH_DUMMY_KEY } from "../auth"
 import os from "os"

+ 1 - 1
packages/opencode/src/plugin/github-copilot/copilot.ts

@@ -2,7 +2,7 @@ import type { Hooks, PluginInput } from "@opencode-ai/plugin"
 import type { Model } from "@opencode-ai/sdk/v2"
 import { Installation } from "@/installation"
 import { iife } from "@/util/iife"
-import { Log } from "../../util/log"
+import { Log } from "../../util"
 import { setTimeout as sleep } from "node:timers/promises"
 import { CopilotModels } from "./models"
 import { MessageV2 } from "@/session/message-v2"

+ 1 - 1
packages/opencode/src/plugin/install.ts

@@ -9,7 +9,7 @@ import {
 
 import { ConfigPaths } from "@/config/paths"
 import { Global } from "@/global"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { Flock } from "@opencode-ai/shared/util/flock"
 import { isRecord } from "@/util/record"
 

+ 1 - 1
packages/opencode/src/plugin/meta.ts

@@ -3,7 +3,7 @@ import { fileURLToPath } from "url"
 
 import { Flag } from "@/flag/flag"
 import { Global } from "@/global"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { Flock } from "@opencode-ai/shared/util/flock"
 
 import { parsePluginSpecifier, pluginSource } from "./shared"

+ 1 - 1
packages/opencode/src/plugin/plugin.ts

@@ -7,7 +7,7 @@ import type {
 } from "@opencode-ai/plugin"
 import { Config } from "../config"
 import { Bus } from "../bus"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { createOpencodeClient } from "@opencode-ai/sdk"
 import { Flag } from "../flag/flag"
 import { CodexAuthPlugin } from "./codex"

+ 1 - 1
packages/opencode/src/plugin/shared.ts

@@ -3,7 +3,7 @@ import { fileURLToPath, pathToFileURL } from "url"
 import npa from "npm-package-arg"
 import semver from "semver"
 import { Npm } from "../npm"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { isRecord } from "@/util/record"
 
 // Old npm package names for plugins that are now built-in

+ 1 - 1
packages/opencode/src/project/bootstrap.ts

@@ -8,7 +8,7 @@ import { Vcs } from "./vcs"
 import { Bus } from "../bus"
 import { Command } from "../command"
 import { Instance } from "./instance"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { FileWatcher } from "@/file/watcher"
 import { ShareNext } from "@/share/share-next"
 import * as Effect from "effect/Effect"

+ 2 - 2
packages/opencode/src/project/instance.ts

@@ -3,8 +3,8 @@ import { disposeInstance } from "@/effect/instance-registry"
 import { makeRuntime } from "@/effect/run-service"
 import { AppFileSystem } from "@opencode-ai/shared/filesystem"
 import { iife } from "@/util/iife"
-import { Log } from "@/util/log"
-import { LocalContext } from "../util/local-context"
+import { Log } from "@/util"
+import { LocalContext } from "../util"
 import { Project } from "./project"
 import { WorkspaceContext } from "@/control-plane/workspace-context"
 

+ 1 - 1
packages/opencode/src/project/project.ts

@@ -2,7 +2,7 @@ import z from "zod"
 import { and, Database, eq } from "../storage/db"
 import { ProjectTable } from "./project.sql"
 import { SessionTable } from "../session/session.sql"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { Flag } from "@/flag/flag"
 import { BusEvent } from "@/bus/bus-event"
 import { GlobalBus } from "@/bus/global"

+ 1 - 1
packages/opencode/src/project/vcs.ts

@@ -7,7 +7,7 @@ import { InstanceState } from "@/effect"
 import { AppFileSystem } from "@opencode-ai/shared/filesystem"
 import { FileWatcher } from "@/file/watcher"
 import { Git } from "@/git"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { Instance } from "./instance"
 import z from "zod"
 

+ 2 - 2
packages/opencode/src/provider/models.ts

@@ -1,11 +1,11 @@
 import { Global } from "../global"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import path from "path"
 import z from "zod"
 import { Installation } from "../installation"
 import { Flag } from "../flag/flag"
 import { lazy } from "@/util/lazy"
-import { Filesystem } from "../util/filesystem"
+import { Filesystem } from "../util"
 import { Flock } from "@opencode-ai/shared/util/flock"
 import { Hash } from "@opencode-ai/shared/util/hash"
 

+ 1 - 1
packages/opencode/src/provider/provider.ts

@@ -4,7 +4,7 @@ import fuzzysort from "fuzzysort"
 import { Config } from "../config"
 import { mapValues, mergeDeep, omit, pickBy, sortBy } from "remeda"
 import { NoSuchModelError, type Provider as SDK } from "ai"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { Npm } from "../npm"
 import { Hash } from "@opencode-ai/shared/util/hash"
 import { Plugin } from "../plugin"

+ 1 - 1
packages/opencode/src/pty/service.ts

@@ -4,7 +4,7 @@ import { InstanceState } from "@/effect"
 import { Instance } from "@/project/instance"
 import type { Proc } from "#pty"
 import z from "zod"
-import { Log } from "../util/log"
+import { Log } from "../util"
 import { lazy } from "@opencode-ai/shared/util/lazy"
 import { Shell } from "@/shell/shell"
 import { Plugin } from "@/plugin"

+ 1 - 1
packages/opencode/src/question/index.ts

@@ -4,7 +4,7 @@ import { BusEvent } from "@/bus/bus-event"
 import { InstanceState } from "@/effect"
 import { SessionID, MessageID } from "@/session/schema"
 import { zod } from "@/util/effect-zod"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { withStatics } from "@/util/schema"
 import { QuestionID } from "./schema"
 

+ 1 - 1
packages/opencode/src/server/control/index.ts

@@ -1,6 +1,6 @@
 import { Auth } from "@/auth"
 import { AppRuntime } from "@/effect/app-runtime"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { Effect } from "effect"
 import { ProviderID } from "@/provider/schema"
 import { Hono } from "hono"

+ 1 - 1
packages/opencode/src/server/fence.ts

@@ -3,7 +3,7 @@ import { Database, inArray } from "@/storage/db"
 import { EventSequenceTable } from "@/sync/event.sql"
 import { Workspace } from "@/control-plane/workspace"
 import type { WorkspaceID } from "@/control-plane/schema"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 
 const HEADER = "x-opencode-sync"
 type State = Record<string, number>

+ 1 - 1
packages/opencode/src/server/instance/event.ts

@@ -2,7 +2,7 @@ import z from "zod"
 import { Hono } from "hono"
 import { describeRoute, resolver } from "hono-openapi"
 import { streamSSE } from "hono/streaming"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { BusEvent } from "@/bus/bus-event"
 import { Bus } from "@/bus"
 import { AsyncQueue } from "../../util/queue"

+ 1 - 1
packages/opencode/src/server/instance/global.ts

@@ -10,7 +10,7 @@ import { AppRuntime } from "@/effect/app-runtime"
 import { AsyncQueue } from "@/util/queue"
 import { Instance } from "../../project/instance"
 import { Installation } from "@/installation"
-import { Log } from "../../util/log"
+import { Log } from "../../util"
 import { lazy } from "../../util/lazy"
 import { Config } from "../../config"
 import { errors } from "../error"

+ 1 - 1
packages/opencode/src/server/instance/httpapi/server.ts

@@ -9,7 +9,7 @@ import { Flag } from "@/flag/flag"
 import { InstanceBootstrap } from "@/project/bootstrap"
 import { Instance } from "@/project/instance"
 import { lazy } from "@/util/lazy"
-import { Filesystem } from "@/util/filesystem"
+import { Filesystem } from "@/util"
 import { PermissionApi, permissionHandlers } from "./permission"
 import { ProviderApi, providerHandlers } from "./provider"
 import { QuestionApi, questionHandlers } from "./question"

+ 1 - 1
packages/opencode/src/server/instance/middleware.ts

@@ -11,7 +11,7 @@ import { Session } from "@/session"
 import { SessionID } from "@/session/schema"
 import { WorkspaceContext } from "@/control-plane/workspace-context"
 import { AppRuntime } from "@/effect/app-runtime"
-import { Log } from "@/util/log"
+import { Log } from "@/util"
 import { AppFileSystem } from "@opencode-ai/shared/filesystem"
 
 type Rule = { method?: string; path: string; exact?: boolean; action: "local" | "forward" }

+ 1 - 1
packages/opencode/src/server/instance/session.ts

@@ -18,7 +18,7 @@ import { AppRuntime } from "../../effect/app-runtime"
 import { Agent } from "../../agent/agent"
 import { Snapshot } from "@/snapshot"
 import { Command } from "../../command"
-import { Log } from "../../util/log"
+import { Log } from "../../util"
 import { Permission } from "@/permission"
 import { PermissionID } from "@/permission/schema"
 import { ModelID, ProviderID } from "@/provider/schema"

Некоторые файлы не были показаны из-за большого количества измененных файлов