|
@@ -9,7 +9,6 @@ import { Config } from "@/config/config"
|
|
|
import { Bus } from "../bus"
|
|
import { Bus } from "../bus"
|
|
|
import * as Log from "@opencode-ai/core/util/log"
|
|
import * as Log from "@opencode-ai/core/util/log"
|
|
|
import { createOpencodeClient } from "@opencode-ai/sdk"
|
|
import { createOpencodeClient } from "@opencode-ai/sdk"
|
|
|
-import { Flag } from "@opencode-ai/core/flag/flag"
|
|
|
|
|
import { ServerAuth } from "@/server/auth"
|
|
import { ServerAuth } from "@/server/auth"
|
|
|
import { CodexAuthPlugin } from "./codex"
|
|
import { CodexAuthPlugin } from "./codex"
|
|
|
import { Session } from "@/session/session"
|
|
import { Session } from "@/session/session"
|
|
@@ -28,6 +27,7 @@ import { PluginLoader } from "./loader"
|
|
|
import { parsePluginSpecifier, readPluginId, readV1Plugin, resolvePluginId } from "./shared"
|
|
import { parsePluginSpecifier, readPluginId, readV1Plugin, resolvePluginId } from "./shared"
|
|
|
import { registerAdapter } from "@/control-plane/adapters"
|
|
import { registerAdapter } from "@/control-plane/adapters"
|
|
|
import type { WorkspaceAdapter } from "@/control-plane/types"
|
|
import type { WorkspaceAdapter } from "@/control-plane/types"
|
|
|
|
|
+import { RuntimeFlags } from "@/effect/runtime-flags"
|
|
|
|
|
|
|
|
const log = Log.create({ service: "plugin" })
|
|
const log = Log.create({ service: "plugin" })
|
|
|
|
|
|
|
@@ -112,6 +112,7 @@ export const layer = Layer.effect(
|
|
|
Effect.gen(function* () {
|
|
Effect.gen(function* () {
|
|
|
const bus = yield* Bus.Service
|
|
const bus = yield* Bus.Service
|
|
|
const config = yield* Config.Service
|
|
const config = yield* Config.Service
|
|
|
|
|
+ const flags = yield* RuntimeFlags.Service
|
|
|
|
|
|
|
|
const state = yield* InstanceState.make<State>(
|
|
const state = yield* InstanceState.make<State>(
|
|
|
Effect.fn("Plugin.state")(function* (ctx) {
|
|
Effect.fn("Plugin.state")(function* (ctx) {
|
|
@@ -148,7 +149,7 @@ export const layer = Layer.effect(
|
|
|
$: typeof Bun === "undefined" ? undefined : Bun.$,
|
|
$: typeof Bun === "undefined" ? undefined : Bun.$,
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- for (const plugin of INTERNAL_PLUGINS) {
|
|
|
|
|
|
|
+ for (const plugin of flags.disableDefaultPlugins ? [] : INTERNAL_PLUGINS) {
|
|
|
log.info("loading internal plugin", { name: plugin.name })
|
|
log.info("loading internal plugin", { name: plugin.name })
|
|
|
const init = yield* Effect.tryPromise({
|
|
const init = yield* Effect.tryPromise({
|
|
|
try: () => plugin(input),
|
|
try: () => plugin(input),
|
|
@@ -159,8 +160,8 @@ export const layer = Layer.effect(
|
|
|
if (init._tag === "Some") hooks.push(init.value)
|
|
if (init._tag === "Some") hooks.push(init.value)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- const plugins = Flag.OPENCODE_PURE ? [] : (cfg.plugin_origins ?? [])
|
|
|
|
|
- if (Flag.OPENCODE_PURE && cfg.plugin_origins?.length) {
|
|
|
|
|
|
|
+ const plugins = flags.pure ? [] : (cfg.plugin_origins ?? [])
|
|
|
|
|
+ if (flags.pure && cfg.plugin_origins?.length) {
|
|
|
log.info("skipping external plugins in pure mode", { count: cfg.plugin_origins.length })
|
|
log.info("skipping external plugins in pure mode", { count: cfg.plugin_origins.length })
|
|
|
}
|
|
}
|
|
|
if (plugins.length) yield* config.waitForDependencies()
|
|
if (plugins.length) yield* config.waitForDependencies()
|
|
@@ -285,6 +286,10 @@ export const layer = Layer.effect(
|
|
|
}),
|
|
}),
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
-export const defaultLayer = layer.pipe(Layer.provide(Bus.layer), Layer.provide(Config.defaultLayer))
|
|
|
|
|
|
|
+export const defaultLayer = layer.pipe(
|
|
|
|
|
+ Layer.provide(Bus.layer),
|
|
|
|
|
+ Layer.provide(Config.defaultLayer),
|
|
|
|
|
+ Layer.provide(RuntimeFlags.defaultLayer),
|
|
|
|
|
+)
|
|
|
|
|
|
|
|
export * as Plugin from "."
|
|
export * as Plugin from "."
|