@backendkit-labs/curator-codex-agent 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT.md +187 -0
- package/README.md +475 -0
- package/dist/analyzer.d.ts +44 -0
- package/dist/analyzer.d.ts.map +1 -0
- package/dist/analyzer.js +381 -0
- package/dist/analyzer.js.map +1 -0
- package/dist/api/config.d.ts +57 -0
- package/dist/api/config.d.ts.map +1 -0
- package/dist/api/config.js +183 -0
- package/dist/api/config.js.map +1 -0
- package/dist/api/http-server.d.ts +24 -0
- package/dist/api/http-server.d.ts.map +1 -0
- package/dist/api/http-server.js +108 -0
- package/dist/api/http-server.js.map +1 -0
- package/dist/api/routes.d.ts +8 -0
- package/dist/api/routes.d.ts.map +1 -0
- package/dist/api/routes.js +382 -0
- package/dist/api/routes.js.map +1 -0
- package/dist/api/security.d.ts +107 -0
- package/dist/api/security.d.ts.map +1 -0
- package/dist/api/security.js +200 -0
- package/dist/api/security.js.map +1 -0
- package/dist/checksum.d.ts +56 -0
- package/dist/checksum.d.ts.map +1 -0
- package/dist/checksum.js +186 -0
- package/dist/checksum.js.map +1 -0
- package/dist/documentation-curator.d.ts +18 -0
- package/dist/documentation-curator.d.ts.map +1 -0
- package/dist/documentation-curator.js +231 -0
- package/dist/documentation-curator.js.map +1 -0
- package/dist/http-server-main.d.ts +28 -0
- package/dist/http-server-main.d.ts.map +1 -0
- package/dist/http-server-main.js +69 -0
- package/dist/http-server-main.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/knowledge/engine.d.ts +90 -0
- package/dist/knowledge/engine.d.ts.map +1 -0
- package/dist/knowledge/engine.js +181 -0
- package/dist/knowledge/engine.js.map +1 -0
- package/dist/knowledge/rag-provider.d.ts +87 -0
- package/dist/knowledge/rag-provider.d.ts.map +1 -0
- package/dist/knowledge/rag-provider.js +189 -0
- package/dist/knowledge/rag-provider.js.map +1 -0
- package/dist/knowledge/synthesis.d.ts +27 -0
- package/dist/knowledge/synthesis.d.ts.map +1 -0
- package/dist/knowledge/synthesis.js +142 -0
- package/dist/knowledge/synthesis.js.map +1 -0
- package/dist/providers/anthropic-adapter.d.ts +14 -0
- package/dist/providers/anthropic-adapter.d.ts.map +1 -0
- package/dist/providers/anthropic-adapter.js +29 -0
- package/dist/providers/anthropic-adapter.js.map +1 -0
- package/dist/providers/index.d.ts +14 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +29 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai-adapter.d.ts +16 -0
- package/dist/providers/openai-adapter.d.ts.map +1 -0
- package/dist/providers/openai-adapter.js +37 -0
- package/dist/providers/openai-adapter.js.map +1 -0
- package/dist/providers/types.d.ts +4 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +3 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/server.d.ts +33 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +640 -0
- package/dist/server.js.map +1 -0
- package/dist/types.d.ts +41 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/watcher.d.ts +26 -0
- package/dist/watcher.d.ts.map +1 -0
- package/dist/watcher.js +168 -0
- package/dist/watcher.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,231 @@
|
|
|
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;
|
|
17
|
+
});
|
|
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.DocumentationCurator = 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 DocumentationNoteSchema = zod_1.z.object({
|
|
41
|
+
type: zod_1.z.enum(['politica', 'decision', 'procedimiento', 'leccion', 'norma_externa']),
|
|
42
|
+
area: zod_1.z.enum(['rrhh', 'finanzas', 'operaciones', 'ventas', 'soporte', 'legal', 'calidad', 'general']),
|
|
43
|
+
title: zod_1.z.string().max(120),
|
|
44
|
+
resumen: zod_1.z.string().max(500),
|
|
45
|
+
content: zod_1.z.string(),
|
|
46
|
+
tags: zod_1.z.array(zod_1.z.string()),
|
|
47
|
+
vigente_desde: zod_1.z.string().optional(),
|
|
48
|
+
version: zod_1.z.number().optional(),
|
|
49
|
+
expires_at: zod_1.z.string().optional(),
|
|
50
|
+
decidido_por: zod_1.z.array(zod_1.z.string()).optional(),
|
|
51
|
+
aplica_a: zod_1.z.array(zod_1.z.string()).optional(),
|
|
52
|
+
});
|
|
53
|
+
const DocumentationResponseSchema = zod_1.z.object({
|
|
54
|
+
notes: zod_1.z.array(DocumentationNoteSchema),
|
|
55
|
+
});
|
|
56
|
+
const SYSTEM_PROMPT = `\
|
|
57
|
+
You are a Knowledge Curator for an enterprise vault.
|
|
58
|
+
Your task: analyze a document and extract structured knowledge notes.
|
|
59
|
+
|
|
60
|
+
IMPORTANT: Return ONLY a valid JSON object — no markdown, no prose, no code fences.
|
|
61
|
+
|
|
62
|
+
Schema (return exactly this shape):
|
|
63
|
+
{
|
|
64
|
+
"notes": [
|
|
65
|
+
{
|
|
66
|
+
"type": "politica" | "decision" | "procedimiento" | "leccion" | "norma_externa",
|
|
67
|
+
"area": "rrhh" | "finanzas" | "operaciones" | "ventas" | "soporte" | "legal" | "calidad" | "general",
|
|
68
|
+
"title": string, // Specific and searchable. Max 120 chars.
|
|
69
|
+
"resumen": string, // 1-2 sentences DENSE with key terms, numbers, rules, names.
|
|
70
|
+
"content": string, // Markdown with ## sections. Extract facts, rules, actions.
|
|
71
|
+
"tags": string[], // e.g. ["área/rrhh", "tipo/politica", "estado/vigente"]
|
|
72
|
+
"vigente_desde": "YYYY-MM-DD" | undefined,
|
|
73
|
+
"version": number | undefined,
|
|
74
|
+
"expires_at": "YYYY-MM-DD" | undefined,
|
|
75
|
+
"decidido_por": string[] | undefined,
|
|
76
|
+
"aplica_a": string[] | undefined
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
Rules:
|
|
82
|
+
- If the document covers multiple areas, create one note per area (max 5 total).
|
|
83
|
+
- Each note must be self-contained.
|
|
84
|
+
- "resumen" must contain all key searchable terms: amounts, dates, percentages, proper nouns.
|
|
85
|
+
- "content" must use ## headings.
|
|
86
|
+
- Documents in any language are valid. Output in the same language as the document.
|
|
87
|
+
- If the document has no enterprise relevance, return { "notes": [] }.`;
|
|
88
|
+
function slugify(title) {
|
|
89
|
+
return title
|
|
90
|
+
.toLowerCase()
|
|
91
|
+
.normalize('NFD')
|
|
92
|
+
.replace(/[̀-ͯ]/g, '')
|
|
93
|
+
.replace(/[^a-z0-9\s-]/g, '')
|
|
94
|
+
.trim()
|
|
95
|
+
.replace(/\s+/g, '-')
|
|
96
|
+
.slice(0, 60);
|
|
97
|
+
}
|
|
98
|
+
function buildFrontmatter(note, source, date) {
|
|
99
|
+
const tagsLine = `[${note.tags.map(t => `"${t}"`).join(', ')}]`;
|
|
100
|
+
const lines = [
|
|
101
|
+
'---',
|
|
102
|
+
`title: "${note.title.replace(/"/g, '\\"')}"`,
|
|
103
|
+
`area: ${note.area}`,
|
|
104
|
+
`tipo: ${note.type}`,
|
|
105
|
+
`resumen: "${note.resumen.replace(/"/g, '\\"')}"`,
|
|
106
|
+
`author: "agent/codex"`,
|
|
107
|
+
`date: ${date}`,
|
|
108
|
+
`source_ref: "${source}"`,
|
|
109
|
+
`tags: ${tagsLine}`,
|
|
110
|
+
];
|
|
111
|
+
if (note.vigente_desde)
|
|
112
|
+
lines.push(`vigente_desde: ${note.vigente_desde}`);
|
|
113
|
+
if (note.version)
|
|
114
|
+
lines.push(`version: ${note.version}`);
|
|
115
|
+
if (note.expires_at)
|
|
116
|
+
lines.push(`expires_at: ${note.expires_at}`);
|
|
117
|
+
if (note.decidido_por?.length) {
|
|
118
|
+
lines.push(`decidido_por: [${note.decidido_por.map(d => `"${d}"`).join(', ')}]`);
|
|
119
|
+
}
|
|
120
|
+
if (note.aplica_a?.length) {
|
|
121
|
+
lines.push(`aplica_a: [${note.aplica_a.map(a => `"${a}"`).join(', ')}]`);
|
|
122
|
+
}
|
|
123
|
+
lines.push('---', '', note.content);
|
|
124
|
+
return lines.join('\n');
|
|
125
|
+
}
|
|
126
|
+
class DocumentationCurator {
|
|
127
|
+
provider;
|
|
128
|
+
vaultPath;
|
|
129
|
+
maxInputChars;
|
|
130
|
+
constructor(opts) {
|
|
131
|
+
this.provider = opts.provider;
|
|
132
|
+
this.vaultPath = opts.vaultPath;
|
|
133
|
+
this.maxInputChars = opts.maxInputChars ?? 12_000;
|
|
134
|
+
}
|
|
135
|
+
async curateText(text, source, areaHint) {
|
|
136
|
+
const start = Date.now();
|
|
137
|
+
const result = {
|
|
138
|
+
notesWritten: [],
|
|
139
|
+
notesSkipped: [],
|
|
140
|
+
errors: [],
|
|
141
|
+
durationMs: 0,
|
|
142
|
+
};
|
|
143
|
+
let parsed;
|
|
144
|
+
try {
|
|
145
|
+
parsed = await this.callLLM(text, source, areaHint);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
result.errors.push(`LLM call failed: ${err.message}`);
|
|
149
|
+
result.durationMs = Date.now() - start;
|
|
150
|
+
return result;
|
|
151
|
+
}
|
|
152
|
+
if (!parsed.notes.length) {
|
|
153
|
+
result.errors.push('LLM returned no notes — document may not have enterprise relevance.');
|
|
154
|
+
result.durationMs = Date.now() - start;
|
|
155
|
+
return result;
|
|
156
|
+
}
|
|
157
|
+
const date = new Date().toISOString().slice(0, 10);
|
|
158
|
+
for (const note of parsed.notes) {
|
|
159
|
+
try {
|
|
160
|
+
const written = await this.writeNote(note, source, date);
|
|
161
|
+
if (written === null) {
|
|
162
|
+
result.notesSkipped.push(note.title);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
result.notesWritten.push(written);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
result.errors.push(`Failed to write "${note.title}": ${err.message}`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
result.durationMs = Date.now() - start;
|
|
173
|
+
return result;
|
|
174
|
+
}
|
|
175
|
+
async curateFile(filePath, areaHint) {
|
|
176
|
+
let text;
|
|
177
|
+
try {
|
|
178
|
+
text = await fs.readFile(filePath, 'utf-8');
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
return {
|
|
182
|
+
notesWritten: [],
|
|
183
|
+
notesSkipped: [],
|
|
184
|
+
errors: [`Cannot read file: ${err.message}`],
|
|
185
|
+
durationMs: 0,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
const source = path.basename(filePath);
|
|
189
|
+
return await this.curateText(text, source, areaHint);
|
|
190
|
+
}
|
|
191
|
+
// ── Private ────────────────────────────────────────────────────────────────
|
|
192
|
+
async callLLM(text, source, areaHint) {
|
|
193
|
+
const truncated = text.slice(0, this.maxInputChars);
|
|
194
|
+
const hintLine = areaHint ? `\nArea hint: this document is primarily about "${areaHint}".` : '';
|
|
195
|
+
const userMsg = `Source: ${source}${hintLine}\n\nDocument:\n${truncated}`;
|
|
196
|
+
const raw = await this.provider.complete(SYSTEM_PROMPT, userMsg);
|
|
197
|
+
const jsonStr = raw.replace(/^```(?:json)?\s*/i, '').replace(/\s*```\s*$/, '').trim();
|
|
198
|
+
const sanitized = jsonStr.replace(/:\s*undefined/g, ': null');
|
|
199
|
+
const parsed = JSON.parse(sanitized);
|
|
200
|
+
if (Array.isArray(parsed?.notes)) {
|
|
201
|
+
for (const note of parsed.notes) {
|
|
202
|
+
if (typeof note.resumen === 'string' && note.resumen.length > 500) {
|
|
203
|
+
note.resumen = note.resumen.slice(0, 497) + '…';
|
|
204
|
+
}
|
|
205
|
+
for (const key of ['vigente_desde', 'version', 'expires_at', 'decidido_por', 'aplica_a']) {
|
|
206
|
+
if (note[key] === null)
|
|
207
|
+
delete note[key];
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return DocumentationResponseSchema.parse(parsed);
|
|
212
|
+
}
|
|
213
|
+
async writeNote(note, source, date) {
|
|
214
|
+
const dir = path.join(this.vaultPath, note.area);
|
|
215
|
+
const slug = slugify(note.title);
|
|
216
|
+
const filename = `${date}-${slug}.md`;
|
|
217
|
+
const filePath = path.join(dir, filename);
|
|
218
|
+
try {
|
|
219
|
+
await fs.access(filePath);
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
// doesn't exist — proceed
|
|
224
|
+
}
|
|
225
|
+
await fs.mkdir(dir, { recursive: true });
|
|
226
|
+
await fs.writeFile(filePath, buildFrontmatter(note, source, date), 'utf-8');
|
|
227
|
+
return filePath;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
exports.DocumentationCurator = DocumentationCurator;
|
|
231
|
+
//# sourceMappingURL=documentation-curator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation-curator.js","sourceRoot":"","sources":["../src/documentation-curator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* curator-codex-http — HTTP server for unified curation + knowledge
|
|
4
|
+
*
|
|
5
|
+
* Required env vars:
|
|
6
|
+
* CURATOR_API_KEY — LLM API key
|
|
7
|
+
* CURATOR_OUTPUT_PATH — Vault path
|
|
8
|
+
*
|
|
9
|
+
* Optional:
|
|
10
|
+
* CURATOR_INPUT_PATH — Code/doc directory to curate
|
|
11
|
+
* CURATOR_HTTP_PORT — Server port (default: 3100)
|
|
12
|
+
* CURATOR_PROVIDER — LLM provider (default: deepseek)
|
|
13
|
+
* CURATOR_MODEL — LLM model (default: deepseek-reasoner)
|
|
14
|
+
* CURATOR_BASE_URL — Custom LLM base URL
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* npm run http-server
|
|
18
|
+
* CURATOR_OUTPUT_PATH=/vault CURATOR_API_KEY=sk-... npm run http-server
|
|
19
|
+
*
|
|
20
|
+
* API Examples:
|
|
21
|
+
* GET http://localhost:3100/ # Info
|
|
22
|
+
* GET http://localhost:3100/status # Status
|
|
23
|
+
* GET http://localhost:3100/curator/config
|
|
24
|
+
* POST http://localhost:3100/curator/config
|
|
25
|
+
* POST http://localhost:3100/curator/process
|
|
26
|
+
*/
|
|
27
|
+
import 'dotenv/config';
|
|
28
|
+
//# sourceMappingURL=http-server-main.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server-main.d.ts","sourceRoot":"","sources":["../src/http-server-main.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,eAAe,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* curator-codex-http — HTTP server for unified curation + knowledge
|
|
5
|
+
*
|
|
6
|
+
* Required env vars:
|
|
7
|
+
* CURATOR_API_KEY — LLM API key
|
|
8
|
+
* CURATOR_OUTPUT_PATH — Vault path
|
|
9
|
+
*
|
|
10
|
+
* Optional:
|
|
11
|
+
* CURATOR_INPUT_PATH — Code/doc directory to curate
|
|
12
|
+
* CURATOR_HTTP_PORT — Server port (default: 3100)
|
|
13
|
+
* CURATOR_PROVIDER — LLM provider (default: deepseek)
|
|
14
|
+
* CURATOR_MODEL — LLM model (default: deepseek-reasoner)
|
|
15
|
+
* CURATOR_BASE_URL — Custom LLM base URL
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* npm run http-server
|
|
19
|
+
* CURATOR_OUTPUT_PATH=/vault CURATOR_API_KEY=sk-... npm run http-server
|
|
20
|
+
*
|
|
21
|
+
* API Examples:
|
|
22
|
+
* GET http://localhost:3100/ # Info
|
|
23
|
+
* GET http://localhost:3100/status # Status
|
|
24
|
+
* GET http://localhost:3100/curator/config
|
|
25
|
+
* POST http://localhost:3100/curator/config
|
|
26
|
+
* POST http://localhost:3100/curator/process
|
|
27
|
+
*/
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
require("dotenv/config");
|
|
30
|
+
const http_server_js_1 = require("./api/http-server.js");
|
|
31
|
+
async function main() {
|
|
32
|
+
const outputPath = process.env.CURATOR_OUTPUT_PATH;
|
|
33
|
+
const port = process.env.CURATOR_HTTP_PORT ? parseInt(process.env.CURATOR_HTTP_PORT) : 3100;
|
|
34
|
+
if (!outputPath) {
|
|
35
|
+
console.error('✗ CURATOR_OUTPUT_PATH is required');
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
if (!process.env.CURATOR_API_KEY) {
|
|
39
|
+
console.error('✗ CURATOR_API_KEY is required');
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
const server = new http_server_js_1.CuratorHttpServer({
|
|
43
|
+
port,
|
|
44
|
+
apiConfig: {
|
|
45
|
+
inputPath: process.env.CURATOR_INPUT_PATH,
|
|
46
|
+
outputPath,
|
|
47
|
+
provider: process.env.CURATOR_PROVIDER,
|
|
48
|
+
model: process.env.CURATOR_MODEL,
|
|
49
|
+
baseUrl: process.env.CURATOR_BASE_URL,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
await server.start();
|
|
53
|
+
// Graceful shutdown
|
|
54
|
+
process.on('SIGINT', async () => {
|
|
55
|
+
console.log('\n\n Shutting down...');
|
|
56
|
+
await server.stop();
|
|
57
|
+
process.exit(0);
|
|
58
|
+
});
|
|
59
|
+
process.on('SIGTERM', async () => {
|
|
60
|
+
console.log('\n\n Shutting down...');
|
|
61
|
+
await server.stop();
|
|
62
|
+
process.exit(0);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
main().catch((err) => {
|
|
66
|
+
console.error('Fatal error:', err);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=http-server-main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-server-main.js","sourceRoot":"","sources":["../src/http-server-main.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;AAEH,yBAAuB;AACvB,yDAAyD;AAEzD,KAAK,UAAU,IAAI;IACf,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5F,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,kCAAiB,CAAC;QACjC,IAAI;QACJ,SAAS,EAAE;YACP,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;YACzC,UAAU;YACV,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;YACtC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;YAChC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;SACxC;KACJ,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,oBAAoB;IACpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { CodeAnalyzer } from './analyzer.js';
|
|
2
|
+
export { DocumentationCurator } from './documentation-curator.js';
|
|
3
|
+
export type { CodeAnalysisNote, CodeAnalysisResult, FileAnalysisContext, AssociatedDocs } from './types.js';
|
|
4
|
+
export { createProvider } from './providers/index.js';
|
|
5
|
+
export type { CuratorLLMProvider } from './providers/types.js';
|
|
6
|
+
export { OpenAIAdapter, AnthropicAdapter } from './providers/index.js';
|
|
7
|
+
export { CuratorHttpServer } from './api/http-server.js';
|
|
8
|
+
export { ConfigManager } from './api/config.js';
|
|
9
|
+
export type { ApiConfig } from './api/config.js';
|
|
10
|
+
export { CuratorRagProvider } from './knowledge/rag-provider.js';
|
|
11
|
+
export type { RagSearchResult, RagSearchOptions } from './knowledge/rag-provider.js';
|
|
12
|
+
export { KnowledgeSynthesizer } from './knowledge/synthesis.js';
|
|
13
|
+
export type { SynthesizedNote } from './knowledge/synthesis.js';
|
|
14
|
+
export { KnowledgeEngine } from './knowledge/engine.js';
|
|
15
|
+
export type { SearchResponse, ReloadResponse } from './knowledge/engine.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KnowledgeEngine = exports.KnowledgeSynthesizer = exports.CuratorRagProvider = exports.ConfigManager = exports.CuratorHttpServer = exports.AnthropicAdapter = exports.OpenAIAdapter = exports.createProvider = exports.DocumentationCurator = exports.CodeAnalyzer = void 0;
|
|
4
|
+
var analyzer_js_1 = require("./analyzer.js");
|
|
5
|
+
Object.defineProperty(exports, "CodeAnalyzer", { enumerable: true, get: function () { return analyzer_js_1.CodeAnalyzer; } });
|
|
6
|
+
var documentation_curator_js_1 = require("./documentation-curator.js");
|
|
7
|
+
Object.defineProperty(exports, "DocumentationCurator", { enumerable: true, get: function () { return documentation_curator_js_1.DocumentationCurator; } });
|
|
8
|
+
var index_js_1 = require("./providers/index.js");
|
|
9
|
+
Object.defineProperty(exports, "createProvider", { enumerable: true, get: function () { return index_js_1.createProvider; } });
|
|
10
|
+
var index_js_2 = require("./providers/index.js");
|
|
11
|
+
Object.defineProperty(exports, "OpenAIAdapter", { enumerable: true, get: function () { return index_js_2.OpenAIAdapter; } });
|
|
12
|
+
Object.defineProperty(exports, "AnthropicAdapter", { enumerable: true, get: function () { return index_js_2.AnthropicAdapter; } });
|
|
13
|
+
var http_server_js_1 = require("./api/http-server.js");
|
|
14
|
+
Object.defineProperty(exports, "CuratorHttpServer", { enumerable: true, get: function () { return http_server_js_1.CuratorHttpServer; } });
|
|
15
|
+
var config_js_1 = require("./api/config.js");
|
|
16
|
+
Object.defineProperty(exports, "ConfigManager", { enumerable: true, get: function () { return config_js_1.ConfigManager; } });
|
|
17
|
+
var rag_provider_js_1 = require("./knowledge/rag-provider.js");
|
|
18
|
+
Object.defineProperty(exports, "CuratorRagProvider", { enumerable: true, get: function () { return rag_provider_js_1.CuratorRagProvider; } });
|
|
19
|
+
var synthesis_js_1 = require("./knowledge/synthesis.js");
|
|
20
|
+
Object.defineProperty(exports, "KnowledgeSynthesizer", { enumerable: true, get: function () { return synthesis_js_1.KnowledgeSynthesizer; } });
|
|
21
|
+
var engine_js_1 = require("./knowledge/engine.js");
|
|
22
|
+
Object.defineProperty(exports, "KnowledgeEngine", { enumerable: true, get: function () { return engine_js_1.KnowledgeEngine; } });
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAApC,2GAAA,YAAY,OAAA;AACrB,uEAAkE;AAAzD,gIAAA,oBAAoB,OAAA;AAE7B,iDAAsD;AAA7C,0GAAA,cAAc,OAAA;AAEvB,iDAAuE;AAA9D,yGAAA,aAAa,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AACxC,uDAAyD;AAAhD,mHAAA,iBAAiB,OAAA;AAC1B,6CAAgD;AAAvC,0GAAA,aAAa,OAAA;AAEtB,+DAAiE;AAAxD,qHAAA,kBAAkB,OAAA;AAE3B,yDAAgE;AAAvD,oHAAA,oBAAoB,OAAA;AAE7B,mDAAwD;AAA/C,4GAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Knowledge Engine
|
|
3
|
+
* Orchestrates RAG search, synthesis, and vault indexing
|
|
4
|
+
*/
|
|
5
|
+
import { type RagSearchResult } from './rag-provider.js';
|
|
6
|
+
import type { CuratorLLMProvider } from '../providers/types.js';
|
|
7
|
+
export interface SearchResponse {
|
|
8
|
+
query: string;
|
|
9
|
+
results: RagSearchResult[];
|
|
10
|
+
synthesized?: {
|
|
11
|
+
title: string;
|
|
12
|
+
content: string;
|
|
13
|
+
basedOn: string[];
|
|
14
|
+
};
|
|
15
|
+
totalResults: number;
|
|
16
|
+
durationMs: number;
|
|
17
|
+
}
|
|
18
|
+
export interface ReloadResponse {
|
|
19
|
+
indexed: number;
|
|
20
|
+
updated: number;
|
|
21
|
+
durationMs: number;
|
|
22
|
+
}
|
|
23
|
+
export declare class KnowledgeEngine {
|
|
24
|
+
private rag;
|
|
25
|
+
private synthesizer;
|
|
26
|
+
private isInitialized;
|
|
27
|
+
constructor(provider: CuratorLLMProvider, vaultPath: string);
|
|
28
|
+
/**
|
|
29
|
+
* Initialize the knowledge engine
|
|
30
|
+
*/
|
|
31
|
+
initialize(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Search the vault
|
|
34
|
+
*/
|
|
35
|
+
search(query: string, opts?: {
|
|
36
|
+
topK?: number;
|
|
37
|
+
autoSynthesize?: boolean;
|
|
38
|
+
}): Promise<SearchResponse>;
|
|
39
|
+
/**
|
|
40
|
+
* Reload and reindex the vault
|
|
41
|
+
*/
|
|
42
|
+
reload(): Promise<ReloadResponse>;
|
|
43
|
+
/**
|
|
44
|
+
* Get engine statistics
|
|
45
|
+
*/
|
|
46
|
+
getStats(): Promise<{
|
|
47
|
+
initialized: boolean;
|
|
48
|
+
vaultStats: any;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Create MCP tools for knowledge operations
|
|
52
|
+
*/
|
|
53
|
+
createTools(): ({
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
inputSchema: {
|
|
57
|
+
type: string;
|
|
58
|
+
properties: {
|
|
59
|
+
query: {
|
|
60
|
+
type: string;
|
|
61
|
+
description: string;
|
|
62
|
+
};
|
|
63
|
+
topK: {
|
|
64
|
+
type: string;
|
|
65
|
+
description: string;
|
|
66
|
+
};
|
|
67
|
+
autoSynthesize: {
|
|
68
|
+
type: string;
|
|
69
|
+
description: string;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
required: string[];
|
|
73
|
+
};
|
|
74
|
+
handler: (args: any) => Promise<string>;
|
|
75
|
+
} | {
|
|
76
|
+
name: string;
|
|
77
|
+
description: string;
|
|
78
|
+
inputSchema: {
|
|
79
|
+
type: string;
|
|
80
|
+
properties: {
|
|
81
|
+
query?: undefined;
|
|
82
|
+
topK?: undefined;
|
|
83
|
+
autoSynthesize?: undefined;
|
|
84
|
+
};
|
|
85
|
+
required: never[];
|
|
86
|
+
};
|
|
87
|
+
handler: () => Promise<string>;
|
|
88
|
+
})[];
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/knowledge/engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,eAAe;IACxB,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,aAAa,CAAkB;gBAE3B,QAAQ,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM;IAK3D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,cAAc,CAAC;IAsC5G;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAkBvC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACtB,WAAW,EAAE,OAAO,CAAC;QACrB,UAAU,EAAE,GAAG,CAAC;KACnB,CAAC;IAOF;;OAEG;IACH,WAAW;;;;;;;;;;;;;;;;;;;;;wBAwBuB,GAAG;;;;;;;;;;;;;;;CAsDxC"}
|