@sashabogi/foundation 0.1.5 → 0.1.7
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/dist/cli/setup-wizard.d.ts +30 -0
- package/dist/cli/setup-wizard.d.ts.map +1 -0
- package/dist/cli/setup-wizard.js +1645 -0
- package/dist/cli/setup-wizard.js.map +1 -0
- package/dist/cli/test-connection.d.ts +76 -0
- package/dist/cli/test-connection.d.ts.map +1 -0
- package/dist/cli/test-connection.js +697 -0
- package/dist/cli/test-connection.js.map +1 -0
- package/dist/cli.d.ts +3 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +133 -5
- package/dist/cli.js.map +1 -1
- package/dist/providers/anthropic.d.ts +178 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +514 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +154 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +227 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/deepseek.d.ts +23 -0
- package/dist/providers/deepseek.d.ts.map +1 -0
- package/dist/providers/deepseek.js +31 -0
- package/dist/providers/deepseek.js.map +1 -0
- package/dist/providers/fireworks.d.ts +23 -0
- package/dist/providers/fireworks.d.ts.map +1 -0
- package/dist/providers/fireworks.js +31 -0
- package/dist/providers/fireworks.js.map +1 -0
- package/dist/providers/gemini.d.ts +85 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +414 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/groq.d.ts +23 -0
- package/dist/providers/groq.d.ts.map +1 -0
- package/dist/providers/groq.js +31 -0
- package/dist/providers/groq.js.map +1 -0
- package/dist/providers/index.d.ts +23 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +27 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/kimi-code.d.ts +32 -0
- package/dist/providers/kimi-code.d.ts.map +1 -0
- package/dist/providers/kimi-code.js +46 -0
- package/dist/providers/kimi-code.js.map +1 -0
- package/dist/providers/kimi.d.ts +19 -0
- package/dist/providers/kimi.d.ts.map +1 -0
- package/dist/providers/kimi.js +27 -0
- package/dist/providers/kimi.js.map +1 -0
- package/dist/providers/manager.d.ts +144 -0
- package/dist/providers/manager.d.ts.map +1 -0
- package/dist/providers/manager.js +279 -0
- package/dist/providers/manager.js.map +1 -0
- package/dist/providers/ollama.d.ts +83 -0
- package/dist/providers/ollama.d.ts.map +1 -0
- package/dist/providers/ollama.js +450 -0
- package/dist/providers/ollama.js.map +1 -0
- package/dist/providers/openai.d.ts +91 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +445 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/openrouter.d.ts +23 -0
- package/dist/providers/openrouter.d.ts.map +1 -0
- package/dist/providers/openrouter.js +31 -0
- package/dist/providers/openrouter.js.map +1 -0
- package/dist/providers/perplexity.d.ts +34 -0
- package/dist/providers/perplexity.d.ts.map +1 -0
- package/dist/providers/perplexity.js +58 -0
- package/dist/providers/perplexity.js.map +1 -0
- package/dist/providers/together.d.ts +23 -0
- package/dist/providers/together.d.ts.map +1 -0
- package/dist/providers/together.js +31 -0
- package/dist/providers/together.js.map +1 -0
- package/dist/providers/types.d.ts +229 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +73 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/providers/zai.d.ts +19 -0
- package/dist/providers/zai.d.ts.map +1 -0
- package/dist/providers/zai.js +27 -0
- package/dist/providers/zai.js.map +1 -0
- package/dist/services/provider.service.d.ts +28 -0
- package/dist/services/provider.service.d.ts.map +1 -1
- package/dist/services/provider.service.js +137 -13
- package/dist/services/provider.service.js.map +1 -1
- package/dist/tools/demerzel/engine.d.ts +67 -0
- package/dist/tools/demerzel/engine.d.ts.map +1 -0
- package/dist/tools/demerzel/engine.js +401 -0
- package/dist/tools/demerzel/engine.js.map +1 -0
- package/dist/tools/demerzel/enhanced-snapshot.d.ts +67 -0
- package/dist/tools/demerzel/enhanced-snapshot.d.ts.map +1 -0
- package/dist/tools/demerzel/enhanced-snapshot.js +481 -0
- package/dist/tools/demerzel/enhanced-snapshot.js.map +1 -0
- package/dist/tools/demerzel/index.d.ts +11 -0
- package/dist/tools/demerzel/index.d.ts.map +1 -1
- package/dist/tools/demerzel/index.js +656 -85
- package/dist/tools/demerzel/index.js.map +1 -1
- package/dist/tools/demerzel/prompts.d.ts +26 -0
- package/dist/tools/demerzel/prompts.d.ts.map +1 -0
- package/dist/tools/demerzel/prompts.js +181 -0
- package/dist/tools/demerzel/prompts.js.map +1 -0
- package/dist/tools/demerzel/semantic-search.d.ts +54 -0
- package/dist/tools/demerzel/semantic-search.d.ts.map +1 -0
- package/dist/tools/demerzel/semantic-search.js +205 -0
- package/dist/tools/demerzel/semantic-search.js.map +1 -0
- package/dist/tools/demerzel/snapshot.d.ts +30 -0
- package/dist/tools/demerzel/snapshot.d.ts.map +1 -0
- package/dist/tools/demerzel/snapshot.js +169 -0
- package/dist/tools/demerzel/snapshot.js.map +1 -0
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/demerzel/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/demerzel/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demerzel RLM Prompts
|
|
3
|
+
*
|
|
4
|
+
* Optimized prompts for codebase understanding that persists across Claude Code sessions.
|
|
5
|
+
*
|
|
6
|
+
* Ported from Argus to Foundation.
|
|
7
|
+
*/
|
|
8
|
+
export declare const NUCLEUS_COMMANDS = "\nCOMMANDS (output ONE per turn):\n(grep \"pattern\") - Find lines matching regex\n(grep \"pattern\" \"i\") - Case-insensitive search\n(count RESULTS) - Count matches\n(take RESULTS n) - First n results\n(filter RESULTS (lambda (x) (match x.line \"pattern\" 0))) - Filter results\n(map RESULTS (lambda (x) x.line)) - Extract just the lines\n\nVARIABLES: RESULTS = last result, _1 _2 _3 = results from turn 1,2,3\n\nTO ANSWER: <<<FINAL>>>your answer<<<END>>>\n";
|
|
9
|
+
export declare const CODEBASE_ANALYSIS_PROMPT = "You are analyzing a SOFTWARE CODEBASE snapshot to help a developer understand it.\n\nThe snapshot contains source files concatenated with \"FILE: ./path/to/file\" markers.\n\n\nCOMMANDS (output ONE per turn):\n(grep \"pattern\") - Find lines matching regex\n(grep \"pattern\" \"i\") - Case-insensitive search\n(count RESULTS) - Count matches\n(take RESULTS n) - First n results\n(filter RESULTS (lambda (x) (match x.line \"pattern\" 0))) - Filter results\n(map RESULTS (lambda (x) x.line)) - Extract just the lines\n\nVARIABLES: RESULTS = last result, _1 _2 _3 = results from turn 1,2,3\n\nTO ANSWER: <<<FINAL>>>your answer<<<END>>>\n\n\n## STRATEGY FOR CODEBASE SNAPSHOTS\n\n**To find modules/directories:**\n(grep \"FILE:.*src/[^/]+/\") - top-level source dirs\n(grep \"FILE:.*mod\\.rs\") - Rust modules\n(grep \"FILE:.*index\\.(ts|js)\") - JS/TS modules\n\n**To find implementations:**\n(grep \"fn function_name\") - Rust functions\n(grep \"function|const.*=>\") - JS functions\n(grep \"class ClassName\") - Classes\n(grep \"struct |type |interface\") - Type definitions\n\n**To understand structure:**\n(grep \"FILE:\") - List all files\n(grep \"use |import |require\") - Find dependencies\n(grep \"pub |export\") - Public APIs\n\n## RULES\n1. Output ONLY a Nucleus command OR a final answer\n2. NO explanations, NO markdown formatting in commands\n3. MUST provide final answer by turn 8\n4. If turn 6+, start summarizing what you found\n\n## EXAMPLE SESSION\nTurn 1: (grep \"FILE:.*src/[^/]+/mod\\.rs\")\nTurn 2: (take RESULTS 15)\nTurn 3: <<<FINAL>>>The codebase has these main modules:\n- src/auth/ - Authentication handling\n- src/api/ - API endpoints\n- src/db/ - Database layer\n...<<<END>>>\n";
|
|
10
|
+
export declare const ARCHITECTURE_PROMPT = "You are generating an ARCHITECTURE SUMMARY of a codebase.\n\n\nCOMMANDS (output ONE per turn):\n(grep \"pattern\") - Find lines matching regex\n(grep \"pattern\" \"i\") - Case-insensitive search\n(count RESULTS) - Count matches\n(take RESULTS n) - First n results\n(filter RESULTS (lambda (x) (match x.line \"pattern\" 0))) - Filter results\n(map RESULTS (lambda (x) x.line)) - Extract just the lines\n\nVARIABLES: RESULTS = last result, _1 _2 _3 = results from turn 1,2,3\n\nTO ANSWER: <<<FINAL>>>your answer<<<END>>>\n\n\n## YOUR TASK\nCreate a summary suitable for CLAUDE.md that helps Claude Code understand this project after context compaction.\n\n## SEARCH STRATEGY (do these in order)\n1. (grep \"FILE:.*mod\\.rs|FILE:.*index\\.(ts|js)\") - Find module entry points\n2. (take RESULTS 20) - Limit results\n3. Based on file paths, provide your summary\n\n## OUTPUT FORMAT\nYour final answer should be structured like:\n\n## Modules\n- **module_name/** - Brief description based on files found\n\n## Key Patterns\n- Pattern observations from the code\n\n## Important Files\n- List key files and their apparent purpose\n\nPROVIDE FINAL ANSWER BY TURN 6.\n";
|
|
11
|
+
export declare const IMPLEMENTATION_PROMPT = "You are finding HOW something works in a codebase.\n\n\nCOMMANDS (output ONE per turn):\n(grep \"pattern\") - Find lines matching regex\n(grep \"pattern\" \"i\") - Case-insensitive search\n(count RESULTS) - Count matches\n(take RESULTS n) - First n results\n(filter RESULTS (lambda (x) (match x.line \"pattern\" 0))) - Filter results\n(map RESULTS (lambda (x) x.line)) - Extract just the lines\n\nVARIABLES: RESULTS = last result, _1 _2 _3 = results from turn 1,2,3\n\nTO ANSWER: <<<FINAL>>>your answer<<<END>>>\n\n\n## STRATEGY\n1. (grep \"FILE:.*keyword\") - Find files related to the concept\n2. (grep \"keyword\") - Find all mentions\n3. (take RESULTS 30) - Limit if too many results\n4. Look for function definitions, structs, classes\n5. PROVIDE FINAL ANSWER based on file paths and code patterns found\n\n## IMPORTANT\n- You have 12 turns maximum\n- By turn 8, START WRITING YOUR FINAL ANSWER\n- Use what you've found - don't keep searching indefinitely\n- It's better to give a partial answer than no answer\n\n## OUTPUT FORMAT\nYour final answer should explain:\n- Which files contain the implementation\n- Key functions/structs/classes involved\n- Basic flow of how it works (based on what you found)\n";
|
|
12
|
+
export declare const COUNT_PROMPT = "You are counting items in a codebase.\n\n\nCOMMANDS (output ONE per turn):\n(grep \"pattern\") - Find lines matching regex\n(grep \"pattern\" \"i\") - Case-insensitive search\n(count RESULTS) - Count matches\n(take RESULTS n) - First n results\n(filter RESULTS (lambda (x) (match x.line \"pattern\" 0))) - Filter results\n(map RESULTS (lambda (x) x.line)) - Extract just the lines\n\nVARIABLES: RESULTS = last result, _1 _2 _3 = results from turn 1,2,3\n\nTO ANSWER: <<<FINAL>>>your answer<<<END>>>\n\n\n## STRATEGY\n1. (grep \"pattern\")\n2. (count RESULTS)\n3. <<<FINAL>>>There are N items matching the pattern.<<<END>>>\n\nTHIS SHOULD TAKE 2-3 TURNS MAXIMUM.\n";
|
|
13
|
+
export declare const SEARCH_PROMPT = "You are searching for specific code.\n\n\nCOMMANDS (output ONE per turn):\n(grep \"pattern\") - Find lines matching regex\n(grep \"pattern\" \"i\") - Case-insensitive search\n(count RESULTS) - Count matches\n(take RESULTS n) - First n results\n(filter RESULTS (lambda (x) (match x.line \"pattern\" 0))) - Filter results\n(map RESULTS (lambda (x) x.line)) - Extract just the lines\n\nVARIABLES: RESULTS = last result, _1 _2 _3 = results from turn 1,2,3\n\nTO ANSWER: <<<FINAL>>>your answer<<<END>>>\n\n\n## STRATEGY\n1. (grep \"pattern\")\n2. (take RESULTS 20) if too many\n3. Report what you found with file paths\n\nPROVIDE FINAL ANSWER BY TURN 4.\n";
|
|
14
|
+
/**
|
|
15
|
+
* Detect query type and select best prompt
|
|
16
|
+
*/
|
|
17
|
+
export declare function selectPrompt(query: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Build system prompt with query-specific guidance
|
|
20
|
+
*/
|
|
21
|
+
export declare function buildSystemPrompt(query: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Get the turn limit based on query type
|
|
24
|
+
*/
|
|
25
|
+
export declare function getTurnLimit(query: string): number;
|
|
26
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/tools/demerzel/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,gBAAgB,ufAY5B,CAAC;AAGF,eAAO,MAAM,wBAAwB,uxDAsCpC,CAAC;AAGF,eAAO,MAAM,mBAAmB,mrCAyB/B,CAAC;AAGF,eAAO,MAAM,qBAAqB,wuCAsBjC,CAAC;AAGF,eAAO,MAAM,YAAY,msBAUxB,CAAC;AAGF,eAAO,MAAM,aAAa,srBAUzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAyBlD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASlD"}
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demerzel RLM Prompts
|
|
3
|
+
*
|
|
4
|
+
* Optimized prompts for codebase understanding that persists across Claude Code sessions.
|
|
5
|
+
*
|
|
6
|
+
* Ported from Argus to Foundation.
|
|
7
|
+
*/
|
|
8
|
+
export const NUCLEUS_COMMANDS = `
|
|
9
|
+
COMMANDS (output ONE per turn):
|
|
10
|
+
(grep "pattern") - Find lines matching regex
|
|
11
|
+
(grep "pattern" "i") - Case-insensitive search
|
|
12
|
+
(count RESULTS) - Count matches
|
|
13
|
+
(take RESULTS n) - First n results
|
|
14
|
+
(filter RESULTS (lambda (x) (match x.line "pattern" 0))) - Filter results
|
|
15
|
+
(map RESULTS (lambda (x) x.line)) - Extract just the lines
|
|
16
|
+
|
|
17
|
+
VARIABLES: RESULTS = last result, _1 _2 _3 = results from turn 1,2,3
|
|
18
|
+
|
|
19
|
+
TO ANSWER: <<<FINAL>>>your answer<<<END>>>
|
|
20
|
+
`;
|
|
21
|
+
// Main system prompt for codebase analysis
|
|
22
|
+
export const CODEBASE_ANALYSIS_PROMPT = `You are analyzing a SOFTWARE CODEBASE snapshot to help a developer understand it.
|
|
23
|
+
|
|
24
|
+
The snapshot contains source files concatenated with "FILE: ./path/to/file" markers.
|
|
25
|
+
|
|
26
|
+
${NUCLEUS_COMMANDS}
|
|
27
|
+
|
|
28
|
+
## STRATEGY FOR CODEBASE SNAPSHOTS
|
|
29
|
+
|
|
30
|
+
**To find modules/directories:**
|
|
31
|
+
(grep "FILE:.*src/[^/]+/") - top-level source dirs
|
|
32
|
+
(grep "FILE:.*mod\\.rs") - Rust modules
|
|
33
|
+
(grep "FILE:.*index\\.(ts|js)") - JS/TS modules
|
|
34
|
+
|
|
35
|
+
**To find implementations:**
|
|
36
|
+
(grep "fn function_name") - Rust functions
|
|
37
|
+
(grep "function|const.*=>") - JS functions
|
|
38
|
+
(grep "class ClassName") - Classes
|
|
39
|
+
(grep "struct |type |interface") - Type definitions
|
|
40
|
+
|
|
41
|
+
**To understand structure:**
|
|
42
|
+
(grep "FILE:") - List all files
|
|
43
|
+
(grep "use |import |require") - Find dependencies
|
|
44
|
+
(grep "pub |export") - Public APIs
|
|
45
|
+
|
|
46
|
+
## RULES
|
|
47
|
+
1. Output ONLY a Nucleus command OR a final answer
|
|
48
|
+
2. NO explanations, NO markdown formatting in commands
|
|
49
|
+
3. MUST provide final answer by turn 8
|
|
50
|
+
4. If turn 6+, start summarizing what you found
|
|
51
|
+
|
|
52
|
+
## EXAMPLE SESSION
|
|
53
|
+
Turn 1: (grep "FILE:.*src/[^/]+/mod\\.rs")
|
|
54
|
+
Turn 2: (take RESULTS 15)
|
|
55
|
+
Turn 3: <<<FINAL>>>The codebase has these main modules:
|
|
56
|
+
- src/auth/ - Authentication handling
|
|
57
|
+
- src/api/ - API endpoints
|
|
58
|
+
- src/db/ - Database layer
|
|
59
|
+
...<<<END>>>
|
|
60
|
+
`;
|
|
61
|
+
// Specialized prompt for architecture questions
|
|
62
|
+
export const ARCHITECTURE_PROMPT = `You are generating an ARCHITECTURE SUMMARY of a codebase.
|
|
63
|
+
|
|
64
|
+
${NUCLEUS_COMMANDS}
|
|
65
|
+
|
|
66
|
+
## YOUR TASK
|
|
67
|
+
Create a summary suitable for CLAUDE.md that helps Claude Code understand this project after context compaction.
|
|
68
|
+
|
|
69
|
+
## SEARCH STRATEGY (do these in order)
|
|
70
|
+
1. (grep "FILE:.*mod\\.rs|FILE:.*index\\.(ts|js)") - Find module entry points
|
|
71
|
+
2. (take RESULTS 20) - Limit results
|
|
72
|
+
3. Based on file paths, provide your summary
|
|
73
|
+
|
|
74
|
+
## OUTPUT FORMAT
|
|
75
|
+
Your final answer should be structured like:
|
|
76
|
+
|
|
77
|
+
## Modules
|
|
78
|
+
- **module_name/** - Brief description based on files found
|
|
79
|
+
|
|
80
|
+
## Key Patterns
|
|
81
|
+
- Pattern observations from the code
|
|
82
|
+
|
|
83
|
+
## Important Files
|
|
84
|
+
- List key files and their apparent purpose
|
|
85
|
+
|
|
86
|
+
PROVIDE FINAL ANSWER BY TURN 6.
|
|
87
|
+
`;
|
|
88
|
+
// Prompt for finding specific implementations
|
|
89
|
+
export const IMPLEMENTATION_PROMPT = `You are finding HOW something works in a codebase.
|
|
90
|
+
|
|
91
|
+
${NUCLEUS_COMMANDS}
|
|
92
|
+
|
|
93
|
+
## STRATEGY
|
|
94
|
+
1. (grep "FILE:.*keyword") - Find files related to the concept
|
|
95
|
+
2. (grep "keyword") - Find all mentions
|
|
96
|
+
3. (take RESULTS 30) - Limit if too many results
|
|
97
|
+
4. Look for function definitions, structs, classes
|
|
98
|
+
5. PROVIDE FINAL ANSWER based on file paths and code patterns found
|
|
99
|
+
|
|
100
|
+
## IMPORTANT
|
|
101
|
+
- You have 12 turns maximum
|
|
102
|
+
- By turn 8, START WRITING YOUR FINAL ANSWER
|
|
103
|
+
- Use what you've found - don't keep searching indefinitely
|
|
104
|
+
- It's better to give a partial answer than no answer
|
|
105
|
+
|
|
106
|
+
## OUTPUT FORMAT
|
|
107
|
+
Your final answer should explain:
|
|
108
|
+
- Which files contain the implementation
|
|
109
|
+
- Key functions/structs/classes involved
|
|
110
|
+
- Basic flow of how it works (based on what you found)
|
|
111
|
+
`;
|
|
112
|
+
// Prompt for counting/quantifying
|
|
113
|
+
export const COUNT_PROMPT = `You are counting items in a codebase.
|
|
114
|
+
|
|
115
|
+
${NUCLEUS_COMMANDS}
|
|
116
|
+
|
|
117
|
+
## STRATEGY
|
|
118
|
+
1. (grep "pattern")
|
|
119
|
+
2. (count RESULTS)
|
|
120
|
+
3. <<<FINAL>>>There are N items matching the pattern.<<<END>>>
|
|
121
|
+
|
|
122
|
+
THIS SHOULD TAKE 2-3 TURNS MAXIMUM.
|
|
123
|
+
`;
|
|
124
|
+
// Prompt for quick searches
|
|
125
|
+
export const SEARCH_PROMPT = `You are searching for specific code.
|
|
126
|
+
|
|
127
|
+
${NUCLEUS_COMMANDS}
|
|
128
|
+
|
|
129
|
+
## STRATEGY
|
|
130
|
+
1. (grep "pattern")
|
|
131
|
+
2. (take RESULTS 20) if too many
|
|
132
|
+
3. Report what you found with file paths
|
|
133
|
+
|
|
134
|
+
PROVIDE FINAL ANSWER BY TURN 4.
|
|
135
|
+
`;
|
|
136
|
+
/**
|
|
137
|
+
* Detect query type and select best prompt
|
|
138
|
+
*/
|
|
139
|
+
export function selectPrompt(query) {
|
|
140
|
+
const q = query.toLowerCase();
|
|
141
|
+
// Count queries - fastest
|
|
142
|
+
if (/how many|count|number of|total|how much/.test(q)) {
|
|
143
|
+
return COUNT_PROMPT;
|
|
144
|
+
}
|
|
145
|
+
// Simple search queries
|
|
146
|
+
if (/^(find|search|show|list|where is|locate)\b/.test(q) && q.length < 50) {
|
|
147
|
+
return SEARCH_PROMPT;
|
|
148
|
+
}
|
|
149
|
+
// Architecture/overview queries
|
|
150
|
+
if (/architect|structure|overview|module|organization|main.*component|summar|layout/.test(q)) {
|
|
151
|
+
return ARCHITECTURE_PROMPT;
|
|
152
|
+
}
|
|
153
|
+
// Implementation queries
|
|
154
|
+
if (/how does|how is|implement|work|handle|process|flow/.test(q)) {
|
|
155
|
+
return IMPLEMENTATION_PROMPT;
|
|
156
|
+
}
|
|
157
|
+
// Default
|
|
158
|
+
return CODEBASE_ANALYSIS_PROMPT;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Build system prompt with query-specific guidance
|
|
162
|
+
*/
|
|
163
|
+
export function buildSystemPrompt(query) {
|
|
164
|
+
return selectPrompt(query);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Get the turn limit based on query type
|
|
168
|
+
*/
|
|
169
|
+
export function getTurnLimit(query) {
|
|
170
|
+
const q = query.toLowerCase();
|
|
171
|
+
if (/how many|count/.test(q))
|
|
172
|
+
return 5;
|
|
173
|
+
if (/^(find|search|show|list)\b/.test(q) && q.length < 50)
|
|
174
|
+
return 6;
|
|
175
|
+
if (/architect|overview|structure|module/.test(q))
|
|
176
|
+
return 12;
|
|
177
|
+
if (/how does|how is|implement|work/.test(q))
|
|
178
|
+
return 12; // Implementation needs more
|
|
179
|
+
return 12; // Default
|
|
180
|
+
}
|
|
181
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/tools/demerzel/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;CAY/B,CAAC;AAEF,2CAA2C;AAC3C,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;EAItC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCjB,CAAC;AAEF,gDAAgD;AAChD,MAAM,CAAC,MAAM,mBAAmB,GAAG;;EAEjC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;CAuBjB,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,qBAAqB,GAAG;;EAEnC,gBAAgB;;;;;;;;;;;;;;;;;;;;CAoBjB,CAAC;AAEF,kCAAkC;AAClC,MAAM,CAAC,MAAM,YAAY,GAAG;;EAE1B,gBAAgB;;;;;;;;CAQjB,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,aAAa,GAAG;;EAE3B,gBAAgB;;;;;;;;CAQjB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAE9B,0BAA0B;IAC1B,IAAI,yCAAyC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,wBAAwB;IACxB,IAAI,4CAA4C,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC1E,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,gCAAgC;IAChC,IAAI,gFAAgF,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,yBAAyB;IACzB,IAAI,oDAAoD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAED,UAAU;IACV,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAE9B,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACvC,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,CAAC,CAAC;IACpE,IAAI,qCAAqC,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7D,IAAI,gCAAgC,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC,CAAE,4BAA4B;IAEtF,OAAO,EAAE,CAAC,CAAC,UAAU;AACvB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Search using SQLite FTS5
|
|
3
|
+
*
|
|
4
|
+
* Provides full-text search capabilities for code symbols and content.
|
|
5
|
+
* Uses SQLite's built-in FTS5 for efficient text search without external dependencies.
|
|
6
|
+
*
|
|
7
|
+
* Ported from Argus to Foundation.
|
|
8
|
+
*/
|
|
9
|
+
export interface SearchResult {
|
|
10
|
+
file: string;
|
|
11
|
+
symbol: string;
|
|
12
|
+
content: string;
|
|
13
|
+
type: string;
|
|
14
|
+
rank: number;
|
|
15
|
+
}
|
|
16
|
+
export declare class SemanticIndex {
|
|
17
|
+
private db;
|
|
18
|
+
private initialized;
|
|
19
|
+
constructor(dbPath: string);
|
|
20
|
+
private initialize;
|
|
21
|
+
/**
|
|
22
|
+
* Clear the index and rebuild from scratch
|
|
23
|
+
*/
|
|
24
|
+
clear(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Index a file's symbols and content
|
|
27
|
+
*/
|
|
28
|
+
indexFile(file: string, symbols: Array<{
|
|
29
|
+
name: string;
|
|
30
|
+
content: string;
|
|
31
|
+
type: string;
|
|
32
|
+
}>): void;
|
|
33
|
+
/**
|
|
34
|
+
* Index content from a snapshot file
|
|
35
|
+
*/
|
|
36
|
+
indexFromSnapshot(snapshotPath: string): {
|
|
37
|
+
filesIndexed: number;
|
|
38
|
+
symbolsIndexed: number;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Search the index
|
|
42
|
+
*/
|
|
43
|
+
search(query: string, limit?: number): SearchResult[];
|
|
44
|
+
/**
|
|
45
|
+
* Get index statistics
|
|
46
|
+
*/
|
|
47
|
+
getStats(): {
|
|
48
|
+
totalSymbols: number;
|
|
49
|
+
lastIndexed: string | null;
|
|
50
|
+
snapshotPath: string | null;
|
|
51
|
+
};
|
|
52
|
+
close(): void;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=semantic-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-search.d.ts","sourceRoot":"","sources":["../../../src/tools/demerzel/semantic-search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,MAAM;IAW1B,OAAO,CAAC,UAAU;IAyBlB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IAe9F;;OAEG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IA2GzF;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,YAAY,EAAE;IA6BzD;;OAEG;IACH,QAAQ,IAAI;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAY7F,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Search using SQLite FTS5
|
|
3
|
+
*
|
|
4
|
+
* Provides full-text search capabilities for code symbols and content.
|
|
5
|
+
* Uses SQLite's built-in FTS5 for efficient text search without external dependencies.
|
|
6
|
+
*
|
|
7
|
+
* Ported from Argus to Foundation.
|
|
8
|
+
*/
|
|
9
|
+
import Database from 'better-sqlite3';
|
|
10
|
+
import { existsSync, mkdirSync, readFileSync } from 'fs';
|
|
11
|
+
import { dirname } from 'path';
|
|
12
|
+
export class SemanticIndex {
|
|
13
|
+
db;
|
|
14
|
+
initialized = false;
|
|
15
|
+
constructor(dbPath) {
|
|
16
|
+
// Ensure directory exists
|
|
17
|
+
const dir = dirname(dbPath);
|
|
18
|
+
if (!existsSync(dir)) {
|
|
19
|
+
mkdirSync(dir, { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
this.db = new Database(dbPath);
|
|
22
|
+
this.initialize();
|
|
23
|
+
}
|
|
24
|
+
initialize() {
|
|
25
|
+
if (this.initialized)
|
|
26
|
+
return;
|
|
27
|
+
// Create FTS5 virtual table for code search
|
|
28
|
+
this.db.exec(`
|
|
29
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS code_index USING fts5(
|
|
30
|
+
file,
|
|
31
|
+
symbol,
|
|
32
|
+
content,
|
|
33
|
+
type,
|
|
34
|
+
tokenize='porter unicode61'
|
|
35
|
+
);
|
|
36
|
+
`);
|
|
37
|
+
// Create metadata table
|
|
38
|
+
this.db.exec(`
|
|
39
|
+
CREATE TABLE IF NOT EXISTS index_metadata (
|
|
40
|
+
key TEXT PRIMARY KEY,
|
|
41
|
+
value TEXT
|
|
42
|
+
);
|
|
43
|
+
`);
|
|
44
|
+
this.initialized = true;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Clear the index and rebuild from scratch
|
|
48
|
+
*/
|
|
49
|
+
clear() {
|
|
50
|
+
this.db.exec('DELETE FROM code_index');
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Index a file's symbols and content
|
|
54
|
+
*/
|
|
55
|
+
indexFile(file, symbols) {
|
|
56
|
+
const insert = this.db.prepare(`
|
|
57
|
+
INSERT INTO code_index (file, symbol, content, type)
|
|
58
|
+
VALUES (?, ?, ?, ?)
|
|
59
|
+
`);
|
|
60
|
+
const tx = this.db.transaction(() => {
|
|
61
|
+
for (const sym of symbols) {
|
|
62
|
+
insert.run(file, sym.name, sym.content, sym.type);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
tx();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Index content from a snapshot file
|
|
69
|
+
*/
|
|
70
|
+
indexFromSnapshot(snapshotPath) {
|
|
71
|
+
const content = readFileSync(snapshotPath, 'utf-8');
|
|
72
|
+
this.clear();
|
|
73
|
+
let filesIndexed = 0;
|
|
74
|
+
let symbolsIndexed = 0;
|
|
75
|
+
// Parse files from snapshot
|
|
76
|
+
const fileRegex = /^FILE: \.\/(.+)$/gm;
|
|
77
|
+
const files = [];
|
|
78
|
+
let match;
|
|
79
|
+
while ((match = fileRegex.exec(content)) !== null) {
|
|
80
|
+
if (files.length > 0) {
|
|
81
|
+
files[files.length - 1].end = match.index;
|
|
82
|
+
}
|
|
83
|
+
files.push({ path: match[1], start: match.index, end: content.length });
|
|
84
|
+
}
|
|
85
|
+
// Find metadata start
|
|
86
|
+
const metadataStart = content.indexOf('\nMETADATA:');
|
|
87
|
+
if (metadataStart !== -1 && files.length > 0) {
|
|
88
|
+
files[files.length - 1].end = metadataStart;
|
|
89
|
+
}
|
|
90
|
+
// Index each file
|
|
91
|
+
for (const file of files) {
|
|
92
|
+
const fileContent = content.slice(file.start, file.end);
|
|
93
|
+
const lines = fileContent.split('\n').slice(2); // Skip header
|
|
94
|
+
// Extract symbols (functions, classes, types, exports)
|
|
95
|
+
const symbols = [];
|
|
96
|
+
for (let i = 0; i < lines.length; i++) {
|
|
97
|
+
const line = lines[i];
|
|
98
|
+
// Function definitions
|
|
99
|
+
const funcMatch = line.match(/(?:export\s+)?(?:async\s+)?function\s+(\w+)/);
|
|
100
|
+
if (funcMatch) {
|
|
101
|
+
symbols.push({
|
|
102
|
+
name: funcMatch[1],
|
|
103
|
+
content: lines.slice(i, Math.min(i + 10, lines.length)).join('\n'),
|
|
104
|
+
type: 'function',
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
// Arrow function exports
|
|
108
|
+
const arrowMatch = line.match(/(?:export\s+)?const\s+(\w+)\s*=\s*(?:async\s+)?\([^)]*\)\s*=>/);
|
|
109
|
+
if (arrowMatch) {
|
|
110
|
+
symbols.push({
|
|
111
|
+
name: arrowMatch[1],
|
|
112
|
+
content: lines.slice(i, Math.min(i + 10, lines.length)).join('\n'),
|
|
113
|
+
type: 'function',
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
// Class definitions
|
|
117
|
+
const classMatch = line.match(/(?:export\s+)?class\s+(\w+)/);
|
|
118
|
+
if (classMatch) {
|
|
119
|
+
symbols.push({
|
|
120
|
+
name: classMatch[1],
|
|
121
|
+
content: lines.slice(i, Math.min(i + 15, lines.length)).join('\n'),
|
|
122
|
+
type: 'class',
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
// Type/Interface definitions
|
|
126
|
+
const typeMatch = line.match(/(?:export\s+)?(?:type|interface)\s+(\w+)/);
|
|
127
|
+
if (typeMatch) {
|
|
128
|
+
symbols.push({
|
|
129
|
+
name: typeMatch[1],
|
|
130
|
+
content: lines.slice(i, Math.min(i + 10, lines.length)).join('\n'),
|
|
131
|
+
type: 'type',
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
// Const exports (not arrow functions)
|
|
135
|
+
const constMatch = line.match(/(?:export\s+)?const\s+(\w+)\s*=\s*(?![^(]*=>)/);
|
|
136
|
+
if (constMatch && !arrowMatch) {
|
|
137
|
+
symbols.push({
|
|
138
|
+
name: constMatch[1],
|
|
139
|
+
content: lines.slice(i, Math.min(i + 5, lines.length)).join('\n'),
|
|
140
|
+
type: 'const',
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (symbols.length > 0) {
|
|
145
|
+
this.indexFile(file.path, symbols);
|
|
146
|
+
filesIndexed++;
|
|
147
|
+
symbolsIndexed += symbols.length;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// Store metadata
|
|
151
|
+
this.db.prepare(`
|
|
152
|
+
INSERT OR REPLACE INTO index_metadata (key, value) VALUES (?, ?)
|
|
153
|
+
`).run('last_indexed', new Date().toISOString());
|
|
154
|
+
this.db.prepare(`
|
|
155
|
+
INSERT OR REPLACE INTO index_metadata (key, value) VALUES (?, ?)
|
|
156
|
+
`).run('snapshot_path', snapshotPath);
|
|
157
|
+
return { filesIndexed, symbolsIndexed };
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Search the index
|
|
161
|
+
*/
|
|
162
|
+
search(query, limit = 20) {
|
|
163
|
+
// FTS5 query - use * for prefix matching
|
|
164
|
+
const ftsQuery = query.split(/\s+/).map(term => `${term}*`).join(' ');
|
|
165
|
+
try {
|
|
166
|
+
const stmt = this.db.prepare(`
|
|
167
|
+
SELECT file, symbol, content, type, rank
|
|
168
|
+
FROM code_index
|
|
169
|
+
WHERE code_index MATCH ?
|
|
170
|
+
ORDER BY rank
|
|
171
|
+
LIMIT ?
|
|
172
|
+
`);
|
|
173
|
+
return stmt.all(ftsQuery, limit);
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// If FTS query fails, try simple LIKE fallback
|
|
177
|
+
const stmt = this.db.prepare(`
|
|
178
|
+
SELECT file, symbol, content, type, 0 as rank
|
|
179
|
+
FROM code_index
|
|
180
|
+
WHERE symbol LIKE ? OR content LIKE ?
|
|
181
|
+
ORDER BY symbol
|
|
182
|
+
LIMIT ?
|
|
183
|
+
`);
|
|
184
|
+
const likePattern = `%${query}%`;
|
|
185
|
+
return stmt.all(likePattern, likePattern, limit);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Get index statistics
|
|
190
|
+
*/
|
|
191
|
+
getStats() {
|
|
192
|
+
const countResult = this.db.prepare('SELECT COUNT(*) as count FROM code_index').get();
|
|
193
|
+
const lastIndexed = this.db.prepare("SELECT value FROM index_metadata WHERE key = 'last_indexed'").get();
|
|
194
|
+
const snapshotPath = this.db.prepare("SELECT value FROM index_metadata WHERE key = 'snapshot_path'").get();
|
|
195
|
+
return {
|
|
196
|
+
totalSymbols: countResult.count,
|
|
197
|
+
lastIndexed: lastIndexed?.value || null,
|
|
198
|
+
snapshotPath: snapshotPath?.value || null,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
close() {
|
|
202
|
+
this.db.close();
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=semantic-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semantic-search.js","sourceRoot":"","sources":["../../../src/tools/demerzel/semantic-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Demerzel Snapshot Generator
|
|
3
|
+
*
|
|
4
|
+
* Creates optimized text snapshots of codebases for analysis.
|
|
5
|
+
* Handles file filtering, exclusion patterns, and formatting.
|
|
6
|
+
*
|
|
7
|
+
* Ported from Argus to Foundation.
|
|
8
|
+
*/
|
|
9
|
+
export interface SnapshotOptions {
|
|
10
|
+
extensions?: string[];
|
|
11
|
+
excludePatterns?: string[];
|
|
12
|
+
maxFileSize?: number;
|
|
13
|
+
includeHidden?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface SnapshotResult {
|
|
16
|
+
outputPath: string;
|
|
17
|
+
fileCount: number;
|
|
18
|
+
totalLines: number;
|
|
19
|
+
totalSize: number;
|
|
20
|
+
files: string[];
|
|
21
|
+
}
|
|
22
|
+
export declare const DEFAULT_EXTENSIONS: string[];
|
|
23
|
+
export declare const DEFAULT_EXCLUDE_PATTERNS: string[];
|
|
24
|
+
export declare function createSnapshot(projectPath: string, outputPath: string, options?: SnapshotOptions): SnapshotResult;
|
|
25
|
+
export declare function getSnapshotStats(snapshotPath: string): {
|
|
26
|
+
fileCount: number;
|
|
27
|
+
totalLines: number;
|
|
28
|
+
totalSize: number;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/tools/demerzel/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,eAAO,MAAM,kBAAkB,UAG9B,CAAC;AAEF,eAAO,MAAM,wBAAwB,UAgBpC,CAAC;AAkFF,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,eAAoB,GAC5B,cAAc,CAoEhB;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAcA"}
|