ghagga-core 3.3.0 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/acp/adapter.d.ts.map +1 -1
  2. package/dist/acp/adapter.js +8 -1
  3. package/dist/acp/adapter.js.map +1 -1
  4. package/dist/agents/consensus.d.ts +2 -2
  5. package/dist/agents/consensus.d.ts.map +1 -1
  6. package/dist/agents/consensus.js +13 -5
  7. package/dist/agents/consensus.js.map +1 -1
  8. package/dist/agents/fan-out-lenses.d.ts +33 -2
  9. package/dist/agents/fan-out-lenses.d.ts.map +1 -1
  10. package/dist/agents/fan-out-lenses.js +245 -8
  11. package/dist/agents/fan-out-lenses.js.map +1 -1
  12. package/dist/agents/issue-code-discovery.d.ts +58 -0
  13. package/dist/agents/issue-code-discovery.d.ts.map +1 -0
  14. package/dist/agents/issue-code-discovery.js +144 -0
  15. package/dist/agents/issue-code-discovery.js.map +1 -0
  16. package/dist/agents/issue-triage.d.ts +10 -0
  17. package/dist/agents/issue-triage.d.ts.map +1 -1
  18. package/dist/agents/issue-triage.js +53 -4
  19. package/dist/agents/issue-triage.js.map +1 -1
  20. package/dist/agents/prompts.d.ts +12 -3
  21. package/dist/agents/prompts.d.ts.map +1 -1
  22. package/dist/agents/prompts.js +21 -2
  23. package/dist/agents/prompts.js.map +1 -1
  24. package/dist/agents/simple.d.ts.map +1 -1
  25. package/dist/agents/simple.js +1 -1
  26. package/dist/agents/simple.js.map +1 -1
  27. package/dist/agents/voice-validation.d.ts +34 -0
  28. package/dist/agents/voice-validation.d.ts.map +1 -0
  29. package/dist/agents/voice-validation.js +64 -0
  30. package/dist/agents/voice-validation.js.map +1 -0
  31. package/dist/agents/workflow.d.ts.map +1 -1
  32. package/dist/agents/workflow.js +8 -0
  33. package/dist/agents/workflow.js.map +1 -1
  34. package/dist/critique/critique.js +1 -1
  35. package/dist/critique/critique.js.map +1 -1
  36. package/dist/critique/prompts.d.ts +1 -1
  37. package/dist/critique/prompts.d.ts.map +1 -1
  38. package/dist/critique/prompts.js +1 -1
  39. package/dist/enhance/prompt.d.ts +1 -1
  40. package/dist/enhance/prompt.d.ts.map +1 -1
  41. package/dist/explanation.d.ts +69 -0
  42. package/dist/explanation.d.ts.map +1 -0
  43. package/dist/explanation.js +16 -0
  44. package/dist/explanation.js.map +1 -0
  45. package/dist/format.d.ts.map +1 -1
  46. package/dist/format.js +1 -0
  47. package/dist/format.js.map +1 -1
  48. package/dist/index.d.ts +11 -4
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +14 -3
  51. package/dist/index.js.map +1 -1
  52. package/dist/memory/decay.d.ts +40 -0
  53. package/dist/memory/decay.d.ts.map +1 -1
  54. package/dist/memory/decay.js +57 -0
  55. package/dist/memory/decay.js.map +1 -1
  56. package/dist/memory/engram.d.ts.map +1 -1
  57. package/dist/memory/engram.js +15 -3
  58. package/dist/memory/engram.js.map +1 -1
  59. package/dist/memory/search.d.ts +157 -0
  60. package/dist/memory/search.d.ts.map +1 -1
  61. package/dist/memory/search.js +420 -0
  62. package/dist/memory/search.js.map +1 -1
  63. package/dist/memory/sqlite.d.ts.map +1 -1
  64. package/dist/memory/sqlite.js +11 -3
  65. package/dist/memory/sqlite.js.map +1 -1
  66. package/dist/pipeline/execute.d.ts.map +1 -1
  67. package/dist/pipeline/execute.js +14 -0
  68. package/dist/pipeline/execute.js.map +1 -1
  69. package/dist/providers/cli-bridge.d.ts +13 -11
  70. package/dist/providers/cli-bridge.d.ts.map +1 -1
  71. package/dist/providers/cli-bridge.js +155 -40
  72. package/dist/providers/cli-bridge.js.map +1 -1
  73. package/dist/providers/explanation-generate-fn.d.ts +28 -0
  74. package/dist/providers/explanation-generate-fn.d.ts.map +1 -0
  75. package/dist/providers/explanation-generate-fn.js +122 -0
  76. package/dist/providers/explanation-generate-fn.js.map +1 -0
  77. package/dist/types.d.ts +43 -2
  78. package/dist/types.d.ts.map +1 -1
  79. package/dist/types.js +8 -0
  80. package/dist/types.js.map +1 -1
  81. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9,17 +9,26 @@ export { reviewPipeline } from './pipeline.js';
