From 4e023060cdfa54dd4952bf59ee1e27857043b133 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Thu, 16 Apr 2026 11:40:21 -0400 Subject: [PATCH] refactor: switch Permission to direct self-reexport imports --- packages/opencode/src/agent/agent.ts | 2 +- packages/opencode/src/cli/cmd/run.ts | 2 +- packages/opencode/src/effect/app-runtime.ts | 2 +- packages/opencode/src/permission/index.ts | 1 - packages/opencode/src/permission/permission.ts | 2 ++ packages/opencode/src/server/instance/httpapi/permission.ts | 2 +- packages/opencode/src/server/instance/permission.ts | 2 +- packages/opencode/src/server/instance/session.ts | 2 +- packages/opencode/src/session/llm.ts | 2 +- packages/opencode/src/session/processor.ts | 2 +- packages/opencode/src/session/prompt.ts | 2 +- packages/opencode/src/session/session.sql.ts | 2 +- packages/opencode/src/session/session.ts | 2 +- packages/opencode/src/session/system.ts | 2 +- packages/opencode/src/skill/skill.ts | 2 +- packages/opencode/src/tool/registry.ts | 2 +- packages/opencode/src/tool/tool.ts | 2 +- packages/opencode/test/agent/agent.test.ts | 2 +- packages/opencode/test/permission/next.test.ts | 2 +- packages/opencode/test/session/compaction.test.ts | 2 +- packages/opencode/test/session/processor-effect.test.ts | 2 +- packages/opencode/test/session/prompt-effect.test.ts | 2 +- packages/opencode/test/session/snapshot-tool-race.test.ts | 2 +- packages/opencode/test/tool/bash.test.ts | 2 +- packages/opencode/test/tool/external-directory.test.ts | 2 +- packages/opencode/test/tool/read.test.ts | 2 +- packages/opencode/test/tool/skill.test.ts | 2 +- 27 files changed, 27 insertions(+), 26 deletions(-) diff --git a/packages/opencode/src/agent/agent.ts b/packages/opencode/src/agent/agent.ts index 54ca484555..bb91728ce7 100644 --- a/packages/opencode/src/agent/agent.ts +++ b/packages/opencode/src/agent/agent.ts @@ -13,7 +13,7 @@ import PROMPT_COMPACTION from "./prompt/compaction.txt" import PROMPT_EXPLORE from "./prompt/explore.txt" import PROMPT_SUMMARY from "./prompt/summary.txt" import PROMPT_TITLE from "./prompt/title.txt" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { mergeDeep, pipe, sortBy, values } from "remeda" import { Global } from "@/global" import path from "path" diff --git a/packages/opencode/src/cli/cmd/run.ts b/packages/opencode/src/cli/cmd/run.ts index 0874beee16..0721c7f5b7 100644 --- a/packages/opencode/src/cli/cmd/run.ts +++ b/packages/opencode/src/cli/cmd/run.ts @@ -11,7 +11,7 @@ import { createOpencodeClient, type OpencodeClient, type ToolPart } from "@openc import { Server } from "../../server/server" import { Provider } from "../../provider" import { Agent } from "../../agent/agent" -import { Permission } from "../../permission" +import { Permission } from "../../permission/permission" import { Tool } from "../../tool" import { GlobTool } from "../../tool/glob" import { GrepTool } from "../../tool/grep" diff --git a/packages/opencode/src/effect/app-runtime.ts b/packages/opencode/src/effect/app-runtime.ts index f06c41e319..b14b98b748 100644 --- a/packages/opencode/src/effect/app-runtime.ts +++ b/packages/opencode/src/effect/app-runtime.ts @@ -21,7 +21,7 @@ import { Agent } from "@/agent/agent" import { Skill } from "@/skill" import { Discovery } from "@/skill/discovery" import { Question } from "@/question" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { Todo } from "@/session/todo" import { Session } from "@/session" import { SessionStatus } from "@/session/status" diff --git a/packages/opencode/src/permission/index.ts b/packages/opencode/src/permission/index.ts index 7d8a2fff82..e69de29bb2 100644 --- a/packages/opencode/src/permission/index.ts +++ b/packages/opencode/src/permission/index.ts @@ -1 +0,0 @@ -export * as Permission from "./permission" diff --git a/packages/opencode/src/permission/permission.ts b/packages/opencode/src/permission/permission.ts index fe7fb85455..3f5dbf2efc 100644 --- a/packages/opencode/src/permission/permission.ts +++ b/packages/opencode/src/permission/permission.ts @@ -321,3 +321,5 @@ export function disabled(tools: string[], ruleset: Ruleset): Set { } export const defaultLayer = layer.pipe(Layer.provide(Bus.layer)) + +export * as Permission from "./permission" diff --git a/packages/opencode/src/server/instance/httpapi/permission.ts b/packages/opencode/src/server/instance/httpapi/permission.ts index ed8cb4e277..cfd3af1633 100644 --- a/packages/opencode/src/server/instance/httpapi/permission.ts +++ b/packages/opencode/src/server/instance/httpapi/permission.ts @@ -1,4 +1,4 @@ -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { PermissionID } from "@/permission/schema" import { Effect, Layer, Schema } from "effect" import { HttpApi, HttpApiBuilder, HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi" diff --git a/packages/opencode/src/server/instance/permission.ts b/packages/opencode/src/server/instance/permission.ts index b8c2244140..2ac126ac47 100644 --- a/packages/opencode/src/server/instance/permission.ts +++ b/packages/opencode/src/server/instance/permission.ts @@ -2,7 +2,7 @@ import { Hono } from "hono" import { describeRoute, validator, resolver } from "hono-openapi" import z from "zod" import { AppRuntime } from "@/effect/app-runtime" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { PermissionID } from "@/permission/schema" import { errors } from "../error" import { lazy } from "../../util/lazy" diff --git a/packages/opencode/src/server/instance/session.ts b/packages/opencode/src/server/instance/session.ts index 1511e99e8d..ff43db5438 100644 --- a/packages/opencode/src/server/instance/session.ts +++ b/packages/opencode/src/server/instance/session.ts @@ -19,7 +19,7 @@ import { Agent } from "../../agent/agent" import { Snapshot } from "@/snapshot" import { Command } from "../../command" import { Log } from "../../util" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { PermissionID } from "@/permission/schema" import { ModelID, ProviderID } from "@/provider/schema" import { errors } from "../error" diff --git a/packages/opencode/src/session/llm.ts b/packages/opencode/src/session/llm.ts index d38c29765a..47cbce675f 100644 --- a/packages/opencode/src/session/llm.ts +++ b/packages/opencode/src/session/llm.ts @@ -13,7 +13,7 @@ import type { MessageV2 } from "./message-v2" import { Plugin } from "@/plugin" import { SystemPrompt } from "./system" import { Flag } from "@/flag/flag" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { PermissionID } from "@/permission/schema" import { Bus } from "@/bus" import { Wildcard } from "@/util" diff --git a/packages/opencode/src/session/processor.ts b/packages/opencode/src/session/processor.ts index 415639fbe5..b869481757 100644 --- a/packages/opencode/src/session/processor.ts +++ b/packages/opencode/src/session/processor.ts @@ -3,7 +3,7 @@ import * as Stream from "effect/Stream" import { Agent } from "@/agent/agent" import { Bus } from "@/bus" import { Config } from "@/config" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { Plugin } from "@/plugin" import { Snapshot } from "@/snapshot" import * as Session from "./session" diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 4b8b95baa8..91b2f88c73 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -35,7 +35,7 @@ import { SessionSummary } from "./summary" import { NamedError } from "@opencode-ai/shared/util/error" import { SessionProcessor } from "./processor" import { Tool } from "@/tool" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { SessionStatus } from "./status" import { LLM } from "./llm" import { Shell } from "@/shell/shell" diff --git a/packages/opencode/src/session/session.sql.ts b/packages/opencode/src/session/session.sql.ts index 35ed8fdda4..feb8315731 100644 --- a/packages/opencode/src/session/session.sql.ts +++ b/packages/opencode/src/session/session.sql.ts @@ -3,7 +3,7 @@ import { ProjectTable } from "../project/project.sql" import type { MessageV2 } from "./message-v2" import type { SessionEntry } from "../v2/session-entry" import type { Snapshot } from "../snapshot" -import type { Permission } from "../permission" +import type { Permission } from "../permission/permission" import type { ProjectID } from "../project/schema" import type { SessionID, MessageID, PartID } from "./schema" import type { WorkspaceID } from "../control-plane/schema" diff --git a/packages/opencode/src/session/session.ts b/packages/opencode/src/session/session.ts index e288aec73a..995fd94f47 100644 --- a/packages/opencode/src/session/session.ts +++ b/packages/opencode/src/session/session.ts @@ -26,7 +26,7 @@ import { WorkspaceID } from "../control-plane/schema" import { SessionID, MessageID, PartID } from "./schema" import type { Provider } from "@/provider" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { Global } from "@/global" import { Effect, Layer, Option, Context } from "effect" diff --git a/packages/opencode/src/session/system.ts b/packages/opencode/src/session/system.ts index 952ff5b04b..3239d10072 100644 --- a/packages/opencode/src/session/system.ts +++ b/packages/opencode/src/session/system.ts @@ -13,7 +13,7 @@ import PROMPT_CODEX from "./prompt/codex.txt" import PROMPT_TRINITY from "./prompt/trinity.txt" import type { Provider } from "@/provider" import type { Agent } from "@/agent/agent" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { Skill } from "@/skill" export namespace SystemPrompt { diff --git a/packages/opencode/src/skill/skill.ts b/packages/opencode/src/skill/skill.ts index f8ff7b8f5f..f918217ef2 100644 --- a/packages/opencode/src/skill/skill.ts +++ b/packages/opencode/src/skill/skill.ts @@ -9,7 +9,7 @@ import { Bus } from "@/bus" import { InstanceState } from "@/effect" import { Flag } from "@/flag/flag" import { Global } from "@/global" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" import { AppFileSystem } from "@opencode-ai/shared/filesystem" import { Config } from "../config" import { ConfigMarkdown } from "../config" diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index a8ab4c27ea..91c2e49b20 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -45,7 +45,7 @@ import { AppFileSystem } from "@opencode-ai/shared/filesystem" import { Bus } from "../bus" import { Agent } from "../agent/agent" import { Skill } from "../skill" -import { Permission } from "@/permission" +import { Permission } from "@/permission/permission" const log = Log.create({ service: "tool.registry" }) diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts index 0ea0435fb1..a7751a712f 100644 --- a/packages/opencode/src/tool/tool.ts +++ b/packages/opencode/src/tool/tool.ts @@ -1,7 +1,7 @@ import z from "zod" import { Effect } from "effect" import type { MessageV2 } from "../session/message-v2" -import type { Permission } from "../permission" +import type { Permission } from "../permission/permission" import type { SessionID, MessageID } from "../session/schema" import * as Truncate from "./truncate" import { Agent } from "@/agent/agent" diff --git a/packages/opencode/test/agent/agent.test.ts b/packages/opencode/test/agent/agent.test.ts index 7e9a6fe90b..754d551f36 100644 --- a/packages/opencode/test/agent/agent.test.ts +++ b/packages/opencode/test/agent/agent.test.ts @@ -4,7 +4,7 @@ import path from "path" import { provideInstance, tmpdir } from "../fixture/fixture" import { Instance } from "../../src/project/instance" import { Agent } from "../../src/agent/agent" -import { Permission } from "../../src/permission" +import { Permission } from "../../src/permission/permission" // Helper to evaluate permission for a tool with wildcard pattern function evalPerm(agent: Agent.Info | undefined, permission: string): Permission.Action | undefined { diff --git a/packages/opencode/test/permission/next.test.ts b/packages/opencode/test/permission/next.test.ts index d654d4b876..8fc9352b07 100644 --- a/packages/opencode/test/permission/next.test.ts +++ b/packages/opencode/test/permission/next.test.ts @@ -3,7 +3,7 @@ import os from "os" import { Cause, Effect, Exit, Fiber, Layer } from "effect" import { Bus } from "../../src/bus" import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" -import { Permission } from "../../src/permission" +import { Permission } from "../../src/permission/permission" import { PermissionID } from "../../src/permission/schema" import { Instance } from "../../src/project/instance" import { provideInstance, provideTmpdirInstance, tmpdirScoped } from "../fixture/fixture" diff --git a/packages/opencode/test/session/compaction.test.ts b/packages/opencode/test/session/compaction.test.ts index ee3f645c52..c170242ee2 100644 --- a/packages/opencode/test/session/compaction.test.ts +++ b/packages/opencode/test/session/compaction.test.ts @@ -11,7 +11,7 @@ import { SessionCompaction } from "../../src/session/compaction" import { Token } from "../../src/util" import { Instance } from "../../src/project/instance" import { Log } from "../../src/util" -import { Permission } from "../../src/permission" +import { Permission } from "../../src/permission/permission" import { Plugin } from "../../src/plugin" import { provideTmpdirInstance, tmpdir } from "../fixture/fixture" import { Session as SessionNs } from "../../src/session" diff --git a/packages/opencode/test/session/processor-effect.test.ts b/packages/opencode/test/session/processor-effect.test.ts index 74ce913077..6e19c6fa61 100644 --- a/packages/opencode/test/session/processor-effect.test.ts +++ b/packages/opencode/test/session/processor-effect.test.ts @@ -6,7 +6,7 @@ import type { Agent } from "../../src/agent/agent" import { Agent as AgentSvc } from "../../src/agent/agent" import { Bus } from "../../src/bus" import { Config } from "../../src/config" -import { Permission } from "../../src/permission" +import { Permission } from "../../src/permission/permission" import { Plugin } from "../../src/plugin" import { Provider } from "../../src/provider" import { ModelID, ProviderID } from "../../src/provider/schema" diff --git a/packages/opencode/test/session/prompt-effect.test.ts b/packages/opencode/test/session/prompt-effect.test.ts index 121d662e5f..8ad3ee58cb 100644 --- a/packages/opencode/test/session/prompt-effect.test.ts +++ b/packages/opencode/test/session/prompt-effect.test.ts @@ -10,7 +10,7 @@ import { Config } from "../../src/config" import { FileTime } from "../../src/file/time" import { LSP } from "../../src/lsp" import { MCP } from "../../src/mcp" -import { Permission } from "../../src/permission" +import { Permission } from "../../src/permission/permission" import { Plugin } from "../../src/plugin" import { Provider as ProviderSvc } from "../../src/provider" import { Env } from "../../src/env" diff --git a/packages/opencode/test/session/snapshot-tool-race.test.ts b/packages/opencode/test/session/snapshot-tool-race.test.ts index 1f66ccb995..efbfd022c1 100644 --- a/packages/opencode/test/session/snapshot-tool-race.test.ts +++ b/packages/opencode/test/session/snapshot-tool-race.test.ts @@ -36,7 +36,7 @@ import { Config } from "../../src/config" import { FileTime } from "../../src/file/time" import { LSP } from "../../src/lsp" import { MCP } from "../../src/mcp" -import { Permission } from "../../src/permission" +import { Permission } from "../../src/permission/permission" import { Plugin } from "../../src/plugin" import { Provider as ProviderSvc } from "../../src/provider" import { Env } from "../../src/env" diff --git a/packages/opencode/test/tool/bash.test.ts b/packages/opencode/test/tool/bash.test.ts index d66cfc3e37..d27be2753c 100644 --- a/packages/opencode/test/tool/bash.test.ts +++ b/packages/opencode/test/tool/bash.test.ts @@ -7,7 +7,7 @@ import { BashTool } from "../../src/tool/bash" import { Instance } from "../../src/project/instance" import { Filesystem } from "../../src/util" import { tmpdir } from "../fixture/fixture" -import type { Permission } from "../../src/permission" +import type { Permission } from "../../src/permission/permission" import { Agent } from "../../src/agent/agent" import { Truncate } from "../../src/tool" import { SessionID, MessageID } from "../../src/session/schema" diff --git a/packages/opencode/test/tool/external-directory.test.ts b/packages/opencode/test/tool/external-directory.test.ts index 8cbfe78270..bb204d5ec3 100644 --- a/packages/opencode/test/tool/external-directory.test.ts +++ b/packages/opencode/test/tool/external-directory.test.ts @@ -6,7 +6,7 @@ import { Instance } from "../../src/project/instance" import { assertExternalDirectory } from "../../src/tool/external-directory" import { Filesystem } from "../../src/util" import { tmpdir } from "../fixture/fixture" -import type { Permission } from "../../src/permission" +import type { Permission } from "../../src/permission/permission" import { SessionID, MessageID } from "../../src/session/schema" const baseCtx: Omit = { diff --git a/packages/opencode/test/tool/read.test.ts b/packages/opencode/test/tool/read.test.ts index 3b32c72e05..4026078ab8 100644 --- a/packages/opencode/test/tool/read.test.ts +++ b/packages/opencode/test/tool/read.test.ts @@ -6,7 +6,7 @@ import * as CrossSpawnSpawner from "../../src/effect/cross-spawn-spawner" import { AppFileSystem } from "@opencode-ai/shared/filesystem" import { FileTime } from "../../src/file/time" import { LSP } from "../../src/lsp" -import { Permission } from "../../src/permission" +import { Permission } from "../../src/permission/permission" import { Instance } from "../../src/project/instance" import { SessionID, MessageID } from "../../src/session/schema" import { Instruction } from "../../src/session/instruction" diff --git a/packages/opencode/test/tool/skill.test.ts b/packages/opencode/test/tool/skill.test.ts index 55e126ab47..5c6b283bfa 100644 --- a/packages/opencode/test/tool/skill.test.ts +++ b/packages/opencode/test/tool/skill.test.ts @@ -3,7 +3,7 @@ import { Effect, Layer } from "effect" import { afterEach, describe, expect } from "bun:test" import path from "path" import { pathToFileURL } from "url" -import type { Permission } from "../../src/permission" +import type { Permission } from "../../src/permission/permission" import type { Tool } from "../../src/tool" import { Instance } from "../../src/project/instance" import { SkillTool } from "../../src/tool/skill"