devmind 1.0.2 → 1.1.1

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 (134) hide show
  1. package/README.md +138 -162
  2. package/dist/cli/handlers.d.ts +2 -0
  3. package/dist/cli/handlers.js +140 -0
  4. package/dist/cli/handlers.js.map +1 -0
  5. package/dist/cli/register-all.d.ts +2 -0
  6. package/dist/cli/register-all.js +11 -0
  7. package/dist/cli/register-all.js.map +1 -0
  8. package/dist/cli/register-analysis.d.ts +2 -0
  9. package/dist/cli/register-analysis.js +137 -0
  10. package/dist/cli/register-analysis.js.map +1 -0
  11. package/dist/cli/register-codebase.d.ts +2 -0
  12. package/dist/cli/register-codebase.js +22 -0
  13. package/dist/cli/register-codebase.js.map +1 -0
  14. package/dist/cli/register-database.d.ts +2 -0
  15. package/dist/cli/register-database.js +48 -0
  16. package/dist/cli/register-database.js.map +1 -0
  17. package/dist/cli/register-memory.d.ts +2 -0
  18. package/dist/cli/register-memory.js +58 -0
  19. package/dist/cli/register-memory.js.map +1 -0
  20. package/dist/cli.js +9 -316
  21. package/dist/cli.js.map +1 -1
  22. package/dist/codebase/generators/architecture-extractor.d.ts +41 -0
  23. package/dist/codebase/generators/architecture-extractor.js +388 -0
  24. package/dist/codebase/generators/architecture-extractor.js.map +1 -0
  25. package/dist/codebase/generators/architecture.d.ts +2 -4
  26. package/dist/codebase/generators/architecture.js +123 -30
  27. package/dist/codebase/generators/architecture.js.map +1 -1
  28. package/dist/codebase/generators/modules.js +8 -8
  29. package/dist/codebase/generators/overview.js +24 -24
  30. package/dist/codebase/index.js +3 -3
  31. package/dist/codebase/index.js.map +1 -1
  32. package/dist/codebase/parsers/typescript.d.ts +1 -0
  33. package/dist/codebase/parsers/typescript.js +12 -0
  34. package/dist/codebase/parsers/typescript.js.map +1 -1
  35. package/dist/codebase/scanners/filesystem.d.ts +1 -0
  36. package/dist/codebase/scanners/filesystem.js +128 -4
  37. package/dist/codebase/scanners/filesystem.js.map +1 -1
  38. package/dist/commands/analyze.d.ts +1 -0
  39. package/dist/commands/analyze.js +172 -24
  40. package/dist/commands/analyze.js.map +1 -1
  41. package/dist/commands/audit-design.d.ts +8 -0
  42. package/dist/commands/audit-design.js +158 -0
  43. package/dist/commands/audit-design.js.map +1 -0
  44. package/dist/commands/audit-report.d.ts +18 -0
  45. package/dist/commands/audit-report.js +30 -0
  46. package/dist/commands/audit-report.js.map +1 -0
  47. package/dist/commands/audit-source.d.ts +21 -0
  48. package/dist/commands/audit-source.js +59 -0
  49. package/dist/commands/audit-source.js.map +1 -0
  50. package/dist/commands/audit.d.ts +1 -0
  51. package/dist/commands/audit.js +174 -73
  52. package/dist/commands/audit.js.map +1 -1
  53. package/dist/commands/claude-plugin.d.ts +8 -0
  54. package/dist/commands/claude-plugin.js +123 -0
  55. package/dist/commands/claude-plugin.js.map +1 -0
  56. package/dist/commands/codex-plugin.d.ts +9 -0
  57. package/dist/commands/codex-plugin.js +145 -0
  58. package/dist/commands/codex-plugin.js.map +1 -0
  59. package/dist/commands/context.js +66 -5
  60. package/dist/commands/context.js.map +1 -1
  61. package/dist/commands/design-system.d.ts +8 -0
  62. package/dist/commands/design-system.js +95 -0
  63. package/dist/commands/design-system.js.map +1 -0
  64. package/dist/commands/extract.d.ts +13 -0
  65. package/dist/commands/extract.js +83 -17
  66. package/dist/commands/extract.js.map +1 -1
  67. package/dist/commands/openclaw-plugin.d.ts +8 -0
  68. package/dist/commands/openclaw-plugin.js +103 -0
  69. package/dist/commands/openclaw-plugin.js.map +1 -0
  70. package/dist/commands/retrieve.d.ts +12 -0
  71. package/dist/commands/retrieve.js +234 -0
  72. package/dist/commands/retrieve.js.map +1 -0
  73. package/dist/commands/status.d.ts +1 -0
  74. package/dist/commands/status.js +54 -18
  75. package/dist/commands/status.js.map +1 -1
  76. package/dist/core/cache-json.d.ts +7 -0
  77. package/dist/core/cache-json.js +60 -0
  78. package/dist/core/cache-json.js.map +1 -0
  79. package/dist/core/errors.d.ts +2 -0
  80. package/dist/core/errors.js +49 -1
  81. package/dist/core/errors.js.map +1 -1
  82. package/dist/core/index.d.ts +4 -0
  83. package/dist/core/index.js +4 -0
  84. package/dist/core/index.js.map +1 -1
  85. package/dist/core/learning-parser.d.ts +6 -0
  86. package/dist/core/learning-parser.js +23 -0
  87. package/dist/core/learning-parser.js.map +1 -0
  88. package/dist/core/profile.d.ts +18 -0
  89. package/dist/core/profile.js +37 -0
  90. package/dist/core/profile.js.map +1 -0
  91. package/dist/core/source-file-cache.d.ts +13 -0
  92. package/dist/core/source-file-cache.js +88 -0
  93. package/dist/core/source-file-cache.js.map +1 -0
  94. package/dist/database/cli/register-all.d.ts +2 -0
  95. package/dist/database/cli/register-all.js +9 -0
  96. package/dist/database/cli/register-all.js.map +1 -0
  97. package/dist/database/cli/register-database.d.ts +2 -0
  98. package/dist/database/cli/register-database.js +48 -0
  99. package/dist/database/cli/register-database.js.map +1 -0
  100. package/dist/database/cli/register-interactive.d.ts +2 -0
  101. package/dist/database/cli/register-interactive.js +29 -0
  102. package/dist/database/cli/register-interactive.js.map +1 -0
  103. package/dist/database/cli/register-memory.d.ts +2 -0
  104. package/dist/database/cli/register-memory.js +47 -0
  105. package/dist/database/cli/register-memory.js.map +1 -0
  106. package/dist/database/cli.js +5 -112
  107. package/dist/database/cli.js.map +1 -1
  108. package/dist/database/commands/checkpoint.js +8 -10
  109. package/dist/database/commands/checkpoint.js.map +1 -1
  110. package/dist/database/commands/generate.d.ts +1 -0
  111. package/dist/database/commands/generate.js +28 -20
  112. package/dist/database/commands/generate.js.map +1 -1
  113. package/dist/database/commands/handoff.js +126 -125
  114. package/dist/database/commands/handoff.js.map +1 -1
  115. package/dist/database/commands/learn.d.ts +4 -0
  116. package/dist/database/commands/learn.js +249 -43
  117. package/dist/database/commands/learn.js.map +1 -1
  118. package/dist/database/commands/memory.js +114 -114
  119. package/dist/database/commands/validate.js +6 -4
  120. package/dist/database/commands/validate.js.map +1 -1
  121. package/dist/database/commands/watch.js +2 -2
  122. package/dist/database/commands/watch.js.map +1 -1
  123. package/dist/database/extractors/mysql.js +45 -45
  124. package/dist/database/extractors/postgres.js +54 -54
  125. package/dist/database/extractors/sqlite.js +8 -8
  126. package/dist/database/generators/templates.js +534 -534
  127. package/dist/database/generators/templates.js.map +1 -1
  128. package/dist/database/utils/json-output.d.ts +4 -0
  129. package/dist/database/utils/json-output.js +7 -0
  130. package/dist/database/utils/json-output.js.map +1 -1
  131. package/dist/generators/unified.d.ts +13 -0
  132. package/dist/generators/unified.js +391 -46
  133. package/dist/generators/unified.js.map +1 -1
  134. package/package.json +86 -78
