/** * Config Schema — 移植自 OpenSpec config-schema.ts * * Zod 配置验证模式,定义 SpecPow 全局配置的数据结构 */ import { z } from 'zod'; export declare const ProfileSchema: z.ZodDefault>; export type Profile = z.infer; export declare const DeliverySchema: z.ZodDefault>; export type Delivery = z.infer; export declare const AIToolConfigSchema: z.ZodObject<{ /** 工具名称 */ name: z.ZodString; /** 工具 ID(用于命令匹配) */ toolId: z.ZodString; /** 是否启用 */ enabled: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 工具名称 */ name: z.ZodString; /** 工具 ID(用于命令匹配) */ toolId: z.ZodString; /** 是否启用 */ enabled: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 工具名称 */ name: z.ZodString; /** 工具 ID(用于命令匹配) */ toolId: z.ZodString; /** 是否启用 */ enabled: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, z.ZodTypeAny, "passthrough">>; export type AIToolConfig = z.infer; export declare const PathsConfigSchema: z.ZodObject<{ changesDir: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ changesDir: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ changesDir: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>; export type PathsConfig = z.infer; export declare const SDDEngineConfigSchema: z.ZodObject<{ maxFixRounds: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ maxFixRounds: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ maxFixRounds: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>; export type SDDEngineConfig = z.infer; export declare const ArtifactGraphConfigSchema: z.ZodObject<{ schema: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ schema: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ schema: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>; export type ArtifactGraphConfig = z.infer; export declare const FeatureFlagsSchema: z.ZodDefault>; export type FeatureFlags = z.infer; export declare const AdapterConfigSchema: z.ZodObject<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>; export type AdapterConfig = z.infer; export declare const IndexingConfigSchema: z.ZodObject<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>; export type IndexingConfig = z.infer; export declare const InjectionConfigSchema: z.ZodObject<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>; export type InjectionConfig = z.infer; export declare const RetentionConfigSchema: z.ZodObject<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>; export type RetentionConfig = z.infer; export declare const MemoryConfigSchema: z.ZodObject<{ /** 是否启用 Memory */ enabled: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 Memory */ enabled: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 Memory */ enabled: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>; export type MemoryConfig = z.infer; export declare const GlobalConfigSchema: z.ZodObject<{ /** 配置格式版本 */ version: z.ZodDefault; /** 配置文件 */ profile: z.ZodDefault>; /** 交付模式 */ delivery: z.ZodDefault>; /** AI 工具列表 */ tools: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 工具名称 */ name: z.ZodString; /** 工具 ID(用于命令匹配) */ toolId: z.ZodString; /** 是否启用 */ enabled: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 工具名称 */ name: z.ZodString; /** 工具 ID(用于命令匹配) */ toolId: z.ZodString; /** 是否启用 */ enabled: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, z.ZodTypeAny, "passthrough">>, "many">>; /** 路径配置 */ paths: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ changesDir: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ changesDir: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** SDD 引擎配置 */ sdd: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ maxFixRounds: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ maxFixRounds: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 工件图配置 */ artifactGraph: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ schema: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ schema: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 工作流启用列表 */ workflows: z.ZodDefault>; /** 默认存储 */ defaultStore: z.ZodOptional; /** 全局编码约束 */ globalConstraints: z.ZodOptional; /** 项目级上下文描述(注入到 AI 指令中,帮助 AI 理解项目背景) */ context: z.ZodOptional; /** 每个工件的定制规则(key 为工件 ID,value 为规则字符串数组) */ rules: z.ZodDefault>>; /** 功能开关 */ featureFlags: z.ZodDefault>; /** Memory 配置 */ memory: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 Memory */ enabled: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 Memory */ enabled: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 配置格式版本 */ version: z.ZodDefault; /** 配置文件 */ profile: z.ZodDefault>; /** 交付模式 */ delivery: z.ZodDefault>; /** AI 工具列表 */ tools: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 工具名称 */ name: z.ZodString; /** 工具 ID(用于命令匹配) */ toolId: z.ZodString; /** 是否启用 */ enabled: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 工具名称 */ name: z.ZodString; /** 工具 ID(用于命令匹配) */ toolId: z.ZodString; /** 是否启用 */ enabled: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, z.ZodTypeAny, "passthrough">>, "many">>; /** 路径配置 */ paths: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ changesDir: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ changesDir: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** SDD 引擎配置 */ sdd: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ maxFixRounds: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ maxFixRounds: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 工件图配置 */ artifactGraph: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ schema: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ schema: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 工作流启用列表 */ workflows: z.ZodDefault>; /** 默认存储 */ defaultStore: z.ZodOptional; /** 全局编码约束 */ globalConstraints: z.ZodOptional; /** 项目级上下文描述(注入到 AI 指令中,帮助 AI 理解项目背景) */ context: z.ZodOptional; /** 每个工件的定制规则(key 为工件 ID,value 为规则字符串数组) */ rules: z.ZodDefault>>; /** 功能开关 */ featureFlags: z.ZodDefault>; /** Memory 配置 */ memory: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 Memory */ enabled: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 Memory */ enabled: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 配置格式版本 */ version: z.ZodDefault; /** 配置文件 */ profile: z.ZodDefault>; /** 交付模式 */ delivery: z.ZodDefault>; /** AI 工具列表 */ tools: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 工具名称 */ name: z.ZodString; /** 工具 ID(用于命令匹配) */ toolId: z.ZodString; /** 是否启用 */ enabled: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 工具名称 */ name: z.ZodString; /** 工具 ID(用于命令匹配) */ toolId: z.ZodString; /** 是否启用 */ enabled: z.ZodDefault; /** 技能目录路径(相对于项目根) */ skillsDir: z.ZodOptional; /** 命令目录路径 */ commandsDir: z.ZodOptional; /** 模型配置 */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; }, z.ZodTypeAny, "passthrough">>, "many">>; /** 路径配置 */ paths: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ changesDir: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ changesDir: z.ZodDefault; specsDir: z.ZodDefault; archiveDir: z.ZodDefault; docsDir: z.ZodDefault; schemasDir: z.ZodDefault; skillsDir: z.ZodDefault; memoryDir: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** SDD 引擎配置 */ sdd: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ maxFixRounds: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ maxFixRounds: z.ZodDefault; /** * 变更目录内的 SDD 子目录名(默认 'sdd')。 * * 语义:SDD 工作区固定为 `///`。 * - 普通子目录名(如 'sdd')→ 直接作为子目录名 * - '.' → SDD 工件直接位于变更目录根部 * - 遗留值(以 `.specpow` 开头,例如 `.specpow/changes`)→ 规范化为 'sdd' */ workspaceDir: z.ZodDefault; /** AI 后端选择: 'auto'(自动回退) | 'claude' | 'shell' | 'filesystem' */ backend: z.ZodDefault>; modelTier: z.ZodDefault>; /** Model tier overrides — map tier names to specific model IDs */ models: z.ZodOptional; standard: z.ZodDefault; capable: z.ZodDefault; }, "strip", z.ZodTypeAny, { cheap: string; standard: string; capable: string; }, { cheap?: string | undefined; standard?: string | undefined; capable?: string | undefined; }>>; /** Per-role model overrides — take precedence over modelTier/model defaults */ implementerModel: z.ZodOptional; reviewerModel: z.ZodOptional; finalReviewModel: z.ZodOptional; reviewEnabled: z.ZodDefault; parallelEnabled: z.ZodDefault; gitWorktreeEnabled: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 工件图配置 */ artifactGraph: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ schema: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ schema: z.ZodDefault; schemasDir: z.ZodDefault; autoValidate: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 工作流启用列表 */ workflows: z.ZodDefault>; /** 默认存储 */ defaultStore: z.ZodOptional; /** 全局编码约束 */ globalConstraints: z.ZodOptional; /** 项目级上下文描述(注入到 AI 指令中,帮助 AI 理解项目背景) */ context: z.ZodOptional; /** 每个工件的定制规则(key 为工件 ID,value 为规则字符串数组) */ rules: z.ZodDefault>>; /** 功能开关 */ featureFlags: z.ZodDefault>; /** Memory 配置 */ memory: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 Memory */ enabled: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 Memory */ enabled: z.ZodDefault; /** 适配器配置 */ adapters: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; codebuddy: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough">>>; }, "strip", z.ZodTypeAny, { claudeCode: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; codebuddy: { enabled: boolean; baseDir?: string | undefined; projectsDir?: string | undefined; sessionsDir?: string | undefined; dataDir?: string | undefined; } & { [k: string]: unknown; }; }, { claudeCode?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; codebuddy?: z.objectInputType<{ /** 是否启用 */ enabled: z.ZodDefault; /** 基础目录 */ baseDir: z.ZodOptional; /** 项目目录 */ projectsDir: z.ZodOptional; /** 会话目录 */ sessionsDir: z.ZodOptional; /** 数据目录 */ dataDir: z.ZodOptional; }, z.ZodTypeAny, "passthrough"> | undefined; }>>; /** 索引配置 */ indexing: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否自动索引 */ autoIndex: z.ZodDefault; /** 会话结束时索引 */ onSessionEnd: z.ZodDefault; /** 阶段完成时索引 */ onPhaseComplete: z.ZodDefault; /** 防抖间隔(秒) */ debounceSeconds: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; /** 注入配置 */ injection: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 是否启用注入 */ enabled: z.ZodDefault; /** 最大注入条目数 */ maxEntries: z.ZodDefault; /** 最小相关性阈值 */ minRelevance: z.ZodDefault; /** 各阶段 token 预算 */ tokenBudgets: z.ZodDefault; propose: z.ZodDefault; apply: z.ZodDefault; verify: z.ZodDefault; }, "strip", z.ZodTypeAny, { explore: number; propose: number; apply: number; verify: number; }, { explore?: number | undefined; propose?: number | undefined; apply?: number | undefined; verify?: number | undefined; }>>; }, z.ZodTypeAny, "passthrough">>>; /** 保留配置 */ retention: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, "passthrough", z.ZodTypeAny, z.objectOutputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">, z.objectInputType<{ /** 变更完成时归档 */ archiveOnComplete: z.ZodDefault; /** 时间衰减半衰期(天) */ timeDecayHalflifeDays: z.ZodDefault; /** 最大索引大小(MB) */ maxIndexSizeMB: z.ZodDefault; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>>; }, z.ZodTypeAny, "passthrough">>; export type GlobalConfig = z.infer; export declare const DEFAULT_CONFIG: GlobalConfig; //# sourceMappingURL=config-schema.d.ts.map