9
9
  // ─── Audit Agent ────────────────────────────────────────────────
10
10
  export { runAuditReport } from './agents/audit.js';
11
11
  export { parseHypotheses, runDiagnosticReview } from './agents/diagnostic.js';
12
- export { DEFAULT_LENSES, getAllLenses, getLens, LENS_ACCESSIBILITY, LENS_ERROR_HANDLING, LENS_PERFORMANCE, LENS_SECURITY, LENS_TYPING, loadLensesFromDir, mergeFindings, registerLens, resetLensRegistry, runFanOutReview, validateLens, } from './agents/fan-out-lenses.js';
13
- export { DEFAULT_DECAY_CONFIG, DEFAULT_MODELS, DEFAULT_SETTINGS, DEFAULT_VERSIONING_CONFIG, } from './types.js';
12
+ export { DEFAULT_LENSES, getAllLenses, getLens, LENS_ACCESSIBILITY, LENS_ERROR_HANDLING, LENS_PERFORMANCE, LENS_SECURITY, LENS_TYPING, loadLensesFromDir, mergeFindings, registerLens, resetLensRegistry, runFanOutReview, stampFindingLedger, validateLens, } from './agents/fan-out-lenses.js';
13
+ export { DEFAULT_DECAY_CONFIG, DEFAULT_MODELS, DEFAULT_SETTINGS, DEFAULT_VERSIONING_CONFIG, FINDING_LEDGER_STATUS, } from './types.js';
14
14
  export { buildProgressiveContext, chooseContextLevel, collectAllFindings, collectToolNames, estimateTokens, formatMemoryContextL0, formatMemoryContextL1, formatStaticContextL0, formatStaticContextL1, } from './utils/context-levels.js';
15
15
  export { filterDiffFiles, filterIgnoredFiles, parseDiffFiles, truncateDiff } from './utils/diff.js';
16
16
  export { applyPathProtection, REDACT_PATTERNS, REDACTED_CONTENT, ZERO_ACCESS_PATTERNS, } from './utils/path-protection.js';
17
17
  export { detectStacks } from './utils/stack-detect.js';
18
18
  export { calculateRateSchedule, calculateTokenBudget, getContextWindow, } from './utils/token-budget.js';
19
+ // ─── Providers (for direct model access) ────────────────────────
20
+ // Provider-chain → GenerateTextFn resolution. Exported so out-of-pipeline
21
+ // callers (e.g. the server issue-analysis worker) can resolve a backend from a
22
+ // ReviewInput-shaped object and inject the resulting GenerateTextFn into agents
23
+ // the SAME way the review pipeline's execute step does (pipeline/execute.ts).
24
+ export { resolveGenerateTextFns, resolvePrimaryProvider } from './pipeline/providers.js';
19
25
  export { CLIConfigurationError, generateViaCLI, getAvailableCLIs, OPENCODE_ENV_BY_PREFIX, sanitizeErrorMessage, } from './providers/cli-bridge.js';
26
+ export { createExplanationOllamaGenerateFn, generateExplanation, resolveExplanationGenerateFn, } from './providers/explanation-generate-fn.js';
20
27
  export { generateViaGateway } from './providers/gateway.js';
21
28
  export { fetchGatewayModels, fetchGatewayProviders, validateProviderChain, } from './providers/gateway-discovery.js';
22
29
  export { createCLIBridgeGenerateFn, createGatewayGenerateFn, createOllamaGenerateFn, } from './providers/generate-fn.js';
30
+ // ─── Issue-Triage Agent (issue-triage feature) ──────────────────
31
+ export { discoverCodePaths, discoverSearchTerms } from './agents/issue-code-discovery.js';
23
32
  export { DEFAULT_CLASSIFICATION, DEFAULT_CONFIDENCE, ISSUE_CLASSIFICATIONS, runIssueTriage, } from './agents/issue-triage.js';
24
33
  export { ISSUE_TRIAGE_SYSTEM } from './agents/prompts.js';