@@ -1,10 +1,111 @@
1
1
  import * as path from 'path';
2
+ import * as fs from 'fs/promises';
3
+ import { createHash } from 'crypto';
2
4
  import { readFileSafe, writeFileSafe, logger } from '../core/index.js';
3
5
  const START_MARKER = '<!-- devmind:auto-context:start -->';
4
6
  const END_MARKER = '<!-- devmind:auto-context:end -->';
7
+ const SECTION_START = '<!-- devmind:section';
8
+ const SECTION_END = '<!-- /devmind:section';
5
9
  function toPosixPath(filePath) {
6
10
  return filePath.replace(/\\/g, '/');
7
11
  }
12
+ function hashContent(content) {
13
+ return createHash('sha256').update(content, 'utf8').digest('hex').slice(0, 16);
14
+ }
15
+ function serializeSectionMetadata(section) {
16
+ const tags = section.tags.join(',');
17
+ return `${SECTION_START} id=${section.id} type=${section.type} priority=${section.priority} source=${section.source} tags=${tags} -->`;
18
+ }
19
+ function renderSection(section) {
20
+ return [
21
+ serializeSectionMetadata(section),
22
+ `## ${section.title}`,
23
+ section.content.trim() || '(No context available)',
24
+ `${SECTION_END} id=${section.id} -->`,
25
+ ].join('\n');
26
+ }
27
+ function parseSectionsFromAgentsContent(agentsContent) {
28
+ const lines = agentsContent.split('\n');
29
+ const parsed = [];
30
+ const idRegex = /id=([a-z0-9._-]+)/i;
31
+ let current = null;
32
+ lines.forEach((line, idx) => {
33
+ const lineNo = idx + 1;
34
+ if (line.startsWith(SECTION_START)) {
35
+ const idMatch = line.match(idRegex);
36
+ if (!idMatch)
37
+ return;
38
+ current = {
39
+ id: idMatch[1],
40
+ startLine: lineNo + 1,
41
+ contentLines: [],
42
+ };
43
+ return;
44
+ }
45
+ if (line.startsWith(SECTION_END)) {
46
+ if (!current)
47
+ return;
48
+ parsed.push({
49
+ id: current.id,
50
+ startLine: current.startLine,
51
+ endLine: lineNo - 1,
52
+ content: current.contentLines.join('\n').trim(),
53
+ });
54
+ current = null;
55
+ return;
56
+ }
57
+ if (current)
58
+ current.contentLines.push(line);
59
+ });
60
+ return parsed;
61
+ }
62
+ async function replaceFile(tempPath, targetPath) {
63
+ await fs.rm(targetPath, { force: true });
64
+ await fs.rename(tempPath, targetPath);
65
+ }
66
+ function buildIndexSections(declaredSections, parsedSections) {
67
+ const parsedById = new Map(parsedSections.map((section) => [section.id, section]));
68
+ return declaredSections.map((declared) => {
69
+ const parsed = parsedById.get(declared.id);
70
+ if (!parsed) {
71
+ throw new Error(`Missing section marker for id=${declared.id}`);
72
+ }
73
+ return {
74
+ id: declared.id,
75
+ title: declared.title,
76
+ type: declared.type,
77
+ tags: declared.tags,
78
+ priority: declared.priority,
79
+ source: declared.source,
80
+ startLine: parsed.startLine,
81
+ endLine: parsed.endLine,
82
+ contentHash: hashContent(parsed.content),
83
+ };
84
+ });
85
+ }
86
+ function validateSectionSync(indexSections, parsedSections) {
87
+ const ids = new Set();
88
+ for (const section of indexSections) {
89
+ if (ids.has(section.id)) {
90
+ throw new Error(`Duplicate index section id=${section.id}`);
91
+ }
92
+ ids.add(section.id);
93
+ }
94
+ const parsedById = new Map(parsedSections.map((section) => [section.id, section]));
95
+ for (const indexSection of indexSections) {
96
+ const parsed = parsedById.get(indexSection.id);
97
+ if (!parsed) {
98
+ throw new Error(`Section not found in AGENTS.md: ${indexSection.id}`);
99
+ }
100
+ if (indexSection.startLine > indexSection.endLine) {
101
+ throw new Error(`Invalid section line range for ${indexSection.id}`);
102
+ }
103
+ const parsedHash = hashContent(parsed.content);
104
+ if (parsedHash !== indexSection.contentHash) {
105
+ throw new Error(`Hash mismatch for section ${indexSection.id}`);
106
+ }
107
+ }
108
+ }
8
109
  function buildAutoContextBlock(outputDir) {
9
110
  const workspaceRoot = process.cwd();
10
111
  const agentsPath = toPosixPath(path.relative(workspaceRoot, path.join(outputDir, 'AGENTS.md')));
@@ -49,35 +150,29 @@ export async function generateUnifiedDocs(outputDir) {
49
150
  const architecture = await readFileSafe(path.join(outputDir, 'codebase', 'architecture.md')).catch(() => '');
50
151
  const businessLogic = await readFileSafe(path.join(outputDir, 'database', 'BUSINESS_LOGIC.md')).catch(() => '');
51
152
  const learnings = await readFileSafe(path.join(memoryDir, 'LEARN.md')).catch(() => '');
52
- // Generate AGENTS.md (Consolidated Context in QMD Format)
53
- const agentsContent = `
54
- # Project Context
55
-
56
- > Generated by DevMind for AI Agents (Claude, Cursor, Windsurf)
57
-
58
- ## Architecture
59
- ${architecture || '(No architecture context available)'}
60
-
61
- ## Database Schema
62
- ${schemaContext ? 'See schema-overview.md for details.' : '(No database context available)'}
63
-
64
- ## Business Logic
65
- ${businessLogic || '(No business logic detected)'}
66
-
67
- ## Codebase Overview
68
- ${codebaseOverview || '(No codebase overview available)'}
69
-
70
- ## Project Learnings
71
- ${learnings || '(No learnings recorded)'}
72
-
73
- ---
74
-
75
- ## Agent Capabilities
76
-
77
- <tools>
78
- <tool name="devmind-scan">
79
- <description>Scan codebase structure and generate QMD summary.</description>
80
- </tool>
153
+ const designSystemRaw = await readFileSafe(path.join(outputDir, 'design-system.json')).catch(() => '');
154
+ let designSystemProfile = null;
155
+ if (designSystemRaw) {
156
+ try {
157
+ designSystemProfile = JSON.parse(designSystemRaw);
158
+ }
159
+ catch (error) {
160
+ logger.warn(`Failed to parse design-system.json: ${error.message}`);
161
+ }
162
+ }
163
+ const sourceMap = {
164
+ architecture: 'codebase/architecture.md',
165
+ database: 'database/schema-overview.md',
166
+ businessLogic: 'database/BUSINESS_LOGIC.md',
167
+ codebase: 'codebase/codebase-overview.md',
168
+ designSystem: 'design-system.json',
169
+ learnings: 'memory/LEARN.md',
170
+ };
171
+ const capabilityContent = `
172
+ <tools>
173
+ <tool name="devmind-scan">
174
+ <description>Scan codebase structure and generate QMD summary.</description>
175
+ </tool>
81
176
  <tool name="devmind-analyze">
82
177
  <description>Analyze code-to-database usage patterns.</description>
83
178
  </tool>
@@ -93,23 +188,40 @@ ${learnings || '(No learnings recorded)'}
93
188
  <tool name="devmind-autosave">
94
189
  <description>Persist session journal/context and auto-apply extracted learnings.</description>
95
190
  </tool>
191
+ <tool name="devmind-retrieve">
192
+ <description>Retrieve focused context using index metadata filters and AGENTS section chunks.</description>
193
+ </tool>
194
+ <tool name="devmind-design-system">
195
+ <description>Initialize or inspect design-system.json used for UI alignment auditing and agent guidance.</description>
196
+ </tool>
96
197
  <tool name="devmind-learn">
97
198
  <description>Save a new technical learning, pattern, or architectural decision to LEARN.md.</description>
98
- <arguments>
99
- <arg name="learning">The knowledge to save</arg>
100
- <arg name="category">Category (architecture, database, etc)</arg>
101
- </arguments>
102
- </tool>
103
- <tool name="devmind-context">
104
- <description>Get focused context for a specific directory or module.</description>
105
- <arguments>
106
- <arg name="focus">Path to focus on</arg>
107
- </arguments>
108
- </tool>
109
- </tools>
110
-
111
- ## Instructions
199
+ <arguments>
200
+ <arg name="learning">The knowledge to save</arg>
201
+ <arg name="category">Category (architecture, database, etc)</arg>
202
+ </arguments>
203
+ </tool>
204
+ <tool name="devmind-context">
205
+ <description>Get focused context for a specific directory or module.</description>
206
+ <arguments>
207
+ <arg name="focus">Path to focus on</arg>
208
+ </arguments>
209
+ </tool>
210
+ </tools>
211
+ `.trim();
212
+ const designSystemContent = designSystemProfile
213
+ ? `
214
+ Design system profile: \`${designSystemProfile.name || 'unnamed'}\` (v${designSystemProfile.version || 'n/a'})
112
215
 
216
+ - Allowed component imports: ${(designSystemProfile.allowedComponentImports || []).map((value) => `\`${value}\``).join(', ') || '(none configured)'}
217
+ - Token sources: ${(designSystemProfile.tokenSources || []).map((value) => `\`${value}\``).join(', ') || '(none configured)'}
218
+ - Required wrappers: ${(designSystemProfile.requiredWrappers || []).map((value) => `\`${value}\``).join(', ') || '(none configured)'}
219
+ - Banned rules: ${(designSystemProfile.bannedRegexRules || [])
220
+ .map((rule) => `\`${rule.id || 'rule'}\` (${rule.message || 'no message'})`)
221
+ .join('; ') || '(none configured)'}
222
+ `.trim()
223
+ : 'No design-system profile found. Run `devmind design-system --init` and customize `.devmind/design-system.json`.';
224
+ const runbookContent = `
113
225
  ### Agent Runbook (Auto Workflow, Recommendation Drift Control)
