@backendkit-labs/curator-codex-agent 0.2.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/analyzer.d.ts +1 -17
  2. package/dist/analyzer.d.ts.map +1 -1
  3. package/dist/analyzer.js +80 -163
  4. package/dist/analyzer.js.map +1 -1
  5. package/dist/audit.d.ts +27 -0
  6. package/dist/audit.d.ts.map +1 -0
  7. package/dist/audit.js +43 -0
  8. package/dist/audit.js.map +1 -0
  9. package/dist/checksum.d.ts +0 -22
  10. package/dist/checksum.d.ts.map +1 -1
  11. package/dist/checksum.js +14 -103
  12. package/dist/checksum.js.map +1 -1
  13. package/dist/documentation-curator.d.ts +1 -1
  14. package/dist/documentation-curator.d.ts.map +1 -1
  15. package/dist/documentation-curator.js +79 -95
  16. package/dist/documentation-curator.js.map +1 -1
  17. package/dist/index.d.ts +19 -9
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +12 -22
  20. package/dist/index.js.map +1 -1
  21. package/dist/knowledge/embedder-worker.d.ts +2 -0
  22. package/dist/knowledge/embedder-worker.d.ts.map +1 -0
  23. package/dist/knowledge/embedder-worker.js +55 -0
  24. package/dist/knowledge/embedder-worker.js.map +1 -0
  25. package/dist/knowledge/engine.d.ts +10 -56
  26. package/dist/knowledge/engine.d.ts.map +1 -1
  27. package/dist/knowledge/engine.js +42 -153
  28. package/dist/knowledge/engine.js.map +1 -1
  29. package/dist/knowledge/rag-provider.d.ts +14 -56
  30. package/dist/knowledge/rag-provider.d.ts.map +1 -1
  31. package/dist/knowledge/rag-provider.js +63 -154
  32. package/dist/knowledge/rag-provider.js.map +1 -1
  33. package/dist/knowledge/synthesis.d.ts +0 -10
  34. package/dist/knowledge/synthesis.d.ts.map +1 -1
  35. package/dist/knowledge/synthesis.js +32 -77
  36. package/dist/knowledge/synthesis.js.map +1 -1
  37. package/dist/knowledge/transformers-embedder.d.ts +61 -0
  38. package/dist/knowledge/transformers-embedder.d.ts.map +1 -0
  39. package/dist/knowledge/transformers-embedder.js +222 -0
  40. package/dist/knowledge/transformers-embedder.js.map +1 -0
  41. package/dist/pdf-reader.d.ts +11 -0
  42. package/dist/pdf-reader.d.ts.map +1 -0
  43. package/dist/pdf-reader.js +21 -0
  44. package/dist/pdf-reader.js.map +1 -0
  45. package/dist/project.d.ts +28 -0
  46. package/dist/project.d.ts.map +1 -0
  47. package/dist/project.js +88 -0
  48. package/dist/project.js.map +1 -0
  49. package/dist/providers/anthropic-adapter.d.ts +2 -2
  50. package/dist/providers/anthropic-adapter.d.ts.map +1 -1
  51. package/dist/providers/anthropic-adapter.js +7 -13
  52. package/dist/providers/anthropic-adapter.js.map +1 -1
  53. package/dist/providers/index.d.ts +1 -1
  54. package/dist/providers/index.d.ts.map +1 -1
  55. package/dist/providers/index.js +13 -20
  56. package/dist/providers/index.js.map +1 -1
  57. package/dist/providers/openai-adapter.d.ts +2 -2
  58. package/dist/providers/openai-adapter.d.ts.map +1 -1
  59. package/dist/providers/openai-adapter.js +7 -13
  60. package/dist/providers/openai-adapter.js.map +1 -1
  61. package/dist/providers/types.d.ts +8 -1
  62. package/dist/providers/types.d.ts.map +1 -1
  63. package/dist/providers/types.js +1 -2
  64. package/dist/types.d.ts.map +1 -1
  65. package/dist/types.js +1 -3
  66. package/dist/types.js.map +1 -1
  67. package/dist/vault-dedup.d.ts +35 -0
  68. package/dist/vault-dedup.d.ts.map +1 -0
  69. package/dist/vault-dedup.js +130 -0
  70. package/dist/vault-dedup.js.map +1 -0
  71. package/package.json +43 -56
  72. package/AGENT.md +0 -187
  73. package/README.md +0 -475
  74. package/dist/api/config.d.ts +0 -57
  75. package/dist/api/config.d.ts.map +0 -1
  76. package/dist/api/config.js +0 -183
  77. package/dist/api/config.js.map +0 -1
  78. package/dist/api/http-server.d.ts +0 -24
  79. package/dist/api/http-server.d.ts.map +0 -1
  80. package/dist/api/http-server.js +0 -108
  81. package/dist/api/http-server.js.map +0 -1
  82. package/dist/api/routes.d.ts +0 -8
  83. package/dist/api/routes.d.ts.map +0 -1
  84. package/dist/api/routes.js +0 -382
  85. package/dist/api/routes.js.map +0 -1
  86. package/dist/api/security.d.ts +0 -107
  87. package/dist/api/security.d.ts.map +0 -1
  88. package/dist/api/security.js +0 -200
  89. package/dist/api/security.js.map +0 -1
  90. package/dist/http-server-main.d.ts +0 -28
  91. package/dist/http-server-main.d.ts.map +0 -1
  92. package/dist/http-server-main.js +0 -69
  93. package/dist/http-server-main.js.map +0 -1
  94. package/dist/server.d.ts +0 -33
  95. package/dist/server.d.ts.map +0 -1
  96. package/dist/server.js +0 -640
  97. package/dist/server.js.map +0 -1
  98. package/dist/watcher.d.ts +0 -26
  99. package/dist/watcher.d.ts.map +0 -1
  100. package/dist/watcher.js +0 -168
  101. package/dist/watcher.js.map +0 -1