25
34
  // ─── Negative Examples ──────────────────────────────────────────
@@ -27,10 +36,11 @@ export { fingerprintContext, fingerprintFinding, formatNegativeExamplesPrompt, }
27
36
  // ─── Memory (for custom memory integrations) ────────────────────
28
37
  export { formatMemoryContext } from './memory/context.js';
29
38
  export { detectContradictions } from './memory/contradiction.js';
30
- export { computeStrength, decayPhase } from './memory/decay.js';
39
+ export { computeStrength, decayPhase, normalizeBm25Relevance, normalizeRankRelevance, } from './memory/decay.js';
31
40
  export { EngramMemoryStorage } from './memory/engram.js';
32
41
  export { createProjectPageIndex, PageDirection, ProjectPageIndexService, } from './memory/pageindex/index.js';
33
42
  export { stripPrivateData } from './memory/privacy.js';
43
+ export { buildIssueSearchQuery, DEDUP_SCORE_THRESHOLD, findIssueDuplicates, ISSUE_TRIAGE_OBSERVATION_TYPE, } from './memory/search.js';
34
44
  export { SqliteMemoryStorage } from './memory/sqlite.js';
35
45
  export { BranchExistsError, BranchNotFoundError, MemoryVersioning, ProtectedBranchError, SnapshotExistsError, SnapshotNotFoundError, } from './memory/versioning.js';
36
46
  export { buildStatsBar, categorizeFiles, FILE_CATEGORIES, formatFileCategorySummary, formatReviewComment, REVIEW_COMMENT_MARKER, SEVERITY_EMOJI, STATUS_EMOJI, } from './format.js';
@@ -64,4 +74,5 @@ export { ACPAdapter, ACPTaskStore, resetTaskCounter } from './acp/index.js';
64
74
  export { applyCritique, DEFAULT_DUAL_CRITIQUE_CONFIG, parseCritiqueResponse, runDualCritique, } from './critique/index.js';
65
75
  export { computeSimilarity, DEFAULT_CROSS_MODEL_CONFIG, matchFindings, runCrossModelReview, } from './critique/index.js';
66
76
  export { SearchEngine, SearchIndexer, STOP_WORDS, tokenize } from './search/index.js';
77
+ export { EXPLANATION_OUTCOME } from './explanation.js';
67
78
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,46 @@ import { type DecayConfig } from '../types.js';
18
18
  * @returns A number between 0.0 and 1.0
19
19
  */
20
20
  export declare function computeStrength(lastAccessedAt: Date, now?: Date, config?: DecayConfig): number;
21
+ /**
22
+ * Normalize an FTS5 `bm25()` score into [0,1] relevance.
23
+ *
24
+ * SQLite's `bm25()` returns MORE-NEGATIVE = BETTER match (typically ~ -0.5 to
25
+ * -15 for real matches, 0 for non-matches). We negate to get a positive
26
+ * "goodness" magnitude, then apply a saturating map `m/(m+k)`:
27
+ * - non-match (bm25 ≈ 0) → ~0.0
28
+ * - weak match (bm25 ≈ -1) → 1/(1+k)
29
+ * - strong match (bm25 ≪ 0) → → 1.0 (saturates, never exceeds 1)
30
+ *
31
+ * Monotonic in match quality and bounded — a single absolute threshold is
32
+ * therefore meaningful, unlike a per-query min/max rescale.
33
+ *
34
+ * @param bm25 - Raw `bm25(memory_observations_fts)` value (≤ 0 for matches).
35
+ * @param k - Saturation constant. Default 4: bm25 ≈ -4 → 0.5.
36
+ */
37
+ export declare function normalizeBm25Relevance(bm25: number, k?: number): number;
38
+ /**
39
+ * Normalize a 0-based positional rank (0 = best keyword match) into [0,1]
40
+ * relevance via a saturating decay `k/(rank+k)`:
41
+ * - rank 0 (top) → 1.0
42
+ * - rank k → 0.5
43
+ * - rank → ∞ → → 0.0
44
+ *
45
+ * INTENDED FOR A FUTURE Postgres adapter — one that would return rows already
46
+ * ordered by `ts_rank` DESC without exposing the raw rank value, so a 0-based
47
+ * position becomes a stable, bounded proxy COMPARABLE to the SQLite bm25 mapping
48
+ * for a shared `relevanceScore` field (both saturate, both monotonic). NOTE: no
49
+ * such Postgres adapter exists in this package yet, so this function currently
50
+ * has NO callers — it is scaffolding, NOT live. Dedup relevance is not wired on
51
+ * Postgres today; do not read this as evidence that it is.
52
+ *
53
+ * NOTE: position 0 maps to 1.0 here, but this is NOT the per-query-top trap —
54
+ * relevanceScore is observability only and is NOT the dedup gate (see
55
+ * findIssueDuplicates, which gates on backend-agnostic keyword overlap).
56
+ *
57
+ * @param rank0 - Zero-based position in the relevance-ordered result set.
58
+ * @param k - Decay constant. Default 4: rank 4 → 0.5.
59
+ */
60
+ export declare function normalizeRankRelevance(rank0: number, k?: number): number;
21
61
  /**
22
62
  * Determine the decay phase label for display purposes.
23
63
  */