114
226
  1. Automatically run \`devmind status --json\` at session start.
115
227
  2. If context is stale/missing, automatically run the returned \`recommendedCommand\` (drift control remains recommendation-based).
@@ -124,24 +236,122 @@ ${learnings || '(No learnings recorded)'}
124
236
  - **Database:** Run \`devmind analyze\` or \`devmind validate\` before risky schema changes.
125
237
  - **Memory:** Use \`LEARN.md\` to keep decisions consistent across sessions.
126
238
  `.trim();
127
- await writeFileSafe(path.join(outputDir, 'AGENTS.md'), agentsContent);
239
+ const sections = [
240
+ {
241
+ id: 'architecture.overview',
242
+ title: 'Architecture',
243
+ type: 'architecture',
244
+ tags: ['architecture', 'layers', 'patterns'],
245
+ priority: 'high',
246
+ source: sourceMap.architecture,
247
+ content: architecture || '(No architecture context available)',
248
+ },
249
+ {
250
+ id: 'database.schema',
251
+ title: 'Database Schema',
252
+ type: 'database',
253
+ tags: ['database', 'schema', 'tables'],
254
+ priority: 'high',
255
+ source: sourceMap.database,
256
+ content: schemaContext
257
+ ? 'See schema-overview.md for details.'
258
+ : '(No database context available)',
259
+ },
260
+ {
261
+ id: 'business.logic',
262
+ title: 'Business Logic',
263
+ type: 'business-logic',
264
+ tags: ['business', 'rules', 'domain'],
265
+ priority: 'medium',
266
+ source: sourceMap.businessLogic,
267
+ content: businessLogic || '(No business logic detected)',
268
+ },
269
+ {
270
+ id: 'codebase.overview',
271
+ title: 'Codebase Overview',
272
+ type: 'codebase',
273
+ tags: ['codebase', 'modules', 'entrypoints'],
274
+ priority: 'high',
275
+ source: sourceMap.codebase,
276
+ content: codebaseOverview || '(No codebase overview available)',
277
+ },
278
+ {
279
+ id: 'memory.learnings',
280
+ title: 'Project Learnings',
281
+ type: 'memory',
282
+ tags: ['memory', 'learnings', 'decisions'],
283
+ priority: 'medium',
284
+ source: sourceMap.learnings,
285
+ content: learnings || '(No learnings recorded)',
286
+ },
287
+ {
288
+ id: 'ui.design-system',
289
+ title: 'Design System',
290
+ type: 'design-system',
291
+ tags: ['ui', 'design-system', 'components', 'tokens'],
292
+ priority: 'high',
293
+ source: sourceMap.designSystem,
294
+ content: designSystemContent,
295
+ },
296
+ {
297
+ id: 'agent.capabilities',
298
+ title: 'Agent Capabilities',
299
+ type: 'capabilities',
300
+ tags: ['tools', 'capabilities', 'commands'],
301
+ priority: 'medium',
302
+ source: 'devmind-tools.json',
303
+ content: capabilityContent,
304
+ },
305
+ {
306
+ id: 'agent.runbook',
307
+ title: 'Instructions',
308
+ type: 'runbook',
309
+ tags: ['runbook', 'workflow', 'status', 'autosave'],
310
+ priority: 'high',
311
+ source: 'AGENTS.md',
312
+ content: runbookContent,
313
+ },
314
+ ];
315
+ // Generate AGENTS.md (Consolidated Context in QMD Format)
316
+ const agentsContent = `
317
+ # Project Context
318
+
319
+ > Generated by DevMind for AI Agents (Claude, Cursor, Windsurf)
320
+
321
+ ${sections.map((section) => renderSection(section)).join('\n\n')}
322
+
323
+ ---
324
+ `.trim();
325
+ const parsedSections = parseSectionsFromAgentsContent(agentsContent);
326
+ const indexSections = buildIndexSections(sections, parsedSections);
327
+ validateSectionSync(indexSections, parsedSections);
128
328
  // Generate unified index.json
