/** * schema-domain-features.ts, config domains for runtime features whose * meaningful tuning knobs were previously constructor- or tool-call-only: * fetch sanitization, the token audit, integration delivery, policy bundles, * and agent context/injection tuning. Defaults equal the values those features * hardcoded before promotion, so a fresh config reproduces prior behaviour; * constructor/per-call params still override. * * These five sections are top-level config domains, so, like the worktree * domain in schema-domain-runtime.ts, they augment GoodVibesConfig via * `declare module` here (co-located with their defaults) instead of editing * schema-types.ts. Registering the domain is what keeps get('fetch.*') etc. from * throwing "section 'fetch' does not exist"; the scalar keys additionally appear * in the ConfigKey union / ConfigValue map in schema-types.ts so config.get is typed. */ import type { ConfigSetting } from './schema-types.js'; /** Fetch tool: response-sanitization mode, trust-tier host defaults, localhost approval. */ export interface FetchConfig { /** Default sanitize mode applied when a fetch call omits sanitize_mode. */ sanitizeMode: 'none' | 'safe-text' | 'strict'; /** Comma-separated default trusted hosts (sanitize relaxed); per-call trusted_hosts still adds. */ trustedHosts: string; /** Comma-separated default blocked hosts (always refused); per-call blocked_hosts still adds. */ blockedHosts: string; /** * Allow fetches to localhost/loopback dev servers for this project. Persisted * per project by the one-tap "allow for this project" approval; private-IP and * cloud-metadata blocking is unaffected and absolute. */ allowLocalhost: boolean; } /** API token audit: enablement, rotation cadence / warning window / managed enforcement. */ export interface SecurityConfig { tokenAudit: { enabled: boolean; rotationCadenceDays: number; rotationWarningDays: number; managed: boolean; }; } /** Channel integrations: route binding, delivery tracking, retry / dead-letter / SLO defaults. */ export interface IntegrationsConfig { /** Durable binding/resolution of external conversation routes and reply targets. */ routeBinding: boolean; /** First-class delivery tracking: retries, dead letters, per-surface outcomes. */ deliveryTracking: boolean; delivery: { maxRetries: number; initialDelayMs: number; maxDelayMs: number; maxDlqSize: number; sloEnforced: boolean; }; } /** Policy bundles: registry enablement, signature requirement, bundle source + path. */ export interface PolicyConfig { /** Versioned policy bundle registry with promote/rollback and the /policy commands. */ registryEnabled: boolean; /** Reject policy bundles with invalid or missing HMAC signatures in managed mode (restart to apply). */ requireSignedBundles: boolean; bundleSource: 'none' | 'file'; bundlePath: string; } /** Passive-injection and context-window tuning for the agent orchestrator. */ export interface AgentsConfig { passiveInjection: { /** Per-turn re-retrieval of project-memory knowledge against the evolving conversation. */ knowledge: boolean; /** Additionally inject similarity-ranked source-code chunks (opt-in; higher-variance signal). */ code: boolean; budgetTokens: number; relevanceFloor: number; codeLimit: number; }; /** Estimate token usage before each provider call and compact past the threshold. */ contextWindowGuard: boolean; contextCompactThreshold: number; /** Default per-agent turn budget (hard cap on turns before a run is a max-turns failure). */ maxTurns: number; /** Upper bound a per-spawn maxTurns override cannot exceed, the policy cap always wins. */ maxTurnsCap: number; } declare module './schema-types.js' { interface GoodVibesConfig { fetch: FetchConfig; security: SecurityConfig; integrations: IntegrationsConfig; policy: PolicyConfig; agents: AgentsConfig; } } export declare const featureConfigDefaults: { fetch: FetchConfig; security: SecurityConfig; integrations: IntegrationsConfig; policy: PolicyConfig; agents: AgentsConfig; }; export declare const featureConfigSettings: ConfigSetting[]; //# sourceMappingURL=schema-domain-features.d.ts.map