/** * Agent-settings scanner: enumerates per-agent native settings files (e.g., * `.claude/settings.json`, `.cursor/settings.json`). * * Per Decision 5, scanner output is occurrence-shaped. Each occurrence * represents one observable settings file — present and readable on disk — * keyed by `agentId`. The per-file payload is intentionally not parsed here: * Phase 8's per-agent modules decode the typed `nativeConfig` shape through * their own schemas. The scanner's contract is "this agent has a settings * file at this absolute path", not "this settings file is well-formed". * * Per-file partial failures (e.g., unreadable directory) become diagnostic * warnings rather than errors. The error channel stays empty. */ import * as Effect from "effect/Effect"; import type * as FileSystem from "effect/FileSystem"; import type * as Path from "effect/Path"; import type { AgentDescriptor, AgentId } from "../../../agents/types.js"; import type { Diagnostics } from "../diagnostics.js"; import type { Scope } from "../types.js"; import { type AgentRootResolverState } from "./agent-root.js"; import type { AgentSettingsOccurrence } from "./types.js"; /** * Inputs the live layer captures before invoking the scanner. The optional * `agentRegistry` mirrors the agent-dir scanner. `rootResolverState` lets * the live layer share heuristic-warning state across `mcp-config` and * `agent-settings`; when omitted, a fresh state is used (one warning per * scanner invocation per agent). */ export interface AgentSettingsScannerDeps { readonly fs: FileSystem.FileSystem; readonly path: Path.Path; readonly workspaceRoot: string; readonly scope: Scope; readonly diagnostics: Diagnostics; readonly agentRegistry?: Readonly>; readonly rootResolverState?: AgentRootResolverState; } /** * Closure helper: returns the dependency-closed scanner effect. */ export declare const makeAgentSettingsScanner: (deps: AgentSettingsScannerDeps) => Effect.Effect>; //# sourceMappingURL=agent-settings.d.ts.map