129
329
  const index = {
130
330
  timestamp: new Date().toISOString(),
131
- version: '1.0.2',
331
+ version: '1.1.0',
132
332
  contexts: {
133
333
  agents: 'AGENTS.md',
134
334
  schema: 'database/schema-overview.md',
135
335
  codebase: 'codebase/codebase-overview.md',
136
336
  architecture: 'codebase/architecture.md',
337
+ designSystem: 'design-system.json',
137
338
  learnings: 'memory/LEARN.md',
138
339
  },
139
340
  metadata: {
140
341
  hasDatabase: !!schemaContext,
141
342
  hasCodebase: !!codebaseOverview,
343
+ hasDesignSystem: !!designSystemProfile,
142
344
  },
345
+ sections: indexSections,
143
346
  };
144
- await writeFileSafe(path.join(outputDir, 'index.json'), JSON.stringify(index, null, 2));
347
+ const agentsPath = path.join(outputDir, 'AGENTS.md');
348
+ const indexPath = path.join(outputDir, 'index.json');
349
+ const agentsTempPath = `${agentsPath}.tmp`;
350
+ const indexTempPath = `${indexPath}.tmp`;
351
+ await writeFileSafe(agentsTempPath, agentsContent);
352
+ await writeFileSafe(indexTempPath, JSON.stringify(index, null, 2));
353
+ await replaceFile(agentsTempPath, agentsPath);
354
+ await replaceFile(indexTempPath, indexPath);
145
355
  logger.success('Unified documentation generated:');
