import type { FreshnessConfig, UserPreferencesConfig } from "./types.js"; /** * Config categories for organization and filtering */ export type ConfigCategory = "client" | "freshness" | "search" | "context" | "tags" | "facts" | "snapshots" | "maintenance" | "workers" | "preferences"; /** * Config value types */ export type ConfigType = "string" | "number" | "boolean" | "json"; /** * Base config entry - all entries must have these fields */ interface ConfigEntryBase { description: string; type: ConfigType; category: ConfigCategory; default: string | number | boolean | null; } /** * String config entry with optional enum values */ interface ConfigEntryString extends ConfigEntryBase { type: "string"; values?: readonly string[]; default: string | null; } /** * Number config entry */ interface ConfigEntryNumber extends ConfigEntryBase { type: "number"; default: number | null; } /** * Boolean config entry */ interface ConfigEntryBoolean extends ConfigEntryBase { type: "boolean"; default: boolean; } /** * JSON config entry for complex objects */ interface ConfigEntryJson extends ConfigEntryBase { type: "json"; default: string; } /** * Union of all config entry types */ export type ConfigEntry = ConfigEntryString | ConfigEntryNumber | ConfigEntryBoolean | ConfigEntryJson; /** * The full config schema type */ export type ConfigSchemaType = Record; /** * Default freshness values in hours */ export declare const DEFAULT_FRESHNESS_CONFIG: FreshnessConfig; /** * Default user preferences - optimized for token efficiency and clarity. * These represent a direct, no-frills interaction style. */ export declare const DEFAULT_USER_PREFERENCES: UserPreferencesConfig; /** * Default search limits per entity type */ export declare const DEFAULT_SEARCH_LIMITS: { tags: number; facts: number; resources: number; skills: number; executionLogs: number; }; /** * Default context budgets for get_knowledge_context */ export declare const DEFAULT_CONTEXT_BUDGETS: { facts: number; resources: number; skills: number; }; /** * Default source type trust levels (0.0 to 1.0) */ export declare const DEFAULT_SOURCE_TYPE_TRUST: { user: number; documentation: number; code: number; inference: number; }; /** * Default snapshot management settings */ export declare const DEFAULT_SNAPSHOT_SETTINGS: { maxSizeKb: number; overflowBehavior: "summarize"; retentionVersions: number; }; /** * Snapshot overflow behaviors */ export type SnapshotOverflowBehavior = "truncate" | "summarize" | "remove_noise" | "auto"; /** * Default worker intervals in milliseconds */ export declare const DEFAULT_WORKER_INTERVALS: { autoVerify: number; expireFacts: number; pruneSnapshots: number; pruneTags: number; hardDelete: number; }; /** * All configuration keys with their types and defaults. * Used for CLI help, validation, and database config management. * * Every entry must include a category for organization. */ export declare const CONFIG_SCHEMA: { readonly client: { readonly description: "Client type - determines default skills directory"; readonly type: "string"; readonly values: readonly ["github-copilot", "cursor", "windsurf", "claude-desktop"]; readonly default: import("../clients.js").ClientType; readonly category: "client"; }; readonly skills_dir: { readonly description: "Override skills directory path"; readonly type: "string"; readonly default: null; readonly category: "client"; }; readonly freshness_lock_files: { readonly description: "Hours before lock files are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_config_files: { readonly description: "Hours before config files are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_documentation: { readonly description: "Hours before documentation is considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_generated_files: { readonly description: "Hours before generated files are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_api_schemas: { readonly description: "Hours before API schemas are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_source_code: { readonly description: "Hours before source code files are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_database: { readonly description: "Hours before database files are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_scripts: { readonly description: "Hours before script files are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_tests: { readonly description: "Hours before test files are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_assets: { readonly description: "Hours before asset files are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_infrastructure: { readonly description: "Hours before infrastructure files are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly freshness_default: { readonly description: "Default hours before resources are considered stale"; readonly type: "number"; readonly default: number; readonly category: "freshness"; }; readonly search_limit_tags: { readonly description: "Default limit for list_tags results"; readonly type: "number"; readonly default: number; readonly category: "search"; }; readonly search_limit_facts: { readonly description: "Default limit for search_facts results"; readonly type: "number"; readonly default: number; readonly category: "search"; }; readonly search_limit_resources: { readonly description: "Default limit for search_resources results"; readonly type: "number"; readonly default: number; readonly category: "search"; }; readonly search_limit_skills: { readonly description: "Default limit for search_skills results"; readonly type: "number"; readonly default: number; readonly category: "search"; }; readonly search_limit_execution_logs: { readonly description: "Default limit for search_execution_logs results"; readonly type: "number"; readonly default: number; readonly category: "search"; }; readonly search_include_deleted: { readonly description: "Include soft-deleted items in search results"; readonly type: "boolean"; readonly default: false; readonly category: "search"; }; readonly context_budget_facts: { readonly description: "Maximum facts in get_knowledge_context"; readonly type: "number"; readonly default: number; readonly category: "context"; }; readonly context_budget_resources: { readonly description: "Maximum resources in get_knowledge_context"; readonly type: "number"; readonly default: number; readonly category: "context"; }; readonly context_budget_skills: { readonly description: "Maximum skills in get_knowledge_context"; readonly type: "number"; readonly default: number; readonly category: "context"; }; readonly tag_affinity_weights: { readonly description: "JSON object mapping tag names to weight multipliers for search ordering"; readonly type: "json"; readonly default: "{}"; readonly category: "tags"; }; readonly tag_synonyms: { readonly description: "JSON object mapping alias tags to canonical tags for query expansion"; readonly type: "json"; readonly default: "{}"; readonly category: "tags"; }; readonly tag_hierarchies: { readonly description: "JSON object mapping child tags to parent tags for hierarchical search"; readonly type: "json"; readonly default: "{}"; readonly category: "tags"; }; readonly required_tags: { readonly description: "JSON object mapping entity types to required tag arrays for creation"; readonly type: "json"; readonly default: "{}"; readonly category: "tags"; }; readonly fact_auto_verify_after_days: { readonly description: "Days after which uncontested facts are auto-verified (null = disabled)"; readonly type: "number"; readonly default: null; readonly category: "facts"; }; readonly fact_expiration_days: { readonly description: "Days after which unverified facts are soft-deleted (null = disabled)"; readonly type: "number"; readonly default: null; readonly category: "facts"; }; readonly source_type_trust: { readonly description: "JSON object mapping source types to trust levels (0.0-1.0) for ordering"; readonly type: "json"; readonly default: string; readonly category: "facts"; }; readonly snapshot_max_size_kb: { readonly description: "Maximum snapshot size in KB before overflow behavior applies"; readonly type: "number"; readonly default: number; readonly category: "snapshots"; }; readonly snapshot_overflow_behavior: { readonly description: "How to handle snapshots exceeding max size: truncate, summarize, remove_noise, auto"; readonly type: "string"; readonly values: readonly ["truncate", "summarize", "remove_noise", "auto"]; readonly default: "summarize"; readonly category: "snapshots"; }; readonly snapshot_retention_versions: { readonly description: "Number of snapshot versions to retain per resource"; readonly type: "number"; readonly default: number; readonly category: "snapshots"; }; readonly auto_prune_orphan_tags: { readonly description: "Automatically prune tags not linked to any entities"; readonly type: "boolean"; readonly default: false; readonly category: "maintenance"; }; readonly soft_delete_retention_days: { readonly description: "Days to retain soft-deleted items before hard deletion"; readonly type: "number"; readonly default: 7; readonly category: "maintenance"; }; readonly staleness_warning_threshold: { readonly description: "Fraction of freshness limit at which to warn (0.0-1.0, e.g., 0.8 = 80%)"; readonly type: "number"; readonly default: 0.8; readonly category: "maintenance"; }; readonly worker_interval_auto_verify: { readonly description: "Milliseconds between auto-verify runs"; readonly type: "number"; readonly default: number; readonly category: "workers"; }; readonly worker_interval_expire_facts: { readonly description: "Milliseconds between fact expiration runs"; readonly type: "number"; readonly default: number; readonly category: "workers"; }; readonly worker_interval_prune_snapshots: { readonly description: "Milliseconds between snapshot pruning runs"; readonly type: "number"; readonly default: number; readonly category: "workers"; }; readonly worker_interval_prune_tags: { readonly description: "Milliseconds between orphan tag pruning runs"; readonly type: "number"; readonly default: number; readonly category: "workers"; }; readonly worker_interval_hard_delete: { readonly description: "Milliseconds between hard deletion runs"; readonly type: "number"; readonly default: number; readonly category: "workers"; }; readonly pref_tone: { readonly description: "Communication tone: formal, neutral, casual, technical"; readonly type: "string"; readonly values: readonly ["formal", "neutral", "casual", "technical"]; readonly default: import("./types.js").PreferenceTone; readonly category: "preferences"; }; readonly pref_verbosity: { readonly description: "Response verbosity: minimal, concise, balanced, detailed, comprehensive"; readonly type: "string"; readonly values: readonly ["minimal", "concise", "balanced", "detailed", "comprehensive"]; readonly default: import("./types.js").PreferenceVerbosity; readonly category: "preferences"; }; readonly pref_emoji_usage: { readonly description: "Emoji policy: banned (strictly prohibited), minimal, moderate, liberal"; readonly type: "string"; readonly values: readonly ["banned", "minimal", "moderate", "liberal"]; readonly default: import("./types.js").PreferenceEmojiUsage; readonly category: "preferences"; }; readonly pref_special_chars: { readonly description: "Decorative unicode (bullets, arrows, boxes): banned, minimal, allowed"; readonly type: "string"; readonly values: readonly ["banned", "minimal", "allowed"]; readonly default: import("./types.js").PreferenceSpecialChars; readonly category: "preferences"; }; readonly pref_personality: { readonly description: "Interaction personality: direct, friendly, professional, instructive"; readonly type: "string"; readonly values: readonly ["direct", "friendly", "professional", "instructive"]; readonly default: import("./types.js").PreferencePersonality; readonly category: "preferences"; }; readonly pref_structure_style: { readonly description: "Response organization: flat, hierarchical, progressive"; readonly type: "string"; readonly values: readonly ["flat", "hierarchical", "progressive"]; readonly default: import("./types.js").PreferenceStructureStyle; readonly category: "preferences"; }; readonly pref_summary_position: { readonly description: "TL;DR placement: omit, first, last, both"; readonly type: "string"; readonly values: readonly ["omit", "first", "last", "both"]; readonly default: import("./types.js").PreferenceSummaryPosition; readonly category: "preferences"; }; readonly pref_use_headers: { readonly description: "Use markdown headers in responses"; readonly type: "boolean"; readonly default: boolean; readonly category: "preferences"; }; readonly pref_use_lists: { readonly description: "List usage: avoid, when_appropriate, prefer"; readonly type: "string"; readonly values: readonly ["avoid", "when_appropriate", "prefer"]; readonly default: import("./types.js").PreferenceListUsage; readonly category: "preferences"; }; readonly pref_section_dividers: { readonly description: "Section dividers (horizontal rules, decorative separators): banned, minimal, allowed"; readonly type: "string"; readonly values: readonly ["banned", "minimal", "allowed"]; readonly default: import("./types.js").PreferenceSectionDividers; readonly category: "preferences"; }; readonly pref_code_block_context: { readonly description: "Explanation around code blocks: omit, minimal, moderate, full"; readonly type: "string"; readonly values: readonly ["omit", "minimal", "moderate", "full"]; readonly default: import("./types.js").PreferenceCodeBlockContext; readonly category: "preferences"; }; readonly pref_code_comments: { readonly description: "Inline comment density: banned (no comments), critical only, minimal, moderate, verbose"; readonly type: "string"; readonly values: readonly ["banned", "critical", "minimal", "moderate", "verbose"]; readonly default: import("./types.js").PreferenceCodeComments; readonly category: "preferences"; }; readonly pref_code_inline_comments: { readonly description: "Inline comments inside function bodies: banned, critical (only critical code), logical_branches (at conditionals/loops), verbose"; readonly type: "string"; readonly values: readonly ["banned", "critical", "logical_branches", "verbose"]; readonly default: import("./types.js").PreferenceCodeInlineComments; readonly category: "preferences"; }; readonly pref_code_banners: { readonly description: "Decorative/banner comments (e.g., // ====== Section ======): banned, minimal, allowed"; readonly type: "string"; readonly values: readonly ["banned", "minimal", "allowed"]; readonly default: import("./types.js").PreferenceCodeBanners; readonly category: "preferences"; }; readonly pref_code_docstrings: { readonly description: "Docstring generation: omit, public_only, all"; readonly type: "string"; readonly values: readonly ["omit", "public_only", "all"]; readonly default: import("./types.js").PreferenceCodeDocstrings; readonly category: "preferences"; }; readonly pref_code_type_annotations: { readonly description: "Type annotation verbosity: minimal, inferred, explicit, strict"; readonly type: "string"; readonly values: readonly ["minimal", "inferred", "explicit", "strict"]; readonly default: import("./types.js").PreferenceCodeTypeAnnotations; readonly category: "preferences"; }; readonly pref_code_error_handling: { readonly description: "Error handling style: minimal, defensive, comprehensive"; readonly type: "string"; readonly values: readonly ["minimal", "defensive", "comprehensive"]; readonly default: import("./types.js").PreferenceCodeErrorHandling; readonly category: "preferences"; }; readonly pref_code_naming_notes: { readonly description: "Freeform notes on preferred naming conventions"; readonly type: "string"; readonly default: string | null; readonly category: "preferences"; }; readonly pref_code_line_length: { readonly description: "Target line length for code (60-200)"; readonly type: "number"; readonly default: number; readonly category: "preferences"; }; readonly pref_code_imports_style: { readonly description: "Import organization: minimal, explicit, grouped"; readonly type: "string"; readonly values: readonly ["minimal", "explicit", "grouped"]; readonly default: import("./types.js").PreferenceCodeImportsStyle; readonly category: "preferences"; }; readonly pref_docs_format: { readonly description: "Documentation format: plain, markdown, rich"; readonly type: "string"; readonly values: readonly ["plain", "markdown", "rich"]; readonly default: import("./types.js").PreferenceDocsFormat; readonly category: "preferences"; }; readonly pref_docs_examples: { readonly description: "Example inclusion: omit, minimal, moderate, comprehensive"; readonly type: "string"; readonly values: readonly ["omit", "minimal", "moderate", "comprehensive"]; readonly default: import("./types.js").PreferenceDocsExamples; readonly category: "preferences"; }; readonly pref_docs_diagrams: { readonly description: "Diagram preference: omit, ascii, mermaid"; readonly type: "string"; readonly values: readonly ["omit", "ascii", "mermaid"]; readonly default: import("./types.js").PreferenceDocsDiagrams; readonly category: "preferences"; }; readonly pref_docs_technical_depth: { readonly description: "Technical depth: simplified, balanced, detailed, expert"; readonly type: "string"; readonly values: readonly ["simplified", "balanced", "detailed", "expert"]; readonly default: import("./types.js").PreferenceDocsTechnicalDepth; readonly category: "preferences"; }; readonly pref_confirmations: { readonly description: "Confirmation requests: skip, minimal, always"; readonly type: "string"; readonly values: readonly ["skip", "minimal", "always"]; readonly default: import("./types.js").PreferenceConfirmations; readonly category: "preferences"; }; readonly pref_suggestions: { readonly description: "Proactive suggestions: omit, when_relevant, proactive"; readonly type: "string"; readonly values: readonly ["omit", "when_relevant", "proactive"]; readonly default: import("./types.js").PreferenceSuggestions; readonly category: "preferences"; }; readonly pref_questions: { readonly description: "Question behavior: avoid, clarifying_only, exploratory"; readonly type: "string"; readonly values: readonly ["avoid", "clarifying_only", "exploratory"]; readonly default: import("./types.js").PreferenceQuestions; readonly category: "preferences"; }; readonly pref_error_detail: { readonly description: "Error reporting: minimal, actionable, diagnostic, full"; readonly type: "string"; readonly values: readonly ["minimal", "actionable", "diagnostic", "full"]; readonly default: import("./types.js").PreferenceErrorDetail; readonly category: "preferences"; }; readonly pref_progress_updates: { readonly description: "Show progress on long operations"; readonly type: "boolean"; readonly default: boolean; readonly category: "preferences"; }; readonly pref_language: { readonly description: "Primary language (ISO 639-1 code, e.g., en, es, fr)"; readonly type: "string"; readonly default: string; readonly category: "preferences"; }; readonly pref_technical_terms: { readonly description: "Technical terminology: simplified, standard, precise"; readonly type: "string"; readonly values: readonly ["simplified", "standard", "precise"]; readonly default: import("./types.js").PreferenceTechnicalTerms; readonly category: "preferences"; }; readonly pref_date_format: { readonly description: "Date format: ISO, US, EU, relative"; readonly type: "string"; readonly values: readonly ["ISO", "US", "EU", "relative"]; readonly default: import("./types.js").PreferenceDateFormat; readonly category: "preferences"; }; readonly pref_number_format: { readonly description: "Number format: standard, grouped"; readonly type: "string"; readonly values: readonly ["standard", "grouped"]; readonly default: import("./types.js").PreferenceNumberFormat; readonly category: "preferences"; }; }; export type ConfigKey = keyof typeof CONFIG_SCHEMA; export {}; //# sourceMappingURL=defaults.d.ts.map