import { z } from "zod"; export declare const ProjectModeSchema: z.ZodEnum<["greenfield", "brownfield"]>; export type ProjectMode = z.infer; export declare const StackSchema: z.ZodObject<{ frontend: z.ZodOptional; backend: z.ZodOptional; blockchain: z.ZodOptional; testing: z.ZodOptional; database: z.ZodOptional; language: z.ZodOptional; other: z.ZodOptional>; }, "strip", z.ZodTypeAny, { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; }, { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; }>; export type Stack = z.infer; export declare const ModelChoiceSchema: z.ZodString; export type ModelChoice = string; export declare const GeneratorModelSchema: z.ZodString; export type GeneratorModel = string; export declare const SprintSizeSchema: z.ZodEnum<["small", "medium", "large"]>; export type SprintSize = z.infer; export declare const ContextResetSchema: z.ZodEnum<["always", "on-threshold", "never"]>; export type ContextReset = z.infer; /** * Reasoning/output effort level (Sprint 3 — agent-loop capability port). * Mirrors `ChatParams.effort` (`src/providers/types.ts`) value-for-value; * only the Anthropic adapter forwards it (as `output_config.effort`). */ export declare const EffortSchema: z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>; export type Effort = z.infer; /** * Optional per-run USD spend ceiling (Sprint 3 — agent-loop capability port). * `maxUsd: null` (or omitted) means uncapped — mirrors `Budget`'s own * null-means-unlimited convention (`src/orchestrator/workflow/budget.ts`). */ export declare const BudgetSectionSchema: z.ZodObject<{ maxUsd: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>; export type BudgetSection = z.infer; /** * Well-known built-in evaluator strategy types. * The type field also accepts ANY string — unknown types are resolved * by looking for a matching registered plugin or the `command` field. */ export declare const BUILTIN_STRATEGY_TYPES: readonly ["typecheck", "lint", "unit-test", "playwright", "api-check", "build", "custom"]; export type BuiltinStrategyType = (typeof BUILTIN_STRATEGY_TYPES)[number]; export declare const EvalStrategyTypeSchema: z.ZodString; export type EvalStrategyType = string; export declare const EvalStrategySchema: z.ZodObject<{ /** Strategy type — built-in name OR any custom name (e.g. "k6", "anchor-verify", "slither"). */ type: z.ZodString; /** Path to a custom plugin module (for type "custom" or any non-built-in type). */ plugin: z.ZodOptional; /** Shell command to run directly — shorthand alternative to writing a plugin file. */ command: z.ZodOptional; /** Whether this strategy must pass for the sprint to pass. */ required: z.ZodBoolean; /** Arbitrary config passed to the evaluator plugin. */ config: z.ZodOptional>; /** Human-readable label (defaults to type if not set). */ label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }>; export type EvalStrategy = z.infer; export declare const ProjectSectionSchema: z.ZodObject<{ name: z.ZodString; mode: z.ZodEnum<["greenfield", "brownfield"]>; preset: z.ZodOptional; stack: z.ZodOptional; backend: z.ZodOptional; blockchain: z.ZodOptional; testing: z.ZodOptional; database: z.ZodOptional; language: z.ZodOptional; other: z.ZodOptional>; }, "strip", z.ZodTypeAny, { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; }, { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; }>>; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { name: string; mode: "greenfield" | "brownfield"; preset?: string | undefined; stack?: { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; } | undefined; description?: string | undefined; }, { name: string; mode: "greenfield" | "brownfield"; preset?: string | undefined; stack?: { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; } | undefined; description?: string | undefined; }>; export type ProjectSection = z.infer; export declare const PlannerSectionSchema: z.ZodObject<{ maxClarifications: z.ZodDefault; model: z.ZodDefault; contextFiles: z.ZodOptional>; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */ effort: z.ZodOptional>; /** Optional per-run USD spend ceiling. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; }, "strip", z.ZodTypeAny, { maxClarifications: number; model: string; contextFiles?: string[] | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; }, { maxClarifications?: number | undefined; model?: string | undefined; contextFiles?: string[] | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; }>; export type PlannerSection = z.infer; export declare const GeneratorSectionSchema: z.ZodObject<{ model: z.ZodDefault; maxTurnsPerSprint: z.ZodDefault; autoCommit: z.ZodDefault; branchPattern: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */ effort: z.ZodOptional>; /** Optional per-run USD spend ceiling. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; /** * When true, contiguous read-only tool calls (read_file/glob/grep) within a * turn execute concurrently instead of strictly serially (ADR-2, agent-loop * capability port sprint 4). Optional, no default — absent/false is * byte-identical to the pre-change serial loop. */ parallelReadOnlyTools: z.ZodOptional; }, "strip", z.ZodTypeAny, { model: string; maxTurnsPerSprint: number; autoCommit: boolean; branchPattern: string; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; parallelReadOnlyTools?: boolean | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurnsPerSprint?: number | undefined; autoCommit?: boolean | undefined; branchPattern?: string | undefined; parallelReadOnlyTools?: boolean | undefined; }>; export type GeneratorSection = z.infer; export declare const EvaluatorSectionSchema: z.ZodObject<{ model: z.ZodDefault; strategies: z.ZodArray; /** Shell command to run directly — shorthand alternative to writing a plugin file. */ command: z.ZodOptional; /** Whether this strategy must pass for the sprint to pass. */ required: z.ZodBoolean; /** Arbitrary config passed to the evaluator plugin. */ config: z.ZodOptional>; /** Human-readable label (defaults to type if not set). */ label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }>, "many">; maxIterations: z.ZodDefault; plugins: z.ZodOptional>; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; panel: z.ZodDefault; lenses: z.ZodDefault>; maxConcurrent: z.ZodDefault; }, "strip", z.ZodTypeAny, { enabled: boolean; lenses: string[]; maxConcurrent: number; }, { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; }>>; /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */ effort: z.ZodOptional>; /** Optional per-run USD spend ceiling. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; }, "strip", z.ZodTypeAny, { model: string; strategies: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; maxIterations: number; panel: { enabled: boolean; lenses: string[]; maxConcurrent: number; }; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; plugins?: string[] | undefined; }, { strategies: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxIterations?: number | undefined; plugins?: string[] | undefined; panel?: { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; } | undefined; }>; export type EvaluatorSection = z.infer; export declare const ArchitectSectionSchema: z.ZodObject<{ panel: z.ZodDefault; lenses: z.ZodDefault>; maxConcurrent: z.ZodDefault; }, "strip", z.ZodTypeAny, { enabled: boolean; lenses: string[]; maxConcurrent: number; }, { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { panel: { enabled: boolean; lenses: string[]; maxConcurrent: number; }; }, { panel?: { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; } | undefined; }>; export type ArchitectSection = z.infer; export declare const SprintSectionSchema: z.ZodObject<{ maxSprints: z.ZodDefault; requireContracts: z.ZodDefault; sprintSize: z.ZodDefault>; }, "strip", z.ZodTypeAny, { maxSprints: number; requireContracts: boolean; sprintSize: "medium" | "small" | "large"; }, { maxSprints?: number | undefined; requireContracts?: boolean | undefined; sprintSize?: "medium" | "small" | "large" | undefined; }>; export type SprintSection = z.infer; export declare const CuratorSectionSchema: z.ZodObject<{ model: z.ZodDefault; maxTurns: z.ZodDefault; enabled: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */ effort: z.ZodOptional>; /** Optional per-run USD spend ceiling. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; }, "strip", z.ZodTypeAny, { model: string; maxTurns: number; enabled: boolean; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; }>; export type CuratorSection = z.infer; export declare const CodeReviewSectionSchema: z.ZodObject<{ timeoutMs: z.ZodDefault; enabled: z.ZodDefault; model: z.ZodDefault; maxTurns: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; }, "strip", z.ZodTypeAny, { model: string; maxTurns: number; enabled: boolean; timeoutMs: number; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; }>; export type CodeReviewSection = z.infer; /** * Configuration for the bober-security-auditor role (spec-20260712). * Opt-in and default-off: `enabled: false` and the section itself is wired * `.optional()` on BoberConfigSchema with no top-level default, so a config * that omits `security` entirely stays byte-identical (no defaults leak in). * `standaloneBlockOn`/`hub` are consumed by later sprints (gate + hub * emission) but are declared here now to avoid re-touching this schema. */ /** * Sprint-6: opt-in real-diff configuration (ADR-5 — the orchestrator, not * the auditor, owns the diff). `mode` defaults to `"estimated-files"`, * today's exact behavior; `git-diff` is never the default (fail-safe * opt-in, nonGoals[1]). */ export declare const SecurityDiffConfigSchema: z.ZodObject<{ mode: z.ZodDefault>; baseRef: z.ZodOptional; expandWithGraph: z.ZodDefault; }, "strip", z.ZodTypeAny, { mode: "estimated-files" | "git-diff"; expandWithGraph: boolean; baseRef?: string | undefined; }, { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; }>; export type SecurityDiffConfig = z.infer; /** * Sprint-7: opt-in supply-chain/dependency/secret scanner axis. `enabled` * defaults false and `scanners` reuses `EvalStrategySchema` (the same shape * `security.scanners` uses) — the supply-chain parser kinds (npm-audit, * osv-scanner, gitleaks) are detected the same way as any other scanner. */ export declare const SecuritySupplyChainConfigSchema: z.ZodObject<{ enabled: z.ZodDefault; scanners: z.ZodDefault; /** Shell command to run directly — shorthand alternative to writing a plugin file. */ command: z.ZodOptional; /** Whether this strategy must pass for the sprint to pass. */ required: z.ZodBoolean; /** Arbitrary config passed to the evaluator plugin. */ config: z.ZodOptional>; /** Human-readable label (defaults to type if not set). */ label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { enabled: boolean; scanners: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; }, { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; }>; export type SecuritySupplyChainConfig = z.infer; /** * Sprint-7: egress axis gating network-capable supply-chain scanners * (npm-audit/osv-scanner hit a remote registry/vulnerability DB). * `onlineResearch` defaults false (fail-safe opt-in), mirroring the * research/medical online-research egress precedent. */ export declare const SecurityEgressConfigSchema: z.ZodObject<{ onlineResearch: z.ZodDefault; }, "strip", z.ZodTypeAny, { onlineResearch: boolean; }, { onlineResearch?: boolean | undefined; }>; export type SecurityEgressConfig = z.infer; export declare const SecuritySectionSchema: z.ZodObject<{ enabled: z.ZodDefault; /** Fail-closed: unparseable auditor output or a timeout blocks. Default true. */ failClosed: z.ZodDefault; timeoutMs: z.ZodDefault; model: z.ZodDefault; maxTurns: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; /** Optional per-run USD spend ceiling. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; /** Opt-in deterministic scanner pre-filter strategies (e.g. slither, semgrep). */ scanners: z.ZodDefault; /** Shell command to run directly — shorthand alternative to writing a plugin file. */ command: z.ZodOptional; /** Whether this strategy must pass for the sprint to pass. */ required: z.ZodBoolean; /** Arbitrary config passed to the evaluator plugin. */ config: z.ZodOptional>; /** Human-readable label (defaults to type if not set). */ label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }>, "many">>; /** Blocking threshold for the standalone `bober security-audit` CLI (sprint 4). */ standaloneBlockOn: z.ZodDefault>; /** Whether findings are emitted to the priority hub (sprint 6). Default true. */ hub: z.ZodDefault; /** * Opt-in real-diff provider config (sprint 6). OPTIONAL with no outer * default — a config that omits `diff` entirely stays byte-identical * (no defaults leak in), same guarantee as `security` itself (sc-6-3). */ diff: z.ZodOptional>; baseRef: z.ZodOptional; expandWithGraph: z.ZodDefault; }, "strip", z.ZodTypeAny, { mode: "estimated-files" | "git-diff"; expandWithGraph: boolean; baseRef?: string | undefined; }, { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; }>>; /** * Sprint-7: opt-in supply-chain axis config. OPTIONAL with no outer * default — a config that omits `supplyChain` entirely stays * byte-identical (no defaults leak in), same guarantee as `diff` (sc-7-3). */ supplyChain: z.ZodOptional; scanners: z.ZodDefault; /** Shell command to run directly — shorthand alternative to writing a plugin file. */ command: z.ZodOptional; /** Whether this strategy must pass for the sprint to pass. */ required: z.ZodBoolean; /** Arbitrary config passed to the evaluator plugin. */ config: z.ZodOptional>; /** Human-readable label (defaults to type if not set). */ label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { enabled: boolean; scanners: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; }, { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; }>>; /** * Sprint-7: egress axis gating network-capable supply-chain scanners. * OPTIONAL with no outer default (same byte-identical guarantee as above). */ egress: z.ZodOptional; }, "strip", z.ZodTypeAny, { onlineResearch: boolean; }, { onlineResearch?: boolean | undefined; }>>; /** * Sprint-8: opt-in adversarial finder->verifier stage config. OPTIONAL * with no outer default — a config that omits `verifier` entirely stays * byte-identical (no defaults leak in), same guarantee as `diff` / * `supplyChain` / `egress` above (sc-8-5). `maxTurns` defaults lower than * the finder's (10 vs 20) — refutation needs fewer turns than the * original audit. */ verifier: z.ZodOptional; model: z.ZodDefault; maxTurns: z.ZodDefault; }, "strip", z.ZodTypeAny, { model: string; maxTurns: number; enabled: boolean; }, { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; }>>; }, "strip", z.ZodTypeAny, { model: string; maxTurns: number; enabled: boolean; timeoutMs: number; failClosed: boolean; scanners: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; standaloneBlockOn: "critical" | "important"; hub: boolean; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { onlineResearch: boolean; } | undefined; diff?: { mode: "estimated-files" | "git-diff"; expandWithGraph: boolean; baseRef?: string | undefined; } | undefined; supplyChain?: { enabled: boolean; scanners: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; } | undefined; verifier?: { model: string; maxTurns: number; enabled: boolean; } | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; egress?: { onlineResearch?: boolean | undefined; } | undefined; failClosed?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; standaloneBlockOn?: "critical" | "important" | undefined; hub?: boolean | undefined; diff?: { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; } | undefined; supplyChain?: { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; } | undefined; verifier?: { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; } | undefined; }>; export type SecuritySection = z.infer; /** * Per-sprint documenter — writes docs immediately after a sprint's evaluator * passes (instead of batching all docs into a final sprint). Advisory: a * documenter failure never downgrades the already-passed sprint. */ export declare const DocumenterSectionSchema: z.ZodObject<{ timeoutMs: z.ZodDefault; enabled: z.ZodDefault; model: z.ZodDefault; maxTurns: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; }, "strip", z.ZodTypeAny, { model: string; maxTurns: number; enabled: boolean; timeoutMs: number; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; }>; export type DocumenterSection = z.infer; /** Well-known checkpoint mechanism names. */ export declare const CheckpointMechanismSchema: z.ZodEnum<["noop", "cli", "disk", "pr"]>; export type CheckpointMechanismName = z.infer; export declare const PipelineSectionSchema: z.ZodObject<{ maxIterations: z.ZodDefault; /** Maximum times the router re-invokes a responsible agent after rejection. Default 3, min 1, max 10. */ maxCheckpointIterations: z.ZodDefault; requireApproval: z.ZodDefault; contextReset: z.ZodDefault>; researchPhase: z.ZodDefault; architectPhase: z.ZodDefault; /** Pipeline execution mode. 'autopilot' auto-approves all checkpoints; 'careful' defaults to disk mechanism. Default: 'autopilot'. */ mode: z.ZodDefault>; /** Global default checkpoint mechanism name. When unset, resolved at runtime from pipeline.mode. Optional — leave unset to use mode-based default. */ checkpointMechanism: z.ZodOptional>; /** Per-checkpoint mechanism overrides. Keys are checkpoint IDs (e.g., 'post-research'); values are mechanism names. Default: {}. */ checkpointOverrides: z.ZodDefault>>; /** How long (ms) the disk and CLI mechanisms wait for approval before timing out. Default: 86400000 (24 hours). */ approvalTimeoutMs: z.ZodDefault; /** How often (ms) the PR mechanism polls for PR merge/close events. Default: 30000 (30 seconds). */ prPollMs: z.ZodDefault; /** Sprint 20: escape hatch for fully-automated environments (CI, batch jobs) * where no human is available. When false (default), risky actions trigger * a non-noop mechanism floor (default 'disk') even in mode='autopilot' + * checkpointMechanism='noop'. When true, risky actions are auto-approved * with a STERN warning logged and the ChangeEntry STILL recorded with the * required inverse. This is "skip the interactive approval" — NOT "skip * the audit trail." Documented as a footgun in skills/bober.deploy/SKILL.md. */ allowAutopilotRiskyActions: z.ZodDefault; /** Sprint 3 (cockpit-integration): per-subscription bounded queue for the * event-stream notification fan-out. Default 1000. When the queue overflows, * the oldest events are dropped and a single `bober/events.dropped` * notification with `{ subscriptionId, dropped: N }` is emitted per * overflow window. */ eventQueueBound: z.ZodDefault; /** Sprint 4 (cockpit-integration): root directory (relative to projectRoot) under * which git worktrees are created. Default '.bober/worktrees'. The full worktree * path is //. */ worktreeRoot: z.ZodDefault; /** Sprint 4 (cockpit-integration): when true (default), the worktree is removed * via `git worktree remove` after a successful pipeline run. On failure the * worktree is ALWAYS retained for debugging regardless of this flag. */ cleanupWorktreeOnSuccess: z.ZodDefault; /** Orchestration engine. 'ts' runs the built-in TypeScript pipeline (default). 'skill' and 'workflow' select alternative engines (sprint 6+). Default: 'ts'. */ engine: z.ZodDefault>; }, "strip", z.ZodTypeAny, { mode: "autopilot" | "careful"; maxIterations: number; maxCheckpointIterations: number; requireApproval: boolean; contextReset: "never" | "always" | "on-threshold"; researchPhase: boolean; architectPhase: boolean; checkpointOverrides: Record; approvalTimeoutMs: number; prPollMs: number; allowAutopilotRiskyActions: boolean; eventQueueBound: number; worktreeRoot: string; cleanupWorktreeOnSuccess: boolean; engine: "ts" | "skill" | "workflow" | "medical-sop"; checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined; }, { mode?: "autopilot" | "careful" | undefined; maxIterations?: number | undefined; maxCheckpointIterations?: number | undefined; requireApproval?: boolean | undefined; contextReset?: "never" | "always" | "on-threshold" | undefined; researchPhase?: boolean | undefined; architectPhase?: boolean | undefined; checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined; checkpointOverrides?: Record | undefined; approvalTimeoutMs?: number | undefined; prPollMs?: number | undefined; allowAutopilotRiskyActions?: boolean | undefined; eventQueueBound?: number | undefined; worktreeRoot?: string | undefined; cleanupWorktreeOnSuccess?: boolean | undefined; engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; }>; export type PipelineSection = z.infer; export declare const CommandsSectionSchema: z.ZodObject<{ install: z.ZodOptional; build: z.ZodOptional; test: z.ZodOptional; lint: z.ZodOptional; dev: z.ZodOptional; typecheck: z.ZodOptional; }, "strip", z.ZodTypeAny, { install?: string | undefined; build?: string | undefined; test?: string | undefined; lint?: string | undefined; dev?: string | undefined; typecheck?: string | undefined; }, { install?: string | undefined; build?: string | undefined; test?: string | undefined; lint?: string | undefined; dev?: string | undefined; typecheck?: string | undefined; }>; export type CommandsSection = z.infer; export declare const GraphLanguageTierSchema: z.ZodEnum<["core", "extended", "all"]>; export type GraphLanguageTier = z.infer; /** * Per-role token budgets for pre-flight graph context injection (ADR-9). * Budgets are enforced on the FORMATTED markdown output (not raw graph results). * Token counting uses Math.ceil(text.length / 4) as a conservative estimate. */ export declare const GraphPreflightBudgetsSchema: z.ZodObject<{ architect: z.ZodDefault; curator: z.ZodDefault; generator: z.ZodDefault; evaluator: z.ZodDefault; /** camelCase alias for the 'researcher-phase2' role. */ researcherPhase2: z.ZodDefault; }, "strip", z.ZodTypeAny, { curator: number; generator: number; evaluator: number; architect: number; researcherPhase2: number; }, { curator?: number | undefined; generator?: number | undefined; evaluator?: number | undefined; architect?: number | undefined; researcherPhase2?: number | undefined; }>; export type GraphPreflightBudgets = z.infer; export declare const GraphSectionSchema: z.ZodObject<{ enabled: z.ZodDefault; tokensavePath: z.ZodOptional; autoSync: z.ZodDefault; languageTier: z.ZodDefault>; manifestPath: z.ZodDefault; syncTimeoutMs: z.ZodDefault; queryTimeoutMs: z.ZodDefault; debounceMs: z.ZodDefault; hookQueueMax: z.ZodDefault; maxEngineRssMb: z.ZodDefault; /** When true (default) and graph.enabled=true, graph_* tools are * exposed on the external MCP server (Cursor/Windsurf). When false, * graph tools remain available to the internal orchestrator only. */ exposeOnExternalMcp: z.ZodDefault; /** Per-role token budgets for pre-flight graph context injection (ADR-9). */ preflightBudgets: z.ZodDefault; curator: z.ZodDefault; generator: z.ZodDefault; evaluator: z.ZodDefault; /** camelCase alias for the 'researcher-phase2' role. */ researcherPhase2: z.ZodDefault; }, "strip", z.ZodTypeAny, { curator: number; generator: number; evaluator: number; architect: number; researcherPhase2: number; }, { curator?: number | undefined; generator?: number | undefined; evaluator?: number | undefined; architect?: number | undefined; researcherPhase2?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { enabled: boolean; autoSync: boolean; languageTier: "core" | "extended" | "all"; manifestPath: string; syncTimeoutMs: number; queryTimeoutMs: number; debounceMs: number; hookQueueMax: number; maxEngineRssMb: number; exposeOnExternalMcp: boolean; preflightBudgets: { curator: number; generator: number; evaluator: number; architect: number; researcherPhase2: number; }; tokensavePath?: string | undefined; }, { enabled?: boolean | undefined; tokensavePath?: string | undefined; autoSync?: boolean | undefined; languageTier?: "core" | "extended" | "all" | undefined; manifestPath?: string | undefined; syncTimeoutMs?: number | undefined; queryTimeoutMs?: number | undefined; debounceMs?: number | undefined; hookQueueMax?: number | undefined; maxEngineRssMb?: number | undefined; exposeOnExternalMcp?: boolean | undefined; preflightBudgets?: { curator?: number | undefined; generator?: number | undefined; evaluator?: number | undefined; architect?: number | undefined; researcherPhase2?: number | undefined; } | undefined; }>; export type GraphSection = z.infer; /** Categories of observability data a provider can serve. */ export declare const ObservabilityProviderKindSchema: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>; export type ObservabilityProviderKind = z.infer; /** * One declared external MCP server providing observability tools. * At diagnoser spawn time the orchestrator spawns mcpCommand with * mcpArgs and mcpEnv, lists its tools, and merges them into the * diagnoser's tool set under the prefix `obs____`. */ export declare const ObservabilityProviderSchema: z.ZodObject<{ /** Unique name used in the obs____ namespace prefix. */ name: z.ZodString; kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>; /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */ mcpCommand: z.ZodString; mcpArgs: z.ZodOptional>; /** Env vars passed to the child — may contain SECRETS (treat as opaque). */ mcpEnv: z.ZodOptional>; enabled: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; enabled: boolean; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }, { name: string; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }>; export type ObservabilityProvider = z.infer; export declare const ObservabilitySectionSchema: z.ZodObject<{ providers: z.ZodDefault__ namespace prefix. */ name: z.ZodString; kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>; /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */ mcpCommand: z.ZodString; mcpArgs: z.ZodOptional>; /** Env vars passed to the child — may contain SECRETS (treat as opaque). */ mcpEnv: z.ZodOptional>; enabled: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; enabled: boolean; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }, { name: string; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { providers: { name: string; enabled: boolean; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }[]; }, { providers?: { name: string; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }[] | undefined; }>; export type ObservabilitySection = z.infer; export declare const IncidentSectionSchema: z.ZodObject<{ /** When true (default), an incident transition to status='resolved' triggers * asynchronous postmortem generation. The status transition itself returns * immediately — postmortem synthesis runs fire-and-forget and updates * incident.json.postmortemPath when complete. Set false to disable auto-gen * (e.g., for CI environments or read-only audits). Sprint 23. */ autoPostmortem: z.ZodDefault; }, "strip", z.ZodTypeAny, { autoPostmortem: boolean; }, { autoPostmortem?: boolean | undefined; }>; export type IncidentSection = z.infer; export declare const TelemetrySectionSchema: z.ZodObject<{ /** When true, the orchestrator appends JSONL events to .bober/telemetry/.jsonl * for tracking checkpoint approval rates, incident resolution times, agent retry * counts. Default false (no events written). No network egress under any condition * — see ESLint no-restricted-imports rule in eslint.config.js for src/telemetry/. */ enabled: z.ZodDefault; }, "strip", z.ZodTypeAny, { enabled: boolean; }, { enabled?: boolean | undefined; }>; export type TelemetrySection = z.infer; export declare const TaskInboxSectionSchema: z.ZodObject<{ /** When true, `bober task from-gmail` may read a Gmail thread via the MCP * connector. Default false — zero Gmail egress unless explicitly opted in. */ gmailEgress: z.ZodDefault; }, "strip", z.ZodTypeAny, { gmailEgress: boolean; }, { gmailEgress?: boolean | undefined; }>; export type TaskInboxSection = z.infer; export declare const HistorySectionSchema: z.ZodObject<{ /** Max entries kept in the active history.jsonl before rotation moves the * oldest overflow to history.archive.jsonl. Positive integer, default 2000. */ maxActiveLines: z.ZodDefault; }, "strip", z.ZodTypeAny, { maxActiveLines: number; }, { maxActiveLines?: number | undefined; }>; export type HistorySection = z.infer; export declare const ChatSectionSchema: z.ZodObject<{ model: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; }, "strip", z.ZodTypeAny, { model: string; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; }>; export type ChatSection = z.infer; /** Schema for a single team entry declared under config.teams. All fields optional. */ export declare const TeamConfigSchema: z.ZodObject<{ displayName: z.ZodOptional; /** Memory namespace segment — restricted to a safe path segment. */ memoryNamespace: z.ZodOptional; /** Orchestration engine shape for this team. Mirrors the z.enum in PipelineSectionSchema. */ pipelineShape: z.ZodOptional>; /** Partial role -> provider override. Keys SHOULD be RoleName values. */ providers: z.ZodOptional>; roles: z.ZodOptional, "many">>; guardrails: z.ZodOptional; }, "strip", z.ZodTypeAny, { providers?: Record | undefined; displayName?: string | undefined; memoryNamespace?: string | undefined; pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; roles?: { name: string; displayName: string; }[] | undefined; guardrails?: unknown; }, { providers?: Record | undefined; displayName?: string | undefined; memoryNamespace?: string | undefined; pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; roles?: { name: string; displayName: string; }[] | undefined; guardrails?: unknown; }>; export type TeamConfig = z.infer; export declare const MedicalSectionSchema: z.ZodObject<{ /** Egress opt-in axes (ADR-6). Both default false — zero outbound bytes by default. */ egress: z.ZodOptional; /** When true, literature retrieval (MedlinePlus) is permitted. Default false. */ literatureRetrieval: z.ZodDefault; /** When true, WHOOP device-connection egress is permitted (ADR-1). Default false. */ deviceConnection: z.ZodDefault; }, "strip", z.ZodTypeAny, { cloudInference: boolean; literatureRetrieval: boolean; deviceConnection: boolean; }, { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; }>>; /** * Optional synthesis/critic model override (Sprint 3 — grounding-critic). * Absent => local Ollama default (openai-compat http://localhost:11434/v1, llama3). * A CLOUD provider here is only honoured when egress.cloudInference is true (fail-closed otherwise). */ inference: z.ZodOptional; endpoint: z.ZodOptional; model: z.ZodOptional; }, "strip", z.ZodTypeAny, { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; }>>; /** Optional vault dir for medical Findings/notes. Default: /.bober/medical/vault. */ vaultDir: z.ZodOptional; }, "strip", z.ZodTypeAny, { egress?: { cloudInference: boolean; literatureRetrieval: boolean; deviceConnection: boolean; } | undefined; inference?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; } | undefined; vaultDir?: string | undefined; }, { egress?: { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; } | undefined; inference?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; } | undefined; vaultDir?: string | undefined; }>; export type MedicalSection = z.infer; export declare const FleetSectionSchema: z.ZodObject<{ /** Absolute path to the shared WAL facts.db file. */ blackboardDbPath: z.ZodString; /** Namespace scoping all findings for this fleet run. */ blackboardNamespace: z.ZodString; /** This child's own subject identifier (equals the child folder name). */ blackboardSubject: z.ZodString; /** Maximum number of exchange rounds (1–3). */ maxRounds: z.ZodNumber; }, "strip", z.ZodTypeAny, { blackboardDbPath: string; blackboardNamespace: string; blackboardSubject: string; maxRounds: number; }, { blackboardDbPath: string; blackboardNamespace: string; blackboardSubject: string; maxRounds: number; }>; export type FleetSection = z.infer; /** * Configuration for one on-device Obsidian MCP server. * Mirrors ObservabilityProviderSchema but drops `kind` and adds `toolNames`. * mcpEnv may contain secrets — treat as opaque (never log, never stringify). */ export declare const VaultObsidianSchema: z.ZodObject<{ /** Unique server name (used in error messages — never secrets). */ name: z.ZodString; /** Executable to spawn (e.g., "npx", "/usr/local/bin/obsidian-mcp"). */ mcpCommand: z.ZodString; mcpArgs: z.ZodOptional>; /** Env vars passed to the child — may contain SECRETS (treat as opaque, never log). */ mcpEnv: z.ZodOptional>; enabled: z.ZodDefault; /** * Override the server tool names per logical operation. * When absent, cyanheads/obsidian-mcp-server defaults are used (see DEFAULT_VAULT_TOOL_NAMES). * Provide overrides when using a different MCP server (e.g., Obsidian Local REST API). */ toolNames: z.ZodOptional; writeNote: z.ZodOptional; listNotes: z.ZodOptional; }, "strip", z.ZodTypeAny, { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; }, { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { name: string; enabled: boolean; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; }, { name: string; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; }>; export type VaultObsidian = z.infer; export declare const VaultSectionSchema: z.ZodObject<{ obsidian: z.ZodOptional>; /** Env vars passed to the child — may contain SECRETS (treat as opaque, never log). */ mcpEnv: z.ZodOptional>; enabled: z.ZodDefault; /** * Override the server tool names per logical operation. * When absent, cyanheads/obsidian-mcp-server defaults are used (see DEFAULT_VAULT_TOOL_NAMES). * Provide overrides when using a different MCP server (e.g., Obsidian Local REST API). */ toolNames: z.ZodOptional; writeNote: z.ZodOptional; listNotes: z.ZodOptional; }, "strip", z.ZodTypeAny, { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; }, { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { name: string; enabled: boolean; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; }, { name: string; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { obsidian?: { name: string; enabled: boolean; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; } | undefined; }, { obsidian?: { name: string; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; } | undefined; }>; export type VaultSection = z.infer; export declare const CalendarSectionSchema: z.ZodObject<{ /** Egress opt-in axis (Sprint 3). Default false — zero cloud egress by default. */ egress: z.ZodOptional; }, "strip", z.ZodTypeAny, { cloudCalendar: boolean; }, { cloudCalendar?: boolean | undefined; }>>; /** Which connector to use. Default 'ics' (local, zero-egress). */ connector: z.ZodDefault>; /** Optional IANA timezone (informational only; not used in epoch-ms math). */ timezone: z.ZodOptional; }, "strip", z.ZodTypeAny, { connector: "ics" | "google"; egress?: { cloudCalendar: boolean; } | undefined; timezone?: string | undefined; }, { egress?: { cloudCalendar?: boolean | undefined; } | undefined; connector?: "ics" | "google" | undefined; timezone?: string | undefined; }>; export type CalendarSection = z.infer; export declare const ResearchSectionSchema: z.ZodObject<{ /** Egress opt-in axis. Default false — zero outbound bytes by default (fail-closed, ADR-6 lineage). */ egress: z.ZodOptional; }, "strip", z.ZodTypeAny, { onlineResearch: boolean; }, { onlineResearch?: boolean | undefined; }>>; }, "strip", z.ZodTypeAny, { egress?: { onlineResearch: boolean; } | undefined; }, { egress?: { onlineResearch?: boolean | undefined; } | undefined; }>; export type ResearchSection = z.infer; /** One configured MCP server the opt-in bridge spawns to expose its tools as loop ToolDefs. */ export declare const McpBridgeServerSchema: z.ZodObject<{ /** Executable to spawn (e.g., "node", "npx", "/usr/local/bin/some-mcp-server"). */ command: z.ZodString; args: z.ZodDefault>; }, "strip", z.ZodTypeAny, { command: string; args: string[]; }, { command: string; args?: string[] | undefined; }>; export type McpBridgeServer = z.infer; export declare const ToolsSectionSchema: z.ZodObject<{ /** Opt-in bridge exposing a configured MCP server's tools as agentic-loop * ToolDefs (agent-loop-capability-port sprint 10). Default false — * disabled means no MCP process/transport is ever created and the loop's * tool list is unchanged. Only constructed by a consumer that reads * `enabled === true` at the call site (never at config parse time). */ mcpBridge: z.ZodOptional; server: z.ZodObject<{ /** Executable to spawn (e.g., "node", "npx", "/usr/local/bin/some-mcp-server"). */ command: z.ZodString; args: z.ZodDefault>; }, "strip", z.ZodTypeAny, { command: string; args: string[]; }, { command: string; args?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { enabled: boolean; server: { command: string; args: string[]; }; }, { server: { command: string; args?: string[] | undefined; }; enabled?: boolean | undefined; }>>; }, "strip", z.ZodTypeAny, { mcpBridge?: { enabled: boolean; server: { command: string; args: string[]; }; } | undefined; }, { mcpBridge?: { server: { command: string; args?: string[] | undefined; }; enabled?: boolean | undefined; } | undefined; }>; export type ToolsSection = z.infer; /** * Configuration for the bober-seo capability (spec-20260715). Opt-in and * default-off: the two live-data egress axes (`search-console`, * `serp-provider`) each default false, and the whole `seo` section is wired * `.optional()` on BoberConfigSchema with no top-level default, so a config * that omits `seo` entirely stays byte-identical (no defaults leak in) — * mirrors the security-section idiom (schema.ts:246-296) and the medical * nested-egress idiom (schema.ts:525-536). */ export declare const SeoConfigSchema: z.ZodObject<{ /** * Two live-data egress axes (search-console, serp-provider). Both default * false — the offline LocalExportSource path needs neither. OPTIONAL with * no outer default — a config that omits `egress` entirely stays * byte-identical, same guarantee as `security.egress` (schema.ts:280). */ egress: z.ZodOptional; /** When true, DataForSEO SERP/keywords/backlinks egress is permitted. Default false. */ "serp-provider": z.ZodDefault; /** When true, live AI-visibility/GEO provider egress (BYOK grounded-LLM API spine) is permitted. Default false. */ "ai-visibility": z.ZodDefault; /** When true, damcrawler-backed site crawling (crawl/url-coverage/link-graph/SERP-scrape) is permitted. Default false. */ "site-crawl": z.ZodDefault; /** * When true, the AI-visibility UI-scrape arm's egress is permitted. * SEPARATE axis from `ai-visibility` (ADR-5, in-house-ai-visibility * architecture line 44) — default false and, as of Sprint 3, composes * NO provider yet (axis-only; the scrape arm lands Sprint 10). */ "ai-visibility-scrape": z.ZodDefault; }, "strip", z.ZodTypeAny, { "search-console": boolean; "serp-provider": boolean; "ai-visibility": boolean; "site-crawl": boolean; "ai-visibility-scrape": boolean; }, { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; }>>; /** * Opt-in adversarial downgrade-only verifier stage (mirrors * `security.verifier`, schema.ts:289-295). OPTIONAL with no outer * default — omitting `verifier` entirely stays byte-identical. */ verifier: z.ZodOptional; }, "strip", z.ZodTypeAny, { enabled: boolean; }, { enabled?: boolean | undefined; }>>; /** * Per-run USD spend ceiling for PAYG DataForSEO calls. Reuses * `BudgetSectionSchema` (schema.ts:48-51) verbatim; null/absent = uncapped. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; /** Default domain/URL/local path used when the CLI omits [target]. */ defaultTarget: z.ZodOptional; /** Citation-gate blocking threshold for the CI exit code. Default 'critical-uncited'. */ blockThreshold: z.ZodDefault>; /** * Which SERP provider implementation serves the `serp` capability. OPTIONAL * with an INNER default on `provider` (not an outer default on the whole * object) — a config omitting `serp` entirely stays byte-identical * (`SeoConfigSchema.parse({})` leaks only `blockThreshold`, schema.test.ts:978-985). */ serp: z.ZodOptional>; }, "strip", z.ZodTypeAny, { provider: "dataforseo" | "damcrawler"; }, { provider?: "dataforseo" | "damcrawler" | undefined; }>>; /** * In-house AI-visibility API-spine configuration (in-house-ai-visibility, * Sprint 3). OPTIONAL with NO outer default — a config that omits * `aiVisibility` entirely stays byte-identical (mirrors the `serp` idiom * above). Inner fields carry their own `.default(...)` and only * materialize when the object is present. `resolveAiVisibilityProvider` * (`../seo/ai-visibility-provider.js`) reads this to compose per-engine * arms; an engine with no matching API key is skipped (no-key-safe). */ aiVisibility: z.ZodOptional; /** * Which engines to probe. `"perplexity"` is a valid value but has no * live provider mapper yet (Sprint 7 nonGoal) — configuring it yields * zero rows from that arm, not an error. Default `[]` (no engines * configured => `resolveAiVisibilityProvider` returns `undefined`). */ engines: z.ZodDefault; /** Fixed USD price per grounded-search call for this engine. Default 0. */ perCallUsd: z.ZodDefault; }, "strip", z.ZodTypeAny, { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }, { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }>, "many">>; /** * Optional LLM-as-judge fuzzy-mention path (in-house-ai-visibility, * Sprint 8). OPTIONAL with NO outer default — mirrors `serp`/ * `aiVisibility` above — a config that omits `judge` entirely stays * byte-identical (`SeoConfigSchema.parse({ aiVisibility: {} })` leaks * only `samplesPerPrompt`/`engines`, schema.test.ts:1089-1096). Only * the inner `enabled` flag carries a `.default(false)`. The judge is * OFF by default even when this object is present but `enabled` is * omitted. */ judge: z.ZodOptional; /** Optional model override for the judge call; falls back to the injected default when absent. */ model: z.ZodOptional; }, "strip", z.ZodTypeAny, { enabled: boolean; model?: string | undefined; }, { model?: string | undefined; enabled?: boolean | undefined; }>>; /** * Gated damcrawler UI-scrape arm configuration (in-house-ai- * visibility, Sprint 9/10). OPTIONAL with NO outer default — mirrors * `serp`/`judge` above — a config that omits `scrape` entirely stays * byte-identical (`SeoConfigSchema.parse({ aiVisibility: {} })` leaks * only `samplesPerPrompt`/`engines`). Only the inner fields carry * `.default(...)`. Gated separately by the `ai-visibility-scrape` * egress axis (`../seo/egress.js`) — this object being present does * NOT itself enable scraping. `authSession`/`proxy` are operator- * supplied (nonGoal: no auth harvesting, no proxy sourcing); the rate/ * proxy-budget caps are consumed by a follow-up sprint's * `ScrapeThrottle` runner wiring (Sprint 9 built the throttle itself * in isolation; Sprint 10 composes the arm behind an injected dep). */ scrape: z.ZodOptional, "many">>; /** Operator-supplied auth session (storageState path / profile name / cookie blob) passed opaquely to damcrawler's scrape options. */ authSession: z.ZodOptional; /** Operator-supplied proxy passed opaquely to damcrawler's scrape options. */ proxy: z.ZodOptional; /** Fixed USD cost booked to the ScrapeThrottle proxy ledger per successful scrape. Default 0. */ proxyUsdPerScrape: z.ZodDefault; /** ScrapeThrottle rate-window cap: max acquire() grants per engine per window. Default 10. */ maxPerWindow: z.ZodDefault; /** ScrapeThrottle rate-window length in milliseconds. Default 60000 (1 minute). */ windowMs: z.ZodDefault; /** ScrapeThrottle cumulative proxy-USD cap per engine. Default 0 (no proxy spend permitted until explicitly raised). */ maxProxyUsd: z.ZodDefault; }, "strip", z.ZodTypeAny, { engines: ("chatgpt-ui" | "perplexity-ui")[]; proxyUsdPerScrape: number; maxPerWindow: number; windowMs: number; maxProxyUsd: number; authSession?: string | undefined; proxy?: string | undefined; }, { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { samplesPerPrompt: number; engines: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }[]; judge?: { enabled: boolean; model?: string | undefined; } | undefined; scrape?: { engines: ("chatgpt-ui" | "perplexity-ui")[]; proxyUsdPerScrape: number; maxPerWindow: number; windowMs: number; maxProxyUsd: number; authSession?: string | undefined; proxy?: string | undefined; } | undefined; }, { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { blockThreshold: "never" | "any-uncited" | "critical-uncited"; budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { "search-console": boolean; "serp-provider": boolean; "ai-visibility": boolean; "site-crawl": boolean; "ai-visibility-scrape": boolean; } | undefined; verifier?: { enabled: boolean; } | undefined; defaultTarget?: string | undefined; serp?: { provider: "dataforseo" | "damcrawler"; } | undefined; aiVisibility?: { samplesPerPrompt: number; engines: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }[]; judge?: { enabled: boolean; model?: string | undefined; } | undefined; scrape?: { engines: ("chatgpt-ui" | "perplexity-ui")[]; proxyUsdPerScrape: number; maxPerWindow: number; windowMs: number; maxProxyUsd: number; authSession?: string | undefined; proxy?: string | undefined; } | undefined; } | undefined; }, { budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; } | undefined; verifier?: { enabled?: boolean | undefined; } | undefined; defaultTarget?: string | undefined; blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined; serp?: { provider?: "dataforseo" | "damcrawler" | undefined; } | undefined; aiVisibility?: { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; } | undefined; }>; export type SeoConfig = z.infer; export declare const BoberConfigSchema: z.ZodObject<{ project: z.ZodObject<{ name: z.ZodString; mode: z.ZodEnum<["greenfield", "brownfield"]>; preset: z.ZodOptional; stack: z.ZodOptional; backend: z.ZodOptional; blockchain: z.ZodOptional; testing: z.ZodOptional; database: z.ZodOptional; language: z.ZodOptional; other: z.ZodOptional>; }, "strip", z.ZodTypeAny, { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; }, { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; }>>; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { name: string; mode: "greenfield" | "brownfield"; preset?: string | undefined; stack?: { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; } | undefined; description?: string | undefined; }, { name: string; mode: "greenfield" | "brownfield"; preset?: string | undefined; stack?: { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; } | undefined; description?: string | undefined; }>; planner: z.ZodObject<{ maxClarifications: z.ZodDefault; model: z.ZodDefault; contextFiles: z.ZodOptional>; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */ effort: z.ZodOptional>; /** Optional per-run USD spend ceiling. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; }, "strip", z.ZodTypeAny, { maxClarifications: number; model: string; contextFiles?: string[] | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; }, { maxClarifications?: number | undefined; model?: string | undefined; contextFiles?: string[] | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; }>; curator: z.ZodOptional; maxTurns: z.ZodDefault; enabled: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */ effort: z.ZodOptional>; /** Optional per-run USD spend ceiling. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; }, "strip", z.ZodTypeAny, { model: string; maxTurns: number; enabled: boolean; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; }>>; generator: z.ZodObject<{ model: z.ZodDefault; maxTurnsPerSprint: z.ZodDefault; autoCommit: z.ZodDefault; branchPattern: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */ effort: z.ZodOptional>; /** Optional per-run USD spend ceiling. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; /** * When true, contiguous read-only tool calls (read_file/glob/grep) within a * turn execute concurrently instead of strictly serially (ADR-2, agent-loop * capability port sprint 4). Optional, no default — absent/false is * byte-identical to the pre-change serial loop. */ parallelReadOnlyTools: z.ZodOptional; }, "strip", z.ZodTypeAny, { model: string; maxTurnsPerSprint: number; autoCommit: boolean; branchPattern: string; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; parallelReadOnlyTools?: boolean | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurnsPerSprint?: number | undefined; autoCommit?: boolean | undefined; branchPattern?: string | undefined; parallelReadOnlyTools?: boolean | undefined; }>; evaluator: z.ZodObject<{ model: z.ZodDefault; strategies: z.ZodArray; /** Shell command to run directly — shorthand alternative to writing a plugin file. */ command: z.ZodOptional; /** Whether this strategy must pass for the sprint to pass. */ required: z.ZodBoolean; /** Arbitrary config passed to the evaluator plugin. */ config: z.ZodOptional>; /** Human-readable label (defaults to type if not set). */ label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }>, "many">; maxIterations: z.ZodDefault; plugins: z.ZodOptional>; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; panel: z.ZodDefault; lenses: z.ZodDefault>; maxConcurrent: z.ZodDefault; }, "strip", z.ZodTypeAny, { enabled: boolean; lenses: string[]; maxConcurrent: number; }, { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; }>>; /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */ effort: z.ZodOptional>; /** Optional per-run USD spend ceiling. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; }, "strip", z.ZodTypeAny, { model: string; strategies: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; maxIterations: number; panel: { enabled: boolean; lenses: string[]; maxConcurrent: number; }; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; plugins?: string[] | undefined; }, { strategies: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxIterations?: number | undefined; plugins?: string[] | undefined; panel?: { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; } | undefined; }>; sprint: z.ZodObject<{ maxSprints: z.ZodDefault; requireContracts: z.ZodDefault; sprintSize: z.ZodDefault>; }, "strip", z.ZodTypeAny, { maxSprints: number; requireContracts: boolean; sprintSize: "medium" | "small" | "large"; }, { maxSprints?: number | undefined; requireContracts?: boolean | undefined; sprintSize?: "medium" | "small" | "large" | undefined; }>; pipeline: z.ZodObject<{ maxIterations: z.ZodDefault; /** Maximum times the router re-invokes a responsible agent after rejection. Default 3, min 1, max 10. */ maxCheckpointIterations: z.ZodDefault; requireApproval: z.ZodDefault; contextReset: z.ZodDefault>; researchPhase: z.ZodDefault; architectPhase: z.ZodDefault; /** Pipeline execution mode. 'autopilot' auto-approves all checkpoints; 'careful' defaults to disk mechanism. Default: 'autopilot'. */ mode: z.ZodDefault>; /** Global default checkpoint mechanism name. When unset, resolved at runtime from pipeline.mode. Optional — leave unset to use mode-based default. */ checkpointMechanism: z.ZodOptional>; /** Per-checkpoint mechanism overrides. Keys are checkpoint IDs (e.g., 'post-research'); values are mechanism names. Default: {}. */ checkpointOverrides: z.ZodDefault>>; /** How long (ms) the disk and CLI mechanisms wait for approval before timing out. Default: 86400000 (24 hours). */ approvalTimeoutMs: z.ZodDefault; /** How often (ms) the PR mechanism polls for PR merge/close events. Default: 30000 (30 seconds). */ prPollMs: z.ZodDefault; /** Sprint 20: escape hatch for fully-automated environments (CI, batch jobs) * where no human is available. When false (default), risky actions trigger * a non-noop mechanism floor (default 'disk') even in mode='autopilot' + * checkpointMechanism='noop'. When true, risky actions are auto-approved * with a STERN warning logged and the ChangeEntry STILL recorded with the * required inverse. This is "skip the interactive approval" — NOT "skip * the audit trail." Documented as a footgun in skills/bober.deploy/SKILL.md. */ allowAutopilotRiskyActions: z.ZodDefault; /** Sprint 3 (cockpit-integration): per-subscription bounded queue for the * event-stream notification fan-out. Default 1000. When the queue overflows, * the oldest events are dropped and a single `bober/events.dropped` * notification with `{ subscriptionId, dropped: N }` is emitted per * overflow window. */ eventQueueBound: z.ZodDefault; /** Sprint 4 (cockpit-integration): root directory (relative to projectRoot) under * which git worktrees are created. Default '.bober/worktrees'. The full worktree * path is //. */ worktreeRoot: z.ZodDefault; /** Sprint 4 (cockpit-integration): when true (default), the worktree is removed * via `git worktree remove` after a successful pipeline run. On failure the * worktree is ALWAYS retained for debugging regardless of this flag. */ cleanupWorktreeOnSuccess: z.ZodDefault; /** Orchestration engine. 'ts' runs the built-in TypeScript pipeline (default). 'skill' and 'workflow' select alternative engines (sprint 6+). Default: 'ts'. */ engine: z.ZodDefault>; }, "strip", z.ZodTypeAny, { mode: "autopilot" | "careful"; maxIterations: number; maxCheckpointIterations: number; requireApproval: boolean; contextReset: "never" | "always" | "on-threshold"; researchPhase: boolean; architectPhase: boolean; checkpointOverrides: Record; approvalTimeoutMs: number; prPollMs: number; allowAutopilotRiskyActions: boolean; eventQueueBound: number; worktreeRoot: string; cleanupWorktreeOnSuccess: boolean; engine: "ts" | "skill" | "workflow" | "medical-sop"; checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined; }, { mode?: "autopilot" | "careful" | undefined; maxIterations?: number | undefined; maxCheckpointIterations?: number | undefined; requireApproval?: boolean | undefined; contextReset?: "never" | "always" | "on-threshold" | undefined; researchPhase?: boolean | undefined; architectPhase?: boolean | undefined; checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined; checkpointOverrides?: Record | undefined; approvalTimeoutMs?: number | undefined; prPollMs?: number | undefined; allowAutopilotRiskyActions?: boolean | undefined; eventQueueBound?: number | undefined; worktreeRoot?: string | undefined; cleanupWorktreeOnSuccess?: boolean | undefined; engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; }>; commands: z.ZodObject<{ install: z.ZodOptional; build: z.ZodOptional; test: z.ZodOptional; lint: z.ZodOptional; dev: z.ZodOptional; typecheck: z.ZodOptional; }, "strip", z.ZodTypeAny, { install?: string | undefined; build?: string | undefined; test?: string | undefined; lint?: string | undefined; dev?: string | undefined; typecheck?: string | undefined; }, { install?: string | undefined; build?: string | undefined; test?: string | undefined; lint?: string | undefined; dev?: string | undefined; typecheck?: string | undefined; }>; graph: z.ZodOptional; tokensavePath: z.ZodOptional; autoSync: z.ZodDefault; languageTier: z.ZodDefault>; manifestPath: z.ZodDefault; syncTimeoutMs: z.ZodDefault; queryTimeoutMs: z.ZodDefault; debounceMs: z.ZodDefault; hookQueueMax: z.ZodDefault; maxEngineRssMb: z.ZodDefault; /** When true (default) and graph.enabled=true, graph_* tools are * exposed on the external MCP server (Cursor/Windsurf). When false, * graph tools remain available to the internal orchestrator only. */ exposeOnExternalMcp: z.ZodDefault; /** Per-role token budgets for pre-flight graph context injection (ADR-9). */ preflightBudgets: z.ZodDefault; curator: z.ZodDefault; generator: z.ZodDefault; evaluator: z.ZodDefault; /** camelCase alias for the 'researcher-phase2' role. */ researcherPhase2: z.ZodDefault; }, "strip", z.ZodTypeAny, { curator: number; generator: number; evaluator: number; architect: number; researcherPhase2: number; }, { curator?: number | undefined; generator?: number | undefined; evaluator?: number | undefined; architect?: number | undefined; researcherPhase2?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { enabled: boolean; autoSync: boolean; languageTier: "core" | "extended" | "all"; manifestPath: string; syncTimeoutMs: number; queryTimeoutMs: number; debounceMs: number; hookQueueMax: number; maxEngineRssMb: number; exposeOnExternalMcp: boolean; preflightBudgets: { curator: number; generator: number; evaluator: number; architect: number; researcherPhase2: number; }; tokensavePath?: string | undefined; }, { enabled?: boolean | undefined; tokensavePath?: string | undefined; autoSync?: boolean | undefined; languageTier?: "core" | "extended" | "all" | undefined; manifestPath?: string | undefined; syncTimeoutMs?: number | undefined; queryTimeoutMs?: number | undefined; debounceMs?: number | undefined; hookQueueMax?: number | undefined; maxEngineRssMb?: number | undefined; exposeOnExternalMcp?: boolean | undefined; preflightBudgets?: { curator?: number | undefined; generator?: number | undefined; evaluator?: number | undefined; architect?: number | undefined; researcherPhase2?: number | undefined; } | undefined; }>>; codeReview: z.ZodOptional; enabled: z.ZodDefault; model: z.ZodDefault; maxTurns: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; }, "strip", z.ZodTypeAny, { model: string; maxTurns: number; enabled: boolean; timeoutMs: number; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; }>>; documenter: z.ZodOptional; enabled: z.ZodDefault; model: z.ZodDefault; maxTurns: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; }, "strip", z.ZodTypeAny, { model: string; maxTurns: number; enabled: boolean; timeoutMs: number; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; }>>; observability: z.ZodOptional__ namespace prefix. */ name: z.ZodString; kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>; /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */ mcpCommand: z.ZodString; mcpArgs: z.ZodOptional>; /** Env vars passed to the child — may contain SECRETS (treat as opaque). */ mcpEnv: z.ZodOptional>; enabled: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; enabled: boolean; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }, { name: string; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { providers: { name: string; enabled: boolean; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }[]; }, { providers?: { name: string; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }[] | undefined; }>>; incident: z.ZodOptional; }, "strip", z.ZodTypeAny, { autoPostmortem: boolean; }, { autoPostmortem?: boolean | undefined; }>>; telemetry: z.ZodOptional.jsonl * for tracking checkpoint approval rates, incident resolution times, agent retry * counts. Default false (no events written). No network egress under any condition * — see ESLint no-restricted-imports rule in eslint.config.js for src/telemetry/. */ enabled: z.ZodDefault; }, "strip", z.ZodTypeAny, { enabled: boolean; }, { enabled?: boolean | undefined; }>>; architect: z.ZodOptional; lenses: z.ZodDefault>; maxConcurrent: z.ZodDefault; }, "strip", z.ZodTypeAny, { enabled: boolean; lenses: string[]; maxConcurrent: number; }, { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { panel: { enabled: boolean; lenses: string[]; maxConcurrent: number; }; }, { panel?: { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; } | undefined; }>>; history: z.ZodOptional; }, "strip", z.ZodTypeAny, { maxActiveLines: number; }, { maxActiveLines?: number | undefined; }>>; chat: z.ZodOptional; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; }, "strip", z.ZodTypeAny, { model: string; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; }>>; teams: z.ZodOptional; /** Memory namespace segment — restricted to a safe path segment. */ memoryNamespace: z.ZodOptional; /** Orchestration engine shape for this team. Mirrors the z.enum in PipelineSectionSchema. */ pipelineShape: z.ZodOptional>; /** Partial role -> provider override. Keys SHOULD be RoleName values. */ providers: z.ZodOptional>; roles: z.ZodOptional, "many">>; guardrails: z.ZodOptional; }, "strip", z.ZodTypeAny, { providers?: Record | undefined; displayName?: string | undefined; memoryNamespace?: string | undefined; pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; roles?: { name: string; displayName: string; }[] | undefined; guardrails?: unknown; }, { providers?: Record | undefined; displayName?: string | undefined; memoryNamespace?: string | undefined; pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; roles?: { name: string; displayName: string; }[] | undefined; guardrails?: unknown; }>>>; defaultTeam: z.ZodOptional; medical: z.ZodOptional; /** When true, literature retrieval (MedlinePlus) is permitted. Default false. */ literatureRetrieval: z.ZodDefault; /** When true, WHOOP device-connection egress is permitted (ADR-1). Default false. */ deviceConnection: z.ZodDefault; }, "strip", z.ZodTypeAny, { cloudInference: boolean; literatureRetrieval: boolean; deviceConnection: boolean; }, { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; }>>; /** * Optional synthesis/critic model override (Sprint 3 — grounding-critic). * Absent => local Ollama default (openai-compat http://localhost:11434/v1, llama3). * A CLOUD provider here is only honoured when egress.cloudInference is true (fail-closed otherwise). */ inference: z.ZodOptional; endpoint: z.ZodOptional; model: z.ZodOptional; }, "strip", z.ZodTypeAny, { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; }>>; /** Optional vault dir for medical Findings/notes. Default: /.bober/medical/vault. */ vaultDir: z.ZodOptional; }, "strip", z.ZodTypeAny, { egress?: { cloudInference: boolean; literatureRetrieval: boolean; deviceConnection: boolean; } | undefined; inference?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; } | undefined; vaultDir?: string | undefined; }, { egress?: { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; } | undefined; inference?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; } | undefined; vaultDir?: string | undefined; }>>; fleet: z.ZodOptional>; vault: z.ZodOptional>; /** Env vars passed to the child — may contain SECRETS (treat as opaque, never log). */ mcpEnv: z.ZodOptional>; enabled: z.ZodDefault; /** * Override the server tool names per logical operation. * When absent, cyanheads/obsidian-mcp-server defaults are used (see DEFAULT_VAULT_TOOL_NAMES). * Provide overrides when using a different MCP server (e.g., Obsidian Local REST API). */ toolNames: z.ZodOptional; writeNote: z.ZodOptional; listNotes: z.ZodOptional; }, "strip", z.ZodTypeAny, { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; }, { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { name: string; enabled: boolean; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; }, { name: string; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { obsidian?: { name: string; enabled: boolean; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; } | undefined; }, { obsidian?: { name: string; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; } | undefined; }>>; taskInbox: z.ZodOptional; }, "strip", z.ZodTypeAny, { gmailEgress: boolean; }, { gmailEgress?: boolean | undefined; }>>; calendar: z.ZodOptional; }, "strip", z.ZodTypeAny, { cloudCalendar: boolean; }, { cloudCalendar?: boolean | undefined; }>>; /** Which connector to use. Default 'ics' (local, zero-egress). */ connector: z.ZodDefault>; /** Optional IANA timezone (informational only; not used in epoch-ms math). */ timezone: z.ZodOptional; }, "strip", z.ZodTypeAny, { connector: "ics" | "google"; egress?: { cloudCalendar: boolean; } | undefined; timezone?: string | undefined; }, { egress?: { cloudCalendar?: boolean | undefined; } | undefined; connector?: "ics" | "google" | undefined; timezone?: string | undefined; }>>; research: z.ZodOptional; }, "strip", z.ZodTypeAny, { onlineResearch: boolean; }, { onlineResearch?: boolean | undefined; }>>; }, "strip", z.ZodTypeAny, { egress?: { onlineResearch: boolean; } | undefined; }, { egress?: { onlineResearch?: boolean | undefined; } | undefined; }>>; tools: z.ZodOptional; server: z.ZodObject<{ /** Executable to spawn (e.g., "node", "npx", "/usr/local/bin/some-mcp-server"). */ command: z.ZodString; args: z.ZodDefault>; }, "strip", z.ZodTypeAny, { command: string; args: string[]; }, { command: string; args?: string[] | undefined; }>; }, "strip", z.ZodTypeAny, { enabled: boolean; server: { command: string; args: string[]; }; }, { server: { command: string; args?: string[] | undefined; }; enabled?: boolean | undefined; }>>; }, "strip", z.ZodTypeAny, { mcpBridge?: { enabled: boolean; server: { command: string; args: string[]; }; } | undefined; }, { mcpBridge?: { server: { command: string; args?: string[] | undefined; }; enabled?: boolean | undefined; } | undefined; }>>; security: z.ZodOptional; /** Fail-closed: unparseable auditor output or a timeout blocks. Default true. */ failClosed: z.ZodDefault; timeoutMs: z.ZodDefault; model: z.ZodDefault; maxTurns: z.ZodDefault; provider: z.ZodOptional; endpoint: z.ZodOptional>; providerConfig: z.ZodOptional>; /** Optional per-run USD spend ceiling. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; /** Opt-in deterministic scanner pre-filter strategies (e.g. slither, semgrep). */ scanners: z.ZodDefault; /** Shell command to run directly — shorthand alternative to writing a plugin file. */ command: z.ZodOptional; /** Whether this strategy must pass for the sprint to pass. */ required: z.ZodBoolean; /** Arbitrary config passed to the evaluator plugin. */ config: z.ZodOptional>; /** Human-readable label (defaults to type if not set). */ label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }>, "many">>; /** Blocking threshold for the standalone `bober security-audit` CLI (sprint 4). */ standaloneBlockOn: z.ZodDefault>; /** Whether findings are emitted to the priority hub (sprint 6). Default true. */ hub: z.ZodDefault; /** * Opt-in real-diff provider config (sprint 6). OPTIONAL with no outer * default — a config that omits `diff` entirely stays byte-identical * (no defaults leak in), same guarantee as `security` itself (sc-6-3). */ diff: z.ZodOptional>; baseRef: z.ZodOptional; expandWithGraph: z.ZodDefault; }, "strip", z.ZodTypeAny, { mode: "estimated-files" | "git-diff"; expandWithGraph: boolean; baseRef?: string | undefined; }, { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; }>>; /** * Sprint-7: opt-in supply-chain axis config. OPTIONAL with no outer * default — a config that omits `supplyChain` entirely stays * byte-identical (no defaults leak in), same guarantee as `diff` (sc-7-3). */ supplyChain: z.ZodOptional; scanners: z.ZodDefault; /** Shell command to run directly — shorthand alternative to writing a plugin file. */ command: z.ZodOptional; /** Whether this strategy must pass for the sprint to pass. */ required: z.ZodBoolean; /** Arbitrary config passed to the evaluator plugin. */ config: z.ZodOptional>; /** Human-readable label (defaults to type if not set). */ label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }>, "many">>; }, "strip", z.ZodTypeAny, { enabled: boolean; scanners: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; }, { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; }>>; /** * Sprint-7: egress axis gating network-capable supply-chain scanners. * OPTIONAL with no outer default (same byte-identical guarantee as above). */ egress: z.ZodOptional; }, "strip", z.ZodTypeAny, { onlineResearch: boolean; }, { onlineResearch?: boolean | undefined; }>>; /** * Sprint-8: opt-in adversarial finder->verifier stage config. OPTIONAL * with no outer default — a config that omits `verifier` entirely stays * byte-identical (no defaults leak in), same guarantee as `diff` / * `supplyChain` / `egress` above (sc-8-5). `maxTurns` defaults lower than * the finder's (10 vs 20) — refutation needs fewer turns than the * original audit. */ verifier: z.ZodOptional; model: z.ZodDefault; maxTurns: z.ZodDefault; }, "strip", z.ZodTypeAny, { model: string; maxTurns: number; enabled: boolean; }, { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; }>>; }, "strip", z.ZodTypeAny, { model: string; maxTurns: number; enabled: boolean; timeoutMs: number; failClosed: boolean; scanners: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; standaloneBlockOn: "critical" | "important"; hub: boolean; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { onlineResearch: boolean; } | undefined; diff?: { mode: "estimated-files" | "git-diff"; expandWithGraph: boolean; baseRef?: string | undefined; } | undefined; supplyChain?: { enabled: boolean; scanners: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; } | undefined; verifier?: { model: string; maxTurns: number; enabled: boolean; } | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; egress?: { onlineResearch?: boolean | undefined; } | undefined; failClosed?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; standaloneBlockOn?: "critical" | "important" | undefined; hub?: boolean | undefined; diff?: { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; } | undefined; supplyChain?: { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; } | undefined; verifier?: { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; } | undefined; }>>; seo: z.ZodOptional; /** When true, DataForSEO SERP/keywords/backlinks egress is permitted. Default false. */ "serp-provider": z.ZodDefault; /** When true, live AI-visibility/GEO provider egress (BYOK grounded-LLM API spine) is permitted. Default false. */ "ai-visibility": z.ZodDefault; /** When true, damcrawler-backed site crawling (crawl/url-coverage/link-graph/SERP-scrape) is permitted. Default false. */ "site-crawl": z.ZodDefault; /** * When true, the AI-visibility UI-scrape arm's egress is permitted. * SEPARATE axis from `ai-visibility` (ADR-5, in-house-ai-visibility * architecture line 44) — default false and, as of Sprint 3, composes * NO provider yet (axis-only; the scrape arm lands Sprint 10). */ "ai-visibility-scrape": z.ZodDefault; }, "strip", z.ZodTypeAny, { "search-console": boolean; "serp-provider": boolean; "ai-visibility": boolean; "site-crawl": boolean; "ai-visibility-scrape": boolean; }, { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; }>>; /** * Opt-in adversarial downgrade-only verifier stage (mirrors * `security.verifier`, schema.ts:289-295). OPTIONAL with no outer * default — omitting `verifier` entirely stays byte-identical. */ verifier: z.ZodOptional; }, "strip", z.ZodTypeAny, { enabled: boolean; }, { enabled?: boolean | undefined; }>>; /** * Per-run USD spend ceiling for PAYG DataForSEO calls. Reuses * `BudgetSectionSchema` (schema.ts:48-51) verbatim; null/absent = uncapped. */ budget: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>; /** Default domain/URL/local path used when the CLI omits [target]. */ defaultTarget: z.ZodOptional; /** Citation-gate blocking threshold for the CI exit code. Default 'critical-uncited'. */ blockThreshold: z.ZodDefault>; /** * Which SERP provider implementation serves the `serp` capability. OPTIONAL * with an INNER default on `provider` (not an outer default on the whole * object) — a config omitting `serp` entirely stays byte-identical * (`SeoConfigSchema.parse({})` leaks only `blockThreshold`, schema.test.ts:978-985). */ serp: z.ZodOptional>; }, "strip", z.ZodTypeAny, { provider: "dataforseo" | "damcrawler"; }, { provider?: "dataforseo" | "damcrawler" | undefined; }>>; /** * In-house AI-visibility API-spine configuration (in-house-ai-visibility, * Sprint 3). OPTIONAL with NO outer default — a config that omits * `aiVisibility` entirely stays byte-identical (mirrors the `serp` idiom * above). Inner fields carry their own `.default(...)` and only * materialize when the object is present. `resolveAiVisibilityProvider` * (`../seo/ai-visibility-provider.js`) reads this to compose per-engine * arms; an engine with no matching API key is skipped (no-key-safe). */ aiVisibility: z.ZodOptional; /** * Which engines to probe. `"perplexity"` is a valid value but has no * live provider mapper yet (Sprint 7 nonGoal) — configuring it yields * zero rows from that arm, not an error. Default `[]` (no engines * configured => `resolveAiVisibilityProvider` returns `undefined`). */ engines: z.ZodDefault; /** Fixed USD price per grounded-search call for this engine. Default 0. */ perCallUsd: z.ZodDefault; }, "strip", z.ZodTypeAny, { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }, { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }>, "many">>; /** * Optional LLM-as-judge fuzzy-mention path (in-house-ai-visibility, * Sprint 8). OPTIONAL with NO outer default — mirrors `serp`/ * `aiVisibility` above — a config that omits `judge` entirely stays * byte-identical (`SeoConfigSchema.parse({ aiVisibility: {} })` leaks * only `samplesPerPrompt`/`engines`, schema.test.ts:1089-1096). Only * the inner `enabled` flag carries a `.default(false)`. The judge is * OFF by default even when this object is present but `enabled` is * omitted. */ judge: z.ZodOptional; /** Optional model override for the judge call; falls back to the injected default when absent. */ model: z.ZodOptional; }, "strip", z.ZodTypeAny, { enabled: boolean; model?: string | undefined; }, { model?: string | undefined; enabled?: boolean | undefined; }>>; /** * Gated damcrawler UI-scrape arm configuration (in-house-ai- * visibility, Sprint 9/10). OPTIONAL with NO outer default — mirrors * `serp`/`judge` above — a config that omits `scrape` entirely stays * byte-identical (`SeoConfigSchema.parse({ aiVisibility: {} })` leaks * only `samplesPerPrompt`/`engines`). Only the inner fields carry * `.default(...)`. Gated separately by the `ai-visibility-scrape` * egress axis (`../seo/egress.js`) — this object being present does * NOT itself enable scraping. `authSession`/`proxy` are operator- * supplied (nonGoal: no auth harvesting, no proxy sourcing); the rate/ * proxy-budget caps are consumed by a follow-up sprint's * `ScrapeThrottle` runner wiring (Sprint 9 built the throttle itself * in isolation; Sprint 10 composes the arm behind an injected dep). */ scrape: z.ZodOptional, "many">>; /** Operator-supplied auth session (storageState path / profile name / cookie blob) passed opaquely to damcrawler's scrape options. */ authSession: z.ZodOptional; /** Operator-supplied proxy passed opaquely to damcrawler's scrape options. */ proxy: z.ZodOptional; /** Fixed USD cost booked to the ScrapeThrottle proxy ledger per successful scrape. Default 0. */ proxyUsdPerScrape: z.ZodDefault; /** ScrapeThrottle rate-window cap: max acquire() grants per engine per window. Default 10. */ maxPerWindow: z.ZodDefault; /** ScrapeThrottle rate-window length in milliseconds. Default 60000 (1 minute). */ windowMs: z.ZodDefault; /** ScrapeThrottle cumulative proxy-USD cap per engine. Default 0 (no proxy spend permitted until explicitly raised). */ maxProxyUsd: z.ZodDefault; }, "strip", z.ZodTypeAny, { engines: ("chatgpt-ui" | "perplexity-ui")[]; proxyUsdPerScrape: number; maxPerWindow: number; windowMs: number; maxProxyUsd: number; authSession?: string | undefined; proxy?: string | undefined; }, { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; }>>; }, "strip", z.ZodTypeAny, { samplesPerPrompt: number; engines: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }[]; judge?: { enabled: boolean; model?: string | undefined; } | undefined; scrape?: { engines: ("chatgpt-ui" | "perplexity-ui")[]; proxyUsdPerScrape: number; maxPerWindow: number; windowMs: number; maxProxyUsd: number; authSession?: string | undefined; proxy?: string | undefined; } | undefined; }, { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { blockThreshold: "never" | "any-uncited" | "critical-uncited"; budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { "search-console": boolean; "serp-provider": boolean; "ai-visibility": boolean; "site-crawl": boolean; "ai-visibility-scrape": boolean; } | undefined; verifier?: { enabled: boolean; } | undefined; defaultTarget?: string | undefined; serp?: { provider: "dataforseo" | "damcrawler"; } | undefined; aiVisibility?: { samplesPerPrompt: number; engines: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }[]; judge?: { enabled: boolean; model?: string | undefined; } | undefined; scrape?: { engines: ("chatgpt-ui" | "perplexity-ui")[]; proxyUsdPerScrape: number; maxPerWindow: number; windowMs: number; maxProxyUsd: number; authSession?: string | undefined; proxy?: string | undefined; } | undefined; } | undefined; }, { budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; } | undefined; verifier?: { enabled?: boolean | undefined; } | undefined; defaultTarget?: string | undefined; blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined; serp?: { provider?: "dataforseo" | "damcrawler" | undefined; } | undefined; aiVisibility?: { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { project: { name: string; mode: "greenfield" | "brownfield"; preset?: string | undefined; stack?: { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; } | undefined; description?: string | undefined; }; planner: { maxClarifications: number; model: string; contextFiles?: string[] | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; }; generator: { model: string; maxTurnsPerSprint: number; autoCommit: boolean; branchPattern: string; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; parallelReadOnlyTools?: boolean | undefined; }; evaluator: { model: string; strategies: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; maxIterations: number; panel: { enabled: boolean; lenses: string[]; maxConcurrent: number; }; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; plugins?: string[] | undefined; }; sprint: { maxSprints: number; requireContracts: boolean; sprintSize: "medium" | "small" | "large"; }; pipeline: { mode: "autopilot" | "careful"; maxIterations: number; maxCheckpointIterations: number; requireApproval: boolean; contextReset: "never" | "always" | "on-threshold"; researchPhase: boolean; architectPhase: boolean; checkpointOverrides: Record; approvalTimeoutMs: number; prPollMs: number; allowAutopilotRiskyActions: boolean; eventQueueBound: number; worktreeRoot: string; cleanupWorktreeOnSuccess: boolean; engine: "ts" | "skill" | "workflow" | "medical-sop"; checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined; }; commands: { install?: string | undefined; build?: string | undefined; test?: string | undefined; lint?: string | undefined; dev?: string | undefined; typecheck?: string | undefined; }; curator?: { model: string; maxTurns: number; enabled: boolean; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; } | undefined; architect?: { panel: { enabled: boolean; lenses: string[]; maxConcurrent: number; }; } | undefined; graph?: { enabled: boolean; autoSync: boolean; languageTier: "core" | "extended" | "all"; manifestPath: string; syncTimeoutMs: number; queryTimeoutMs: number; debounceMs: number; hookQueueMax: number; maxEngineRssMb: number; exposeOnExternalMcp: boolean; preflightBudgets: { curator: number; generator: number; evaluator: number; architect: number; researcherPhase2: number; }; tokensavePath?: string | undefined; } | undefined; codeReview?: { model: string; maxTurns: number; enabled: boolean; timeoutMs: number; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; } | undefined; documenter?: { model: string; maxTurns: number; enabled: boolean; timeoutMs: number; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; } | undefined; observability?: { providers: { name: string; enabled: boolean; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }[]; } | undefined; incident?: { autoPostmortem: boolean; } | undefined; telemetry?: { enabled: boolean; } | undefined; history?: { maxActiveLines: number; } | undefined; chat?: { model: string; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; } | undefined; teams?: Record | undefined; displayName?: string | undefined; memoryNamespace?: string | undefined; pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; roles?: { name: string; displayName: string; }[] | undefined; guardrails?: unknown; }> | undefined; defaultTeam?: string | undefined; medical?: { egress?: { cloudInference: boolean; literatureRetrieval: boolean; deviceConnection: boolean; } | undefined; inference?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; } | undefined; vaultDir?: string | undefined; } | undefined; fleet?: { blackboardDbPath: string; blackboardNamespace: string; blackboardSubject: string; maxRounds: number; } | undefined; vault?: { obsidian?: { name: string; enabled: boolean; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; } | undefined; } | undefined; taskInbox?: { gmailEgress: boolean; } | undefined; calendar?: { connector: "ics" | "google"; egress?: { cloudCalendar: boolean; } | undefined; timezone?: string | undefined; } | undefined; research?: { egress?: { onlineResearch: boolean; } | undefined; } | undefined; tools?: { mcpBridge?: { enabled: boolean; server: { command: string; args: string[]; }; } | undefined; } | undefined; security?: { model: string; maxTurns: number; enabled: boolean; timeoutMs: number; failClosed: boolean; scanners: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; standaloneBlockOn: "critical" | "important"; hub: boolean; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { onlineResearch: boolean; } | undefined; diff?: { mode: "estimated-files" | "git-diff"; expandWithGraph: boolean; baseRef?: string | undefined; } | undefined; supplyChain?: { enabled: boolean; scanners: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; } | undefined; verifier?: { model: string; maxTurns: number; enabled: boolean; } | undefined; } | undefined; seo?: { blockThreshold: "never" | "any-uncited" | "critical-uncited"; budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { "search-console": boolean; "serp-provider": boolean; "ai-visibility": boolean; "site-crawl": boolean; "ai-visibility-scrape": boolean; } | undefined; verifier?: { enabled: boolean; } | undefined; defaultTarget?: string | undefined; serp?: { provider: "dataforseo" | "damcrawler"; } | undefined; aiVisibility?: { samplesPerPrompt: number; engines: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }[]; judge?: { enabled: boolean; model?: string | undefined; } | undefined; scrape?: { engines: ("chatgpt-ui" | "perplexity-ui")[]; proxyUsdPerScrape: number; maxPerWindow: number; windowMs: number; maxProxyUsd: number; authSession?: string | undefined; proxy?: string | undefined; } | undefined; } | undefined; } | undefined; }, { project: { name: string; mode: "greenfield" | "brownfield"; preset?: string | undefined; stack?: { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; } | undefined; description?: string | undefined; }; planner: { maxClarifications?: number | undefined; model?: string | undefined; contextFiles?: string[] | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; }; generator: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurnsPerSprint?: number | undefined; autoCommit?: boolean | undefined; branchPattern?: string | undefined; parallelReadOnlyTools?: boolean | undefined; }; evaluator: { strategies: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[]; model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxIterations?: number | undefined; plugins?: string[] | undefined; panel?: { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; } | undefined; }; sprint: { maxSprints?: number | undefined; requireContracts?: boolean | undefined; sprintSize?: "medium" | "small" | "large" | undefined; }; pipeline: { mode?: "autopilot" | "careful" | undefined; maxIterations?: number | undefined; maxCheckpointIterations?: number | undefined; requireApproval?: boolean | undefined; contextReset?: "never" | "always" | "on-threshold" | undefined; researchPhase?: boolean | undefined; architectPhase?: boolean | undefined; checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined; checkpointOverrides?: Record | undefined; approvalTimeoutMs?: number | undefined; prPollMs?: number | undefined; allowAutopilotRiskyActions?: boolean | undefined; eventQueueBound?: number | undefined; worktreeRoot?: string | undefined; cleanupWorktreeOnSuccess?: boolean | undefined; engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; }; commands: { install?: string | undefined; build?: string | undefined; test?: string | undefined; lint?: string | undefined; dev?: string | undefined; typecheck?: string | undefined; }; curator?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; } | undefined; architect?: { panel?: { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; } | undefined; } | undefined; graph?: { enabled?: boolean | undefined; tokensavePath?: string | undefined; autoSync?: boolean | undefined; languageTier?: "core" | "extended" | "all" | undefined; manifestPath?: string | undefined; syncTimeoutMs?: number | undefined; queryTimeoutMs?: number | undefined; debounceMs?: number | undefined; hookQueueMax?: number | undefined; maxEngineRssMb?: number | undefined; exposeOnExternalMcp?: boolean | undefined; preflightBudgets?: { curator?: number | undefined; generator?: number | undefined; evaluator?: number | undefined; architect?: number | undefined; researcherPhase2?: number | undefined; } | undefined; } | undefined; codeReview?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; } | undefined; documenter?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; } | undefined; observability?: { providers?: { name: string; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }[] | undefined; } | undefined; incident?: { autoPostmortem?: boolean | undefined; } | undefined; telemetry?: { enabled?: boolean | undefined; } | undefined; history?: { maxActiveLines?: number | undefined; } | undefined; chat?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; } | undefined; teams?: Record | undefined; displayName?: string | undefined; memoryNamespace?: string | undefined; pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; roles?: { name: string; displayName: string; }[] | undefined; guardrails?: unknown; }> | undefined; defaultTeam?: string | undefined; medical?: { egress?: { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; } | undefined; inference?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; } | undefined; vaultDir?: string | undefined; } | undefined; fleet?: { blackboardDbPath: string; blackboardNamespace: string; blackboardSubject: string; maxRounds: number; } | undefined; vault?: { obsidian?: { name: string; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; } | undefined; } | undefined; taskInbox?: { gmailEgress?: boolean | undefined; } | undefined; calendar?: { egress?: { cloudCalendar?: boolean | undefined; } | undefined; connector?: "ics" | "google" | undefined; timezone?: string | undefined; } | undefined; research?: { egress?: { onlineResearch?: boolean | undefined; } | undefined; } | undefined; tools?: { mcpBridge?: { server: { command: string; args?: string[] | undefined; }; enabled?: boolean | undefined; } | undefined; } | undefined; security?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; egress?: { onlineResearch?: boolean | undefined; } | undefined; failClosed?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; standaloneBlockOn?: "critical" | "important" | undefined; hub?: boolean | undefined; diff?: { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; } | undefined; supplyChain?: { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; } | undefined; verifier?: { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; } | undefined; } | undefined; seo?: { budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; } | undefined; verifier?: { enabled?: boolean | undefined; } | undefined; defaultTarget?: string | undefined; blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined; serp?: { provider?: "dataforseo" | "damcrawler" | undefined; } | undefined; aiVisibility?: { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; } | undefined; } | undefined; }>; export type BoberConfig = z.infer; /** * Partial schema used for config files that rely on defaults. * Allows every field to be optional except `project` which is always required. */ export declare const PartialBoberConfigSchema: z.ZodObject<{ planner: z.ZodOptional>; model: z.ZodOptional>; contextFiles: z.ZodOptional>>; provider: z.ZodOptional>; endpoint: z.ZodOptional>>; providerConfig: z.ZodOptional>>; effort: z.ZodOptional>>; budget: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>>; }, "strip", z.ZodTypeAny, { maxClarifications?: number | undefined; model?: string | undefined; contextFiles?: string[] | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; }, { maxClarifications?: number | undefined; model?: string | undefined; contextFiles?: string[] | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; }>>; curator: z.ZodOptional>; maxTurns: z.ZodOptional>; enabled: z.ZodOptional>; provider: z.ZodOptional>; endpoint: z.ZodOptional>>; providerConfig: z.ZodOptional>>; effort: z.ZodOptional>>; budget: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>>; }, "strip", z.ZodTypeAny, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; }>>>; generator: z.ZodOptional>; maxTurnsPerSprint: z.ZodOptional>; autoCommit: z.ZodOptional>; branchPattern: z.ZodOptional>; provider: z.ZodOptional>; endpoint: z.ZodOptional>>; providerConfig: z.ZodOptional>>; effort: z.ZodOptional>>; budget: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>>; parallelReadOnlyTools: z.ZodOptional>; }, "strip", z.ZodTypeAny, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurnsPerSprint?: number | undefined; autoCommit?: boolean | undefined; branchPattern?: string | undefined; parallelReadOnlyTools?: boolean | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurnsPerSprint?: number | undefined; autoCommit?: boolean | undefined; branchPattern?: string | undefined; parallelReadOnlyTools?: boolean | undefined; }>>; evaluator: z.ZodOptional>; strategies: z.ZodOptional; plugin: z.ZodOptional>; command: z.ZodOptional>; required: z.ZodOptional; config: z.ZodOptional>>; label: z.ZodOptional>; }, "strip", z.ZodTypeAny, { type?: string | undefined; plugin?: string | undefined; command?: string | undefined; required?: boolean | undefined; config?: Record | undefined; label?: string | undefined; }, { type?: string | undefined; plugin?: string | undefined; command?: string | undefined; required?: boolean | undefined; config?: Record | undefined; label?: string | undefined; }>, "many">>; maxIterations: z.ZodOptional>; plugins: z.ZodOptional>>; provider: z.ZodOptional>; endpoint: z.ZodOptional>>; providerConfig: z.ZodOptional>>; panel: z.ZodOptional; lenses: z.ZodDefault>; maxConcurrent: z.ZodDefault; }, "strip", z.ZodTypeAny, { enabled: boolean; lenses: string[]; maxConcurrent: number; }, { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; }>>>; effort: z.ZodOptional>>; budget: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>>; }, "strip", z.ZodTypeAny, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; strategies?: { type?: string | undefined; plugin?: string | undefined; command?: string | undefined; required?: boolean | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; maxIterations?: number | undefined; plugins?: string[] | undefined; panel?: { enabled: boolean; lenses: string[]; maxConcurrent: number; } | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; strategies?: { type?: string | undefined; plugin?: string | undefined; command?: string | undefined; required?: boolean | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; maxIterations?: number | undefined; plugins?: string[] | undefined; panel?: { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; } | undefined; }>>; sprint: z.ZodOptional>; requireContracts: z.ZodOptional>; sprintSize: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { maxSprints?: number | undefined; requireContracts?: boolean | undefined; sprintSize?: "medium" | "small" | "large" | undefined; }, { maxSprints?: number | undefined; requireContracts?: boolean | undefined; sprintSize?: "medium" | "small" | "large" | undefined; }>>; pipeline: z.ZodOptional>; maxCheckpointIterations: z.ZodOptional>; requireApproval: z.ZodOptional>; contextReset: z.ZodOptional>>; researchPhase: z.ZodOptional>; architectPhase: z.ZodOptional>; mode: z.ZodOptional>>; checkpointMechanism: z.ZodOptional>>; checkpointOverrides: z.ZodOptional>>>; approvalTimeoutMs: z.ZodOptional>; prPollMs: z.ZodOptional>; allowAutopilotRiskyActions: z.ZodOptional>; eventQueueBound: z.ZodOptional>; worktreeRoot: z.ZodOptional>; cleanupWorktreeOnSuccess: z.ZodOptional>; engine: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { mode?: "autopilot" | "careful" | undefined; maxIterations?: number | undefined; maxCheckpointIterations?: number | undefined; requireApproval?: boolean | undefined; contextReset?: "never" | "always" | "on-threshold" | undefined; researchPhase?: boolean | undefined; architectPhase?: boolean | undefined; checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined; checkpointOverrides?: Record | undefined; approvalTimeoutMs?: number | undefined; prPollMs?: number | undefined; allowAutopilotRiskyActions?: boolean | undefined; eventQueueBound?: number | undefined; worktreeRoot?: string | undefined; cleanupWorktreeOnSuccess?: boolean | undefined; engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; }, { mode?: "autopilot" | "careful" | undefined; maxIterations?: number | undefined; maxCheckpointIterations?: number | undefined; requireApproval?: boolean | undefined; contextReset?: "never" | "always" | "on-threshold" | undefined; researchPhase?: boolean | undefined; architectPhase?: boolean | undefined; checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined; checkpointOverrides?: Record | undefined; approvalTimeoutMs?: number | undefined; prPollMs?: number | undefined; allowAutopilotRiskyActions?: boolean | undefined; eventQueueBound?: number | undefined; worktreeRoot?: string | undefined; cleanupWorktreeOnSuccess?: boolean | undefined; engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; }>>; commands: z.ZodOptional>; build: z.ZodOptional>; test: z.ZodOptional>; lint: z.ZodOptional>; dev: z.ZodOptional>; typecheck: z.ZodOptional>; }, "strip", z.ZodTypeAny, { install?: string | undefined; build?: string | undefined; test?: string | undefined; lint?: string | undefined; dev?: string | undefined; typecheck?: string | undefined; }, { install?: string | undefined; build?: string | undefined; test?: string | undefined; lint?: string | undefined; dev?: string | undefined; typecheck?: string | undefined; }>>; graph: z.ZodOptional>; tokensavePath: z.ZodOptional>; autoSync: z.ZodOptional>; languageTier: z.ZodOptional>>; manifestPath: z.ZodOptional>; syncTimeoutMs: z.ZodOptional>; queryTimeoutMs: z.ZodOptional>; debounceMs: z.ZodOptional>; hookQueueMax: z.ZodOptional>; maxEngineRssMb: z.ZodOptional>; exposeOnExternalMcp: z.ZodOptional>; preflightBudgets: z.ZodOptional; curator: z.ZodDefault; generator: z.ZodDefault; evaluator: z.ZodDefault; /** camelCase alias for the 'researcher-phase2' role. */ researcherPhase2: z.ZodDefault; }, "strip", z.ZodTypeAny, { curator: number; generator: number; evaluator: number; architect: number; researcherPhase2: number; }, { curator?: number | undefined; generator?: number | undefined; evaluator?: number | undefined; architect?: number | undefined; researcherPhase2?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { enabled?: boolean | undefined; tokensavePath?: string | undefined; autoSync?: boolean | undefined; languageTier?: "core" | "extended" | "all" | undefined; manifestPath?: string | undefined; syncTimeoutMs?: number | undefined; queryTimeoutMs?: number | undefined; debounceMs?: number | undefined; hookQueueMax?: number | undefined; maxEngineRssMb?: number | undefined; exposeOnExternalMcp?: boolean | undefined; preflightBudgets?: { curator: number; generator: number; evaluator: number; architect: number; researcherPhase2: number; } | undefined; }, { enabled?: boolean | undefined; tokensavePath?: string | undefined; autoSync?: boolean | undefined; languageTier?: "core" | "extended" | "all" | undefined; manifestPath?: string | undefined; syncTimeoutMs?: number | undefined; queryTimeoutMs?: number | undefined; debounceMs?: number | undefined; hookQueueMax?: number | undefined; maxEngineRssMb?: number | undefined; exposeOnExternalMcp?: boolean | undefined; preflightBudgets?: { curator?: number | undefined; generator?: number | undefined; evaluator?: number | undefined; architect?: number | undefined; researcherPhase2?: number | undefined; } | undefined; }>>>; codeReview: z.ZodOptional>; enabled: z.ZodOptional>; model: z.ZodOptional>; maxTurns: z.ZodOptional>; provider: z.ZodOptional>; endpoint: z.ZodOptional>>; providerConfig: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; }>>>; documenter: z.ZodOptional>; enabled: z.ZodOptional>; model: z.ZodOptional>; maxTurns: z.ZodOptional>; provider: z.ZodOptional>; endpoint: z.ZodOptional>>; providerConfig: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; }>>>; observability: z.ZodOptional__ namespace prefix. */ name: z.ZodString; kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>; /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */ mcpCommand: z.ZodString; mcpArgs: z.ZodOptional>; /** Env vars passed to the child — may contain SECRETS (treat as opaque). */ mcpEnv: z.ZodOptional>; enabled: z.ZodDefault; }, "strip", z.ZodTypeAny, { name: string; enabled: boolean; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }, { name: string; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }>, "many">>>; }, "strip", z.ZodTypeAny, { providers?: { name: string; enabled: boolean; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }[] | undefined; }, { providers?: { name: string; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }[] | undefined; }>>>; incident: z.ZodOptional>; }, "strip", z.ZodTypeAny, { autoPostmortem?: boolean | undefined; }, { autoPostmortem?: boolean | undefined; }>>>; telemetry: z.ZodOptional>; }, "strip", z.ZodTypeAny, { enabled?: boolean | undefined; }, { enabled?: boolean | undefined; }>>>; architect: z.ZodOptional; lenses: z.ZodDefault>; maxConcurrent: z.ZodDefault; }, "strip", z.ZodTypeAny, { enabled: boolean; lenses: string[]; maxConcurrent: number; }, { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { panel?: { enabled: boolean; lenses: string[]; maxConcurrent: number; } | undefined; }, { panel?: { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; } | undefined; }>>>; history: z.ZodOptional>; }, "strip", z.ZodTypeAny, { maxActiveLines?: number | undefined; }, { maxActiveLines?: number | undefined; }>>>; chat: z.ZodOptional>; provider: z.ZodOptional>; endpoint: z.ZodOptional>>; providerConfig: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; }>>>; teams: z.ZodOptional; /** Memory namespace segment — restricted to a safe path segment. */ memoryNamespace: z.ZodOptional; /** Orchestration engine shape for this team. Mirrors the z.enum in PipelineSectionSchema. */ pipelineShape: z.ZodOptional>; /** Partial role -> provider override. Keys SHOULD be RoleName values. */ providers: z.ZodOptional>; roles: z.ZodOptional, "many">>; guardrails: z.ZodOptional; }, "strip", z.ZodTypeAny, { providers?: Record | undefined; displayName?: string | undefined; memoryNamespace?: string | undefined; pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; roles?: { name: string; displayName: string; }[] | undefined; guardrails?: unknown; }, { providers?: Record | undefined; displayName?: string | undefined; memoryNamespace?: string | undefined; pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; roles?: { name: string; displayName: string; }[] | undefined; guardrails?: unknown; }>>>>; defaultTeam: z.ZodOptional>; medical: z.ZodOptional>; literatureRetrieval: z.ZodOptional>; deviceConnection: z.ZodOptional>; }, "strip", z.ZodTypeAny, { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; }, { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; }>>>; inference: z.ZodOptional>; endpoint: z.ZodOptional>; model: z.ZodOptional>; }, "strip", z.ZodTypeAny, { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; }>>>; vaultDir: z.ZodOptional>; }, "strip", z.ZodTypeAny, { egress?: { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; } | undefined; inference?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; } | undefined; vaultDir?: string | undefined; }, { egress?: { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; } | undefined; inference?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; } | undefined; vaultDir?: string | undefined; }>>>; fleet: z.ZodOptional; blackboardNamespace: z.ZodOptional; blackboardSubject: z.ZodOptional; maxRounds: z.ZodOptional; }, "strip", z.ZodTypeAny, { blackboardDbPath?: string | undefined; blackboardNamespace?: string | undefined; blackboardSubject?: string | undefined; maxRounds?: number | undefined; }, { blackboardDbPath?: string | undefined; blackboardNamespace?: string | undefined; blackboardSubject?: string | undefined; maxRounds?: number | undefined; }>>>; vault: z.ZodOptional; mcpCommand: z.ZodOptional; mcpArgs: z.ZodOptional>>; mcpEnv: z.ZodOptional>>; enabled: z.ZodOptional>; toolNames: z.ZodOptional>; writeNote: z.ZodOptional>; listNotes: z.ZodOptional>; }, "strip", z.ZodTypeAny, { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; }, { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; }>>>; }, "strip", z.ZodTypeAny, { name?: string | undefined; enabled?: boolean | undefined; mcpCommand?: string | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; }, { name?: string | undefined; enabled?: boolean | undefined; mcpCommand?: string | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; }>>>; }, "strip", z.ZodTypeAny, { obsidian?: { name?: string | undefined; enabled?: boolean | undefined; mcpCommand?: string | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; } | undefined; }, { obsidian?: { name?: string | undefined; enabled?: boolean | undefined; mcpCommand?: string | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; } | undefined; }>>>; taskInbox: z.ZodOptional>; }, "strip", z.ZodTypeAny, { gmailEgress?: boolean | undefined; }, { gmailEgress?: boolean | undefined; }>>>; calendar: z.ZodOptional>; }, "strip", z.ZodTypeAny, { cloudCalendar?: boolean | undefined; }, { cloudCalendar?: boolean | undefined; }>>>; connector: z.ZodOptional>>; timezone: z.ZodOptional>; }, "strip", z.ZodTypeAny, { egress?: { cloudCalendar?: boolean | undefined; } | undefined; connector?: "ics" | "google" | undefined; timezone?: string | undefined; }, { egress?: { cloudCalendar?: boolean | undefined; } | undefined; connector?: "ics" | "google" | undefined; timezone?: string | undefined; }>>>; research: z.ZodOptional>; }, "strip", z.ZodTypeAny, { onlineResearch?: boolean | undefined; }, { onlineResearch?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { egress?: { onlineResearch?: boolean | undefined; } | undefined; }, { egress?: { onlineResearch?: boolean | undefined; } | undefined; }>>>; tools: z.ZodOptional>; server: z.ZodOptional; args: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { command?: string | undefined; args?: string[] | undefined; }, { command?: string | undefined; args?: string[] | undefined; }>>; }, "strip", z.ZodTypeAny, { enabled?: boolean | undefined; server?: { command?: string | undefined; args?: string[] | undefined; } | undefined; }, { enabled?: boolean | undefined; server?: { command?: string | undefined; args?: string[] | undefined; } | undefined; }>>>; }, "strip", z.ZodTypeAny, { mcpBridge?: { enabled?: boolean | undefined; server?: { command?: string | undefined; args?: string[] | undefined; } | undefined; } | undefined; }, { mcpBridge?: { enabled?: boolean | undefined; server?: { command?: string | undefined; args?: string[] | undefined; } | undefined; } | undefined; }>>>; security: z.ZodOptional>; failClosed: z.ZodOptional>; timeoutMs: z.ZodOptional>; model: z.ZodOptional>; maxTurns: z.ZodOptional>; provider: z.ZodOptional>; endpoint: z.ZodOptional>>; providerConfig: z.ZodOptional>>; budget: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>>; scanners: z.ZodOptional; /** Shell command to run directly — shorthand alternative to writing a plugin file. */ command: z.ZodOptional; /** Whether this strategy must pass for the sprint to pass. */ required: z.ZodBoolean; /** Arbitrary config passed to the evaluator plugin. */ config: z.ZodOptional>; /** Human-readable label (defaults to type if not set). */ label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }>, "many">>>; standaloneBlockOn: z.ZodOptional>>; hub: z.ZodOptional>; diff: z.ZodOptional>>; baseRef: z.ZodOptional>; expandWithGraph: z.ZodOptional>; }, "strip", z.ZodTypeAny, { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; }, { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; }>>>; supplyChain: z.ZodOptional>; scanners: z.ZodOptional; /** Shell command to run directly — shorthand alternative to writing a plugin file. */ command: z.ZodOptional; /** Whether this strategy must pass for the sprint to pass. */ required: z.ZodBoolean; /** Arbitrary config passed to the evaluator plugin. */ config: z.ZodOptional>; /** Human-readable label (defaults to type if not set). */ label: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }, { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }>, "many">>>; }, "strip", z.ZodTypeAny, { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; }, { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; }>>>; egress: z.ZodOptional>; }, "strip", z.ZodTypeAny, { onlineResearch?: boolean | undefined; }, { onlineResearch?: boolean | undefined; }>>>; verifier: z.ZodOptional>; model: z.ZodOptional>; maxTurns: z.ZodOptional>; }, "strip", z.ZodTypeAny, { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; }, { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; }>>>; }, "strip", z.ZodTypeAny, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; egress?: { onlineResearch?: boolean | undefined; } | undefined; failClosed?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; standaloneBlockOn?: "critical" | "important" | undefined; hub?: boolean | undefined; diff?: { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; } | undefined; supplyChain?: { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; } | undefined; verifier?: { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; } | undefined; }, { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; egress?: { onlineResearch?: boolean | undefined; } | undefined; failClosed?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; standaloneBlockOn?: "critical" | "important" | undefined; hub?: boolean | undefined; diff?: { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; } | undefined; supplyChain?: { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; } | undefined; verifier?: { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; } | undefined; }>>>; seo: z.ZodOptional>; "serp-provider": z.ZodOptional>; "ai-visibility": z.ZodOptional>; "site-crawl": z.ZodOptional>; "ai-visibility-scrape": z.ZodOptional>; }, "strip", z.ZodTypeAny, { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; }, { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; }>>>; verifier: z.ZodOptional>; }, "strip", z.ZodTypeAny, { enabled?: boolean | undefined; }, { enabled?: boolean | undefined; }>>>; budget: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { maxUsd?: number | null | undefined; }, { maxUsd?: number | null | undefined; }>>>; defaultTarget: z.ZodOptional>; blockThreshold: z.ZodOptional>>; serp: z.ZodOptional>>; }, "strip", z.ZodTypeAny, { provider?: "dataforseo" | "damcrawler" | undefined; }, { provider?: "dataforseo" | "damcrawler" | undefined; }>>>; aiVisibility: z.ZodOptional>; engines: z.ZodOptional; /** Fixed USD price per grounded-search call for this engine. Default 0. */ perCallUsd: z.ZodDefault; }, "strip", z.ZodTypeAny, { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }, { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }>, "many">>>; judge: z.ZodOptional>; model: z.ZodOptional>; }, "strip", z.ZodTypeAny, { model?: string | undefined; enabled?: boolean | undefined; }, { model?: string | undefined; enabled?: boolean | undefined; }>>>; scrape: z.ZodOptional, "many">>>; authSession: z.ZodOptional>; proxy: z.ZodOptional>; proxyUsdPerScrape: z.ZodOptional>; maxPerWindow: z.ZodOptional>; windowMs: z.ZodOptional>; maxProxyUsd: z.ZodOptional>; }, "strip", z.ZodTypeAny, { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; }, { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; }>>>; }, "strip", z.ZodTypeAny, { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; }, { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; }>>>; }, "strip", z.ZodTypeAny, { budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; } | undefined; verifier?: { enabled?: boolean | undefined; } | undefined; defaultTarget?: string | undefined; blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined; serp?: { provider?: "dataforseo" | "damcrawler" | undefined; } | undefined; aiVisibility?: { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; } | undefined; }, { budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; } | undefined; verifier?: { enabled?: boolean | undefined; } | undefined; defaultTarget?: string | undefined; blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined; serp?: { provider?: "dataforseo" | "damcrawler" | undefined; } | undefined; aiVisibility?: { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; } | undefined; }>>>; } & { project: z.ZodObject<{ name: z.ZodOptional; mode: z.ZodEnum<["greenfield", "brownfield"]>; preset: z.ZodOptional; stack: z.ZodOptional; backend: z.ZodOptional; blockchain: z.ZodOptional; testing: z.ZodOptional; database: z.ZodOptional; language: z.ZodOptional; other: z.ZodOptional>; }, "strip", z.ZodTypeAny, { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; }, { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; }>>; description: z.ZodOptional; }, "strip", z.ZodTypeAny, { mode: "greenfield" | "brownfield"; name?: string | undefined; preset?: string | undefined; stack?: { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; } | undefined; description?: string | undefined; }, { mode: "greenfield" | "brownfield"; name?: string | undefined; preset?: string | undefined; stack?: { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; } | undefined; description?: string | undefined; }>; }, "strip", z.ZodTypeAny, { project: { mode: "greenfield" | "brownfield"; name?: string | undefined; preset?: string | undefined; stack?: { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; } | undefined; description?: string | undefined; }; planner?: { maxClarifications?: number | undefined; model?: string | undefined; contextFiles?: string[] | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; } | undefined; curator?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; } | undefined; generator?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurnsPerSprint?: number | undefined; autoCommit?: boolean | undefined; branchPattern?: string | undefined; parallelReadOnlyTools?: boolean | undefined; } | undefined; evaluator?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; strategies?: { type?: string | undefined; plugin?: string | undefined; command?: string | undefined; required?: boolean | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; maxIterations?: number | undefined; plugins?: string[] | undefined; panel?: { enabled: boolean; lenses: string[]; maxConcurrent: number; } | undefined; } | undefined; sprint?: { maxSprints?: number | undefined; requireContracts?: boolean | undefined; sprintSize?: "medium" | "small" | "large" | undefined; } | undefined; pipeline?: { mode?: "autopilot" | "careful" | undefined; maxIterations?: number | undefined; maxCheckpointIterations?: number | undefined; requireApproval?: boolean | undefined; contextReset?: "never" | "always" | "on-threshold" | undefined; researchPhase?: boolean | undefined; architectPhase?: boolean | undefined; checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined; checkpointOverrides?: Record | undefined; approvalTimeoutMs?: number | undefined; prPollMs?: number | undefined; allowAutopilotRiskyActions?: boolean | undefined; eventQueueBound?: number | undefined; worktreeRoot?: string | undefined; cleanupWorktreeOnSuccess?: boolean | undefined; engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; } | undefined; commands?: { install?: string | undefined; build?: string | undefined; test?: string | undefined; lint?: string | undefined; dev?: string | undefined; typecheck?: string | undefined; } | undefined; architect?: { panel?: { enabled: boolean; lenses: string[]; maxConcurrent: number; } | undefined; } | undefined; graph?: { enabled?: boolean | undefined; tokensavePath?: string | undefined; autoSync?: boolean | undefined; languageTier?: "core" | "extended" | "all" | undefined; manifestPath?: string | undefined; syncTimeoutMs?: number | undefined; queryTimeoutMs?: number | undefined; debounceMs?: number | undefined; hookQueueMax?: number | undefined; maxEngineRssMb?: number | undefined; exposeOnExternalMcp?: boolean | undefined; preflightBudgets?: { curator: number; generator: number; evaluator: number; architect: number; researcherPhase2: number; } | undefined; } | undefined; codeReview?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; } | undefined; documenter?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; } | undefined; observability?: { providers?: { name: string; enabled: boolean; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }[] | undefined; } | undefined; incident?: { autoPostmortem?: boolean | undefined; } | undefined; telemetry?: { enabled?: boolean | undefined; } | undefined; history?: { maxActiveLines?: number | undefined; } | undefined; chat?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; } | undefined; teams?: Record | undefined; displayName?: string | undefined; memoryNamespace?: string | undefined; pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; roles?: { name: string; displayName: string; }[] | undefined; guardrails?: unknown; }> | undefined; defaultTeam?: string | undefined; medical?: { egress?: { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; } | undefined; inference?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; } | undefined; vaultDir?: string | undefined; } | undefined; fleet?: { blackboardDbPath?: string | undefined; blackboardNamespace?: string | undefined; blackboardSubject?: string | undefined; maxRounds?: number | undefined; } | undefined; vault?: { obsidian?: { name?: string | undefined; enabled?: boolean | undefined; mcpCommand?: string | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; } | undefined; } | undefined; taskInbox?: { gmailEgress?: boolean | undefined; } | undefined; calendar?: { egress?: { cloudCalendar?: boolean | undefined; } | undefined; connector?: "ics" | "google" | undefined; timezone?: string | undefined; } | undefined; research?: { egress?: { onlineResearch?: boolean | undefined; } | undefined; } | undefined; tools?: { mcpBridge?: { enabled?: boolean | undefined; server?: { command?: string | undefined; args?: string[] | undefined; } | undefined; } | undefined; } | undefined; security?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; egress?: { onlineResearch?: boolean | undefined; } | undefined; failClosed?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; standaloneBlockOn?: "critical" | "important" | undefined; hub?: boolean | undefined; diff?: { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; } | undefined; supplyChain?: { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; } | undefined; verifier?: { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; } | undefined; } | undefined; seo?: { budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; } | undefined; verifier?: { enabled?: boolean | undefined; } | undefined; defaultTarget?: string | undefined; blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined; serp?: { provider?: "dataforseo" | "damcrawler" | undefined; } | undefined; aiVisibility?: { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd: number; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; } | undefined; } | undefined; }, { project: { mode: "greenfield" | "brownfield"; name?: string | undefined; preset?: string | undefined; stack?: { frontend?: string | undefined; backend?: string | undefined; blockchain?: string | undefined; testing?: string | undefined; database?: string | undefined; language?: string | undefined; other?: string[] | undefined; } | undefined; description?: string | undefined; }; planner?: { maxClarifications?: number | undefined; model?: string | undefined; contextFiles?: string[] | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; } | undefined; curator?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; } | undefined; generator?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurnsPerSprint?: number | undefined; autoCommit?: boolean | undefined; branchPattern?: string | undefined; parallelReadOnlyTools?: boolean | undefined; } | undefined; evaluator?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; strategies?: { type?: string | undefined; plugin?: string | undefined; command?: string | undefined; required?: boolean | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; maxIterations?: number | undefined; plugins?: string[] | undefined; panel?: { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; } | undefined; } | undefined; sprint?: { maxSprints?: number | undefined; requireContracts?: boolean | undefined; sprintSize?: "medium" | "small" | "large" | undefined; } | undefined; pipeline?: { mode?: "autopilot" | "careful" | undefined; maxIterations?: number | undefined; maxCheckpointIterations?: number | undefined; requireApproval?: boolean | undefined; contextReset?: "never" | "always" | "on-threshold" | undefined; researchPhase?: boolean | undefined; architectPhase?: boolean | undefined; checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined; checkpointOverrides?: Record | undefined; approvalTimeoutMs?: number | undefined; prPollMs?: number | undefined; allowAutopilotRiskyActions?: boolean | undefined; eventQueueBound?: number | undefined; worktreeRoot?: string | undefined; cleanupWorktreeOnSuccess?: boolean | undefined; engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; } | undefined; commands?: { install?: string | undefined; build?: string | undefined; test?: string | undefined; lint?: string | undefined; dev?: string | undefined; typecheck?: string | undefined; } | undefined; architect?: { panel?: { enabled?: boolean | undefined; lenses?: string[] | undefined; maxConcurrent?: number | undefined; } | undefined; } | undefined; graph?: { enabled?: boolean | undefined; tokensavePath?: string | undefined; autoSync?: boolean | undefined; languageTier?: "core" | "extended" | "all" | undefined; manifestPath?: string | undefined; syncTimeoutMs?: number | undefined; queryTimeoutMs?: number | undefined; debounceMs?: number | undefined; hookQueueMax?: number | undefined; maxEngineRssMb?: number | undefined; exposeOnExternalMcp?: boolean | undefined; preflightBudgets?: { curator?: number | undefined; generator?: number | undefined; evaluator?: number | undefined; architect?: number | undefined; researcherPhase2?: number | undefined; } | undefined; } | undefined; codeReview?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; } | undefined; documenter?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; } | undefined; observability?: { providers?: { name: string; kind: "custom" | "logs" | "metrics" | "traces" | "errors"; mcpCommand: string; enabled?: boolean | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; }[] | undefined; } | undefined; incident?: { autoPostmortem?: boolean | undefined; } | undefined; telemetry?: { enabled?: boolean | undefined; } | undefined; history?: { maxActiveLines?: number | undefined; } | undefined; chat?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; } | undefined; teams?: Record | undefined; displayName?: string | undefined; memoryNamespace?: string | undefined; pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined; roles?: { name: string; displayName: string; }[] | undefined; guardrails?: unknown; }> | undefined; defaultTeam?: string | undefined; medical?: { egress?: { cloudInference?: boolean | undefined; literatureRetrieval?: boolean | undefined; deviceConnection?: boolean | undefined; } | undefined; inference?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | undefined; } | undefined; vaultDir?: string | undefined; } | undefined; fleet?: { blackboardDbPath?: string | undefined; blackboardNamespace?: string | undefined; blackboardSubject?: string | undefined; maxRounds?: number | undefined; } | undefined; vault?: { obsidian?: { name?: string | undefined; enabled?: boolean | undefined; mcpCommand?: string | undefined; mcpArgs?: string[] | undefined; mcpEnv?: Record | undefined; toolNames?: { readNote?: string | undefined; writeNote?: string | undefined; listNotes?: string | undefined; } | undefined; } | undefined; } | undefined; taskInbox?: { gmailEgress?: boolean | undefined; } | undefined; calendar?: { egress?: { cloudCalendar?: boolean | undefined; } | undefined; connector?: "ics" | "google" | undefined; timezone?: string | undefined; } | undefined; research?: { egress?: { onlineResearch?: boolean | undefined; } | undefined; } | undefined; tools?: { mcpBridge?: { enabled?: boolean | undefined; server?: { command?: string | undefined; args?: string[] | undefined; } | undefined; } | undefined; } | undefined; security?: { model?: string | undefined; provider?: string | undefined; endpoint?: string | null | undefined; providerConfig?: Record | undefined; budget?: { maxUsd?: number | null | undefined; } | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; timeoutMs?: number | undefined; egress?: { onlineResearch?: boolean | undefined; } | undefined; failClosed?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; standaloneBlockOn?: "critical" | "important" | undefined; hub?: boolean | undefined; diff?: { mode?: "estimated-files" | "git-diff" | undefined; baseRef?: string | undefined; expandWithGraph?: boolean | undefined; } | undefined; supplyChain?: { enabled?: boolean | undefined; scanners?: { type: string; required: boolean; plugin?: string | undefined; command?: string | undefined; config?: Record | undefined; label?: string | undefined; }[] | undefined; } | undefined; verifier?: { model?: string | undefined; maxTurns?: number | undefined; enabled?: boolean | undefined; } | undefined; } | undefined; seo?: { budget?: { maxUsd?: number | null | undefined; } | undefined; egress?: { "search-console"?: boolean | undefined; "serp-provider"?: boolean | undefined; "ai-visibility"?: boolean | undefined; "site-crawl"?: boolean | undefined; "ai-visibility-scrape"?: boolean | undefined; } | undefined; verifier?: { enabled?: boolean | undefined; } | undefined; defaultTarget?: string | undefined; blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined; serp?: { provider?: "dataforseo" | "damcrawler" | undefined; } | undefined; aiVisibility?: { samplesPerPrompt?: number | undefined; engines?: { engine: "anthropic" | "openai" | "perplexity"; perCallUsd?: number | undefined; }[] | undefined; judge?: { model?: string | undefined; enabled?: boolean | undefined; } | undefined; scrape?: { engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined; authSession?: string | undefined; proxy?: string | undefined; proxyUsdPerScrape?: number | undefined; maxPerWindow?: number | undefined; windowMs?: number | undefined; maxProxyUsd?: number | undefined; } | undefined; } | undefined; } | undefined; }>; export type PartialBoberConfig = z.infer; /** * Create a full default config for a given project mode and optional preset. * Callers can override any section by passing a partial config. */ export declare function createDefaultConfig(projectName: string, mode: ProjectMode, preset?: string, overrides?: Partial>): BoberConfig; //# sourceMappingURL=schema.d.ts.map