Dashboard › opencode › Distillation
78a99f32-0003-4d2a-a1a5-ffba7e2b71d4["lore_tm_v1_gB39fC7iYpDiN_gPTlrAwDJ_VQiUrVppARtNZkfqsjU","lore_tm_v1_SZKZeZSy9vnX5AMrzWJuINr5CXriM0yBLvvOeJiGCpk","lore_tm_v1_qqPqElcbzz7PLK85lLk_rqgaucfazeyDWj8UAJR9qD0","lore_tm_v1_B9d29OBVU2ZLpC_SLaBAzDOfSoS0xcYXzYiF6ic7TJk","lore_tm_v1_89uqVbJ_KeqC2frgD7CdjjGMSKFC0-52ubNsjrWTvdU","lore_tm_v1_qp6n33FWlhZel5e5nJH_cOkXUQ0C2dSYaHEcw03Yryg","lore_tm_v1_EBBm0TaHxpFJh4BwPKMX3qDwf1G-1iU1q17N1SHpS6c","lore_tm_v1_u1H5qZxDEQTNm7cYKi7OvPFEzfPGjPwPTLBzAQEl5Vw","lore_tm_v1_j5skHb0ueAz49Qk-6g4APCUT6t-Vl7x3ybFVIVVHKus","lore_tm_v1_MvAcDfotJMlXbsdAUNhadrQYuzbtRvekKGSCZ7lkAYY","lore_tm_v1_tuxI3KiOC5d9IZD0axf6w_VVrVdMNPs0UeIx-nH9yUc","lore_tm_v1_eqYzZ_XK0zT9kUydbPagJ4a5QRdksuALWLye1kfbhvs","lore_tm_v1_GeTQTIJ1aFJl2VQS9k4cmHJwWOyLKXdfEskZUH0Uwyc","lore_tm_v1_dVE5ZlWpsFYCkVcVyIFVbktmZEyB8TspHGP8rK1GywE","lore_tm_v1_zuRjdaxKYR98eKG5YLzkohNvr0gt60xOnXPzTp0-VSQ","lore_tm_v1_UoS_bNMafI6jocTsr1nSg9sYGOVPVjBBRp6Goq7BHD4","lore_tm_v1_PuUsYY5pGzm8JhqDPKz6RgfHCu__qH68AFAqc1KhLqg","lore_tm_v1_dcpI1tIongEK9CmJYOSFnjeeirbDDGPu2M_bSJxR840","lore_tm_v1_CK3UG9GUBe4YuFaOCTDutNSZHiWgMpCEvF6dEu4cj38","lore_tm_v1_jIxwYczttxmNYKyRUx6Zsu48j_Kl0bgqstTcKVunN6M","lore_tm_v1_L3Ti1l0uHpzMCKnprZ6B7ZI2UmxWrKZnuprCXbl1Sd4"]
/home/byk/.local/share/opencode-v2-pilot/config/opencode/test/followup.test.ts imports ../plugins/followup.ts and tests tools schedule_followup, list_followups, and cancel_followup; it checks scheduling with { delay: "1s", message: "deliver" }, listing by returned ID, cancellation output containing "Cancelled", rejection/blocking for sessionID: "subagent", and delivery behavior./home/byk/.local/share/opencode-v2-pilot/config/opencode/plugins/followup.ts defines plugin ID "followup" with tools schedule_followup, list_followups, and cancel_followup; delivery errors log [followup] failed to deliver ${id}, and event-subscription failures log "[followup] event subscription failed" unless events.signal.aborted./home/byk/.local/share/opencode-v2-pilot/config/opencode/plugins/pty.ts imports Plugin from @opencode/plugin, Context from @opencode/plugin/plugin, and ToolContext from @opencode/plugin/tool; its plugin ID is "local-pty"./home/byk/.local/share/opencode-v2-pilot/config/opencode/bun.lock has lockfileVersion: 1, configVersion: 1, root dependency effect linked from /home/byk/Code/opencode-v2-pilot/node_modules/.bun/effect@4.0.0-rc.112/node_modules/effect, and dev dependency @types/bun: 1.2.21./home/byk/.local/share/opencode-v2-pilot/config/opencode/bun.lock include @types/node@26.5.0, @types/react@19.2.18, ajv@8.20.0, ajv-draft-04@1.0.0, ast-types@0.14.2, bun-types@1.2.21, effect@4.0.0-rc.112, fast-check@4.9.0, immer@11.1.18, msgpackr@2.1.0, msgpackr-extract@3.0.4, protobufjs@7.6.6, pure-rand@8.4.2, tinybench@6.1.6, tslib@2.8.1, undici-types@8.9.0, and valibot@1.4.2./home/byk/Code/opencode-lore/packages/opencode/node_modules/@opencode-ai/plugin contains dist/ and package.json; dist/ contains exactly 8 entries: 1. example.d.ts, 2. example.js, 3. index.d.ts, 4. index.js, 5. shell.d.ts, 6. shell.js, 7. tool.d.ts, 8. tool.js./home/byk/Code/opencode-lore/packages/opencode/node_modules/@opencode-ai/plugin/package.json identifies @opencode-ai/plugin version 1.2.15, type "module", license "MIT", with typecheck: "tsgo --noEmit" and build: "tsc" scripts; it exports "." via ./dist/index.js and ./dist/index.d.ts, and "./tool" via ./dist/tool.js and ./dist/tool.d.ts.@opencode-ai/plugin@1.2.15 depends on @opencode-ai/sdk: 1.2.15 and zod: 4.1.8; dev dependencies are @tsconfig/node22: 22.0.2, @types/node: 22.13.9, typescript: 5.8.2, and @typescript/native-preview: 7.0.0-dev.20251207.1.@opencode-ai/plugin defines PluginInput as { client, project, directory, worktree, serverUrl, $ }, where client is ReturnType<typeof createOpencodeClient>, serverUrl is URL, and $ is BunShell; Plugin is (input: PluginInput) => Promise<Hooks>.Hooks supports event, config, keyed tool definitions, auth, "chat.message", "chat.params", "chat.headers", "permission.ask", "command.execute.before", "tool.execute.before", "shell.env", "tool.execute.after", "experimental.chat.messages.transform", "experimental.chat.system.transform", "experimental.session.compacting", "experimental.text.complete", and "tool.definition"."experimental.chat.system.transform" receives { sessionID?: string, model: Model } and mutates { system: string[] }; "experimental.session.compacting" receives { sessionID: string } and mutates { context: string[], prompt?: string }, where context augments the default prompt and prompt replaces it entirely.AuthHook identifies a provider, optionally loads auth/provider options, and supports OAuth or API methods with text/select prompts. OAuth authorization returns a URL and instructions plus either an automatic callback or code callback; success returns provider plus refresh/access/expires/accountId credentials or a key, while failure returns { type: "failed" }./home/byk/Code/opencode-lore/packages/opencode/package.json references @opencode-ai/plugin as peer/range >=1.1.0 and dependency ^1.1.39, alongside @opencode-ai/sdk: ^1.1.39; source/tests importing its types include src/internal.ts, src/index.ts, test/index.test.ts, test/routing.e2e.test.ts, test/internal.test.ts, test/subagent-detection.test.ts, test/tui-silence.test.ts, and test/session-state.test.ts./home/byk/Code/opencode-v2-pilot/packages/schema/src/config/compaction.ts defines ConfigCompaction.Keep with optional tokens: NonNegativeInt and ConfigCompaction.Info with optional auto: boolean, keep: Keep, and buffer: NonNegativeInt./home/byk/Code/opencode-v2-pilot/packages/core/src/config/plugin/compaction.ts defines plugin ID "opencode.config.compaction" using define from @opencode/plugin/effect/plugin; it observes configuration through ConfigEntryObserver.observe(config, ctx.event, compaction.reload()), then applies document entriesβ defined compaction.auto, compaction.buffer, and compaction.keep.tokens via SessionCompaction.Service.transform(...editor.configure(...))./home/byk/Code/opencode-v2-pilot/packages/schema/src/config.ts defines optional default_agent as the default primary agent when no session agent is selected and optional agents as a record of named built-in overrides/custom agent definitions; nearby configuration includes model, update mode "disable" | "notify" | "auto", share mode "manual" | "auto" | "disabled", enterprise URL, username, permission rules, snapshots, watcher, formatter, LSP, and media./home/byk/Code/opencode-v2-pilot/packages/schema/src/config/agent.ts defines agent color as a six-digit hexadecimal string matching /^#[0-9a-fA-F]{6}$/; ConfigAgent.Info has optional model, request, system, description, mode: "subagent" | "primary" | "all", hidden, color, steps: PositiveInt, disabled, and permissions./home/byk/Code/opencode-v2-pilot/packages/core/src/config/normalize.ts migrates legacy input.agent entries with ConfigAgentV1.Info and ConfigMigrateV1.migrateAgent, migrates small_model into agents.title.model, and emits unsupported diagnostic "omitted unsupported legacy model reference" when that migration fails.input.mode entries to migrated agents with mode: "primary", merges legacy-agent and mode-agent maps, then merges native input.agents decoded with ConfigAgent.Info; it also diagnoses unsupported fields in legacy input.agent and input.mode.input.provider values with native input.providers; permissions concatenate migrated legacy tool rules, migrated legacy permission rules, and native Permission.Rule entries in that exact order.input.plugin tuple specs into { package: plugin[0], options: plugin[1] }, preserves legacy string specs, decodes native input.plugins, and sets encoded.plugins to legacy plugins followed by native plugins.system β it embeds system content in messages.localhost and 127.0.0.1, because they could target a local LLM or the gateway itself./home/byk/Code/opencode-lore/packages/core/src/fetch-interceptor.ts uses x-lore-upstream-url for the resolved upstream base and x-lore-upstream-path for the clientβs original endpoint pathname, such as /chat/completions, allowing the gateway to forward to the exact original endpoint./home/byk/Code/opencode-lore/packages/core/src/fetch-interceptor.ts maintains a process-global slot for the original globalThis.fetch; a non-null slot indicates that some copy of the interceptor is installed, including the OpenCode plugin copy or one inlined into the in-process gateway. The slot begins unset, and installFetchInterceptor() captures/releases it.