/** * @catalog_tier A * @guardrail pattern_id_stability * @joins first_seen * @routes_to log10x_pattern_examples, log10x_pattern_trend * @_audit_rationale Stable pattern identity makes set-diff coherent across time boundaries (impossible on competitors that re-cluster per query); joins first-seen state for re_emerged + co_emergence_clusters enrichments unique to log10x. * * log10x_pattern_diff — set diff of patterns across a time boundary. * * Answers "what changed across this time boundary?" by comparing pattern * presence in two windows: a `before` window and an `after` window. Returns * three sets — new (present after, absent before), retired (present before, * absent after), persistent (present in both) — plus two enrichments only * meaningful in log10x: * * - `re_emerged`: patterns flagged as new that ACTUALLY existed prior to * the before-window (their first_seen predates it). These are "the bug * we thought we fixed is back" cases, not genuinely new patterns. * * - `co_emergence_clusters`: groups of 3+ patterns whose first_seen * timestamps cluster within ±60s. A deploy fingerprint — no CI/CD * integration required; the agent then queries the customer's deploy * system externally with the timestamp. * * Why this is the differentiating tool in the catalog: pattern identity is * stable across log-format drift, so the set diff is COHERENT across time * boundaries. On any pattern-detection competitor that re-clusters per query * (Datadog Log Patterns, Cribl, Edge Delta), the "patterns" on each side of * the boundary aren't comparable — their IDs change every query. The diff * question is incoherent there; it works here. */ import { z } from 'zod'; import type { EnvConfig } from '../lib/environments.js'; import { type StructuredOutput } from '../lib/output-types.js'; export declare const patternDiffSchema: { timeRange: z.ZodDefault>; service: z.ZodOptional; severity: z.ZodOptional; limit: z.ZodDefault; co_emergence_window_seconds: z.ZodDefault; min_co_emergence_cluster_size: z.ZodDefault; analyzerCost: z.ZodOptional; environment: z.ZodOptional; view: z.ZodDefault>; }; export declare function executePatternDiff(args: { timeRange?: string; service?: string; severity?: string; limit?: number; co_emergence_window_seconds?: number; min_co_emergence_cluster_size?: number; analyzerCost?: number; view?: 'summary' | 'markdown'; }, env: EnvConfig): Promise;