core: move Global module to @opencode-ai/core for centralized path management

Move the Global module from packages/opencode/src/global to packages/core/src/global
to provide a unified location for managing XDG directories and application paths.
This eliminates duplicate path definitions across packages and ensures consistent
access to data, config, cache, state, log, and bin directories throughout the codebase.
This commit is contained in:
Dax Raad
2026-04-25 13:51:37 -04:00
parent fefc22dd94
commit 9031b8f108
61 changed files with 99 additions and 143 deletions
@@ -4,7 +4,7 @@ import path from "path"
import { pathToFileURL } from "url"
import { tmpdir } from "../../fixture/fixture"
import { createTuiPluginApi } from "../../fixture/tui-plugin"
import { Global } from "../../../src/global"
import { Global } from "@opencode-ai/core/global"
import { TuiConfig } from "../../../src/cli/cmd/tui/config/tui"
import { Filesystem } from "../../../src/util/"
+1 -1
View File
@@ -23,7 +23,7 @@ const infra = CrossSpawnSpawner.defaultLayer.pipe(
import path from "path"
import fs from "fs/promises"
import { pathToFileURL } from "url"
import { Global } from "../../src/global"
import { Global } from "@opencode-ai/core/global"
import { ProjectID } from "../../src/project/schema"
import { Filesystem } from "../../src/util"
import { ConfigPlugin } from "@/config/plugin"
+1 -1
View File
@@ -5,7 +5,7 @@ import { tmpdir } from "../fixture/fixture"
import { Instance } from "../../src/project/instance"
import { TuiConfig } from "../../src/cli/cmd/tui/config/tui"
import { Config } from "../../src/config"
import { Global } from "../../src/global"
import { Global } from "@opencode-ai/core/global"
import { Filesystem } from "../../src/util"
import { AppRuntime } from "../../src/effect/app-runtime"
import { Effect, Layer } from "effect"
@@ -7,7 +7,7 @@ import { tmpdir } from "../fixture/fixture"
import { Instance } from "../../src/project/instance"
import { Provider } from "../../src/provider"
import { Env } from "../../src/env"
import { Global } from "../../src/global"
import { Global } from "@opencode-ai/core/global"
import { Filesystem } from "../../src/util"
import { Effect } from "effect"
import { AppRuntime } from "../../src/effect/app-runtime"
@@ -11,7 +11,7 @@ export {}
// import { Instance } from "../../src/project/instance"
// import { Provider } from "../../src/provider"
// import { Env } from "../../src/env"
// import { Global } from "../../src/global"
// import { Global } from "@opencode-ai/core/global"
// import { GitLabWorkflowLanguageModel } from "gitlab-ai-provider"
// test("GitLab Duo: loads provider with API key from environment", async () => {
@@ -3,7 +3,7 @@ import { mkdir, unlink } from "fs/promises"
import path from "path"
import { tmpdir } from "../fixture/fixture"
import { Global } from "../../src/global"
import { Global } from "@opencode-ai/core/global"
import { Instance } from "../../src/project/instance"
import { Plugin } from "../../src/plugin/index"
import { ModelsDev } from "../../src/provider"
@@ -6,7 +6,7 @@ import { Instruction } from "../../src/session/instruction"
import type { MessageV2 } from "../../src/session/message-v2"
import { Instance } from "../../src/project/instance"
import { MessageID, PartID, SessionID } from "../../src/session/schema"
import { Global } from "../../src/global"
import { Global } from "@opencode-ai/core/global"
import { tmpdir } from "../fixture/fixture"
const run = <A>(effect: Effect.Effect<A, any, Instruction.Service>) =>
@@ -1,7 +1,7 @@
import { describe, test, expect, beforeAll, afterAll } from "bun:test"
import { Effect } from "effect"
import { Discovery } from "../../src/skill/discovery"
import { Global } from "../../src/global"
import { Global } from "@opencode-ai/core/global"
import { Filesystem } from "../../src/util"
import { rm } from "fs/promises"
import path from "path"
+1 -1
View File
@@ -1,6 +1,6 @@
import { describe, expect, test } from "bun:test"
import path from "path"
import { Global } from "../../src/global"
import { Global } from "@opencode-ai/core/global"
import { InstallationChannel } from "@opencode-ai/core/installation/version"
import { Database } from "../../src/storage"
@@ -6,7 +6,7 @@ import path from "path"
import fs from "fs/promises"
import { readFileSync, readdirSync } from "fs"
import { JsonMigration } from "../../src/storage"
import { Global } from "../../src/global"
import { Global } from "@opencode-ai/core/global"
import { ProjectTable } from "../../src/project/project.sql"
import { ProjectID } from "../../src/project/schema"
import { SessionTable, MessageTable, PartTable, TodoTable, PermissionTable } from "../../src/session/session.sql"
@@ -4,7 +4,7 @@ import { Effect, Exit, Layer } from "effect"
import { AppFileSystem } from "@opencode-ai/core/filesystem"
import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner"
import { Git } from "../../src/git"
import { Global } from "../../src/global"
import { Global } from "@opencode-ai/core/global"
import { Storage } from "../../src/storage"
import { tmpdirScoped } from "../fixture/fixture"
import { testEffect } from "../lib/effect"
+1 -1
View File
@@ -1,7 +1,7 @@
import { afterEach, expect, test } from "bun:test"
import fs from "fs/promises"
import path from "path"
import { Global } from "../../src/global"
import { Global } from "@opencode-ai/core/global"
import { Log } from "../../src/util"
import { tmpdir } from "../fixture/fixture"