@@ -1 +1 @@
1
- {"version":3,"file":"decay.d.ts","sourceRoot":"","sources":["../../src/memory/decay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,IAAI,EACpB,GAAG,GAAE,IAAiB,EACtB,MAAM,GAAE,WAAkC,GACzC,MAAM,CAsBR;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAK1F"}
1
+ {"version":3,"file":"decay.d.ts","sourceRoot":"","sources":["../../src/memory/decay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAwB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,cAAc,EAAE,IAAI,EACpB,GAAG,GAAE,IAAiB,EACtB,MAAM,GAAE,WAAkC,GACzC,MAAM,CAsBR;AAWD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,MAAM,CAIlE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,MAAM,CAGnE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAK1F"}
@@ -36,6 +36,63 @@ export function computeStrength(lastAccessedAt, now = new Date(), config = DEFAU
36
36
  const strength = 1.0 - daysSinceDormancy / decayWindow;
37
37
  return Math.max(0, Math.min(1, strength));
38
38
  }
39
+ // ─── Relevance normalization (keyword ranking → [0,1]) ──────────
40
+ //
41
+ // These map a backend's NATIVE keyword-ranking score into a bounded [0,1]
42
+ // RELEVANCE signal for the `relevanceScore` field on MemoryObservationRow.
43
+ // They are SATURATING / monotonic — they deliberately do NOT use per-query
44
+ // normalization (which would force the top candidate to 1.0 and is the
45
+ // false-positive trap for dedup). This score is telemetry/observability only;
46
+ // issue dedup gates on a separate backend-agnostic keyword overlap.
47
+ /**
48
+ * Normalize an FTS5 `bm25()` score into [0,1] relevance.
49
+ *
50
+ * SQLite's `bm25()` returns MORE-NEGATIVE = BETTER match (typically ~ -0.5 to
51
+ * -15 for real matches, 0 for non-matches). We negate to get a positive
52
+ * "goodness" magnitude, then apply a saturating map `m/(m+k)`:
53
+ * - non-match (bm25 ≈ 0) → ~0.0
54
+ * - weak match (bm25 ≈ -1) → 1/(1+k)
55
+ * - strong match (bm25 ≪ 0) → → 1.0 (saturates, never exceeds 1)
56
+ *
57
+ * Monotonic in match quality and bounded — a single absolute threshold is
58
+ * therefore meaningful, unlike a per-query min/max rescale.
59
+ *
60
+ * @param bm25 - Raw `bm25(memory_observations_fts)` value (≤ 0 for matches).
61
+ * @param k - Saturation constant. Default 4: bm25 ≈ -4 → 0.5.
62
+ */
63
+ export function normalizeBm25Relevance(bm25, k = 4) {
64
+ const magnitude = Math.max(0, -bm25); // negate; non-matches/positive → 0
65
+ if (magnitude === 0)
66
+ return 0;
67
+ return magnitude / (magnitude + k);
68
+ }
69
+ /**
70
+ * Normalize a 0-based positional rank (0 = best keyword match) into [0,1]
71
+ * relevance via a saturating decay `k/(rank+k)`:
72
+ * - rank 0 (top) → 1.0
73
+ * - rank k → 0.5
74
+ * - rank → ∞ → → 0.0
75
+ *
76
+ * INTENDED FOR A FUTURE Postgres adapter — one that would return rows already
77
+ * ordered by `ts_rank` DESC without exposing the raw rank value, so a 0-based
78
+ * position becomes a stable, bounded proxy COMPARABLE to the SQLite bm25 mapping
79
+ * for a shared `relevanceScore` field (both saturate, both monotonic). NOTE: no
80
+ * such Postgres adapter exists in this package yet, so this function currently
81
+ * has NO callers — it is scaffolding, NOT live. Dedup relevance is not wired on
82
+ * Postgres today; do not read this as evidence that it is.
83
+ *
84
+ * NOTE: position 0 maps to 1.0 here, but this is NOT the per-query-top trap —
85
+ * relevanceScore is observability only and is NOT the dedup gate (see
86
+ * findIssueDuplicates, which gates on backend-agnostic keyword overlap).
87
+ *
88
+ * @param rank0 - Zero-based position in the relevance-ordered result set.
89
+ * @param k - Decay constant. Default 4: rank 4 → 0.5.
90
+ */
91
+ export function normalizeRankRelevance(rank0, k = 4) {
92
+ if (rank0 <= 0)
93
+ return 1;
94
+ return k / (rank0 + k);
95
+ }
39
96
  /**
40
97
  * Determine the decay phase label for display purposes.
41
98
  */
@@ -1 +1 @@
1
- {"version":3,"file":"decay.js","sourceRoot":"","sources":["../../src/memory/decay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,oBAAoB,EAAoB,MAAM,aAAa,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,cAAoB,EACpB,MAAY,IAAI,IAAI,EAAE,EACtB,SAAsB,oBAAoB;IAE1C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;IAC3D,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEtD,gCAAgC;IAChC,IAAI,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,6BAA6B;IAC7B,IAAI,WAAW,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,2DAA2D;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;IAC/D,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAEjC,MAAM,iBAAiB,GAAG,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;IAC5D,MAAM,QAAQ,GAAG,GAAG,GAAG,iBAAiB,GAAG,WAAW,CAAC;IAEvD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"decay.js","sourceRoot":"","sources":["../../src/memory/decay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,oBAAoB,EAAoB,MAAM,aAAa,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,cAAoB,EACpB,MAAY,IAAI,IAAI,EAAE,EACtB,SAAsB,oBAAoB;IAE1C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC;IAC3D,MAAM,WAAW,GAAG,SAAS,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEtD,gCAAgC;IAChC,IAAI,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,6BAA6B;IAC7B,IAAI,WAAW,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,2DAA2D;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;IAC/D,IAAI,WAAW,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAEjC,MAAM,iBAAiB,GAAG,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;IAC5D,MAAM,QAAQ,GAAG,GAAG,GAAG,iBAAiB,GAAG,WAAW,CAAC;IAEvD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,mEAAmE;AACnE,EAAE;AACF,0EAA0E;AAC1E,2EAA2E;AAC3E,2EAA2E;AAC3E,uEAAuE;AACvE,8EAA8E;AAC9E,oEAAoE;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,CAAC,GAAG,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC;IACzE,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,SAAS,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,CAAC,GAAG,CAAC;IACzD,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,QAAQ,CAAC;IACrC,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,SAAS,CAAC;IACtC,IAAI,QAAQ,IAAI,GAAG;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"engram.d.ts","sourceRoot":"","sources":["../../src/memory/engram.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACd,MAAM,aAAa,CAAC;AAOrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,MAAM,CAAe;IAE7B;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAsC;IAEnD,OAAO;IAMP;;;;;;;;;OASG;WACU,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAsBlF,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAC9C,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmB5B,eAAe,CAAC,IAAI,EAAE;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwB3B,aAAa,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAWpF,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE,4DAA4D;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,gBAAgB,CACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAyB/B,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAkBnE,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe/C,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IA8BtC;;;OAGG;IACG,iBAAiB,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzE;;;OAGG;IACH,OAAO,CAAC,OAAO;CAKhB"}
1
+ {"version":3,"file":"engram.d.ts","sourceRoot":"","sources":["../../src/memory/engram.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACd,MAAM,aAAa,CAAC;AAOrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,MAAM,CAAe;IAE7B;;;;OAIG;IACH,OAAO,CAAC,KAAK,CAAsC;IAEnD,OAAO;IAMP;;;;;;;;;OASG;WACU,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAsBlF,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAC9C,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAgC5B,eAAe,CAAC,IAAI,EAAE;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwB3B,aAAa,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IAWpF,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE,4DAA4D;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,gBAAgB,CACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAyB/B,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAkBnE,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe/C,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IA8BtC;;;OAGG;IACG,iBAAiB,CAAC,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzE;;;OAGG;IACH,OAAO,CAAC,OAAO;CAKhB"}
@@ -50,15 +50,27 @@ export class EngramMemoryStorage {
50
50
  // ─── Hot-path methods ───────────────────────────────────────────
51
51
  async searchObservations(project, query, options = {}) {
52
52
  const { limit = 10, type } = options;
53
- const results = await this.client.search(query, project, limit);
53
+ // The `type` filter is applied CLIENT-SIDE (Engram's REST search exposes no
54
+ // server-side type predicate). If we only fetched `limit` rows, a real
55
+ // type-matched duplicate sitting at position limit+1 — behind `limit`
56
+ // keyword matches of OTHER types — would be silently dropped before the
57
+ // filter ever sees it. So when a type filter is present we OVER-FETCH from
58
+ // the server (limit * 3, mirroring the Postgres/SQLite adapters'
59
+ // fetchLimit = limit*3 over-fetch), then filter by type and slice back to
60
+ // `limit`. Without a type filter there is nothing to drop, so we fetch
61
+ // exactly `limit`.
62
+ const fetchLimit = type ? limit * 3 : limit;
63
+ const results = await this.client.search(query, project, fetchLimit);
54
64
  let mapped = results.map((obs) => {
55
65
  const row = toMemoryObservationRow(obs);
56
66
  this.trackId(row.id, obs.id);
57
67
  return row;
58
68
  });
59
- // Client-side type filter (Engram may not support it natively)
69
+ // Client-side type filter (Engram may not support it natively), then slice
70
+ // back to the caller's requested `limit` — we over-fetched only to absorb
71
+ // other-typed rows ahead of the matches, never to return MORE than asked.
60
72
  if (type) {
61
- mapped = mapped.filter((r) => r.type === type);
73
+ mapped = mapped.filter((r) => r.type === type).slice(0, limit);
62
74
  }
63
75
  return mapped;
64
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"engram.js","sourceRoot":"","sources":["../../src/memory/engram.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engram.js","sourceRoot":"","sources":["../../src/memory/engram.ts"],"names":[],"mappings":"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"}
@@ -44,4 +44,161 @@ export declare function buildSearchQuery(fileList: string[], ignoredSegments?: S
44
44
  * @returns Formatted memory context string, or null
45
45
  */
46
46
  export declare function searchMemoryForContext(storage: MemoryStorage, project: string, fileList: string[]): Promise<string | null>;
47
+ /** Maximum number of keyword terms to include in an issue dedup query. */
48
+ export declare const MAX_ISSUE_SEARCH_TERMS = 12;
49
+ /**
50
+ * Hard cap on the length of untrusted issue text fed into keyword extraction.
51
+ *
52
+ * Issue title+body is attacker-controlled (anyone can open an issue) and enters
53
+ * {@link stripCode} / {@link extractIssueTerms} / {@link tokenizeIssueText} with
54
+ * no natural bound. Keyword extraction only needs a small prefix to find salient
55
+ * terms, so we truncate before ANY scanning runs — this is a defense-in-depth
56
+ * DoS guard (paired with the linear-time fence stripper) so no pathological
57
+ * input can pin the event loop. 10k chars is far more than enough signal for a
58
+ * keyword query; the excess is dropped.
59
+ */
60
+ export declare const MAX_ISSUE_TEXT_LENGTH = 10000;
61
+ /**
62
+ * Observation type under which triaged issues are persisted in memory.
63
+ *
64
+ * SHARED CONSTANT — dedup scopes its memory search to THIS type so it only
65
+ * matches prior issue-origin observations, not arbitrary memory (patterns,
66
+ * bugfixes, PR notes). Phase 4's save-path MUST persist every triaged issue
67
+ * under EXACTLY this `type`, or dedup will find nothing.
68
+ *
69
+ * CARRY-FORWARD NOTE (Phase 4): when the ingestion worker saves a triaged issue
70
+ * via `storage.saveObservation`, set `type: ISSUE_TRIAGE_OBSERVATION_TYPE`.
71
+ * Until that save-path lands, `findIssueDuplicates` will correctly return an
72
+ * empty, non-duplicate result (there is nothing of this type to match) — that
73
+ * is EXPECTED, not a bug.
74
+ */
75
+ export declare const ISSUE_TRIAGE_OBSERVATION_TYPE = "issue-triage";
76
+ /**
77
+ * Conservative dedup similarity threshold, in [0,1].
78
+ *
79
+ * A candidate is treated as a hard DUPLICATE only when its KEYWORD-OVERLAP
80
+ * similarity to the issue (see {@link issueOverlapScore}) is at or above this
81
+ * value. Weak matches are still surfaced as candidates (they become
82
+ * `memoryContext` for the agent + `dedupMatches` on the draft) but MUST NOT
83
+ * block: a false-positive dedup would silently bury a legitimate new issue.
84
+ *
85
+ * WHY KEYWORD OVERLAP (not the adapter's bm25/ts_rank `relevanceScore`):
86
+ * the three storage backends expose incomparable native signals — SQLite bm25
87
+ * (unbounded), Postgres ts_rank (small positive), and Engram NONE at all
88
+ * (its REST search returns no score). Gating on `relevanceScore` would give a
89
+ * single threshold three different meanings and silently DISABLE dedup on
90
+ * Engram. Instead we gate on a backend-AGNOSTIC Jaccard overlap of the dedup
91
+ * query terms against the candidate's title+content — identical math for all
92
+ * three backends, so one absolute threshold is genuinely meaningful and
93
+ * comparable. (The adapter `relevanceScore` is still surfaced on rows as
94
+ * telemetry and could graduate to the gate if Engram ever exposes scores.)
95
+ *
96
+ * 0.6 = "≥60% of the issue's distinctive keywords also appear in the prior
97
+ * observation". This is intentionally conservative: it prefers FALSE NEGATIVES
98
+ * (miss a dup → the agent/human still sees the candidate as context) over
99
+ * FALSE POSITIVES (wrongly suppress analysis of a real new issue). Tune with
100
+ * real issues. NOTE: re-picked from the old 0.6-on-decay-`strength` value,
101
+ * which gated on pure recency and was meaningless as relevance.
102
+ *
103
+ * SHORT-QUERY DEGRADATION (known v1 limitation): the overlap score is a COARSE
104
+ * step function when the query has few distinctive terms. With a 1-term query a
105
+ * single shared token yields score 1.0 (a guaranteed false-positive on the
106
+ * gate); with 2 terms the only scores possible are 0 / 0.5 / 1.0, so 0.6
107
+ * collapses to "share both terms". To avoid auto-suppressing a real issue on too
108
+ * little signal, {@link findIssueDuplicates} additionally requires the query to
109
+ * carry at least {@link MIN_DEDUP_QUERY_TERMS} distinctive terms before it will
110
+ * EVER set `isDuplicate`. A 1-term query therefore never auto-flags — it still
111
+ * SURFACES candidates (they appear in `matches` as context for the agent/human),
112
+ * it just never hard-blocks. (The proper fix is IDF/semantic similarity in a
113
+ * later phase; the term-count floor is the conservative v1 guard.)
114
+ */
115
+ export declare const DEDUP_SCORE_THRESHOLD = 0.6;
116
+ /**
117
+ * Minimum number of distinctive query terms required before issue dedup will set
118
+ * `isDuplicate` (hard-block). Below this floor the keyword-overlap score carries
119
+ * too little signal — a 1-term query flags on a single shared token (1.0) — so
120
+ * dedup only SURFACES candidates as context and never auto-suppresses. See the
121
+ * SHORT-QUERY DEGRADATION note on {@link DEDUP_SCORE_THRESHOLD}.
122
+ */
123
+ export declare const MIN_DEDUP_QUERY_TERMS = 2;
124
+ /**
125
+ * Build a keyword search query from an issue's title + body.
126
+ *
127
+ * Pipeline: strip code → lowercase → split on non-word chars → drop stopwords
128
+ * and short tokens → dedupe (preserving first-seen order) → cap at
129
+ * {@link MAX_ISSUE_SEARCH_TERMS}. Title terms come first so the most salient
130
+ * keywords survive the cap.
131
+ *
132
+ * @param issueTitle - The issue title (untrusted prose).
133
+ * @param issueBody - The issue body (untrusted markdown prose).
134
+ * @returns A space-joined keyword query, or '' when no useful terms remain.
135
+ *
136
+ * @example
137
+ * buildIssueSearchQuery('Login button throws TypeError on Safari', '…')
138
+ * → "login button throws typeerror safari …"
139
+ */
140
+ export declare function buildIssueSearchQuery(issueTitle: string, issueBody: string): string;
141
+ /**
142
+ * A candidate duplicate surfaced by issue dedup.
143
+ *
144
+ * NOTE: structurally identical to `IssueDedupMatch` in the db package
145
+ * (`ghagga-db` schema.ts:189). We do NOT import that type — `packages/core`
146
+ * has no dependency on the db package, and adding one for a 3-field shape would
147
+ * introduce a new core→db coupling edge (mirrors the Phase 2 `IssueTriageSource`
148
+ * decision). TypeScript's structural typing makes `IssueDedupMatch[]` here
149
+ * assignable to the db `IssueDedupMatch[]` at the Phase 4 worker boundary.
150
+ */
151
+ export interface IssueDedupMatch {
152
+ /** Matched memory observation id. */
153
+ observationId: number;
154
+ /** Matched observation title (for the draft's "likely duplicate" citation). */
155
+ title: string;
156
+ /**
157
+ * Match score in [0,1] — the backend-AGNOSTIC keyword-overlap similarity
158
+ * between the issue's dedup query terms and this observation's title+content
159
+ * (see {@link issueOverlapScore}). This is the signal {@link DEDUP_SCORE_THRESHOLD}
160
+ * gates on. It is NOT the adapter's `relevanceScore` (bm25/ts_rank), which is
161
+ * incomparable across backends and absent on Engram.
162
+ */
163
+ score: number;
164
+ /**
165
+ * The adapter's native keyword RELEVANCE for this row (saturating bm25/ts_rank
166
+ * → [0,1]), passed through for observability/telemetry. Undefined on backends
167
+ * that expose no relevance score (Engram). NOT used by the dedup gate.
168
+ */
169
+ relevanceScore?: number;
170
+ }
171
+ /** Result of an issue dedup pass. */
172
+ export interface IssueDedupResult {
173
+ /** The keyword query that was searched ('' when issue text was degenerate). */
174
+ query: string;
175
+ /** Candidate matches, ordered by score descending. May be empty. */
176
+ matches: IssueDedupMatch[];
177
+ /**
178
+ * True ONLY when the top match's keyword-overlap score ≥
179
+ * {@link DEDUP_SCORE_THRESHOLD} AND the query carried at least
180
+ * {@link MIN_DEDUP_QUERY_TERMS} distinctive terms (the short-query guard — a
181
+ * 1-term query never auto-flags). Weak/under-signalled matches are still
182
+ * returned in `matches` but never set this flag — the worker uses this to
183
+ * decide a DUPLICATE draft vs. continuing to full analysis.
184
+ */
185
+ isDuplicate: boolean;
186
+ }
187
+ /**
188
+ * Search memory for issues similar to the given one, using a keyword query
189
+ * built from the issue title + body.
190
+ *
191
+ * Conservative by design: it NEVER hard-blocks on weak similarity. It returns
192
+ * all candidate matches (so the agent can cite them as context), but only flags
193
+ * `isDuplicate` when the strongest match clears {@link DEDUP_SCORE_THRESHOLD}.
194
+ * Like {@link searchMemoryForContext}, it degrades gracefully — storage errors
195
+ * or a missing backend yield an empty, non-duplicate result rather than throwing
196
+ * (the triage pipeline must never crash on optional memory).
197
+ *
198
+ * @param storage - Memory storage backend (may be null/undefined → empty result).
199
+ * @param project - Project identifier (e.g., "owner/repo").
200
+ * @param issueTitle - Issue title (untrusted).
201
+ * @param issueBody - Issue body (untrusted).
202
+ */
203
+ export declare function findIssueDuplicates(storage: MemoryStorage, project: string, issueTitle: string, issueBody: string): Promise<IssueDedupResult>;
47
204
  //# sourceMappingURL=search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/memory/search.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAKnC;;;GAGG;AACH,eAAO,MAAM,wBAAwB,aAqBnC,CAAC;AAaH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAAE,EAClB,eAAe,GAAE,GAAG,CAAC,MAAM,CAA4B,GACtD,MAAM,CAsBR;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6BxB"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/memory/search.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAwB,aAAa,EAAE,MAAM,aAAa,CAAC;AAKvE,4DAA4D;AAC5D,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAKnC;;;GAGG;AACH,eAAO,MAAM,wBAAwB,aAqBnC,CAAC;AAaH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAAE,EAClB,eAAe,GAAE,GAAG,CAAC,MAAM,CAA4B,GACtD,MAAM,CAsBR;AAID;;;;;;;;;;GAUG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6BxB;AAgBD,0EAA0E;AAC1E,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAKzC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,6BAA6B,iBAAiB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAoJvC;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CASnF;AAgFD;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,qCAAqC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B;;;;;;;OAOG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAgBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAwD3B"}