From 68cdfeffeb91f56d86e0e31a21194de2c6dea4c7 Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sun, 19 Jul 2026 19:46:34 -0400 Subject: [PATCH 1/2] fix(cli): simplify service channel config --- packages/cli/src/services/service-config.ts | 35 +++++++++++++++------ packages/cli/test/service.test.ts | 25 +++++++++++++-- 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/packages/cli/src/services/service-config.ts b/packages/cli/src/services/service-config.ts index 58c7c76935d5..abcaf00dcfb8 100644 --- a/packages/cli/src/services/service-config.ts +++ b/packages/cli/src/services/service-config.ts @@ -25,17 +25,21 @@ const decodeInfo = Schema.decodeUnknownEffect(Schema.fromJsonString(Info)) const decodeRegistration = Schema.decodeUnknownEffect(Schema.fromJsonString(Service.Info)) export function filename(channel = InstallationChannel) { - if (channel === "latest") return "service.json" - if (channel === "local") return "service-local.json" - return `service-${Hash.fast(channel)}.json` + if (channel === "latest" || channel === "next") return "service.json" + return `service-${channel.replace(/[^a-zA-Z0-9._-]/g, "-")}.json` } export function defaultPort(channel = InstallationChannel) { - if (channel === "latest") return 0xc0de + if (channel === "latest" || channel === "next") return 0xc0de if (channel === "local") return 0xc0df return 10_000 + (Number.parseInt(Hash.fast(channel).slice(0, 8), 16) % 50_000) } +export function legacyFilename(channel = InstallationChannel) { + if (channel === "latest" || channel === "local") return + return `service-${Hash.fast(channel)}.json` +} + export function versionBelongsToChannel( version: string | undefined, channel = InstallationChannel, @@ -54,7 +58,6 @@ export const migrateRegistration = Effect.fnUntraced(function* ( channel = InstallationChannel, installedVersion = InstallationVersion, ) { - if (channel === "latest" || channel === "local") return const fs = yield* FileSystem.FileSystem const text = yield* fs.readFileString(legacy).pipe(Effect.option) if (Option.isNone(text)) return @@ -64,6 +67,14 @@ export const migrateRegistration = Effect.fnUntraced(function* ( yield* fs.writeFileString(file, text.value, { flag: "wx", mode: 0o600 }).pipe(Effect.ignore) }) +export const migrateConfig = Effect.fnUntraced(function* (legacy: string, file: string) { + const fs = yield* FileSystem.FileSystem + const text = yield* fs.readFileString(legacy).pipe(Effect.option) + if (Option.isNone(text)) return + if (Option.isNone(yield* decodeInfo(text.value).pipe(Effect.option))) return + yield* fs.writeFileString(file, text.value, { flag: "wx", mode: 0o600 }).pipe(Effect.ignore) +}) + function configKey(key: string): Key { if (key === "hostname" || key === "port" || key === "password") return key throw new Error(`Unknown service config key: ${key}`) @@ -73,18 +84,23 @@ const paths = Effect.gen(function* () { const fs = yield* FileSystem.FileSystem const global = yield* Global.Service const name = filename() + const legacy = legacyFilename() const file = path.join(global.state, name) return { fs, file, - legacyFile: path.join(global.state, "service.json"), + legacyConfigFile: legacy ? path.join(global.config, legacy) : undefined, + legacyRegistrationFiles: [ + ...(legacy ? [path.join(global.state, legacy)] : []), + ...(name !== "service.json" && InstallationChannel !== "local" ? [path.join(global.state, "service.json")] : []), + ], configFile: path.join(global.config, name), } }) export const options = Effect.fnUntraced(function* () { - const { file, legacyFile } = yield* paths - yield* migrateRegistration(legacyFile, file) + const { file, legacyRegistrationFiles } = yield* paths + yield* Effect.forEach(legacyRegistrationFiles, (legacy) => migrateRegistration(legacy, file)) return { file, version: InstallationVersion, @@ -93,7 +109,8 @@ export const options = Effect.fnUntraced(function* () { }) export const read = Effect.fn("cli.service-config.read")(function* () { - const { fs, configFile } = yield* paths + const { fs, configFile, legacyConfigFile } = yield* paths + if (legacyConfigFile) yield* migrateConfig(legacyConfigFile, configFile) return yield* fs.readFileString(configFile).pipe( Effect.flatMap(decodeInfo), Effect.catch(() => Effect.succeed({} as Info)), diff --git a/packages/cli/test/service.test.ts b/packages/cli/test/service.test.ts index 707a3fbdb7f2..23a1f96b4710 100644 --- a/packages/cli/test/service.test.ts +++ b/packages/cli/test/service.test.ts @@ -20,6 +20,7 @@ import { ServiceConfig } from "../src/services/service-config" test("managed service ports are stable per installation channel", () => { expect(ServiceConfig.defaultPort("latest")).toBe(0xc0de) + expect(ServiceConfig.defaultPort("next")).toBe(0xc0de) expect(ServiceConfig.defaultPort("local")).toBe(0xc0df) expect(ServiceConfig.defaultPort("preview-a")).toBe(ServiceConfig.defaultPort("preview-a")) expect(ServiceConfig.defaultPort("preview-a")).not.toBe(ServiceConfig.defaultPort("preview-b")) @@ -43,17 +44,35 @@ test("local channel stores service config with the local service filename", asyn } }) -test("service filenames isolate installation channels", () => { +test("service filenames share release channels and identify preview channels", () => { expect(ServiceConfig.filename("latest")).toBe("service.json") + expect(ServiceConfig.filename("next")).toBe("service.json") expect(ServiceConfig.filename("local")).toBe("service-local.json") - expect(ServiceConfig.filename("preview-a")).not.toBe(ServiceConfig.filename("preview-b")) - expect(ServiceConfig.filename("preview-a")).not.toBe(ServiceConfig.filename("latest")) + expect(ServiceConfig.filename("preview-a")).toBe("service-preview-a.json") + expect(ServiceConfig.filename("preview/a")).toBe("service-preview-a.json") expect(ServiceConfig.versionBelongsToChannel("0.0.0-preview-a-1234", "preview-a")).toBe(true) expect(ServiceConfig.versionBelongsToChannel("0.0.0-preview-a-1234.2", "preview-a")).toBe(true) expect(ServiceConfig.versionBelongsToChannel("0.0.0-preview-a-other-1234", "preview-a")).toBe(false) expect(ServiceConfig.versionBelongsToChannel("1.2.3", "preview-a")).toBe(false) }) +test("service config migrates from the hashed channel filename", async () => { + const root = await fs.mkdtemp(path.join(os.tmpdir(), "opencode-service-config-migration-")) + const legacy = path.join(root, ServiceConfig.legacyFilename("preview-a")!) + const target = path.join(root, ServiceConfig.filename("preview-a")) + try { + await fs.writeFile(legacy, JSON.stringify({ hostname: "127.0.0.2", port: 4098 })) + await Effect.runPromise(ServiceConfig.migrateConfig(legacy, target).pipe(Effect.provide(NodeFileSystem.layer))) + expect(await Bun.file(target).json()).toEqual({ hostname: "127.0.0.2", port: 4098 }) + + await fs.writeFile(target, JSON.stringify({ port: 4099 })) + await Effect.runPromise(ServiceConfig.migrateConfig(legacy, target).pipe(Effect.provide(NodeFileSystem.layer))) + expect(await Bun.file(target).json()).toEqual({ port: 4099 }) + } finally { + await fs.rm(root, { recursive: true, force: true }) + } +}) + test("preview registration migration never moves stable discovery", async () => { const root = await fs.mkdtemp(path.join(os.tmpdir(), "opencode-service-migration-")) const legacy = path.join(root, "service.json") From 6ce2519cab5ea4ab011ab116bce44c89774048da Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sun, 19 Jul 2026 20:39:55 -0400 Subject: [PATCH 2/2] refactor: extract shared util package --- bun.lock | 60 +++++++++---- package.json | 2 +- packages/cli/package.json | 3 +- packages/cli/script/node-assets.ts | 3 +- .../src/commands/handlers/console/login.ts | 2 +- packages/cli/src/commands/handlers/default.ts | 6 +- packages/cli/src/commands/handlers/mcp/add.ts | 2 +- packages/cli/src/config/config.ts | 2 +- packages/cli/src/framework/runtime.ts | 4 +- packages/cli/src/index.ts | 12 +-- packages/cli/src/mini-host.ts | 4 +- packages/cli/src/run/run.ts | 2 +- packages/cli/src/server-process.ts | 8 +- .../cli/src/services/server-connection.ts | 2 +- packages/cli/src/services/service-config.ts | 6 +- packages/cli/src/services/standalone.ts | 4 +- .../cli/src/services/update-preflight.tsx | 2 +- packages/cli/src/services/updater.ts | 8 +- packages/cli/test/config.test.ts | 2 +- packages/cli/test/import-boundaries.test.ts | 10 +++ packages/cli/test/mini.test.ts | 2 +- packages/cli/test/server-connection.test.ts | 4 +- packages/cli/test/service.test.ts | 88 +------------------ packages/core/package.json | 25 +----- packages/core/src/agent.ts | 2 +- packages/core/src/aisdk.ts | 2 +- packages/core/src/catalog.ts | 2 +- packages/core/src/command.ts | 4 +- packages/core/src/config.ts | 6 +- packages/core/src/config/plugin/agent.ts | 4 +- packages/core/src/config/plugin/command.ts | 2 +- packages/core/src/config/plugin/reference.ts | 2 +- packages/core/src/config/plugin/skill.ts | 2 +- packages/core/src/config/variable.ts | 2 +- .../core/src/control-plane/move-session.ts | 6 +- packages/core/src/credential.ts | 2 +- packages/core/src/database/database.ts | 8 +- packages/core/src/effect/app-node-builder.ts | 4 +- packages/core/src/event-logger.ts | 2 +- packages/core/src/event.ts | 2 +- packages/core/src/file-mutation.ts | 4 +- packages/core/src/filesystem.ts | 4 +- packages/core/src/filesystem/ignore.ts | 2 +- .../core/src/filesystem/location-watcher.ts | 4 +- packages/core/src/filesystem/search.ts | 6 +- packages/core/src/filesystem/watcher.ts | 4 +- packages/core/src/form.ts | 2 +- packages/core/src/generate.ts | 4 +- packages/core/src/git.ts | 6 +- packages/core/src/image.ts | 2 +- packages/core/src/instruction-discovery.ts | 8 +- packages/core/src/instructions/builtins.ts | 2 +- packages/core/src/integration.ts | 4 +- packages/core/src/job.ts | 2 +- packages/core/src/kv.ts | 2 +- packages/core/src/location-mutation.ts | 4 +- packages/core/src/location-service-map.ts | 4 +- packages/core/src/location-services.ts | 4 +- packages/core/src/location.ts | 4 +- packages/core/src/mcp/client.ts | 2 +- packages/core/src/mcp/index.ts | 4 +- packages/core/src/mcp/instructions.ts | 2 +- packages/core/src/models-dev.ts | 16 ++-- packages/core/src/permission.ts | 2 +- packages/core/src/permission/saved.ts | 2 +- packages/core/src/plugin.ts | 2 +- packages/core/src/plugin/agent.ts | 2 +- packages/core/src/plugin/hooks.ts | 2 +- packages/core/src/plugin/internal.ts | 6 +- packages/core/src/plugin/layer-map.example.ts | 2 +- .../plugin/provider/cloudflare-ai-gateway.ts | 2 +- .../plugin/provider/cloudflare-workers-ai.ts | 2 +- packages/core/src/plugin/provider/dynamic.ts | 2 +- .../src/plugin/provider/github-copilot.ts | 2 +- packages/core/src/plugin/provider/gitlab.ts | 2 +- packages/core/src/plugin/provider/openai.ts | 2 +- .../core/src/plugin/provider/sap-ai-core.ts | 2 +- packages/core/src/plugin/provider/xai.ts | 2 +- packages/core/src/plugin/runtime.ts | 2 +- packages/core/src/plugin/sdk.ts | 2 +- packages/core/src/plugin/skill.ts | 4 +- packages/core/src/plugin/supervisor.ts | 10 +-- packages/core/src/project.ts | 8 +- packages/core/src/project/copy.ts | 4 +- packages/core/src/project/directories.ts | 2 +- packages/core/src/provider.ts | 2 +- packages/core/src/pty.ts | 2 +- packages/core/src/pty/ticket.ts | 2 +- packages/core/src/question.ts | 2 +- packages/core/src/reference.ts | 4 +- packages/core/src/reference/instructions.ts | 2 +- packages/core/src/repository-cache.ts | 8 +- packages/core/src/ripgrep.ts | 4 +- packages/core/src/ripgrep/binary.ts | 10 +-- packages/core/src/session.ts | 8 +- packages/core/src/session/compaction.ts | 4 +- packages/core/src/session/context.ts | 2 +- packages/core/src/session/execution.ts | 2 +- .../core/src/session/execution/restart.ts | 2 +- packages/core/src/session/generate-node.ts | 4 +- .../core/src/session/instruction-entry.ts | 2 +- packages/core/src/session/instructions.ts | 4 +- packages/core/src/session/model-headers.ts | 4 +- packages/core/src/session/model-request.ts | 2 +- packages/core/src/session/projector.ts | 2 +- packages/core/src/session/runner/llm.ts | 4 +- packages/core/src/session/runner/model.ts | 4 +- packages/core/src/session/store.ts | 2 +- packages/core/src/session/title.ts | 4 +- packages/core/src/shell.ts | 6 +- packages/core/src/shell/select.ts | 4 +- packages/core/src/skill.ts | 4 +- packages/core/src/skill/discovery.ts | 10 +-- packages/core/src/skill/instructions.ts | 2 +- packages/core/src/snapshot.ts | 8 +- packages/core/src/tool-output-store.ts | 6 +- packages/core/src/tool/edit.ts | 2 +- packages/core/src/tool/glob.ts | 2 +- packages/core/src/tool/grep.ts | 2 +- packages/core/src/tool/hooks.ts | 2 +- packages/core/src/tool/mcp.ts | 2 +- packages/core/src/tool/patch.ts | 2 +- packages/core/src/tool/read-filesystem.ts | 4 +- packages/core/src/tool/read.ts | 2 +- packages/core/src/tool/registry.ts | 2 +- packages/core/src/tool/shell.ts | 2 +- packages/core/src/tool/skill.ts | 2 +- packages/core/src/tool/websearch.ts | 6 +- packages/core/src/util/process-lock.ts | 2 +- packages/core/src/util/which.ts | 2 +- packages/core/src/vcs.ts | 6 +- packages/core/src/vcs/git.ts | 2 +- packages/core/src/vcs/hg.ts | 4 +- packages/core/src/wellknown.ts | 4 +- packages/core/test/agent.test.ts | 2 +- packages/core/test/catalog.test.ts | 2 +- packages/core/test/config/agent.test.ts | 6 +- packages/core/test/config/command.test.ts | 4 +- packages/core/test/config/config.test.ts | 8 +- packages/core/test/config/plugin.test.ts | 2 +- packages/core/test/config/reload.test.ts | 2 +- packages/core/test/config/skill.test.ts | 2 +- packages/core/test/credential.test.ts | 2 +- packages/core/test/database-migration.test.ts | 2 +- .../test/effect/cross-spawn-spawner.test.ts | 4 +- .../layer-node/layer-node-types.test.ts | 4 +- .../test/effect/layer-node/layer-node.test.ts | 2 +- .../test/effect/layer-node/node-build.test.ts | 4 +- .../core/test/effect/observability.test.ts | 6 +- packages/core/test/event-logger.test.ts | 2 +- packages/core/test/event.test.ts | 2 +- packages/core/test/file-mutation.test.ts | 4 +- .../core/test/filesystem/filesystem.test.ts | 6 +- packages/core/test/filesystem/search.test.ts | 2 +- packages/core/test/filesystem/watcher.test.ts | 4 +- .../core/test/fixture/effect-flock-worker.ts | 4 +- packages/core/test/fixture/flock-worker.ts | 2 +- packages/core/test/form.test.ts | 2 +- packages/core/test/git.test.ts | 2 +- packages/core/test/global.test.ts | 2 +- .../core/test/instruction-discovery.test.ts | 6 +- packages/core/test/instruction-state.test.ts | 2 +- .../core/test/instructions/builtins.test.ts | 4 +- packages/core/test/integration.test.ts | 4 +- packages/core/test/kv.test.ts | 2 +- .../core/test/location-filesystem.test.ts | 2 +- packages/core/test/location-layer.test.ts | 2 +- packages/core/test/location-mutation.test.ts | 2 +- packages/core/test/logging.test.ts | 4 +- packages/core/test/mcp.test.ts | 2 +- packages/core/test/models.test.ts | 8 +- packages/core/test/move-session.test.ts | 2 +- packages/core/test/npm-config.test.ts | 2 +- packages/core/test/npm.test.ts | 4 +- packages/core/test/permission.test.ts | 2 +- packages/core/test/plugin/fixture.ts | 8 +- packages/core/test/plugin/models-dev.test.ts | 4 +- .../core/test/plugin/provider-dynamic.test.ts | 2 +- .../test/plugin/provider-sap-ai-core.test.ts | 2 +- packages/core/test/plugin/skill.test.ts | 4 +- packages/core/test/plugin/variant.test.ts | 2 +- packages/core/test/process/process.test.ts | 4 +- packages/core/test/project-copy.test.ts | 2 +- .../core/test/project-directories.test.ts | 2 +- packages/core/test/project.test.ts | 2 +- packages/core/test/pty/pty-session.test.ts | 2 +- packages/core/test/pty/ticket.test.ts | 2 +- packages/core/test/question.test.ts | 2 +- packages/core/test/reference.test.ts | 4 +- packages/core/test/repository-cache.test.ts | 4 +- packages/core/test/ripgrep.test.ts | 2 +- packages/core/test/session-compact.test.ts | 2 +- packages/core/test/session-compaction.test.ts | 8 +- packages/core/test/session-create.test.ts | 2 +- packages/core/test/session-execution.test.ts | 2 +- packages/core/test/session-generate.test.ts | 4 +- .../core/test/session-instructions.test.ts | 8 +- packages/core/test/session-log.test.ts | 2 +- packages/core/test/session-projector.test.ts | 2 +- packages/core/test/session-prompt.test.ts | 2 +- packages/core/test/session-remove.test.ts | 2 +- .../core/test/session-runner-recorded.test.ts | 4 +- packages/core/test/session-runner.test.ts | 10 +-- packages/core/test/session-skill.test.ts | 2 +- packages/core/test/session-title.test.ts | 8 +- .../core/test/session-tool-progress.test.ts | 2 +- packages/core/test/session-wait.test.ts | 2 +- packages/core/test/shell.test.ts | 2 +- packages/core/test/skill-discovery.test.ts | 2 +- packages/core/test/skill.test.ts | 4 +- packages/core/test/snapshot.test.ts | 4 +- packages/core/test/tool-edit.test.ts | 6 +- packages/core/test/tool-output-store.test.ts | 6 +- packages/core/test/tool-patch.test.ts | 6 +- packages/core/test/tool-question.test.ts | 4 +- .../core/test/tool-read-filesystem.test.ts | 6 +- packages/core/test/tool-read.test.ts | 8 +- packages/core/test/tool-search.test.ts | 6 +- packages/core/test/tool-shell.test.ts | 10 +-- packages/core/test/tool-skill.test.ts | 6 +- packages/core/test/tool-subagent.test.ts | 4 +- packages/core/test/tool-webfetch.test.ts | 6 +- packages/core/test/tool-websearch.test.ts | 6 +- packages/core/test/tool-write.test.ts | 6 +- packages/core/test/util/effect-flock.test.ts | 8 +- packages/core/test/util/flock.test.ts | 4 +- packages/core/test/vcs-hg.test.ts | 2 +- packages/core/test/vcs.test.ts | 2 +- packages/core/test/wellknown.test.ts | 2 +- packages/opencode/package.json | 1 + packages/opencode/src/account/account.ts | 6 +- packages/opencode/src/account/repo.ts | 4 +- packages/opencode/src/acp/directory.ts | 2 +- packages/opencode/src/acp/service.ts | 2 +- packages/opencode/src/acp/session.ts | 2 +- packages/opencode/src/acp/usage.ts | 4 +- packages/opencode/src/agent/agent.ts | 6 +- packages/opencode/src/auth/index.ts | 6 +- packages/opencode/src/cli/cmd/agent.ts | 2 +- packages/opencode/src/cli/cmd/debug/index.ts | 6 +- packages/opencode/src/cli/cmd/debug/scrap.ts | 2 +- packages/opencode/src/cli/cmd/import.ts | 2 +- packages/opencode/src/cli/cmd/mcp.ts | 4 +- packages/opencode/src/cli/cmd/plug.ts | 2 +- packages/opencode/src/cli/cmd/providers.ts | 2 +- packages/opencode/src/cli/cmd/serve.ts | 2 +- packages/opencode/src/cli/cmd/session.ts | 2 +- packages/opencode/src/cli/cmd/uninstall.ts | 2 +- packages/opencode/src/cli/cmd/upgrade.ts | 2 +- packages/opencode/src/cli/cmd/web.ts | 2 +- packages/opencode/src/cli/heap.ts | 4 +- packages/opencode/src/cli/upgrade.ts | 4 +- packages/opencode/src/command/index.ts | 2 +- packages/opencode/src/config/agent.ts | 2 +- packages/opencode/src/config/command.ts | 2 +- packages/opencode/src/config/config.ts | 18 ++-- packages/opencode/src/config/paths.ts | 6 +- packages/opencode/src/config/plugin.ts | 2 +- packages/opencode/src/config/tui-migrate.ts | 4 +- packages/opencode/src/config/tui.ts | 14 +-- .../opencode/src/control-plane/workspace.ts | 8 +- .../src/effect/app-node-builder-v1.ts | 2 +- packages/opencode/src/effect/app-runtime.ts | 10 +-- .../opencode/src/effect/bootstrap-runtime.ts | 6 +- packages/opencode/src/effect/run-service.ts | 4 +- packages/opencode/src/effect/runtime-flags.ts | 2 +- packages/opencode/src/env/index.ts | 4 +- packages/opencode/src/event-v2-bridge.ts | 2 +- packages/opencode/src/format/formatter.ts | 2 +- packages/opencode/src/format/index.ts | 6 +- packages/opencode/src/git/index.ts | 4 +- packages/opencode/src/image/image.ts | 2 +- packages/opencode/src/index.ts | 2 +- packages/opencode/src/installation/index.ts | 14 +-- packages/opencode/src/job.ts | 2 +- packages/opencode/src/lsp/lsp.ts | 4 +- packages/opencode/src/lsp/server.ts | 4 +- packages/opencode/src/mcp/auth.ts | 10 +-- packages/opencode/src/mcp/browser.ts | 2 +- packages/opencode/src/mcp/index.ts | 10 +-- packages/opencode/src/patch/index.ts | 2 +- packages/opencode/src/permission/index.ts | 2 +- packages/opencode/src/plugin/digitalocean.ts | 2 +- .../src/plugin/github-copilot/copilot.ts | 2 +- packages/opencode/src/plugin/index.ts | 4 +- packages/opencode/src/plugin/install.ts | 4 +- packages/opencode/src/plugin/loader.ts | 2 +- packages/opencode/src/plugin/meta.ts | 6 +- packages/opencode/src/plugin/openai/codex.ts | 2 +- packages/opencode/src/plugin/shared.ts | 2 +- .../opencode/src/plugin/snowflake-cortex.ts | 2 +- packages/opencode/src/plugin/tui/runtime.ts | 6 +- packages/opencode/src/plugin/xai.ts | 2 +- packages/opencode/src/project/bootstrap.ts | 2 +- .../opencode/src/project/instance-context.ts | 2 +- .../opencode/src/project/instance-store.ts | 8 +- packages/opencode/src/project/project.ts | 12 +-- packages/opencode/src/project/vcs.ts | 2 +- packages/opencode/src/provider/auth.ts | 4 +- packages/opencode/src/provider/provider.ts | 14 +-- packages/opencode/src/question/index.ts | 2 +- packages/opencode/src/server/auth.ts | 2 +- .../routes/instance/httpapi/handlers/file.ts | 2 +- .../instance/httpapi/handlers/global.ts | 2 +- .../instance/httpapi/handlers/instance.ts | 2 +- .../instance/httpapi/middleware/fence.ts | 2 +- .../httpapi/middleware/workspace-routing.ts | 2 +- .../server/routes/instance/httpapi/server.ts | 12 +-- .../instance/httpapi/websocket-tracker.ts | 2 +- packages/opencode/src/server/shared/ui.ts | 2 +- packages/opencode/src/session/compaction.ts | 4 +- packages/opencode/src/session/instruction.ts | 10 +-- packages/opencode/src/session/llm.ts | 6 +- packages/opencode/src/session/llm/request.ts | 2 +- packages/opencode/src/session/message-v2.ts | 2 +- packages/opencode/src/session/processor.ts | 2 +- packages/opencode/src/session/prompt.ts | 6 +- packages/opencode/src/session/reminders.ts | 2 +- packages/opencode/src/session/revert.ts | 2 +- packages/opencode/src/session/run-state.ts | 2 +- packages/opencode/src/session/session.ts | 8 +- packages/opencode/src/session/status.ts | 2 +- packages/opencode/src/session/summary.ts | 2 +- packages/opencode/src/session/system.ts | 2 +- packages/opencode/src/share/session.ts | 2 +- packages/opencode/src/share/share-next.ts | 6 +- packages/opencode/src/skill/discovery.ts | 8 +- packages/opencode/src/skill/index.ts | 8 +- packages/opencode/src/snapshot/index.ts | 10 +-- packages/opencode/src/storage/storage.ts | 6 +- packages/opencode/src/temporary.ts | 2 +- packages/opencode/src/tool/apply_patch.ts | 2 +- packages/opencode/src/tool/edit.ts | 2 +- .../opencode/src/tool/external-directory.ts | 2 +- packages/opencode/src/tool/glob.ts | 2 +- packages/opencode/src/tool/grep.ts | 2 +- packages/opencode/src/tool/lsp.ts | 2 +- packages/opencode/src/tool/read.ts | 2 +- packages/opencode/src/tool/registry.ts | 10 +-- packages/opencode/src/tool/shell.ts | 2 +- packages/opencode/src/tool/shell/prompt.ts | 2 +- packages/opencode/src/tool/truncate.ts | 4 +- packages/opencode/src/tool/truncation-dir.ts | 2 +- packages/opencode/src/tool/websearch.ts | 2 +- packages/opencode/src/tool/write.ts | 2 +- packages/opencode/src/util/bom.ts | 2 +- packages/opencode/src/util/filesystem.ts | 4 +- packages/opencode/src/util/repository.ts | 2 +- packages/opencode/src/worktree/index.ts | 10 +-- packages/opencode/test/account/repo.test.ts | 2 +- .../opencode/test/account/service.test.ts | 4 +- packages/opencode/test/acp/directory.test.ts | 2 +- packages/opencode/test/acp/event.test.ts | 2 +- packages/opencode/test/acp/permission.test.ts | 2 +- packages/opencode/test/acp/session.test.ts | 2 +- packages/opencode/test/acp/usage.test.ts | 2 +- packages/opencode/test/agent/agent.test.ts | 4 +- .../agent/plan-mode-subagent-bypass.test.ts | 2 +- .../agent/plugin-agent-regression.test.ts | 4 +- packages/opencode/test/auth/auth.test.ts | 2 +- .../test/cli/effect-cmd-instance-als.test.ts | 4 +- .../cli/tui/plugin-loader-entrypoint.test.ts | 2 +- .../test/cli/tui/plugin-loader.test.ts | 2 +- .../opencode/test/config/agent-color.test.ts | 2 +- packages/opencode/test/config/config.test.ts | 12 +-- packages/opencode/test/config/tui.test.ts | 6 +- .../test/control-plane/workspace.test.ts | 2 +- .../test/effect/app-runtime-logger.test.ts | 6 +- .../test/effect/instance-state.test.ts | 4 +- packages/opencode/test/fake/npm.ts | 2 +- .../test/filesystem/filesystem.test.ts | 4 +- packages/opencode/test/fixture/fixture.ts | 4 +- packages/opencode/test/fixture/flag.ts | 2 +- .../opencode/test/fixture/flock-worker.ts | 2 +- packages/opencode/test/fixture/workspace.ts | 4 +- packages/opencode/test/format/format.test.ts | 4 +- packages/opencode/test/git/git.test.ts | 2 +- packages/opencode/test/image/image.test.ts | 2 +- .../test/installation/installation.test.ts | 10 +-- packages/opencode/test/job.test.ts | 2 +- packages/opencode/test/lib/cli-process.ts | 6 +- packages/opencode/test/lib/effect.ts | 2 +- packages/opencode/test/lsp/index.test.ts | 4 +- packages/opencode/test/lsp/lifecycle.test.ts | 2 +- packages/opencode/test/mcp/auth.test.ts | 2 +- packages/opencode/test/mcp/headers.test.ts | 2 +- packages/opencode/test/mcp/lifecycle.test.ts | 2 +- .../test/mcp/oauth-auto-connect.test.ts | 6 +- .../opencode/test/mcp/oauth-browser.test.ts | 2 +- packages/opencode/test/patch/patch.test.ts | 4 +- .../opencode/test/permission-task.test.ts | 2 +- .../opencode/test/permission/next.test.ts | 4 +- .../test/plugin/auth-override.test.ts | 6 +- .../test/plugin/loader-shared.test.ts | 8 +- packages/opencode/test/plugin/trigger.test.ts | 6 +- .../test/plugin/workspace-adapter.test.ts | 4 +- .../test/project/instance-bootstrap.test.ts | 4 +- .../opencode/test/project/instance.test.ts | 4 +- .../test/project/migrate-global.test.ts | 4 +- .../test/project/project-directory.test.ts | 6 +- .../opencode/test/project/project.test.ts | 6 +- packages/opencode/test/project/vcs.test.ts | 6 +- .../test/project/worktree-remove.test.ts | 2 +- .../opencode/test/project/worktree.test.ts | 4 +- .../test/provider/amazon-bedrock.test.ts | 4 +- .../test/provider/digitalocean.test.ts | 2 +- .../opencode/test/provider/gitlab-duo.test.ts | 2 +- .../test/provider/header-timeout.test.ts | 4 +- .../opencode/test/provider/provider.test.ts | 8 +- .../opencode/test/question/question.test.ts | 4 +- packages/opencode/test/server/auth.test.ts | 2 +- .../test/server/global-session-list.test.ts | 4 +- .../opencode/test/server/httpapi-cors.test.ts | 2 +- .../server/httpapi-exercise/environment.ts | 2 +- .../test/server/httpapi-exercise/runner.ts | 2 +- .../test/server/httpapi-experimental.test.ts | 2 +- .../test/server/httpapi-instance.test.ts | 2 +- .../test/server/httpapi-listen.test.ts | 2 +- .../opencode/test/server/httpapi-mdns.test.ts | 2 +- .../test/server/httpapi-provider.test.ts | 4 +- .../server/httpapi-query-schema-drift.test.ts | 2 +- .../test/server/httpapi-reference.test.ts | 2 +- .../server/httpapi-schema-error-body.test.ts | 2 +- .../opencode/test/server/httpapi-sdk.test.ts | 8 +- .../test/server/httpapi-session.test.ts | 6 +- .../opencode/test/server/httpapi-sync.test.ts | 4 +- .../opencode/test/server/httpapi-ui.test.ts | 4 +- .../test/server/httpapi-workspace.test.ts | 4 +- .../server/negative-tokens-regression.test.ts | 2 +- .../opencode/test/server/project-copy.test.ts | 4 +- .../test/server/project-init-git.test.ts | 4 +- .../test/server/session-actions.test.ts | 2 +- .../server/session-diff-missing-patch.test.ts | 2 +- .../opencode/test/server/session-list.test.ts | 2 +- .../test/server/session-messages.test.ts | 2 +- .../test/server/session-select.test.ts | 2 +- .../server/worktree-endpoint-repro.test.ts | 2 +- .../opencode/test/session/compaction.test.ts | 4 +- .../opencode/test/session/instruction.test.ts | 8 +- .../test/session/llm-native-recorded.test.ts | 4 +- packages/opencode/test/session/llm.test.ts | 4 +- .../test/session/messages-pagination.test.ts | 2 +- .../test/session/processor-effect.test.ts | 4 +- packages/opencode/test/session/prompt.test.ts | 6 +- packages/opencode/test/session/retry.test.ts | 4 +- .../test/session/revert-compact.test.ts | 4 +- .../opencode/test/session/session.test.ts | 4 +- .../test/session/snapshot-tool-race.test.ts | 4 +- .../structured-output-integration.test.ts | 2 +- packages/opencode/test/session/system.test.ts | 2 +- .../opencode/test/share/share-next.test.ts | 6 +- .../opencode/test/skill/discovery.test.ts | 6 +- packages/opencode/test/skill/skill.test.ts | 8 +- .../opencode/test/snapshot/snapshot.test.ts | 6 +- .../opencode/test/storage/storage.test.ts | 8 +- .../opencode/test/tool/apply_patch.test.ts | 4 +- packages/opencode/test/tool/edit.test.ts | 4 +- .../test/tool/external-directory.test.ts | 4 +- packages/opencode/test/tool/glob.test.ts | 8 +- packages/opencode/test/tool/grep.test.ts | 8 +- packages/opencode/test/tool/lsp.test.ts | 6 +- packages/opencode/test/tool/question.test.ts | 2 +- packages/opencode/test/tool/read.test.ts | 8 +- packages/opencode/test/tool/registry.test.ts | 2 +- packages/opencode/test/tool/shell.test.ts | 6 +- packages/opencode/test/tool/skill.test.ts | 4 +- packages/opencode/test/tool/task.test.ts | 4 +- .../opencode/test/tool/tool-define.test.ts | 2 +- .../opencode/test/tool/truncation.test.ts | 6 +- packages/opencode/test/tool/webfetch.test.ts | 4 +- packages/opencode/test/tool/write.test.ts | 6 +- packages/opencode/test/util/glob.test.ts | 2 +- .../opencode/test/util/repository.test.ts | 2 +- packages/sdk-next/package.json | 1 + packages/sdk-next/test/embedded.test.ts | 2 +- packages/server/package.json | 1 + packages/server/src/handlers/health.ts | 2 +- packages/server/src/process.ts | 2 +- packages/server/src/pty-environment.ts | 2 +- packages/server/src/routes.ts | 6 +- packages/simulation/package.json | 1 + packages/simulation/src/backend/index.ts | 6 +- .../src/backend/simulated-provider.ts | 2 +- packages/simulation/src/frontend/server.ts | 2 +- .../test/simulated-provider.test.ts | 4 +- packages/tui/package.json | 1 + packages/tui/src/app.tsx | 4 +- packages/tui/src/component/dialog-debug.tsx | 2 +- .../tui/src/component/error-component.tsx | 2 +- packages/tui/src/component/prompt/index.tsx | 2 +- packages/tui/src/context/theme.tsx | 2 +- .../tui/src/feature-plugins/home/footer.tsx | 2 +- packages/tui/src/ui/dialog.tsx | 2 +- packages/tui/test/app-lifecycle.test.tsx | 2 +- packages/util/package.json | 50 +++++++++++ .../{core => util}/src/cross-spawn-spawner.ts | 0 .../src/util => util/src}/effect-flock.ts | 6 +- .../src/effect/app-node-platform.ts | 3 +- .../{core => util}/src/effect/app-node.ts | 0 .../{core => util}/src/effect/layer-node.ts | 0 .../{core => util}/src/effect/memo-map.ts | 0 packages/{core => util}/src/effect/runtime.ts | 0 .../{core => util}/src/effect/service-use.ts | 0 packages/{core/src/flag => util/src}/flag.ts | 0 packages/{core/src/util => util/src}/flock.ts | 0 packages/{core => util}/src/fs-util.ts | 2 +- packages/{core/src/util => util/src}/glob.ts | 0 packages/{core => util}/src/global.ts | 4 +- packages/{core/src/util => util/src}/hash.ts | 0 .../src/installation/version.ts | 0 packages/{core => util}/src/npm-config.ts | 2 +- packages/{core => util}/src/npm.ts | 2 +- packages/{core => util}/src/observability.ts | 0 .../src/observability/logging.ts | 0 .../{core => util}/src/observability/otlp.ts | 2 +- .../src/observability/shared.ts | 0 packages/{core => util}/src/process.ts | 0 .../{core => util}/src/runtime/import.bun.ts | 0 .../{core => util}/src/runtime/import.node.ts | 0 packages/util/tsconfig.json | 7 ++ 520 files changed, 1043 insertions(+), 1047 deletions(-) create mode 100644 packages/util/package.json rename packages/{core => util}/src/cross-spawn-spawner.ts (100%) rename packages/{core/src/util => util/src}/effect-flock.ts (98%) rename packages/{core => util}/src/effect/app-node-platform.ts (89%) rename packages/{core => util}/src/effect/app-node.ts (100%) rename packages/{core => util}/src/effect/layer-node.ts (100%) rename packages/{core => util}/src/effect/memo-map.ts (100%) rename packages/{core => util}/src/effect/runtime.ts (100%) rename packages/{core => util}/src/effect/service-use.ts (100%) rename packages/{core/src/flag => util/src}/flag.ts (100%) rename packages/{core/src/util => util/src}/flock.ts (100%) rename packages/{core => util}/src/fs-util.ts (99%) rename packages/{core/src/util => util/src}/glob.ts (100%) rename packages/{core => util}/src/global.ts (96%) rename packages/{core/src/util => util/src}/hash.ts (100%) rename packages/{core => util}/src/installation/version.ts (100%) rename packages/{core => util}/src/npm-config.ts (94%) rename packages/{core => util}/src/npm.ts (99%) rename packages/{core => util}/src/observability.ts (100%) rename packages/{core => util}/src/observability/logging.ts (100%) rename packages/{core => util}/src/observability/otlp.ts (98%) rename packages/{core => util}/src/observability/shared.ts (100%) rename packages/{core => util}/src/process.ts (100%) rename packages/{core => util}/src/runtime/import.bun.ts (100%) rename packages/{core => util}/src/runtime/import.node.ts (100%) create mode 100644 packages/util/tsconfig.json diff --git a/bun.lock b/bun.lock index 4f08f1b31b0d..1e54d62e3968 100644 --- a/bun.lock +++ b/bun.lock @@ -126,14 +126,15 @@ "dependencies": { "@effect/platform-node": "catalog:", "@opencode-ai/client": "workspace:*", - "@opencode-ai/core": "workspace:*", "@opencode-ai/plugin": "workspace:*", "@opencode-ai/schema": "workspace:*", "@opencode-ai/server": "workspace:*", "@opencode-ai/tui": "workspace:*", + "@opencode-ai/util": "workspace:*", "@opentui/core": "catalog:", "@opentui/solid": "catalog:", "@parcel/watcher": "2.5.1", + "@silvia-odwyer/photon-node": "0.3.4", "effect": "catalog:", "immer": "11.1.4", "jsonc-parser": "3.3.1", @@ -358,51 +359,38 @@ "@ai-sdk/vercel": "2.0.39", "@ai-sdk/xai": "3.0.102", "@aws-sdk/credential-providers": "3.1057.0", - "@effect/opentelemetry": "catalog:", "@effect/platform-node": "catalog:", "@effect/sql-sqlite-bun": "catalog:", "@ff-labs/fff-bun": "0.9.4", "@lydell/node-pty": "catalog:", "@modelcontextprotocol/sdk": "1.29.0", - "@npmcli/arborist": "9.4.0", - "@npmcli/config": "10.8.1", "@opencode-ai/ai": "workspace:*", "@opencode-ai/codemode": "workspace:*", "@opencode-ai/effect-drizzle-sqlite": "workspace:*", "@opencode-ai/effect-sqlite-node": "workspace:*", "@opencode-ai/plugin": "workspace:*", "@opencode-ai/schema": "workspace:*", + "@opencode-ai/util": "workspace:*", "@openrouter/ai-sdk-provider": "2.9.0", - "@opentelemetry/api": "1.9.0", - "@opentelemetry/context-async-hooks": "2.6.1", - "@opentelemetry/exporter-trace-otlp-http": "0.214.0", - "@opentelemetry/sdk-trace-base": "2.6.1", "@parcel/watcher": "2.5.1", "@silvia-odwyer/photon-node": "0.3.4", "ai-gateway-provider": "3.1.2", "bun-pty": "0.4.8", - "cross-spawn": "catalog:", "diff": "catalog:", "drizzle-orm": "catalog:", "effect": "catalog:", "fuzzysort": "3.1.0", "gitlab-ai-provider": "6.11.1", - "glob": "13.0.5", "google-auth-library": "10.5.0", "gray-matter": "4.0.3", "htmlparser2": "8.0.2", "ignore": "7.0.5", "immer": "11.1.4", "jsonc-parser": "3.3.1", - "mime-types": "3.0.2", - "minimatch": "10.2.5", - "npm-package-arg": "13.0.2", - "resolve.exports": "catalog:", "semver": "^7.6.3", "turndown": "7.2.0", "venice-ai-sdk-provider": "2.1.1", "which": "6.0.1", - "xdg-basedir": "5.1.0", "zod": "catalog:", }, "devDependencies": { @@ -417,10 +405,7 @@ "@parcel/watcher-win32-x64": "2.5.1", "@tsconfig/bun": "catalog:", "@types/bun": "catalog:", - "@types/cross-spawn": "catalog:", "@types/node": "catalog:", - "@types/npm-package-arg": "6.1.4", - "@types/npmcli__arborist": "6.3.3", "@types/semver": "catalog:", "@types/turndown": "5.0.5", "@types/which": "3.0.4", @@ -708,6 +693,7 @@ "@opencode-ai/core": "workspace:*", "@opencode-ai/http-recorder": "workspace:*", "@opencode-ai/script": "workspace:*", + "@opencode-ai/util": "workspace:*", "@standard-schema/spec": "1.0.0", "@tsconfig/bun": "catalog:", "@types/babel__core": "7.20.5", @@ -805,6 +791,7 @@ "@opencode-ai/plugin": "workspace:*", "@opencode-ai/schema": "workspace:*", "@opencode-ai/server": "workspace:*", + "@opencode-ai/util": "workspace:*", "effect": "catalog:", }, "devDependencies": { @@ -838,6 +825,7 @@ "@opencode-ai/core": "workspace:*", "@opencode-ai/protocol": "workspace:*", "@opencode-ai/simulation": "workspace:*", + "@opencode-ai/util": "workspace:*", "drizzle-orm": "catalog:", "effect": "catalog:", }, @@ -903,6 +891,7 @@ "@opencode-ai/ai": "workspace:*", "@opencode-ai/core": "workspace:*", "@opencode-ai/plugin": "workspace:*", + "@opencode-ai/util": "workspace:*", "@opentui/core": "catalog:", "effect": "catalog:", }, @@ -1029,6 +1018,7 @@ "@opencode-ai/schema": "workspace:*", "@opencode-ai/simulation": "workspace:*", "@opencode-ai/ui": "workspace:*", + "@opencode-ai/util": "workspace:*", "@opentui/core": "catalog:", "@opentui/keymap": "catalog:", "@opentui/solid": "catalog:", @@ -1103,6 +1093,38 @@ "solid-js": "^1.9.0", }, }, + "packages/util": { + "name": "@opencode-ai/util", + "version": "1.18.3", + "dependencies": { + "@effect/opentelemetry": "catalog:", + "@effect/platform-node": "catalog:", + "@npmcli/arborist": "catalog:", + "@npmcli/config": "10.8.1", + "@opencode-ai/ai": "workspace:*", + "@opentelemetry/api": "1.9.0", + "@opentelemetry/context-async-hooks": "2.6.1", + "@opentelemetry/exporter-trace-otlp-http": "0.214.0", + "@opentelemetry/sdk-trace-base": "2.6.1", + "cross-spawn": "catalog:", + "effect": "catalog:", + "glob": "13.0.5", + "mime-types": "3.0.2", + "minimatch": "10.2.5", + "npm-package-arg": "13.0.2", + "resolve.exports": "catalog:", + "xdg-basedir": "5.1.0", + }, + "devDependencies": { + "@tsconfig/bun": "catalog:", + "@types/bun": "catalog:", + "@types/cross-spawn": "catalog:", + "@types/node": "catalog:", + "@types/npm-package-arg": "6.1.4", + "@types/npmcli__arborist": "6.3.3", + "@typescript/native-preview": "catalog:", + }, + }, "packages/web": { "name": "@opencode-ai/web", "version": "1.18.3", @@ -2268,6 +2290,8 @@ "@opencode-ai/ui": ["@opencode-ai/ui@workspace:packages/ui"], + "@opencode-ai/util": ["@opencode-ai/util@workspace:packages/util"], + "@opencode-ai/web": ["@opencode-ai/web@workspace:packages/web"], "@opencode-ai/www": ["@opencode-ai/www@workspace:packages/www"], diff --git a/package.json b/package.json index c8b778f207fe..7bb37f946f4c 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "dev:www": "bun run --cwd packages/www dev", "dev:storybook": "bun --cwd packages/storybook storybook", "lint": "oxlint", - "lint:effect-patterns": "ast-grep scan -c script/ast-grep/sgconfig.yml packages/core/src packages/server/src packages/protocol/src packages/cli/src", + "lint:effect-patterns": "ast-grep scan -c script/ast-grep/sgconfig.yml packages/util/src packages/core/src packages/server/src packages/protocol/src packages/cli/src", "test:lint-rules": "ast-grep test -c script/ast-grep/sgconfig.yml", "typecheck": "bun turbo typecheck --concurrency=3", "typecheck:profile": "bun script/profile-typecheck.ts", diff --git a/packages/cli/package.json b/packages/cli/package.json index 144cf7368c66..864bc0cda2ac 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -25,14 +25,15 @@ "dependencies": { "@effect/platform-node": "catalog:", "@opencode-ai/client": "workspace:*", - "@opencode-ai/core": "workspace:*", "@opencode-ai/plugin": "workspace:*", "@opencode-ai/schema": "workspace:*", "@opencode-ai/server": "workspace:*", "@opencode-ai/tui": "workspace:*", + "@opencode-ai/util": "workspace:*", "@opentui/core": "catalog:", "@opentui/solid": "catalog:", "@parcel/watcher": "2.5.1", + "@silvia-odwyer/photon-node": "0.3.4", "effect": "catalog:", "immer": "11.1.4", "jsonc-parser": "3.3.1", diff --git a/packages/cli/script/node-assets.ts b/packages/cli/script/node-assets.ts index 749a0f74c259..cde31db13f6e 100644 --- a/packages/cli/script/node-assets.ts +++ b/packages/cli/script/node-assets.ts @@ -1,6 +1,5 @@ import { createHash } from "node:crypto" import { copyFile, mkdir, readdir, readFile, stat } from "node:fs/promises" -import { createRequire } from "node:module" import path from "node:path" import { fileURLToPath } from "node:url" import { getNodeAssets } from "@opentui/core/node-assets" @@ -40,7 +39,7 @@ export async function collectNodeAssets(target: NodeTarget) { { key: target.parcelWatcherAsset, source: fileURLToPath(import.meta.resolve(target.parcelWatcherPackage)) }, { key: photonWasmAsset, - source: createRequire(path.resolve(dir, "../core/package.json")).resolve(photonWasmAsset), + source: fileURLToPath(import.meta.resolve(photonWasmAsset)), }, ...attentionSoundAssets.map((key) => ({ key, diff --git a/packages/cli/src/commands/handlers/console/login.ts b/packages/cli/src/commands/handlers/console/login.ts index cb2eee5193de..380944d52724 100644 --- a/packages/cli/src/commands/handlers/console/login.ts +++ b/packages/cli/src/commands/handlers/console/login.ts @@ -1,7 +1,7 @@ import { Cause, Effect, Exit, Option } from "effect" import { Service } from "@opencode-ai/client/effect/service" import { OpenCode, type OpenCodeClient } from "@opencode-ai/client/promise" -import { AppProcess } from "@opencode-ai/core/process" +import { AppProcess } from "@opencode-ai/util/process" import { Commands } from "../../commands" import { Runtime } from "../../../framework/runtime" import { ServiceConfig } from "../../../services/service-config" diff --git a/packages/cli/src/commands/handlers/default.ts b/packages/cli/src/commands/handlers/default.ts index 535003ed1a9f..325f2c2b3ac2 100644 --- a/packages/cli/src/commands/handlers/default.ts +++ b/packages/cli/src/commands/handlers/default.ts @@ -1,5 +1,5 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { Global } from "@opencode-ai/core/global" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { Global } from "@opencode-ai/util/global" import { run } from "@opencode-ai/tui" import { Commands } from "../commands" import { Runtime } from "../../framework/runtime" @@ -8,7 +8,7 @@ import { Context, Effect, FileSystem, Option } from "effect" import { ServerConnection } from "../../services/server-connection" import { Updater } from "../../services/updater" import { UpdatePreflight } from "../../services/update-preflight" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" export default Runtime.handler(Commands, (input) => Effect.gen(function* () { diff --git a/packages/cli/src/commands/handlers/mcp/add.ts b/packages/cli/src/commands/handlers/mcp/add.ts index dc582a0e0092..0e173f6d97e9 100644 --- a/packages/cli/src/commands/handlers/mcp/add.ts +++ b/packages/cli/src/commands/handlers/mcp/add.ts @@ -3,7 +3,7 @@ import path from "node:path" import { readFile, stat, writeFile } from "node:fs/promises" import { Effect, Option } from "effect" import { applyEdits, modify } from "jsonc-parser" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Commands } from "../../commands" import { Runtime } from "../../../framework/runtime" diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index d9f01b3fce5b..e655802b7bf5 100644 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -1,6 +1,6 @@ export * as Config from "./config" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Context, Effect, FileSystem, Layer, Option, Schema, Semaphore } from "effect" import { produce, type Draft } from "immer" import { applyEdits, modify, parse, type ParseError } from "jsonc-parser" diff --git a/packages/cli/src/framework/runtime.ts b/packages/cli/src/framework/runtime.ts index a353a38a2017..a2ad9e8cbf94 100644 --- a/packages/cli/src/framework/runtime.ts +++ b/packages/cli/src/framework/runtime.ts @@ -1,10 +1,10 @@ import { Effect, FileSystem, Scope } from "effect" import { Command } from "effect/unstable/cli" import { Spec } from "./spec" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Updater } from "../services/updater" import { Config } from "../config" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" export type Input = Value extends Spec.Node diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 7ee80846ed45..9adc55714bec 100755 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -4,14 +4,14 @@ import { NodeRuntime, NodeServices } from "@effect/platform-node" import { Effect } from "effect" import { Commands } from "./commands/commands" import { Runtime } from "./framework/runtime" -import { Observability } from "@opencode-ai/core/observability" +import { Observability } from "@opencode-ai/util/observability" import { Updater } from "./services/updater" -import { InstallationChannel, InstallationVersion, InstallationLocal } from "@opencode-ai/core/installation/version" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { Global } from "@opencode-ai/core/global" -import { AppProcess } from "@opencode-ai/core/process" +import { InstallationChannel, InstallationVersion, InstallationLocal } from "@opencode-ai/util/installation/version" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { Global } from "@opencode-ai/util/global" +import { AppProcess } from "@opencode-ai/util/process" import { Config } from "./config" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" const Handlers = Runtime.handlers(Commands, { $: () => import("./commands/handlers/default"), diff --git a/packages/cli/src/mini-host.ts b/packages/cli/src/mini-host.ts index 05f8b5edd3a1..f6b892d38114 100644 --- a/packages/cli/src/mini-host.ts +++ b/packages/cli/src/mini-host.ts @@ -1,6 +1,6 @@ import type { MiniFrontendInput } from "@opencode-ai/tui/mini" -import { Flag } from "@opencode-ai/core/flag/flag" -import { Global } from "@opencode-ai/core/global" +import { Flag } from "@opencode-ai/util/flag" +import { Global } from "@opencode-ai/util/global" import fs from "node:fs" import { mkdir, readFile, writeFile } from "node:fs/promises" import path from "node:path" diff --git a/packages/cli/src/run/run.ts b/packages/cli/src/run/run.ts index 6ebec1b3c415..496bdfa86d0d 100644 --- a/packages/cli/src/run/run.ts +++ b/packages/cli/src/run/run.ts @@ -1,6 +1,6 @@ import { Service, type Endpoint } from "@opencode-ai/client/effect/service" import { OpenCode, type OpenCodeClient, type SessionMessageAssistantTool } from "@opencode-ai/client/promise" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { open } from "node:fs/promises" import path from "node:path" import { readStdin } from "../util/io" diff --git a/packages/cli/src/server-process.ts b/packages/cli/src/server-process.ts index 6cc4b7e7dd9d..aabd9dba4fb6 100644 --- a/packages/cli/src/server-process.ts +++ b/packages/cli/src/server-process.ts @@ -2,10 +2,10 @@ export * as ServerProcess from "./server-process" import { NodeServices } from "@effect/platform-node" import { Service, type DiscoverOptions, type Info } from "@opencode-ai/client/effect/service" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { Global } from "@opencode-ai/core/global" -import { InstallationVersion } from "@opencode-ai/core/installation/version" -import { AppProcess } from "@opencode-ai/core/process" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { Global } from "@opencode-ai/util/global" +import { InstallationVersion } from "@opencode-ai/util/installation/version" +import { AppProcess } from "@opencode-ai/util/process" import { randomBytes, randomUUID } from "node:crypto" import path from "node:path" import { Effect, FileSystem, Logger, Option, Redacted, Schedule, Schema } from "effect" diff --git a/packages/cli/src/services/server-connection.ts b/packages/cli/src/services/server-connection.ts index 2fa39672528a..70bd2fcda272 100644 --- a/packages/cli/src/services/server-connection.ts +++ b/packages/cli/src/services/server-connection.ts @@ -1,6 +1,6 @@ import { Service, type Endpoint, type EnsureOptions } from "@opencode-ai/client/effect/service" import { ClientError, isUnauthorizedError, OpenCode } from "@opencode-ai/client/promise" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Effect, Redacted } from "effect" import { Env } from "../env" import { ServiceConfig } from "./service-config" diff --git a/packages/cli/src/services/service-config.ts b/packages/cli/src/services/service-config.ts index abcaf00dcfb8..b96bb578c8b3 100644 --- a/packages/cli/src/services/service-config.ts +++ b/packages/cli/src/services/service-config.ts @@ -1,6 +1,6 @@ -import { Global } from "@opencode-ai/core/global" -import { InstallationChannel, InstallationVersion } from "@opencode-ai/core/installation/version" -import { Hash } from "@opencode-ai/core/util/hash" +import { Global } from "@opencode-ai/util/global" +import { InstallationChannel, InstallationVersion } from "@opencode-ai/util/installation/version" +import { Hash } from "@opencode-ai/util/hash" import { Service } from "@opencode-ai/client/effect/service" import { Effect, FileSystem, Option, Schema } from "effect" import { randomBytes } from "crypto" diff --git a/packages/cli/src/services/standalone.ts b/packages/cli/src/services/standalone.ts index 899af8153fbe..3a98a578e418 100644 --- a/packages/cli/src/services/standalone.ts +++ b/packages/cli/src/services/standalone.ts @@ -1,6 +1,6 @@ import { Service, type Endpoint } from "@opencode-ai/client/effect/service" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Deferred, Effect, Schema, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { randomBytes } from "node:crypto" diff --git a/packages/cli/src/services/update-preflight.tsx b/packages/cli/src/services/update-preflight.tsx index f1dc57c460af..87a4c46ed75e 100644 --- a/packages/cli/src/services/update-preflight.tsx +++ b/packages/cli/src/services/update-preflight.tsx @@ -3,7 +3,7 @@ // version-mismatched background service before the TUI attaches. import { createCliRenderer, RGBA, TextAttributes, type CliRenderer, type ThemeMode } from "@opentui/core" import { render, useTerminalDimensions } from "@opentui/solid" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { registerOpencodeSpinner } from "@opencode-ai/tui/component/register-spinner" import { SPINNER_FRAMES } from "@opencode-ai/tui/component/spinner" import { go } from "@opencode-ai/tui/logo" diff --git a/packages/cli/src/services/updater.ts b/packages/cli/src/services/updater.ts index fd46b9008409..fe8642d1976e 100644 --- a/packages/cli/src/services/updater.ts +++ b/packages/cli/src/services/updater.ts @@ -1,11 +1,11 @@ -import { Global } from "@opencode-ai/core/global" -import { Flag } from "@opencode-ai/core/flag/flag" -import { AppProcess } from "@opencode-ai/core/process" +import { Global } from "@opencode-ai/util/global" +import { Flag } from "@opencode-ai/util/flag" +import { AppProcess } from "@opencode-ai/util/process" import { InstallationChannel, InstallationLocal, InstallationVersion, -} from "@opencode-ai/core/installation/version" +} from "@opencode-ai/util/installation/version" import { Context, Duration, Effect, FileSystem, Layer } from "effect" import { ChildProcess } from "effect/unstable/process" import { parse, type ParseError } from "jsonc-parser" diff --git a/packages/cli/test/config.test.ts b/packages/cli/test/config.test.ts index 41c023d1a1ab..db0074edb29b 100644 --- a/packages/cli/test/config.test.ts +++ b/packages/cli/test/config.test.ts @@ -1,5 +1,5 @@ import { NodeFileSystem } from "@effect/platform-node" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Effect } from "effect" import { expect, test } from "bun:test" import path from "path" diff --git a/packages/cli/test/import-boundaries.test.ts b/packages/cli/test/import-boundaries.test.ts index 039ea9763726..f0eef3cbd8bf 100644 --- a/packages/cli/test/import-boundaries.test.ts +++ b/packages/cli/test/import-boundaries.test.ts @@ -5,6 +5,16 @@ import path from "node:path" const root = path.resolve(import.meta.dir, "../../..") describe("CLI frontend import boundaries", () => { + test("does not import Core directly", async () => { + const glob = new Bun.Glob("{src,test}/**/*.{ts,tsx}") + const imports: string[] = [] + for await (const file of glob.scan({ cwd: path.join(root, "packages/cli") })) { + const source = await Bun.file(path.join(root, "packages/cli", file)).text() + if (/["']@opencode-ai\/core(?:\/[^"']*)?["']/.test(source)) imports.push(file) + } + expect(imports).toEqual([]) + }) + test("exposes only the intentional package entrypoints", async () => { const run = await import("@opencode-ai/cli/run") const mini = await import("@opencode-ai/tui/mini") diff --git a/packages/cli/test/mini.test.ts b/packages/cli/test/mini.test.ts index 357506d6c2aa..50af6e205ffa 100644 --- a/packages/cli/test/mini.test.ts +++ b/packages/cli/test/mini.test.ts @@ -1,6 +1,6 @@ import { describe, expect, test } from "bun:test" import { ClientError, OpenCode } from "@opencode-ai/client/promise" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import path from "node:path" import { createMiniConnection, mergeInput as mergeInteractiveInput, resolveMiniTarget } from "../src/mini" import { mergeInput as mergeNonInteractiveInput, parseRunModel } from "../src/run/run" diff --git a/packages/cli/test/server-connection.test.ts b/packages/cli/test/server-connection.test.ts index 41a061f57c03..c5407f7f3213 100644 --- a/packages/cli/test/server-connection.test.ts +++ b/packages/cli/test/server-connection.test.ts @@ -1,6 +1,6 @@ import { NodeFileSystem } from "@effect/platform-node" -import { Global } from "@opencode-ai/core/global" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { Global } from "@opencode-ai/util/global" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { expect, test } from "bun:test" import { Effect, FileSystem, Scope } from "effect" import fs from "node:fs/promises" diff --git a/packages/cli/test/service.test.ts b/packages/cli/test/service.test.ts index 23a1f96b4710..801fe5ad7750 100644 --- a/packages/cli/test/service.test.ts +++ b/packages/cli/test/service.test.ts @@ -1,18 +1,9 @@ import { NodeFileSystem } from "@effect/platform-node" import { Service, type Info } from "@opencode-ai/client/effect/service" -import { Database } from "@opencode-ai/core/database/database" -import { EventV2 } from "@opencode-ai/core/event" -import { EventTable } from "@opencode-ai/core/event/sql" -import { Global } from "@opencode-ai/core/global" -import { InstallationVersion } from "@opencode-ai/core/installation/version" -import { Project } from "@opencode-ai/core/project" -import { ProjectTable } from "@opencode-ai/core/project/sql" -import { AbsolutePath } from "@opencode-ai/core/schema" -import { SessionV2 } from "@opencode-ai/core/session" -import { SessionEvent } from "@opencode-ai/core/session/event" -import { SessionTable } from "@opencode-ai/core/session/sql" +import { Global } from "@opencode-ai/util/global" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { expect, test } from "bun:test" -import { Effect, Schedule, Schema } from "effect" +import { Effect, Schema } from "effect" import fs from "node:fs/promises" import os from "node:os" import path from "node:path" @@ -204,31 +195,6 @@ test("concurrent service processes elect one server", async () => { XDG_DATA_HOME: path.join(root, "data"), XDG_STATE_HOME: path.join(root, "state"), } - const sessionID = SessionV2.ID.make("ses_service_recovery") - await withDatabase( - database, - Effect.gen(function* () { - const { db } = yield* Database.Service - yield* db - .insert(ProjectTable) - .values({ id: Project.ID.global, worktree: AbsolutePath.make(root), sandboxes: [] }) - .run() - .pipe(Effect.orDie) - yield* db - .insert(SessionTable) - .values({ - id: sessionID, - project_id: Project.ID.global, - slug: "recovery", - directory: root, - title: "recovery", - version: "test", - time_suspended: Date.now(), - }) - .run() - .pipe(Effect.orDie) - }), - ) const command = [process.execPath, path.join(import.meta.dir, "../src/index.ts"), "serve", "--service"] const registration = path.join(root, "state", "opencode", "service-local.json") const port = await availablePort() @@ -281,20 +247,6 @@ test("concurrent service processes elect one server", async () => { contender.kill("SIGTERM") await contender.exited } - expect( - await withDatabase( - database, - Effect.gen(function* () { - const { db } = yield* Database.Service - return yield* db - .select({ timeSuspended: SessionTable.time_suspended }) - .from(SessionTable) - .get() - .pipe(Effect.orDie) - }), - ), - ).toEqual({ timeSuspended: null }) - expect(await waitForExecutionStart(database, sessionID)).toBe(1) await Effect.runPromise(Service.stop({ file: registration }).pipe(Effect.provide(NodeFileSystem.layer))) await winner?.exited expect(await Bun.file(registration).exists()).toBe(false) @@ -529,40 +481,6 @@ test("a failed service stays registered and owns the selected port until stopped } }, 30_000) -function withDatabase(file: string, effect: Effect.Effect) { - return Effect.runPromise(effect.pipe(Effect.provide(Database.layerFromPath(file)), Effect.scoped)) -} - -function waitForExecutionStart(file: string, sessionID: SessionV2.ID) { - return withDatabase( - file, - Effect.gen(function* () { - const { db } = yield* Database.Service - return yield* db - .select({ id: EventTable.id, sessionID: EventTable.aggregate_id, type: EventTable.type }) - .from(EventTable) - .all() - .pipe( - Effect.orDie, - Effect.map((rows) => - rows.filter( - (row) => - row.sessionID === sessionID && - row.type === - EventV2.versionedType( - SessionEvent.Execution.Started.type, - SessionEvent.Execution.Started.durable.version, - ), - ), - ), - Effect.filterOrFail((rows) => rows.length > 0), - Effect.map((rows) => rows.length), - Effect.retry(Schedule.max([Schedule.spaced("50 millis"), Schedule.recurs(200)])), - ) - }), - ) -} - async function waitForInfo(file: string, accept: (info: Info) => boolean = () => true) { for (let attempt = 0; attempt < 400; attempt++) { const value = await Bun.file(file) diff --git a/packages/core/package.json b/packages/core/package.json index 51689043710a..13d38c9fc680 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -16,7 +16,6 @@ "opencode": "./bin/opencode" }, "exports": { - "./effect/layer-node": "./src/effect/layer-node.ts", "./effect/app-node": "./src/effect/app-node.ts", "./session/runner": "./src/session/runner/index.ts", "./instructions": "./src/instructions/index.ts", @@ -44,9 +43,9 @@ "default": "./src/image/photon-wasm.bun.ts" }, "#runtime-import": { - "bun": "./src/runtime/import.bun.ts", - "node": "./src/runtime/import.node.ts", - "default": "./src/runtime/import.bun.ts" + "bun": "@opencode-ai/util/runtime/import.bun", + "node": "@opencode-ai/util/runtime/import.node", + "default": "@opencode-ai/util/runtime/import.bun" }, "#process-lock-ffi": { "bun": "./src/util/process-lock-ffi.bun.ts", @@ -57,10 +56,7 @@ "devDependencies": { "@tsconfig/bun": "catalog:", "@types/bun": "catalog:", - "@types/cross-spawn": "catalog:", "@types/node": "catalog:", - "@types/npm-package-arg": "6.1.4", - "@types/npmcli__arborist": "6.3.3", "@types/semver": "catalog:", "@types/turndown": "5.0.5", "@types/which": "3.0.4", @@ -97,51 +93,38 @@ "@ai-sdk/vercel": "2.0.39", "@ai-sdk/xai": "3.0.102", "@aws-sdk/credential-providers": "3.1057.0", - "@effect/opentelemetry": "catalog:", "@effect/platform-node": "catalog:", "@effect/sql-sqlite-bun": "catalog:", "@lydell/node-pty": "catalog:", "@modelcontextprotocol/sdk": "1.29.0", "@ff-labs/fff-bun": "0.9.4", - "@npmcli/arborist": "9.4.0", - "@npmcli/config": "10.8.1", "@opencode-ai/codemode": "workspace:*", "@opencode-ai/effect-drizzle-sqlite": "workspace:*", "@opencode-ai/effect-sqlite-node": "workspace:*", "@opencode-ai/ai": "workspace:*", "@opencode-ai/schema": "workspace:*", "@opencode-ai/plugin": "workspace:*", - "@opentelemetry/api": "1.9.0", - "@opentelemetry/context-async-hooks": "2.6.1", - "@opentelemetry/exporter-trace-otlp-http": "0.214.0", - "@opentelemetry/sdk-trace-base": "2.6.1", + "@opencode-ai/util": "workspace:*", "@parcel/watcher": "2.5.1", "@silvia-odwyer/photon-node": "0.3.4", "@openrouter/ai-sdk-provider": "2.9.0", "ai-gateway-provider": "3.1.2", "bun-pty": "0.4.8", - "cross-spawn": "catalog:", "diff": "catalog:", "drizzle-orm": "catalog:", "effect": "catalog:", "fuzzysort": "3.1.0", "gitlab-ai-provider": "6.11.1", - "glob": "13.0.5", "google-auth-library": "10.5.0", "gray-matter": "4.0.3", "htmlparser2": "8.0.2", "immer": "11.1.4", "ignore": "7.0.5", "jsonc-parser": "3.3.1", - "mime-types": "3.0.2", - "minimatch": "10.2.5", - "npm-package-arg": "13.0.2", - "resolve.exports": "catalog:", "semver": "^7.6.3", "turndown": "7.2.0", "venice-ai-sdk-provider": "2.1.1", "which": "6.0.1", - "xdg-basedir": "5.1.0", "zod": "catalog:" }, "overrides": { diff --git a/packages/core/src/agent.ts b/packages/core/src/agent.ts index 822eab9a4a25..23f1fd1240b5 100644 --- a/packages/core/src/agent.ts +++ b/packages/core/src/agent.ts @@ -1,6 +1,6 @@ export * as AgentV2 from "./agent" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Array, Context, Effect, Layer, Types } from "effect" import { Agent } from "@opencode-ai/schema/agent" import { EventV2 } from "./event" diff --git a/packages/core/src/aisdk.ts b/packages/core/src/aisdk.ts index f4f9b03f7186..d81d62505757 100644 --- a/packages/core/src/aisdk.ts +++ b/packages/core/src/aisdk.ts @@ -1,6 +1,6 @@ export * as AISDK from "./aisdk" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import type { JSONSchema7, JSONValue, diff --git a/packages/core/src/catalog.ts b/packages/core/src/catalog.ts index c12793b3589c..9f634447907f 100644 --- a/packages/core/src/catalog.ts +++ b/packages/core/src/catalog.ts @@ -1,6 +1,6 @@ export * as Catalog from "./catalog" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Array, Context, Effect, Layer, Option, Order, pipe } from "effect" import { Catalog } from "@opencode-ai/schema/catalog" import { ModelV2 } from "./model" diff --git a/packages/core/src/command.ts b/packages/core/src/command.ts index ff3ffe353e11..29f7fb3efeed 100644 --- a/packages/core/src/command.ts +++ b/packages/core/src/command.ts @@ -1,12 +1,12 @@ export * as CommandV2 from "./command" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema, Types } from "effect" import { Command } from "@opencode-ai/schema/command" import { State } from "./state" import { MCP } from "./mcp/index" import { EventV2 } from "./event" -import { AppProcess } from "./process" +import { AppProcess } from "@opencode-ai/util/process" import { ChildProcess } from "effect/unstable/process" import { Config } from "./config" import { Location } from "./location" diff --git a/packages/core/src/config.ts b/packages/core/src/config.ts index b3f762b22861..12c7096de11b 100644 --- a/packages/core/src/config.ts +++ b/packages/core/src/config.ts @@ -1,6 +1,6 @@ export * as Config from "./config" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { isDeepStrictEqual } from "node:util" import { type ParseError, parse } from "jsonc-parser" @@ -11,8 +11,8 @@ import { Integration } from "@opencode-ai/schema/integration" import { Credential } from "./credential" import { EventV2 } from "./event" import { Watcher } from "./filesystem/watcher" -import { FSUtil } from "./fs-util" -import { Global } from "./global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { Location } from "./location" import { AbsolutePath } from "./schema" import { ConfigAgent } from "./config/agent" diff --git a/packages/core/src/config/plugin/agent.ts b/packages/core/src/config/plugin/agent.ts index 8ec2c15a635a..1254576e22af 100644 --- a/packages/core/src/config/plugin/agent.ts +++ b/packages/core/src/config/plugin/agent.ts @@ -7,10 +7,10 @@ import { AgentV2 } from "../../agent" import { Config } from "../../config" import { ConfigAgent } from "../agent" import { ConfigMarkdown } from "../markdown" -import { FSUtil } from "../../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { ConfigAgentV1 } from "../../v1/config/agent" import { ConfigMigrateV1 } from "../../v1/config/migrate" -import { Global } from "../../global" +import { Global } from "@opencode-ai/util/global" import { PermissionV2 } from "../../permission" import type { LocationMutation } from "../../location-mutation" import type { ReadTool } from "../../tool/read" diff --git a/packages/core/src/config/plugin/command.ts b/packages/core/src/config/plugin/command.ts index 90b1920ee494..29de7eddb57e 100644 --- a/packages/core/src/config/plugin/command.ts +++ b/packages/core/src/config/plugin/command.ts @@ -5,7 +5,7 @@ import path from "path" import { Effect, Option, Schema, Stream } from "effect" import { CommandV2 } from "../../command" import { Config } from "../../config" -import { FSUtil } from "../../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { ConfigCommand } from "../command" import { ConfigMarkdown } from "../markdown" diff --git a/packages/core/src/config/plugin/reference.ts b/packages/core/src/config/plugin/reference.ts index 75e0cc10e419..a790a7cc5486 100644 --- a/packages/core/src/config/plugin/reference.ts +++ b/packages/core/src/config/plugin/reference.ts @@ -7,7 +7,7 @@ import { Config } from "../../config" import { ConfigReference } from "../reference" import { Reference } from "../../reference" import { AbsolutePath } from "../../schema" -import { Global } from "../../global" +import { Global } from "@opencode-ai/util/global" import { Location } from "../../location" export const Plugin = define({ diff --git a/packages/core/src/config/plugin/skill.ts b/packages/core/src/config/plugin/skill.ts index de2f28ac9cd8..c4271c4843d5 100644 --- a/packages/core/src/config/plugin/skill.ts +++ b/packages/core/src/config/plugin/skill.ts @@ -6,7 +6,7 @@ import { Effect, Stream } from "effect" import { Config } from "../../config" import { AbsolutePath } from "../../schema" import { SkillV2 } from "../../skill" -import { Global } from "../../global" +import { Global } from "@opencode-ai/util/global" import { Location } from "../../location" export const Plugin = define({ diff --git a/packages/core/src/config/variable.ts b/packages/core/src/config/variable.ts index 3bb1d22dd3e1..539d88413b94 100644 --- a/packages/core/src/config/variable.ts +++ b/packages/core/src/config/variable.ts @@ -3,7 +3,7 @@ export * as ConfigVariable from "./variable" import os from "os" import path from "path" import { Effect } from "effect" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { InvalidError } from "../v1/config/error" type ParseSource = diff --git a/packages/core/src/control-plane/move-session.ts b/packages/core/src/control-plane/move-session.ts index 1fadfea1e2f8..b5d229b7157e 100644 --- a/packages/core/src/control-plane/move-session.ts +++ b/packages/core/src/control-plane/move-session.ts @@ -1,10 +1,10 @@ export * as MoveSession from "./move-session" import { Context, DateTime, Effect, Layer, Schema } from "effect" -import { makeGlobalNode } from "../effect/app-node" -import { FSUtil } from "../fs-util" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Git } from "../git" -import { Global } from "../global" +import { Global } from "@opencode-ai/util/global" import { ProjectV2 } from "../project" import { SessionV2 } from "../session" import { SessionExecution } from "../session/execution" diff --git a/packages/core/src/credential.ts b/packages/core/src/credential.ts index 554073970911..be8b97db3d65 100644 --- a/packages/core/src/credential.ts +++ b/packages/core/src/credential.ts @@ -5,7 +5,7 @@ import { Context, Effect, Layer, Schema } from "effect" import { Credential } from "@opencode-ai/schema/credential" import { Integration } from "@opencode-ai/schema/integration" import { Database } from "./database/database" -import { makeGlobalNode } from "./effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { CredentialTable } from "./credential/sql" export const ID = Credential.ID diff --git a/packages/core/src/database/database.ts b/packages/core/src/database/database.ts index e6c36d75b89d..658faa88f85f 100644 --- a/packages/core/src/database/database.ts +++ b/packages/core/src/database/database.ts @@ -3,12 +3,12 @@ export * as Database from "./database" import { EffectDrizzleSqlite } from "@opencode-ai/effect-drizzle-sqlite" import { layer } from "#sqlite" import { Context, Effect, Layer } from "effect" -import { Global } from "../global" -import { Flag } from "../flag/flag" +import { Global } from "@opencode-ai/util/global" +import { Flag } from "@opencode-ai/util/flag" import { isAbsolute, join } from "path" import { DatabaseMigration } from "./migration" -import { InstallationChannel } from "../installation/version" -import { makeGlobalNode } from "../effect/app-node" +import { InstallationChannel } from "@opencode-ai/util/installation/version" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" const makeDatabase = EffectDrizzleSqlite.makeWithDefaults() type DatabaseShape = Effect.Success diff --git a/packages/core/src/effect/app-node-builder.ts b/packages/core/src/effect/app-node-builder.ts index 5f01469dab09..e6cc934ca1dd 100644 --- a/packages/core/src/effect/app-node-builder.ts +++ b/packages/core/src/effect/app-node-builder.ts @@ -1,7 +1,7 @@ import { buildLocationServiceMap } from "../location-services" import { LocationServiceMap } from "../location-service-map" -import { LayerNode } from "./layer-node" -import { makeGlobalNode } from "./app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" export function build(root: LayerNode.Node, replacements: LayerNode.Replacements = []) { let allReplacements = replacements diff --git a/packages/core/src/event-logger.ts b/packages/core/src/event-logger.ts index f07c96320ee1..12cc9c490ec0 100644 --- a/packages/core/src/event-logger.ts +++ b/packages/core/src/event-logger.ts @@ -1,7 +1,7 @@ export * as EventLogger from "./event-logger" import { Effect, Layer } from "effect" -import { makeGlobalNode } from "./effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { EventV2 } from "./event" const Types = new Set([ diff --git a/packages/core/src/event.ts b/packages/core/src/event.ts index 8a199fc60931..759a55721d33 100644 --- a/packages/core/src/event.ts +++ b/packages/core/src/event.ts @@ -8,7 +8,7 @@ import { and, asc, eq, gt, inArray, lte, sql } from "drizzle-orm" import { Database } from "./database/database" import { EventSequenceTable, EventTable } from "./event/sql" import { Location } from "./location" -import { makeGlobalNode } from "./effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { isDeepStrictEqual } from "node:util" import { Durable } from "@opencode-ai/schema/durable-event-manifest" diff --git a/packages/core/src/file-mutation.ts b/packages/core/src/file-mutation.ts index 7981bb26ded0..d11144d5767e 100644 --- a/packages/core/src/file-mutation.ts +++ b/packages/core/src/file-mutation.ts @@ -1,10 +1,10 @@ export * as FileMutation from "./file-mutation" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" import { dirname } from "path" import { KeyedMutex } from "./effect/keyed-mutex" -import { FSUtil } from "./fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" export interface Target { readonly canonical: string diff --git a/packages/core/src/filesystem.ts b/packages/core/src/filesystem.ts index f1dafd5c55c9..3d0f54af6cba 100644 --- a/packages/core/src/filesystem.ts +++ b/packages/core/src/filesystem.ts @@ -1,9 +1,9 @@ export * as FileSystem from "./filesystem" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { Context, Effect, Layer, Schema } from "effect" -import { FSUtil } from "./fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "./location" import { PositiveInt, RelativePath } from "./schema" import { FileSystemSearch } from "./filesystem/search" diff --git a/packages/core/src/filesystem/ignore.ts b/packages/core/src/filesystem/ignore.ts index 4d88eb5e87ce..ff64c80b4078 100644 --- a/packages/core/src/filesystem/ignore.ts +++ b/packages/core/src/filesystem/ignore.ts @@ -1,4 +1,4 @@ -import { Glob } from "../util/glob" +import { Glob } from "@opencode-ai/util/glob" const FOLDERS = new Set([ "node_modules", diff --git a/packages/core/src/filesystem/location-watcher.ts b/packages/core/src/filesystem/location-watcher.ts index 7765a396e855..ff18d2cbee8e 100644 --- a/packages/core/src/filesystem/location-watcher.ts +++ b/packages/core/src/filesystem/location-watcher.ts @@ -1,13 +1,13 @@ export * as LocationWatcher from "./location-watcher" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Stream } from "effect" import { FileSystem } from "@opencode-ai/schema/filesystem" import os from "os" import path from "path" import { Config } from "../config" import { EventV2 } from "../event" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Git } from "../git" import { Location } from "../location" import { Watcher } from "./watcher" diff --git a/packages/core/src/filesystem/search.ts b/packages/core/src/filesystem/search.ts index a2b21d32cdb8..4195527f769d 100644 --- a/packages/core/src/filesystem/search.ts +++ b/packages/core/src/filesystem/search.ts @@ -1,16 +1,16 @@ export * as FileSystemSearch from "./search" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { Context, Effect, Layer, Scope } from "effect" import { Fff } from "#fff" import fuzzysort from "fuzzysort" import { FileSystem } from "../filesystem" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "../location" import { Ripgrep } from "../ripgrep" import { RelativePath } from "../schema" -import { Flag } from "../flag/flag" +import { Flag } from "@opencode-ai/util/flag" export interface Interface { readonly find: (input: FileSystem.FindInput) => Effect.Effect diff --git a/packages/core/src/filesystem/watcher.ts b/packages/core/src/filesystem/watcher.ts index 8c4e6265a217..e72f0c5843b7 100644 --- a/packages/core/src/filesystem/watcher.ts +++ b/packages/core/src/filesystem/watcher.ts @@ -4,10 +4,10 @@ export * as Watcher from "./watcher" import { createWrapper } from "@parcel/watcher/wrapper" import type ParcelWatcher from "@parcel/watcher" import { FileSystem } from "@opencode-ai/schema/filesystem" -import { makeGlobalNode } from "../effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { Cause, Context, Effect, Layer, PubSub, Scope, Stream } from "effect" import { KeyedMutex } from "../effect/keyed-mutex" -import { Flag } from "../flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { lazy } from "../util/lazy" import { watch as watchFileSystem } from "node:fs" import path from "path" diff --git a/packages/core/src/form.ts b/packages/core/src/form.ts index 30ae70e16c2c..bef4ad4f5426 100644 --- a/packages/core/src/form.ts +++ b/packages/core/src/form.ts @@ -2,7 +2,7 @@ export * as Form from "./form" import { Form } from "@opencode-ai/schema/form" import { Cache, Context, Deferred, Duration, Effect, Exit, Layer, Option, Schema } from "effect" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { EventV2 } from "./event" const RETENTION = Duration.minutes(10) diff --git a/packages/core/src/generate.ts b/packages/core/src/generate.ts index 3dbc86dc623d..9304bbb0014d 100644 --- a/packages/core/src/generate.ts +++ b/packages/core/src/generate.ts @@ -3,8 +3,8 @@ export * as Generate from "./generate" import { LLM, LLMClient, LLMError } from "@opencode-ai/ai" import { Context, Effect, Layer, Schema } from "effect" import { Catalog } from "./catalog" -import { makeLocationNode } from "./effect/app-node" -import { llmClient } from "./effect/app-node-platform" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { llmClient } from "@opencode-ai/util/effect/app-node-platform" import { Integration } from "./integration" import { ModelV2 } from "./model" import { SessionRunnerModel } from "./session/runner/model" diff --git a/packages/core/src/git.ts b/packages/core/src/git.ts index 8ac4ed203b80..989e15ae3b36 100644 --- a/packages/core/src/git.ts +++ b/packages/core/src/git.ts @@ -5,9 +5,9 @@ import { randomUUID } from "crypto" import { Context, Effect, Layer, Schema, Stream } from "effect" import { ChildProcess } from "effect/unstable/process" import { AbsolutePath, RelativePath } from "./schema" -import { FSUtil } from "./fs-util" -import { AppProcess } from "./process" -import { makeGlobalNode } from "./effect/app-node" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { AppProcess } from "@opencode-ai/util/process" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { File } from "./file" import { KeyedMutex } from "./effect/keyed-mutex" diff --git a/packages/core/src/image.ts b/packages/core/src/image.ts index 5551d06cd40c..f24b222590ea 100644 --- a/packages/core/src/image.ts +++ b/packages/core/src/image.ts @@ -1,6 +1,6 @@ export * as Image from "./image" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" import { Config } from "./config" import { FileSystem } from "./filesystem" diff --git a/packages/core/src/instruction-discovery.ts b/packages/core/src/instruction-discovery.ts index f838083b4084..fd109d82edd7 100644 --- a/packages/core/src/instruction-discovery.ts +++ b/packages/core/src/instruction-discovery.ts @@ -2,13 +2,13 @@ export * as InstructionDiscovery from "./instruction-discovery" import { Array, Context, Effect, Layer, Schema } from "effect" import { isAbsolute, join, relative, sep } from "path" -import { FSUtil } from "./fs-util" -import { Flag } from "./flag/flag" -import { Global } from "./global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Flag } from "@opencode-ai/util/flag" +import { Global } from "@opencode-ai/util/global" import { Location } from "./location" import { AbsolutePath } from "./schema" import { Instructions } from "./instructions/index" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" class File extends Schema.Class("InstructionDiscovery.File")({ path: AbsolutePath, diff --git a/packages/core/src/instructions/builtins.ts b/packages/core/src/instructions/builtins.ts index f8ce9b553589..03b38d75b7b7 100644 --- a/packages/core/src/instructions/builtins.ts +++ b/packages/core/src/instructions/builtins.ts @@ -1,6 +1,6 @@ export * as InstructionBuiltIns from "./builtins" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, DateTime, Effect, Layer, Schema } from "effect" import { Location } from "../location" import { SessionSchema } from "../session/schema" diff --git a/packages/core/src/integration.ts b/packages/core/src/integration.ts index 88b947d10dfc..5c9548bccb03 100644 --- a/packages/core/src/integration.ts +++ b/packages/core/src/integration.ts @@ -1,6 +1,6 @@ export * as Integration from "./integration" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Cause, Clock, @@ -22,7 +22,7 @@ import { Credential } from "./credential" import { State } from "./state" import { EventV2 } from "./event" import { IntegrationConnection } from "./integration/connection" -import { AppProcess } from "./process" +import { AppProcess } from "@opencode-ai/util/process" import { ChildProcess } from "effect/unstable/process" export const ID = Integration.ID diff --git a/packages/core/src/job.ts b/packages/core/src/job.ts index ff5f40d39c5a..eb2efb2fd197 100644 --- a/packages/core/src/job.ts +++ b/packages/core/src/job.ts @@ -1,7 +1,7 @@ export * as Job from "./job" import { Cause, Clock, Context, Deferred, Effect, Exit, Layer, Scope, SynchronizedRef } from "effect" -import { makeGlobalNode } from "./effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { Identifier } from "./id/id" import { SessionSchema } from "./session/schema" diff --git a/packages/core/src/kv.ts b/packages/core/src/kv.ts index 9bc0d1009485..92b7bd9c2c09 100644 --- a/packages/core/src/kv.ts +++ b/packages/core/src/kv.ts @@ -3,7 +3,7 @@ export * as KV from "./kv" import { eq } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" import { Database } from "./database/database" -import { makeGlobalNode } from "./effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { KVTable } from "./kv/sql" export type Value = Schema.Json diff --git a/packages/core/src/location-mutation.ts b/packages/core/src/location-mutation.ts index 74b028de85ed..3c15d9a2a405 100644 --- a/packages/core/src/location-mutation.ts +++ b/packages/core/src/location-mutation.ts @@ -1,9 +1,9 @@ export * as LocationMutation from "./location-mutation" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { Context, Effect, Layer, Schema } from "effect" -import { FSUtil } from "./fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "./location" import { Project } from "./project" import { AbsolutePath } from "./schema" diff --git a/packages/core/src/location-service-map.ts b/packages/core/src/location-service-map.ts index 1a6c26737dd5..c79837b04e2a 100644 --- a/packages/core/src/location-service-map.ts +++ b/packages/core/src/location-service-map.ts @@ -1,6 +1,6 @@ import { Context, Effect, Layer, LayerMap } from "effect" -import { LayerNode } from "./effect/layer-node" -import { Node } from "./effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { Node } from "@opencode-ai/util/effect/app-node" import { Location } from "./location" import type { LocationError, LocationServices } from "./location-services" diff --git a/packages/core/src/location-services.ts b/packages/core/src/location-services.ts index 47e3f6dd2fbc..d4ddcecbf247 100644 --- a/packages/core/src/location-services.ts +++ b/packages/core/src/location-services.ts @@ -4,8 +4,8 @@ import { AISDK } from "./aisdk" import { Catalog } from "./catalog" import { CommandV2 } from "./command" import { Config } from "./config" -import { LayerNode } from "./effect/layer-node" -import { Node } from "./effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { Node } from "@opencode-ai/util/effect/app-node" import { EventV2 } from "./event" import { FileMutation } from "./file-mutation" import { FileSystem } from "./filesystem" diff --git a/packages/core/src/location.ts b/packages/core/src/location.ts index 8228b8599ea3..f5ccabf8c556 100644 --- a/packages/core/src/location.ts +++ b/packages/core/src/location.ts @@ -1,8 +1,8 @@ import { Context, Effect, Layer } from "effect" import { Info, Ref, response } from "@opencode-ai/schema/location" import { Project } from "./project" -import { LayerNode } from "./effect/layer-node" -import { makeLocationNode, tags } from "./effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { makeLocationNode, tags } from "@opencode-ai/util/effect/app-node" export * as Location from "./location" diff --git a/packages/core/src/mcp/client.ts b/packages/core/src/mcp/client.ts index 5f48cba64957..98e125bfcaf4 100644 --- a/packages/core/src/mcp/client.ts +++ b/packages/core/src/mcp/client.ts @@ -29,7 +29,7 @@ import { } from "@modelcontextprotocol/sdk/types.js" import { Cause, Effect, Exit, Schema } from "effect" import { ConfigMCP } from "../config/mcp" -import { InstallationVersion } from "../installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" const DEFAULT_STARTUP_TIMEOUT = 30_000 const DEFAULT_CATALOG_TIMEOUT = 30_000 diff --git a/packages/core/src/mcp/index.ts b/packages/core/src/mcp/index.ts index 7586f262723f..d8807ae4c871 100644 --- a/packages/core/src/mcp/index.ts +++ b/packages/core/src/mcp/index.ts @@ -5,7 +5,7 @@ import { McpEvent } from "@opencode-ai/schema/mcp-event" import { Command } from "@opencode-ai/schema/command" import { createHash } from "node:crypto" import { Cause, Context, Deferred, Effect, Exit, FiberSet, Layer, Schema, Scope, Stream } from "effect" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Config } from "../config" import { ConfigMCP } from "../config/mcp" import { Credential } from "../credential" @@ -15,7 +15,7 @@ import { Integration } from "../integration" import { IntegrationConnection } from "../integration/connection" import { KeyedMutex } from "../effect/keyed-mutex" import { Location } from "../location" -import { waitForAbort } from "../process" +import { waitForAbort } from "@opencode-ai/util/process" import { State } from "../state" import { MCPClient } from "./client" import { MCPOAuth } from "./oauth" diff --git a/packages/core/src/mcp/instructions.ts b/packages/core/src/mcp/instructions.ts index 6c0be1dc737f..e41a108bc355 100644 --- a/packages/core/src/mcp/instructions.ts +++ b/packages/core/src/mcp/instructions.ts @@ -1,6 +1,6 @@ export * as McpInstructions from "./instructions" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" import { AgentV2 } from "../agent" import { PermissionV2 } from "../permission" diff --git a/packages/core/src/models-dev.ts b/packages/core/src/models-dev.ts index 0caf414cce64..bfecd5c74e25 100644 --- a/packages/core/src/models-dev.ts +++ b/packages/core/src/models-dev.ts @@ -3,15 +3,15 @@ import { Context, Duration, Effect, Layer, Option, Schedule, Schema } from "effe import { HttpClient, HttpClientRequest } from "effect/unstable/http" import { ModelsDev } from "@opencode-ai/schema/models-dev" import { Money } from "@opencode-ai/schema/money" -import { Global } from "./global" -import { Flag } from "./flag/flag" -import { Flock } from "./util/flock" -import { Hash } from "./util/hash" -import { FSUtil } from "./fs-util" -import { InstallationChannel, InstallationVersion } from "./installation/version" +import { Global } from "@opencode-ai/util/global" +import { Flag } from "@opencode-ai/util/flag" +import { Flock } from "@opencode-ai/util/flock" +import { Hash } from "@opencode-ai/util/hash" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { InstallationChannel, InstallationVersion } from "@opencode-ai/util/installation/version" import { EventV2 } from "./event" -import { makeGlobalNode } from "./effect/app-node" -import { httpClient } from "./effect/app-node-platform" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { ModelV2 } from "./model" import { ProviderV2 } from "./provider" diff --git a/packages/core/src/permission.ts b/packages/core/src/permission.ts index 29a8e3720a7a..1a93f4f58da7 100644 --- a/packages/core/src/permission.ts +++ b/packages/core/src/permission.ts @@ -1,6 +1,6 @@ export * as PermissionV2 from "./permission" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Deferred, Effect, Layer, Schema } from "effect" import { Permission } from "@opencode-ai/schema/permission" import { EventV2 } from "./event" diff --git a/packages/core/src/permission/saved.ts b/packages/core/src/permission/saved.ts index ffc4559afee0..a973ae3e1ba0 100644 --- a/packages/core/src/permission/saved.ts +++ b/packages/core/src/permission/saved.ts @@ -3,7 +3,7 @@ export * as PermissionSaved from "./saved" import { eq } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" import { Database } from "../database/database" -import { makeGlobalNode } from "../effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { ProjectV2 } from "../project" import { PermissionTable } from "./sql" import { PermissionSaved } from "@opencode-ai/schema/permission-saved" diff --git a/packages/core/src/plugin.ts b/packages/core/src/plugin.ts index 4054873851f8..59c53736791c 100644 --- a/packages/core/src/plugin.ts +++ b/packages/core/src/plugin.ts @@ -2,7 +2,7 @@ export * as PluginV2 from "./plugin" import type { Plugin } from "@opencode-ai/plugin/v2/effect/plugin" import { Event, ID, type Info } from "@opencode-ai/schema/plugin" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Exit, Layer, Scope, Semaphore } from "effect" import { AgentV2 } from "./agent" import { AISDK } from "./aisdk" diff --git a/packages/core/src/plugin/agent.ts b/packages/core/src/plugin/agent.ts index 8b94e219aeaf..080cdb1ebebf 100644 --- a/packages/core/src/plugin/agent.ts +++ b/packages/core/src/plugin/agent.ts @@ -4,7 +4,7 @@ import path from "path" import { define } from "@opencode-ai/plugin/v2/effect/plugin" import { Effect } from "effect" import { AgentV2 } from "../agent" -import { Global } from "../global" +import { Global } from "@opencode-ai/util/global" import { Location } from "../location" import { PermissionV2 } from "../permission" diff --git a/packages/core/src/plugin/hooks.ts b/packages/core/src/plugin/hooks.ts index 4ac437d39260..5538601c915c 100644 --- a/packages/core/src/plugin/hooks.ts +++ b/packages/core/src/plugin/hooks.ts @@ -4,7 +4,7 @@ import type { AISDKHooks } from "@opencode-ai/plugin/v2/effect/aisdk" import type { SessionHooks } from "@opencode-ai/plugin/v2/effect/session" import type { ToolHooks } from "@opencode-ai/plugin/v2/effect/tool" import { Context, Effect, Layer, Scope } from "effect" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { State } from "../state" export interface Domains { diff --git a/packages/core/src/plugin/internal.ts b/packages/core/src/plugin/internal.ts index 69725e2c2424..2488c1c6fd95 100644 --- a/packages/core/src/plugin/internal.ts +++ b/packages/core/src/plugin/internal.ts @@ -17,14 +17,14 @@ import { EventV2 } from "../event" import { FileMutation } from "../file-mutation" import { Form } from "../form" import { FileSystem } from "../filesystem" -import { FSUtil } from "../fs-util" -import { Global } from "../global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { Image } from "../image" import { Integration } from "../integration" import { Location } from "../location" import { LocationMutation } from "../location-mutation" import { ModelsDev } from "../models-dev" -import { Npm } from "../npm" +import { Npm } from "@opencode-ai/util/npm" import { PermissionV2 } from "../permission" import { Reference } from "../reference" import { Ripgrep } from "../ripgrep" diff --git a/packages/core/src/plugin/layer-map.example.ts b/packages/core/src/plugin/layer-map.example.ts index 63e33d3f0c46..8a8dc1795ac5 100644 --- a/packages/core/src/plugin/layer-map.example.ts +++ b/packages/core/src/plugin/layer-map.example.ts @@ -1,7 +1,7 @@ export * as LayerMapExample from "./layer-map.example" import { Context, Effect, Layer, LayerMap } from "effect" -import { Npm } from "../npm" +import { Npm } from "@opencode-ai/util/npm" /** * Tutorial: split global services from context-specific services. diff --git a/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts b/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts index 06025496145d..a24cd711b3e1 100644 --- a/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts +++ b/packages/core/src/plugin/provider/cloudflare-ai-gateway.ts @@ -1,5 +1,5 @@ import os from "os" -import { InstallationVersion } from "../../installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Effect, Option, Schema } from "effect" import { define } from "@opencode-ai/plugin/v2/effect/plugin" diff --git a/packages/core/src/plugin/provider/cloudflare-workers-ai.ts b/packages/core/src/plugin/provider/cloudflare-workers-ai.ts index c3aa50fbb468..435d7086c2b5 100644 --- a/packages/core/src/plugin/provider/cloudflare-workers-ai.ts +++ b/packages/core/src/plugin/provider/cloudflare-workers-ai.ts @@ -1,5 +1,5 @@ import os from "os" -import { InstallationVersion } from "../../installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Effect } from "effect" import { define } from "@opencode-ai/plugin/v2/effect/plugin" import { ProviderV2 } from "../../provider" diff --git a/packages/core/src/plugin/provider/dynamic.ts b/packages/core/src/plugin/provider/dynamic.ts index 97bfd15ebd6a..e5876a5a8242 100644 --- a/packages/core/src/plugin/provider/dynamic.ts +++ b/packages/core/src/plugin/provider/dynamic.ts @@ -1,7 +1,7 @@ import { Effect } from "effect" import { pathToFileURL } from "url" import { define } from "@opencode-ai/plugin/v2/effect/plugin" -import { Npm } from "../../npm" +import { Npm } from "@opencode-ai/util/npm" import { importModule } from "#runtime-import" export const DynamicProviderPlugin = define({ diff --git a/packages/core/src/plugin/provider/github-copilot.ts b/packages/core/src/plugin/provider/github-copilot.ts index 324a937a5c10..68ed4591c7a2 100644 --- a/packages/core/src/plugin/provider/github-copilot.ts +++ b/packages/core/src/plugin/provider/github-copilot.ts @@ -4,7 +4,7 @@ import { Catalog } from "../../catalog" import { Credential } from "../../credential" import { EventV2 } from "../../event" import { CopilotModels } from "../../github-copilot/models" -import { InstallationVersion } from "../../installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Integration } from "../../integration" import { ModelV2 } from "../../model" import { define } from "@opencode-ai/plugin/v2/effect/plugin" diff --git a/packages/core/src/plugin/provider/gitlab.ts b/packages/core/src/plugin/provider/gitlab.ts index a413c85d7dba..9cb3974f1d75 100644 --- a/packages/core/src/plugin/provider/gitlab.ts +++ b/packages/core/src/plugin/provider/gitlab.ts @@ -1,5 +1,5 @@ import os from "os" -import { InstallationVersion } from "../../installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Effect } from "effect" import { define } from "@opencode-ai/plugin/v2/effect/plugin" import { ProviderV2 } from "../../provider" diff --git a/packages/core/src/plugin/provider/openai.ts b/packages/core/src/plugin/provider/openai.ts index 013388aa5557..195fdd317bb4 100644 --- a/packages/core/src/plugin/provider/openai.ts +++ b/packages/core/src/plugin/provider/openai.ts @@ -4,7 +4,7 @@ import { define } from "@opencode-ai/plugin/v2/effect/plugin" import { Deferred, Effect, Option, Schema, Semaphore, Stream } from "effect" import { Credential } from "../../credential" import { EventV2 } from "../../event" -import { InstallationVersion } from "../../installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Integration } from "../../integration" import { ModelV2 } from "../../model" import { OauthCallbackPage } from "../../oauth/page" diff --git a/packages/core/src/plugin/provider/sap-ai-core.ts b/packages/core/src/plugin/provider/sap-ai-core.ts index 581a028cf963..07b19a9f248e 100644 --- a/packages/core/src/plugin/provider/sap-ai-core.ts +++ b/packages/core/src/plugin/provider/sap-ai-core.ts @@ -1,7 +1,7 @@ import { Effect } from "effect" import { pathToFileURL } from "url" import { define } from "@opencode-ai/plugin/v2/effect/plugin" -import { Npm } from "../../npm" +import { Npm } from "@opencode-ai/util/npm" import { ProviderV2 } from "../../provider" import { importModule } from "#runtime-import" diff --git a/packages/core/src/plugin/provider/xai.ts b/packages/core/src/plugin/provider/xai.ts index 617bb0f87181..647c560ad030 100644 --- a/packages/core/src/plugin/provider/xai.ts +++ b/packages/core/src/plugin/provider/xai.ts @@ -3,7 +3,7 @@ import type { IntegrationOAuthMethodRegistration } from "@opencode-ai/plugin/v2/ import { define } from "@opencode-ai/plugin/v2/effect/plugin" import { Clock, Deferred, Effect, Option, Schema } from "effect" import { Credential } from "../../credential" -import { InstallationVersion } from "../../installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Integration } from "../../integration" import { OauthCallbackPage } from "../../oauth/page" import { ProviderV2 } from "../../provider" diff --git a/packages/core/src/plugin/runtime.ts b/packages/core/src/plugin/runtime.ts index e07bb2b03183..4bb85f059dc8 100644 --- a/packages/core/src/plugin/runtime.ts +++ b/packages/core/src/plugin/runtime.ts @@ -2,7 +2,7 @@ export * as PluginRuntime from "./runtime" import { Context, Effect, Layer } from "effect" import { AgentV2 } from "../agent" -import { makeGlobalNode } from "../effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { Job } from "../job" import { Location } from "../location" import { LocationServiceMap } from "../location-service-map" diff --git a/packages/core/src/plugin/sdk.ts b/packages/core/src/plugin/sdk.ts index 56df0813dd65..99861d90d5a2 100644 --- a/packages/core/src/plugin/sdk.ts +++ b/packages/core/src/plugin/sdk.ts @@ -2,7 +2,7 @@ export * as SdkPlugins from "./sdk" import type { Plugin } from "@opencode-ai/plugin/v2/effect/plugin" import { Context, Effect, Layer } from "effect" -import { makeGlobalNode } from "../effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { EventV2 } from "../event" import type { PluginV2 } from "../plugin" diff --git a/packages/core/src/plugin/skill.ts b/packages/core/src/plugin/skill.ts index f5fa0a4ea5dd..ed2cdccb6418 100644 --- a/packages/core/src/plugin/skill.ts +++ b/packages/core/src/plugin/skill.ts @@ -6,10 +6,10 @@ import { define } from "@opencode-ai/plugin/v2/effect/plugin" import { Effect } from "effect" import { AbsolutePath } from "../schema" import { SkillV2 } from "../skill" -import { InstallationChannel, InstallationVersion } from "../installation/version" +import { InstallationChannel, InstallationVersion } from "@opencode-ai/util/installation/version" import { Config } from "../config" import { Location } from "../location" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import os from "os" import path from "path" import { fileURLToPath } from "url" diff --git a/packages/core/src/plugin/supervisor.ts b/packages/core/src/plugin/supervisor.ts index ee91e4cfc341..1e0b604952f8 100644 --- a/packages/core/src/plugin/supervisor.ts +++ b/packages/core/src/plugin/supervisor.ts @@ -10,20 +10,20 @@ import { Catalog } from "../catalog" import { CommandV2 } from "../command" import { Config } from "../config" import { ConfigPlugin } from "../config/plugin" -import { makeLocationNode } from "../effect/app-node" -import { httpClient } from "../effect/app-node-platform" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { EventV2 } from "../event" import { FileMutation } from "../file-mutation" import { FileSystem } from "../filesystem" import { Form } from "../form" -import { FSUtil } from "../fs-util" -import { Global } from "../global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { Image } from "../image" import { Integration } from "../integration" import { Location } from "../location" import { LocationMutation } from "../location-mutation" import { ModelsDev } from "../models-dev" -import { Npm } from "../npm" +import { Npm } from "@opencode-ai/util/npm" import { PermissionV2 } from "../permission" import { PluginV2 } from "../plugin" import { PluginPromise } from "../plugin/promise" diff --git a/packages/core/src/project.ts b/packages/core/src/project.ts index 1539d56f4f7c..30ea46540730 100644 --- a/packages/core/src/project.ts +++ b/packages/core/src/project.ts @@ -7,11 +7,11 @@ import { asc, desc } from "drizzle-orm" import path from "path" import { AbsolutePath } from "./schema" import { Database } from "./database/database" -import { FSUtil } from "./fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Git } from "./git" -import { AppProcess } from "./process" -import { makeGlobalNode } from "./effect/app-node" -import { Hash } from "./util/hash" +import { AppProcess } from "@opencode-ai/util/process" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { Hash } from "@opencode-ai/util/hash" import { ProjectDirectories } from "./project/directories" import { ProjectSchema } from "./project/schema" import { ProjectTable } from "./project/sql" diff --git a/packages/core/src/project/copy.ts b/packages/core/src/project/copy.ts index 9183e26eb9fd..8b09eb78864e 100644 --- a/packages/core/src/project/copy.ts +++ b/packages/core/src/project/copy.ts @@ -3,9 +3,9 @@ export * as ProjectCopy from "./copy" import { Context, Effect, Layer, Schema } from "effect" import path from "path" import { AbsolutePath } from "../schema" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Git } from "../git" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Project } from "../project" import { ProjectDirectories } from "./directories" import { makeGitWorktreeStrategy } from "./copy-strategies" diff --git a/packages/core/src/project/directories.ts b/packages/core/src/project/directories.ts index fa4995c26d05..ef0064c5d8f7 100644 --- a/packages/core/src/project/directories.ts +++ b/packages/core/src/project/directories.ts @@ -3,7 +3,7 @@ export * as ProjectDirectories from "./directories" import { and, asc, desc, eq, isNotNull, isNull, ne, or } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" import { Database } from "../database/database" -import { makeGlobalNode } from "../effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { AbsolutePath } from "../schema" import { ProjectSchema } from "./schema" import { ProjectDirectoryTable } from "./sql" diff --git a/packages/core/src/provider.ts b/packages/core/src/provider.ts index f4db71ca8355..fd8be3d7887a 100644 --- a/packages/core/src/provider.ts +++ b/packages/core/src/provider.ts @@ -3,7 +3,7 @@ export * as ProviderV2 from "./provider" import { Effect, Schema } from "effect" import { Provider } from "@opencode-ai/schema/provider" import type { ProviderPackageDefinition } from "@opencode-ai/ai" -import { Npm } from "./npm" +import { Npm } from "@opencode-ai/util/npm" import type { DeepMutable } from "./schema" import { importModule, resolveModule } from "#runtime-import" diff --git a/packages/core/src/pty.ts b/packages/core/src/pty.ts index 4111aaa31a00..21f6c6f6ab5f 100644 --- a/packages/core/src/pty.ts +++ b/packages/core/src/pty.ts @@ -1,6 +1,6 @@ export * as Pty from "./pty" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import type { Disp, Proc } from "#pty" import { Context, Effect, Layer, Schema, Types } from "effect" import { Pty } from "@opencode-ai/schema/pty" diff --git a/packages/core/src/pty/ticket.ts b/packages/core/src/pty/ticket.ts index 2f227aa1427d..f434c367914e 100644 --- a/packages/core/src/pty/ticket.ts +++ b/packages/core/src/pty/ticket.ts @@ -4,7 +4,7 @@ import { WorkspaceV2 } from "../workspace" import { PtyTicket } from "@opencode-ai/schema/pty-ticket" import { PtyID } from "./schema" import { Cache, Context, Duration, Effect, Layer } from "effect" -import { makeGlobalNode } from "../effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" const DEFAULT_TTL = Duration.seconds(60) const CAPACITY = 10_000 diff --git a/packages/core/src/question.ts b/packages/core/src/question.ts index 1b57cfcfe207..3961ad5b1fb5 100644 --- a/packages/core/src/question.ts +++ b/packages/core/src/question.ts @@ -1,6 +1,6 @@ export * as QuestionV2 from "./question" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Deferred, Effect, Layer, Schema } from "effect" import { Question } from "@opencode-ai/schema/question" import { EventV2 } from "./event" diff --git a/packages/core/src/reference.ts b/packages/core/src/reference.ts index 3c0e7bb479cc..414af3ba32ce 100644 --- a/packages/core/src/reference.ts +++ b/packages/core/src/reference.ts @@ -1,9 +1,9 @@ export * as Reference from "./reference" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Scope, Types } from "effect" import { Reference } from "@opencode-ai/schema/reference" -import { Global } from "./global" +import { Global } from "@opencode-ai/util/global" import { EventV2 } from "./event" import { Repository } from "./repository" import { RepositoryCache } from "./repository-cache" diff --git a/packages/core/src/reference/instructions.ts b/packages/core/src/reference/instructions.ts index 7e0994679089..83632ba58506 100644 --- a/packages/core/src/reference/instructions.ts +++ b/packages/core/src/reference/instructions.ts @@ -1,6 +1,6 @@ export * as ReferenceInstructions from "./instructions" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" import { Reference } from "../reference" import { Instructions } from "../instructions/index" diff --git a/packages/core/src/repository-cache.ts b/packages/core/src/repository-cache.ts index 988236743b39..7e02a459e034 100644 --- a/packages/core/src/repository-cache.ts +++ b/packages/core/src/repository-cache.ts @@ -1,12 +1,12 @@ import path from "path" import { Context, Effect, Layer, Schema } from "effect" -import { FSUtil } from "./fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Git } from "./git" -import { Global } from "./global" +import { Global } from "@opencode-ai/util/global" import { Repository } from "./repository" import { AbsolutePath } from "./schema" -import { makeGlobalNode } from "./effect/app-node" -import { EffectFlock } from "./util/effect-flock" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { EffectFlock } from "@opencode-ai/util/effect-flock" export type Result = { readonly repository: string diff --git a/packages/core/src/ripgrep.ts b/packages/core/src/ripgrep.ts index 7e1056c4d826..5673c9ab4ce8 100644 --- a/packages/core/src/ripgrep.ts +++ b/packages/core/src/ripgrep.ts @@ -3,8 +3,8 @@ export * as Ripgrep from "./ripgrep" import { Context, Effect, Fiber, Layer, Schema, Stream } from "effect" import { ChildProcess } from "effect/unstable/process" import { Entry, Match } from "@opencode-ai/schema/filesystem" -import { makeGlobalNode } from "./effect/app-node" -import { AppProcess, collectStream, waitForAbort } from "./process" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { AppProcess, collectStream, waitForAbort } from "@opencode-ai/util/process" import { NonNegativeInt, PositiveInt, RelativePath } from "./schema" import { RipgrepBinary } from "./ripgrep/binary" diff --git a/packages/core/src/ripgrep/binary.ts b/packages/core/src/ripgrep/binary.ts index 762a8e613ef0..3f876f901de6 100644 --- a/packages/core/src/ripgrep/binary.ts +++ b/packages/core/src/ripgrep/binary.ts @@ -3,11 +3,11 @@ import { Context, Effect, Layer, Stream } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http" import { ChildProcess } from "effect/unstable/process" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" -import { CrossSpawnSpawner } from "../cross-spawn-spawner" -import { makeGlobalNode } from "../effect/app-node" -import { httpClient } from "../effect/app-node-platform" -import { FSUtil } from "../fs-util" -import { Global } from "../global" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { which } from "../util/which" export namespace RipgrepBinary { diff --git a/packages/core/src/session.ts b/packages/core/src/session.ts index d9fa0627b1d2..822c93465a01 100644 --- a/packages/core/src/session.ts +++ b/packages/core/src/session.ts @@ -20,7 +20,7 @@ import { AbsolutePath, PositiveInt, RelativePath } from "./schema" import { AgentV2 } from "./agent" import { SessionV1 } from "./v1/session" import { Money } from "@opencode-ai/schema/money" -import { InstallationVersion } from "./installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Slug } from "./util/slug" import { ProjectTable } from "./project/sql" import path from "path" @@ -29,7 +29,7 @@ import { SessionRunner } from "./session/runner/index" import { SessionStore } from "./session/store" import { SessionExecution } from "./session/execution" import { MessageDecodeError, NotFoundError } from "./session/error" -import { makeGlobalNode } from "./effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { LocationServiceMap } from "./location-service-map" import { SessionEvent } from "./session/event" import { SessionPending } from "./session/pending" @@ -37,7 +37,7 @@ import { SessionGenerate } from "./session/generate" import { Snapshot } from "./snapshot" import { SessionRevert } from "./session/revert" import { Session } from "@opencode-ai/schema/session" -import { FSUtil } from "./fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Image } from "./image" import { Mime } from "./mime" import type { EventLog } from "@opencode-ai/schema/event-log" @@ -45,7 +45,7 @@ import { SkillV2 } from "./skill" import { Job } from "./job" import { CommandV2 } from "./command" import { Shell } from "./shell" -import { Global } from "./global" +import { Global } from "@opencode-ai/util/global" import { Shell as ShellSchema } from "@opencode-ai/schema/shell" import { KeyedMutex } from "./effect/keyed-mutex" import { fileURLToPath } from "url" diff --git a/packages/core/src/session/compaction.ts b/packages/core/src/session/compaction.ts index b49fc50ba82b..8e36a67089d2 100644 --- a/packages/core/src/session/compaction.ts +++ b/packages/core/src/session/compaction.ts @@ -5,8 +5,8 @@ import { SessionError } from "@opencode-ai/schema/session-error" import { Context, Effect, Layer, Stream } from "effect" import { Config } from "../config" import { EventV2 } from "../event" -import { makeLocationNode } from "../effect/app-node" -import { llmClient } from "../effect/app-node-platform" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { llmClient } from "@opencode-ai/util/effect/app-node-platform" import { SessionEvent } from "./event" import type { SessionMessage } from "./message" import { SessionModelHeaders } from "./model-headers" diff --git a/packages/core/src/session/context.ts b/packages/core/src/session/context.ts index 9bdf354731a0..d07a7f1e8c33 100644 --- a/packages/core/src/session/context.ts +++ b/packages/core/src/session/context.ts @@ -3,7 +3,7 @@ export * as SessionContext from "./context" import { Context, Effect, Layer } from "effect" import { AgentV2 } from "../agent" import { Database } from "../database/database" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { InstructionDiscovery } from "../instruction-discovery" import { Instructions } from "../instructions/index" import { InstructionBuiltIns } from "../instructions/builtins" diff --git a/packages/core/src/session/execution.ts b/packages/core/src/session/execution.ts index 3b45ba25c92d..9cef14725293 100644 --- a/packages/core/src/session/execution.ts +++ b/packages/core/src/session/execution.ts @@ -3,7 +3,7 @@ export * as SessionExecution from "./execution" import { Cause, Context, Effect, Exit, Layer } from "effect" import { EventV2 } from "../event" import { LocationServiceMap } from "../location-service-map" -import { makeGlobalNode } from "../effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { SessionEvent } from "./event" import { SessionRunCoordinator } from "./run-coordinator" import { SessionRunner } from "./runner/index" diff --git a/packages/core/src/session/execution/restart.ts b/packages/core/src/session/execution/restart.ts index eb75a7bf4212..985c46a556ea 100644 --- a/packages/core/src/session/execution/restart.ts +++ b/packages/core/src/session/execution/restart.ts @@ -1,7 +1,7 @@ export * as SessionRestart from "./restart" import { Context, Effect, Layer } from "effect" -import { makeGlobalNode } from "../../effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { SessionExecution } from "../execution" import { SessionStore } from "../store" diff --git a/packages/core/src/session/generate-node.ts b/packages/core/src/session/generate-node.ts index 7d7e88e90f6a..cb419cb64afa 100644 --- a/packages/core/src/session/generate-node.ts +++ b/packages/core/src/session/generate-node.ts @@ -3,8 +3,8 @@ export * as SessionGenerateNode from "./generate-node" import { LLM, LLMClient, Message, SystemPart } from "@opencode-ai/ai" import { Effect, Layer } from "effect" import { Database } from "../database/database" -import { makeLocationNode } from "../effect/app-node" -import { llmClient } from "../effect/app-node-platform" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { llmClient } from "@opencode-ai/util/effect/app-node-platform" import { PluginHooks } from "../plugin/hooks" import { SessionContext } from "./context" import { SessionGenerate } from "./generate" diff --git a/packages/core/src/session/instruction-entry.ts b/packages/core/src/session/instruction-entry.ts index 43ccb99b2400..371a7337e764 100644 --- a/packages/core/src/session/instruction-entry.ts +++ b/packages/core/src/session/instruction-entry.ts @@ -4,7 +4,7 @@ import { and, asc, eq, isNotNull, isNull, ne, or } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" import { InstructionEntry } from "@opencode-ai/schema/instruction-entry" import { Database } from "../database/database" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Instructions } from "../instructions/index" import { SessionSchema } from "./schema" import { InstructionEntryTable } from "./sql" diff --git a/packages/core/src/session/instructions.ts b/packages/core/src/session/instructions.ts index 22f003e5eafb..d3ad3fcbaf60 100644 --- a/packages/core/src/session/instructions.ts +++ b/packages/core/src/session/instructions.ts @@ -2,9 +2,9 @@ export * as SessionInstructions from "./instructions" import { relative } from "path" import { Context, DateTime, Effect, Layer, Option, Ref, Schema } from "effect" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { EventV2 } from "../event" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "../location" import { SessionEvent } from "./event" import { MessageDecodeError } from "./error" diff --git a/packages/core/src/session/model-headers.ts b/packages/core/src/session/model-headers.ts index efc6d5e23b83..3bb5ef71043b 100644 --- a/packages/core/src/session/model-headers.ts +++ b/packages/core/src/session/model-headers.ts @@ -1,7 +1,7 @@ export * as SessionModelHeaders from "./model-headers" -import { Flag } from "../flag/flag" -import { InstallationVersion } from "../installation/version" +import { Flag } from "@opencode-ai/util/flag" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { SessionSchema } from "./schema" export const make = (session: Pick) => ({ diff --git a/packages/core/src/session/model-request.ts b/packages/core/src/session/model-request.ts index 936c30591a91..21460f87b122 100644 --- a/packages/core/src/session/model-request.ts +++ b/packages/core/src/session/model-request.ts @@ -3,7 +3,7 @@ export * as SessionModelRequest from "./model-request" import { LLM, Message, SystemPart, type LLMRequest } from "@opencode-ai/ai" import { SessionError } from "@opencode-ai/schema/session-error" import { Context, Effect, Layer } from "effect" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { PluginHooks } from "../plugin/hooks" import { ToolRegistry } from "../tool/registry" import { SessionContext } from "./context" diff --git a/packages/core/src/session/projector.ts b/packages/core/src/session/projector.ts index 62bd34ecc6c1..97044675d165 100644 --- a/packages/core/src/session/projector.ts +++ b/packages/core/src/session/projector.ts @@ -4,7 +4,7 @@ import { and, asc, desc, eq, gt, gte, inArray, lt, sql } from "drizzle-orm" import { DateTime, Effect, Layer, Schema, Stream } from "effect" import { Database } from "../database/database" import { EventV2 } from "../event" -import { makeGlobalNode } from "../effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { ModelV2 } from "../model" import { SessionEvent } from "./event" import { SessionV1 } from "../v1/session" diff --git a/packages/core/src/session/runner/llm.ts b/packages/core/src/session/runner/llm.ts index dfb5de04781c..2885a24c14c7 100644 --- a/packages/core/src/session/runner/llm.ts +++ b/packages/core/src/session/runner/llm.ts @@ -21,8 +21,8 @@ import { SessionTitle } from "../title" import { Service } from "./index" import { createLLMEventPublisher } from "./publish-llm-event" import { Snapshot } from "../../snapshot" -import { makeLocationNode } from "../../effect/app-node" -import { llmClient } from "../../effect/app-node-platform" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { llmClient } from "@opencode-ai/util/effect/app-node-platform" import { StepFailedError } from "../error" import { toSessionError } from "../to-session-error" import { SessionRunnerRetry } from "./retry" diff --git a/packages/core/src/session/runner/model.ts b/packages/core/src/session/runner/model.ts index 4749e6f72d43..eac464ffde6e 100644 --- a/packages/core/src/session/runner/model.ts +++ b/packages/core/src/session/runner/model.ts @@ -1,6 +1,6 @@ export * as SessionRunnerModel from "./model" -import { makeLocationNode } from "../../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Model } from "@opencode-ai/ai" // ast-grep-ignore: no-star-import import * as AnthropicMessages from "@opencode-ai/ai/protocols/anthropic-messages" @@ -16,7 +16,7 @@ import { Catalog } from "../../catalog" import { Credential } from "../../credential" import { Integration } from "../../integration" import { ModelV2 } from "../../model" -import { Npm } from "../../npm" +import { Npm } from "@opencode-ai/util/npm" import { OpenAICodex } from "../../plugin/provider/openai-codex" import { ProviderV2 } from "../../provider" import { SessionSchema } from "../schema" diff --git a/packages/core/src/session/store.ts b/packages/core/src/session/store.ts index 516159c1e4fb..0018ace4a645 100644 --- a/packages/core/src/session/store.ts +++ b/packages/core/src/session/store.ts @@ -3,7 +3,7 @@ export * as SessionStore from "./store" import { and, eq, inArray, isNotNull, isNull } from "drizzle-orm" import { Context, Effect, Layer, Schema } from "effect" import { Database } from "../database/database" -import { makeGlobalNode } from "../effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { SessionHistory } from "./history" import { MessageDecodeError } from "./error" import { SessionMessage } from "./message" diff --git a/packages/core/src/session/title.ts b/packages/core/src/session/title.ts index f86741d5b206..179af7aca901 100644 --- a/packages/core/src/session/title.ts +++ b/packages/core/src/session/title.ts @@ -5,8 +5,8 @@ import { Context, Effect, Layer, Stream } from "effect" import { AgentV2 } from "../agent" import { Database } from "../database/database" import { EventV2 } from "../event" -import { makeLocationNode } from "../effect/app-node" -import { llmClient } from "../effect/app-node-platform" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { llmClient } from "@opencode-ai/util/effect/app-node-platform" import { SessionEvent } from "./event" import { SessionHistory } from "./history" import { SessionModelHeaders } from "./model-headers" diff --git a/packages/core/src/shell.ts b/packages/core/src/shell.ts index a62fef8107fe..0bfa1b95b9dd 100644 --- a/packages/core/src/shell.ts +++ b/packages/core/src/shell.ts @@ -5,12 +5,12 @@ import { Context, Deferred, Duration, Effect, Fiber, Layer, Schema, Stream } fro import { ChildProcess } from "effect/unstable/process" import { produce } from "immer" import { Shell } from "@opencode-ai/schema/shell" -import { makeLocationNode } from "./effect/app-node" -import { AppProcess } from "./process" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { AppProcess } from "@opencode-ai/util/process" import { Config } from "./config" import { EventV2 } from "./event" import { Location } from "./location" -import { Global } from "./global" +import { Global } from "@opencode-ai/util/global" import { ShellSelect } from "./shell/select" export class NotFoundError extends Schema.TaggedErrorClass()("Shell.NotFoundError", { diff --git a/packages/core/src/shell/select.ts b/packages/core/src/shell/select.ts index 311fb7c9a145..73896ec83d2b 100644 --- a/packages/core/src/shell/select.ts +++ b/packages/core/src/shell/select.ts @@ -5,8 +5,8 @@ import { spawn, type ChildProcess } from "child_process" import { readFile } from "fs/promises" import { statSync } from "fs" import { setTimeout } from "node:timers/promises" -import { Flag } from "../flag/flag" -import { FSUtil } from "../fs-util" +import { Flag } from "@opencode-ai/util/flag" +import { FSUtil } from "@opencode-ai/util/fs-util" import { which } from "../util/which" const SIGKILL_TIMEOUT_MS = 200 diff --git a/packages/core/src/skill.ts b/packages/core/src/skill.ts index 8708d84fda3c..c66fb4f46c49 100644 --- a/packages/core/src/skill.ts +++ b/packages/core/src/skill.ts @@ -1,6 +1,6 @@ export * as SkillV2 from "./skill" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { Context, Effect, Layer, Schema, Stream, Types } from "effect" import { FileSystem } from "@opencode-ai/schema/filesystem" @@ -8,7 +8,7 @@ import { Skill } from "@opencode-ai/schema/skill" import { AgentV2 } from "./agent" import { ConfigMarkdown } from "./config/markdown" import { EventV2 } from "./event" -import { FSUtil } from "./fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { PermissionV2 } from "./permission" import { AbsolutePath } from "./schema" import { SkillDiscovery } from "./skill/discovery" diff --git a/packages/core/src/skill/discovery.ts b/packages/core/src/skill/discovery.ts index feb06a34d022..074434ec61db 100644 --- a/packages/core/src/skill/discovery.ts +++ b/packages/core/src/skill/discovery.ts @@ -3,12 +3,12 @@ export * as SkillDiscovery from "./discovery" import path from "path" import { Context, Effect, Layer, Schedule, Schema } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" -import { FSUtil } from "../fs-util" -import { Global } from "../global" -import { makeGlobalNode } from "../effect/app-node" -import { httpClient } from "../effect/app-node-platform" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { AbsolutePath } from "../schema" -import { Hash } from "../util/hash" +import { Hash } from "@opencode-ai/util/hash" const skillConcurrency = 4 const fileConcurrency = 8 diff --git a/packages/core/src/skill/instructions.ts b/packages/core/src/skill/instructions.ts index 1da106205de8..382fede3b581 100644 --- a/packages/core/src/skill/instructions.ts +++ b/packages/core/src/skill/instructions.ts @@ -1,6 +1,6 @@ export * as SkillInstructions from "./instructions" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Context, Effect, Layer, Schema } from "effect" import { AgentV2 } from "../agent" import { SkillV2 } from "../skill" diff --git a/packages/core/src/snapshot.ts b/packages/core/src/snapshot.ts index 41072e3ce3e0..72982fbd90ae 100644 --- a/packages/core/src/snapshot.ts +++ b/packages/core/src/snapshot.ts @@ -1,17 +1,17 @@ export * as Snapshot from "./snapshot" -import { makeLocationNode } from "./effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import path from "path" import { Context, Effect, Fiber, Layer, Schema, Scope } from "effect" import { Config } from "./config" import { File } from "./file" -import { FSUtil } from "./fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Git } from "./git" -import { Global } from "./global" +import { Global } from "@opencode-ai/util/global" import { Location } from "./location" import { AbsolutePath, RelativePath } from "./schema" import { ID } from "@opencode-ai/schema/snapshot" -import { Hash } from "./util/hash" +import { Hash } from "@opencode-ai/util/hash" export { ID } diff --git a/packages/core/src/tool-output-store.ts b/packages/core/src/tool-output-store.ts index 057c6b4c6836..f7eccefea038 100644 --- a/packages/core/src/tool-output-store.ts +++ b/packages/core/src/tool-output-store.ts @@ -3,9 +3,9 @@ export * as ToolOutputStore from "./tool-output-store" import path from "path" import { Context, Duration, Effect, Layer, Option, Schedule, Schema } from "effect" import { Config } from "./config" -import { FSUtil } from "./fs-util" -import { Global } from "./global" -import { makeGlobalNode, makeLocationNode } from "./effect/app-node" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" +import { makeGlobalNode, makeLocationNode } from "@opencode-ai/util/effect/app-node" import { SessionSchema } from "./session/schema" import { Identifier } from "./util/identifier" import type { ToolOutput } from "@opencode-ai/ai" diff --git a/packages/core/src/tool/edit.ts b/packages/core/src/tool/edit.ts index 2319d4baf242..0456195dd99c 100644 --- a/packages/core/src/tool/edit.ts +++ b/packages/core/src/tool/edit.ts @@ -12,7 +12,7 @@ import { FileDiff } from "@opencode-ai/schema/file-diff" import { createTwoFilesPatch, diffLines } from "diff" import { Effect, Schema } from "effect" import { FileMutation } from "../file-mutation" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { LocationMutation } from "../location-mutation" import { PermissionV2 } from "../permission" import { Tool } from "./tool" diff --git a/packages/core/src/tool/glob.ts b/packages/core/src/tool/glob.ts index 35dc58d6cfde..e231ec7c0ba5 100644 --- a/packages/core/src/tool/glob.ts +++ b/packages/core/src/tool/glob.ts @@ -5,7 +5,7 @@ import type { Context as PluginContext } from "@opencode-ai/plugin/v2/effect/plu import { Effect, Schema } from "effect" import path from "path" import { FileSystem } from "../filesystem" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "../location" import { Ripgrep } from "../ripgrep" import { RelativePath } from "../schema" diff --git a/packages/core/src/tool/grep.ts b/packages/core/src/tool/grep.ts index ef7c76c745fb..a972c958659f 100644 --- a/packages/core/src/tool/grep.ts +++ b/packages/core/src/tool/grep.ts @@ -5,7 +5,7 @@ import { ToolFailure } from "@opencode-ai/ai" import { Effect, Schema } from "effect" import path from "path" import { FileSystem } from "../filesystem" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "../location" import { PermissionV2 } from "../permission" import { Ripgrep } from "../ripgrep" diff --git a/packages/core/src/tool/hooks.ts b/packages/core/src/tool/hooks.ts index b6dba58ffb47..5a0c93c31498 100644 --- a/packages/core/src/tool/hooks.ts +++ b/packages/core/src/tool/hooks.ts @@ -1,6 +1,6 @@ export * as ToolHooks from "./hooks" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Agent } from "@opencode-ai/schema/agent" import { Session } from "@opencode-ai/schema/session" import { SessionMessage } from "../session/message" diff --git a/packages/core/src/tool/mcp.ts b/packages/core/src/tool/mcp.ts index d71a58bc0832..de9910a81971 100644 --- a/packages/core/src/tool/mcp.ts +++ b/packages/core/src/tool/mcp.ts @@ -3,7 +3,7 @@ export * as McpTool from "./mcp" import { ToolFailure } from "@opencode-ai/ai" import { McpEvent } from "@opencode-ai/schema/mcp-event" import { Effect, Exit, type JsonSchema, Layer, Scope, Semaphore, Stream } from "effect" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { EventV2 } from "../event" import { MCP } from "../mcp" diff --git a/packages/core/src/tool/patch.ts b/packages/core/src/tool/patch.ts index 6925b8779338..496fc21fae80 100644 --- a/packages/core/src/tool/patch.ts +++ b/packages/core/src/tool/patch.ts @@ -6,7 +6,7 @@ import { FileDiff } from "@opencode-ai/schema/file-diff" import { createTwoFilesPatch, diffLines } from "diff" import { Effect, Schema } from "effect" import { FileMutation } from "../file-mutation" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { LocationMutation } from "../location-mutation" import { Patch } from "../patch" import { PermissionV2 } from "../permission" diff --git a/packages/core/src/tool/read-filesystem.ts b/packages/core/src/tool/read-filesystem.ts index e325a83edd2c..5eeab17b87e5 100644 --- a/packages/core/src/tool/read-filesystem.ts +++ b/packages/core/src/tool/read-filesystem.ts @@ -4,8 +4,8 @@ import path from "path" import { pathToFileURL } from "url" import { Context, Effect, Layer, Option, Schema } from "effect" import { FileSystem } from "../filesystem" -import { FSUtil } from "../fs-util" -import { makeLocationNode } from "../effect/app-node" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { AbsolutePath, PositiveInt, RelativePath } from "../schema" export const MAX_READ_LINES = 2_000 diff --git a/packages/core/src/tool/read.ts b/packages/core/src/tool/read.ts index 8f73f7e90cd3..4021516cc4a3 100644 --- a/packages/core/src/tool/read.ts +++ b/packages/core/src/tool/read.ts @@ -5,7 +5,7 @@ import { dirname } from "path" import { ToolFailure } from "@opencode-ai/ai" import { Effect, Schema } from "effect" import { FileSystem } from "../filesystem" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "../location" import { LocationMutation } from "../location-mutation" import { PermissionV2 } from "../permission" diff --git a/packages/core/src/tool/registry.ts b/packages/core/src/tool/registry.ts index ac003775f4ca..cbfffb7087af 100644 --- a/packages/core/src/tool/registry.ts +++ b/packages/core/src/tool/registry.ts @@ -21,7 +21,7 @@ import { } from "./tool" import { Tools } from "./tools" import { ToolHooks } from "./hooks" -import { makeLocationNode } from "../effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { SessionError } from "@opencode-ai/schema/session-error" import { toSessionError } from "../session/to-session-error" diff --git a/packages/core/src/tool/shell.ts b/packages/core/src/tool/shell.ts index 300acf8cd5b4..11a3e67d49a2 100644 --- a/packages/core/src/tool/shell.ts +++ b/packages/core/src/tool/shell.ts @@ -4,7 +4,7 @@ import path from "path" import { ToolFailure } from "@opencode-ai/ai" import type { Context as PluginContext } from "@opencode-ai/plugin/v2/effect/plugin" import { Effect, Fiber, Schedule, Schema, Scope } from "effect" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { LocationMutation } from "../location-mutation" import { PermissionV2 } from "../permission" import { PluginRuntime } from "../plugin/runtime" diff --git a/packages/core/src/tool/skill.ts b/packages/core/src/tool/skill.ts index ac7e675e4619..21fdef69c0be 100644 --- a/packages/core/src/tool/skill.ts +++ b/packages/core/src/tool/skill.ts @@ -4,7 +4,7 @@ import type { Context as PluginContext } from "@opencode-ai/plugin/v2/effect/plu import path from "path" import { ToolFailure } from "@opencode-ai/ai" import { Effect, Schema } from "effect" -import { FSUtil } from "../fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { SkillV2 } from "../skill" import { PermissionV2 } from "../permission" import { Tool } from "./tool" diff --git a/packages/core/src/tool/websearch.ts b/packages/core/src/tool/websearch.ts index a92ce5f8ef61..5cea7c4d1091 100644 --- a/packages/core/src/tool/websearch.ts +++ b/packages/core/src/tool/websearch.ts @@ -4,9 +4,9 @@ import type { Context as PluginContext } from "@opencode-ai/plugin/v2/effect/plu import { ToolFailure } from "@opencode-ai/ai" import { Context, Duration, Effect, Layer, Schema } from "effect" import { HttpClient, HttpClientRequest } from "effect/unstable/http" -import { makeLocationNode } from "../effect/app-node" -import { truthy } from "../flag/flag" -import { InstallationVersion } from "../installation/version" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { truthy } from "@opencode-ai/util/flag" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { PositiveInt } from "../schema" import { PermissionV2 } from "../permission" import { Tool } from "./tool" diff --git a/packages/core/src/util/process-lock.ts b/packages/core/src/util/process-lock.ts index 2c2a72144833..196ed8a337ac 100644 --- a/packages/core/src/util/process-lock.ts +++ b/packages/core/src/util/process-lock.ts @@ -3,7 +3,7 @@ import { closeSync, mkdirSync, openSync } from "node:fs" import { connect, createServer, type Server, type Socket } from "node:net" import path from "node:path" import { Effect, Schema } from "effect" -import { Hash } from "./hash" +import { Hash } from "@opencode-ai/util/hash" export namespace ProcessLock { export class HeldError extends Schema.TaggedErrorClass()("ProcessLockHeldError", { diff --git a/packages/core/src/util/which.ts b/packages/core/src/util/which.ts index 2e40739148a1..7e7bd97acfb6 100644 --- a/packages/core/src/util/which.ts +++ b/packages/core/src/util/which.ts @@ -1,6 +1,6 @@ import whichPkg from "which" import path from "path" -import { Global } from "../global" +import { Global } from "@opencode-ai/util/global" export function which(cmd: string, env?: NodeJS.ProcessEnv) { const base = env?.PATH ?? env?.Path ?? process.env.PATH ?? process.env.Path ?? "" diff --git a/packages/core/src/vcs.ts b/packages/core/src/vcs.ts index 46417eafb7a2..cb61e681f7e4 100644 --- a/packages/core/src/vcs.ts +++ b/packages/core/src/vcs.ts @@ -3,10 +3,10 @@ export * as Vcs from "./vcs" import { Context, Effect, Layer } from "effect" import { FileDiff } from "@opencode-ai/schema/file-diff" import { FileStatus, Mode } from "@opencode-ai/schema/vcs" -import { makeLocationNode } from "./effect/app-node" -import { FSUtil } from "./fs-util" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "./location" -import { AppProcess } from "./process" +import { AppProcess } from "@opencode-ai/util/process" import { VcsGit } from "./vcs/git" import { VcsHg } from "./vcs/hg" diff --git a/packages/core/src/vcs/git.ts b/packages/core/src/vcs/git.ts index d416a5af8a6b..390348fc4f03 100644 --- a/packages/core/src/vcs/git.ts +++ b/packages/core/src/vcs/git.ts @@ -4,7 +4,7 @@ import { Effect } from "effect" import { ChildProcess } from "effect/unstable/process" import { FileDiff } from "@opencode-ai/schema/file-diff" import { FileStatus, Mode } from "@opencode-ai/schema/vcs" -import { AppProcess } from "../process" +import { AppProcess } from "@opencode-ai/util/process" import type { DiffOptions, Interface } from "../vcs" import { chunksByFile, emptyPatch, MAX_PATCH_BYTES, MAX_TOTAL_PATCH_BYTES, PATCH_CONTEXT_LINES } from "./patch" import type { Patch } from "./patch" diff --git a/packages/core/src/vcs/hg.ts b/packages/core/src/vcs/hg.ts index 0c27f12b9599..10ae0bcbfc8f 100644 --- a/packages/core/src/vcs/hg.ts +++ b/packages/core/src/vcs/hg.ts @@ -5,8 +5,8 @@ import { Effect } from "effect" import { ChildProcess } from "effect/unstable/process" import { FileDiff } from "@opencode-ai/schema/file-diff" import { FileStatus, Mode } from "@opencode-ai/schema/vcs" -import { FSUtil } from "../fs-util" -import { AppProcess } from "../process" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { AppProcess } from "@opencode-ai/util/process" import type { DiffOptions, Interface } from "../vcs" import { addPatch, diff --git a/packages/core/src/wellknown.ts b/packages/core/src/wellknown.ts index 73eea6dcfbc5..78a21e74800e 100644 --- a/packages/core/src/wellknown.ts +++ b/packages/core/src/wellknown.ts @@ -4,8 +4,8 @@ import { Integration } from "@opencode-ai/schema/integration" import { Context, Effect, Layer, Ref, Schema, Semaphore } from "effect" import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { isDeepStrictEqual } from "node:util" -import { makeGlobalNode } from "./effect/app-node" -import { httpClient } from "./effect/app-node-platform" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { EventV2 } from "./event" import { KV } from "./kv" diff --git a/packages/core/test/agent.test.ts b/packages/core/test/agent.test.ts index 6a0ca3df7e09..88bf879b6026 100644 --- a/packages/core/test/agent.test.ts +++ b/packages/core/test/agent.test.ts @@ -4,7 +4,7 @@ import { TestClock } from "effect/testing" import { AgentV2 } from "@opencode-ai/core/agent" import { EventV2 } from "@opencode-ai/core/event" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Location } from "@opencode-ai/core/location" import { PermissionV2 } from "@opencode-ai/core/permission" import { AgentPlugin } from "@opencode-ai/core/plugin/agent" diff --git a/packages/core/test/catalog.test.ts b/packages/core/test/catalog.test.ts index f14feaee5f4c..502a46b7d415 100644 --- a/packages/core/test/catalog.test.ts +++ b/packages/core/test/catalog.test.ts @@ -6,7 +6,7 @@ import { Catalog } from "@opencode-ai/core/catalog" import { Integration } from "@opencode-ai/core/integration" import { Credential } from "@opencode-ai/core/credential" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Location } from "@opencode-ai/core/location" import { ModelV2 } from "@opencode-ai/core/model" diff --git a/packages/core/test/config/agent.test.ts b/packages/core/test/config/agent.test.ts index 4579b1151f76..0380c38e3a32 100644 --- a/packages/core/test/config/agent.test.ts +++ b/packages/core/test/config/agent.test.ts @@ -6,9 +6,9 @@ import { AgentV2 } from "@opencode-ai/core/agent" import { Config } from "@opencode-ai/core/config" import { ConfigAgentPlugin } from "@opencode-ai/core/config/plugin/agent" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { PermissionV2 } from "@opencode-ai/core/permission" import { AbsolutePath } from "@opencode-ai/core/schema" import { ConfigMigrateV1 } from "@opencode-ai/core/v1/config/migrate" diff --git a/packages/core/test/config/command.test.ts b/packages/core/test/config/command.test.ts index f3d1defc686f..fced5f83dbe6 100644 --- a/packages/core/test/config/command.test.ts +++ b/packages/core/test/config/command.test.ts @@ -8,8 +8,8 @@ import { AgentV2 } from "@opencode-ai/core/agent" import { Config } from "@opencode-ai/core/config" import { ConfigCommandPlugin } from "@opencode-ai/core/config/plugin/command" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { EventV2 } from "@opencode-ai/core/event" import { Location } from "@opencode-ai/core/location" import { MCP } from "@opencode-ai/core/mcp/index" diff --git a/packages/core/test/config/config.test.ts b/packages/core/test/config/config.test.ts index fec2e80dd839..9cfaf689eb74 100644 --- a/packages/core/test/config/config.test.ts +++ b/packages/core/test/config/config.test.ts @@ -8,15 +8,15 @@ import { ConfigModel } from "@opencode-ai/core/config/model" import { Config as ConfigSchema } from "@opencode-ai/schema/config" import { ConfigProvider } from "@opencode-ai/core/config/provider" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { makeGlobalNode } from "@opencode-ai/core/effect/app-node" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Credential } from "@opencode-ai/core/credential" import { ConfigMigrateV1 } from "@opencode-ai/core/v1/config/migrate" import { ConfigV1 } from "@opencode-ai/core/v1/config/config" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Watcher } from "@opencode-ai/core/filesystem/watcher" import { EventV2 } from "@opencode-ai/core/event" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Location } from "@opencode-ai/core/location" import { Project } from "@opencode-ai/core/project" import { ProviderV2 } from "@opencode-ai/core/provider" diff --git a/packages/core/test/config/plugin.test.ts b/packages/core/test/config/plugin.test.ts index 9d68b5f40855..2a9dfa81bf0d 100644 --- a/packages/core/test/config/plugin.test.ts +++ b/packages/core/test/config/plugin.test.ts @@ -8,7 +8,7 @@ import { Plugin } from "@opencode-ai/schema/plugin" import { AgentV2 } from "@opencode-ai/core/agent" import { Catalog } from "@opencode-ai/core/catalog" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Location } from "@opencode-ai/core/location" import { LocationServiceMap } from "@opencode-ai/core/location-services" diff --git a/packages/core/test/config/reload.test.ts b/packages/core/test/config/reload.test.ts index e5f8bd10fcda..d917821facb9 100644 --- a/packages/core/test/config/reload.test.ts +++ b/packages/core/test/config/reload.test.ts @@ -11,7 +11,7 @@ import { ConfigProviderPlugin } from "@opencode-ai/core/config/plugin/provider" import { ConfigReferencePlugin } from "@opencode-ai/core/config/plugin/reference" import { ConfigSkillPlugin } from "@opencode-ai/core/config/plugin/skill" import { EventV2 } from "@opencode-ai/core/event" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { PluginV2 } from "@opencode-ai/core/plugin" import { PluginHost } from "@opencode-ai/core/plugin/host" import { ProviderV2 } from "@opencode-ai/core/provider" diff --git a/packages/core/test/config/skill.test.ts b/packages/core/test/config/skill.test.ts index 8b5b0bdf6276..86df211cf8ed 100644 --- a/packages/core/test/config/skill.test.ts +++ b/packages/core/test/config/skill.test.ts @@ -3,7 +3,7 @@ import { describe, expect } from "bun:test" import { Effect, Layer, Schema } from "effect" import { Config } from "@opencode-ai/core/config" import { ConfigSkillPlugin } from "@opencode-ai/core/config/plugin/skill" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Location } from "@opencode-ai/core/location" import { AbsolutePath } from "@opencode-ai/core/schema" import { SkillV2 } from "@opencode-ai/core/skill" diff --git a/packages/core/test/credential.test.ts b/packages/core/test/credential.test.ts index c6070145d119..3b74df5c2c02 100644 --- a/packages/core/test/credential.test.ts +++ b/packages/core/test/credential.test.ts @@ -1,7 +1,7 @@ import { describe, expect } from "bun:test" import { Effect } from "effect" import { Credential } from "@opencode-ai/core/credential" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Integration } from "@opencode-ai/core/integration" import { testEffect } from "./lib/effect" diff --git a/packages/core/test/database-migration.test.ts b/packages/core/test/database-migration.test.ts index 326855ab517a..99b5819b85b1 100644 --- a/packages/core/test/database-migration.test.ts +++ b/packages/core/test/database-migration.test.ts @@ -25,7 +25,7 @@ import addSessionForkMigration from "@opencode-ai/core/database/migration/202607 import timeSuspendedMigration from "@opencode-ai/core/database/migration/20260709163752_time_suspended" import instructionSyncMigration from "@opencode-ai/core/database/migration/20260710025429_instruction_sync" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { ProjectV2 } from "@opencode-ai/core/project" import { ProjectTable } from "@opencode-ai/core/project/sql" diff --git a/packages/core/test/effect/cross-spawn-spawner.test.ts b/packages/core/test/effect/cross-spawn-spawner.test.ts index fc4e3db6a92e..89aec55aff22 100644 --- a/packages/core/test/effect/cross-spawn-spawner.test.ts +++ b/packages/core/test/effect/cross-spawn-spawner.test.ts @@ -5,8 +5,8 @@ import path from "node:path" import { Effect, Exit, Stream } from "effect" import type * as PlatformError from "effect/PlatformError" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { testEffect } from "../lib/effect" const live = LayerNode.compile(CrossSpawnSpawner.node) diff --git a/packages/core/test/effect/layer-node/layer-node-types.test.ts b/packages/core/test/effect/layer-node/layer-node-types.test.ts index 366bf746daad..73f662eb3168 100644 --- a/packages/core/test/effect/layer-node/layer-node-types.test.ts +++ b/packages/core/test/effect/layer-node/layer-node-types.test.ts @@ -1,7 +1,7 @@ import { test } from "bun:test" import { Context, Effect, Layer } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { makeGlobalNode, makeLocationNode } from "@opencode-ai/core/effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { makeGlobalNode, makeLocationNode } from "@opencode-ai/util/effect/app-node" class A extends Context.Service()("test/LayerNodeA") {} class B extends Context.Service()("test/LayerNodeB") {} diff --git a/packages/core/test/effect/layer-node/layer-node.test.ts b/packages/core/test/effect/layer-node/layer-node.test.ts index b671792c59af..c344594c4539 100644 --- a/packages/core/test/effect/layer-node/layer-node.test.ts +++ b/packages/core/test/effect/layer-node/layer-node.test.ts @@ -1,6 +1,6 @@ import { describe, expect, test } from "bun:test" import { Context, Effect, Layer } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" class Value extends Context.Service()("test/LayerNodeValue") {} class Greeting extends Context.Service()("test/LayerNodeGreeting") {} diff --git a/packages/core/test/effect/layer-node/node-build.test.ts b/packages/core/test/effect/layer-node/node-build.test.ts index 32c9988f1627..a4a2bf28605e 100644 --- a/packages/core/test/effect/layer-node/node-build.test.ts +++ b/packages/core/test/effect/layer-node/node-build.test.ts @@ -1,8 +1,8 @@ import { describe, expect, test } from "bun:test" import { Context, Effect, Layer, LayerMap, Option } from "effect" -import { Node } from "@opencode-ai/core/effect/app-node" +import { Node } from "@opencode-ai/util/effect/app-node" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Location } from "@opencode-ai/core/location" import { LocationServiceMap } from "@opencode-ai/core/location-service-map" import type { LocationError, LocationServices } from "@opencode-ai/core/location-services" diff --git a/packages/core/test/effect/observability.test.ts b/packages/core/test/effect/observability.test.ts index c07598636483..e70a8572f098 100644 --- a/packages/core/test/effect/observability.test.ts +++ b/packages/core/test/effect/observability.test.ts @@ -4,8 +4,8 @@ import { Effect, Layer, Logger } from "effect" import fs from "fs/promises" import os from "os" import path from "path" -import { fileLogger } from "../../src/observability/logging" -import { resource } from "../../src/observability/otlp" +import { fileLogger } from "@opencode-ai/util/observability/logging" +import { resource } from "@opencode-ai/util/observability/otlp" const otelResourceAttributes = process.env.OTEL_RESOURCE_ATTRIBUTES const opencodeClient = process.env.OPENCODE_CLIENT @@ -65,7 +65,7 @@ test("falls back to local logging when OTLP initialization fails", async () => { "--eval", ` import { Effect } from "effect" - import { Observability } from "./src/observability.ts" + import { Observability } from "@opencode-ai/util/observability" await Effect.void.pipe(Effect.provide(Observability.layer), Effect.scoped, Effect.runPromise) `, ], diff --git a/packages/core/test/event-logger.test.ts b/packages/core/test/event-logger.test.ts index ef48d7abbd92..ab7aca7d5b9e 100644 --- a/packages/core/test/event-logger.test.ts +++ b/packages/core/test/event-logger.test.ts @@ -1,7 +1,7 @@ import { describe, expect, test } from "bun:test" import { Effect, Layer, Logger } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Database } from "@opencode-ai/core/database/database" import { EventV2 } from "@opencode-ai/core/event" import { EventLogger } from "@opencode-ai/core/event-logger" diff --git a/packages/core/test/event.test.ts b/packages/core/test/event.test.ts index 17d887e1929d..5fa89af8972c 100644 --- a/packages/core/test/event.test.ts +++ b/packages/core/test/event.test.ts @@ -7,7 +7,7 @@ import { SessionEvent } from "@opencode-ai/schema/session-event" import { SessionV1 } from "@opencode-ai/schema/session-v1" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventSequenceTable, EventTable } from "@opencode-ai/core/event/sql" import { Location } from "@opencode-ai/core/location" import { AbsolutePath } from "@opencode-ai/core/schema" diff --git a/packages/core/test/file-mutation.test.ts b/packages/core/test/file-mutation.test.ts index bcd6ce97ed88..73f5a7a4dcf6 100644 --- a/packages/core/test/file-mutation.test.ts +++ b/packages/core/test/file-mutation.test.ts @@ -3,9 +3,9 @@ import path from "path" import { describe, expect } from "bun:test" import { Deferred, Effect, Fiber, Layer } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { FileMutation } from "@opencode-ai/core/file-mutation" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "@opencode-ai/core/location" import { LocationMutation } from "@opencode-ai/core/location-mutation" import { AbsolutePath } from "@opencode-ai/core/schema" diff --git a/packages/core/test/filesystem/filesystem.test.ts b/packages/core/test/filesystem/filesystem.test.ts index 907fcb773953..f4203cfde764 100644 --- a/packages/core/test/filesystem/filesystem.test.ts +++ b/packages/core/test/filesystem/filesystem.test.ts @@ -1,8 +1,8 @@ import { describe, test, expect } from "bun:test" import { Effect, FileSystem } from "effect" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { testEffect } from "../lib/effect" import path from "path" diff --git a/packages/core/test/filesystem/search.test.ts b/packages/core/test/filesystem/search.test.ts index 6c47c85e9635..ab75d7165c08 100644 --- a/packages/core/test/filesystem/search.test.ts +++ b/packages/core/test/filesystem/search.test.ts @@ -2,7 +2,7 @@ import { describe, expect } from "bun:test" import fs from "fs/promises" import path from "path" import { Effect } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { AbsolutePath, RelativePath } from "@opencode-ai/core/schema" import { tmpdir } from "../fixture/tmpdir" diff --git a/packages/core/test/filesystem/watcher.test.ts b/packages/core/test/filesystem/watcher.test.ts index d25d62b3af89..5c597d2db534 100644 --- a/packages/core/test/filesystem/watcher.test.ts +++ b/packages/core/test/filesystem/watcher.test.ts @@ -5,9 +5,9 @@ import path from "path" import { Deferred, Duration, Effect, Fiber, Layer, Option, Schedule, Stream } from "effect" import { Config } from "@opencode-ai/core/config" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { LocationWatcher } from "@opencode-ai/core/filesystem/location-watcher" import { Watcher } from "@opencode-ai/core/filesystem/watcher" import { FileSystem } from "@opencode-ai/schema/filesystem" diff --git a/packages/core/test/fixture/effect-flock-worker.ts b/packages/core/test/fixture/effect-flock-worker.ts index 7e42e80098f5..38260849d928 100644 --- a/packages/core/test/fixture/effect-flock-worker.ts +++ b/packages/core/test/fixture/effect-flock-worker.ts @@ -2,8 +2,8 @@ import fs from "fs/promises" import os from "os" import { Effect } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { EffectFlock } from "@opencode-ai/core/util/effect-flock" -import { Global } from "@opencode-ai/core/global" +import { EffectFlock } from "@opencode-ai/util/effect-flock" +import { Global } from "@opencode-ai/util/global" type Msg = { key: string diff --git a/packages/core/test/fixture/flock-worker.ts b/packages/core/test/fixture/flock-worker.ts index 0b9c314c0877..ece4dc6f5016 100644 --- a/packages/core/test/fixture/flock-worker.ts +++ b/packages/core/test/fixture/flock-worker.ts @@ -1,5 +1,5 @@ import fs from "fs/promises" -import { Flock } from "@opencode-ai/core/util/flock" +import { Flock } from "@opencode-ai/util/flock" type Msg = { key: string diff --git a/packages/core/test/form.test.ts b/packages/core/test/form.test.ts index 33283722032a..06b50f3643ba 100644 --- a/packages/core/test/form.test.ts +++ b/packages/core/test/form.test.ts @@ -1,7 +1,7 @@ import { describe, expect } from "bun:test" import { Deferred, Effect, Exit, Fiber } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Form } from "@opencode-ai/core/form" import { SessionSchema } from "@opencode-ai/core/session/schema" diff --git a/packages/core/test/git.test.ts b/packages/core/test/git.test.ts index d4d80fd732f9..abcc60181f43 100644 --- a/packages/core/test/git.test.ts +++ b/packages/core/test/git.test.ts @@ -3,7 +3,7 @@ import { $ } from "bun" import fs from "fs/promises" import path from "path" import { Effect } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Git } from "@opencode-ai/core/git" import { AbsolutePath, RelativePath } from "@opencode-ai/core/schema" import { branch, commit, gitRemote } from "./fixture/git" diff --git a/packages/core/test/global.test.ts b/packages/core/test/global.test.ts index 4e13e8842430..ca0610941942 100644 --- a/packages/core/test/global.test.ts +++ b/packages/core/test/global.test.ts @@ -2,7 +2,7 @@ import { describe, expect, test } from "bun:test" import fs from "fs/promises" import os from "os" import path from "path" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" describe("global paths", () => { test("tmp path is under the system temp directory", () => { diff --git a/packages/core/test/instruction-discovery.test.ts b/packages/core/test/instruction-discovery.test.ts index bc8724a8370d..ab6c0b3f1606 100644 --- a/packages/core/test/instruction-discovery.test.ts +++ b/packages/core/test/instruction-discovery.test.ts @@ -3,9 +3,9 @@ import { Effect, Layer } from "effect" import fs from "fs/promises" import path from "path" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { InstructionDiscovery } from "@opencode-ai/core/instruction-discovery" import { Location } from "@opencode-ai/core/location" import { AbsolutePath } from "@opencode-ai/core/schema" diff --git a/packages/core/test/instruction-state.test.ts b/packages/core/test/instruction-state.test.ts index 6d7d4d78d7d7..6557731fd799 100644 --- a/packages/core/test/instruction-state.test.ts +++ b/packages/core/test/instruction-state.test.ts @@ -3,7 +3,7 @@ import { and, asc, eq } from "drizzle-orm" import { Effect, Schema } from "effect" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { EventTable } from "@opencode-ai/core/event/sql" import { Instructions } from "@opencode-ai/core/instructions" diff --git a/packages/core/test/instructions/builtins.test.ts b/packages/core/test/instructions/builtins.test.ts index 079c443392f0..4f8ffc20ef0e 100644 --- a/packages/core/test/instructions/builtins.test.ts +++ b/packages/core/test/instructions/builtins.test.ts @@ -3,8 +3,8 @@ import { Effect, Layer } from "effect" import * as TestClock from "effect/testing/TestClock" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { Location } from "@opencode-ai/core/location" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { AbsolutePath } from "@opencode-ai/core/schema" import { InstructionBuiltIns } from "@opencode-ai/core/instructions/builtins" import { SessionSchema } from "@opencode-ai/core/session/schema" diff --git a/packages/core/test/integration.test.ts b/packages/core/test/integration.test.ts index 42934bd3e5e7..e5d79a53c600 100644 --- a/packages/core/test/integration.test.ts +++ b/packages/core/test/integration.test.ts @@ -3,8 +3,8 @@ import { Cause, Clock, Duration, Effect, Exit, Fiber, Layer, Scope, Stream } fro import * as TestClock from "effect/testing/TestClock" import { Credential } from "@opencode-ai/core/credential" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { makeGlobalNode } from "@opencode-ai/core/effect/app-node" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Integration } from "@opencode-ai/core/integration" import { testEffect } from "./lib/effect" diff --git a/packages/core/test/kv.test.ts b/packages/core/test/kv.test.ts index 3fd3797ddeb2..bdb9001a9140 100644 --- a/packages/core/test/kv.test.ts +++ b/packages/core/test/kv.test.ts @@ -1,7 +1,7 @@ import { describe, expect } from "bun:test" import { Effect } from "effect" import { KV } from "@opencode-ai/core/kv" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { testEffect } from "./lib/effect" const it = testEffect(LayerNode.compile(KV.node)) diff --git a/packages/core/test/location-filesystem.test.ts b/packages/core/test/location-filesystem.test.ts index f0075db24514..4f59419ba604 100644 --- a/packages/core/test/location-filesystem.test.ts +++ b/packages/core/test/location-filesystem.test.ts @@ -2,7 +2,7 @@ import fs from "fs/promises" import path from "path" import { describe, expect } from "bun:test" import { Effect, Exit, Layer } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { FileSystem } from "@opencode-ai/core/filesystem" import { Location } from "@opencode-ai/core/location" import { AbsolutePath, RelativePath } from "@opencode-ai/core/schema" diff --git a/packages/core/test/location-layer.test.ts b/packages/core/test/location-layer.test.ts index ec84b3b8ad01..44a572f138d5 100644 --- a/packages/core/test/location-layer.test.ts +++ b/packages/core/test/location-layer.test.ts @@ -9,7 +9,7 @@ import { Plugin as EffectPlugin } from "@opencode-ai/plugin/v2/effect" import { AgentV2 } from "@opencode-ai/core/agent" import { Catalog } from "@opencode-ai/core/catalog" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { LocationServiceMap } from "@opencode-ai/core/location-services" import { Location } from "@opencode-ai/core/location" import { PluginV2 } from "@opencode-ai/core/plugin" diff --git a/packages/core/test/location-mutation.test.ts b/packages/core/test/location-mutation.test.ts index 30185ae68d81..35e21905d2b3 100644 --- a/packages/core/test/location-mutation.test.ts +++ b/packages/core/test/location-mutation.test.ts @@ -2,7 +2,7 @@ import fs from "fs/promises" import path from "path" import { describe, expect, test } from "bun:test" import { Effect, Layer, Schema } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Location } from "@opencode-ai/core/location" import { LocationMutation } from "@opencode-ai/core/location-mutation" import { AbsolutePath } from "@opencode-ai/core/schema" diff --git a/packages/core/test/logging.test.ts b/packages/core/test/logging.test.ts index 6ac19ab9e135..88269ce56307 100644 --- a/packages/core/test/logging.test.ts +++ b/packages/core/test/logging.test.ts @@ -1,7 +1,7 @@ import { describe, expect, test } from "bun:test" import path from "path" -import { Global } from "@opencode-ai/core/global" -import { Logging } from "@opencode-ai/core/observability/logging" +import { Global } from "@opencode-ai/util/global" +import { Logging } from "@opencode-ai/util/observability/logging" describe("Logging", () => { test("uses a local-specific log file for local installs", () => { diff --git a/packages/core/test/mcp.test.ts b/packages/core/test/mcp.test.ts index c7ed503106fb..c6f9adbfe289 100644 --- a/packages/core/test/mcp.test.ts +++ b/packages/core/test/mcp.test.ts @@ -15,7 +15,7 @@ import { ConfigMCP } from "@opencode-ai/core/config/mcp" import { Config } from "@opencode-ai/core/config" import { Credential } from "@opencode-ai/core/credential" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Form } from "@opencode-ai/core/form" import { Integration } from "@opencode-ai/core/integration" diff --git a/packages/core/test/models.test.ts b/packages/core/test/models.test.ts index 638cfc463ea1..ee4d6c154a4a 100644 --- a/packages/core/test/models.test.ts +++ b/packages/core/test/models.test.ts @@ -3,10 +3,10 @@ import { Money } from "@opencode-ai/schema/money" import { Effect, Layer, Ref } from "effect" import { HttpClient, HttpClientResponse } from "effect/unstable/http" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { Flag } from "@opencode-ai/core/flag/flag" -import { Global } from "@opencode-ai/core/global" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { Flag } from "@opencode-ai/util/flag" +import { Global } from "@opencode-ai/util/global" import { ModelV2 } from "@opencode-ai/core/model" import { ModelsDev } from "@opencode-ai/core/models-dev" import { ProviderV2 } from "@opencode-ai/core/provider" diff --git a/packages/core/test/move-session.test.ts b/packages/core/test/move-session.test.ts index 77d0840756d7..952bd292413a 100644 --- a/packages/core/test/move-session.test.ts +++ b/packages/core/test/move-session.test.ts @@ -7,7 +7,7 @@ import { Effect, Layer } from "effect" import { MoveSession } from "@opencode-ai/core/control-plane/move-session" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Job } from "@opencode-ai/core/job" import { Project } from "@opencode-ai/core/project" diff --git a/packages/core/test/npm-config.test.ts b/packages/core/test/npm-config.test.ts index 895b35db5409..a2faba8eb369 100644 --- a/packages/core/test/npm-config.test.ts +++ b/packages/core/test/npm-config.test.ts @@ -1,7 +1,7 @@ import path from "path" import { describe, expect, test } from "bun:test" import { Effect } from "effect" -import { NpmConfig } from "@opencode-ai/core/npm-config" +import { NpmConfig } from "@opencode-ai/util/npm-config" import { tmpdir } from "./fixture/tmpdir" describe("NpmConfig.load", () => { diff --git a/packages/core/test/npm.test.ts b/packages/core/test/npm.test.ts index 3a2a956299cb..b2235d5b7afd 100644 --- a/packages/core/test/npm.test.ts +++ b/packages/core/test/npm.test.ts @@ -3,8 +3,8 @@ import path from "path" import { describe, expect, test } from "bun:test" import { Effect, Option } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { Global } from "@opencode-ai/core/global" -import { Npm } from "@opencode-ai/core/npm" +import { Global } from "@opencode-ai/util/global" +import { Npm } from "@opencode-ai/util/npm" import { tmpdir } from "./fixture/tmpdir" const win = process.platform === "win32" diff --git a/packages/core/test/permission.test.ts b/packages/core/test/permission.test.ts index 669fb4d9691e..6abf9c47ca62 100644 --- a/packages/core/test/permission.test.ts +++ b/packages/core/test/permission.test.ts @@ -3,7 +3,7 @@ import { Cause, Deferred, Effect, Fiber, Layer } from "effect" import { AgentV2 } from "@opencode-ai/core/agent" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Job } from "@opencode-ai/core/job" import { Location } from "@opencode-ai/core/location" diff --git a/packages/core/test/plugin/fixture.ts b/packages/core/test/plugin/fixture.ts index ffef32738da3..ffe005cb63f8 100644 --- a/packages/core/test/plugin/fixture.ts +++ b/packages/core/test/plugin/fixture.ts @@ -4,14 +4,14 @@ import { Catalog } from "@opencode-ai/core/catalog" import { CommandV2 } from "@opencode-ai/core/command" import { Credential } from "@opencode-ai/core/credential" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { FileSystem } from "@opencode-ai/core/filesystem" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Integration } from "@opencode-ai/core/integration" import { Location } from "@opencode-ai/core/location" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import { PluginV2 } from "@opencode-ai/core/plugin" import { PluginHooks } from "@opencode-ai/core/plugin/hooks" import { PluginRuntime } from "@opencode-ai/core/plugin/runtime" diff --git a/packages/core/test/plugin/models-dev.test.ts b/packages/core/test/plugin/models-dev.test.ts index f07c96b439b3..bcdb53a215a4 100644 --- a/packages/core/test/plugin/models-dev.test.ts +++ b/packages/core/test/plugin/models-dev.test.ts @@ -5,9 +5,9 @@ import { Effect, Layer } from "effect" import { Catalog } from "@opencode-ai/core/catalog" import { Integration } from "@opencode-ai/core/integration" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Location } from "@opencode-ai/core/location" import { ModelV2 } from "@opencode-ai/core/model" import { ModelsDev } from "@opencode-ai/core/models-dev" diff --git a/packages/core/test/plugin/provider-dynamic.test.ts b/packages/core/test/plugin/provider-dynamic.test.ts index c5a598a8703a..d0b1a8af5ace 100644 --- a/packages/core/test/plugin/provider-dynamic.test.ts +++ b/packages/core/test/plugin/provider-dynamic.test.ts @@ -1,4 +1,4 @@ -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import { describe, expect } from "bun:test" import { Cause, Effect, Layer } from "effect" import fs from "fs/promises" diff --git a/packages/core/test/plugin/provider-sap-ai-core.test.ts b/packages/core/test/plugin/provider-sap-ai-core.test.ts index 8822866be8e1..26dc3ac86cfe 100644 --- a/packages/core/test/plugin/provider-sap-ai-core.test.ts +++ b/packages/core/test/plugin/provider-sap-ai-core.test.ts @@ -4,7 +4,7 @@ import { Effect } from "effect" import { ModelV2 } from "@opencode-ai/core/model" import { PluginV2 } from "@opencode-ai/core/plugin" import { PluginHost } from "@opencode-ai/core/plugin/host" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import { SapAICorePlugin } from "@opencode-ai/core/plugin/provider/sap-ai-core" import { ProviderV2 } from "@opencode-ai/core/provider" import { testEffect } from "../lib/effect" diff --git a/packages/core/test/plugin/skill.test.ts b/packages/core/test/plugin/skill.test.ts index de0f745183b9..c35d7073eb65 100644 --- a/packages/core/test/plugin/skill.test.ts +++ b/packages/core/test/plugin/skill.test.ts @@ -2,8 +2,8 @@ import { describe, expect } from "bun:test" import { NodeFileSystem } from "@effect/platform-node" import { Config } from "@opencode-ai/core/config" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Location } from "@opencode-ai/core/location" import { Effect } from "effect" import { SkillPlugin } from "@opencode-ai/core/plugin/skill" diff --git a/packages/core/test/plugin/variant.test.ts b/packages/core/test/plugin/variant.test.ts index 5f3dafd2099c..5e87748dc4af 100644 --- a/packages/core/test/plugin/variant.test.ts +++ b/packages/core/test/plugin/variant.test.ts @@ -1,7 +1,7 @@ import { describe, expect } from "bun:test" import { Catalog } from "@opencode-ai/core/catalog" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Location } from "@opencode-ai/core/location" import { ModelV2 } from "@opencode-ai/core/model" import { VariantPlugin } from "@opencode-ai/core/plugin/variant" diff --git a/packages/core/test/process/process.test.ts b/packages/core/test/process/process.test.ts index 82b6dc4717a3..bf3d403e7860 100644 --- a/packages/core/test/process/process.test.ts +++ b/packages/core/test/process/process.test.ts @@ -5,8 +5,8 @@ import { tmpdir } from "node:os" import path from "node:path" import { Effect, Exit, Fiber, Stream } from "effect" import { ChildProcess } from "effect/unstable/process" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { AppProcess } from "@opencode-ai/core/process" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { AppProcess } from "@opencode-ai/util/process" import { testEffect } from "../lib/effect" const it = testEffect(LayerNode.compile(AppProcess.node)) diff --git a/packages/core/test/project-copy.test.ts b/packages/core/test/project-copy.test.ts index d37f6302074a..d85d13dcc3bb 100644 --- a/packages/core/test/project-copy.test.ts +++ b/packages/core/test/project-copy.test.ts @@ -5,7 +5,7 @@ import path from "path" import { eq } from "drizzle-orm" import { Effect, Fiber, Stream } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { AbsolutePath } from "@opencode-ai/core/schema" import { Git } from "@opencode-ai/core/git" import { Database } from "@opencode-ai/core/database/database" diff --git a/packages/core/test/project-directories.test.ts b/packages/core/test/project-directories.test.ts index d070376b68e2..9071dcb4ef1b 100644 --- a/packages/core/test/project-directories.test.ts +++ b/packages/core/test/project-directories.test.ts @@ -1,7 +1,7 @@ import { describe, expect } from "bun:test" import { Effect, Schema } from "effect" import { Database } from "@opencode-ai/core/database/database" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { Project } from "@opencode-ai/core/project" import { ProjectDirectories } from "@opencode-ai/core/project/directories" diff --git a/packages/core/test/project.test.ts b/packages/core/test/project.test.ts index 6be3333f51e4..dc505465c72d 100644 --- a/packages/core/test/project.test.ts +++ b/packages/core/test/project.test.ts @@ -8,7 +8,7 @@ import { Database } from "@opencode-ai/core/database/database" import { ProjectV2 } from "@opencode-ai/core/project" import { ProjectTable } from "@opencode-ai/core/project/sql" import { AbsolutePath } from "@opencode-ai/core/schema" -import { Hash } from "@opencode-ai/core/util/hash" +import { Hash } from "@opencode-ai/util/hash" import { tmpdir } from "./fixture/tmpdir" import { testEffect } from "./lib/effect" diff --git a/packages/core/test/pty/pty-session.test.ts b/packages/core/test/pty/pty-session.test.ts index 6d049b49aea1..d11f36fc0bf5 100644 --- a/packages/core/test/pty/pty-session.test.ts +++ b/packages/core/test/pty/pty-session.test.ts @@ -2,7 +2,7 @@ import { describe, expect } from "bun:test" import { Cause, Deferred, Effect, Exit, Layer, Queue } from "effect" import { Config } from "@opencode-ai/core/config" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Location } from "@opencode-ai/core/location" import { Pty } from "@opencode-ai/core/pty" diff --git a/packages/core/test/pty/ticket.test.ts b/packages/core/test/pty/ticket.test.ts index 10849f2f61b7..c478e721dba1 100644 --- a/packages/core/test/pty/ticket.test.ts +++ b/packages/core/test/pty/ticket.test.ts @@ -1,6 +1,6 @@ import { describe, expect } from "bun:test" import { Effect, Layer } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { PtyID } from "@opencode-ai/core/pty/schema" import { PtyTicket } from "@opencode-ai/core/pty/ticket" import { WorkspaceV2 } from "@opencode-ai/core/workspace" diff --git a/packages/core/test/question.test.ts b/packages/core/test/question.test.ts index 03d61a956507..d60288cc7964 100644 --- a/packages/core/test/question.test.ts +++ b/packages/core/test/question.test.ts @@ -1,6 +1,6 @@ import { describe, expect } from "bun:test" import { Context, Deferred, Effect, Exit, Fiber, Layer, Scope } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { EventV2 } from "@opencode-ai/core/event" import { QuestionV2 } from "@opencode-ai/core/question" diff --git a/packages/core/test/reference.test.ts b/packages/core/test/reference.test.ts index a5a656c8bff4..cc42b7ca8783 100644 --- a/packages/core/test/reference.test.ts +++ b/packages/core/test/reference.test.ts @@ -1,9 +1,9 @@ import { describe, expect } from "bun:test" import { Effect, Exit, Layer, Scope } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { AbsolutePath } from "@opencode-ai/core/schema" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Reference } from "@opencode-ai/core/reference" import { Repository } from "@opencode-ai/core/repository" import { RepositoryCache } from "@opencode-ai/core/repository-cache" diff --git a/packages/core/test/repository-cache.test.ts b/packages/core/test/repository-cache.test.ts index 2dd0ce250288..53a4abb8b726 100644 --- a/packages/core/test/repository-cache.test.ts +++ b/packages/core/test/repository-cache.test.ts @@ -4,8 +4,8 @@ import path from "path" import { pathToFileURL } from "url" import { Effect, Layer } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { Global } from "@opencode-ai/core/global" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { Global } from "@opencode-ai/util/global" import { Repository } from "@opencode-ai/core/repository" import { RepositoryCache } from "@opencode-ai/core/repository-cache" import { git, gitRemote } from "./fixture/git" diff --git a/packages/core/test/ripgrep.test.ts b/packages/core/test/ripgrep.test.ts index 3abce1c02d6d..15d1ec63ce5d 100644 --- a/packages/core/test/ripgrep.test.ts +++ b/packages/core/test/ripgrep.test.ts @@ -2,7 +2,7 @@ import { describe, expect } from "bun:test" import fs from "fs/promises" import path from "path" import { Effect } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { RelativePath } from "@opencode-ai/core/schema" import { tmpdir } from "./fixture/tmpdir" diff --git a/packages/core/test/session-compact.test.ts b/packages/core/test/session-compact.test.ts index da90068ea423..479e0ec83650 100644 --- a/packages/core/test/session-compact.test.ts +++ b/packages/core/test/session-compact.test.ts @@ -4,7 +4,7 @@ import { OpenAIChat } from "@opencode-ai/ai/protocols" import { Config } from "@opencode-ai/core/config" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Job } from "@opencode-ai/core/job" import { Location } from "@opencode-ai/core/location" diff --git a/packages/core/test/session-compaction.test.ts b/packages/core/test/session-compaction.test.ts index ad3e0a2bfbad..23a6875ee0fe 100644 --- a/packages/core/test/session-compaction.test.ts +++ b/packages/core/test/session-compaction.test.ts @@ -4,8 +4,8 @@ import { OpenAIChat } from "@opencode-ai/ai/protocols" import { Config } from "@opencode-ai/core/config" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { llmClient } from "@opencode-ai/core/effect/app-node-platform" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { llmClient } from "@opencode-ai/util/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { EventTable } from "@opencode-ai/core/event/sql" import { SessionCompaction } from "@opencode-ai/core/session/compaction" @@ -18,8 +18,8 @@ import { SessionStore } from "@opencode-ai/core/session/store" import { SessionV2 } from "@opencode-ai/core/session" import { Project } from "@opencode-ai/core/project" import { ProjectTable } from "@opencode-ai/core/project/sql" -import { Flag } from "@opencode-ai/core/flag/flag" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { Flag } from "@opencode-ai/util/flag" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { AbsolutePath } from "@opencode-ai/core/schema" import { Money } from "@opencode-ai/schema/money" import { DateTime, Effect, Fiber, Layer, Stream } from "effect" diff --git a/packages/core/test/session-create.test.ts b/packages/core/test/session-create.test.ts index 4b43fb54779e..ec11f8bc9a33 100644 --- a/packages/core/test/session-create.test.ts +++ b/packages/core/test/session-create.test.ts @@ -6,7 +6,7 @@ import { AgentV2 } from "@opencode-ai/core/agent" import { asc, eq } from "drizzle-orm" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { EventTable } from "@opencode-ai/core/event/sql" import { Location } from "@opencode-ai/core/location" diff --git a/packages/core/test/session-execution.test.ts b/packages/core/test/session-execution.test.ts index 0e25881a62cd..192b88eac871 100644 --- a/packages/core/test/session-execution.test.ts +++ b/packages/core/test/session-execution.test.ts @@ -2,7 +2,7 @@ import { describe, expect, test } from "bun:test" import { LLMError, TransportReason } from "@opencode-ai/ai" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { LocationServiceMap } from "@opencode-ai/core/location-service-map" import type { LocationServices } from "@opencode-ai/core/location-services" diff --git a/packages/core/test/session-generate.test.ts b/packages/core/test/session-generate.test.ts index a66ac6a69e85..647122ef349b 100644 --- a/packages/core/test/session-generate.test.ts +++ b/packages/core/test/session-generate.test.ts @@ -4,8 +4,8 @@ import { OpenAIChat } from "@opencode-ai/ai/protocols" import { AgentV2 } from "@opencode-ai/core/agent" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { llmClient } from "@opencode-ai/core/effect/app-node-platform" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { llmClient } from "@opencode-ai/util/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { EventTable } from "@opencode-ai/core/event/sql" import { InstructionDiscovery } from "@opencode-ai/core/instruction-discovery" diff --git a/packages/core/test/session-instructions.test.ts b/packages/core/test/session-instructions.test.ts index 64f667541e0f..f0720cfc12f7 100644 --- a/packages/core/test/session-instructions.test.ts +++ b/packages/core/test/session-instructions.test.ts @@ -5,12 +5,12 @@ import { DateTime, Effect, Layer } from "effect" import { Message } from "@opencode-ai/ai" import { AgentV2 } from "@opencode-ai/core/agent" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Config } from "@opencode-ai/core/config" import { Database } from "@opencode-ai/core/database/database" import { EventV2 } from "@opencode-ai/core/event" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { Image } from "@opencode-ai/core/image" import { Location } from "@opencode-ai/core/location" import { LocationMutation } from "@opencode-ai/core/location-mutation" @@ -32,7 +32,7 @@ import { ToolHooks } from "@opencode-ai/core/tool/hooks" import { ToolOutputStore } from "@opencode-ai/core/tool-output-store" import { ToolRegistry } from "@opencode-ai/core/tool/registry" import { tempLocationLayer } from "./fixture/location" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { testEffect } from "./lib/effect" import { registerToolPlugin, settleTool } from "./lib/tool" diff --git a/packages/core/test/session-log.test.ts b/packages/core/test/session-log.test.ts index a6c7797e0f5d..870f6acf02af 100644 --- a/packages/core/test/session-log.test.ts +++ b/packages/core/test/session-log.test.ts @@ -3,7 +3,7 @@ import { Effect, Fiber, Layer, Schema, Stream } from "effect" import { Database } from "@opencode-ai/core/database/database" import { AgentV2 } from "@opencode-ai/core/agent" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Location } from "@opencode-ai/core/location" import { ProjectV2 } from "@opencode-ai/core/project" diff --git a/packages/core/test/session-projector.test.ts b/packages/core/test/session-projector.test.ts index cddafaf52b3b..18bdcdbd62ed 100644 --- a/packages/core/test/session-projector.test.ts +++ b/packages/core/test/session-projector.test.ts @@ -3,7 +3,7 @@ import { DateTime, Effect, Fiber, Option, Schema, Stream } from "effect" import { asc, eq, sql } from "drizzle-orm" import { Database } from "@opencode-ai/core/database/database" import { AgentV2 } from "@opencode-ai/core/agent" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { EventV2 } from "@opencode-ai/core/event" import { EventTable } from "@opencode-ai/core/event/sql" diff --git a/packages/core/test/session-prompt.test.ts b/packages/core/test/session-prompt.test.ts index b86e19444a19..941154351247 100644 --- a/packages/core/test/session-prompt.test.ts +++ b/packages/core/test/session-prompt.test.ts @@ -8,7 +8,7 @@ import { eq } from "drizzle-orm" import { Database } from "@opencode-ai/core/database/database" import { AgentV2 } from "@opencode-ai/core/agent" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { EventTable } from "@opencode-ai/core/event/sql" import { SessionEvent } from "@opencode-ai/core/session/event" diff --git a/packages/core/test/session-remove.test.ts b/packages/core/test/session-remove.test.ts index b0fa62e5a86e..8d61af76c856 100644 --- a/packages/core/test/session-remove.test.ts +++ b/packages/core/test/session-remove.test.ts @@ -1,7 +1,7 @@ import { describe, expect } from "bun:test" import { Effect, Layer } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Database } from "@opencode-ai/core/database/database" import { EventV2 } from "@opencode-ai/core/event" import { Location } from "@opencode-ai/core/location" diff --git a/packages/core/test/session-runner-recorded.test.ts b/packages/core/test/session-runner-recorded.test.ts index beee5d476dba..bf5b538122bb 100644 --- a/packages/core/test/session-runner-recorded.test.ts +++ b/packages/core/test/session-runner-recorded.test.ts @@ -4,8 +4,8 @@ import { Auth, LLMClient, RequestExecutor } from "@opencode-ai/ai/route" import { Catalog } from "@opencode-ai/core/catalog" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { EventTable } from "@opencode-ai/core/event/sql" import { Job } from "@opencode-ai/core/job" diff --git a/packages/core/test/session-runner.test.ts b/packages/core/test/session-runner.test.ts index e3297a54a12c..e94ad32730ac 100644 --- a/packages/core/test/session-runner.test.ts +++ b/packages/core/test/session-runner.test.ts @@ -17,13 +17,13 @@ import { import * as OpenAIChat from "@opencode-ai/ai/protocols/openai-chat" import { Catalog } from "@opencode-ai/core/catalog" import { Database } from "@opencode-ai/core/database/database" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" -import { Flag } from "@opencode-ai/core/flag/flag" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { Flag } from "@opencode-ai/util/flag" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { PermissionV2 } from "@opencode-ai/core/permission" import { EventTable } from "@opencode-ai/core/event/sql" import { Project } from "@opencode-ai/core/project" diff --git a/packages/core/test/session-skill.test.ts b/packages/core/test/session-skill.test.ts index d8cd7fbb5631..decf33a9a31b 100644 --- a/packages/core/test/session-skill.test.ts +++ b/packages/core/test/session-skill.test.ts @@ -3,7 +3,7 @@ import { describe, expect } from "bun:test" import { Effect, Layer, LayerMap } from "effect" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Location } from "@opencode-ai/core/location" import { LocationServiceMap } from "@opencode-ai/core/location-service-map" diff --git a/packages/core/test/session-title.test.ts b/packages/core/test/session-title.test.ts index cf3d7f4ea016..816fa0fd2970 100644 --- a/packages/core/test/session-title.test.ts +++ b/packages/core/test/session-title.test.ts @@ -4,8 +4,8 @@ import { OpenAIChat } from "@opencode-ai/ai/protocols" import { AgentV2 } from "@opencode-ai/core/agent" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { llmClient } from "@opencode-ai/core/effect/app-node-platform" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { llmClient } from "@opencode-ai/util/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { SessionEvent } from "@opencode-ai/core/session/event" import { SessionMessage } from "@opencode-ai/core/session/message" @@ -17,8 +17,8 @@ import { SessionTitle } from "@opencode-ai/core/session/title" import { SessionV2 } from "@opencode-ai/core/session" import { Project } from "@opencode-ai/core/project" import { ProjectTable } from "@opencode-ai/core/project/sql" -import { Flag } from "@opencode-ai/core/flag/flag" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { Flag } from "@opencode-ai/util/flag" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { AbsolutePath } from "@opencode-ai/core/schema" import { Money } from "@opencode-ai/schema/money" import { Effect, Layer, Stream } from "effect" diff --git a/packages/core/test/session-tool-progress.test.ts b/packages/core/test/session-tool-progress.test.ts index e61bb54b636c..0935ee36338b 100644 --- a/packages/core/test/session-tool-progress.test.ts +++ b/packages/core/test/session-tool-progress.test.ts @@ -2,7 +2,7 @@ import { describe, expect } from "bun:test" import { asc, eq } from "drizzle-orm" import { DateTime, Effect, Schema } from "effect" import { Database } from "@opencode-ai/core/database/database" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { AgentV2 } from "@opencode-ai/core/agent" import { EventTable } from "@opencode-ai/core/event/sql" diff --git a/packages/core/test/session-wait.test.ts b/packages/core/test/session-wait.test.ts index e15543f4778c..b7c69c478002 100644 --- a/packages/core/test/session-wait.test.ts +++ b/packages/core/test/session-wait.test.ts @@ -2,7 +2,7 @@ import { describe, expect } from "bun:test" import { Effect, Layer } from "effect" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Job } from "@opencode-ai/core/job" import { Location } from "@opencode-ai/core/location" diff --git a/packages/core/test/shell.test.ts b/packages/core/test/shell.test.ts index a3fd4f2b6b90..78782442255d 100644 --- a/packages/core/test/shell.test.ts +++ b/packages/core/test/shell.test.ts @@ -1,7 +1,7 @@ import { describe, expect, test } from "bun:test" import path from "path" import { ShellSelect } from "@opencode-ai/core/shell/select" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { which } from "@opencode-ai/core/util/which" const withShell = async (shell: string | undefined, fn: () => void | Promise) => { diff --git a/packages/core/test/skill-discovery.test.ts b/packages/core/test/skill-discovery.test.ts index ca95c64a4907..850f4c2aea15 100644 --- a/packages/core/test/skill-discovery.test.ts +++ b/packages/core/test/skill-discovery.test.ts @@ -3,7 +3,7 @@ import path from "path" import { describe, expect, test } from "bun:test" import { Effect } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { SkillDiscovery } from "@opencode-ai/core/skill/discovery" import { tmpdir } from "./fixture/tmpdir" diff --git a/packages/core/test/skill.test.ts b/packages/core/test/skill.test.ts index 428dfaecd038..06df3dc83954 100644 --- a/packages/core/test/skill.test.ts +++ b/packages/core/test/skill.test.ts @@ -4,9 +4,9 @@ import { describe, expect } from "bun:test" import { Deferred, Effect, Fiber, Layer, Stream } from "effect" import { AgentV2 } from "@opencode-ai/core/agent" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { AbsolutePath } from "@opencode-ai/core/schema" import { SkillV2 } from "@opencode-ai/core/skill" import { SkillDiscovery } from "@opencode-ai/core/skill/discovery" diff --git a/packages/core/test/snapshot.test.ts b/packages/core/test/snapshot.test.ts index 19966e9d29a7..3592618a38d7 100644 --- a/packages/core/test/snapshot.test.ts +++ b/packages/core/test/snapshot.test.ts @@ -5,11 +5,11 @@ import path from "path" import { Deferred, Effect, Fiber, Layer } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { Git } from "@opencode-ai/core/git" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Location } from "@opencode-ai/core/location" import { AbsolutePath, RelativePath } from "@opencode-ai/core/schema" import { Snapshot } from "@opencode-ai/core/snapshot" -import { Hash } from "@opencode-ai/core/util/hash" +import { Hash } from "@opencode-ai/util/hash" import { tmpdir } from "./fixture/tmpdir" import { testEffect } from "./lib/effect" diff --git a/packages/core/test/tool-edit.test.ts b/packages/core/test/tool-edit.test.ts index ded236e6541d..4beb47f84913 100644 --- a/packages/core/test/tool-edit.test.ts +++ b/packages/core/test/tool-edit.test.ts @@ -4,9 +4,9 @@ import { fileURLToPath } from "url" import { describe, expect, test } from "bun:test" import { Effect, Layer } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { FileMutation } from "@opencode-ai/core/file-mutation" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "@opencode-ai/core/location" import { LocationMutation } from "@opencode-ai/core/location-mutation" import { PermissionV2 } from "@opencode-ai/core/permission" @@ -17,7 +17,7 @@ import { ToolOutputStore } from "@opencode-ai/core/tool-output-store" import { EditTool } from "@opencode-ai/core/tool/edit" import { location } from "./fixture/location" import { tmpdir } from "./fixture/tmpdir" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { testEffect } from "./lib/effect" import { toolIdentity, executeTool, registerToolPlugin, settleTool, toolDefinitions } from "./lib/tool" diff --git a/packages/core/test/tool-output-store.test.ts b/packages/core/test/tool-output-store.test.ts index 4de63dfdcd06..d8a872ce602e 100644 --- a/packages/core/test/tool-output-store.test.ts +++ b/packages/core/test/tool-output-store.test.ts @@ -2,9 +2,9 @@ import { describe, expect } from "bun:test" import path from "path" import { Cause, Effect, Exit, Fiber, Layer, Option } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { Config } from "@opencode-ai/core/config" import { ConfigToolOutput } from "@opencode-ai/core/config/tool-output" import { SessionV2 } from "@opencode-ai/core/session" diff --git a/packages/core/test/tool-patch.test.ts b/packages/core/test/tool-patch.test.ts index 458f8c3758cf..bd435442e831 100644 --- a/packages/core/test/tool-patch.test.ts +++ b/packages/core/test/tool-patch.test.ts @@ -3,9 +3,9 @@ import path from "path" import { describe, expect } from "bun:test" import { Deferred, Effect, Exit, Fiber, Layer } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { FileMutation } from "@opencode-ai/core/file-mutation" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "@opencode-ai/core/location" import { LocationMutation } from "@opencode-ai/core/location-mutation" import { PermissionV2 } from "@opencode-ai/core/permission" @@ -16,7 +16,7 @@ import { ToolOutputStore } from "@opencode-ai/core/tool-output-store" import { PatchTool } from "@opencode-ai/core/tool/patch" import { location } from "./fixture/location" import { tmpdir } from "./fixture/tmpdir" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { testEffect } from "./lib/effect" import { toolIdentity, executeTool, registerToolPlugin, settleTool, toolDefinitions } from "./lib/tool" diff --git a/packages/core/test/tool-question.test.ts b/packages/core/test/tool-question.test.ts index f3ef03bf79e7..002806ec49c5 100644 --- a/packages/core/test/tool-question.test.ts +++ b/packages/core/test/tool-question.test.ts @@ -1,7 +1,7 @@ import { describe, expect } from "bun:test" import { Cause, Effect, Exit, Fiber, Layer } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Form } from "@opencode-ai/core/form" import { PermissionV2 } from "@opencode-ai/core/permission" import { SessionV2 } from "@opencode-ai/core/session" @@ -11,7 +11,7 @@ import { ToolOutputStore } from "@opencode-ai/core/tool-output-store" import { Image } from "@opencode-ai/core/image" import { testEffect } from "./lib/effect" import { imagePassthrough } from "./lib/image" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { toolIdentity, executeTool, registerToolPlugin, settleTool, toolDefinitions } from "./lib/tool" const sessionID = SessionV2.ID.make("ses_question_tool_test") diff --git a/packages/core/test/tool-read-filesystem.test.ts b/packages/core/test/tool-read-filesystem.test.ts index e9970fb975da..92c4f1739725 100644 --- a/packages/core/test/tool-read-filesystem.test.ts +++ b/packages/core/test/tool-read-filesystem.test.ts @@ -1,9 +1,9 @@ import { describe, expect } from "bun:test" import path from "path" import { Effect, FileSystem } from "effect" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { ReadToolFileSystem } from "@opencode-ai/core/tool/read-filesystem" import { testEffect } from "./lib/effect" diff --git a/packages/core/test/tool-read.test.ts b/packages/core/test/tool-read.test.ts index 6437e3f12823..6d309e38348c 100644 --- a/packages/core/test/tool-read.test.ts +++ b/packages/core/test/tool-read.test.ts @@ -4,22 +4,22 @@ import { Effect, Exit, Layer, PlatformError } from "effect" import { Config } from "@opencode-ai/core/config" import { ConfigAttachments } from "@opencode-ai/core/config/attachments" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { FileSystem } from "@opencode-ai/core/filesystem" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "@opencode-ai/core/location" import { Image } from "@opencode-ai/core/image" import { PermissionV2 } from "@opencode-ai/core/permission" import { SessionV2 } from "@opencode-ai/core/session" import { AbsolutePath } from "@opencode-ai/core/schema" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { LocationMutation } from "@opencode-ai/core/location-mutation" import { location } from "./fixture/location" import { ToolRegistry } from "@opencode-ai/core/tool/registry" import { ToolOutputStore } from "@opencode-ai/core/tool-output-store" import { ReadTool } from "@opencode-ai/core/tool/read" import { ReadToolFileSystem } from "@opencode-ai/core/tool/read-filesystem" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { SessionInstructions } from "@opencode-ai/core/session/instructions" import { testEffect } from "./lib/effect" import { toolIdentity, executeTool, registerToolPlugin, settleTool, toolDefinitions } from "./lib/tool" diff --git a/packages/core/test/tool-search.test.ts b/packages/core/test/tool-search.test.ts index 45a3e42296d5..3152c3f4e1e3 100644 --- a/packages/core/test/tool-search.test.ts +++ b/packages/core/test/tool-search.test.ts @@ -3,10 +3,10 @@ import fs from "fs/promises" import path from "path" import { Effect, Layer } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { FileSystem } from "@opencode-ai/core/filesystem" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "@opencode-ai/core/location" import { PermissionV2 } from "@opencode-ai/core/permission" import { Ripgrep } from "@opencode-ai/core/ripgrep" diff --git a/packages/core/test/tool-shell.test.ts b/packages/core/test/tool-shell.test.ts index 1e59e788e49d..2b66b2ec8db1 100644 --- a/packages/core/test/tool-shell.test.ts +++ b/packages/core/test/tool-shell.test.ts @@ -5,13 +5,13 @@ import { describe, expect, test } from "bun:test" import { DateTime, Deferred, Duration, Effect, Fiber, Layer, Scope, Stream } from "effect" import { Money } from "@opencode-ai/schema/money" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { makeGlobalNode } from "@opencode-ai/core/effect/app-node" -import { filesystem } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { filesystem } from "@opencode-ai/util/effect/app-node-platform" import { Database } from "@opencode-ai/core/database/database" import { EventV2 } from "@opencode-ai/core/event" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { Location } from "@opencode-ai/core/location" import { LocationServiceMap } from "@opencode-ai/core/location-service-map" import { ModelV2 } from "@opencode-ai/core/model" diff --git a/packages/core/test/tool-skill.test.ts b/packages/core/test/tool-skill.test.ts index 8cc3eb25df75..d6745b44d258 100644 --- a/packages/core/test/tool-skill.test.ts +++ b/packages/core/test/tool-skill.test.ts @@ -3,7 +3,7 @@ import path from "path" import { describe, expect } from "bun:test" import { Effect, Layer } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { PermissionV2 } from "@opencode-ai/core/permission" import { AbsolutePath } from "@opencode-ai/core/schema" import { SessionV2 } from "@opencode-ai/core/session" @@ -15,8 +15,8 @@ import { tmpdir } from "./fixture/tmpdir" import { Image } from "@opencode-ai/core/image" import { it } from "./lib/effect" import { imagePassthrough } from "./lib/image" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { toolIdentity, executeTool, registerToolPlugin, settleTool, toolDefinitions } from "./lib/tool" const skillToolNode = makeLocationNode({ diff --git a/packages/core/test/tool-subagent.test.ts b/packages/core/test/tool-subagent.test.ts index fc257a7d4025..f86d0d184562 100644 --- a/packages/core/test/tool-subagent.test.ts +++ b/packages/core/test/tool-subagent.test.ts @@ -3,8 +3,8 @@ import { DateTime, Effect, Fiber, Layer, Schema, Stream } from "effect" import path from "path" import { Money } from "@opencode-ai/schema/money" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { makeGlobalNode } from "@opencode-ai/core/effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { Database } from "@opencode-ai/core/database/database" import { EventV2 } from "@opencode-ai/core/event" import { Location } from "@opencode-ai/core/location" diff --git a/packages/core/test/tool-webfetch.test.ts b/packages/core/test/tool-webfetch.test.ts index fc38296c9bad..27a917d56758 100644 --- a/packages/core/test/tool-webfetch.test.ts +++ b/packages/core/test/tool-webfetch.test.ts @@ -3,14 +3,14 @@ import { Duration, Effect, Fiber, Layer, Schema } from "effect" import * as TestClock from "effect/testing/TestClock" import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" import { PermissionV2 } from "@opencode-ai/core/permission" import { SessionV2 } from "@opencode-ai/core/session" import { ToolRegistry } from "@opencode-ai/core/tool/registry" import { WebFetchTool } from "@opencode-ai/core/tool/webfetch" import { ToolOutputStore } from "@opencode-ai/core/tool-output-store" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Image } from "@opencode-ai/core/image" import { testEffect } from "./lib/effect" import { imagePassthrough } from "./lib/image" diff --git a/packages/core/test/tool-websearch.test.ts b/packages/core/test/tool-websearch.test.ts index 8d1cc1e67919..f8468285a5fd 100644 --- a/packages/core/test/tool-websearch.test.ts +++ b/packages/core/test/tool-websearch.test.ts @@ -2,14 +2,14 @@ import { beforeEach, describe, expect, test } from "bun:test" import { Effect, Layer, Schema } from "effect" import { HttpClient, HttpClientResponse } from "effect/unstable/http" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" import { PermissionV2 } from "@opencode-ai/core/permission" import { SessionV2 } from "@opencode-ai/core/session" import { ToolRegistry } from "@opencode-ai/core/tool/registry" import { WebSearchTool } from "@opencode-ai/core/tool/websearch" import { ToolOutputStore } from "@opencode-ai/core/tool-output-store" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { Image } from "@opencode-ai/core/image" import { testEffect } from "./lib/effect" import { imagePassthrough } from "./lib/image" diff --git a/packages/core/test/tool-write.test.ts b/packages/core/test/tool-write.test.ts index 1fc82f142825..11698f922432 100644 --- a/packages/core/test/tool-write.test.ts +++ b/packages/core/test/tool-write.test.ts @@ -5,8 +5,8 @@ import { describe, expect, test } from "bun:test" import { Effect, Layer } from "effect" import { FileMutation } from "@opencode-ai/core/file-mutation" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "@opencode-ai/core/location" import { LocationMutation } from "@opencode-ai/core/location-mutation" import { PermissionV2 } from "@opencode-ai/core/permission" @@ -17,7 +17,7 @@ import { ToolOutputStore } from "@opencode-ai/core/tool-output-store" import { WriteTool } from "@opencode-ai/core/tool/write" import { location } from "./fixture/location" import { tmpdir } from "./fixture/tmpdir" -import { makeLocationNode } from "@opencode-ai/core/effect/app-node" +import { makeLocationNode } from "@opencode-ai/util/effect/app-node" import { testEffect } from "./lib/effect" import { toolIdentity, executeTool, registerToolPlugin, settleTool, toolDefinitions } from "./lib/tool" diff --git a/packages/core/test/util/effect-flock.test.ts b/packages/core/test/util/effect-flock.test.ts index ca2820737d81..436074b503b1 100644 --- a/packages/core/test/util/effect-flock.test.ts +++ b/packages/core/test/util/effect-flock.test.ts @@ -6,10 +6,10 @@ import os from "os" import { Cause, Effect, Exit } from "effect" import { testEffect } from "../lib/effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { EffectFlock } from "@opencode-ai/core/util/effect-flock" -import { Global } from "@opencode-ai/core/global" -import { Hash } from "@opencode-ai/core/util/hash" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { EffectFlock } from "@opencode-ai/util/effect-flock" +import { Global } from "@opencode-ai/util/global" +import { Hash } from "@opencode-ai/util/hash" function lock(dir: string, key: string) { return path.join(dir, Hash.fast(key) + ".lock") diff --git a/packages/core/test/util/flock.test.ts b/packages/core/test/util/flock.test.ts index 53bfc1874ea8..37cd51497bfb 100644 --- a/packages/core/test/util/flock.test.ts +++ b/packages/core/test/util/flock.test.ts @@ -3,8 +3,8 @@ import fs from "fs/promises" import { spawn } from "child_process" import path from "path" import os from "os" -import { Flock } from "@opencode-ai/core/util/flock" -import { Hash } from "@opencode-ai/core/util/hash" +import { Flock } from "@opencode-ai/util/flock" +import { Hash } from "@opencode-ai/util/hash" type Msg = { key: string diff --git a/packages/core/test/vcs-hg.test.ts b/packages/core/test/vcs-hg.test.ts index 372631cb1fcf..f699eb645753 100644 --- a/packages/core/test/vcs-hg.test.ts +++ b/packages/core/test/vcs-hg.test.ts @@ -3,7 +3,7 @@ import { describe, expect } from "bun:test" import fs from "fs/promises" import path from "path" import { Effect, Layer } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Location } from "@opencode-ai/core/location" import { AbsolutePath } from "@opencode-ai/core/schema" import { Vcs } from "@opencode-ai/core/vcs" diff --git a/packages/core/test/vcs.test.ts b/packages/core/test/vcs.test.ts index 2a42d1f54af7..822deff75bd5 100644 --- a/packages/core/test/vcs.test.ts +++ b/packages/core/test/vcs.test.ts @@ -3,7 +3,7 @@ import { describe, expect } from "bun:test" import fs from "fs/promises" import path from "path" import { Effect, Layer } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Location } from "@opencode-ai/core/location" import { AbsolutePath } from "@opencode-ai/core/schema" import { Vcs } from "@opencode-ai/core/vcs" diff --git a/packages/core/test/wellknown.test.ts b/packages/core/test/wellknown.test.ts index 08ecbfc8b640..829f60ccd789 100644 --- a/packages/core/test/wellknown.test.ts +++ b/packages/core/test/wellknown.test.ts @@ -2,7 +2,7 @@ import { expect } from "bun:test" import { Effect, Fiber, Stream } from "effect" import { FetchHttpClient } from "effect/unstable/http" import { KV } from "@opencode-ai/core/kv" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { WellKnown } from "@opencode-ai/core/wellknown" import { testEffect } from "./lib/effect" diff --git a/packages/opencode/package.json b/packages/opencode/package.json index 2f85a143d8f2..47f9532f923c 100644 --- a/packages/opencode/package.json +++ b/packages/opencode/package.json @@ -32,6 +32,7 @@ "@babel/core": "7.28.4", "@octokit/webhooks-types": "7.6.1", "@opencode-ai/core": "workspace:*", + "@opencode-ai/util": "workspace:*", "@opencode-ai/http-recorder": "workspace:*", "@opencode-ai/script": "workspace:*", "@standard-schema/spec": "1.0.0", diff --git a/packages/opencode/src/account/account.ts b/packages/opencode/src/account/account.ts index 4b49d2a74890..0b913296a39c 100644 --- a/packages/opencode/src/account/account.ts +++ b/packages/opencode/src/account/account.ts @@ -1,7 +1,7 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { Cache, Clock, Duration, Effect, Layer, Option, Schema, SchemaGetter, Context } from "effect" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { FetchHttpClient, HttpClient, diff --git a/packages/opencode/src/account/repo.ts b/packages/opencode/src/account/repo.ts index 62fac1e618d0..9b25a188e048 100644 --- a/packages/opencode/src/account/repo.ts +++ b/packages/opencode/src/account/repo.ts @@ -1,6 +1,6 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { eq } from "drizzle-orm" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { Effect, Layer, Option, Schema, Context } from "effect" import { Database } from "@opencode-ai/core/database/database" diff --git a/packages/opencode/src/acp/directory.ts b/packages/opencode/src/acp/directory.ts index 2301c8929a88..73714fa77564 100644 --- a/packages/opencode/src/acp/directory.ts +++ b/packages/opencode/src/acp/directory.ts @@ -3,7 +3,7 @@ import { Command } from "@/command" import { InstanceRef } from "@/effect/instance-ref" import { InstanceBootstrap } from "@/project/bootstrap" import { InstanceStore } from "@/project/instance-store" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" import { Provider } from "@/provider/provider" diff --git a/packages/opencode/src/acp/service.ts b/packages/opencode/src/acp/service.ts index 7257efa7658c..fbe7f0f3e9dc 100644 --- a/packages/opencode/src/acp/service.ts +++ b/packages/opencode/src/acp/service.ts @@ -29,7 +29,7 @@ import { type SetSessionModeRequest, type SetSessionModeResponse, } from "@agentclientprotocol/sdk" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import type { AssistantMessage, Message, OpencodeClient, SessionMessageResponse } from "@opencode-ai/sdk/v2" import { Context, Effect, Layer, ManagedRuntime } from "effect" diff --git a/packages/opencode/src/acp/session.ts b/packages/opencode/src/acp/session.ts index f6a7a56bac2f..8c3e79829e02 100644 --- a/packages/opencode/src/acp/session.ts +++ b/packages/opencode/src/acp/session.ts @@ -1,6 +1,6 @@ import type { McpServer } from "@agentclientprotocol/sdk" import type { Message, Part } from "@opencode-ai/sdk/v2" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" import { Context, Effect, Layer, Ref } from "effect" diff --git a/packages/opencode/src/acp/usage.ts b/packages/opencode/src/acp/usage.ts index 737275768e2d..b7f3a6003624 100644 --- a/packages/opencode/src/acp/usage.ts +++ b/packages/opencode/src/acp/usage.ts @@ -3,8 +3,8 @@ import type { AssistantMessage as OpenCodeAssistantMessage, Message } from "@ope import { InstanceRef } from "@/effect/instance-ref" import { InstanceBootstrap } from "@/project/bootstrap" import { InstanceStore } from "@/project/instance-store" -import { makeGlobalNode, Node } from "@opencode-ai/core/effect/app-node" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { makeGlobalNode, Node } from "@opencode-ai/util/effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" import { Provider } from "@/provider/provider" diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index ae42af1dffed..18fe8bbd5287 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -1,7 +1,7 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { PermissionV1 } from "@opencode-ai/core/v1/permission" import { Config } from "@/config/config" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { Provider } from "@/provider/provider" import { generateObject, streamObject, type ModelMessage } from "ai" @@ -16,7 +16,7 @@ import PROMPT_SUMMARY from "./prompt/summary.txt" import PROMPT_TITLE from "./prompt/title.txt" import { Permission } from "@/permission" import { mergeDeep, pipe, sortBy, values } from "remeda" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import path from "path" import { Plugin } from "@/plugin" import { Skill } from "../skill" diff --git a/packages/opencode/src/auth/index.ts b/packages/opencode/src/auth/index.ts index a133e88498d5..2c71ad40bf80 100644 --- a/packages/opencode/src/auth/index.ts +++ b/packages/opencode/src/auth/index.ts @@ -1,9 +1,9 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import path from "path" import { Effect, Layer, Record, Result, Schema, Context } from "effect" import { NonNegativeInt } from "@opencode-ai/core/schema" -import { Global } from "@opencode-ai/core/global" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { Global } from "@opencode-ai/util/global" +import { FSUtil } from "@opencode-ai/util/fs-util" export const OAUTH_DUMMY_KEY = "opencode-oauth-dummy-key" diff --git a/packages/opencode/src/cli/cmd/agent.ts b/packages/opencode/src/cli/cmd/agent.ts index 076160b41fb8..1f7cabbc4f32 100644 --- a/packages/opencode/src/cli/cmd/agent.ts +++ b/packages/opencode/src/cli/cmd/agent.ts @@ -1,7 +1,7 @@ import { cmd } from "./cmd" import * as prompts from "@clack/prompts" import { UI } from "../ui" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import path from "path" import fs from "fs/promises" import { Filesystem } from "@/util/filesystem" diff --git a/packages/opencode/src/cli/cmd/debug/index.ts b/packages/opencode/src/cli/cmd/debug/index.ts index 9dcaa33b3646..564608275bf8 100644 --- a/packages/opencode/src/cli/cmd/debug/index.ts +++ b/packages/opencode/src/cli/cmd/debug/index.ts @@ -1,6 +1,6 @@ -import { Global } from "@opencode-ai/core/global" -import { InstallationVersion } from "@opencode-ai/core/installation/version" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Global } from "@opencode-ai/util/global" +import { InstallationVersion } from "@opencode-ai/util/installation/version" +import { Flag } from "@opencode-ai/util/flag" import os from "os" import { Duration, Effect } from "effect" import { effectCmd } from "../../effect-cmd" diff --git a/packages/opencode/src/cli/cmd/debug/scrap.ts b/packages/opencode/src/cli/cmd/debug/scrap.ts index f624ee882e4c..a7f9f329229f 100644 --- a/packages/opencode/src/cli/cmd/debug/scrap.ts +++ b/packages/opencode/src/cli/cmd/debug/scrap.ts @@ -8,7 +8,7 @@ export const ScrapCommand = cmd({ async handler() { const { Project } = await import("@/project/project") const { AppNodeBuilder } = await import("@opencode-ai/core/effect/app-node-builder") - const { makeRuntime } = await import("@opencode-ai/core/effect/runtime") + const { makeRuntime } = await import("@opencode-ai/util/effect/runtime") const runtime = makeRuntime(Project.Service, AppNodeBuilder.build(Project.node)) const list = await runtime.runPromise((project) => project.list()) process.stdout.write(JSON.stringify(list, null, 2) + EOL) diff --git a/packages/opencode/src/cli/cmd/import.ts b/packages/opencode/src/cli/cmd/import.ts index 9eb151b633e8..c0a3e74a2200 100644 --- a/packages/opencode/src/cli/cmd/import.ts +++ b/packages/opencode/src/cli/cmd/import.ts @@ -9,7 +9,7 @@ import { InstanceRef } from "@/effect/instance-ref" import { ShareNext } from "@/share/share-next" import { EOL } from "os" import path from "path" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Effect, Schema } from "effect" import type { InstanceContext } from "@/project/instance-context" diff --git a/packages/opencode/src/cli/cmd/mcp.ts b/packages/opencode/src/cli/cmd/mcp.ts index c2d2ee2f3b73..274aec9367fc 100644 --- a/packages/opencode/src/cli/cmd/mcp.ts +++ b/packages/opencode/src/cli/cmd/mcp.ts @@ -14,9 +14,9 @@ import { McpOAuthProvider } from "../../mcp/oauth-provider" import { Config } from "@/config/config" import { ConfigMCPV1 } from "@opencode-ai/core/v1/config/mcp" import { InstanceRef } from "@/effect/instance-ref" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import path from "path" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { modify, applyEdits } from "jsonc-parser" import { Filesystem } from "@/util/filesystem" import { Effect } from "effect" diff --git a/packages/opencode/src/cli/cmd/plug.ts b/packages/opencode/src/cli/cmd/plug.ts index 1529e9b71df3..74c37c8e35f6 100644 --- a/packages/opencode/src/cli/cmd/plug.ts +++ b/packages/opencode/src/cli/cmd/plug.ts @@ -2,7 +2,7 @@ import { intro, log, outro, spinner } from "@clack/prompts" import { Effect } from "effect" import { ConfigPaths } from "@/config/paths" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { installPlugin, patchPluginConfig, readPluginManifest } from "../../plugin/install" import { resolvePluginTarget } from "../../plugin/shared" import { errorMessage } from "../../util/error" diff --git a/packages/opencode/src/cli/cmd/providers.ts b/packages/opencode/src/cli/cmd/providers.ts index 2d5a0ceaf798..272df1446d67 100644 --- a/packages/opencode/src/cli/cmd/providers.ts +++ b/packages/opencode/src/cli/cmd/providers.ts @@ -10,7 +10,7 @@ import { map, pipe, sortBy, values } from "remeda" import path from "path" import os from "os" import { Config } from "@/config/config" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Plugin } from "../../plugin" import type { Hooks } from "@opencode-ai/plugin" import { Process } from "@/util/process" diff --git a/packages/opencode/src/cli/cmd/serve.ts b/packages/opencode/src/cli/cmd/serve.ts index c0f62b3ca071..68e4a8ece6d6 100644 --- a/packages/opencode/src/cli/cmd/serve.ts +++ b/packages/opencode/src/cli/cmd/serve.ts @@ -1,7 +1,7 @@ import { Effect } from "effect" import { effectCmd } from "../effect-cmd" import { withNetworkOptions, resolveNetworkOptions } from "../network" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" export const ServeCommand = effectCmd({ command: "serve", diff --git a/packages/opencode/src/cli/cmd/session.ts b/packages/opencode/src/cli/cmd/session.ts index 9e6ddda9d2d8..7fc0759f19d7 100644 --- a/packages/opencode/src/cli/cmd/session.ts +++ b/packages/opencode/src/cli/cmd/session.ts @@ -6,7 +6,7 @@ import { Session } from "@/session/session" import { SessionID } from "../../session/schema" import { UI } from "../ui" import { Locale } from "@/util/locale" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Filesystem } from "@/util/filesystem" import { Process } from "@/util/process" import { NotFoundError } from "@/storage/storage" diff --git a/packages/opencode/src/cli/cmd/uninstall.ts b/packages/opencode/src/cli/cmd/uninstall.ts index 0afdc518545d..fa6da0bd244f 100644 --- a/packages/opencode/src/cli/cmd/uninstall.ts +++ b/packages/opencode/src/cli/cmd/uninstall.ts @@ -2,7 +2,7 @@ import type { Argv } from "yargs" import { UI } from "../ui" import * as prompts from "@clack/prompts" import { Installation } from "../../installation" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import fs from "fs/promises" import path from "path" import os from "os" diff --git a/packages/opencode/src/cli/cmd/upgrade.ts b/packages/opencode/src/cli/cmd/upgrade.ts index 3c1604a0b835..70d392bc995a 100644 --- a/packages/opencode/src/cli/cmd/upgrade.ts +++ b/packages/opencode/src/cli/cmd/upgrade.ts @@ -2,7 +2,7 @@ import type { Argv } from "yargs" import { UI } from "../ui" import * as prompts from "@clack/prompts" import { Installation } from "../../installation" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" export const UpgradeCommand = { command: "upgrade [target]", diff --git a/packages/opencode/src/cli/cmd/web.ts b/packages/opencode/src/cli/cmd/web.ts index 69a981aada49..cc1cfc87b792 100644 --- a/packages/opencode/src/cli/cmd/web.ts +++ b/packages/opencode/src/cli/cmd/web.ts @@ -2,7 +2,7 @@ import { Effect } from "effect" import { UI } from "../ui" import { effectCmd } from "../effect-cmd" import { withNetworkOptions, resolveNetworkOptions } from "../network" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import open from "open" import { networkInterfaces } from "os" diff --git a/packages/opencode/src/cli/heap.ts b/packages/opencode/src/cli/heap.ts index e8ec8f1bd0fe..c31a7ffba8e7 100644 --- a/packages/opencode/src/cli/heap.ts +++ b/packages/opencode/src/cli/heap.ts @@ -1,7 +1,7 @@ import path from "path" import { writeHeapSnapshot } from "node:v8" -import { Flag } from "@opencode-ai/core/flag/flag" -import { Global } from "@opencode-ai/core/global" +import { Flag } from "@opencode-ai/util/flag" +import { Global } from "@opencode-ai/util/global" const MINUTE = 60_000 const LIMIT = 2 * 1024 * 1024 * 1024 diff --git a/packages/opencode/src/cli/upgrade.ts b/packages/opencode/src/cli/upgrade.ts index 62b230a63364..9cf3153ec28d 100644 --- a/packages/opencode/src/cli/upgrade.ts +++ b/packages/opencode/src/cli/upgrade.ts @@ -1,8 +1,8 @@ import { Config } from "@/config/config" import { AppRuntime } from "@/effect/app-runtime" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Installation } from "@/installation" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { GlobalBus } from "@/bus/global" export async function upgrade() { diff --git a/packages/opencode/src/command/index.ts b/packages/opencode/src/command/index.ts index 057754cd9ef8..3eca8cb9eebe 100644 --- a/packages/opencode/src/command/index.ts +++ b/packages/opencode/src/command/index.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import path from "path" import { InstanceState } from "@/effect/instance-state" import { EffectBridge } from "@/effect/bridge" diff --git a/packages/opencode/src/config/agent.ts b/packages/opencode/src/config/agent.ts index a74450ce076f..53cd834da2a5 100644 --- a/packages/opencode/src/config/agent.ts +++ b/packages/opencode/src/config/agent.ts @@ -2,7 +2,7 @@ export * as ConfigAgent from "./agent" import path from "path" import { Exit, Schema } from "effect" -import { Glob } from "@opencode-ai/core/util/glob" +import { Glob } from "@opencode-ai/util/glob" import { ConfigAgentV1 } from "@opencode-ai/core/v1/config/agent" import { configEntryNameFromPath } from "./entry-name" import * as ConfigMarkdown from "./markdown" diff --git a/packages/opencode/src/config/command.ts b/packages/opencode/src/config/command.ts index f32e146d91bd..6b8c916e5cd2 100644 --- a/packages/opencode/src/config/command.ts +++ b/packages/opencode/src/config/command.ts @@ -2,7 +2,7 @@ export * as ConfigCommand from "./command" import path from "path" import { Cause, Exit, Schema } from "effect" -import { Glob } from "@opencode-ai/core/util/glob" +import { Glob } from "@opencode-ai/util/glob" import { ConfigCommandV1 } from "@opencode-ai/core/v1/config/command" import { configEntryNameFromPath } from "./entry-name" import { InvalidError } from "@opencode-ai/core/v1/config/error" diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 86238f1a844c..08ebb981c706 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -1,26 +1,26 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import path from "path" import { pathToFileURL } from "url" import os from "os" import { mergeDeep } from "remeda" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import fsNode from "fs/promises" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Auth } from "../auth" import { Env } from "../env" import { applyEdits, modify } from "jsonc-parser" -import { InstallationLocal, InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationLocal, InstallationVersion } from "@opencode-ai/util/installation/version" import { existsSync } from "fs" import { Account } from "@/account/account" import { isRecord } from "@/util/record" import type { ConsoleState } from "@opencode-ai/core/v1/config/console-state" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { InstanceState } from "@/effect/instance-state" import { Context, Duration, Effect, Exit, Fiber, Layer, Option, Schema } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http" -import { EffectFlock } from "@opencode-ai/core/util/effect-flock" +import { EffectFlock } from "@opencode-ai/util/effect-flock" import { containsPath, type InstanceContext } from "../project/instance-context" import { ConfigV1 } from "@opencode-ai/core/v1/config/config" import { RemoteAuthError } from "@opencode-ai/core/v1/config/error" @@ -33,7 +33,7 @@ import { ConfigParse } from "./parse" import { ConfigPaths } from "./paths" import { ConfigPlugin } from "./plugin" import { ConfigVariable } from "./variable" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import { withTransientReadRetry } from "@/util/effect-http-client" // Custom merge function that concatenates array fields instead of replacing them diff --git a/packages/opencode/src/config/paths.ts b/packages/opencode/src/config/paths.ts index 11d90f1292ab..2ef1ef772e3a 100644 --- a/packages/opencode/src/config/paths.ts +++ b/packages/opencode/src/config/paths.ts @@ -1,11 +1,11 @@ export * as ConfigPaths from "./paths" import path from "path" -import { Flag } from "@opencode-ai/core/flag/flag" -import { Global } from "@opencode-ai/core/global" +import { Flag } from "@opencode-ai/util/flag" +import { Global } from "@opencode-ai/util/global" import { unique } from "remeda" import * as Effect from "effect/Effect" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" export const files = Effect.fn("ConfigPaths.projectFiles")(function* ( name: string, diff --git a/packages/opencode/src/config/plugin.ts b/packages/opencode/src/config/plugin.ts index 60bba4d63634..297b7525d178 100644 --- a/packages/opencode/src/config/plugin.ts +++ b/packages/opencode/src/config/plugin.ts @@ -1,4 +1,4 @@ -import { Glob } from "@opencode-ai/core/util/glob" +import { Glob } from "@opencode-ai/util/glob" import { ConfigPluginV1 } from "@opencode-ai/core/v1/config/plugin" import { pathToFileURL } from "url" import { isPathPluginSpec, parsePluginSpecifier, resolvePathPluginTarget } from "@/plugin/shared" diff --git a/packages/opencode/src/config/tui-migrate.ts b/packages/opencode/src/config/tui-migrate.ts index 63dd36ec629b..57690cc2ae5b 100644 --- a/packages/opencode/src/config/tui-migrate.ts +++ b/packages/opencode/src/config/tui-migrate.ts @@ -3,8 +3,8 @@ import { type ParseError as JsoncParseError, applyEdits, modify, parse as parseJ import { unique } from "remeda" import { Option, Schema } from "effect" import { TuiConfig } from "@opencode-ai/tui/config/v1" -import { Flag } from "@opencode-ai/core/flag/flag" -import { Global } from "@opencode-ai/core/global" +import { Flag } from "@opencode-ai/util/flag" +import { Global } from "@opencode-ai/util/global" import { Filesystem } from "@/util/filesystem" import * as ConfigPaths from "@/config/paths" diff --git a/packages/opencode/src/config/tui.ts b/packages/opencode/src/config/tui.ts index 2c69c91bb808..b644e1c7a685 100644 --- a/packages/opencode/src/config/tui.ts +++ b/packages/opencode/src/config/tui.ts @@ -3,24 +3,24 @@ export * as TuiConfig from "./tui" import path from "path" import { mergeDeep, unique } from "remeda" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Context, Effect, Fiber, Layer } from "effect" import { ConfigParse } from "@/config/parse" import * as ConfigPaths from "@/config/paths" import { migrateTuiConfig } from "./tui-migrate" import { resolveHostAttentionSoundPaths } from "./tui-host-attention" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { isRecord } from "@opencode-ai/tui/util/record" -import { Global } from "@opencode-ai/core/global" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { Global } from "@opencode-ai/util/global" +import { FSUtil } from "@opencode-ai/util/fs-util" import { CurrentWorkingDirectory } from "./tui-cwd" import { ConfigPlugin } from "@/config/plugin" import { TuiKeybind } from "@opencode-ai/tui/config/v1/keybind" -import { InstallationLocal, InstallationVersion } from "@opencode-ai/core/installation/version" -import { makeRuntime } from "@opencode-ai/core/effect/runtime" +import { InstallationLocal, InstallationVersion } from "@opencode-ai/util/installation/version" +import { makeRuntime } from "@opencode-ai/util/effect/runtime" import { Filesystem } from "@/util/filesystem" import { ConfigVariable } from "@/config/variable" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import { FormatError, FormatUnknownError } from "@/cli/error" import { TuiConfig } from "@opencode-ai/tui/config/v1" diff --git a/packages/opencode/src/control-plane/workspace.ts b/packages/opencode/src/control-plane/workspace.ts index 8f746e2568a8..f9289e571863 100644 --- a/packages/opencode/src/control-plane/workspace.ts +++ b/packages/opencode/src/control-plane/workspace.ts @@ -1,7 +1,7 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { Context, Effect, FiberMap, Iterable, Layer, Schema, Stream } from "effect" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { FetchHttpClient, HttpBody, HttpClient, HttpClientError, HttpClientRequest } from "effect/unstable/http" import { Database } from "@opencode-ai/core/database/database" import { asc } from "drizzle-orm" @@ -13,7 +13,7 @@ import { Auth } from "@/auth" import { EventV2 } from "@opencode-ai/core/event" import { EventV2Bridge } from "@/event-v2-bridge" import { EventSequenceTable, EventTable } from "@opencode-ai/core/event/sql" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { RuntimeFlags } from "@/effect/runtime-flags" import { ProjectV2 } from "@opencode-ai/core/project" import { Slug } from "@opencode-ai/core/util/slug" diff --git a/packages/opencode/src/effect/app-node-builder-v1.ts b/packages/opencode/src/effect/app-node-builder-v1.ts index 7573475d9a9f..76aa66ac5f00 100644 --- a/packages/opencode/src/effect/app-node-builder-v1.ts +++ b/packages/opencode/src/effect/app-node-builder-v1.ts @@ -1,5 +1,5 @@ import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { InstanceBootstrap } from "@/project/bootstrap" import { InstanceStore } from "@/project/instance-store" diff --git a/packages/opencode/src/effect/app-runtime.ts b/packages/opencode/src/effect/app-runtime.ts index 1ebed3b4720e..80c4a1338db7 100644 --- a/packages/opencode/src/effect/app-runtime.ts +++ b/packages/opencode/src/effect/app-runtime.ts @@ -1,8 +1,8 @@ import { Layer, ManagedRuntime } from "effect" import { attach } from "./run-service" -import * as Observability from "@opencode-ai/core/observability" +import * as Observability from "@opencode-ai/util/observability" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Database } from "@opencode-ai/core/database/database" import { Auth } from "@/auth" import { Account } from "@/account/account" @@ -45,12 +45,12 @@ import { Worktree } from "@/worktree" import { Installation } from "@/installation" import { ShareNext } from "@/share/share-next" import { SessionShare } from "@/share/session" -import { Npm } from "@opencode-ai/core/npm" -import { memoMap } from "@opencode-ai/core/effect/memo-map" +import { Npm } from "@opencode-ai/util/npm" +import { memoMap } from "@opencode-ai/util/effect/memo-map" import { Job } from "@/job" import { RuntimeFlags } from "@/effect/runtime-flags" import { EventV2Bridge } from "@/event-v2-bridge" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { AppNodeBuilderV1 } from "./app-node-builder-v1" import { SessionProjector } from "@opencode-ai/core/session/projector" diff --git a/packages/opencode/src/effect/bootstrap-runtime.ts b/packages/opencode/src/effect/bootstrap-runtime.ts index 57fe43b46ee3..f6a8c38f7529 100644 --- a/packages/opencode/src/effect/bootstrap-runtime.ts +++ b/packages/opencode/src/effect/bootstrap-runtime.ts @@ -1,6 +1,6 @@ import { Layer, ManagedRuntime } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Plugin } from "@/plugin" import { LSP } from "@/lsp/lsp" @@ -9,8 +9,8 @@ import { ShareNext } from "@/share/share-next" import { Vcs } from "@/project/vcs" import { Snapshot } from "@/snapshot" import { Config } from "@/config/config" -import * as Observability from "@opencode-ai/core/observability" -import { memoMap } from "@opencode-ai/core/effect/memo-map" +import * as Observability from "@opencode-ai/util/observability" +import { memoMap } from "@opencode-ai/util/effect/memo-map" export const BootstrapLayer = AppNodeBuilder.build( LayerNode.group([Config.node, Plugin.node, ShareNext.node, Format.node, LSP.node, Vcs.node, Snapshot.node]), diff --git a/packages/opencode/src/effect/run-service.ts b/packages/opencode/src/effect/run-service.ts index cfcc50081e3e..40e7acab04a9 100644 --- a/packages/opencode/src/effect/run-service.ts +++ b/packages/opencode/src/effect/run-service.ts @@ -1,10 +1,10 @@ import { Effect, Fiber, Layer, ManagedRuntime } from "effect" import * as Context from "effect/Context" import { InstanceRef, WorkspaceRef } from "./instance-ref" -import * as Observability from "@opencode-ai/core/observability" +import * as Observability from "@opencode-ai/util/observability" import { WorkspaceContext } from "@/control-plane/workspace-context" import type { InstanceContext } from "@/project/instance-context" -import { memoMap } from "@opencode-ai/core/effect/memo-map" +import { memoMap } from "@opencode-ai/util/effect/memo-map" type Refs = { instance?: InstanceContext diff --git a/packages/opencode/src/effect/runtime-flags.ts b/packages/opencode/src/effect/runtime-flags.ts index 95dc7f0b1889..f6ef809d698a 100644 --- a/packages/opencode/src/effect/runtime-flags.ts +++ b/packages/opencode/src/effect/runtime-flags.ts @@ -74,4 +74,4 @@ export const layer = (overrides: Partial = {}) => export const node = LayerNode.make({ service: Service, layer: Service.layer.pipe(Layer.orDie), deps: [] }) export * as RuntimeFlags from "./runtime-flags" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" diff --git a/packages/opencode/src/env/index.ts b/packages/opencode/src/env/index.ts index 5879f27fe37e..be1ab8365191 100644 --- a/packages/opencode/src/env/index.ts +++ b/packages/opencode/src/env/index.ts @@ -1,6 +1,6 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Context, Effect, Layer } from "effect" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { InstanceState } from "@/effect/instance-state" type State = Record diff --git a/packages/opencode/src/event-v2-bridge.ts b/packages/opencode/src/event-v2-bridge.ts index 8e65f2752df7..63e996edae9c 100644 --- a/packages/opencode/src/event-v2-bridge.ts +++ b/packages/opencode/src/event-v2-bridge.ts @@ -1,6 +1,6 @@ // Opencode publish boundary for core events. Attach routed instance location // so direct EventV2 consumers can isolate directory/workspace streams. -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { InstanceRef, WorkspaceRef } from "@/effect/instance-ref" import { GlobalBus } from "@/bus/global" import { EventV2 } from "@opencode-ai/core/event" diff --git a/packages/opencode/src/format/formatter.ts b/packages/opencode/src/format/formatter.ts index 3be6025d30f3..76189f85cbaa 100644 --- a/packages/opencode/src/format/formatter.ts +++ b/packages/opencode/src/format/formatter.ts @@ -1,4 +1,4 @@ -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import type { InstanceContext } from "../project/instance-context" import { Filesystem } from "@/util/filesystem" import { Process } from "@/util/process" diff --git a/packages/opencode/src/format/index.ts b/packages/opencode/src/format/index.ts index 4288f83efce9..a1048aac3e00 100644 --- a/packages/opencode/src/format/index.ts +++ b/packages/opencode/src/format/index.ts @@ -1,8 +1,8 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer, Context, Schema } from "effect" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { ChildProcess } from "effect/unstable/process" -import { AppProcess } from "@opencode-ai/core/process" +import { AppProcess } from "@opencode-ai/util/process" import { InstanceState } from "@/effect/instance-state" import path from "path" import { mergeDeep } from "remeda" diff --git a/packages/opencode/src/git/index.ts b/packages/opencode/src/git/index.ts index 968e394a959f..132fe7a60435 100644 --- a/packages/opencode/src/git/index.ts +++ b/packages/opencode/src/git/index.ts @@ -1,5 +1,5 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { AppProcess } from "@opencode-ai/core/process" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { AppProcess } from "@opencode-ai/util/process" import { Effect, Layer, Context, Stream } from "effect" import { ChildProcess } from "effect/unstable/process" diff --git a/packages/opencode/src/image/image.ts b/packages/opencode/src/image/image.ts index 744bd3fc9591..64da6b2f034f 100644 --- a/packages/opencode/src/image/image.ts +++ b/packages/opencode/src/image/image.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Config } from "@/config/config" import { SessionV1 } from "@opencode-ai/core/v1/session" import type { MessageV2 } from "@/session/message-v2" diff --git a/packages/opencode/src/index.ts b/packages/opencode/src/index.ts index 1a62f05c7a12..99042907c50c 100644 --- a/packages/opencode/src/index.ts +++ b/packages/opencode/src/index.ts @@ -9,7 +9,7 @@ import { UpgradeCommand } from "./cli/cmd/upgrade" import { UninstallCommand } from "./cli/cmd/uninstall" import { ModelsCommand } from "./cli/cmd/models" import { UI } from "./cli/ui" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { FormatError } from "./cli/error" import { ServeCommand } from "./cli/cmd/serve" import { DebugCommand } from "./cli/cmd/debug" diff --git a/packages/opencode/src/installation/index.ts b/packages/opencode/src/installation/index.ts index 4300220255b3..c07ac8844d52 100644 --- a/packages/opencode/src/installation/index.ts +++ b/packages/opencode/src/installation/index.ts @@ -1,18 +1,18 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { Effect, Layer, Schema, Context, Stream } from "effect" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { withTransientReadRetry } from "@/util/effect-http-client" import { errorMessage } from "@/util/error" import { ChildProcess } from "effect/unstable/process" -import { AppProcess } from "@opencode-ai/core/process" +import { AppProcess } from "@opencode-ai/util/process" import path from "path" -import { makeRuntime } from "@opencode-ai/core/effect/runtime" +import { makeRuntime } from "@opencode-ai/util/effect/runtime" import semver from "semver" -import { InstallationChannel, InstallationVersion } from "@opencode-ai/core/installation/version" -import { NpmConfig } from "@opencode-ai/core/npm-config" +import { InstallationChannel, InstallationVersion } from "@opencode-ai/util/installation/version" +import { NpmConfig } from "@opencode-ai/util/npm-config" import { InstallationEvent } from "@opencode-ai/schema/installation-event" export type Method = "curl" | "npm" | "yarn" | "pnpm" | "bun" | "brew" | "scoop" | "choco" | "unknown" diff --git a/packages/opencode/src/job.ts b/packages/opencode/src/job.ts index 6e7541fbd7b4..2aafeb68c226 100644 --- a/packages/opencode/src/job.ts +++ b/packages/opencode/src/job.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Service, make } from "@opencode-ai/core/job" import { InstanceState } from "@/effect/instance-state" import { Effect, Layer } from "effect" diff --git a/packages/opencode/src/lsp/lsp.ts b/packages/opencode/src/lsp/lsp.ts index 1ab3a0b82369..ff50ddfc7479 100644 --- a/packages/opencode/src/lsp/lsp.ts +++ b/packages/opencode/src/lsp/lsp.ts @@ -1,5 +1,5 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { EventV2Bridge } from "@/event-v2-bridge" import * as LSPClient from "./client" import path from "path" diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts index 2be68aa5a92d..cd8e461fd59b 100644 --- a/packages/opencode/src/lsp/server.ts +++ b/packages/opencode/src/lsp/server.ts @@ -1,7 +1,7 @@ import type { ChildProcessWithoutNullStreams } from "child_process" import path from "path" import os from "os" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { text } from "node:stream/consumers" import fs from "fs/promises" import { Filesystem } from "@/util/filesystem" @@ -11,7 +11,7 @@ import { Process } from "@/util/process" import { which } from "@opencode-ai/core/util/which" import { Module } from "@opencode-ai/core/util/module" import { spawn } from "./launch" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import type { RuntimeFlags } from "@/effect/runtime-flags" const pathExists = async (p: string) => diff --git a/packages/opencode/src/mcp/auth.ts b/packages/opencode/src/mcp/auth.ts index 808aa3029625..5356f75986d7 100644 --- a/packages/opencode/src/mcp/auth.ts +++ b/packages/opencode/src/mcp/auth.ts @@ -1,10 +1,10 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import path from "path" -import { serviceUse } from "@opencode-ai/core/effect/service-use" -import { Global } from "@opencode-ai/core/global" +import { serviceUse } from "@opencode-ai/util/effect/service-use" +import { Global } from "@opencode-ai/util/global" import { Effect, Layer, Context, Option, Schema } from "effect" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { EffectFlock } from "@opencode-ai/core/util/effect-flock" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { EffectFlock } from "@opencode-ai/util/effect-flock" export const Tokens = Schema.Struct({ accessToken: Schema.mutableKey(Schema.String), diff --git a/packages/opencode/src/mcp/browser.ts b/packages/opencode/src/mcp/browser.ts index 5760d8cbf9a0..c22120d1106a 100644 --- a/packages/opencode/src/mcp/browser.ts +++ b/packages/opencode/src/mcp/browser.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Context, Effect, Layer } from "effect" import open from "open" diff --git a/packages/opencode/src/mcp/index.ts b/packages/opencode/src/mcp/index.ts index 05f12fa2ee45..239cf97c9fdf 100644 --- a/packages/opencode/src/mcp/index.ts +++ b/packages/opencode/src/mcp/index.ts @@ -1,8 +1,8 @@ import path from "node:path" import { pathToFileURL } from "node:url" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { ConfigV1 } from "@opencode-ai/core/v1/config/config" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { Client, type ClientOptions } from "@modelcontextprotocol/sdk/client/index.js" import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js" import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js" @@ -18,9 +18,9 @@ import { import { Config } from "@/config/config" import { ConfigMCPV1 } from "@opencode-ai/core/v1/config/mcp" import { NamedError } from "@opencode-ai/core/util/error" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { withTimeout } from "@/util/timeout" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { McpOAuthPendingProvider, McpOAuthProvider, OAUTH_CALLBACK_PATH } from "./oauth-provider" import { McpOAuthCallback } from "./oauth-callback" import { McpAuth } from "./auth" @@ -30,7 +30,7 @@ import { Cause, Effect, Exit, Layer, Context, Schema, Stream } from "effect" import { EffectBridge } from "@/effect/bridge" import { InstanceState } from "@/effect/instance-state" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { McpCatalog } from "./catalog" import { McpEvent } from "@opencode-ai/schema/mcp-event" import { McpBrowser } from "./browser" diff --git a/packages/opencode/src/patch/index.ts b/packages/opencode/src/patch/index.ts index 66797d4f89ba..23a760896d0e 100644 --- a/packages/opencode/src/patch/index.ts +++ b/packages/opencode/src/patch/index.ts @@ -1,6 +1,6 @@ import { Effect, Schema } from "effect" import * as path from "path" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import * as Bom from "../util/bom" export const PatchSchema = Schema.Struct({ diff --git a/packages/opencode/src/permission/index.ts b/packages/opencode/src/permission/index.ts index 2e27ff2424db..8afff12c06d1 100644 --- a/packages/opencode/src/permission/index.ts +++ b/packages/opencode/src/permission/index.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { ConfigPermissionV1 } from "@opencode-ai/core/v1/config/permission" import { InstanceState } from "@/effect/instance-state" import { Wildcard } from "@opencode-ai/core/util/wildcard" diff --git a/packages/opencode/src/plugin/digitalocean.ts b/packages/opencode/src/plugin/digitalocean.ts index af241781e61b..9514ad79a75f 100644 --- a/packages/opencode/src/plugin/digitalocean.ts +++ b/packages/opencode/src/plugin/digitalocean.ts @@ -1,6 +1,6 @@ import type { Hooks, PluginInput } from "@opencode-ai/plugin" import type { Model } from "@opencode-ai/sdk/v2" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { OauthCallbackPage } from "@opencode-ai/core/oauth/page" import { createServer } from "http" import open from "open" diff --git a/packages/opencode/src/plugin/github-copilot/copilot.ts b/packages/opencode/src/plugin/github-copilot/copilot.ts index 9c744db89b29..a6c10bbb4bba 100644 --- a/packages/opencode/src/plugin/github-copilot/copilot.ts +++ b/packages/opencode/src/plugin/github-copilot/copilot.ts @@ -1,6 +1,6 @@ import type { Hooks, PluginInput } from "@opencode-ai/plugin" import type { Model } from "@opencode-ai/sdk/v2" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { iife } from "@/util/iife" import { setTimeout as sleep } from "node:timers/promises" import { CopilotModels } from "./models" diff --git a/packages/opencode/src/plugin/index.ts b/packages/opencode/src/plugin/index.ts index 1558c707c3f7..50564d1d0b38 100644 --- a/packages/opencode/src/plugin/index.ts +++ b/packages/opencode/src/plugin/index.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import type { Hooks, PluginInput, @@ -30,7 +30,7 @@ import { registerAdapter } from "@/control-plane/adapters" import type { WorkspaceAdapter } from "@/control-plane/types" import { RuntimeFlags } from "@/effect/runtime-flags" import { EventV2Bridge } from "@/event-v2-bridge" -import { InstallationChannel } from "@opencode-ai/core/installation/version" +import { InstallationChannel } from "@opencode-ai/util/installation/version" type State = { hooks: Hooks[] diff --git a/packages/opencode/src/plugin/install.ts b/packages/opencode/src/plugin/install.ts index f07b78bc36f7..4d2d93b3b0fc 100644 --- a/packages/opencode/src/plugin/install.ts +++ b/packages/opencode/src/plugin/install.ts @@ -8,9 +8,9 @@ import { } from "jsonc-parser" import * as ConfigPaths from "@/config/paths" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Filesystem } from "@/util/filesystem" -import { Flock } from "@opencode-ai/core/util/flock" +import { Flock } from "@opencode-ai/util/flock" import { isRecord } from "@/util/record" import { parsePluginSpecifier, readPackageThemes, readPluginPackage, resolvePluginTarget } from "./shared" diff --git a/packages/opencode/src/plugin/loader.ts b/packages/opencode/src/plugin/loader.ts index 94876b4d0cb8..e36b4ba852e8 100644 --- a/packages/opencode/src/plugin/loader.ts +++ b/packages/opencode/src/plugin/loader.ts @@ -10,7 +10,7 @@ import { } from "./shared" import { ConfigPlugin } from "@/config/plugin" import { ConfigPluginV1 } from "@opencode-ai/core/v1/config/plugin" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" export namespace PluginLoader { // A normalized plugin declaration derived from config before any filesystem or npm work happens. diff --git a/packages/opencode/src/plugin/meta.ts b/packages/opencode/src/plugin/meta.ts index 54f784d1791a..c3027da2160c 100644 --- a/packages/opencode/src/plugin/meta.ts +++ b/packages/opencode/src/plugin/meta.ts @@ -1,10 +1,10 @@ import path from "path" import { fileURLToPath } from "url" -import { Flag } from "@opencode-ai/core/flag/flag" -import { Global } from "@opencode-ai/core/global" +import { Flag } from "@opencode-ai/util/flag" +import { Global } from "@opencode-ai/util/global" import { Filesystem } from "@/util/filesystem" -import { Flock } from "@opencode-ai/core/util/flock" +import { Flock } from "@opencode-ai/util/flock" import { parsePluginSpecifier, pluginSource } from "./shared" diff --git a/packages/opencode/src/plugin/openai/codex.ts b/packages/opencode/src/plugin/openai/codex.ts index d16b7495654c..07e87ea4839f 100644 --- a/packages/opencode/src/plugin/openai/codex.ts +++ b/packages/opencode/src/plugin/openai/codex.ts @@ -1,5 +1,5 @@ import type { Hooks, PluginInput } from "@opencode-ai/plugin" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { OAUTH_DUMMY_KEY } from "../../auth" import os from "os" import { setTimeout as sleep } from "node:timers/promises" diff --git a/packages/opencode/src/plugin/shared.ts b/packages/opencode/src/plugin/shared.ts index 1a519359bde6..be37af3250d8 100644 --- a/packages/opencode/src/plugin/shared.ts +++ b/packages/opencode/src/plugin/shared.ts @@ -4,7 +4,7 @@ import npa from "npm-package-arg" import semver from "semver" import { Filesystem } from "@/util/filesystem" import { isRecord } from "@/util/record" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" // Old npm package names for plugins that are now built-in export const DEPRECATED_PLUGIN_PACKAGES = ["opencode-openai-codex-auth", "opencode-copilot-auth"] diff --git a/packages/opencode/src/plugin/snowflake-cortex.ts b/packages/opencode/src/plugin/snowflake-cortex.ts index 09f107ed7b96..42f3b92d8a9a 100644 --- a/packages/opencode/src/plugin/snowflake-cortex.ts +++ b/packages/opencode/src/plugin/snowflake-cortex.ts @@ -1,6 +1,6 @@ import type { Hooks, PluginInput } from "@opencode-ai/plugin" import { OAUTH_DUMMY_KEY } from "../auth" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { OauthCallbackPage } from "@opencode-ai/core/oauth/page" import { createServer } from "http" import open from "open" diff --git a/packages/opencode/src/plugin/tui/runtime.ts b/packages/opencode/src/plugin/tui/runtime.ts index e39484dd1956..067bb3b20ef8 100644 --- a/packages/opencode/src/plugin/tui/runtime.ts +++ b/packages/opencode/src/plugin/tui/runtime.ts @@ -30,11 +30,11 @@ import { PluginLoader } from "@/plugin/loader" import { PluginMeta } from "@/plugin/meta" import { installPlugin as installModulePlugin, patchPluginConfig, readPluginManifest } from "@/plugin/install" import { hasTheme, upsertTheme } from "@opencode-ai/tui/context/theme" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Filesystem } from "@/util/filesystem" import { Process } from "@/util/process" -import { Flock } from "@opencode-ai/core/util/flock" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flock } from "@opencode-ai/util/flock" +import { Flag } from "@opencode-ai/util/flag" import { internalTuiPlugins, type InternalTuiPlugin } from "./internal" import type { HostPluginApi, HostSlots } from "@opencode-ai/tui/plugin/slots" import { ConfigPlugin } from "@/config/plugin" diff --git a/packages/opencode/src/plugin/xai.ts b/packages/opencode/src/plugin/xai.ts index 23233b5df79e..cac75e40ee79 100644 --- a/packages/opencode/src/plugin/xai.ts +++ b/packages/opencode/src/plugin/xai.ts @@ -1,7 +1,7 @@ import type { Hooks, PluginInput } from "@opencode-ai/plugin" import { OAUTH_DUMMY_KEY } from "../auth" import { createServer } from "http" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { OauthCallbackPage } from "@opencode-ai/core/oauth/page" // Public Grok-CLI OAuth client. xAI's auth server rejects loopback OAuth from diff --git a/packages/opencode/src/project/bootstrap.ts b/packages/opencode/src/project/bootstrap.ts index acf0caed3cdf..b8913d3320ba 100644 --- a/packages/opencode/src/project/bootstrap.ts +++ b/packages/opencode/src/project/bootstrap.ts @@ -1,4 +1,4 @@ -import { makeGlobalNode } from "@opencode-ai/core/effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { Plugin } from "../plugin" import { Format } from "../format" import { LSP } from "@/lsp/lsp" diff --git a/packages/opencode/src/project/instance-context.ts b/packages/opencode/src/project/instance-context.ts index 18ea39e16e91..33648e8b9cec 100644 --- a/packages/opencode/src/project/instance-context.ts +++ b/packages/opencode/src/project/instance-context.ts @@ -1,5 +1,5 @@ import { LocalContext } from "@/util/local-context" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import type * as Project from "./project" export interface InstanceContext { diff --git a/packages/opencode/src/project/instance-store.ts b/packages/opencode/src/project/instance-store.ts index 720549ddaff7..063f4b627e6e 100644 --- a/packages/opencode/src/project/instance-store.ts +++ b/packages/opencode/src/project/instance-store.ts @@ -1,11 +1,11 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { makeGlobalNode, Node } from "@opencode-ai/core/effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { makeGlobalNode, Node } from "@opencode-ai/util/effect/app-node" import { GlobalBus } from "@/bus/global" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { WorkspaceContext } from "@/control-plane/workspace-context" import { InstanceRef } from "@/effect/instance-ref" import { disposeInstance as runDisposers } from "@/effect/instance-registry" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Context, Deferred, Duration, Effect, Exit, Layer, Scope } from "effect" import { type InstanceContext } from "./instance-context" import { InstanceBootstrap } from "./bootstrap-service" diff --git a/packages/opencode/src/project/project.ts b/packages/opencode/src/project/project.ts index 19d79445f77b..b101aa6dba7c 100644 --- a/packages/opencode/src/project/project.ts +++ b/packages/opencode/src/project/project.ts @@ -1,23 +1,23 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { and, eq, sql } from "drizzle-orm" import { Database } from "@opencode-ai/core/database/database" import { ProjectDirectoryTable, ProjectTable } from "@opencode-ai/core/project/sql" import { ProjectDirectories } from "@opencode-ai/core/project/directories" import { SessionTable } from "@opencode-ai/core/session/sql" import { WorkspaceTable } from "@opencode-ai/core/control-plane/workspace.sql" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { GlobalBus } from "@/bus/global" import { which } from "@opencode-ai/core/util/which" import { Command } from "@/command" import { InstanceState } from "@/effect/instance-state" import { Effect, Layer, Scope, Context, Stream, Types, Schema } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { AppProcess } from "@opencode-ai/core/process" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { AppProcess } from "@opencode-ai/util/process" import { ProjectV2 } from "@opencode-ai/core/project" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { AbsolutePath } from "@opencode-ai/core/schema" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { RuntimeFlags } from "@/effect/runtime-flags" import { EventV2Bridge } from "@/event-v2-bridge" import { EventV2 } from "@opencode-ai/core/event" diff --git a/packages/opencode/src/project/vcs.ts b/packages/opencode/src/project/vcs.ts index eca56c0501a1..a9605cd4f29a 100644 --- a/packages/opencode/src/project/vcs.ts +++ b/packages/opencode/src/project/vcs.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer, Context, Schema, Scope } from "effect" import { formatPatch, structuredPatch } from "diff" import { InstanceState } from "@/effect/instance-state" diff --git a/packages/opencode/src/provider/auth.ts b/packages/opencode/src/provider/auth.ts index 416a3ea7b0db..41595097b954 100644 --- a/packages/opencode/src/provider/auth.ts +++ b/packages/opencode/src/provider/auth.ts @@ -1,6 +1,6 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import type { AuthOAuthResult, Hooks } from "@opencode-ai/plugin" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { Auth } from "@/auth" import { InstanceState } from "@/effect/instance-state" import { optional } from "@opencode-ai/core/schema" diff --git a/packages/opencode/src/provider/provider.ts b/packages/opencode/src/provider/provider.ts index f70a9ac3c141..7ed39a6ef90e 100644 --- a/packages/opencode/src/provider/provider.ts +++ b/packages/opencode/src/provider/provider.ts @@ -1,28 +1,28 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import os from "os" import { ConfigV1 } from "@opencode-ai/core/v1/config/config" import fuzzysort from "fuzzysort" import { Config } from "@/config/config" import { mapValues, mergeDeep, omit, pickBy, sortBy } from "remeda" import { NoSuchModelError, type Provider as SDK } from "ai" -import { Npm } from "@opencode-ai/core/npm" -import { Hash } from "@opencode-ai/core/util/hash" +import { Npm } from "@opencode-ai/util/npm" +import { Hash } from "@opencode-ai/util/hash" import { Plugin } from "../plugin" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { type LanguageModelV3 } from "@ai-sdk/provider" import { ModelsDev } from "@opencode-ai/core/models-dev" import { Auth } from "../auth" import { Env } from "../env" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { iife } from "@/util/iife" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import path from "path" import { pathToFileURL } from "url" import { Effect, Layer, Context, Schema, Types } from "effect" import { EffectBridge } from "@/effect/bridge" import { InstanceState } from "@/effect/instance-state" import { EffectPromise } from "@/effect/promise" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { isRecord } from "@/util/record" import { optional } from "@opencode-ai/core/schema" import { ProviderTransform } from "./transform" diff --git a/packages/opencode/src/question/index.ts b/packages/opencode/src/question/index.ts index 8afc141072d5..063248984517 100644 --- a/packages/opencode/src/question/index.ts +++ b/packages/opencode/src/question/index.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Deferred, Effect, Layer, Schema, Context } from "effect" import { InstanceState } from "@/effect/instance-state" import { SessionID } from "@/session/schema" diff --git a/packages/opencode/src/server/auth.ts b/packages/opencode/src/server/auth.ts index 9630ddbe20ed..1142726ded70 100644 --- a/packages/opencode/src/server/auth.ts +++ b/packages/opencode/src/server/auth.ts @@ -1,7 +1,7 @@ export * as ServerAuth from "./auth" import { ConfigService } from "@/effect/config-service" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Config as EffectConfig, Context, Option, Redacted } from "effect" export type Credentials = { diff --git a/packages/opencode/src/server/routes/instance/httpapi/handlers/file.ts b/packages/opencode/src/server/routes/instance/httpapi/handlers/file.ts index 6a826022a0a0..441a717e0bab 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/handlers/file.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/handlers/file.ts @@ -2,7 +2,7 @@ import * as InstanceState from "@/effect/instance-state" import { FileSystem } from "@opencode-ai/core/filesystem" import { LocationServiceMap, locationServiceMapLayer } from "@opencode-ai/core/location-services" import { Ripgrep } from "@opencode-ai/core/ripgrep" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Location } from "@opencode-ai/core/location" import { AbsolutePath, RelativePath } from "@opencode-ai/core/schema" import { Effect, Layer, Option } from "effect" diff --git a/packages/opencode/src/server/routes/instance/httpapi/handlers/global.ts b/packages/opencode/src/server/routes/instance/httpapi/handlers/global.ts index c1f588d5a146..31371d06ed80 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/handlers/global.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/handlers/global.ts @@ -4,7 +4,7 @@ import { EffectBridge } from "@/effect/bridge" import { EventV2 } from "@opencode-ai/core/event" import { Installation } from "@/installation" import { disposeAllInstancesAndEmitGlobalDisposed } from "@/server/global-lifecycle" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Effect, Queue, Schema } from "effect" import * as Stream from "effect/Stream" import { HttpServerRequest, HttpServerResponse } from "effect/unstable/http" diff --git a/packages/opencode/src/server/routes/instance/httpapi/handlers/instance.ts b/packages/opencode/src/server/routes/instance/httpapi/handlers/instance.ts index f851b3a31005..e319134d9913 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/handlers/instance.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/handlers/instance.ts @@ -2,7 +2,7 @@ import { Agent } from "@/agent/agent" import { Command } from "@/command" import * as InstanceState from "@/effect/instance-state" import { Format } from "@/format" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { LSP } from "@/lsp/lsp" import { Vcs } from "@/project/vcs" import { Skill } from "@/skill" diff --git a/packages/opencode/src/server/routes/instance/httpapi/middleware/fence.ts b/packages/opencode/src/server/routes/instance/httpapi/middleware/fence.ts index c5cbc7b82083..e23f13db626d 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/middleware/fence.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/middleware/fence.ts @@ -1,4 +1,4 @@ -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Database } from "@opencode-ai/core/database/database" import { Effect } from "effect" import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/unstable/http" diff --git a/packages/opencode/src/server/routes/instance/httpapi/middleware/workspace-routing.ts b/packages/opencode/src/server/routes/instance/httpapi/middleware/workspace-routing.ts index 873abd834938..2081a0ff0abf 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/middleware/workspace-routing.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/middleware/workspace-routing.ts @@ -7,7 +7,7 @@ import { HttpApiProxy } from "./proxy" import * as Fence from "@/server/shared/fence" import { getWorkspaceRouteSessionID, isLocalWorkspaceRoute, workspaceProxyURL } from "@/server/shared/workspace-routing" import { NotFoundError } from "@/storage/storage" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Context, Data, Effect, Layer, Option, Schema } from "effect" import { HttpClient, HttpServerRequest, HttpServerResponse } from "effect/unstable/http" import { HttpApiMiddleware } from "effect/unstable/httpapi" diff --git a/packages/opencode/src/server/routes/instance/httpapi/server.ts b/packages/opencode/src/server/routes/instance/httpapi/server.ts index fad59961b1af..bbfc54d2cb76 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/server.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/server.ts @@ -2,8 +2,8 @@ import { Config as EffectConfig, Context, Effect, Layer } from "effect" import { HttpApiBuilder, OpenApi } from "effect/unstable/httpapi" import { HttpClient, HttpMiddleware, HttpRouter, HttpServer, HttpServerResponse } from "effect/unstable/http" import * as Socket from "effect/unstable/socket/Socket" -import { FSUtil } from "@opencode-ai/core/fs-util" -import * as Observability from "@opencode-ai/core/observability" +import { FSUtil } from "@opencode-ai/util/fs-util" +import * as Observability from "@opencode-ai/util/observability" import { Account } from "@/account/account" import { Agent } from "@/agent/agent" import { Auth } from "@/auth" @@ -51,11 +51,11 @@ import { RuntimeFlags } from "@/effect/runtime-flags" import { MoveSession } from "@opencode-ai/core/control-plane/move-session" import { Database } from "@opencode-ai/core/database/database" import { AppNodeBuilderV1 } from "@/effect/app-node-builder-v1" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { EventV2 } from "@opencode-ai/core/event" import { ModelsDev } from "@opencode-ai/core/models-dev" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import { PermissionSaved } from "@opencode-ai/core/permission/saved" import { ProjectV2 } from "@opencode-ai/core/project" import { ProjectCopy } from "@opencode-ai/core/project/copy" @@ -108,7 +108,7 @@ import { workspaceHandlers } from "./handlers/workspace" import { instanceContextLayer } from "./middleware/instance-context" import { workspaceRoutingLayer } from "./middleware/workspace-routing" import { disposeMiddleware } from "./lifecycle" -import { memoMap } from "@opencode-ai/core/effect/memo-map" +import { memoMap } from "@opencode-ai/util/effect/memo-map" import { compressionLayer } from "./middleware/compression" import { corsVaryFix } from "./middleware/cors-vary" import { errorLayer } from "./middleware/error" diff --git a/packages/opencode/src/server/routes/instance/httpapi/websocket-tracker.ts b/packages/opencode/src/server/routes/instance/httpapi/websocket-tracker.ts index 7e8eed89a4f7..f845e8e7f13e 100644 --- a/packages/opencode/src/server/routes/instance/httpapi/websocket-tracker.ts +++ b/packages/opencode/src/server/routes/instance/httpapi/websocket-tracker.ts @@ -1,5 +1,5 @@ import { Context, Effect, Layer, Option } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import * as Socket from "effect/unstable/socket/Socket" export const SERVER_CLOSING_EVENT = () => new Socket.CloseEvent(1001, "server closing") diff --git a/packages/opencode/src/server/shared/ui.ts b/packages/opencode/src/server/shared/ui.ts index c2fd3b86375c..1922f5c141cb 100644 --- a/packages/opencode/src/server/shared/ui.ts +++ b/packages/opencode/src/server/shared/ui.ts @@ -1,4 +1,4 @@ -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Effect, Stream } from "effect" import { HttpBody, HttpClient, HttpClientRequest, HttpServerRequest, HttpServerResponse } from "effect/unstable/http" import { createHash } from "node:crypto" diff --git a/packages/opencode/src/session/compaction.ts b/packages/opencode/src/session/compaction.ts index fa439e4efffa..d3c1a6ed842e 100644 --- a/packages/opencode/src/session/compaction.ts +++ b/packages/opencode/src/session/compaction.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { SessionV1 } from "@opencode-ai/core/v1/session" import { ConfigV1 } from "@opencode-ai/core/v1/config/config" import { Session } from "./session" @@ -15,7 +15,7 @@ import { NotFoundError } from "@/storage/storage" import { Effect, Layer, Context } from "effect" import { InstanceState } from "@/effect/instance-state" import { isOverflow as overflow, usable } from "./overflow" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { RuntimeFlags } from "@/effect/runtime-flags" import { EventV2Bridge } from "@/event-v2-bridge" import { ProviderV2 } from "@opencode-ai/core/provider" diff --git a/packages/opencode/src/session/instruction.ts b/packages/opencode/src/session/instruction.ts index ebdae0dbe371..c32639d9483b 100644 --- a/packages/opencode/src/session/instruction.ts +++ b/packages/opencode/src/session/instruction.ts @@ -1,5 +1,5 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import path from "path" import { SessionV1 } from "@opencode-ai/core/v1/session" import { Effect, Layer, Context } from "effect" @@ -7,10 +7,10 @@ import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/ import { Config } from "@/config/config" import { InstanceState } from "@/effect/instance-state" import { RuntimeFlags } from "@/effect/runtime-flags" -import { Flag } from "@opencode-ai/core/flag/flag" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { Flag } from "@opencode-ai/util/flag" +import { FSUtil } from "@opencode-ai/util/fs-util" import { withTransientReadRetry } from "@/util/effect-http-client" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import type { MessageV2 } from "./message-v2" import type { MessageID } from "./schema" diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts index d8e0bdc831c4..d24b691f6b75 100644 --- a/packages/opencode/src/session/llm.ts +++ b/packages/opencode/src/session/llm.ts @@ -1,9 +1,9 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { llmClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { llmClient } from "@opencode-ai/util/effect/app-node-platform" import { PermissionV1 } from "@opencode-ai/core/v1/permission" import { Provider } from "@/provider/provider" import { SessionV1 } from "@opencode-ai/core/v1/session" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { Context, Effect, Layer } from "effect" import * as Stream from "effect/Stream" import { streamText, wrapLanguageModel, type ModelMessage, type Tool } from "ai" diff --git a/packages/opencode/src/session/llm/request.ts b/packages/opencode/src/session/llm/request.ts index 4f93411107df..3b6f8d208421 100644 --- a/packages/opencode/src/session/llm/request.ts +++ b/packages/opencode/src/session/llm/request.ts @@ -9,7 +9,7 @@ import type { MessageV2 } from "../message-v2" import type { Provider } from "@/provider/provider" import { ProviderTransform } from "@/provider/transform" import { SystemPrompt } from "../system" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Effect, Record } from "effect" import { jsonSchema, tool as aiTool, type ModelMessage, type Tool } from "ai" import type { Plugin } from "@/plugin" diff --git a/packages/opencode/src/session/message-v2.ts b/packages/opencode/src/session/message-v2.ts index 1bea9f52c3ec..db5496daca20 100644 --- a/packages/opencode/src/session/message-v2.ts +++ b/packages/opencode/src/session/message-v2.ts @@ -19,7 +19,7 @@ import { import { NamedError } from "@opencode-ai/core/util/error" import { APICallError, convertToModelMessages, LoadAPIKeyError, type ModelMessage, type UIMessage } from "ai" import { Database } from "@opencode-ai/core/database/database" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { NotFoundError } from "@/storage/storage" import { and } from "drizzle-orm" import { desc } from "drizzle-orm" diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index cd133466177d..7916938bc9f6 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { PermissionV1 } from "@opencode-ai/core/v1/permission" import { Image } from "@/image/image" import { SessionV1 } from "@opencode-ai/core/v1/session" diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 8b025cc2f029..7144fda6af50 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { PermissionV1 } from "@opencode-ai/core/v1/permission" import path from "path" import { SessionV1 } from "@opencode-ai/core/v1/session" @@ -22,7 +22,7 @@ import { MCP } from "../mcp" import { LSP } from "@/lsp/lsp" import { ulid } from "ulid" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import * as Stream from "effect/Stream" import { Command } from "../command" import { pathToFileURL, fileURLToPath } from "url" @@ -37,7 +37,7 @@ import { SessionStatus } from "./status" import { LLM } from "./llm" import { ShellSelect } from "@opencode-ai/core/shell/select" import { ShellID } from "@/tool/shell/id" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Truncate } from "@/tool/truncate" import { Image } from "@/image/image" import { decodeDataUrl } from "@/util/data-url" diff --git a/packages/opencode/src/session/reminders.ts b/packages/opencode/src/session/reminders.ts index f5484b8e9ba4..2b2836055c29 100644 --- a/packages/opencode/src/session/reminders.ts +++ b/packages/opencode/src/session/reminders.ts @@ -2,7 +2,7 @@ import path from "path" import { SessionV1 } from "@opencode-ai/core/v1/session" import { Effect } from "effect" import { Agent } from "@/agent/agent" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { InstanceState } from "@/effect/instance-state" import { RuntimeFlags } from "@/effect/runtime-flags" import { PartID } from "./schema" diff --git a/packages/opencode/src/session/revert.ts b/packages/opencode/src/session/revert.ts index 79fef2cda97c..bbf5dad11a03 100644 --- a/packages/opencode/src/session/revert.ts +++ b/packages/opencode/src/session/revert.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer, Context, Schema } from "effect" import { SessionV1 } from "@opencode-ai/core/v1/session" import { EventV2Bridge } from "@/event-v2-bridge" diff --git a/packages/opencode/src/session/run-state.ts b/packages/opencode/src/session/run-state.ts index a82218947771..a527bc37ba7b 100644 --- a/packages/opencode/src/session/run-state.ts +++ b/packages/opencode/src/session/run-state.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { InstanceState } from "@/effect/instance-state" import { SessionV1 } from "@opencode-ai/core/v1/session" import { Runner } from "@/effect/runner" diff --git a/packages/opencode/src/session/session.ts b/packages/opencode/src/session/session.ts index d9f27ddaeffb..d927a580f501 100644 --- a/packages/opencode/src/session/session.ts +++ b/packages/opencode/src/session/session.ts @@ -1,16 +1,16 @@ export { isDefaultTitle } from "./title" import { createDefaultTitle } from "./title" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { PermissionV1 } from "@opencode-ai/core/v1/permission" import { Slug } from "@opencode-ai/core/util/slug" import { SessionV1 } from "@opencode-ai/core/v1/session" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import path from "path" import { Job } from "@/job" import { Decimal } from "decimal.js" import type { ProviderMetadata, Usage } from "@opencode-ai/ai" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Database } from "@opencode-ai/core/database/database" import { EventV2Bridge } from "@/event-v2-bridge" import { SessionV2 } from "@opencode-ai/core/session" @@ -38,7 +38,7 @@ import { WorkspaceV2 } from "@opencode-ai/core/workspace" import { SessionID, MessageID, PartID } from "./schema" import type { Provider } from "@/provider/provider" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Effect, Layer, Option, Context, Schema, Types } from "effect" import { NonNegativeInt, optional } from "@opencode-ai/core/schema" import { RuntimeFlags } from "@/effect/runtime-flags" diff --git a/packages/opencode/src/session/status.ts b/packages/opencode/src/session/status.ts index 11140acfeef5..a359c6517e22 100644 --- a/packages/opencode/src/session/status.ts +++ b/packages/opencode/src/session/status.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { InstanceState } from "@/effect/instance-state" import { SessionID } from "./schema" import { Effect, Layer, Context } from "effect" diff --git a/packages/opencode/src/session/summary.ts b/packages/opencode/src/session/summary.ts index 6484730d0bd5..6bd0aa7253b7 100644 --- a/packages/opencode/src/session/summary.ts +++ b/packages/opencode/src/session/summary.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer, Context, Schema } from "effect" import { SessionV1 } from "@opencode-ai/core/v1/session" import { EventV2Bridge } from "@/event-v2-bridge" diff --git a/packages/opencode/src/session/system.ts b/packages/opencode/src/session/system.ts index b94e79426585..b3954fde1436 100644 --- a/packages/opencode/src/session/system.ts +++ b/packages/opencode/src/session/system.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Context, Effect, Layer } from "effect" import { InstanceState } from "@/effect/instance-state" diff --git a/packages/opencode/src/share/session.ts b/packages/opencode/src/share/session.ts index a4ef77fbfd2f..0c8c0046ba83 100644 --- a/packages/opencode/src/share/session.ts +++ b/packages/opencode/src/share/session.ts @@ -1,4 +1,4 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Session } from "@/session/session" import { SessionID } from "@/session/schema" import { Effect, Layer, Scope, Context } from "effect" diff --git a/packages/opencode/src/share/share-next.ts b/packages/opencode/src/share/share-next.ts index a42c367ec2ce..d2b153569f7e 100644 --- a/packages/opencode/src/share/share-next.ts +++ b/packages/opencode/src/share/share-next.ts @@ -1,7 +1,7 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import type * as SDK from "@opencode-ai/sdk/v2" -import { serviceUse } from "@opencode-ai/core/effect/service-use" +import { serviceUse } from "@opencode-ai/util/effect/service-use" import { Effect, Exit, Layer, Option, Schema, Scope, Context, Stream } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { Account } from "@/account/account" diff --git a/packages/opencode/src/skill/discovery.ts b/packages/opencode/src/skill/discovery.ts index b56a67610f82..e57da2312efe 100644 --- a/packages/opencode/src/skill/discovery.ts +++ b/packages/opencode/src/skill/discovery.ts @@ -1,11 +1,11 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient, path } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient, path } from "@opencode-ai/util/effect/app-node-platform" import { NodePath } from "@effect/platform-node" import { Effect, Layer, Path, Schema, Context } from "effect" import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { withTransientReadRetry } from "@/util/effect-http-client" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" const skillConcurrency = 4 const fileConcurrency = 8 diff --git a/packages/opencode/src/skill/index.ts b/packages/opencode/src/skill/index.ts index e95e8c27a138..a385866c0e2f 100644 --- a/packages/opencode/src/skill/index.ts +++ b/packages/opencode/src/skill/index.ts @@ -1,19 +1,19 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import path from "path" import { Effect, Layer, Context, Schema } from "effect" import { NamedError } from "@opencode-ai/core/util/error" import type { Agent } from "@/agent/agent" import { EventV2Bridge } from "@/event-v2-bridge" import { InstanceState } from "@/effect/instance-state" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { SkillPlugin } from "@opencode-ai/core/plugin/skill" import { Permission } from "@/permission" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Config } from "@/config/config" import { FrontmatterError } from "@opencode-ai/core/v1/config/error" import { ConfigMarkdown } from "@/config/markdown" import { RuntimeFlags } from "@/effect/runtime-flags" -import { Glob } from "@opencode-ai/core/util/glob" +import { Glob } from "@opencode-ai/util/glob" import { Discovery } from "./discovery" import { isRecord } from "@/util/record" import { escapeHtml } from "@/util/html" diff --git a/packages/opencode/src/snapshot/index.ts b/packages/opencode/src/snapshot/index.ts index f393caa1a7d0..7d2c8c137d75 100644 --- a/packages/opencode/src/snapshot/index.ts +++ b/packages/opencode/src/snapshot/index.ts @@ -1,14 +1,14 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Duration, Effect, Layer, Schedule, Schema, Semaphore, Context } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { formatPatch, structuredPatch } from "diff" import path from "path" -import { AppProcess } from "@opencode-ai/core/process" +import { AppProcess } from "@opencode-ai/util/process" import { InstanceState } from "@/effect/instance-state" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Hash } from "@opencode-ai/core/util/hash" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Hash } from "@opencode-ai/util/hash" import { Config } from "@/config/config" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { LegacyInfo } from "@opencode-ai/schema/file-diff" export const Patch = Schema.Struct({ diff --git a/packages/opencode/src/storage/storage.ts b/packages/opencode/src/storage/storage.ts index 353a6b1e8bc5..e2b35b1a9518 100644 --- a/packages/opencode/src/storage/storage.ts +++ b/packages/opencode/src/storage/storage.ts @@ -1,7 +1,7 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import path from "path" -import { Global } from "@opencode-ai/core/global" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { Global } from "@opencode-ai/util/global" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Effect, Exit, Layer, Option, RcMap, Schema, Context, TxReentrantLock } from "effect" import { NonNegativeInt } from "@opencode-ai/core/schema" import { Git } from "@/git" diff --git a/packages/opencode/src/temporary.ts b/packages/opencode/src/temporary.ts index ee9afb60b4ac..80c343925818 100644 --- a/packages/opencode/src/temporary.ts +++ b/packages/opencode/src/temporary.ts @@ -1,6 +1,6 @@ import yargs from "yargs" import { V2ServeCommand } from "./cli/cmd/v2-serve" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { hideBin } from "yargs/helpers" const cli = yargs(hideBin(process.argv)) .parserConfiguration({ "populate--": true }) diff --git a/packages/opencode/src/tool/apply_patch.ts b/packages/opencode/src/tool/apply_patch.ts index 312bef9f4fc5..285da1e1c3fc 100644 --- a/packages/opencode/src/tool/apply_patch.ts +++ b/packages/opencode/src/tool/apply_patch.ts @@ -9,7 +9,7 @@ import { createTwoFilesPatch, diffLines } from "diff" import { assertExternalDirectoryEffect } from "./external-directory" import { trimDiff } from "./edit" import { LSP } from "@/lsp/lsp" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import DESCRIPTION from "./apply_patch.txt" import { FileSystem } from "@opencode-ai/core/filesystem" import { FileSystemV1 } from "@opencode-ai/schema/filesystem-v1" diff --git a/packages/opencode/src/tool/edit.ts b/packages/opencode/src/tool/edit.ts index 7e13b859972b..e4ac561b742a 100644 --- a/packages/opencode/src/tool/edit.ts +++ b/packages/opencode/src/tool/edit.ts @@ -17,7 +17,7 @@ import { Format } from "../format" import { InstanceState } from "@/effect/instance-state" import { Snapshot } from "@/snapshot" import { assertExternalDirectoryEffect } from "./external-directory" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import * as Bom from "@/util/bom" function normalizeLineEndings(text: string): string { diff --git a/packages/opencode/src/tool/external-directory.ts b/packages/opencode/src/tool/external-directory.ts index 4372db82d89e..0bcd974889b2 100644 --- a/packages/opencode/src/tool/external-directory.ts +++ b/packages/opencode/src/tool/external-directory.ts @@ -3,7 +3,7 @@ import { Effect } from "effect" import { InstanceState } from "@/effect/instance-state" import type * as Tool from "./tool" import { containsPath } from "../project/instance-context" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" type Kind = "file" | "directory" diff --git a/packages/opencode/src/tool/glob.ts b/packages/opencode/src/tool/glob.ts index 40d3a27d3cba..d2141c1208e6 100644 --- a/packages/opencode/src/tool/glob.ts +++ b/packages/opencode/src/tool/glob.ts @@ -1,7 +1,7 @@ import path from "path" import { Effect, Schema } from "effect" import { InstanceState } from "@/effect/instance-state" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { assertExternalDirectoryEffect } from "./external-directory" import DESCRIPTION from "./glob.txt" diff --git a/packages/opencode/src/tool/grep.ts b/packages/opencode/src/tool/grep.ts index e44b8e89fe29..a6e1db146a75 100644 --- a/packages/opencode/src/tool/grep.ts +++ b/packages/opencode/src/tool/grep.ts @@ -1,7 +1,7 @@ import path from "path" import { Effect, Schema } from "effect" import { InstanceState } from "@/effect/instance-state" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { assertExternalDirectoryEffect } from "./external-directory" import DESCRIPTION from "./grep.txt" diff --git a/packages/opencode/src/tool/lsp.ts b/packages/opencode/src/tool/lsp.ts index a605cea749d5..052e3a47cacc 100644 --- a/packages/opencode/src/tool/lsp.ts +++ b/packages/opencode/src/tool/lsp.ts @@ -6,7 +6,7 @@ import DESCRIPTION from "./lsp.txt" import { InstanceState } from "@/effect/instance-state" import { pathToFileURL } from "url" import { assertExternalDirectoryEffect } from "./external-directory" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" const operations = [ "goToDefinition", diff --git a/packages/opencode/src/tool/read.ts b/packages/opencode/src/tool/read.ts index 678ed4451048..2faa5ccc7e21 100644 --- a/packages/opencode/src/tool/read.ts +++ b/packages/opencode/src/tool/read.ts @@ -2,7 +2,7 @@ import { Effect, Option, Schema, Scope, Stream } from "effect" import { NonNegativeInt } from "@opencode-ai/core/schema" import * as path from "path" import * as Tool from "./tool" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { LSP } from "@/lsp/lsp" import DESCRIPTION from "./read.txt" import { InstanceState } from "@/effect/instance-state" diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index 4576bd7a8843..6e066aa46b92 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -1,5 +1,5 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { PlanExitTool } from "./plan" import { Session } from "@/session/session" @@ -28,19 +28,19 @@ import { WebSearchTool } from "./websearch" import { LspTool } from "./lsp" import * as Truncate from "./truncate" import { ApplyPatchTool } from "./apply_patch" -import { Glob } from "@opencode-ai/core/util/glob" +import { Glob } from "@opencode-ai/util/glob" import path from "path" import { pathToFileURL } from "url" import { Effect, Layer, Context } from "effect" import { ChildProcessSpawner } from "effect/unstable/process/ChildProcessSpawner" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Format } from "../format" import { InstanceState } from "@/effect/instance-state" import { EffectBridge } from "@/effect/bridge" import { Question } from "../question" import { LSP } from "@/lsp/lsp" import { Instruction } from "../session/instruction" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { EventV2Bridge } from "@/event-v2-bridge" import { Agent } from "../agent/agent" import { Skill } from "../skill" diff --git a/packages/opencode/src/tool/shell.ts b/packages/opencode/src/tool/shell.ts index aa500b8eeefc..790abd10f944 100644 --- a/packages/opencode/src/tool/shell.ts +++ b/packages/opencode/src/tool/shell.ts @@ -8,7 +8,7 @@ import { InstanceState } from "@/effect/instance-state" import { lazy } from "@/util/lazy" import { Language, type Node } from "web-tree-sitter" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { fileURLToPath } from "url" import { Config } from "@/config/config" import { RuntimeFlags } from "@/effect/runtime-flags" diff --git a/packages/opencode/src/tool/shell/prompt.ts b/packages/opencode/src/tool/shell/prompt.ts index b576b7729767..be1ff7ba306e 100644 --- a/packages/opencode/src/tool/shell/prompt.ts +++ b/packages/opencode/src/tool/shell/prompt.ts @@ -1,7 +1,7 @@ import { Schema } from "effect" import DESCRIPTION from "./shell.txt" import { PositiveInt } from "@opencode-ai/core/schema" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { ShellID } from "./id" const PS = new Set(["powershell", "pwsh"]) diff --git a/packages/opencode/src/tool/truncate.ts b/packages/opencode/src/tool/truncate.ts index 3a48c90a98e4..0f3b8b007048 100644 --- a/packages/opencode/src/tool/truncate.ts +++ b/packages/opencode/src/tool/truncate.ts @@ -1,9 +1,9 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { NodePath } from "@effect/platform-node" import { Cause, Duration, Effect, Layer, Option, Schedule, Context } from "effect" import path from "path" import type { Agent } from "../agent/agent" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { evaluate } from "@/permission/evaluate" import { Config } from "@/config/config" import { Identifier } from "../id/id" diff --git a/packages/opencode/src/tool/truncation-dir.ts b/packages/opencode/src/tool/truncation-dir.ts index 9ed82e1f3c13..bc69ac562a91 100644 --- a/packages/opencode/src/tool/truncation-dir.ts +++ b/packages/opencode/src/tool/truncation-dir.ts @@ -1,4 +1,4 @@ import path from "path" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" export const TRUNCATION_DIR = path.join(Global.Path.data, "tool-output") diff --git a/packages/opencode/src/tool/websearch.ts b/packages/opencode/src/tool/websearch.ts index d08ae1d153e8..e852371525a2 100644 --- a/packages/opencode/src/tool/websearch.ts +++ b/packages/opencode/src/tool/websearch.ts @@ -4,7 +4,7 @@ import * as Tool from "./tool" import * as McpWebSearch from "./mcp-websearch" import DESCRIPTION from "./websearch.txt" import { checksum } from "@opencode-ai/core/util/encode" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { RuntimeFlags } from "@/effect/runtime-flags" export const Parameters = Schema.Struct({ diff --git a/packages/opencode/src/tool/write.ts b/packages/opencode/src/tool/write.ts index 7d9aa8326a23..a1f6e4167728 100644 --- a/packages/opencode/src/tool/write.ts +++ b/packages/opencode/src/tool/write.ts @@ -10,7 +10,7 @@ import { FileSystem } from "@opencode-ai/core/filesystem" import { FileSystemV1 } from "@opencode-ai/schema/filesystem-v1" import { Watcher } from "@opencode-ai/core/filesystem/watcher" import { Format } from "../format" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { InstanceState } from "@/effect/instance-state" import { trimDiff } from "./edit" import { assertExternalDirectoryEffect } from "./external-directory" diff --git a/packages/opencode/src/util/bom.ts b/packages/opencode/src/util/bom.ts index f015651e97fd..ad2e608fb4b8 100644 --- a/packages/opencode/src/util/bom.ts +++ b/packages/opencode/src/util/bom.ts @@ -1,5 +1,5 @@ import { Effect } from "effect" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" const BOM_CODE = 0xfeff const BOM = String.fromCharCode(BOM_CODE) diff --git a/packages/opencode/src/util/filesystem.ts b/packages/opencode/src/util/filesystem.ts index 78a89174145d..767f513a969e 100644 --- a/packages/opencode/src/util/filesystem.ts +++ b/packages/opencode/src/util/filesystem.ts @@ -4,8 +4,8 @@ import { realpathSync } from "fs" import { dirname, isAbsolute, join, resolve as pathResolve, win32 } from "path" import { Readable } from "stream" import { pipeline } from "stream/promises" -import { Glob } from "@opencode-ai/core/util/glob" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { Glob } from "@opencode-ai/util/glob" +import { FSUtil } from "@opencode-ai/util/fs-util" import { fileURLToPath } from "url" // Fast sync version for metadata checks diff --git a/packages/opencode/src/util/repository.ts b/packages/opencode/src/util/repository.ts index dfeee4322ad9..d8da5199c461 100644 --- a/packages/opencode/src/util/repository.ts +++ b/packages/opencode/src/util/repository.ts @@ -1,7 +1,7 @@ import path from "path" import { fileURLToPath } from "url" import { Schema } from "effect" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" type BaseReference = { host: string diff --git a/packages/opencode/src/worktree/index.ts b/packages/opencode/src/worktree/index.ts index a0c43ed2c340..317decd07a91 100644 --- a/packages/opencode/src/worktree/index.ts +++ b/packages/opencode/src/worktree/index.ts @@ -1,6 +1,6 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { path } from "@opencode-ai/core/effect/app-node-platform" -import { Global } from "@opencode-ai/core/global" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { path } from "@opencode-ai/util/effect/app-node-platform" +import { Global } from "@opencode-ai/util/global" import { InstanceStore } from "@/project/instance-store" import { Project } from "@/project/project" import { Database } from "@opencode-ai/core/database/database" @@ -13,8 +13,8 @@ import { GlobalBus } from "@/bus/global" import { Git } from "@/git" import { Effect, Layer, Path, Schema, Scope, Context } from "effect" import { ChildProcess } from "effect/unstable/process" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { AppProcess } from "@opencode-ai/core/process" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { AppProcess } from "@opencode-ai/util/process" import { InstanceState } from "@/effect/instance-state" import { WorktreeEvent } from "@opencode-ai/schema/worktree-event" diff --git a/packages/opencode/test/account/repo.test.ts b/packages/opencode/test/account/repo.test.ts index 756d873f9c78..d775abb28d4c 100644 --- a/packages/opencode/test/account/repo.test.ts +++ b/packages/opencode/test/account/repo.test.ts @@ -1,5 +1,5 @@ import { expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer, Option } from "effect" import { sql } from "drizzle-orm" diff --git a/packages/opencode/test/account/service.test.ts b/packages/opencode/test/account/service.test.ts index 672d54971623..e44f332a61f6 100644 --- a/packages/opencode/test/account/service.test.ts +++ b/packages/opencode/test/account/service.test.ts @@ -1,6 +1,6 @@ import { expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { Duration, Effect, Layer, Option, Schema } from "effect" import { sql } from "drizzle-orm" import { HttpClient, HttpClientError, HttpClientResponse } from "effect/unstable/http" diff --git a/packages/opencode/test/acp/directory.test.ts b/packages/opencode/test/acp/directory.test.ts index 75f2d508545b..bab28ab729e1 100644 --- a/packages/opencode/test/acp/directory.test.ts +++ b/packages/opencode/test/acp/directory.test.ts @@ -1,7 +1,7 @@ import { describe, expect } from "bun:test" import { Directory } from "@/acp/directory" import { Command } from "@/command" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" import { Provider } from "@/provider/provider" diff --git a/packages/opencode/test/acp/event.test.ts b/packages/opencode/test/acp/event.test.ts index 8271b28265c2..2d39369b4649 100644 --- a/packages/opencode/test/acp/event.test.ts +++ b/packages/opencode/test/acp/event.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "bun:test" import type { AgentSideConnection } from "@agentclientprotocol/sdk" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import type { Event, Message, OpencodeClient, Part, SessionMessageResponse, ToolPart } from "@opencode-ai/sdk/v2" import { Effect, ManagedRuntime } from "effect" import { ACPEvent } from "@/acp/event" diff --git a/packages/opencode/test/acp/permission.test.ts b/packages/opencode/test/acp/permission.test.ts index 99da5e6ac13f..f1c525faa69e 100644 --- a/packages/opencode/test/acp/permission.test.ts +++ b/packages/opencode/test/acp/permission.test.ts @@ -6,7 +6,7 @@ import type { SessionUpdate, } from "@agentclientprotocol/sdk" import type { Event, OpencodeClient } from "@opencode-ai/sdk/v2" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { createTwoFilesPatch } from "diff" import { Effect, ManagedRuntime } from "effect" import { mkdtemp, rm } from "node:fs/promises" diff --git a/packages/opencode/test/acp/session.test.ts b/packages/opencode/test/acp/session.test.ts index 89968563c9d0..51a54e7fc9b6 100644 --- a/packages/opencode/test/acp/session.test.ts +++ b/packages/opencode/test/acp/session.test.ts @@ -1,6 +1,6 @@ import { describe, expect } from "bun:test" import type { McpServer } from "@agentclientprotocol/sdk" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect } from "effect" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" diff --git a/packages/opencode/test/acp/usage.test.ts b/packages/opencode/test/acp/usage.test.ts index 06ccfb1f5061..e44bea2026f7 100644 --- a/packages/opencode/test/acp/usage.test.ts +++ b/packages/opencode/test/acp/usage.test.ts @@ -1,6 +1,6 @@ import { describe, expect, test } from "bun:test" import type { SessionNotification } from "@agentclientprotocol/sdk" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" import { UsageService } from "@/acp/usage" diff --git a/packages/opencode/test/agent/agent.test.ts b/packages/opencode/test/agent/agent.test.ts index 2e13e26a9525..83f09cfcb67b 100644 --- a/packages/opencode/test/agent/agent.test.ts +++ b/packages/opencode/test/agent/agent.test.ts @@ -1,5 +1,5 @@ import { afterEach, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Effect, Exit, Layer } from "effect" import path from "path" import { disposeAllInstances, TestInstance } from "../fixture/fixture" @@ -8,7 +8,7 @@ import { Agent } from "../../src/agent/agent" import { Auth } from "../../src/auth" import { Config } from "../../src/config/config" import { RuntimeFlags } from "../../src/effect/runtime-flags" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Permission } from "../../src/permission" import { PermissionV1 } from "@opencode-ai/core/v1/permission" import { Plugin } from "../../src/plugin" diff --git a/packages/opencode/test/agent/plan-mode-subagent-bypass.test.ts b/packages/opencode/test/agent/plan-mode-subagent-bypass.test.ts index 6fc9197d9ae9..294ae910a529 100644 --- a/packages/opencode/test/agent/plan-mode-subagent-bypass.test.ts +++ b/packages/opencode/test/agent/plan-mode-subagent-bypass.test.ts @@ -1,5 +1,5 @@ import { PermissionV1 } from "@opencode-ai/core/v1/permission" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { expect } from "bun:test" import { Effect } from "effect" import { Agent } from "../../src/agent/agent" diff --git a/packages/opencode/test/agent/plugin-agent-regression.test.ts b/packages/opencode/test/agent/plugin-agent-regression.test.ts index 0249aaeb847f..00d9652b9332 100644 --- a/packages/opencode/test/agent/plugin-agent-regression.test.ts +++ b/packages/opencode/test/agent/plugin-agent-regression.test.ts @@ -1,5 +1,5 @@ import { expect } from "bun:test" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import { Effect } from "effect" import path from "path" import { pathToFileURL } from "url" @@ -18,7 +18,7 @@ import { SkillTest } from "../fake/skill" import { testEffect } from "../lib/effect" import { PLUGIN_AGENT } from "../fixture/agent-plugin.constants" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" // `it.instance` skips InstanceBootstrap so LSP / MCP don't spin up — those // services hang during scope teardown on Windows and aren't needed diff --git a/packages/opencode/test/auth/auth.test.ts b/packages/opencode/test/auth/auth.test.ts index bb72be66e57c..00ed5209af22 100644 --- a/packages/opencode/test/auth/auth.test.ts +++ b/packages/opencode/test/auth/auth.test.ts @@ -1,5 +1,5 @@ import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect } from "effect" import { Auth } from "../../src/auth" import { testEffect } from "../lib/effect" diff --git a/packages/opencode/test/cli/effect-cmd-instance-als.test.ts b/packages/opencode/test/cli/effect-cmd-instance-als.test.ts index 1592b00146ec..7376744b18d9 100644 --- a/packages/opencode/test/cli/effect-cmd-instance-als.test.ts +++ b/packages/opencode/test/cli/effect-cmd-instance-als.test.ts @@ -1,6 +1,6 @@ import { afterEach, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Effect } from "effect" import { fileURLToPath } from "url" import { InstanceRef } from "../../src/effect/instance-ref" diff --git a/packages/opencode/test/cli/tui/plugin-loader-entrypoint.test.ts b/packages/opencode/test/cli/tui/plugin-loader-entrypoint.test.ts index 3b6adeb30232..25d8632eb9ec 100644 --- a/packages/opencode/test/cli/tui/plugin-loader-entrypoint.test.ts +++ b/packages/opencode/test/cli/tui/plugin-loader-entrypoint.test.ts @@ -6,7 +6,7 @@ import { tmpdir } from "../../fixture/fixture" import { createTuiPluginApi } from "../../fixture/tui-plugin" import { createTuiResolvedConfig } from "../../fixture/tui-runtime" import { TuiConfig } from "../../../src/config/tui" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" const { TuiPluginRuntime } = await import("../../../src/plugin/tui/runtime") diff --git a/packages/opencode/test/cli/tui/plugin-loader.test.ts b/packages/opencode/test/cli/tui/plugin-loader.test.ts index c542914cadb1..900249899789 100644 --- a/packages/opencode/test/cli/tui/plugin-loader.test.ts +++ b/packages/opencode/test/cli/tui/plugin-loader.test.ts @@ -7,7 +7,7 @@ import type { TuiAttentionSoundPack } from "@opencode-ai/plugin/tui" import { tmpdir } from "../../fixture/fixture" import { createTuiPluginApi } from "../../fixture/tui-plugin" import { createTuiResolvedConfig, mockTuiRuntime } from "../../fixture/tui-runtime" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { TuiConfig } from "../../../src/config/tui" import { Filesystem } from "@/util/filesystem" import { PluginLoader } from "../../../src/plugin/loader" diff --git a/packages/opencode/test/config/agent-color.test.ts b/packages/opencode/test/config/agent-color.test.ts index 6b27cafe85a3..d14621c6bf2e 100644 --- a/packages/opencode/test/config/agent-color.test.ts +++ b/packages/opencode/test/config/agent-color.test.ts @@ -1,5 +1,5 @@ import { expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect } from "effect" import { Config } from "@/config/config" import { Agent as AgentSvc } from "../../src/agent/agent" diff --git a/packages/opencode/test/config/config.test.ts b/packages/opencode/test/config/config.test.ts index ac408ea81281..3f17f682050f 100644 --- a/packages/opencode/test/config/config.test.ts +++ b/packages/opencode/test/config/config.test.ts @@ -1,21 +1,21 @@ import { test, expect, describe, afterEach, beforeEach, spyOn } from "bun:test" import { ConfigV1 } from "@opencode-ai/core/v1/config/config" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { Cause, Effect, Exit, Layer, Option } from "effect" import { NamedError } from "@opencode-ai/core/util/error" import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/unstable/http" import { Config } from "@/config/config" import { ConfigManaged } from "@/config/managed" import { ConfigParse } from "../../src/config/parse" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import { InstanceRef } from "../../src/effect/instance-ref" import type { InstanceContext } from "../../src/project/instance-context" import { Auth } from "../../src/auth" import { Account } from "../../src/account/account" import { AccessToken, AccountID, OrgID } from "../../src/account/schema" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Env } from "../../src/env" import { provideTmpdirInstance, @@ -27,13 +27,13 @@ import { testInstanceStoreLayer, } from "../fixture/fixture" import { InstanceRuntime } from "@/project/instance-runtime" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { testEffect } from "../lib/effect" import path from "path" import fs from "fs/promises" import os from "os" import { pathToFileURL } from "url" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { ProjectV2 } from "@opencode-ai/core/project" import { Filesystem } from "@/util/filesystem" import { ConfigPlugin } from "@/config/plugin" diff --git a/packages/opencode/test/config/tui.test.ts b/packages/opencode/test/config/tui.test.ts index cc43cf4e55de..1a67e04889a5 100644 --- a/packages/opencode/test/config/tui.test.ts +++ b/packages/opencode/test/config/tui.test.ts @@ -2,10 +2,10 @@ import { expect } from "bun:test" import path from "path" import { pathToFileURL } from "url" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { Config } from "@/config/config" import { ConfigPlugin } from "@/config/plugin" import { CurrentWorkingDirectory } from "@/config/tui-cwd" diff --git a/packages/opencode/test/control-plane/workspace.test.ts b/packages/opencode/test/control-plane/workspace.test.ts index a0d3aadbef93..ecbb3659073a 100644 --- a/packages/opencode/test/control-plane/workspace.test.ts +++ b/packages/opencode/test/control-plane/workspace.test.ts @@ -30,7 +30,7 @@ import { InstanceBootstrap } from "@/project/bootstrap" import { RuntimeFlags } from "@/effect/runtime-flags" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" const originalEnv = { OPENCODE_AUTH_CONTENT: process.env.OPENCODE_AUTH_CONTENT, diff --git a/packages/opencode/test/effect/app-runtime-logger.test.ts b/packages/opencode/test/effect/app-runtime-logger.test.ts index a0c34244f0d9..f7c5cf11e027 100644 --- a/packages/opencode/test/effect/app-runtime-logger.test.ts +++ b/packages/opencode/test/effect/app-runtime-logger.test.ts @@ -1,11 +1,11 @@ import { expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Context, Deferred, Effect, Fiber, Layer, Logger } from "effect" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { AppLayer } from "../../src/effect/app-runtime" import { EffectBridge } from "@/effect/bridge" import { InstanceRef } from "../../src/effect/instance-ref" -import * as Observability from "@opencode-ai/core/observability" +import * as Observability from "@opencode-ai/util/observability" import { attach } from "../../src/effect/run-service" import { TestInstance } from "../fixture/fixture" import { testEffect } from "../lib/effect" diff --git a/packages/opencode/test/effect/instance-state.test.ts b/packages/opencode/test/effect/instance-state.test.ts index 148eca8d5c69..5cd44e0ac95f 100644 --- a/packages/opencode/test/effect/instance-state.test.ts +++ b/packages/opencode/test/effect/instance-state.test.ts @@ -1,6 +1,6 @@ import { expect } from "bun:test" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { $ } from "bun" import { Context, Deferred, Duration, Effect, Exit, Fiber, Layer } from "effect" import { InstanceState } from "@/effect/instance-state" diff --git a/packages/opencode/test/fake/npm.ts b/packages/opencode/test/fake/npm.ts index 57efe83a0b83..ab5becb0d1c1 100644 --- a/packages/opencode/test/fake/npm.ts +++ b/packages/opencode/test/fake/npm.ts @@ -1,4 +1,4 @@ -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import { Effect, Layer } from "effect" export const noop = Layer.mock(Npm.Service)({ diff --git a/packages/opencode/test/filesystem/filesystem.test.ts b/packages/opencode/test/filesystem/filesystem.test.ts index 86488331bd1c..ba23774631a2 100644 --- a/packages/opencode/test/filesystem/filesystem.test.ts +++ b/packages/opencode/test/filesystem/filesystem.test.ts @@ -1,7 +1,7 @@ import { describe, test, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect } from "effect" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { testEffect } from "../lib/effect" import path from "path" diff --git a/packages/opencode/test/fixture/fixture.ts b/packages/opencode/test/fixture/fixture.ts index 53e3142cdfb3..8fd5eb9cbd09 100644 --- a/packages/opencode/test/fixture/fixture.ts +++ b/packages/opencode/test/fixture/fixture.ts @@ -6,11 +6,11 @@ import path from "path" import { Effect, Context, Layer } from "effect" import type * as PlatformError from "effect/PlatformError" import type * as Scope from "effect/Scope" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import type { Config } from "@/config/config" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { InstanceRef } from "../../src/effect/instance-ref" import { InstanceBootstrap } from "../../src/project/bootstrap-service" import type { InstanceContext } from "../../src/project/instance-context" diff --git a/packages/opencode/test/fixture/flag.ts b/packages/opencode/test/fixture/flag.ts index cf00d9e7b23b..aa7e9bb79aa5 100644 --- a/packages/opencode/test/fixture/flag.ts +++ b/packages/opencode/test/fixture/flag.ts @@ -1,5 +1,5 @@ import type { WorkspaceV2 } from "@opencode-ai/core/workspace" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Effect, Scope } from "effect" /** diff --git a/packages/opencode/test/fixture/flock-worker.ts b/packages/opencode/test/fixture/flock-worker.ts index 0b9c314c0877..ece4dc6f5016 100644 --- a/packages/opencode/test/fixture/flock-worker.ts +++ b/packages/opencode/test/fixture/flock-worker.ts @@ -1,5 +1,5 @@ import fs from "fs/promises" -import { Flock } from "@opencode-ai/core/util/flock" +import { Flock } from "@opencode-ai/util/flock" type Msg = { key: string diff --git a/packages/opencode/test/fixture/workspace.ts b/packages/opencode/test/fixture/workspace.ts index cf7585571590..707c8f8b9c3f 100644 --- a/packages/opencode/test/fixture/workspace.ts +++ b/packages/opencode/test/fixture/workspace.ts @@ -1,7 +1,7 @@ import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Database } from "@opencode-ai/core/database/database" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Auth } from "../../src/auth" import { Workspace } from "../../src/control-plane/workspace" import { RuntimeFlags } from "../../src/effect/runtime-flags" diff --git a/packages/opencode/test/format/format.test.ts b/packages/opencode/test/format/format.test.ts index 72adc848f430..9ca2b414cbfc 100644 --- a/packages/opencode/test/format/format.test.ts +++ b/packages/opencode/test/format/format.test.ts @@ -1,10 +1,10 @@ import { NodeFileSystem } from "@effect/platform-node" import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import { provideTmpdirInstance, testInstanceStoreLayer, TestInstance } from "../fixture/fixture" import { testEffect } from "../lib/effect" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Format } from "../../src/format" import * as Formatter from "../../src/format/formatter" diff --git a/packages/opencode/test/git/git.test.ts b/packages/opencode/test/git/git.test.ts index 56f19a4a4600..fd139559b689 100644 --- a/packages/opencode/test/git/git.test.ts +++ b/packages/opencode/test/git/git.test.ts @@ -1,5 +1,5 @@ import { $ } from "bun" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { describe, expect } from "bun:test" import fs from "fs/promises" import path from "path" diff --git a/packages/opencode/test/image/image.test.ts b/packages/opencode/test/image/image.test.ts index 29667f6e2f6e..e1366b5726d7 100644 --- a/packages/opencode/test/image/image.test.ts +++ b/packages/opencode/test/image/image.test.ts @@ -1,5 +1,5 @@ import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Effect, Exit } from "effect" import { Image } from "@/image/image" import { Config } from "@/config/config" diff --git a/packages/opencode/test/installation/installation.test.ts b/packages/opencode/test/installation/installation.test.ts index 3d4b4cba31a6..6aa890a77223 100644 --- a/packages/opencode/test/installation/installation.test.ts +++ b/packages/opencode/test/installation/installation.test.ts @@ -1,13 +1,13 @@ import { describe, expect } from "bun:test" -import { makeGlobalNode } from "@opencode-ai/core/effect/app-node" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { Effect, Layer, Stream } from "effect" import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { Installation } from "../../src/installation" -import { InstallationChannel } from "@opencode-ai/core/installation/version" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { InstallationChannel } from "@opencode-ai/util/installation/version" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { testEffect } from "../lib/effect" const encoder = new TextEncoder() diff --git a/packages/opencode/test/job.test.ts b/packages/opencode/test/job.test.ts index feb8f6e4abff..ad460db1a184 100644 --- a/packages/opencode/test/job.test.ts +++ b/packages/opencode/test/job.test.ts @@ -1,6 +1,6 @@ import { describe, expect } from "bun:test" import { Deferred, Effect, Fiber } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Job } from "@/job" import { SessionSchema } from "@opencode-ai/core/session/schema" import { testEffect } from "./lib/effect" diff --git a/packages/opencode/test/lib/cli-process.ts b/packages/opencode/test/lib/cli-process.ts index 9f539421a59e..12b8a3f20a78 100644 --- a/packages/opencode/test/lib/cli-process.ts +++ b/packages/opencode/test/lib/cli-process.ts @@ -17,10 +17,10 @@ // without changing the fixture. Long-lived commands like `serve` will need a // different return shape — see the TODO at the bottom of OpencodeCli. import { test, type TestOptions } from "bun:test" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { AppProcess } from "@opencode-ai/core/process" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { AppProcess } from "@opencode-ai/util/process" import { Deferred, Duration, Effect, Layer, Queue, Schedule, Scope, Stream } from "effect" import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { ChildProcess } from "effect/unstable/process" diff --git a/packages/opencode/test/lib/effect.ts b/packages/opencode/test/lib/effect.ts index 255d4b394750..d75db2db5673 100644 --- a/packages/opencode/test/lib/effect.ts +++ b/packages/opencode/test/lib/effect.ts @@ -4,7 +4,7 @@ import { Cause, Duration, Effect, Exit, Layer } from "effect" import * as Scope from "effect/Scope" import * as TestClock from "effect/testing/TestClock" import * as TestConsole from "effect/testing/TestConsole" -import { memoMap } from "@opencode-ai/core/effect/memo-map" +import { memoMap } from "@opencode-ai/util/effect/memo-map" import type { Config } from "@/config/config" import { TestInstance, withTmpdirInstance } from "../fixture/fixture" import { InstanceStore } from "@/project/instance-store" diff --git a/packages/opencode/test/lsp/index.test.ts b/packages/opencode/test/lsp/index.test.ts index 57a7b59d1cfe..6f91bc36245c 100644 --- a/packages/opencode/test/lsp/index.test.ts +++ b/packages/opencode/test/lsp/index.test.ts @@ -1,13 +1,13 @@ import { describe, expect, spyOn } from "bun:test" import path from "path" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Deferred, Effect, Layer } from "effect" import { EventV2Bridge } from "@/event-v2-bridge" import { Config } from "@/config/config" import { RuntimeFlags } from "@/effect/runtime-flags" import { LSP } from "@/lsp/lsp" import * as LSPServer from "@/lsp/server" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { TestInstance } from "../fixture/fixture" import { awaitWithTimeout, testEffect } from "../lib/effect" diff --git a/packages/opencode/test/lsp/lifecycle.test.ts b/packages/opencode/test/lsp/lifecycle.test.ts index 17387a6bf82b..669df60f7eb5 100644 --- a/packages/opencode/test/lsp/lifecycle.test.ts +++ b/packages/opencode/test/lsp/lifecycle.test.ts @@ -1,6 +1,6 @@ import { afterEach, beforeEach, describe, expect, spyOn, test } from "bun:test" import path from "path" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect } from "effect" import { LSP } from "@/lsp/lsp" import * as LSPServer from "@/lsp/server" diff --git a/packages/opencode/test/mcp/auth.test.ts b/packages/opencode/test/mcp/auth.test.ts index 5aa099983a31..be6cff40903b 100644 --- a/packages/opencode/test/mcp/auth.test.ts +++ b/packages/opencode/test/mcp/auth.test.ts @@ -2,7 +2,7 @@ import { expect, test } from "bun:test" import { setTimeout as sleep } from "node:timers/promises" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { Effect, Layer } from "effect" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { McpAuth } from "../../src/mcp/auth" function authFile() { diff --git a/packages/opencode/test/mcp/headers.test.ts b/packages/opencode/test/mcp/headers.test.ts index 31cfc20d51c6..b9a0887d228c 100644 --- a/packages/opencode/test/mcp/headers.test.ts +++ b/packages/opencode/test/mcp/headers.test.ts @@ -2,7 +2,7 @@ import { describe, expect } from "bun:test" import { Server } from "@modelcontextprotocol/sdk/server/index.js" import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js" import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect } from "effect" import { testEffect } from "../lib/effect" import { MCP } from "../../src/mcp/index" diff --git a/packages/opencode/test/mcp/lifecycle.test.ts b/packages/opencode/test/mcp/lifecycle.test.ts index 80c8fd22f886..8b90370ca89c 100644 --- a/packages/opencode/test/mcp/lifecycle.test.ts +++ b/packages/opencode/test/mcp/lifecycle.test.ts @@ -13,7 +13,7 @@ import { type ServerCapabilities, type Tool, } from "@modelcontextprotocol/sdk/types.js" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Effect, Exit } from "effect" import type { MCP as MCPNS } from "../../src/mcp/index" import { MCP } from "../../src/mcp/index" diff --git a/packages/opencode/test/mcp/oauth-auto-connect.test.ts b/packages/opencode/test/mcp/oauth-auto-connect.test.ts index 5f8889068c33..486063ea073e 100644 --- a/packages/opencode/test/mcp/oauth-auto-connect.test.ts +++ b/packages/opencode/test/mcp/oauth-auto-connect.test.ts @@ -2,9 +2,9 @@ import { expect } from "bun:test" import { Server } from "@modelcontextprotocol/sdk/server/index.js" import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js" import { ListResourcesRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Effect } from "effect" import { Config } from "../../src/config/config" import { EventV2Bridge } from "../../src/event-v2-bridge" diff --git a/packages/opencode/test/mcp/oauth-browser.test.ts b/packages/opencode/test/mcp/oauth-browser.test.ts index 9573805a9a14..79e583bf9c79 100644 --- a/packages/opencode/test/mcp/oauth-browser.test.ts +++ b/packages/opencode/test/mcp/oauth-browser.test.ts @@ -2,7 +2,7 @@ import { expect } from "bun:test" import { Server } from "@modelcontextprotocol/sdk/server/index.js" import { WebStandardStreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js" import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Deferred, Effect, Layer, Option } from "effect" import { Config } from "../../src/config/config" import { EventV2Bridge } from "../../src/event-v2-bridge" diff --git a/packages/opencode/test/patch/patch.test.ts b/packages/opencode/test/patch/patch.test.ts index 0a8dd5d8ad04..0f0d169a98c4 100644 --- a/packages/opencode/test/patch/patch.test.ts +++ b/packages/opencode/test/patch/patch.test.ts @@ -1,11 +1,11 @@ import { describe, test, expect, beforeEach, afterEach } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect } from "effect" import * as fs from "fs/promises" import * as path from "path" import { tmpdir } from "os" import { Patch } from "../../src/patch" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { testEffect } from "../lib/effect" const it = testEffect(LayerNode.compile(FSUtil.node)) diff --git a/packages/opencode/test/permission-task.test.ts b/packages/opencode/test/permission-task.test.ts index 09a71465d5c7..e14f77659ebd 100644 --- a/packages/opencode/test/permission-task.test.ts +++ b/packages/opencode/test/permission-task.test.ts @@ -1,5 +1,5 @@ import { PermissionV1 } from "@opencode-ai/core/v1/permission" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { describe, test, expect } from "bun:test" import { Effect } from "effect" import { Permission } from "../src/permission" diff --git a/packages/opencode/test/permission/next.test.ts b/packages/opencode/test/permission/next.test.ts index 2f2ce98efb34..b08c6ed4a07d 100644 --- a/packages/opencode/test/permission/next.test.ts +++ b/packages/opencode/test/permission/next.test.ts @@ -3,7 +3,7 @@ import { test, expect } from "bun:test" import os from "os" import { Cause, Deferred, Effect, Exit, Fiber, Layer } from "effect" import { EventV2Bridge } from "../../src/event-v2-bridge" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Permission } from "../../src/permission" import { InstanceBootstrap } from "../../src/project/bootstrap" import { InstanceStore } from "../../src/project/instance-store" @@ -11,7 +11,7 @@ import { TestInstance, tmpdirScoped } from "../fixture/fixture" import { testEffect } from "../lib/effect" import { MessageID, SessionID } from "../../src/session/schema" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" const noopBootstrap = Layer.succeed(InstanceBootstrap.Service, InstanceBootstrap.Service.of({ run: Effect.void })) const env = AppNodeBuilder.build( diff --git a/packages/opencode/test/plugin/auth-override.test.ts b/packages/opencode/test/plugin/auth-override.test.ts index ca8a2ff69a17..71204a20f327 100644 --- a/packages/opencode/test/plugin/auth-override.test.ts +++ b/packages/opencode/test/plugin/auth-override.test.ts @@ -1,16 +1,16 @@ import { describe, expect, test } from "bun:test" import path from "path" import { pathToFileURL } from "url" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect } from "effect" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { provideInstance, TestInstance, tmpdirScoped } from "../fixture/fixture" import { ProviderAuth } from "@/provider/auth" import { RuntimeFlags } from "@/effect/runtime-flags" import { TestConfig } from "../fixture/config" import { testEffect } from "../lib/effect" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { ProviderV2 } from "@opencode-ai/core/provider" import { Config } from "@/config/config" diff --git a/packages/opencode/test/plugin/loader-shared.test.ts b/packages/opencode/test/plugin/loader-shared.test.ts index 005a6e78cb55..671afbfa7670 100644 --- a/packages/opencode/test/plugin/loader-shared.test.ts +++ b/packages/opencode/test/plugin/loader-shared.test.ts @@ -1,11 +1,11 @@ import { afterEach, describe, expect, spyOn } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import fs from "fs/promises" import path from "path" import { pathToFileURL } from "url" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Config } from "@/config/config" import { disposeAllInstances, provideInstance, testInstanceStoreLayer, tmpdirScoped } from "../fixture/fixture" import { testEffect } from "../lib/effect" @@ -13,7 +13,7 @@ import { testEffect } from "../lib/effect" const { Plugin } = await import("../../src/plugin/index") const { PluginLoader } = await import("../../src/plugin/loader") const { readPackageThemes } = await import("../../src/plugin/shared") -const { Npm } = await import("@opencode-ai/core/npm") +const { Npm } = await import("@opencode-ai/util/npm") const { TestConfig } = await import("../fixture/config") const { RuntimeFlags } = await import("../../src/effect/runtime-flags") diff --git a/packages/opencode/test/plugin/trigger.test.ts b/packages/opencode/test/plugin/trigger.test.ts index 07fd8e2f21bc..acfd3c97dcec 100644 --- a/packages/opencode/test/plugin/trigger.test.ts +++ b/packages/opencode/test/plugin/trigger.test.ts @@ -1,7 +1,7 @@ import { describe, expect } from "bun:test" import { Effect } from "effect" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { Npm } from "@opencode-ai/core/npm" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { Npm } from "@opencode-ai/util/npm" import path from "path" import { pathToFileURL } from "url" import { Account } from "../../src/account/account" @@ -17,7 +17,7 @@ import { NpmTest } from "../fake/npm" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" const it = testEffect( AppNodeBuilder.build(LayerNode.group([Plugin.node, CrossSpawnSpawner.node]), [ diff --git a/packages/opencode/test/plugin/workspace-adapter.test.ts b/packages/opencode/test/plugin/workspace-adapter.test.ts index a8dd17252172..2623d6ac2e64 100644 --- a/packages/opencode/test/plugin/workspace-adapter.test.ts +++ b/packages/opencode/test/plugin/workspace-adapter.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect } from "bun:test" import { Effect, Layer } from "effect" -import { Npm } from "@opencode-ai/core/npm" +import { Npm } from "@opencode-ai/util/npm" import { Ripgrep } from "@opencode-ai/core/ripgrep" import path from "path" import { pathToFileURL } from "url" @@ -18,7 +18,7 @@ import { AccountTest } from "../fake/account" import { AuthTest } from "../fake/auth" import { NpmTest } from "../fake/npm" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" const noopBootstrapLayer = Layer.succeed(InstanceBootstrap.Service, InstanceBootstrap.Service.of({ run: Effect.void })) const it = testEffect( diff --git a/packages/opencode/test/project/instance-bootstrap.test.ts b/packages/opencode/test/project/instance-bootstrap.test.ts index f855024e5dca..9c61b07bf96c 100644 --- a/packages/opencode/test/project/instance-bootstrap.test.ts +++ b/packages/opencode/test/project/instance-bootstrap.test.ts @@ -2,8 +2,8 @@ import { afterEach, expect } from "bun:test" import { existsSync } from "node:fs" import path from "node:path" import { pathToFileURL } from "node:url" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Cause, Effect, Exit, Fiber } from "effect" import { bootstrap as cliBootstrap } from "../../src/cli/bootstrap" import { InstanceBootstrap } from "../../src/project/bootstrap" diff --git a/packages/opencode/test/project/instance.test.ts b/packages/opencode/test/project/instance.test.ts index f78b99ef7d9b..44bc259b50d0 100644 --- a/packages/opencode/test/project/instance.test.ts +++ b/packages/opencode/test/project/instance.test.ts @@ -1,6 +1,6 @@ import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Deferred, Effect, Fiber, Layer } from "effect" import { InstanceRef } from "../../src/effect/instance-ref" import { registerDisposer } from "../../src/effect/instance-registry" diff --git a/packages/opencode/test/project/migrate-global.test.ts b/packages/opencode/test/project/migrate-global.test.ts index 24d8aaaaaf66..f68f6aa80f59 100644 --- a/packages/opencode/test/project/migrate-global.test.ts +++ b/packages/opencode/test/project/migrate-global.test.ts @@ -9,8 +9,8 @@ import { ProjectV2 } from "@opencode-ai/core/project" import { SessionID } from "../../src/session/schema" import { $ } from "bun" import { tmpdirScoped } from "../fixture/fixture" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Effect } from "effect" import { testEffect } from "../lib/effect" diff --git a/packages/opencode/test/project/project-directory.test.ts b/packages/opencode/test/project/project-directory.test.ts index 112271c2c470..08c2dd8ee463 100644 --- a/packages/opencode/test/project/project-directory.test.ts +++ b/packages/opencode/test/project/project-directory.test.ts @@ -2,10 +2,10 @@ import { describe, expect } from "bun:test" import { $ } from "bun" import path from "path" import { eq } from "drizzle-orm" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Effect } from "effect" -import { Hash } from "@opencode-ai/core/util/hash" +import { Hash } from "@opencode-ai/util/hash" import { AbsolutePath } from "@opencode-ai/core/schema" import { Database } from "@opencode-ai/core/database/database" import { ProjectDirectoryTable, ProjectTable } from "@opencode-ai/core/project/sql" diff --git a/packages/opencode/test/project/project.test.ts b/packages/opencode/test/project/project.test.ts index 5e425e7f73f0..290ba20dd3ac 100644 --- a/packages/opencode/test/project/project.test.ts +++ b/packages/opencode/test/project/project.test.ts @@ -9,17 +9,17 @@ import { ProjectTable } from "@opencode-ai/core/project/sql" import { SessionTable } from "@opencode-ai/core/session/sql" import { WorkspaceTable } from "@opencode-ai/core/control-plane/workspace.sql" import { eq } from "drizzle-orm" -import { Hash } from "@opencode-ai/core/util/hash" +import { Hash } from "@opencode-ai/util/hash" import { SessionID } from "@/session/schema" import { WorkspaceV2 } from "@opencode-ai/core/workspace" import { Cause, Effect, Exit, Layer, Stream } from "effect" import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process" import { ProjectV2 } from "@opencode-ai/core/project" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { testEffect } from "../lib/effect" import { RuntimeFlags } from "@/effect/runtime-flags" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" const encoder = new TextEncoder() diff --git a/packages/opencode/test/project/vcs.test.ts b/packages/opencode/test/project/vcs.test.ts index c13b108bc6a9..08457d901a34 100644 --- a/packages/opencode/test/project/vcs.test.ts +++ b/packages/opencode/test/project/vcs.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { parsePatch } from "diff" import { Deferred, Effect, Layer } from "effect" import fs from "fs/promises" diff --git a/packages/opencode/test/project/worktree-remove.test.ts b/packages/opencode/test/project/worktree-remove.test.ts index 9e061f6d883d..70986df6d370 100644 --- a/packages/opencode/test/project/worktree-remove.test.ts +++ b/packages/opencode/test/project/worktree-remove.test.ts @@ -2,7 +2,7 @@ import { $ } from "bun" import { describe, expect } from "bun:test" import * as fs from "fs/promises" import path from "path" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect } from "effect" import { InstanceBootstrap } from "../../src/project/bootstrap" import { InstanceStore } from "../../src/project/instance-store" diff --git a/packages/opencode/test/project/worktree.test.ts b/packages/opencode/test/project/worktree.test.ts index e2a7e747232f..596d0a0d09a0 100644 --- a/packages/opencode/test/project/worktree.test.ts +++ b/packages/opencode/test/project/worktree.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect } from "bun:test" import path from "path" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Cause, Deferred, Effect, Exit, Fiber } from "effect" import { GlobalBus, type GlobalEvent } from "../../src/bus/global" import { Git } from "../../src/git" diff --git a/packages/opencode/test/provider/amazon-bedrock.test.ts b/packages/opencode/test/provider/amazon-bedrock.test.ts index 6e677631c40b..722fd24baa15 100644 --- a/packages/opencode/test/provider/amazon-bedrock.test.ts +++ b/packages/opencode/test/provider/amazon-bedrock.test.ts @@ -1,9 +1,9 @@ import { afterEach, describe, expect, test } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect } from "effect" import path from "path" import { unlink } from "fs/promises" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Filesystem } from "@/util/filesystem" import { Env } from "../../src/env" import { Provider } from "@/provider/provider" diff --git a/packages/opencode/test/provider/digitalocean.test.ts b/packages/opencode/test/provider/digitalocean.test.ts index 144335c73b34..9766d4f9f948 100644 --- a/packages/opencode/test/provider/digitalocean.test.ts +++ b/packages/opencode/test/provider/digitalocean.test.ts @@ -1,5 +1,5 @@ import { expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Provider } from "../../src/provider/provider" import { Effect } from "effect" diff --git a/packages/opencode/test/provider/gitlab-duo.test.ts b/packages/opencode/test/provider/gitlab-duo.test.ts index 563fa025558b..00510f8f9302 100644 --- a/packages/opencode/test/provider/gitlab-duo.test.ts +++ b/packages/opencode/test/provider/gitlab-duo.test.ts @@ -10,7 +10,7 @@ export {} // import { tmpdir, withTestInstance } from "../fixture/fixture" // import { Provider } from "@/provider/provider" // import { Env } from "../../src/env" -// import { Global } from "@opencode-ai/core/global" +// import { Global } from "@opencode-ai/util/global" // import { GitLabWorkflowLanguageModel } from "gitlab-ai-provider" // test("GitLab Duo: loads provider with API key from environment", async () => { diff --git a/packages/opencode/test/provider/header-timeout.test.ts b/packages/opencode/test/provider/header-timeout.test.ts index 1bd27b5cdd1d..6a4e18b8e653 100644 --- a/packages/opencode/test/provider/header-timeout.test.ts +++ b/packages/opencode/test/provider/header-timeout.test.ts @@ -1,8 +1,8 @@ import { afterEach, expect } from "bun:test" import { createServer, type Server } from "node:http" import { streamText } from "ai" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Effect } from "effect" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" diff --git a/packages/opencode/test/provider/provider.test.ts b/packages/opencode/test/provider/provider.test.ts index 964c7d5dfdf5..a9e7a0b23ecb 100644 --- a/packages/opencode/test/provider/provider.test.ts +++ b/packages/opencode/test/provider/provider.test.ts @@ -1,13 +1,13 @@ import { afterEach, expect, test } from "bun:test" import { mkdir, unlink } from "fs/promises" import path from "path" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { Effect, Layer } from "effect" import { ModelsDev } from "@opencode-ai/core/models-dev" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { Global } from "@opencode-ai/core/global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { Global } from "@opencode-ai/util/global" import { disposeAllInstances, provideInstanceEffect, tmpdirScoped, TestInstance } from "../fixture/fixture" import { markPluginDependenciesReady } from "../fixture/plugin" import { Auth } from "@/auth" diff --git a/packages/opencode/test/question/question.test.ts b/packages/opencode/test/question/question.test.ts index 9adb1e0c9ff7..63eb3922d4b0 100644 --- a/packages/opencode/test/question/question.test.ts +++ b/packages/opencode/test/question/question.test.ts @@ -1,5 +1,5 @@ import { afterEach, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Effect, Exit, Fiber, Layer, Queue } from "effect" import { Question } from "../../src/question" import { InstanceRef } from "../../src/effect/instance-ref" @@ -8,7 +8,7 @@ import { QuestionID } from "../../src/question/schema" import { disposeAllInstances, provideInstance, testInstanceStoreLayer, tmpdirScoped } from "../fixture/fixture" import { SessionID } from "../../src/session/schema" import { testEffect } from "../lib/effect" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { EventV2Bridge } from "../../src/event-v2-bridge" const questionLayer = LayerNode.compile(LayerNode.group([Question.node, EventV2Bridge.node, CrossSpawnSpawner.node])) diff --git a/packages/opencode/test/server/auth.test.ts b/packages/opencode/test/server/auth.test.ts index 1278e8c72e8c..4bb955b005ab 100644 --- a/packages/opencode/test/server/auth.test.ts +++ b/packages/opencode/test/server/auth.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect, test } from "bun:test" import { Option, Redacted } from "effect" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { ServerAuth } from "../../src/server/auth" const original = { diff --git a/packages/opencode/test/server/global-session-list.test.ts b/packages/opencode/test/server/global-session-list.test.ts index 7a13553af618..d419ec0a53b0 100644 --- a/packages/opencode/test/server/global-session-list.test.ts +++ b/packages/opencode/test/server/global-session-list.test.ts @@ -1,10 +1,10 @@ import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { SessionProjector } from "@opencode-ai/core/session/projector" import { Deferred, Effect, Layer } from "effect" import { Project } from "@/project/project" import { Session as SessionNs } from "@/session/session" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { provideInstance, TestInstance, tmpdirScoped } from "../fixture/fixture" import { testEffect } from "../lib/effect" diff --git a/packages/opencode/test/server/httpapi-cors.test.ts b/packages/opencode/test/server/httpapi-cors.test.ts index 4e9680c7ce4b..481ad44d771e 100644 --- a/packages/opencode/test/server/httpapi-cors.test.ts +++ b/packages/opencode/test/server/httpapi-cors.test.ts @@ -1,5 +1,5 @@ import { NodeHttpServer, NodeServices } from "@effect/platform-node" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { describe, expect } from "bun:test" import { Config, ConfigProvider, Effect, Layer } from "effect" import { HttpClient, HttpClientRequest, HttpRouter, HttpServer } from "effect/unstable/http" diff --git a/packages/opencode/test/server/httpapi-exercise/environment.ts b/packages/opencode/test/server/httpapi-exercise/environment.ts index 9d3eaa0e5329..4da361fcd0c6 100644 --- a/packages/opencode/test/server/httpapi-exercise/environment.ts +++ b/packages/opencode/test/server/httpapi-exercise/environment.ts @@ -1,4 +1,4 @@ -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Effect } from "effect" import path from "path" diff --git a/packages/opencode/test/server/httpapi-exercise/runner.ts b/packages/opencode/test/server/httpapi-exercise/runner.ts index 37e24b790bf2..2a05f26e8066 100644 --- a/packages/opencode/test/server/httpapi-exercise/runner.ts +++ b/packages/opencode/test/server/httpapi-exercise/runner.ts @@ -1,4 +1,4 @@ -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { ConfigV1 } from "@opencode-ai/core/v1/config/config" import { SessionV1 } from "@opencode-ai/core/v1/session" import { Cause, Duration, Effect, Layer, Scope } from "effect" diff --git a/packages/opencode/test/server/httpapi-experimental.test.ts b/packages/opencode/test/server/httpapi-experimental.test.ts index 171716435697..0c6cf028d50d 100644 --- a/packages/opencode/test/server/httpapi-experimental.test.ts +++ b/packages/opencode/test/server/httpapi-experimental.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Deferred, Effect, Fiber, Layer } from "effect" import { HttpClient, HttpClientResponse } from "effect/unstable/http" import { eq } from "drizzle-orm" diff --git a/packages/opencode/test/server/httpapi-instance.test.ts b/packages/opencode/test/server/httpapi-instance.test.ts index 5bbd6d7cc0d8..cdd86b67d34f 100644 --- a/packages/opencode/test/server/httpapi-instance.test.ts +++ b/packages/opencode/test/server/httpapi-instance.test.ts @@ -1,6 +1,6 @@ import { PermissionV1 } from "@opencode-ai/core/v1/permission" import { NodeHttpServer, NodeServices } from "@effect/platform-node" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { describe, expect } from "bun:test" import { Config, Context, Effect, FileSystem, Layer, Path } from "effect" import { HttpClient, HttpClientRequest, HttpRouter, HttpServer } from "effect/unstable/http" diff --git a/packages/opencode/test/server/httpapi-listen.test.ts b/packages/opencode/test/server/httpapi-listen.test.ts index 585c59cb4317..5e1c4076774e 100644 --- a/packages/opencode/test/server/httpapi-listen.test.ts +++ b/packages/opencode/test/server/httpapi-listen.test.ts @@ -2,7 +2,7 @@ import { afterEach, describe, expect, test } from "bun:test" import net from "node:net" import path from "node:path" import { pathToFileURL } from "node:url" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Server } from "../../src/server/server" import { PtyPaths } from "../../src/server/routes/instance/httpapi/groups/pty" import { withTimeout } from "../../src/util/timeout" diff --git a/packages/opencode/test/server/httpapi-mdns.test.ts b/packages/opencode/test/server/httpapi-mdns.test.ts index 6dc122384e98..94ae86505fc1 100644 --- a/packages/opencode/test/server/httpapi-mdns.test.ts +++ b/packages/opencode/test/server/httpapi-mdns.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect, mock, test } from "bun:test" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { withTimeout } from "../../src/util/timeout" import { resetDatabase } from "../fixture/db" import { disposeAllInstances } from "../fixture/fixture" diff --git a/packages/opencode/test/server/httpapi-provider.test.ts b/packages/opencode/test/server/httpapi-provider.test.ts index 625ca1896b46..2f254f83c96a 100644 --- a/packages/opencode/test/server/httpapi-provider.test.ts +++ b/packages/opencode/test/server/httpapi-provider.test.ts @@ -1,6 +1,6 @@ import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Effect, Layer } from "effect" import path from "path" import { resetDatabase } from "../fixture/db" diff --git a/packages/opencode/test/server/httpapi-query-schema-drift.test.ts b/packages/opencode/test/server/httpapi-query-schema-drift.test.ts index f5411767ed1f..7d783dfacdd0 100644 --- a/packages/opencode/test/server/httpapi-query-schema-drift.test.ts +++ b/packages/opencode/test/server/httpapi-query-schema-drift.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect } from "bun:test" import { Effect, Schema } from "effect" import { OpenApi } from "effect/unstable/httpapi" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Server } from "../../src/server/server" import { SessionID } from "../../src/session/schema" import { PublicApi } from "../../src/server/routes/instance/httpapi/public" diff --git a/packages/opencode/test/server/httpapi-reference.test.ts b/packages/opencode/test/server/httpapi-reference.test.ts index 9354d527da09..9d8e19e8045c 100644 --- a/packages/opencode/test/server/httpapi-reference.test.ts +++ b/packages/opencode/test/server/httpapi-reference.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect, test } from "bun:test" import path from "path" import { Server } from "../../src/server/server" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { resetDatabase } from "../fixture/db" import { disposeAllInstances, tmpdir } from "../fixture/fixture" import { Effect } from "effect" diff --git a/packages/opencode/test/server/httpapi-schema-error-body.test.ts b/packages/opencode/test/server/httpapi-schema-error-body.test.ts index 4ea6fd38e846..de493b0d7575 100644 --- a/packages/opencode/test/server/httpapi-schema-error-body.test.ts +++ b/packages/opencode/test/server/httpapi-schema-error-body.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import { HttpClientResponse } from "effect/unstable/http" import { eq } from "drizzle-orm" diff --git a/packages/opencode/test/server/httpapi-sdk.test.ts b/packages/opencode/test/server/httpapi-sdk.test.ts index a6f308f0329e..31d5df137608 100644 --- a/packages/opencode/test/server/httpapi-sdk.test.ts +++ b/packages/opencode/test/server/httpapi-sdk.test.ts @@ -6,10 +6,10 @@ import type * as Scope from "effect/Scope" import { HttpServer } from "effect/unstable/http" import { ChildProcessSpawner } from "effect/unstable/process" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { Flag } from "@opencode-ai/core/flag/flag" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { Flag } from "@opencode-ai/util/flag" import { createOpencodeClient } from "@opencode-ai/sdk/v2" import { validateSession } from "../../src/cli/tui/validate-session" import { InstanceBootstrap } from "../../src/project/bootstrap" diff --git a/packages/opencode/test/server/httpapi-session.test.ts b/packages/opencode/test/server/httpapi-session.test.ts index fab8d4e57b96..1be69d584013 100644 --- a/packages/opencode/test/server/httpapi-session.test.ts +++ b/packages/opencode/test/server/httpapi-session.test.ts @@ -8,9 +8,9 @@ import { Cause, Config, Effect, Exit, Layer } from "effect" import { HttpClient, HttpClientRequest, HttpClientResponse, HttpRouter, HttpServer } from "effect/unstable/http" import { layerWebSocketConstructorGlobal } from "effect/unstable/socket/Socket" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { Flag } from "@opencode-ai/core/flag/flag" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { Flag } from "@opencode-ai/util/flag" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { registerAdapter } from "../../src/control-plane/adapters" import type { WorkspaceAdapter } from "../../src/control-plane/types" diff --git a/packages/opencode/test/server/httpapi-sync.test.ts b/packages/opencode/test/server/httpapi-sync.test.ts index 0577e6bf02d3..e55a0e41132f 100644 --- a/packages/opencode/test/server/httpapi-sync.test.ts +++ b/packages/opencode/test/server/httpapi-sync.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect, mock } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Context, Effect, Layer } from "effect" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { SyncPaths } from "../../src/server/routes/instance/httpapi/groups/sync" import { HttpApiApp } from "../../src/server/routes/instance/httpapi/server" import { Session } from "@/session/session" diff --git a/packages/opencode/test/server/httpapi-ui.test.ts b/packages/opencode/test/server/httpapi-ui.test.ts index 2f10193f3d41..8b0fbc079cdd 100644 --- a/packages/opencode/test/server/httpapi-ui.test.ts +++ b/packages/opencode/test/server/httpapi-ui.test.ts @@ -1,6 +1,6 @@ import { createHash } from "node:crypto" import { describe, expect } from "bun:test" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { ConfigProvider, Effect, Layer, Option } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { @@ -12,7 +12,7 @@ import { HttpServerRequest, HttpServerResponse, } from "effect/unstable/http" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { RuntimeFlags } from "../../src/effect/runtime-flags" import { ServerAuth } from "../../src/server/auth" import { authorizationRouterMiddleware } from "../../src/server/routes/instance/httpapi/middleware/authorization" diff --git a/packages/opencode/test/server/httpapi-workspace.test.ts b/packages/opencode/test/server/httpapi-workspace.test.ts index 4cb9f55c847e..27b9c64f0752 100644 --- a/packages/opencode/test/server/httpapi-workspace.test.ts +++ b/packages/opencode/test/server/httpapi-workspace.test.ts @@ -3,8 +3,8 @@ import { mkdir } from "node:fs/promises" import path from "node:path" import { Effect, Layer, Stream } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { Flag } from "@opencode-ai/core/flag/flag" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { Flag } from "@opencode-ai/util/flag" import { registerAdapter } from "../../src/control-plane/adapters" import { WorkspaceV2 } from "@opencode-ai/core/workspace" import type { WorkspaceAdapter } from "../../src/control-plane/types" diff --git a/packages/opencode/test/server/negative-tokens-regression.test.ts b/packages/opencode/test/server/negative-tokens-regression.test.ts index 453aa189d5a1..ab4ab0b0982c 100644 --- a/packages/opencode/test/server/negative-tokens-regression.test.ts +++ b/packages/opencode/test/server/negative-tokens-regression.test.ts @@ -6,7 +6,7 @@ // strict `NonNegativeInt` schema then made every load of the message list // fail to encode, killing Desktop boot for every user with such a row. import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import { eq } from "drizzle-orm" diff --git a/packages/opencode/test/server/project-copy.test.ts b/packages/opencode/test/server/project-copy.test.ts index 0f783622a6cc..17ffbebbd0ce 100644 --- a/packages/opencode/test/server/project-copy.test.ts +++ b/packages/opencode/test/server/project-copy.test.ts @@ -3,10 +3,10 @@ import { $ } from "bun" import fs from "fs/promises" import path from "path" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import { HttpClientResponse } from "effect/unstable/http" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Database } from "@opencode-ai/core/database/database" import { Snapshot } from "@/snapshot" import { InstanceBootstrap } from "@/project/bootstrap" diff --git a/packages/opencode/test/server/project-init-git.test.ts b/packages/opencode/test/server/project-init-git.test.ts index 4474bea7d416..c7fbb5eef920 100644 --- a/packages/opencode/test/server/project-init-git.test.ts +++ b/packages/opencode/test/server/project-init-git.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect } from "bun:test" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Effect, Layer } from "effect" import { HttpClientResponse } from "effect/unstable/http" import path from "path" diff --git a/packages/opencode/test/server/session-actions.test.ts b/packages/opencode/test/server/session-actions.test.ts index 4aa750c39dbf..516ffee336d2 100644 --- a/packages/opencode/test/server/session-actions.test.ts +++ b/packages/opencode/test/server/session-actions.test.ts @@ -1,5 +1,5 @@ import { afterEach, describe, expect, mock } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Fiber, Layer } from "effect" import { Session as SessionNs } from "@/session/session" import { Job } from "@/job" diff --git a/packages/opencode/test/server/session-diff-missing-patch.test.ts b/packages/opencode/test/server/session-diff-missing-patch.test.ts index d2a4211ff1a9..119eb3efae2c 100644 --- a/packages/opencode/test/server/session-diff-missing-patch.test.ts +++ b/packages/opencode/test/server/session-diff-missing-patch.test.ts @@ -11,7 +11,7 @@ * asserts that GET /session//diff returns 200 with empty data. */ import { afterEach, describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import { SessionPaths } from "@/server/routes/instance/httpapi/groups/session" import { Session } from "@/session/session" diff --git a/packages/opencode/test/server/session-list.test.ts b/packages/opencode/test/server/session-list.test.ts index 354a578b23c9..b9a5f01a8b64 100644 --- a/packages/opencode/test/server/session-list.test.ts +++ b/packages/opencode/test/server/session-list.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect } from "bun:test" import { Effect } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Database } from "@opencode-ai/core/database/database" import { SessionProjector } from "@opencode-ai/core/session/projector" import { Session as SessionNs } from "@/session/session" diff --git a/packages/opencode/test/server/session-messages.test.ts b/packages/opencode/test/server/session-messages.test.ts index c47913bde5ab..9a51bc0d3942 100644 --- a/packages/opencode/test/server/session-messages.test.ts +++ b/packages/opencode/test/server/session-messages.test.ts @@ -1,6 +1,6 @@ import { afterEach, describe, expect } from "bun:test" import { SessionV1 } from "@opencode-ai/core/v1/session" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import { HttpClientResponse } from "effect/unstable/http" import { Session as SessionNs } from "@/session/session" diff --git a/packages/opencode/test/server/session-select.test.ts b/packages/opencode/test/server/session-select.test.ts index 82a8ad93955c..f36eb4f2ccf9 100644 --- a/packages/opencode/test/server/session-select.test.ts +++ b/packages/opencode/test/server/session-select.test.ts @@ -1,5 +1,5 @@ import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import { Session } from "@/session/session" import { TestInstance } from "../fixture/fixture" diff --git a/packages/opencode/test/server/worktree-endpoint-repro.test.ts b/packages/opencode/test/server/worktree-endpoint-repro.test.ts index 62a61858861c..64a0e9b78f20 100644 --- a/packages/opencode/test/server/worktree-endpoint-repro.test.ts +++ b/packages/opencode/test/server/worktree-endpoint-repro.test.ts @@ -1,6 +1,6 @@ import { describe, expect } from "bun:test" import { Effect, Layer, Queue } from "effect" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { GlobalBus, type GlobalEvent } from "@/bus/global" import { Worktree } from "@/worktree" import { Server } from "../../src/server/server" diff --git a/packages/opencode/test/session/compaction.test.ts b/packages/opencode/test/session/compaction.test.ts index 44a0da29b118..09507c7ef6fe 100644 --- a/packages/opencode/test/session/compaction.test.ts +++ b/packages/opencode/test/session/compaction.test.ts @@ -25,14 +25,14 @@ import { Provider } from "@/provider/provider" import * as SessionProcessorModule from "../../src/session/processor" import { ProviderTest } from "../fake/provider" import { testEffect } from "../lib/effect" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { TestConfig } from "../fixture/config" import { RuntimeFlags } from "@/effect/runtime-flags" import { LLMEvent, Usage } from "@opencode-ai/ai" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" const summary = Layer.succeed( SessionSummary.Service, diff --git a/packages/opencode/test/session/instruction.test.ts b/packages/opencode/test/session/instruction.test.ts index cdbc6e66d70d..5a5a7dd317f2 100644 --- a/packages/opencode/test/session/instruction.test.ts +++ b/packages/opencode/test/session/instruction.test.ts @@ -2,12 +2,12 @@ import { describe, expect, test } from "bun:test" import { SessionV1 } from "@opencode-ai/core/v1/session" import path from "path" import { Effect, FileSystem, Layer } from "effect" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Instruction } from "../../src/session/instruction" import type { MessageV2 } from "../../src/session/message-v2" import { MessageID, PartID, SessionID } from "../../src/session/schema" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { RuntimeFlags } from "../../src/effect/runtime-flags" import { provideInstance, provideTmpdirInstance, tmpdirScoped } from "../fixture/fixture" import { testEffect } from "../lib/effect" @@ -15,8 +15,8 @@ import { TestConfig } from "../fixture/config" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" import { InstanceStore } from "@/project/instance-store" import { InstanceBootstrap } from "@/project/bootstrap" import { Config } from "@/config/config" diff --git a/packages/opencode/test/session/llm-native-recorded.test.ts b/packages/opencode/test/session/llm-native-recorded.test.ts index 2fe945ea4909..1ae8515f035f 100644 --- a/packages/opencode/test/session/llm-native-recorded.test.ts +++ b/packages/opencode/test/session/llm-native-recorded.test.ts @@ -22,8 +22,8 @@ import { testEffect } from "../lib/effect" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" const FIXTURES_DIR = path.join(import.meta.dir, "../fixtures/recordings") diff --git a/packages/opencode/test/session/llm.test.ts b/packages/opencode/test/session/llm.test.ts index 4e431ecaeb95..35f3d6940f61 100644 --- a/packages/opencode/test/session/llm.test.ts +++ b/packages/opencode/test/session/llm.test.ts @@ -25,8 +25,8 @@ import { Session as SessionNs } from "@/session/session" import { ProviderV2 } from "@opencode-ai/core/provider" import { ModelV2 } from "@opencode-ai/core/model" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { LayerNodePlatform } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform" type ConfigModel = NonNullable[string]["models"]>[string] diff --git a/packages/opencode/test/session/messages-pagination.test.ts b/packages/opencode/test/session/messages-pagination.test.ts index b67c982ebcd3..eb100e359326 100644 --- a/packages/opencode/test/session/messages-pagination.test.ts +++ b/packages/opencode/test/session/messages-pagination.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { SessionV1 } from "@opencode-ai/core/v1/session" import { SessionProjector } from "@opencode-ai/core/session/projector" import { Effect, Option } from "effect" diff --git a/packages/opencode/test/session/processor-effect.test.ts b/packages/opencode/test/session/processor-effect.test.ts index a599ad78b7eb..1a081bac5e35 100644 --- a/packages/opencode/test/session/processor-effect.test.ts +++ b/packages/opencode/test/session/processor-effect.test.ts @@ -1,6 +1,6 @@ import { SessionV1 } from "@opencode-ai/core/v1/session" import { Database } from "@opencode-ai/core/database/database" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2Bridge } from "@/event-v2-bridge" import { expect } from "bun:test" import { tool } from "ai" @@ -17,7 +17,7 @@ import { SessionProcessor } from "../../src/session/processor" import { MessageID, PartID, SessionID } from "../../src/session/schema" import { SessionStatus } from "../../src/session/status" import { SessionSummary } from "../../src/session/summary" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { provideTmpdirInstance, provideTmpdirServer } from "../fixture/fixture" import { testEffect } from "../lib/effect" import { raw, reply, TestLLMServer } from "../lib/llm-server" diff --git a/packages/opencode/test/session/prompt.test.ts b/packages/opencode/test/session/prompt.test.ts index 420bd493242d..575149406874 100644 --- a/packages/opencode/test/session/prompt.test.ts +++ b/packages/opencode/test/session/prompt.test.ts @@ -1,7 +1,7 @@ import { ConfigV1 } from "@opencode-ai/core/v1/config/config" import { SessionV1 } from "@opencode-ai/core/v1/session" import { Database } from "@opencode-ai/core/database/database" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { SessionProjector } from "@opencode-ai/core/session/projector" import { eq } from "drizzle-orm" import { EventV2Bridge } from "@/event-v2-bridge" @@ -28,7 +28,7 @@ import { Session } from "@/session/session" import { SessionMessageTable } from "@opencode-ai/core/session/sql" import { LLM } from "../../src/session/llm" import { MessageV2 } from "../../src/session/message-v2" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { SessionCompaction } from "../../src/session/compaction" import { SessionSummary } from "../../src/session/summary" import { Instruction } from "../../src/session/instruction" @@ -46,7 +46,7 @@ import { ShellSelect } from "@opencode-ai/core/shell/select" import { Snapshot } from "../../src/snapshot" import { ToolRegistry } from "@/tool/registry" import { Truncate } from "@/tool/truncate" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { Format } from "../../src/format" import { TestInstance } from "../fixture/fixture" diff --git a/packages/opencode/test/session/retry.test.ts b/packages/opencode/test/session/retry.test.ts index 30ac879a6a9d..c591e8edb8cf 100644 --- a/packages/opencode/test/session/retry.test.ts +++ b/packages/opencode/test/session/retry.test.ts @@ -1,11 +1,11 @@ import { describe, expect, test } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { SessionV1 } from "@opencode-ai/core/v1/session" import type { NamedError } from "@opencode-ai/core/util/error" import { APICallError } from "ai" import { setTimeout as sleep } from "node:timers/promises" import { Effect, Schedule, Schema } from "effect" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { SessionRetry } from "../../src/session/retry" import { MessageV2 } from "../../src/session/message-v2" import { ProviderError } from "../../src/provider/error" diff --git a/packages/opencode/test/session/revert-compact.test.ts b/packages/opencode/test/session/revert-compact.test.ts index d3d7ba7aae9b..b6e20213d9ed 100644 --- a/packages/opencode/test/session/revert-compact.test.ts +++ b/packages/opencode/test/session/revert-compact.test.ts @@ -1,10 +1,10 @@ import { describe, expect } from "bun:test" import { SessionV1 } from "@opencode-ai/core/v1/session" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { SessionProjector } from "@opencode-ai/core/session/projector" import fs from "fs/promises" import path from "path" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Effect } from "effect" import { Session } from "@/session/session" diff --git a/packages/opencode/test/session/session.test.ts b/packages/opencode/test/session/session.test.ts index d10918198649..e572f241cd8f 100644 --- a/packages/opencode/test/session/session.test.ts +++ b/packages/opencode/test/session/session.test.ts @@ -6,14 +6,14 @@ import { Deferred, Effect, Exit, Layer } from "effect" import { Session as SessionNs } from "@/session/session" import { MessageV2 } from "../../src/session/message-v2" import { MessageID, PartID, type SessionID } from "../../src/session/schema" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { provideInstance, tmpdirScoped } from "../fixture/fixture" import { testEffect } from "../lib/effect" import { RuntimeFlags } from "@/effect/runtime-flags" import { EventV2Bridge } from "@/event-v2-bridge" import { GlobalBus } from "@/bus/global" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { InstanceStore } from "@/project/instance-store" import { InstanceBootstrap } from "@/project/bootstrap" diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index 1265237840f3..06fabb878e43 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -13,7 +13,7 @@ */ import { expect } from "bun:test" import { Effect, Layer } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import fs from "fs/promises" import path from "path" import { Session } from "@/session/session" @@ -29,7 +29,7 @@ import { TestLLMServer } from "../lib/llm-server" import { LSP } from "@/lsp/lsp" import { MCP } from "../../src/mcp" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { RuntimeFlags } from "@/effect/runtime-flags" const mcp = Layer.succeed( diff --git a/packages/opencode/test/session/structured-output-integration.test.ts b/packages/opencode/test/session/structured-output-integration.test.ts index df5755f89f5e..bbac0167fd74 100644 --- a/packages/opencode/test/session/structured-output-integration.test.ts +++ b/packages/opencode/test/session/structured-output-integration.test.ts @@ -3,7 +3,7 @@ import { SessionV1 } from "@opencode-ai/core/v1/session" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { Effect } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Session } from "@/session/session" import { SessionPrompt } from "../../src/session/prompt" import { MessageV2 } from "../../src/session/message-v2" diff --git a/packages/opencode/test/session/system.test.ts b/packages/opencode/test/session/system.test.ts index d9d47be3df94..4d666ebde52c 100644 --- a/packages/opencode/test/session/system.test.ts +++ b/packages/opencode/test/session/system.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import type { Agent } from "../../src/agent/agent" import { NamedError } from "@opencode-ai/core/util/error" diff --git a/packages/opencode/test/share/share-next.test.ts b/packages/opencode/test/share/share-next.test.ts index fe036be8c959..c3218aea2a7b 100644 --- a/packages/opencode/test/share/share-next.test.ts +++ b/packages/opencode/test/share/share-next.test.ts @@ -1,9 +1,9 @@ import { beforeEach, describe, expect } from "bun:test" import { Effect, Exit, Layer, Option } from "effect" import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { SessionProjector } from "@opencode-ai/core/session/projector" import { AccessToken, AccountID, OrgID, RefreshToken } from "../../src/account/schema" diff --git a/packages/opencode/test/skill/discovery.test.ts b/packages/opencode/test/skill/discovery.test.ts index bdb60dfddc8d..100cab5a8c53 100644 --- a/packages/opencode/test/skill/discovery.test.ts +++ b/packages/opencode/test/skill/discovery.test.ts @@ -1,9 +1,9 @@ import { describe, expect, beforeAll, afterAll } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Effect } from "effect" import { Discovery } from "../../src/skill/discovery" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Filesystem } from "@/util/filesystem" import { rm } from "fs/promises" import path from "path" diff --git a/packages/opencode/test/skill/skill.test.ts b/packages/opencode/test/skill/skill.test.ts index f365b63f0d72..48827c1f2699 100644 --- a/packages/opencode/test/skill/skill.test.ts +++ b/packages/opencode/test/skill/skill.test.ts @@ -1,14 +1,14 @@ import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import { Skill } from "../../src/skill" import { Discovery } from "../../src/skill/discovery" import { RuntimeFlags } from "../../src/effect/runtime-flags" import { EventV2Bridge } from "../../src/event-v2-bridge" import { Config } from "../../src/config/config" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { provideInstance, provideTmpdirInstance, testInstanceStoreLayer, tmpdir } from "../fixture/fixture" import { testEffect } from "../lib/effect" import path from "path" diff --git a/packages/opencode/test/snapshot/snapshot.test.ts b/packages/opencode/test/snapshot/snapshot.test.ts index a39624087c63..d5ee2131e4c1 100644 --- a/packages/opencode/test/snapshot/snapshot.test.ts +++ b/packages/opencode/test/snapshot/snapshot.test.ts @@ -1,8 +1,8 @@ import { afterEach, expect } from "bun:test" import { $ } from "bun" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { FSUtil } from "@opencode-ai/util/fs-util" import fs from "fs/promises" import path from "path" import { Effect, Fiber, Layer } from "effect" diff --git a/packages/opencode/test/storage/storage.test.ts b/packages/opencode/test/storage/storage.test.ts index c143429b7bdc..7ff80ccba2e7 100644 --- a/packages/opencode/test/storage/storage.test.ts +++ b/packages/opencode/test/storage/storage.test.ts @@ -1,11 +1,11 @@ import { describe, expect } from "bun:test" import path from "path" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Exit, Layer } from "effect" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Git } from "../../src/git" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { Storage } from "@/storage/storage" import { tmpdirScoped } from "../fixture/fixture" import { testEffect } from "../lib/effect" diff --git a/packages/opencode/test/tool/apply_patch.test.ts b/packages/opencode/test/tool/apply_patch.test.ts index 57febfa06e63..dc55df9d31d1 100644 --- a/packages/opencode/test/tool/apply_patch.test.ts +++ b/packages/opencode/test/tool/apply_patch.test.ts @@ -1,11 +1,11 @@ import { describe, expect } from "bun:test" import path from "path" import * as fs from "fs/promises" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Effect, Exit, Layer } from "effect" import { ApplyPatchTool } from "../../src/tool/apply_patch" import { LSP } from "@/lsp/lsp" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Format } from "../../src/format" import { Agent } from "../../src/agent/agent" import { EventV2Bridge } from "../../src/event-v2-bridge" diff --git a/packages/opencode/test/tool/edit.test.ts b/packages/opencode/test/tool/edit.test.ts index 46155a50918e..1945e916f89d 100644 --- a/packages/opencode/test/tool/edit.test.ts +++ b/packages/opencode/test/tool/edit.test.ts @@ -1,12 +1,12 @@ import { afterEach, describe, expect } from "bun:test" import path from "path" import fs from "fs/promises" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Deferred, Effect, Exit, Fiber, Layer } from "effect" import { EditTool } from "../../src/tool/edit" import { disposeAllInstances, TestInstance } from "../fixture/fixture" import { LSP } from "@/lsp/lsp" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Format } from "../../src/format" import { Agent } from "../../src/agent/agent" import { EventV2Bridge } from "../../src/event-v2-bridge" diff --git a/packages/opencode/test/tool/external-directory.test.ts b/packages/opencode/test/tool/external-directory.test.ts index d43accfb70dc..4e107f82e0cc 100644 --- a/packages/opencode/test/tool/external-directory.test.ts +++ b/packages/opencode/test/tool/external-directory.test.ts @@ -1,9 +1,9 @@ import { PermissionV1 } from "@opencode-ai/core/v1/permission" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { describe, expect } from "bun:test" import path from "path" import { Effect } from "effect" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import type { Tool } from "@/tool/tool" import { assertExternalDirectoryEffect } from "../../src/tool/external-directory" import { Filesystem } from "@/util/filesystem" diff --git a/packages/opencode/test/tool/glob.test.ts b/packages/opencode/test/tool/glob.test.ts index 018b1a0b9a20..f2d418534a9b 100644 --- a/packages/opencode/test/tool/glob.test.ts +++ b/packages/opencode/test/tool/glob.test.ts @@ -1,14 +1,14 @@ import { PermissionV1 } from "@opencode-ai/core/v1/permission" import { describe, expect } from "bun:test" import path from "path" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Effect, Exit, Layer } from "effect" import { GlobTool } from "../../src/tool/glob" import { SessionID, MessageID } from "../../src/session/schema" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Ripgrep } from "@opencode-ai/core/ripgrep" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { Truncate } from "@/tool/truncate" import { Agent } from "../../src/agent/agent" import { TestInstance, tmpdirScoped } from "../fixture/fixture" diff --git a/packages/opencode/test/tool/grep.test.ts b/packages/opencode/test/tool/grep.test.ts index 81b74aa8baf0..3b7d20ccc015 100644 --- a/packages/opencode/test/tool/grep.test.ts +++ b/packages/opencode/test/tool/grep.test.ts @@ -3,17 +3,17 @@ import { describe, expect } from "bun:test" import fs from "fs/promises" import os from "os" import path from "path" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import { GrepTool } from "../../src/tool/grep" import { provideInstance, testInstanceStoreLayer, TestInstance, tmpdirScoped } from "../fixture/fixture" import { SessionID, MessageID } from "../../src/session/schema" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { Global } from "@opencode-ai/core/global" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { Global } from "@opencode-ai/util/global" import { Truncate } from "@/tool/truncate" import { Agent } from "../../src/agent/agent" import { Ripgrep } from "@opencode-ai/core/ripgrep" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { testEffect } from "../lib/effect" import { Permission } from "../../src/permission" import type * as Tool from "../../src/tool/tool" diff --git a/packages/opencode/test/tool/lsp.test.ts b/packages/opencode/test/tool/lsp.test.ts index 8735fdb7b29d..9f0fe2782bca 100644 --- a/packages/opencode/test/tool/lsp.test.ts +++ b/packages/opencode/test/tool/lsp.test.ts @@ -1,11 +1,11 @@ import { PermissionV1 } from "@opencode-ai/core/v1/permission" import { afterEach, describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import path from "path" import { Agent } from "../../src/agent/agent" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { FSUtil } from "@opencode-ai/util/fs-util" import { LSP } from "@/lsp/lsp" import { Permission } from "../../src/permission" import { MessageID, SessionID } from "../../src/session/schema" diff --git a/packages/opencode/test/tool/question.test.ts b/packages/opencode/test/tool/question.test.ts index d8c6df77e8a2..ef20f9b7643d 100644 --- a/packages/opencode/test/tool/question.test.ts +++ b/packages/opencode/test/tool/question.test.ts @@ -1,5 +1,5 @@ import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Fiber, Queue } from "effect" import { QuestionTool } from "../../src/tool/question" import { Question } from "../../src/question" diff --git a/packages/opencode/test/tool/read.test.ts b/packages/opencode/test/tool/read.test.ts index c1ef61b227dd..7451450d4ec2 100644 --- a/packages/opencode/test/tool/read.test.ts +++ b/packages/opencode/test/tool/read.test.ts @@ -1,12 +1,12 @@ import { PermissionV1 } from "@opencode-ai/core/v1/permission" import { afterEach, describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Effect, Exit, Layer, Stream } from "effect" import path from "path" import { Agent } from "../../src/agent/agent" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { FSUtil } from "@opencode-ai/core/fs-util" -import { Global } from "@opencode-ai/core/global" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { FSUtil } from "@opencode-ai/util/fs-util" +import { Global } from "@opencode-ai/util/global" import { Config } from "@/config/config" import { RuntimeFlags } from "@/effect/runtime-flags" import { Ripgrep } from "@opencode-ai/core/ripgrep" diff --git a/packages/opencode/test/tool/registry.test.ts b/packages/opencode/test/tool/registry.test.ts index 456d66595064..65372dc4cf48 100644 --- a/packages/opencode/test/tool/registry.test.ts +++ b/packages/opencode/test/tool/registry.test.ts @@ -3,7 +3,7 @@ import path from "path" import fs from "fs/promises" import { fileURLToPath, pathToFileURL } from "url" import { Effect, Layer, Result, Schema } from "effect" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { ToolRegistry } from "@/tool/registry" import { Tool } from "@/tool/tool" import { disposeAllInstances, TestInstance } from "../fixture/fixture" diff --git a/packages/opencode/test/tool/shell.test.ts b/packages/opencode/test/tool/shell.test.ts index 3a1dacc6c33a..445eb06a9bb2 100644 --- a/packages/opencode/test/tool/shell.test.ts +++ b/packages/opencode/test/tool/shell.test.ts @@ -1,6 +1,6 @@ import { PermissionV1 } from "@opencode-ai/core/v1/permission" import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Effect, Exit, Layer } from "effect" import type * as Scope from "effect/Scope" import os from "os" @@ -14,8 +14,8 @@ import type { Permission } from "../../src/permission" import { Agent } from "../../src/agent/agent" import { Truncate } from "@/tool/truncate" import { SessionID, MessageID } from "../../src/session/schema" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Plugin } from "../../src/plugin" import { testEffect } from "../lib/effect" import { Tool } from "@/tool/tool" diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index 1c25b253cd56..bae878a3a796 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -1,6 +1,6 @@ import { PermissionV1 } from "@opencode-ai/core/v1/permission" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { Cause, Effect, Exit, Layer } from "effect" import { afterEach, describe, expect } from "bun:test" diff --git a/packages/opencode/test/tool/task.test.ts b/packages/opencode/test/tool/task.test.ts index 51694b653e12..4cfeff8651c0 100644 --- a/packages/opencode/test/tool/task.test.ts +++ b/packages/opencode/test/tool/task.test.ts @@ -1,14 +1,14 @@ import { afterEach, describe, expect } from "bun:test" import { SessionV1 } from "@opencode-ai/core/v1/session" import { Database } from "@opencode-ai/core/database/database" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { SessionProjector } from "@opencode-ai/core/session/projector" import { Deferred, Effect, Exit, Fiber, Layer } from "effect" import { Agent } from "../../src/agent/agent" import { Job } from "@/job" import { EventV2Bridge } from "@/event-v2-bridge" import { Config } from "@/config/config" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { Ripgrep } from "@opencode-ai/core/ripgrep" import { Session } from "@/session/session" import type { SessionPrompt } from "../../src/session/prompt" diff --git a/packages/opencode/test/tool/tool-define.test.ts b/packages/opencode/test/tool/tool-define.test.ts index e254e5050e90..a71f87ee6170 100644 --- a/packages/opencode/test/tool/tool-define.test.ts +++ b/packages/opencode/test/tool/tool-define.test.ts @@ -1,5 +1,5 @@ import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Cause, Effect, Exit, Schema } from "effect" import { Agent } from "../../src/agent/agent" import { MessageID, SessionID } from "../../src/session/schema" diff --git a/packages/opencode/test/tool/truncation.test.ts b/packages/opencode/test/tool/truncation.test.ts index d575a58ffa34..920b0e27ca53 100644 --- a/packages/opencode/test/tool/truncation.test.ts +++ b/packages/opencode/test/tool/truncation.test.ts @@ -1,8 +1,8 @@ import { describe, test, expect } from "bun:test" import { ConfigV1 } from "@opencode-ai/core/v1/config/config" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { filesystem } from "@opencode-ai/core/effect/app-node-platform" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { filesystem } from "@opencode-ai/util/effect/app-node-platform" +import { FSUtil } from "@opencode-ai/util/fs-util" import { Effect, FileSystem } from "effect" import { Truncate } from "@/tool/truncate" import { Config } from "@/config/config" diff --git a/packages/opencode/test/tool/webfetch.test.ts b/packages/opencode/test/tool/webfetch.test.ts index 05599a6784e6..ae04e61d7ad0 100644 --- a/packages/opencode/test/tool/webfetch.test.ts +++ b/packages/opencode/test/tool/webfetch.test.ts @@ -1,6 +1,6 @@ import { describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { Effect, Layer } from "effect" import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { Agent } from "../../src/agent/agent" diff --git a/packages/opencode/test/tool/write.test.ts b/packages/opencode/test/tool/write.test.ts index 4f897dc87591..a9097071251e 100644 --- a/packages/opencode/test/tool/write.test.ts +++ b/packages/opencode/test/tool/write.test.ts @@ -1,18 +1,18 @@ import { afterEach, describe, expect } from "bun:test" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { Effect, Layer } from "effect" import path from "path" import fs from "fs/promises" import { WriteTool } from "../../src/tool/write" import { LSP } from "@/lsp/lsp" -import { FSUtil } from "@opencode-ai/core/fs-util" +import { FSUtil } from "@opencode-ai/util/fs-util" import { EventV2Bridge } from "../../src/event-v2-bridge" import { Format } from "../../src/format" import { Truncate } from "@/tool/truncate" import { Tool } from "@/tool/tool" import { Agent } from "../../src/agent/agent" import { SessionID, MessageID } from "../../src/session/schema" -import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner" +import { CrossSpawnSpawner } from "@opencode-ai/util/cross-spawn-spawner" import { disposeAllInstances, TestInstance } from "../fixture/fixture" import { testEffect } from "../lib/effect" diff --git a/packages/opencode/test/util/glob.test.ts b/packages/opencode/test/util/glob.test.ts index 4ed2f71f3928..0ff307d7d9cc 100644 --- a/packages/opencode/test/util/glob.test.ts +++ b/packages/opencode/test/util/glob.test.ts @@ -1,7 +1,7 @@ import { describe, test, expect } from "bun:test" import path from "path" import fs from "fs/promises" -import { Glob } from "@opencode-ai/core/util/glob" +import { Glob } from "@opencode-ai/util/glob" import { tmpdir } from "../fixture/fixture" describe("Glob", () => { diff --git a/packages/opencode/test/util/repository.test.ts b/packages/opencode/test/util/repository.test.ts index 5c619f2aaf20..e60f4bc88e9b 100644 --- a/packages/opencode/test/util/repository.test.ts +++ b/packages/opencode/test/util/repository.test.ts @@ -1,7 +1,7 @@ import { describe, expect, test } from "bun:test" import path from "path" import { pathToFileURL } from "url" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { InvalidRepositoryBranchError, InvalidRepositoryReferenceError, diff --git a/packages/sdk-next/package.json b/packages/sdk-next/package.json index 8ef199b6802a..cb3a1580ce94 100644 --- a/packages/sdk-next/package.json +++ b/packages/sdk-next/package.json @@ -17,6 +17,7 @@ "@opencode-ai/plugin": "workspace:*", "@opencode-ai/schema": "workspace:*", "@opencode-ai/server": "workspace:*", + "@opencode-ai/util": "workspace:*", "effect": "catalog:" }, "devDependencies": { diff --git a/packages/sdk-next/test/embedded.test.ts b/packages/sdk-next/test/embedded.test.ts index 2214ebf87303..a34ce9f97464 100644 --- a/packages/sdk-next/test/embedded.test.ts +++ b/packages/sdk-next/test/embedded.test.ts @@ -1,7 +1,7 @@ import fs from "fs/promises" import path from "path" import { expect } from "bun:test" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { Deferred, Effect, Latch, Layer, Option, Ref, Schema, Stream } from "effect" import { testEffect } from "../../core/test/lib/effect" import { tmpdir } from "../../core/test/fixture/tmpdir" diff --git a/packages/server/package.json b/packages/server/package.json index cec96339d01b..ea9d7cd9691d 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -17,6 +17,7 @@ "@opencode-ai/core": "workspace:*", "@opencode-ai/protocol": "workspace:*", "@opencode-ai/simulation": "workspace:*", + "@opencode-ai/util": "workspace:*", "drizzle-orm": "catalog:", "effect": "catalog:" }, diff --git a/packages/server/src/handlers/health.ts b/packages/server/src/handlers/health.ts index 111113efd464..19d32a6b1066 100644 --- a/packages/server/src/handlers/health.ts +++ b/packages/server/src/handlers/health.ts @@ -1,4 +1,4 @@ -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Effect } from "effect" import { HttpApiBuilder } from "effect/unstable/httpapi" import { Api } from "../api" diff --git a/packages/server/src/process.ts b/packages/server/src/process.ts index 8fddbe3e2aea..3425ff9332b3 100644 --- a/packages/server/src/process.ts +++ b/packages/server/src/process.ts @@ -1,7 +1,7 @@ export * as ServerProcess from "./process" import { NodeHttpServer, NodeHttpServerRequest } from "@effect/platform-node" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { SessionRestart } from "@opencode-ai/core/session/execution/restart" import { ServiceStatus } from "@opencode-ai/protocol/groups/health" import { hasPtyConnectTicketURL } from "@opencode-ai/protocol/groups/pty" diff --git a/packages/server/src/pty-environment.ts b/packages/server/src/pty-environment.ts index 3e18a6f9258f..0d8e3381a5a4 100644 --- a/packages/server/src/pty-environment.ts +++ b/packages/server/src/pty-environment.ts @@ -1,7 +1,7 @@ export * as PtyEnvironment from "./pty-environment" import { Context, Effect, Layer } from "effect" -import { makeGlobalNode } from "@opencode-ai/core/effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" export interface Interface { readonly get: (input: { directory: string; cwd: string }) => Effect.Effect> diff --git a/packages/server/src/routes.ts b/packages/server/src/routes.ts index 7a1a1d82bee1..9602941d8dd7 100644 --- a/packages/server/src/routes.ts +++ b/packages/server/src/routes.ts @@ -1,10 +1,10 @@ import { Database } from "@opencode-ai/core/database/database" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" import { EventV2 } from "@opencode-ai/core/event" import { EventLogger } from "@opencode-ai/core/event-logger" -import { Observability } from "@opencode-ai/core/observability" +import { Observability } from "@opencode-ai/util/observability" import { Credential } from "@opencode-ai/core/credential" import { PermissionSaved } from "@opencode-ai/core/permission/saved" import { PtyTicket } from "@opencode-ai/core/pty/ticket" diff --git a/packages/simulation/package.json b/packages/simulation/package.json index 010097c4bdaf..23a7d4836e22 100644 --- a/packages/simulation/package.json +++ b/packages/simulation/package.json @@ -25,6 +25,7 @@ "@opencode-ai/core": "workspace:*", "@opencode-ai/ai": "workspace:*", "@opencode-ai/plugin": "workspace:*", + "@opencode-ai/util": "workspace:*", "@opentui/core": "catalog:", "effect": "catalog:" }, diff --git a/packages/simulation/src/backend/index.ts b/packages/simulation/src/backend/index.ts index a1044058db16..4f569e25c9e3 100644 --- a/packages/simulation/src/backend/index.ts +++ b/packages/simulation/src/backend/index.ts @@ -1,6 +1,6 @@ -import { LayerNode } from "@opencode-ai/core/effect/layer-node" -import { makeGlobalNode } from "@opencode-ai/core/effect/app-node" -import { httpClient } from "@opencode-ai/core/effect/app-node-platform" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" +import { httpClient } from "@opencode-ai/util/effect/app-node-platform" import { SdkPlugins } from "@opencode-ai/core/plugin/sdk" import { Config, Effect, Layer } from "effect" import { HttpClient } from "effect/unstable/http" diff --git a/packages/simulation/src/backend/simulated-provider.ts b/packages/simulation/src/backend/simulated-provider.ts index a2470a5d6f2a..7d1a67470170 100644 --- a/packages/simulation/src/backend/simulated-provider.ts +++ b/packages/simulation/src/backend/simulated-provider.ts @@ -1,4 +1,4 @@ -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { SdkPlugins } from "@opencode-ai/core/plugin/sdk" import { Plugin } from "@opencode-ai/plugin/v2/effect" import { Tool } from "@opencode-ai/plugin/v2/effect/tool" diff --git a/packages/simulation/src/frontend/server.ts b/packages/simulation/src/frontend/server.ts index 73ad44e4a95c..4aaabd882c44 100644 --- a/packages/simulation/src/frontend/server.ts +++ b/packages/simulation/src/frontend/server.ts @@ -1,4 +1,4 @@ -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { Effect } from "effect" import { SimulationControlServer } from "../control-server" import { SimulationProtocol } from "../protocol" diff --git a/packages/simulation/test/simulated-provider.test.ts b/packages/simulation/test/simulated-provider.test.ts index 271ef58009f2..b91922f1386e 100644 --- a/packages/simulation/test/simulated-provider.test.ts +++ b/packages/simulation/test/simulated-provider.test.ts @@ -5,9 +5,9 @@ import { join } from "node:path" import { AgentV2 } from "@opencode-ai/core/agent" import { Config } from "@opencode-ai/core/config" import { Database } from "@opencode-ai/core/database/database" -import { makeGlobalNode } from "@opencode-ai/core/effect/app-node" +import { makeGlobalNode } from "@opencode-ai/util/effect/app-node" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { LayerNode } from "@opencode-ai/core/effect/layer-node" +import { LayerNode } from "@opencode-ai/util/effect/layer-node" import { EventV2 } from "@opencode-ai/core/event" import { Location } from "@opencode-ai/core/location" import { LocationServiceMap } from "@opencode-ai/core/location-services" diff --git a/packages/tui/package.json b/packages/tui/package.json index 6f82926512c5..9ffd89aa2a94 100644 --- a/packages/tui/package.json +++ b/packages/tui/package.json @@ -83,6 +83,7 @@ "@opencode-ai/schema": "workspace:*", "@opencode-ai/simulation": "workspace:*", "@opencode-ai/ui": "workspace:*", + "@opencode-ai/util": "workspace:*", "@opentui/core": "catalog:", "@opentui/keymap": "catalog:", "@opentui/solid": "catalog:", diff --git a/packages/tui/src/app.tsx b/packages/tui/src/app.tsx index 0690d3fba75d..f1aa84fa3f75 100644 --- a/packages/tui/src/app.tsx +++ b/packages/tui/src/app.tsx @@ -3,8 +3,8 @@ import { registerOpencodeSpinner } from "./component/register-spinner" import { Deferred, Effect } from "effect" import { Service, type Endpoint } from "@opencode-ai/client/effect/service" import { OpenCode } from "@opencode-ai/client" -import { Global } from "@opencode-ai/core/global" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Global } from "@opencode-ai/util/global" +import { Flag } from "@opencode-ai/util/flag" import { ClipboardProvider, useClipboard } from "./context/clipboard" import { LogProvider, useLog, type LogSink } from "./context/log" import { ExitProvider, useExit } from "./context/exit" diff --git a/packages/tui/src/component/dialog-debug.tsx b/packages/tui/src/component/dialog-debug.tsx index deab786726bd..623acb741b65 100644 --- a/packages/tui/src/component/dialog-debug.tsx +++ b/packages/tui/src/component/dialog-debug.tsx @@ -1,6 +1,6 @@ import { TextAttributes } from "@opentui/core" import { createMemo, createSignal, For } from "solid-js" -import { InstallationChannel, InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationChannel, InstallationVersion } from "@opencode-ai/util/installation/version" import { Keymap } from "../context/keymap" import { useTheme } from "../context/theme" import { useDialog } from "../ui/dialog" diff --git a/packages/tui/src/component/error-component.tsx b/packages/tui/src/component/error-component.tsx index 8d778badca63..c17ee2957319 100644 --- a/packages/tui/src/component/error-component.tsx +++ b/packages/tui/src/component/error-component.tsx @@ -3,7 +3,7 @@ import { useKeyboard, useTerminalDimensions } from "@opentui/solid" import { createSignal, For, Show } from "solid-js" import { getScrollAcceleration } from "../util/scroll" import { useClipboard } from "../context/clipboard" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { useExit } from "../context/exit" import { describeOS, describeTerminal } from "../util/system" diff --git a/packages/tui/src/component/prompt/index.tsx b/packages/tui/src/component/prompt/index.tsx index 44639ab2898e..a30d0f8bad04 100644 --- a/packages/tui/src/component/prompt/index.tsx +++ b/packages/tui/src/component/prompt/index.tsx @@ -12,7 +12,7 @@ import { registerOpencodeSpinner } from "../register-spinner" import path from "path" import { fileURLToPath } from "url" import { useLocal } from "../../context/local" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { useTheme } from "../../context/theme" import { tint } from "../../theme/color" import { EmptyBorder, SplitBorder } from "../../ui/border" diff --git a/packages/tui/src/context/theme.tsx b/packages/tui/src/context/theme.tsx index c9f5f01a6e67..f1ba5155f46d 100644 --- a/packages/tui/src/context/theme.tsx +++ b/packages/tui/src/context/theme.tsx @@ -25,7 +25,7 @@ import { createEffect, createMemo, onCleanup, onMount, type Accessor } from "sol import { createStore, produce } from "solid-js/store" import { createSimpleContext } from "./helper" import { useConfig } from "../config" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { DevTools } from "../devtools" const themePerformance = DevTools.register({ id: "theme-performance", title: "Theme performance" }) diff --git a/packages/tui/src/feature-plugins/home/footer.tsx b/packages/tui/src/feature-plugins/home/footer.tsx index 3ff7b4d433a7..33ac3cc82d97 100644 --- a/packages/tui/src/feature-plugins/home/footer.tsx +++ b/packages/tui/src/feature-plugins/home/footer.tsx @@ -1,5 +1,5 @@ import { Plugin } from "@opencode-ai/plugin/v2/tui" -import { InstallationVersion } from "@opencode-ai/core/installation/version" +import { InstallationVersion } from "@opencode-ai/util/installation/version" import { createMemo, Match, Show, Switch } from "solid-js" import { useTerminalDimensions } from "@opentui/solid" import { useTuiPaths } from "../../context/runtime" diff --git a/packages/tui/src/ui/dialog.tsx b/packages/tui/src/ui/dialog.tsx index 99062e967eeb..a7002e357d77 100644 --- a/packages/tui/src/ui/dialog.tsx +++ b/packages/tui/src/ui/dialog.tsx @@ -5,7 +5,7 @@ import { useTheme } from "../context/theme" import { MouseButton, Renderable, RGBA } from "@opentui/core" import { createStore } from "solid-js/store" import { useToast } from "./toast" -import { Flag } from "@opencode-ai/core/flag/flag" +import { Flag } from "@opencode-ai/util/flag" import { useClipboard } from "../context/clipboard" export function Dialog( diff --git a/packages/tui/test/app-lifecycle.test.tsx b/packages/tui/test/app-lifecycle.test.tsx index a6cd421ea1ab..7f8774906f21 100644 --- a/packages/tui/test/app-lifecycle.test.tsx +++ b/packages/tui/test/app-lifecycle.test.tsx @@ -2,7 +2,7 @@ import { expect, mock, test } from "bun:test" import { createTestRenderer } from "@opentui/core/testing" import { Effect, FileSystem } from "effect" import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder" -import { Global } from "@opencode-ai/core/global" +import { Global } from "@opencode-ai/util/global" import { createEventStream, createFetch, directory, json } from "./fixture/tui-client" test("SIGHUP clears title and disposes scoped resources once", async () => { diff --git a/packages/util/package.json b/packages/util/package.json new file mode 100644 index 000000000000..817c94328fa0 --- /dev/null +++ b/packages/util/package.json @@ -0,0 +1,50 @@ +{ + "$schema": "https://json.schemastore.org/package.json", + "name": "@opencode-ai/util", + "version": "1.18.3", + "private": true, + "type": "module", + "license": "MIT", + "exports": { + "./effect/layer-node": "./src/effect/layer-node.ts", + "./*": "./src/*.ts" + }, + "imports": { + "#runtime-import": { + "bun": "./src/runtime/import.bun.ts", + "node": "./src/runtime/import.node.ts", + "default": "./src/runtime/import.bun.ts" + } + }, + "scripts": { + "typecheck": "tsgo --noEmit" + }, + "dependencies": { + "@effect/opentelemetry": "catalog:", + "@effect/platform-node": "catalog:", + "@npmcli/arborist": "catalog:", + "@npmcli/config": "10.8.1", + "@opencode-ai/ai": "workspace:*", + "@opentelemetry/api": "1.9.0", + "@opentelemetry/context-async-hooks": "2.6.1", + "@opentelemetry/exporter-trace-otlp-http": "0.214.0", + "@opentelemetry/sdk-trace-base": "2.6.1", + "cross-spawn": "catalog:", + "effect": "catalog:", + "glob": "13.0.5", + "mime-types": "3.0.2", + "minimatch": "10.2.5", + "npm-package-arg": "13.0.2", + "resolve.exports": "catalog:", + "xdg-basedir": "5.1.0" + }, + "devDependencies": { + "@tsconfig/bun": "catalog:", + "@types/bun": "catalog:", + "@types/cross-spawn": "catalog:", + "@types/node": "catalog:", + "@types/npm-package-arg": "6.1.4", + "@types/npmcli__arborist": "6.3.3", + "@typescript/native-preview": "catalog:" + } +} diff --git a/packages/core/src/cross-spawn-spawner.ts b/packages/util/src/cross-spawn-spawner.ts similarity index 100% rename from packages/core/src/cross-spawn-spawner.ts rename to packages/util/src/cross-spawn-spawner.ts diff --git a/packages/core/src/util/effect-flock.ts b/packages/util/src/effect-flock.ts similarity index 98% rename from packages/core/src/util/effect-flock.ts rename to packages/util/src/effect-flock.ts index c190d37393e7..7da2cc590ecb 100644 --- a/packages/core/src/util/effect-flock.ts +++ b/packages/util/src/effect-flock.ts @@ -4,9 +4,9 @@ import { randomUUID } from "crypto" import { Context, Effect, Function, Layer, Option, Schedule, Schema } from "effect" import type { FileSystem, Scope } from "effect" import type { PlatformError } from "effect/PlatformError" -import { FSUtil } from "../fs-util" -import { Global } from "../global" -import { makeGlobalNode } from "../effect/app-node" +import { FSUtil } from "./fs-util" +import { Global } from "./global" +import { makeGlobalNode } from "./effect/app-node" import { Hash } from "./hash" export namespace EffectFlock { diff --git a/packages/core/src/effect/app-node-platform.ts b/packages/util/src/effect/app-node-platform.ts similarity index 89% rename from packages/core/src/effect/app-node-platform.ts rename to packages/util/src/effect/app-node-platform.ts index 23b221d17825..213ca758951f 100644 --- a/packages/core/src/effect/app-node-platform.ts +++ b/packages/util/src/effect/app-node-platform.ts @@ -1,8 +1,7 @@ import { NodeFileSystem, NodePath } from "@effect/platform-node" import { LLMClient, RequestExecutor } from "@opencode-ai/ai/route" import { FileSystem, Path } from "effect" -import { FetchHttpClient } from "effect/unstable/http" -import { HttpClient } from "effect/unstable/http" +import { FetchHttpClient, HttpClient } from "effect/unstable/http" import { makeGlobalNode } from "./app-node" export const filesystem = makeGlobalNode({ service: FileSystem.FileSystem, layer: NodeFileSystem.layer, deps: [] }) diff --git a/packages/core/src/effect/app-node.ts b/packages/util/src/effect/app-node.ts similarity index 100% rename from packages/core/src/effect/app-node.ts rename to packages/util/src/effect/app-node.ts diff --git a/packages/core/src/effect/layer-node.ts b/packages/util/src/effect/layer-node.ts similarity index 100% rename from packages/core/src/effect/layer-node.ts rename to packages/util/src/effect/layer-node.ts diff --git a/packages/core/src/effect/memo-map.ts b/packages/util/src/effect/memo-map.ts similarity index 100% rename from packages/core/src/effect/memo-map.ts rename to packages/util/src/effect/memo-map.ts diff --git a/packages/core/src/effect/runtime.ts b/packages/util/src/effect/runtime.ts similarity index 100% rename from packages/core/src/effect/runtime.ts rename to packages/util/src/effect/runtime.ts diff --git a/packages/core/src/effect/service-use.ts b/packages/util/src/effect/service-use.ts similarity index 100% rename from packages/core/src/effect/service-use.ts rename to packages/util/src/effect/service-use.ts diff --git a/packages/core/src/flag/flag.ts b/packages/util/src/flag.ts similarity index 100% rename from packages/core/src/flag/flag.ts rename to packages/util/src/flag.ts diff --git a/packages/core/src/util/flock.ts b/packages/util/src/flock.ts similarity index 100% rename from packages/core/src/util/flock.ts rename to packages/util/src/flock.ts diff --git a/packages/core/src/fs-util.ts b/packages/util/src/fs-util.ts similarity index 99% rename from packages/core/src/fs-util.ts rename to packages/util/src/fs-util.ts index 0c74fbbc35d9..152d2599fd3d 100644 --- a/packages/core/src/fs-util.ts +++ b/packages/util/src/fs-util.ts @@ -5,7 +5,7 @@ import { readdir } from "fs/promises" import { lookup } from "mime-types" import { Context, Effect, FileSystem, Layer, Schema } from "effect" import type { PlatformError } from "effect/PlatformError" -import { Glob } from "./util/glob" +import { Glob } from "./glob" import { serviceUse } from "./effect/service-use" import { makeGlobalNode } from "./effect/app-node" import { filesystem } from "./effect/app-node-platform" diff --git a/packages/core/src/util/glob.ts b/packages/util/src/glob.ts similarity index 100% rename from packages/core/src/util/glob.ts rename to packages/util/src/glob.ts diff --git a/packages/core/src/global.ts b/packages/util/src/global.ts similarity index 96% rename from packages/core/src/global.ts rename to packages/util/src/global.ts index a192a4b4684f..ef772677dc6b 100644 --- a/packages/core/src/global.ts +++ b/packages/util/src/global.ts @@ -3,8 +3,8 @@ import fs from "fs/promises" import { xdgData, xdgCache, xdgConfig, xdgState } from "xdg-basedir" import os from "os" import { Context, Effect, Layer } from "effect" -import { Flock } from "./util/flock" -import { Flag } from "./flag/flag" +import { Flock } from "./flock" +import { Flag } from "./flag" import { makeGlobalNode } from "./effect/app-node" const app = "opencode" diff --git a/packages/core/src/util/hash.ts b/packages/util/src/hash.ts similarity index 100% rename from packages/core/src/util/hash.ts rename to packages/util/src/hash.ts diff --git a/packages/core/src/installation/version.ts b/packages/util/src/installation/version.ts similarity index 100% rename from packages/core/src/installation/version.ts rename to packages/util/src/installation/version.ts diff --git a/packages/core/src/npm-config.ts b/packages/util/src/npm-config.ts similarity index 94% rename from packages/core/src/npm-config.ts rename to packages/util/src/npm-config.ts index 896bb84872c1..da0f0f263241 100644 --- a/packages/core/src/npm-config.ts +++ b/packages/util/src/npm-config.ts @@ -16,7 +16,7 @@ export const load = (dir: string) => npmPath, cwd: dir, env: { ...process.env }, - argv: [process.execPath, process.execPath], + argv: [process.execPath, process.execPath, "--prefix", dir], execPath: process.execPath, platform: process.platform, definitions, diff --git a/packages/core/src/npm.ts b/packages/util/src/npm.ts similarity index 99% rename from packages/core/src/npm.ts rename to packages/util/src/npm.ts index 71bd69cf6592..fa4e40332bfc 100644 --- a/packages/core/src/npm.ts +++ b/packages/util/src/npm.ts @@ -6,7 +6,7 @@ import { Effect, Schema, Context, Layer, Option, FileSystem } from "effect" import { NodeFileSystem } from "@effect/platform-node" import { FSUtil } from "./fs-util" import { Global } from "./global" -import { EffectFlock } from "./util/effect-flock" +import { EffectFlock } from "./effect-flock" import { makeGlobalNode } from "./effect/app-node" import { filesystem } from "./effect/app-node-platform" import { LayerNode } from "./effect/layer-node" diff --git a/packages/core/src/observability.ts b/packages/util/src/observability.ts similarity index 100% rename from packages/core/src/observability.ts rename to packages/util/src/observability.ts diff --git a/packages/core/src/observability/logging.ts b/packages/util/src/observability/logging.ts similarity index 100% rename from packages/core/src/observability/logging.ts rename to packages/util/src/observability/logging.ts diff --git a/packages/core/src/observability/otlp.ts b/packages/util/src/observability/otlp.ts similarity index 98% rename from packages/core/src/observability/otlp.ts rename to packages/util/src/observability/otlp.ts index dd99ebc1436b..765c29cc4d8a 100644 --- a/packages/core/src/observability/otlp.ts +++ b/packages/util/src/observability/otlp.ts @@ -1,6 +1,6 @@ import { Layer } from "effect" import { OtlpLogger } from "effect/unstable/observability" -import { Flag } from "../flag/flag" +import { Flag } from "../flag" import { InstallationChannel, InstallationVersion } from "../installation/version" import { runID } from "./shared" diff --git a/packages/core/src/observability/shared.ts b/packages/util/src/observability/shared.ts similarity index 100% rename from packages/core/src/observability/shared.ts rename to packages/util/src/observability/shared.ts diff --git a/packages/core/src/process.ts b/packages/util/src/process.ts similarity index 100% rename from packages/core/src/process.ts rename to packages/util/src/process.ts diff --git a/packages/core/src/runtime/import.bun.ts b/packages/util/src/runtime/import.bun.ts similarity index 100% rename from packages/core/src/runtime/import.bun.ts rename to packages/util/src/runtime/import.bun.ts diff --git a/packages/core/src/runtime/import.node.ts b/packages/util/src/runtime/import.node.ts similarity index 100% rename from packages/core/src/runtime/import.node.ts rename to packages/util/src/runtime/import.node.ts diff --git a/packages/util/tsconfig.json b/packages/util/tsconfig.json new file mode 100644 index 000000000000..fe5c4d217b2e --- /dev/null +++ b/packages/util/tsconfig.json @@ -0,0 +1,7 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "extends": "@tsconfig/bun/tsconfig.json", + "compilerOptions": { + "noUncheckedIndexedAccess": false + } +}