146
356
  logger.info(` - ${path.join(outputDir, 'AGENTS.md')}`);
147
357
  // Generate devmind-tools.json (Tool Definitions for Agents)
@@ -172,6 +382,141 @@ ${learnings || '(No learnings recorded)'}
172
382
  },
173
383
  },
174
384
  },
385
+ {
386
+ name: 'devmind_status',
387
+ description: 'Checks context freshness and returns a recommended next command when generated context is stale or missing.',
388
+ parameters: {
389
+ type: 'object',
390
+ properties: {
391
+ output: {
392
+ type: 'string',
393
+ description: 'Context output directory (default: .devmind)',
394
+ },
395
+ path: {
396
+ type: 'string',
397
+ description: 'Root path for source freshness checks (default: current directory)',
398
+ },
399
+ },
400
+ },
401
+ },
402
+ {
403
+ name: 'devmind_audit',
404
+ description: 'Audits codebase coverage against recorded learnings in memory/LEARN.md and writes an audit report.',
405
+ parameters: {
406
+ type: 'object',
407
+ properties: {
408
+ output: {
409
+ type: 'string',
410
+ description: 'Context output directory (default: .devmind)',
411
+ },
412
+ path: {
413
+ type: 'string',
414
+ description: 'Root path to audit (default: current directory)',
415
+ },
416
+ },
417
+ },
418
+ },
419
+ {
420
+ name: 'devmind_extract',
421
+ description: 'Extracts learning candidates from analysis artifacts and source comments, with optional apply to LEARN.md.',
422
+ parameters: {
423
+ type: 'object',
424
+ properties: {
425
+ output: {
426
+ type: 'string',
427
+ description: 'Context output directory (default: .devmind)',
428
+ },
429
+ path: {
430
+ type: 'string',
431
+ description: 'Root path to scan for comments (default: current directory)',
432
+ },
433
+ apply: {
434
+ type: 'boolean',
435
+ description: 'Append extracted learning candidates into memory/LEARN.md',
436
+ },
437
+ },
438
+ },
439
+ },
440
+ {
441
+ name: 'devmind_autosave',
442
+ description: 'Persists crash-safe session journal/context and auto-applies extracted learnings.',
443
+ parameters: {
444
+ type: 'object',
445
+ properties: {
446
+ output: {
447
+ type: 'string',
448
+ description: 'Context output directory (default: .devmind)',
449
+ },
450
+ path: {
451
+ type: 'string',
452
+ description: 'Root path for extraction (default: current directory)',
453
+ },
454
+ source: {
455
+ type: 'string',
456
+ description: 'Autosave source label (e.g., task-end, scan, generate)',
457
+ },
458
+ note: {
459
+ type: 'string',
460
+ description: 'Optional note attached to journal/context state',
461
+ },
462
+ },
463
+ },
464
+ },
465
+ {
466
+ name: 'devmind_retrieve',
467
+ description: 'Performs two-stage retrieval using index metadata as filter and AGENTS.md sections as content.',
468
+ parameters: {
469
+ type: 'object',
470
+ properties: {
471
+ query: {
472
+ type: 'string',
473
+ description: 'Retrieval query',
474
+ },
475
+ output: {
476
+ type: 'string',
477
+ description: 'Context output directory (default: .devmind)',
478
+ },
479
+ type: {
480
+ type: 'string',
481
+ description: 'Optional section type filter',
482
+ },
483
+ tags: {
484
+ type: 'string',
485
+ description: 'Optional comma-separated tags filter',
486
+ },
487
+ limit: {
488
+ type: 'number',
489
+ description: 'Max sections to return (default: 6)',
490
+ },
491
+ max_words: {
492
+ type: 'number',
493
+ description: 'Approximate max words in output (default: 1400)',
494
+ },
495
+ },
496
+ required: ['query'],
497
+ },
498
+ },
499
+ {
500
+ name: 'devmind_design_system',
501
+ description: 'Initializes or reads the design system profile used to keep UI code aligned with component/token policies.',
502
+ parameters: {
503
+ type: 'object',
504
+ properties: {
505
+ output: {
506
+ type: 'string',
507
+ description: 'Context output directory (default: .devmind)',
508
+ },
509
+ init: {
510
+ type: 'boolean',
511
+ description: 'Create default profile file if missing',
512
+ },
513
+ force: {
514
+ type: 'boolean',
515
+ description: 'Overwrite profile when used with init',
516
+ },
517
+ },
518
+ },
519
+ },
175
520
  {
176
521
  name: 'devmind_learn',
177
522
  description: "Saves a new technical learning, pattern, or architectural decision to the project's persistent memory (LEARN.md). Use this when you discover something important that future agents should know.",
@@ -1 +1 @@
1
- {"version":3,"file":"unified.js","sourceRoot":"","sources":["../../src/generators/unified.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unified.js","sourceRoot":"","sources":["../../src/generators/unified.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAa,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAElF,MAAM,YAAY,GAAG,qCAAqC,CAAC;AAC3D,MAAM,UAAU,GAAG,mCAAmC,CAAC;AACvD,MAAM,aAAa,GAAG,sBAAsB,CAAC;AAC7C,MAAM,WAAW,GAAG,uBAAuB,CAAC;AAsD5C,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,wBAAwB,CAAC,OAA0B;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,OAAO,GAAG,aAAa,OAAO,OAAO,CAAC,EAAE,SAAS,OAAO,CAAC,IAAI,aAAa,OAAO,CAAC,QAAQ,WAAW,OAAO,CAAC,MAAM,SAAS,IAAI,MAAM,CAAC;AACzI,CAAC;AAED,SAAS,aAAa,CAAC,OAA0B;IAC/C,OAAO;QACL,wBAAwB,CAAC,OAAO,CAAC;QACjC,MAAM,OAAO,CAAC,KAAK,EAAE;QACrB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,wBAAwB;QAClD,GAAG,WAAW,OAAO,OAAO,CAAC,EAAE,MAAM;KACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,8BAA8B,CAAC,aAAqB;IAC3D,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,oBAAoB,CAAC;IAErC,IAAI,OAAO,GAAqE,IAAI,CAAC;IACrF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,OAAO,GAAG;gBACR,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBACd,SAAS,EAAE,MAAM,GAAG,CAAC;gBACrB,YAAY,EAAE,EAAE;aACjB,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,OAAO,EAAE,MAAM,GAAG,CAAC;gBACnB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;aAChD,CAAC,CAAC;YACH,OAAO,GAAG,IAAI,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,OAAO;YAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,UAAkB;IAC7D,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,kBAAkB,CACzB,gBAAqC,EACrC,cAA+B;IAE/B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAEnF,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;SACzC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB,CAAC,aAA6B,EAAE,cAA+B;IACzF,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACnF,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,mCAAmC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,UAAU,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,SAAiB;IAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAEhG,OAAO;QACL,YAAY;QACZ,yBAAyB;QACzB,8BAA8B,UAAU,yBAAyB;QACjE,iBAAiB,SAAS,sCAAsC;QAChE,6FAA6F;QAC7F,UAAU;KACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,SAAiB;IACpE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,aAAa,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;IAEhF,IAAI,WAAmB,CAAC;IACxB,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjC,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1D,WAAW,GAAG,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,IAAI,CAAC;QACpD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,GAAG,KAAK,IAAI,CAAC;IAC7B,CAAC;IAED,MAAM,aAAa,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,CAAC,IAAI,CAAC,uCAAuC,mBAAmB,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,SAAiB;IACzD,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;IAEnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEjD,0BAA0B;IAC1B,MAAM,aAAa,GAAG,MAAM,YAAY,CACtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,oBAAoB,CAAC,CACvD,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,gBAAgB,GAAG,MAAM,YAAY,CACzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,sBAAsB,CAAC,CACzD,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,YAAY,GAAG,MAAM,YAAY,CACrC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,iBAAiB,CAAC,CACpD,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,aAAa,GAAG,MAAM,YAAY,CACtC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,mBAAmB,CAAC,CACtD,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAClB,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACvF,MAAM,eAAe,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAC1F,GAAG,EAAE,CAAC,EAAE,CACT,CAAC;IAEF,IAAI,mBAAmB,GAA+B,IAAI,CAAC;IAC3D,IAAI,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAwB,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,uCAAwC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG;QAChB,YAAY,EAAE,0BAA0B;QACxC,QAAQ,EAAE,6BAA6B;QACvC,aAAa,EAAE,4BAA4B;QAC3C,QAAQ,EAAE,+BAA+B;QACzC,YAAY,EAAE,oBAAoB;QAClC,SAAS,EAAE,iBAAiB;KAC7B,CAAC;IAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwC3B,CAAC,IAAI,EAAE,CAAC;IAEP,MAAM,mBAAmB,GAAG,mBAAmB;QAC7C,CAAC,CAAC;2BACqB,mBAAmB,CAAC,IAAI,IAAI,SAAS,QAAQ,mBAAmB,CAAC,OAAO,IAAI,KAAK;;+BAE7E,CAAC,mBAAmB,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB;mBAChI,CAAC,mBAAmB,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB;uBACrG,CAAC,mBAAmB,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAmB;kBAE5H,CAAC,mBAAmB,CAAC,gBAAgB,IAAI,EAAE,CAAC;aACzC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,EAAE,IAAI,MAAM,OAAO,IAAI,CAAC,OAAO,IAAI,YAAY,GAAG,CAAC;aAC3E,IAAI,CAAC,IAAI,CAAC,IAAI,mBACnB;CACL,CAAC,IAAI,EAAE;QACJ,CAAC,CAAC,iHAAiH,CAAC;IAEtH,MAAM,cAAc,GAAG;;;;;;;;;;;;;;CAcxB,CAAC,IAAI,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAwB;QACpC;YACE,EAAE,EAAE,uBAAuB;YAC3B,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC;YAC5C,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,SAAS,CAAC,YAAY;YAC9B,OAAO,EAAE,YAAY,IAAI,qCAAqC;SAC/D;QACD;YACE,EAAE,EAAE,iBAAiB;YACrB,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACtC,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,SAAS,CAAC,QAAQ;YAC1B,OAAO,EAAE,aAAa;gBACpB,CAAC,CAAC,qCAAqC;gBACvC,CAAC,CAAC,iCAAiC;SACtC;QACD;YACE,EAAE,EAAE,gBAAgB;YACpB,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;YACrC,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,SAAS,CAAC,aAAa;YAC/B,OAAO,EAAE,aAAa,IAAI,8BAA8B;SACzD;QACD;YACE,EAAE,EAAE,mBAAmB;YACvB,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC;YAC5C,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,SAAS,CAAC,QAAQ;YAC1B,OAAO,EAAE,gBAAgB,IAAI,kCAAkC;SAChE;QACD;YACE,EAAE,EAAE,kBAAkB;YACtB,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC;YAC1C,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,SAAS,CAAC,SAAS;YAC3B,OAAO,EAAE,SAAS,IAAI,yBAAyB;SAChD;QACD;YACE,EAAE,EAAE,kBAAkB;YACtB,KAAK,EAAE,eAAe;YACtB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,CAAC;YACrD,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,SAAS,CAAC,YAAY;YAC9B,OAAO,EAAE,mBAAmB;SAC7B;QACD;YACE,EAAE,EAAE,oBAAoB;YACxB,KAAK,EAAE,oBAAoB;YAC3B,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC;YAC3C,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,iBAAiB;SAC3B;QACD;YACE,EAAE,EAAE,eAAe;YACnB,KAAK,EAAE,cAAc;YACrB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC;YACnD,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,cAAc;SACxB;KACF,CAAC;IAEF,0DAA0D;IAC1D,MAAM,aAAa,GAAG;;;;;EAKtB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;;;CAG/D,CAAC,IAAI,EAAE,CAAC;IACP,MAAM,cAAc,GAAG,8BAA8B,CAAC,aAAa,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnE,mBAAmB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;IAEnD,8BAA8B;IAC9B,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE;YACR,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,6BAA6B;YACrC,QAAQ,EAAE,+BAA+B;YACzC,YAAY,EAAE,0BAA0B;YACxC,YAAY,EAAE,oBAAoB;YAClC,SAAS,EAAE,iBAAiB;SAC7B;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,CAAC,CAAC,aAAa;YAC5B,WAAW,EAAE,CAAC,CAAC,gBAAgB;YAC/B,eAAe,EAAE,CAAC,CAAC,mBAAmB;SACvC;QACD,QAAQ,EAAE,aAAa;KACxB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,GAAG,UAAU,MAAM,CAAC;IAC3C,MAAM,aAAa,GAAG,GAAG,SAAS,MAAM,CAAC;IAEzC,MAAM,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACnD,MAAM,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnE,MAAM,WAAW,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,WAAW,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IAE5C,MAAM,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACnD,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAEzD,4DAA4D;IAC5D,MAAM,KAAK,GAAG;QACZ;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EACT,+KAA+K;YACjL,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oDAAoD;qBAClE;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT,wKAAwK;YAC1K,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,uDAAuD;qBACrE;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,gBAAgB;YACtB,WAAW,EACT,6GAA6G;YAC/G,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8CAA8C;qBAC5D;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oEAAoE;qBAClF;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EACT,oGAAoG;YACtG,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8CAA8C;qBAC5D;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iDAAiD;qBAC/D;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT,4GAA4G;YAC9G,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8CAA8C;qBAC5D;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6DAA6D;qBAC3E;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,2DAA2D;qBACzE;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACT,mFAAmF;YACrF,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8CAA8C;qBAC5D;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,uDAAuD;qBACrE;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wDAAwD;qBACtE;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iDAAiD;qBAC/D;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,kBAAkB;YACxB,WAAW,EACT,gGAAgG;YAClG,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iBAAiB;qBAC/B;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8CAA8C;qBAC5D;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8BAA8B;qBAC5C;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,sCAAsC;qBACpD;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,qCAAqC;qBACnD;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iDAAiD;qBAC/D;iBACF;gBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;aACpB;SACF;QACD;YACE,IAAI,EAAE,uBAAuB;YAC7B,WAAW,EACT,4GAA4G;YAC9G,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,8CAA8C;qBAC5D;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,wCAAwC;qBACtD;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,SAAS;wBACf,WAAW,EAAE,uCAAuC;qBACrD;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,eAAe;YACrB,WAAW,EACT,kMAAkM;YACpM,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6CAA6C;qBAC3D;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,2EAA2E;qBAC9E;iBACF;gBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT,mJAAmJ;YACrJ,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,yCAAyC;qBACvD;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iCAAiC;qBAC/C;iBACF;aACF;SACF;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,WAAW,EACT,kIAAkI;YACpI,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;wBACvC,WAAW,EAAE,4CAA4C;qBAC1D;iBACF;aACF;SACF;KACF,CAAC;IAEF,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAElE,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IAE1D,MAAM,8BAA8B,CAAC,SAAS,CAAC,CAAC;AAClD,CAAC"}