@traqr/memory 0.1.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.
- package/README.md +135 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/auth.d.ts +18 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +31 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/auto-derive.d.ts +35 -0
- package/dist/lib/auto-derive.js +261 -0
- package/dist/lib/auto-derive.js.map +1 -0
- package/dist/lib/borderline.d.ts +26 -0
- package/dist/lib/borderline.js +121 -0
- package/dist/lib/borderline.js.map +1 -0
- package/dist/lib/client.d.ts +28 -0
- package/dist/lib/client.d.ts.map +1 -0
- package/dist/lib/client.js +60 -0
- package/dist/lib/client.js.map +1 -0
- package/dist/lib/context.d.ts +38 -0
- package/dist/lib/context.d.ts.map +1 -0
- package/dist/lib/context.js +334 -0
- package/dist/lib/context.js.map +1 -0
- package/dist/lib/embeddings.d.ts +60 -0
- package/dist/lib/embeddings.d.ts.map +1 -0
- package/dist/lib/embeddings.js +229 -0
- package/dist/lib/embeddings.js.map +1 -0
- package/dist/lib/entity-pipeline.d.ts +23 -0
- package/dist/lib/entity-pipeline.js +151 -0
- package/dist/lib/entity-pipeline.js.map +1 -0
- package/dist/lib/formatting.d.ts +13 -0
- package/dist/lib/formatting.d.ts.map +1 -0
- package/dist/lib/formatting.js +60 -0
- package/dist/lib/formatting.js.map +1 -0
- package/dist/lib/learning-extractor.d.ts +144 -0
- package/dist/lib/learning-extractor.d.ts.map +1 -0
- package/dist/lib/learning-extractor.js +921 -0
- package/dist/lib/learning-extractor.js.map +1 -0
- package/dist/lib/lifecycle.d.ts +45 -0
- package/dist/lib/lifecycle.js +84 -0
- package/dist/lib/lifecycle.js.map +1 -0
- package/dist/lib/memory.d.ts +128 -0
- package/dist/lib/memory.d.ts.map +1 -0
- package/dist/lib/memory.js +590 -0
- package/dist/lib/memory.js.map +1 -0
- package/dist/lib/quality-gate.d.ts +32 -0
- package/dist/lib/quality-gate.js +158 -0
- package/dist/lib/quality-gate.js.map +1 -0
- package/dist/lib/quality-gate.test.d.ts +7 -0
- package/dist/lib/quality-gate.test.js +75 -0
- package/dist/lib/quality-gate.test.js.map +1 -0
- package/dist/lib/rerank.d.ts +22 -0
- package/dist/lib/rerank.js +61 -0
- package/dist/lib/rerank.js.map +1 -0
- package/dist/lib/retrieval.d.ts +75 -0
- package/dist/lib/retrieval.js +380 -0
- package/dist/lib/retrieval.js.map +1 -0
- package/dist/migrate.d.ts +17 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +81 -0
- package/dist/migrate.js.map +1 -0
- package/dist/routes/analyze-codebase.d.ts +9 -0
- package/dist/routes/analyze-codebase.d.ts.map +1 -0
- package/dist/routes/analyze-codebase.js +70 -0
- package/dist/routes/analyze-codebase.js.map +1 -0
- package/dist/routes/analyze-voice.d.ts +9 -0
- package/dist/routes/analyze-voice.d.ts.map +1 -0
- package/dist/routes/analyze-voice.js +63 -0
- package/dist/routes/analyze-voice.js.map +1 -0
- package/dist/routes/assemble-context.d.ts +9 -0
- package/dist/routes/assemble-context.d.ts.map +1 -0
- package/dist/routes/assemble-context.js +68 -0
- package/dist/routes/assemble-context.js.map +1 -0
- package/dist/routes/bootstrap.d.ts +12 -0
- package/dist/routes/bootstrap.d.ts.map +1 -0
- package/dist/routes/bootstrap.js +102 -0
- package/dist/routes/bootstrap.js.map +1 -0
- package/dist/routes/browse.d.ts +11 -0
- package/dist/routes/browse.js +85 -0
- package/dist/routes/browse.js.map +1 -0
- package/dist/routes/capture-thought.d.ts +13 -0
- package/dist/routes/capture-thought.d.ts.map +1 -0
- package/dist/routes/capture-thought.js +178 -0
- package/dist/routes/capture-thought.js.map +1 -0
- package/dist/routes/capture.d.ts +13 -0
- package/dist/routes/capture.d.ts.map +1 -0
- package/dist/routes/capture.js +86 -0
- package/dist/routes/capture.js.map +1 -0
- package/dist/routes/cite.d.ts +9 -0
- package/dist/routes/cite.d.ts.map +1 -0
- package/dist/routes/cite.js +49 -0
- package/dist/routes/cite.js.map +1 -0
- package/dist/routes/crud.d.ts +11 -0
- package/dist/routes/crud.d.ts.map +1 -0
- package/dist/routes/crud.js +176 -0
- package/dist/routes/crud.js.map +1 -0
- package/dist/routes/dashboard.d.ts +9 -0
- package/dist/routes/dashboard.d.ts.map +1 -0
- package/dist/routes/dashboard.js +85 -0
- package/dist/routes/dashboard.js.map +1 -0
- package/dist/routes/entity-cron.d.ts +8 -0
- package/dist/routes/entity-cron.js +31 -0
- package/dist/routes/entity-cron.js.map +1 -0
- package/dist/routes/export.d.ts +8 -0
- package/dist/routes/export.d.ts.map +1 -0
- package/dist/routes/export.js +69 -0
- package/dist/routes/export.js.map +1 -0
- package/dist/routes/extract-pr-learnings.d.ts +12 -0
- package/dist/routes/extract-pr-learnings.d.ts.map +1 -0
- package/dist/routes/extract-pr-learnings.js +127 -0
- package/dist/routes/extract-pr-learnings.js.map +1 -0
- package/dist/routes/forget-cron.d.ts +9 -0
- package/dist/routes/forget-cron.js +30 -0
- package/dist/routes/forget-cron.js.map +1 -0
- package/dist/routes/learnings.d.ts +9 -0
- package/dist/routes/learnings.d.ts.map +1 -0
- package/dist/routes/learnings.js +237 -0
- package/dist/routes/learnings.js.map +1 -0
- package/dist/routes/pulse.d.ts +9 -0
- package/dist/routes/pulse.d.ts.map +1 -0
- package/dist/routes/pulse.js +133 -0
- package/dist/routes/pulse.js.map +1 -0
- package/dist/routes/search.d.ts +8 -0
- package/dist/routes/search.d.ts.map +1 -0
- package/dist/routes/search.js +107 -0
- package/dist/routes/search.js.map +1 -0
- package/dist/routes/store.d.ts +8 -0
- package/dist/routes/store.d.ts.map +1 -0
- package/dist/routes/store.js +89 -0
- package/dist/routes/store.js.map +1 -0
- package/dist/routes/sync.d.ts +12 -0
- package/dist/routes/sync.d.ts.map +1 -0
- package/dist/routes/sync.js +83 -0
- package/dist/routes/sync.js.map +1 -0
- package/dist/routes/voice-profile.d.ts +9 -0
- package/dist/routes/voice-profile.d.ts.map +1 -0
- package/dist/routes/voice-profile.js +124 -0
- package/dist/routes/voice-profile.js.map +1 -0
- package/dist/server.d.ts +37 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +99 -0
- package/dist/server.js.map +1 -0
- package/dist/vectordb/index.d.ts +17 -0
- package/dist/vectordb/index.d.ts.map +1 -0
- package/dist/vectordb/index.js +39 -0
- package/dist/vectordb/index.js.map +1 -0
- package/dist/vectordb/supabase.d.ts +62 -0
- package/dist/vectordb/supabase.d.ts.map +1 -0
- package/dist/vectordb/supabase.js +711 -0
- package/dist/vectordb/supabase.js.map +1 -0
- package/dist/vectordb/types.d.ts +217 -0
- package/dist/vectordb/types.d.ts.map +1 -0
- package/dist/vectordb/types.js +28 -0
- package/dist/vectordb/types.js.map +1 -0
- package/package.json +49 -0
- package/setup.sql +1037 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learning Extractor — Portable
|
|
3
|
+
*
|
|
4
|
+
* Auto-extract learnings from PRs, sessions, codebases, and voice samples.
|
|
5
|
+
* Uses OpenAI for extraction, stores in @traqr/memory.
|
|
6
|
+
*
|
|
7
|
+
* Portable version: no NookTraqr-specific imports. Uses package-internal
|
|
8
|
+
* memory operations and env-based project identity.
|
|
9
|
+
*/
|
|
10
|
+
import type { MemoryCategory } from '../vectordb/types.js';
|
|
11
|
+
import type { MemorySearchResult } from '../vectordb/types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the current project slug for memory tagging.
|
|
14
|
+
* Checks env var first (set by daemon/templates), falls back to 'default'.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getSourceProject(): string;
|
|
17
|
+
export interface PRContext {
|
|
18
|
+
prNumber: number;
|
|
19
|
+
title: string;
|
|
20
|
+
filesChanged: string[];
|
|
21
|
+
diffSummary?: string;
|
|
22
|
+
templatePath?: string;
|
|
23
|
+
description?: string;
|
|
24
|
+
}
|
|
25
|
+
export type SuggestedLayer = 'vector_db' | 'claude_memory' | 'claude_md';
|
|
26
|
+
export interface ExtractedLearning {
|
|
27
|
+
content: string;
|
|
28
|
+
category: MemoryCategory;
|
|
29
|
+
tags: string[];
|
|
30
|
+
confidence: number;
|
|
31
|
+
suggestedLayer?: SuggestedLayer;
|
|
32
|
+
}
|
|
33
|
+
export interface ExtractionResult {
|
|
34
|
+
memoriesStored: number;
|
|
35
|
+
memoriesDeduplicated: number;
|
|
36
|
+
learnings: ExtractedLearning[];
|
|
37
|
+
errors: string[];
|
|
38
|
+
layerSuggestions: Array<{
|
|
39
|
+
content: string;
|
|
40
|
+
layer: SuggestedLayer;
|
|
41
|
+
reason: string;
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
export declare function extractLearningsFromPR(context: PRContext): Promise<ExtractionResult>;
|
|
45
|
+
export declare function batchExtractLearnings(prs: PRContext[], options?: {
|
|
46
|
+
delayMs?: number;
|
|
47
|
+
onProgress?: (completed: number, total: number) => void;
|
|
48
|
+
}): Promise<{
|
|
49
|
+
totalMemories: number;
|
|
50
|
+
prResults: Map<number, ExtractionResult>;
|
|
51
|
+
}>;
|
|
52
|
+
export declare function submitManualLearning(content: string, category: MemoryCategory, tags: string[], context?: {
|
|
53
|
+
topic?: string;
|
|
54
|
+
templatePath?: string;
|
|
55
|
+
sessionId?: string;
|
|
56
|
+
}): Promise<{
|
|
57
|
+
success: boolean;
|
|
58
|
+
memoryId?: string;
|
|
59
|
+
error?: string;
|
|
60
|
+
}>;
|
|
61
|
+
export declare function extractFromConversation(conversationContent: string, context?: {
|
|
62
|
+
topic?: string;
|
|
63
|
+
templatePath?: string;
|
|
64
|
+
}): Promise<ExtractedLearning[]>;
|
|
65
|
+
export interface SessionDiffContext {
|
|
66
|
+
slot: string;
|
|
67
|
+
branch: string;
|
|
68
|
+
task?: string;
|
|
69
|
+
diffSummary: string;
|
|
70
|
+
diffContent?: string;
|
|
71
|
+
filesChanged: string[];
|
|
72
|
+
commitMessages: string[];
|
|
73
|
+
}
|
|
74
|
+
export interface SessionExtractionResult {
|
|
75
|
+
memoriesStored: number;
|
|
76
|
+
memoriesDeduplicated: number;
|
|
77
|
+
learnings: ExtractedLearning[];
|
|
78
|
+
errors: string[];
|
|
79
|
+
contradictions?: Array<{
|
|
80
|
+
newLearning: string;
|
|
81
|
+
conflictsWith: string;
|
|
82
|
+
conflictId?: string;
|
|
83
|
+
}>;
|
|
84
|
+
layerSuggestions: Array<{
|
|
85
|
+
content: string;
|
|
86
|
+
layer: SuggestedLayer;
|
|
87
|
+
reason: string;
|
|
88
|
+
}>;
|
|
89
|
+
}
|
|
90
|
+
export declare function extractFromSessionDiff(context: SessionDiffContext): Promise<SessionExtractionResult>;
|
|
91
|
+
export interface PlanContext {
|
|
92
|
+
planId: string;
|
|
93
|
+
title: string;
|
|
94
|
+
planContent: string;
|
|
95
|
+
outcome: 'success' | 'partial' | 'failed';
|
|
96
|
+
prNumber?: number;
|
|
97
|
+
filesPlanned: string[];
|
|
98
|
+
filesActual: string[];
|
|
99
|
+
buildPassed: boolean;
|
|
100
|
+
}
|
|
101
|
+
export declare function extractLearningsFromPlan(context: PlanContext): Promise<SessionExtractionResult>;
|
|
102
|
+
export interface CodebaseAnalysisContext {
|
|
103
|
+
analysisType: 'component-patterns' | 'design-system' | 'state-management' | 'error-handling' | 'api-patterns' | 'naming-conventions' | 'typescript-patterns' | 'animation-patterns' | 'layout-patterns' | 'performance-patterns' | 'full';
|
|
104
|
+
fileSamples: {
|
|
105
|
+
path: string;
|
|
106
|
+
content: string;
|
|
107
|
+
}[];
|
|
108
|
+
configFiles?: {
|
|
109
|
+
path: string;
|
|
110
|
+
content: string;
|
|
111
|
+
}[];
|
|
112
|
+
}
|
|
113
|
+
export interface CodebaseAnalysisResult {
|
|
114
|
+
memoriesStored: number;
|
|
115
|
+
memoriesDeduplicated: number;
|
|
116
|
+
learnings: ExtractedLearning[];
|
|
117
|
+
errors: string[];
|
|
118
|
+
analysisType: string;
|
|
119
|
+
}
|
|
120
|
+
export declare function extractFromCodebaseAnalysis(context: CodebaseAnalysisContext): Promise<CodebaseAnalysisResult>;
|
|
121
|
+
export interface ContradictionResult {
|
|
122
|
+
isContradiction: boolean;
|
|
123
|
+
conflictsWith?: string;
|
|
124
|
+
conflictId?: string;
|
|
125
|
+
similarity?: number;
|
|
126
|
+
}
|
|
127
|
+
export declare function detectContradictions(newLearning: string, existingMemories?: MemorySearchResult[]): Promise<ContradictionResult>;
|
|
128
|
+
export type VoiceAnalysisType = 'user-facing' | 'business' | 'technical' | 'social' | 'brand' | 'full';
|
|
129
|
+
export interface VoiceAnalysisContext {
|
|
130
|
+
analysisType: VoiceAnalysisType;
|
|
131
|
+
writingSamples: {
|
|
132
|
+
label: string;
|
|
133
|
+
content: string;
|
|
134
|
+
}[];
|
|
135
|
+
}
|
|
136
|
+
export interface VoiceAnalysisResult {
|
|
137
|
+
memoriesStored: number;
|
|
138
|
+
memoriesDeduplicated: number;
|
|
139
|
+
learnings: ExtractedLearning[];
|
|
140
|
+
errors: string[];
|
|
141
|
+
analysisType: string;
|
|
142
|
+
}
|
|
143
|
+
export declare function extractVoiceTraits(context: VoiceAnalysisContext): Promise<VoiceAnalysisResult>;
|
|
144
|
+
export declare function formatExtractionResult(result: ExtractionResult): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learning-extractor.d.ts","sourceRoot":"","sources":["../../src/lib/learning-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAY9D;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAMD,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,eAAe,GAAG,WAAW,CAAA;AAExE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,cAAc,CAAA;IACxB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,iBAAiB,EAAE,CAAA;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,gBAAgB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpF;AAkMD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,gBAAgB,CAAC,CA+D3B;AAkED,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,SAAS,EAAE,EAChB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnD,GACL,OAAO,CAAC;IACT,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;CACzC,CAAC,CAmBD;AAMD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GACA,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAsBlE;AAMD,wBAAsB,uBAAuB,CAC3C,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,GACA,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA0D9B;AAMD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,iBAAiB,EAAE,CAAA;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,CAAA;QACrB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;IACF,gBAAgB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACpF;AAoCD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,uBAAuB,CAAC,CAiHlC;AAMD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,OAAO,CAAA;CACrB;AA+BD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,uBAAuB,CAAC,CAyFlC;AAMD,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,oBAAoB,GAAG,eAAe,GAAG,kBAAkB,GACrE,gBAAgB,GAAG,cAAc,GAAG,oBAAoB,GACxD,qBAAqB,GAAG,oBAAoB,GAAG,iBAAiB,GAChE,sBAAsB,GAAG,MAAM,CAAA;IACnC,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAChD,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAClD;AAED,MAAM,WAAW,sBAAsB;IACrC,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,iBAAiB,EAAE,CAAA;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;CACrB;AA2CD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,CAAC,CA4FjC;AAaD,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAuB9B;AAMD,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,UAAU,GACV,WAAW,GACX,QAAQ,GACR,OAAO,GACP,MAAM,CAAA;AAEV,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,iBAAiB,CAAA;IAC/B,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACrD;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAA;IACtB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,iBAAiB,EAAE,CAAA;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;CACrB;AAsCD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAuF9B;AAMD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAuCvE"}
|