@@ -11,32 +11,16 @@ export declare class CodeAnalyzer {
11
11
  private readonly maxInputChars;
12
12
  private readonly docCurator;
13
13
  constructor(opts: CodeAnalyzerOptions);
14
- /**
15
- * Find documentation files associated with a code file
16
- */
17
14
  findAssociatedDocs(filePath: string, allFiles: Array<{
18
15
  fullPath: string;
19
16
  relativePath: string;
20
17
  }>): Promise<AssociatedDocs>;
21
- /**
22
- * Analyze a file (code or documentation) with unified dispatcher
23
- */
24
18
  analyzeFile(filePath: string, relativePath: string, allFiles?: Array<{
25
19
  fullPath: string;
26
20
  relativePath: string;
27
21
  }>): Promise<CodeAnalysisResult>;
28
- /**
29
- * Analyze a code file with optional associated documentation
30
- */
31
- private analyzeCode;
32
- /**
33
- * Analyze a documentation file (.md, .txt)
34
- */
35
- private analyzeDocumentation;
36
- /**
37
- * Check if file is a documentation file
38
- */
39
22
  private isDocFile;
23
+ private analyzeCode;
40
24
  private getSourcesCombined;
41
25
  private callLLM;
42
26
  private writeNote;
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAoB,kBAAkB,EAAuB,cAAc,EAAE,MAAM,YAAY,CAAC;AAsI5G,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;gBAEtC,IAAI,EAAE,mBAAmB;IAUrC;;OAEG;IACG,kBAAkB,CACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,GAC5D,OAAO,CAAC,cAAc,CAAC;IAqC1B;;OAEG;IACG,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,GAC7D,OAAO,CAAC,kBAAkB,CAAC;IAS9B;;OAEG;YACW,WAAW;IA8FzB;;OAEG;YACW,oBAAoB;IAIlC;;OAEG;IACH,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,kBAAkB;YA2BZ,OAAO;YAgCP,SAAS;CAuB1B"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAoB,kBAAkB,EAAuB,cAAc,EAAE,MAAM,YAAY,CAAC;AA4H5G,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;gBAEtC,IAAI,EAAE,mBAAmB;IAO/B,kBAAkB,CACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,GAC5D,OAAO,CAAC,cAAc,CAAC;IA0BpB,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,GAC7D,OAAO,CAAC,kBAAkB,CAAC;IAO9B,OAAO,CAAC,SAAS;YAIH,WAAW;IAkFzB,OAAO,CAAC,kBAAkB;YAoBZ,OAAO;YA8BP,SAAS;CAwB1B"}
package/dist/analyzer.js CHANGED
@@ -1,100 +1,62 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
1
+ import * as fs from 'node:fs/promises';
2
+ import * as path from 'node:path';
3
+ import { z } from 'zod';
4
+ import { DocumentationCurator } from './documentation-curator.js';
5
+ import { removeNotesForSource, normalizeSourcePath } from './vault-dedup.js';
6
+ const CodeAnalysisNoteSchema = z.object({
7
+ type: z.enum(['componente', 'api', 'patron', 'utilidad', 'arquitectura', 'integracion']),
8
+ area: z.enum(['general', 'backend', 'frontend', 'devops', 'infraestructura']),
9
+ title: z.string().max(120),
10
+ resumen: z.string().max(500),
11
+ content: z.string(),
12
+ tags: z.array(z.string()),
13
+ vigente_desde: z.string().optional(),
14
+ version: z.number().optional(),
15
+ expires_at: z.string().optional(),
16
+ depends_on: z.array(z.string()).optional(),
17
+ exports: z.array(z.string()).optional(),
18
+ language: z.string().optional(),
19
+ files: z.array(z.string()).optional(),
17
20
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.CodeAnalyzer = void 0;
37
- const fs = __importStar(require("node:fs/promises"));
38
- const path = __importStar(require("node:path"));
39
- const zod_1 = require("zod");
40
- const documentation_curator_js_1 = require("./documentation-curator.js");
41
- // Zod schema for code analysis response
42
- const CodeAnalysisNoteSchema = zod_1.z.object({
43
- type: zod_1.z.enum(['componente', 'api', 'patron', 'utilidad', 'arquitectura', 'integracion']),
44
- area: zod_1.z.enum(['general', 'backend', 'frontend', 'devops', 'infraestructura']),
45
- title: zod_1.z.string().max(120),
46
- resumen: zod_1.z.string().max(500),
47
- content: zod_1.z.string(),
48
- tags: zod_1.z.array(zod_1.z.string()),
49
- vigente_desde: zod_1.z.string().optional(),
50
- version: zod_1.z.number().optional(),
51
- expires_at: zod_1.z.string().optional(),
52
- depends_on: zod_1.z.array(zod_1.z.string()).optional(),
53
- exports: zod_1.z.array(zod_1.z.string()).optional(),
54
- language: zod_1.z.string().optional(),
55
- files: zod_1.z.array(zod_1.z.string()).optional(),
21
+ const CodeAnalysisResponseSchema = z.object({
22
+ notes: z.array(CodeAnalysisNoteSchema),
56
23
  });
57
- const CodeAnalysisResponseSchema = zod_1.z.object({
58
- notes: zod_1.z.array(CodeAnalysisNoteSchema),
59
- });
60
- // System prompt for code analysis
61
- const SYSTEM_PROMPT = `\
62
- You are a Code Knowledge Extractor for enterprise vaults.
63
- Your task: analyze source code files WITH associated documentation and extract structured knowledge.
64
-
65
- IMPORTANT: Return ONLY a valid JSON object — no markdown, no prose, no code fences.
66
-
67
- Schema (return exactly this shape):
68
- {
69
- "notes": [
70
- {
71
- "type": "componente" | "api" | "patron" | "utilidad" | "arquitectura" | "integracion",
72
- "area": "general" | "backend" | "frontend" | "devops" | "infraestructura",
73
- "title": string, // Specific and searchable. Max 120 chars.
74
- "resumen": string, // 1-2 sentences DENSE with key terms, types, functions.
75
- "content": string, // Markdown with ## sections. Extract APIs, types, examples.
76
- "tags": string[], // e.g. ["code/typescript", "modulo/auth", "patron/jwt"]
77
- "language": string, // typescript, javascript, python, go, rust, etc
78
- "files": string[], // Relative paths of analyzed files
79
- "depends_on": string[], // External dependencies or modules
80
- "exports": string[], // Public APIs, functions, classes
81
- "version": number // optional, if versioned
82
- }
83
- ]
84
- }
85
-
86
- Rules:
87
- - Extract PUBLIC APIs only (not private/internal implementation).
88
- - Include TypeScript interfaces, type definitions, main classes.
89
- - Focus on WHAT the code does, HOW to use it, what it exports.
90
- - Each note must be self-contained — a reader should not need the original code.
91
- - "resumen" must contain searchable terms: function names, types, patterns.
92
- - "content" must use ## headings. Include usage examples from comments or docs.
93
- - "exports" lists public functions, classes, interfaces.
94
- - "depends_on" lists external libraries or internal modules this depends on.
95
- - If code has associated documentation (.md file), integrate it into the analysis.
24
+ const SYSTEM_PROMPT = `\
25
+ You are a Code Knowledge Extractor for enterprise vaults.
26
+ Your task: analyze source code files WITH associated documentation and extract structured knowledge.
27
+
28
+ IMPORTANT: Return ONLY a valid JSON object — no markdown, no prose, no code fences.
29
+
30
+ Schema (return exactly this shape):
31
+ {
32
+ "notes": [
33
+ {
34
+ "type": "componente" | "api" | "patron" | "utilidad" | "arquitectura" | "integracion",
35
+ "area": "general" | "backend" | "frontend" | "devops" | "infraestructura",
36
+ "title": string,
37
+ "resumen": string,
38
+ "content": string,
39
+ "tags": string[],
40
+ "language": string,
41
+ "files": string[],
42
+ "depends_on": string[],
43
+ "exports": string[],
44
+ "version": number
45
+ }
46
+ ]
47
+ }
48
+
49
+ Rules:
50
+ - Extract PUBLIC APIs only (not private/internal implementation).
51
+ - Include TypeScript interfaces, type definitions, main classes.
52
+ - Focus on WHAT the code does, HOW to use it, what it exports.
53
+ - Each note must be self-contained — a reader should not need the original code.
54
+ - "resumen" must contain searchable terms: function names, types, patterns.
55
+ - "content" must use ## headings. Include usage examples from comments or docs.
56
+ - "exports" lists public functions, classes, interfaces.
57
+ - "depends_on" lists external libraries or internal modules this depends on.
58
+ - If code has associated documentation (.md file), integrate it into the analysis.
96
59
  - If no enterprise relevance, return { "notes": [] }.`;
97
- // Supported code extensions
98
60
  const CODE_EXTENSIONS = [
99
61
  '.ts', '.tsx', '.js', '.jsx', '.py', '.go', '.rs', '.java', '.c', '.cpp', '.kt', '.swift',
100
62
  ];
@@ -103,14 +65,9 @@ function getLanguage(filePath) {
103
65
  const langMap = {
104
66
  '.ts': 'typescript', '.tsx': 'typescript',
105
67
  '.js': 'javascript', '.jsx': 'javascript',
106
- '.py': 'python',
107
- '.go': 'go',
108
- '.rs': 'rust',
109
- '.java': 'java',
110
- '.c': 'c',
111
- '.cpp': 'cpp',
112
- '.kt': 'kotlin',
113
- '.swift': 'swift',
68
+ '.py': 'python', '.go': 'go', '.rs': 'rust',
69
+ '.java': 'java', '.c': 'c', '.cpp': 'cpp',
70
+ '.kt': 'kotlin', '.swift': 'swift',
114
71
  };
115
72
  return langMap[ext] || ext.slice(1);
116
73
  }
@@ -124,7 +81,7 @@ function slugify(title) {
124
81
  .replace(/\s+/g, '-')
125
82
  .slice(0, 60);
126
83
  }
127
- function buildFrontmatter(note, source, date, sourcesCombined) {
84
+ function buildFrontmatter(note, source, date, sourcePath, sourcesCombined) {
128
85
  const tagsLine = `[${note.tags.map(t => `"${t}"`).join(', ')}]`;
129
86
  const lines = [
130
87
  '---',
@@ -136,11 +93,11 @@ function buildFrontmatter(note, source, date, sourcesCombined) {
136
93
  `author: "agent/codex"`,
137
94
  `date: ${date}`,
138
95
  `source_ref: "${source}"`,
96
+ `source_path: "${normalizeSourcePath(sourcePath)}"`,
139
97
  `tags: ${tagsLine}`,
140
98
  ];
141
- if (sourcesCombined && sourcesCombined.length > 0) {
142
- const sources = sourcesCombined.map(s => `"${s}"`).join(', ');
143
- lines.push(`sources_combined: [${sources}]`);
99
+ if (sourcesCombined?.length) {
100
+ lines.push(`sources_combined: [${sourcesCombined.map(s => `"${s}"`).join(', ')}]`);
144
101
  }
145
102
  if (note.version)
146
103
  lines.push(`version: ${note.version}`);
@@ -156,7 +113,7 @@ function buildFrontmatter(note, source, date, sourcesCombined) {
156
113
  lines.push('---', '', note.content);
157
114
  return lines.join('\n');
158
115
  }
159
- class CodeAnalyzer {
116
+ export class CodeAnalyzer {
160
117
  provider;
161
118
  vaultPath;
162
119
  maxInputChars;
@@ -165,33 +122,23 @@ class CodeAnalyzer {
165
122
  this.provider = opts.provider;
166
123
  this.vaultPath = opts.vaultPath;
167
124
  this.maxInputChars = opts.maxInputChars ?? 20_000;
168
- this.docCurator = new documentation_curator_js_1.DocumentationCurator({
169
- provider: opts.provider,
170
- vaultPath: opts.vaultPath,
171
- });
125
+ this.docCurator = new DocumentationCurator({ provider: opts.provider, vaultPath: opts.vaultPath });
172
126
  }
173
- /**
174
- * Find documentation files associated with a code file
175
- */
176
127
  async findAssociatedDocs(filePath, allFiles) {
177
128
  const basename = path.basename(filePath, path.extname(filePath));
178
129
  const dirname = path.dirname(filePath);
179
130
  const result = { codeFile: filePath };
180
- // 1. Search for .md with same name
181
131
  const mdFile = allFiles.find(f => f.fullPath === path.join(dirname, `${basename}.md`));
182
132
  if (mdFile)
183
133
  result.docFile = mdFile.fullPath;
184
- // 2. Search for README.md in same directory
185
134
  const readmeFile = allFiles.find(f => f.fullPath === path.join(dirname, 'README.md'));
186
135
  if (readmeFile)
187
136
  result.readmeFile = readmeFile.fullPath;
188
- // 3. Search in docs/ folder with similar name
189
137
  if (!result.docFile) {
190
138
  const docsFile = allFiles.find(f => f.relativePath.includes('docs/') && f.relativePath.includes(basename) && f.relativePath.endsWith('.md'));
191
139
  if (docsFile)
192
140
  result.docFile = docsFile.fullPath;
193
141
  }
194
- // 4. Search for root README.md
195
142
  if (!result.contextFile) {
196
143
  const globalReadme = allFiles.find(f => f.relativePath === 'README.md');
197
144
  if (globalReadme)
@@ -199,21 +146,15 @@ class CodeAnalyzer {
199
146
  }
200
147
  return result;
201
148
  }
202
- /**
203
- * Analyze a file (code or documentation) with unified dispatcher
204
- */
205
149
  async analyzeFile(filePath, relativePath, allFiles) {
206
- // Detect file type and route accordingly
207
150
  if (this.isDocFile(filePath)) {
208
- return await this.analyzeDocumentation(filePath, relativePath);
209
- }
210
- else {
211
- return await this.analyzeCode(filePath, relativePath, allFiles);
151
+ return await this.docCurator.curateFile(filePath);
212
152
  }
153
+ return await this.analyzeCode(filePath, relativePath, allFiles);
154
+ }
155
+ isDocFile(filePath) {
156
+ return ['.md', '.txt', '.pdf'].some(ext => filePath.toLowerCase().endsWith(ext));
213
157
  }
214
- /**
215
- * Analyze a code file with optional associated documentation
216
- */
217
158
  async analyzeCode(filePath, relativePath, allFiles) {
218
159
  const start = Date.now();
219
160
  const result = {
@@ -223,7 +164,6 @@ class CodeAnalyzer {
223
164
  durationMs: 0,
224
165
  filesAnalyzed: [relativePath],
225
166
  };
226
- // Read code file
227
167
  let code;
228
168
  try {
229
169
  code = await fs.readFile(filePath, 'utf-8');
@@ -233,7 +173,6 @@ class CodeAnalyzer {
233
173
  result.durationMs = Date.now() - start;
234
174
  return result;
235
175
  }
236
- // Find associated documentation
237
176
  let context = {
238
177
  fullPath: filePath,
239
178
  relativePath,
@@ -246,28 +185,21 @@ class CodeAnalyzer {
246
185
  try {
247
186
  context.docContent = await fs.readFile(associated.docFile, 'utf-8');
248
187
  }
249
- catch {
250
- // ignore if can't read doc file
251
- }
188
+ catch { /* ignore */ }
252
189
  }
253
190
  if (associated.contextFile) {
254
191
  try {
255
192
  context.contextContent = await fs.readFile(associated.contextFile, 'utf-8');
256
193
  }
257
- catch {
258
- // ignore if can't read context file
259
- }
194
+ catch { /* ignore */ }
260
195
  }
261
196
  if (associated.readmeFile) {
262
197
  try {
263
198
  context.readmeContent = await fs.readFile(associated.readmeFile, 'utf-8');
264
199
  }
265
- catch {
266
- // ignore if can't read readme
267
- }
200
+ catch { /* ignore */ }
268
201
  }
269
202
  }
270
- // Analyze with LLM
271
203
  let parsed;
272
204
  try {
273
205
  parsed = await this.callLLM(context);
@@ -282,12 +214,14 @@ class CodeAnalyzer {
282
214
  result.durationMs = Date.now() - start;
283
215
  return result;
284
216
  }
285
- // Write notes to vault
286
217
  const date = new Date().toISOString().slice(0, 10);
287
218
  const sourcesCombined = allFiles ? this.getSourcesCombined(filePath, allFiles) : [relativePath];
219
+ // Borra las notas previas generadas desde este mismo archivo para no acumular
220
+ // duplicados cuando el LLM produce un título distinto en cada corrida.
221
+ await removeNotesForSource(this.vaultPath, filePath);
288
222
  for (const note of parsed.notes) {
289
223
  try {
290
- const written = await this.writeNote(note, path.basename(filePath), date, sourcesCombined);
224
+ const written = await this.writeNote(note, path.basename(filePath), date, filePath, sourcesCombined);
291
225
  if (written === null) {
292
226
  result.notesSkipped.push(note.title);
293
227
  }
@@ -302,32 +236,16 @@ class CodeAnalyzer {
302
236
  result.durationMs = Date.now() - start;
303
237
  return result;
304
238
  }
305
- /**
306
- * Analyze a documentation file (.md, .txt)
307
- */
308
- async analyzeDocumentation(filePath, relativePath) {
309
- return await this.docCurator.curateFile(filePath);
310
- }
311
- /**
312
- * Check if file is a documentation file
313
- */
314
- isDocFile(filePath) {
315
- return ['.md', '.txt'].some(ext => filePath.toLowerCase().endsWith(ext));
316
- }
317
- // ── Private ────────────────────────────────────────────────────────────────
318
239
  getSourcesCombined(filePath, allFiles) {
319
240
  const basename = path.basename(filePath, path.extname(filePath));
320
241
  const dirname = path.dirname(filePath);
321
242
  const sources = [];
322
- // Add the main file
323
243
  const mainFile = allFiles.find(f => f.fullPath === filePath);
324
244
  if (mainFile)
325
245
  sources.push(mainFile.relativePath);
326
- // Add associated doc
327
246
  const docFile = allFiles.find(f => f.fullPath === path.join(dirname, `${basename}.md`));
328
247
  if (docFile)
329
248
  sources.push(docFile.relativePath);
330
- // Add README if in same dir
331
249
  const readmeFile = allFiles.find(f => f.fullPath === path.join(dirname, 'README.md'));
332
250
  if (readmeFile)
333
251
  sources.push(readmeFile.relativePath);
@@ -337,7 +255,7 @@ class CodeAnalyzer {
337
255
  const truncated = context.codeContent.slice(0, this.maxInputChars);
338
256
  let userMsg = `File: ${context.relativePath}\nLanguage: ${context.language}\n\nCODE:\n\`\`\`\n${truncated}\n\`\`\``;
339
257
  if (context.docContent) {
340
- userMsg += `\n\nASSociated Documentation:\n${context.docContent.slice(0, 5000)}`;
258
+ userMsg += `\n\nAssociated Documentation:\n${context.docContent.slice(0, 5000)}`;
341
259
  }
342
260
  if (context.readmeContent) {
343
261
  userMsg += `\n\nProject Context (README):\n${context.readmeContent.slice(0, 3000)}`;
@@ -359,7 +277,7 @@ class CodeAnalyzer {
359
277
  }
360
278
  return CodeAnalysisResponseSchema.parse(parsed);
361
279
  }
362
- async writeNote(note, source, date, sourcesCombined) {
280
+ async writeNote(note, source, date, sourcePath, sourcesCombined) {
363
281
  const dir = path.join(this.vaultPath, note.area);
364
282
  const slug = slugify(note.title);
365
283
  const filename = `${date}-${slug}.md`;
@@ -372,10 +290,9 @@ class CodeAnalyzer {
372
290
  // doesn't exist — proceed
373
291
  }
374
292
  await fs.mkdir(dir, { recursive: true });
375
- const content = buildFrontmatter(note, source, date, sourcesCombined);
293
+ const content = buildFrontmatter(note, source, date, sourcePath, sourcesCombined);
376
294
  await fs.writeFile(filePath, content, 'utf-8');
377
295
  return filePath;
378
296
  }
379
297
  }
380
- exports.CodeAnalyzer = CodeAnalyzer;
381
298
  //# sourceMappingURL=analyzer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../src/analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ export type CodexEvent = 'curate.file.done' | 'curate.file.skipped' | 'curate.file.failed' | 'curate.dir.start' | 'curate.dir.done' | 'curate.dir.failed' | 'curate.git.start' | 'curate.git.done' | 'curate.git.failed' | 'curate.http.done' | 'curate.http.failed' | 'vault.search' | 'note.read' | 'note.read.failed' | 'vault.clone.done' | 'vault.reindex' | 'vault.reset' | 'vault.prune_orphans' | 'embedder.init';
2
+ export interface CodexAuditEntry {
3
+ ts: string;
4
+ event: CodexEvent;
5
+ project: string;
6
+ path?: string;
7
+ url?: string;
8
+ query?: string;
9
+ status?: string;
10
+ durationMs?: number;
11
+ error?: string;
12
+ extra?: Record<string, unknown>;
13
+ }
14
+ export declare class CodexAuditLogger {
15
+ private readonly logPath;
16
+ private readonly project;
17
+ private ensured;
18
+ constructor(logPath: string, project: string);
19
+ log(entry: Omit<CodexAuditEntry, 'ts' | 'project'>): Promise<void>;
20
+ /** Fire-and-forget — no bloquea la ejecución de la tool. */
21
+ write(entry: Omit<CodexAuditEntry, 'ts' | 'project'>): void;
22
+ /** Lee todas las entradas del log. */
23
+ readAll(): Promise<CodexAuditEntry[]>;
24
+ get path(): string;
25
+ }
26
+ export declare function buildCodexAuditPath(project: string, custom?: string): string;
27
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,UAAU,GAEhB,kBAAkB,GAClB,qBAAqB,GACrB,oBAAoB,GACpB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GAEnB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,kBAAkB,GAClB,oBAAoB,GAEpB,cAAc,GACd,WAAW,GACX,kBAAkB,GAElB,kBAAkB,GAClB,eAAe,GACf,aAAa,GACb,qBAAqB,GAErB,eAAe,CAAC;AAEtB,MAAM,WAAW,eAAe;IAC5B,EAAE,EAAW,MAAM,CAAC;IACpB,KAAK,EAAQ,UAAU,CAAC;IACxB,OAAO,EAAM,MAAM,CAAC;IACpB,IAAI,CAAC,EAAQ,MAAM,CAAC;IACpB,GAAG,CAAC,EAAS,MAAM,CAAC;IACpB,KAAK,CAAC,EAAO,MAAM,CAAC;IACpB,MAAM,CAAC,EAAM,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAO,MAAM,CAAC;IACpB,KAAK,CAAC,EAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAID,qBAAa,gBAAgB;IAIrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ5B,OAAO,CAAC,OAAO,CAA8B;gBAGxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM;IAG9B,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASxE,4DAA4D;IAC5D,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI;IAM3D,sCAAsC;IAChC,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAO3C,IAAI,IAAI,IAAI,MAAM,CAAyB;CAC9C;AAID,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAI5E"}
package/dist/audit.js ADDED
@@ -0,0 +1,43 @@
1
+ import * as fs from 'node:fs/promises';
2
+ import * as path from 'node:path';
3
+ import * as os from 'node:os';
4
+ // ── Logger ────────────────────────────────────────────────────────────────────
5
+ export class CodexAuditLogger {
6
+ logPath;
7
+ project;
8
+ ensured = null;
9
+ constructor(logPath, project) {
10
+ this.logPath = logPath;
11
+ this.project = project;
12
+ }
13
+ async log(entry) {
14
+ if (!this.ensured) {
15
+ this.ensured = fs.mkdir(path.dirname(this.logPath), { recursive: true }).then(() => undefined);
16
+ }
17
+ await this.ensured;
18
+ const full = { ts: new Date().toISOString(), project: this.project, ...entry };
19
+ await fs.appendFile(this.logPath, JSON.stringify(full) + '\n', 'utf-8');
20
+ }
21
+ /** Fire-and-forget — no bloquea la ejecución de la tool. */
22
+ write(entry) {
23
+ this.log(entry).catch(err => process.stderr.write(`[codex-audit] error: ${err.message}\n`));
24
+ }
25
+ /** Lee todas las entradas del log. */
26
+ async readAll() {
27
+ try {
28
+ const raw = await fs.readFile(this.logPath, 'utf-8');
29
+ return raw.split('\n').filter(l => l.trim()).map(l => JSON.parse(l));
30
+ }
31
+ catch {
32
+ return [];
33
+ }
34
+ }
35
+ get path() { return this.logPath; }
36
+ }
37
+ // ── Factory ───────────────────────────────────────────────────────────────────
38
+ export function buildCodexAuditPath(project, custom) {
39
+ return custom
40
+ ? path.resolve(custom)
41
+ : path.join(os.homedir(), '.backendkit', 'audit', `codex-${project}.ndjson`);
42
+ }
43
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAQ,kBAAkB,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAQ,SAAS,CAAC;AA2ChC,iFAAiF;AAEjF,MAAM,OAAO,gBAAgB;IAIJ;IACA;IAJb,OAAO,GAAyB,IAAI,CAAC;IAE7C,YACqB,OAAe,EACf,OAAe;QADf,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAQ;IACjC,CAAC;IAEJ,KAAK,CAAC,GAAG,CAAC,KAA8C;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACnG,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC;QACnB,MAAM,IAAI,GAAoB,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;QAChG,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,KAA8C;QAChD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAyB,GAAa,CAAC,OAAO,IAAI,CAAC,CAC3E,CAAC;IACN,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,OAAO;QACT,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrD,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAoB,CAAC,CAAC;QAC5F,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CAC9C;AAED,iFAAiF;AAEjF,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,MAAe;IAChE,OAAO,MAAM;QACT,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACtB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,OAAO,SAAS,CAAC,CAAC;AACrF,CAAC"}
@@ -19,29 +19,11 @@ export interface CodexManifest {
19
19
  status: 'success' | 'failed' | 'skipped';
20
20
  }>;
21
21
  }
22
- /**
23
- * Calculate SHA256 hash of a file
24
- */
25
22
  export declare function calculateFileHash(filePath: string): Promise<string>;
26
- /**
27
- * Load manifest from INPUT_PATH
28
- */
29
23
  export declare function loadManifest(inputPath: string): Promise<CodexManifest | null>;
30
- /**
31
- * Save manifest to INPUT_PATH
32
- */
33
24
  export declare function saveManifest(inputPath: string, manifest: CodexManifest): Promise<void>;
34
- /**
35
- * Check if file changed since last analysis
36
- */
37
25
  export declare function hasFileChanged(filePath: string, relativePath: string, manifest: CodexManifest | null): Promise<boolean>;
38
- /**
39
- * Create initial manifest
40
- */
41
26
  export declare function createManifest(inputPath: string, outputPath: string): CodexManifest;
42
- /**
43
- * Update manifest with file analysis result
44
- */
45
27
  export declare function updateManifestEntry(manifest: CodexManifest, filePath: string, relativePath: string, status: 'success' | 'failed' | 'skipped'): Promise<void>;
46
28
  export declare function isCodeFile(filePath: string): boolean;
47
29
  export declare function isDocFile(filePath: string): boolean;
@@ -49,8 +31,4 @@ export declare function findAllFiles(dirPath: string, relativePath?: string): Pr
49
31
  fullPath: string;
50
32
  relativePath: string;
51
33
  }>>;
52
- /**
53
- * Generate analysis report
54
- */
55
- export declare function generateReport(manifest: CodexManifest): string;
56
34
  //# sourceMappingURL=checksum.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../src/checksum.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;KAC5C,CAAC,CAAC;CACN;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAQnF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAC9B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,aAAa,GACxB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,aAAa,GAAG,IAAI,GAC/B,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACnB,aAAa,CASf;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GACzC,OAAO,CAAC,IAAI,CAAC,CAYf;AAWD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAsB,YAAY,CAC9B,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,MAAW,GAC1B,OAAO,CAAC,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAqC5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAkB9D"}
1
+ {"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../src/checksum.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,KAAK,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;KAC5C,CAAC,CAAC;CACN;AAED,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGzE;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAQnF;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5F;AAED,wBAAsB,cAAc,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,aAAa,GAAG,IAAI,GAC/B,OAAO,CAAC,OAAO,CAAC,CAMlB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,CASnF;AAED,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GACzC,OAAO,CAAC,IAAI,CAAC,CAWf;AAQD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAsB,YAAY,CAC9B,OAAO,EAAE,MAAM,EACf,YAAY,GAAE,MAAW,GAC1B,OAAO,CAAC,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAmC5D"}