Lines 180-220javascript
180 // mirror cli.ts ADAPTER_LOADERS so MCP df_review can load the cursor-cli
181 // adapter the checked-in local profile requires (quorum-2 restore).
182 { id: "cursor-cli", modulePath: "../../adapters/cursor-cli.js", className: "CursorCliAdapter" },
183 { id: "codex-sdk", modulePath: "../../adapters/codex-sdk.js", className: "CodexSdkAdapter" },
184 { id: "gemini-sdk", modulePath: "../../adapters/gemini-sdk.js", className: "GeminiSdkAdapter" },
185 { id: "grok-direct-sdk", modulePath: "../../adapters/grok-direct-sdk.js", className: "GrokDirectSdkAdapter" },
186 // Cycle 20 — MiniMax M3 via OpenRouter.
187 { id: "minimax-direct-sdk", modulePath: "../../adapters/minimax-direct-sdk.js", className: "MinimaxDirectSdkAdapter" },
188 // Consumer DFP #107 — mirror cli.ts ADAPTER_LOADERS + the MCP doctor
189 // list so the review-bypass adapter registry knows about
190 // static-schema-lint when a consumer wires it.
191 { id: "static-schema-lint", modulePath: "../../adapters/static-schema-lint.js", className: "StaticSchemaLintAdapter" },
192 // Cycle 27 Phase C — the deterministic ModeScope scope critic (registered by
193 // `df mode init`). Must mirror cli.ts ADAPTER_LOADERS so MCP df_review loads a
194 // `mode-scope` config identically to the CLI path (#305/#330 parity).
195 { id: "mode-scope", modulePath: "../../adapters/mode-scope.js", className: "ModeScopeAdapter" },
197async function buildAdapterRegistry() {
198 const registry = new AdapterRegistry();
199 for (const loader of ADAPTER_LOADERS) {
201 const mod = (await import(loader.modulePath));
202 const Ctor = mod[loader.className];
MediumDynamic Require
Package source references dynamic require/import behavior.
dist/mcp/tools/review-bypass.jsView on unpkg · L200 203 if (typeof Ctor === "function") {
204 registry.register(new Ctor());
208 // adapter unloadable — runReview will degrade per its
209 // min-complete-quorum semantics.
214export function registerReviewBypassTools(server, opts = {}) {
215 // Per-server job registry. Each createMcpServer() call gets its
216 // own Map (created on registration), so tests don't leak job state
217 // across `createMcpServer({ cwd: fixtureA })` /
218 // `createMcpServer({ cwd: fixtureB })` invocations.
219 const jobs = new Map();
220 const runReviewFn = opts._internalRunReview ?? runReview;