mcp-astgl-knowledge 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +146 -38
- package/data/knowledge.db +0 -0
- package/dist/alerts.d.ts +22 -0
- package/dist/alerts.js +433 -0
- package/dist/alerts.js.map +1 -0
- package/dist/citation-test.d.ts +14 -0
- package/dist/citation-test.js +298 -0
- package/dist/citation-test.js.map +1 -0
- package/dist/daily-report.d.ts +15 -0
- package/dist/daily-report.js +441 -0
- package/dist/daily-report.js.map +1 -0
- package/dist/discover.js +3 -1
- package/dist/discover.js.map +1 -1
- package/dist/freshness.d.ts +20 -0
- package/dist/freshness.js +508 -0
- package/dist/freshness.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.js +253 -14
- package/dist/index.js.map +1 -1
- package/dist/ingest-projects.d.ts +16 -0
- package/dist/ingest-projects.js +196 -0
- package/dist/ingest-projects.js.map +1 -0
- package/dist/knowledge-db.d.ts +13 -0
- package/dist/knowledge-db.js +156 -0
- package/dist/knowledge-db.js.map +1 -0
- package/dist/pipeline.d.ts +12 -0
- package/dist/pipeline.js +83 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/query-log.d.ts +15 -0
- package/dist/query-log.js +93 -0
- package/dist/query-log.js.map +1 -0
- package/dist/rate-limit.d.ts +34 -0
- package/dist/rate-limit.js +206 -0
- package/dist/rate-limit.js.map +1 -0
- package/dist/related-articles.d.ts +15 -0
- package/dist/related-articles.js +217 -0
- package/dist/related-articles.js.map +1 -0
- package/dist/search.d.ts +13 -4
- package/dist/search.js +274 -39
- package/dist/search.js.map +1 -1
- package/dist/structure.d.ts +11 -0
- package/dist/structure.js +451 -0
- package/dist/structure.js.map +1 -0
- package/dist/types.d.ts +65 -0
- package/dist/types.js.map +1 -1
- package/package.json +10 -2
package/dist/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
/**
|
|
3
|
+
* Content Structuring pipeline.
|
|
4
|
+
* Takes discovered content (is_new=1 from discovery.db), fetches full article text,
|
|
5
|
+
* classifies via gemma4:26b, extracts Q&A pairs, generates embeddings and JSON-LD,
|
|
6
|
+
* and UPSERTs into knowledge.db.
|
|
7
|
+
*
|
|
8
|
+
* Usage: npm run structure
|
|
9
|
+
* Requires: Ollama running with gemma4:26b and nomic-embed-text models
|
|
10
|
+
*/
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
/**
|
|
3
|
+
* Content Structuring pipeline.
|
|
4
|
+
* Takes discovered content (is_new=1 from discovery.db), fetches full article text,
|
|
5
|
+
* classifies via gemma4:26b, extracts Q&A pairs, generates embeddings and JSON-LD,
|
|
6
|
+
* and UPSERTs into knowledge.db.
|
|
7
|
+
*
|
|
8
|
+
* Usage: npm run structure
|
|
9
|
+
* Requires: Ollama running with gemma4:26b and nomic-embed-text models
|
|
10
|
+
*/
|
|
11
|
+
import Database from "better-sqlite3";
|
|
12
|
+
import { join } from "path";
|
|
13
|
+
import { initKnowledgeDb, upsertArticle, replaceChunksForArticle, upsertQaPairs, closeKnowledgeDb, } from "./knowledge-db.js";
|
|
14
|
+
const OLLAMA_URL = process.env.OLLAMA_URL || "http://localhost:11434";
|
|
15
|
+
const EMBED_MODEL = process.env.EMBED_MODEL || "nomic-embed-text";
|
|
16
|
+
const CLASSIFY_MODEL = process.env.CLASSIFY_MODEL || "gemma4:26b";
|
|
17
|
+
const DISCOVERY_DB_PATH = join(import.meta.dirname, "..", "data", "discovery.db");
|
|
18
|
+
// ─── Content Fetching ────────────────────────────────────────────────
|
|
19
|
+
// WHAT: Fetch article URL and convert HTML to clean markdown
|
|
20
|
+
// WHY: Discovered content is HTML — we need markdown for chunking and LLM processing
|
|
21
|
+
async function fetchContent(url) {
|
|
22
|
+
const resp = await fetch(url, {
|
|
23
|
+
headers: { "User-Agent": "ASTGL-Knowledge-Bot/1.0" },
|
|
24
|
+
});
|
|
25
|
+
if (!resp.ok) {
|
|
26
|
+
throw new Error(`Fetch failed: ${resp.status} ${resp.statusText}`);
|
|
27
|
+
}
|
|
28
|
+
const html = await resp.text();
|
|
29
|
+
return htmlToMarkdown(html);
|
|
30
|
+
}
|
|
31
|
+
// WHAT: Lightweight HTML-to-markdown for known source sites
|
|
32
|
+
// WHY: Avoids adding jsdom/readability deps; ASTGL and Substack produce clean HTML
|
|
33
|
+
function htmlToMarkdown(html) {
|
|
34
|
+
// Extract article/main content
|
|
35
|
+
let content = html;
|
|
36
|
+
const articleMatch = html.match(/<article[^>]*>([\s\S]*?)<\/article>/i);
|
|
37
|
+
const mainMatch = html.match(/<main[^>]*>([\s\S]*?)<\/main>/i);
|
|
38
|
+
// Substack uses a specific class for article body
|
|
39
|
+
const substackMatch = html.match(/<div[^>]*class="[^"]*body markup[^"]*"[^>]*>([\s\S]*?)<\/div>\s*<\/div>/i);
|
|
40
|
+
if (articleMatch)
|
|
41
|
+
content = articleMatch[1];
|
|
42
|
+
else if (mainMatch)
|
|
43
|
+
content = mainMatch[1];
|
|
44
|
+
else if (substackMatch)
|
|
45
|
+
content = substackMatch[1];
|
|
46
|
+
// Convert headings
|
|
47
|
+
content = content.replace(/<h1[^>]*>([\s\S]*?)<\/h1>/gi, "\n# $1\n");
|
|
48
|
+
content = content.replace(/<h2[^>]*>([\s\S]*?)<\/h2>/gi, "\n## $1\n");
|
|
49
|
+
content = content.replace(/<h3[^>]*>([\s\S]*?)<\/h3>/gi, "\n### $1\n");
|
|
50
|
+
content = content.replace(/<h4[^>]*>([\s\S]*?)<\/h4>/gi, "\n#### $1\n");
|
|
51
|
+
// Convert inline formatting
|
|
52
|
+
content = content.replace(/<(strong|b)[^>]*>([\s\S]*?)<\/\1>/gi, "**$2**");
|
|
53
|
+
content = content.replace(/<(em|i)[^>]*>([\s\S]*?)<\/\1>/gi, "*$2*");
|
|
54
|
+
content = content.replace(/<code[^>]*>([\s\S]*?)<\/code>/gi, "`$1`");
|
|
55
|
+
// Convert links
|
|
56
|
+
content = content.replace(/<a[^>]*href="([^"]*)"[^>]*>([\s\S]*?)<\/a>/gi, "[$2]($1)");
|
|
57
|
+
// Convert lists
|
|
58
|
+
content = content.replace(/<li[^>]*>([\s\S]*?)<\/li>/gi, "- $1\n");
|
|
59
|
+
// Convert paragraphs and line breaks
|
|
60
|
+
content = content.replace(/<p[^>]*>([\s\S]*?)<\/p>/gi, "\n$1\n");
|
|
61
|
+
content = content.replace(/<br\s*\/?>/gi, "\n");
|
|
62
|
+
// Remove all remaining HTML tags
|
|
63
|
+
content = content.replace(/<[^>]+>/g, "");
|
|
64
|
+
// Decode common HTML entities
|
|
65
|
+
content = content.replace(/&/g, "&");
|
|
66
|
+
content = content.replace(/</g, "<");
|
|
67
|
+
content = content.replace(/>/g, ">");
|
|
68
|
+
content = content.replace(/"/g, '"');
|
|
69
|
+
content = content.replace(/'/g, "'");
|
|
70
|
+
content = content.replace(/ /g, " ");
|
|
71
|
+
content = content.replace(/'/g, "'");
|
|
72
|
+
// Clean up whitespace
|
|
73
|
+
content = content.replace(/\n{3,}/g, "\n\n");
|
|
74
|
+
return content.trim();
|
|
75
|
+
}
|
|
76
|
+
// ─── LLM Integration (gemma4:26b) ───────────────────────────────────
|
|
77
|
+
// WHAT: Extract JSON from LLM response, stripping thinking-mode preamble
|
|
78
|
+
// WHY: gemma4 with thinking enabled sometimes prepends markdown before JSON
|
|
79
|
+
function extractJson(raw) {
|
|
80
|
+
// Try direct parse first
|
|
81
|
+
const trimmed = raw.trim();
|
|
82
|
+
try {
|
|
83
|
+
JSON.parse(trimmed);
|
|
84
|
+
return trimmed;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Look for JSON object in the response
|
|
88
|
+
const jsonMatch = trimmed.match(/\{[\s\S]*\}/);
|
|
89
|
+
if (jsonMatch) {
|
|
90
|
+
return jsonMatch[0];
|
|
91
|
+
}
|
|
92
|
+
throw new Error(`No valid JSON found in response: ${trimmed.slice(0, 100)}...`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// WHAT: Classify article content type and extract metadata via Ollama
|
|
96
|
+
// WHY: Two focused calls are more reliable than one mega-prompt
|
|
97
|
+
async function classifyContent(text) {
|
|
98
|
+
const resp = await fetch(`${OLLAMA_URL}/api/chat`, {
|
|
99
|
+
method: "POST",
|
|
100
|
+
headers: { "Content-Type": "application/json" },
|
|
101
|
+
body: JSON.stringify({
|
|
102
|
+
model: CLASSIFY_MODEL,
|
|
103
|
+
stream: false,
|
|
104
|
+
format: {
|
|
105
|
+
type: "object",
|
|
106
|
+
properties: {
|
|
107
|
+
content_type: {
|
|
108
|
+
type: "string",
|
|
109
|
+
enum: ["article", "tutorial", "faq", "comparison", "guide", "newsletter"],
|
|
110
|
+
},
|
|
111
|
+
title: { type: "string" },
|
|
112
|
+
description: { type: "string" },
|
|
113
|
+
topics: { type: "array", items: { type: "string" } },
|
|
114
|
+
author: { type: "string" },
|
|
115
|
+
},
|
|
116
|
+
required: ["content_type", "title", "description", "topics", "author"],
|
|
117
|
+
},
|
|
118
|
+
messages: [
|
|
119
|
+
{
|
|
120
|
+
role: "system",
|
|
121
|
+
content: "You are a content classifier. Analyze the article and extract metadata. Classify as: article (informational), tutorial (step-by-step how-to), faq (primarily Q&A), comparison (contrasting options), guide (comprehensive reference), or newsletter (personal updates, announcements, behind-the-scenes — not primarily educational). Extract the title, a 1-2 sentence description, 3-5 topic keywords, and the author name.",
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
role: "user",
|
|
125
|
+
content: `Classify this article and extract its metadata:\n\n${text.slice(0, 4000)}`,
|
|
126
|
+
},
|
|
127
|
+
],
|
|
128
|
+
}),
|
|
129
|
+
});
|
|
130
|
+
if (!resp.ok) {
|
|
131
|
+
throw new Error(`Classification failed: ${resp.status} ${await resp.text()}`);
|
|
132
|
+
}
|
|
133
|
+
const data = (await resp.json());
|
|
134
|
+
return JSON.parse(extractJson(data.message.content));
|
|
135
|
+
}
|
|
136
|
+
// WHAT: Extract Q&A pairs from article content via Ollama
|
|
137
|
+
// WHY: LLM can infer questions from headings and key points that humans would search for
|
|
138
|
+
async function extractQaPairs(text) {
|
|
139
|
+
const resp = await fetch(`${OLLAMA_URL}/api/chat`, {
|
|
140
|
+
method: "POST",
|
|
141
|
+
headers: { "Content-Type": "application/json" },
|
|
142
|
+
body: JSON.stringify({
|
|
143
|
+
model: CLASSIFY_MODEL,
|
|
144
|
+
stream: false,
|
|
145
|
+
format: {
|
|
146
|
+
type: "object",
|
|
147
|
+
properties: {
|
|
148
|
+
qa_pairs: {
|
|
149
|
+
type: "array",
|
|
150
|
+
items: {
|
|
151
|
+
type: "object",
|
|
152
|
+
properties: {
|
|
153
|
+
question: { type: "string" },
|
|
154
|
+
answer: { type: "string" },
|
|
155
|
+
},
|
|
156
|
+
required: ["question", "answer"],
|
|
157
|
+
},
|
|
158
|
+
},
|
|
159
|
+
},
|
|
160
|
+
required: ["qa_pairs"],
|
|
161
|
+
},
|
|
162
|
+
messages: [
|
|
163
|
+
{
|
|
164
|
+
role: "system",
|
|
165
|
+
content: "You are a Q&A extractor. Read the article and generate 5-8 natural question-and-answer pairs that someone might search for. Infer questions from headings and key points. Each answer should be 1-3 sentences, factual, and self-contained.",
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
role: "user",
|
|
169
|
+
content: `Extract Q&A pairs from this article:\n\n${text.slice(0, 8000)}`,
|
|
170
|
+
},
|
|
171
|
+
],
|
|
172
|
+
}),
|
|
173
|
+
});
|
|
174
|
+
if (!resp.ok) {
|
|
175
|
+
throw new Error(`Q&A extraction failed: ${resp.status} ${await resp.text()}`);
|
|
176
|
+
}
|
|
177
|
+
const data = (await resp.json());
|
|
178
|
+
const parsed = JSON.parse(extractJson(data.message.content));
|
|
179
|
+
return parsed.qa_pairs;
|
|
180
|
+
}
|
|
181
|
+
// ─── JSON-LD Generation (template-based) ─────────────────────────────
|
|
182
|
+
// WHAT: Generate JSON-LD structured data from classification + Q&A
|
|
183
|
+
// WHY: Deterministic templates are more reliable than LLM-generated JSON-LD
|
|
184
|
+
function generateJsonLd(meta, qaPairs, url) {
|
|
185
|
+
const schemas = [];
|
|
186
|
+
// Article schema (always)
|
|
187
|
+
schemas.push({
|
|
188
|
+
"@context": "https://schema.org",
|
|
189
|
+
"@type": "Article",
|
|
190
|
+
headline: meta.title,
|
|
191
|
+
description: meta.description,
|
|
192
|
+
author: {
|
|
193
|
+
"@type": "Person",
|
|
194
|
+
name: meta.author,
|
|
195
|
+
},
|
|
196
|
+
publisher: {
|
|
197
|
+
"@type": "Organization",
|
|
198
|
+
name: "ASTGL — As The Geek Learns",
|
|
199
|
+
url: "https://astgl.ai",
|
|
200
|
+
},
|
|
201
|
+
mainEntityOfPage: {
|
|
202
|
+
"@type": "WebPage",
|
|
203
|
+
"@id": url,
|
|
204
|
+
},
|
|
205
|
+
keywords: meta.topics.join(", "),
|
|
206
|
+
});
|
|
207
|
+
// FAQPage schema (if Q&A pairs exist)
|
|
208
|
+
if (qaPairs.length > 0) {
|
|
209
|
+
schemas.push({
|
|
210
|
+
"@context": "https://schema.org",
|
|
211
|
+
"@type": "FAQPage",
|
|
212
|
+
mainEntity: qaPairs.map((qa) => ({
|
|
213
|
+
"@type": "Question",
|
|
214
|
+
name: qa.question,
|
|
215
|
+
acceptedAnswer: {
|
|
216
|
+
"@type": "Answer",
|
|
217
|
+
text: qa.answer,
|
|
218
|
+
},
|
|
219
|
+
})),
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
// HowTo schema (if tutorial)
|
|
223
|
+
if (meta.content_type === "tutorial") {
|
|
224
|
+
schemas.push({
|
|
225
|
+
"@context": "https://schema.org",
|
|
226
|
+
"@type": "HowTo",
|
|
227
|
+
name: meta.title,
|
|
228
|
+
description: meta.description,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
return JSON.stringify(schemas);
|
|
232
|
+
}
|
|
233
|
+
// ─── Chunking (reuses ingest.ts pattern) ─────────────────────────────
|
|
234
|
+
// WHAT: Split markdown into chunks by h2 headings + add FAQ chunks from extracted Q&A
|
|
235
|
+
// WHY: h2 sections are self-contained (300-800 tokens), ideal for retrieval
|
|
236
|
+
function chunkArticle(title, url, body, qaPairs) {
|
|
237
|
+
const chunks = [];
|
|
238
|
+
// Split by ## headings
|
|
239
|
+
const sections = body.split(/^## /m);
|
|
240
|
+
// Intro (before any ## heading)
|
|
241
|
+
const intro = sections[0].trim();
|
|
242
|
+
if (intro) {
|
|
243
|
+
chunks.push({
|
|
244
|
+
articleTitle: title,
|
|
245
|
+
articleUrl: url,
|
|
246
|
+
articleOrder: 0,
|
|
247
|
+
sectionHeading: "Introduction",
|
|
248
|
+
chunkType: "intro",
|
|
249
|
+
content: intro,
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
// Remaining sections
|
|
253
|
+
for (let i = 1; i < sections.length; i++) {
|
|
254
|
+
const section = sections[i];
|
|
255
|
+
const newlineIdx = section.indexOf("\n");
|
|
256
|
+
const heading = newlineIdx !== -1 ? section.slice(0, newlineIdx).trim() : section.trim();
|
|
257
|
+
const content = newlineIdx !== -1 ? section.slice(newlineIdx + 1).trim() : "";
|
|
258
|
+
if (content) {
|
|
259
|
+
chunks.push({
|
|
260
|
+
articleTitle: title,
|
|
261
|
+
articleUrl: url,
|
|
262
|
+
articleOrder: 0,
|
|
263
|
+
sectionHeading: heading,
|
|
264
|
+
chunkType: "section",
|
|
265
|
+
content: `## ${heading}\n\n${content}`,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
// Q&A pairs as FAQ chunks
|
|
270
|
+
for (const qa of qaPairs) {
|
|
271
|
+
chunks.push({
|
|
272
|
+
articleTitle: title,
|
|
273
|
+
articleUrl: url,
|
|
274
|
+
articleOrder: 0,
|
|
275
|
+
sectionHeading: qa.question,
|
|
276
|
+
chunkType: "faq",
|
|
277
|
+
content: `Q: ${qa.question}\nA: ${qa.answer}`,
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
return chunks;
|
|
281
|
+
}
|
|
282
|
+
// ─── Embedding (reuses ingest.ts pattern) ────────────────────────────
|
|
283
|
+
// WHAT: nomic-embed-text has an 8192 token context limit (~6000 chars safe)
|
|
284
|
+
// WHY: One article had a single intro chunk exceeding the limit, causing embed failure
|
|
285
|
+
const MAX_CHUNK_CHARS = 6000;
|
|
286
|
+
async function embed(texts) {
|
|
287
|
+
// Truncate any chunks that exceed the embedding model's context window
|
|
288
|
+
const safeTexts = texts.map((t) => t.length > MAX_CHUNK_CHARS ? t.slice(0, MAX_CHUNK_CHARS) : t);
|
|
289
|
+
const resp = await fetch(`${OLLAMA_URL}/api/embed`, {
|
|
290
|
+
method: "POST",
|
|
291
|
+
headers: { "Content-Type": "application/json" },
|
|
292
|
+
body: JSON.stringify({ model: EMBED_MODEL, input: safeTexts }),
|
|
293
|
+
});
|
|
294
|
+
if (!resp.ok) {
|
|
295
|
+
throw new Error(`Ollama embed failed: ${resp.status} ${await resp.text()}`);
|
|
296
|
+
}
|
|
297
|
+
const data = (await resp.json());
|
|
298
|
+
return data.embeddings;
|
|
299
|
+
}
|
|
300
|
+
// ─── Slug Derivation ─────────────────────────────────────────────────
|
|
301
|
+
function deriveSlug(url) {
|
|
302
|
+
const parsed = new URL(url);
|
|
303
|
+
const segments = parsed.pathname.split("/").filter(Boolean);
|
|
304
|
+
return segments[segments.length - 1] || "unknown";
|
|
305
|
+
}
|
|
306
|
+
// ─── Main Pipeline ───────────────────────────────────────────────────
|
|
307
|
+
async function main() {
|
|
308
|
+
console.error("Content structuring pipeline started");
|
|
309
|
+
// Open discovery.db to find new items
|
|
310
|
+
const discoveryDb = new Database(DISCOVERY_DB_PATH, { readonly: false });
|
|
311
|
+
const newItems = discoveryDb
|
|
312
|
+
.prepare("SELECT id, url, title, description, pub_date, source FROM discovered_content WHERE is_new = 1")
|
|
313
|
+
.all();
|
|
314
|
+
if (newItems.length === 0) {
|
|
315
|
+
console.error("No new items to process");
|
|
316
|
+
console.log(JSON.stringify({
|
|
317
|
+
timestamp: new Date().toISOString(),
|
|
318
|
+
processed: 0,
|
|
319
|
+
failed: 0,
|
|
320
|
+
skipped: 0,
|
|
321
|
+
articles: [],
|
|
322
|
+
}));
|
|
323
|
+
discoveryDb.close();
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
console.error(`Found ${newItems.length} new items to process`);
|
|
327
|
+
// Open knowledge.db for writing
|
|
328
|
+
const knowledgeDb = initKnowledgeDb();
|
|
329
|
+
const summary = {
|
|
330
|
+
timestamp: new Date().toISOString(),
|
|
331
|
+
processed: 0,
|
|
332
|
+
failed: 0,
|
|
333
|
+
skipped: 0,
|
|
334
|
+
articles: [],
|
|
335
|
+
};
|
|
336
|
+
const BATCH_SIZE = 20;
|
|
337
|
+
const markProcessed = discoveryDb.prepare("UPDATE discovered_content SET is_new = 0 WHERE id = ?");
|
|
338
|
+
for (const item of newItems) {
|
|
339
|
+
try {
|
|
340
|
+
console.error(`\n Processing: ${item.url}`);
|
|
341
|
+
// 0. Slug-based deduplication — skip Substack dupes of canonical astgl.ai articles
|
|
342
|
+
const slug = deriveSlug(item.url);
|
|
343
|
+
const existingBySlug = knowledgeDb
|
|
344
|
+
.prepare("SELECT url FROM articles WHERE slug = ?")
|
|
345
|
+
.get(slug);
|
|
346
|
+
if (existingBySlug &&
|
|
347
|
+
existingBySlug.url.includes("astgl.ai") &&
|
|
348
|
+
!item.url.includes("astgl.ai")) {
|
|
349
|
+
console.error(` Skipped: duplicate of canonical ${existingBySlug.url}`);
|
|
350
|
+
summary.skipped++;
|
|
351
|
+
summary.articles.push({
|
|
352
|
+
url: item.url,
|
|
353
|
+
title: item.title || "unknown",
|
|
354
|
+
status: "skipped-duplicate",
|
|
355
|
+
});
|
|
356
|
+
markProcessed.run(item.id);
|
|
357
|
+
continue;
|
|
358
|
+
}
|
|
359
|
+
// 1. Fetch full content
|
|
360
|
+
console.error(" Fetching content...");
|
|
361
|
+
const markdown = await fetchContent(item.url);
|
|
362
|
+
if (markdown.length < 100) {
|
|
363
|
+
console.error(" Skipped: content too short");
|
|
364
|
+
summary.skipped++;
|
|
365
|
+
summary.articles.push({
|
|
366
|
+
url: item.url,
|
|
367
|
+
title: item.title || "unknown",
|
|
368
|
+
status: "skipped-short",
|
|
369
|
+
});
|
|
370
|
+
continue;
|
|
371
|
+
}
|
|
372
|
+
// 2. Classify content
|
|
373
|
+
console.error(" Classifying via gemma4:26b...");
|
|
374
|
+
const classification = await classifyContent(markdown);
|
|
375
|
+
console.error(` Type: ${classification.content_type} | Title: ${classification.title}`);
|
|
376
|
+
// 3. Extract Q&A pairs
|
|
377
|
+
console.error(" Extracting Q&A pairs...");
|
|
378
|
+
let qaPairs = [];
|
|
379
|
+
try {
|
|
380
|
+
qaPairs = await extractQaPairs(markdown);
|
|
381
|
+
console.error(` Extracted ${qaPairs.length} Q&A pairs`);
|
|
382
|
+
}
|
|
383
|
+
catch (qaErr) {
|
|
384
|
+
console.error(` Q&A extraction failed (continuing without): ${qaErr instanceof Error ? qaErr.message : qaErr}`);
|
|
385
|
+
}
|
|
386
|
+
// 4. Generate JSON-LD
|
|
387
|
+
const jsonLd = generateJsonLd(classification, qaPairs, item.url);
|
|
388
|
+
// 5. Chunk content (slug already derived in dedup step above)
|
|
389
|
+
const chunks = chunkArticle(classification.title, item.url, markdown, qaPairs);
|
|
390
|
+
console.error(` ${chunks.length} chunks created`);
|
|
391
|
+
// 6. Embed all chunks
|
|
392
|
+
console.error(" Embedding chunks...");
|
|
393
|
+
const allEmbeddings = [];
|
|
394
|
+
for (let i = 0; i < chunks.length; i += BATCH_SIZE) {
|
|
395
|
+
const batch = chunks.slice(i, i + BATCH_SIZE);
|
|
396
|
+
const embeddings = await embed(batch.map((c) => c.content));
|
|
397
|
+
allEmbeddings.push(...embeddings);
|
|
398
|
+
}
|
|
399
|
+
// 7. UPSERT into knowledge.db
|
|
400
|
+
const article = {
|
|
401
|
+
url: item.url,
|
|
402
|
+
sourceUrl: item.url,
|
|
403
|
+
slug,
|
|
404
|
+
title: classification.title,
|
|
405
|
+
description: classification.description,
|
|
406
|
+
author: classification.author,
|
|
407
|
+
contentType: classification.content_type,
|
|
408
|
+
topics: classification.topics,
|
|
409
|
+
qaPairs,
|
|
410
|
+
jsonLd,
|
|
411
|
+
markdownBody: markdown,
|
|
412
|
+
processedAt: new Date().toISOString(),
|
|
413
|
+
pubDate: item.pub_date || undefined,
|
|
414
|
+
};
|
|
415
|
+
upsertArticle(knowledgeDb, article);
|
|
416
|
+
replaceChunksForArticle(knowledgeDb, item.url, chunks, allEmbeddings);
|
|
417
|
+
upsertQaPairs(knowledgeDb, item.url, qaPairs);
|
|
418
|
+
// 8. Mark as processed in discovery.db
|
|
419
|
+
markProcessed.run(item.id);
|
|
420
|
+
summary.processed++;
|
|
421
|
+
summary.articles.push({
|
|
422
|
+
url: item.url,
|
|
423
|
+
title: classification.title,
|
|
424
|
+
status: "processed",
|
|
425
|
+
});
|
|
426
|
+
console.error(" Done");
|
|
427
|
+
}
|
|
428
|
+
catch (err) {
|
|
429
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
430
|
+
console.error(` FAILED: ${message}`);
|
|
431
|
+
summary.failed++;
|
|
432
|
+
summary.articles.push({
|
|
433
|
+
url: item.url,
|
|
434
|
+
title: item.title || "unknown",
|
|
435
|
+
status: `failed: ${message.slice(0, 100)}`,
|
|
436
|
+
});
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
// Print summary
|
|
440
|
+
console.log(JSON.stringify(summary, null, 2));
|
|
441
|
+
closeKnowledgeDb();
|
|
442
|
+
discoveryDb.close();
|
|
443
|
+
console.error("\nContent structuring complete");
|
|
444
|
+
}
|
|
445
|
+
main()
|
|
446
|
+
.then(() => process.exit(0))
|
|
447
|
+
.catch((err) => {
|
|
448
|
+
console.error("Structuring pipeline failed:", err);
|
|
449
|
+
process.exit(1);
|
|
450
|
+
});
|
|
451
|
+
//# sourceMappingURL=structure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure.js","sourceRoot":"","sources":["../src/structure.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -38,12 +38,77 @@ export interface AnswerResult {
|
|
|
38
38
|
title: string;
|
|
39
39
|
url: string;
|
|
40
40
|
}>;
|
|
41
|
+
confidence_score: number;
|
|
42
|
+
}
|
|
43
|
+
export interface QueryLogEntry {
|
|
44
|
+
timestamp: string;
|
|
45
|
+
clientId: string;
|
|
46
|
+
toolName: string;
|
|
47
|
+
queryParams: string;
|
|
48
|
+
contentCited: string;
|
|
49
|
+
responseTimeMs: number;
|
|
50
|
+
confidenceScore: number | null;
|
|
41
51
|
}
|
|
42
52
|
export interface TopicEntry {
|
|
43
53
|
title: string;
|
|
44
54
|
description: string;
|
|
45
55
|
url: string;
|
|
56
|
+
content_type: string;
|
|
57
|
+
topics: string[];
|
|
58
|
+
}
|
|
59
|
+
export interface TutorialResult {
|
|
60
|
+
title: string;
|
|
61
|
+
url: string;
|
|
62
|
+
description: string;
|
|
63
|
+
steps: string[];
|
|
64
|
+
confidence_score: number;
|
|
65
|
+
}
|
|
66
|
+
export interface ComparisonResult {
|
|
67
|
+
topic_a: {
|
|
68
|
+
title: string;
|
|
69
|
+
url: string;
|
|
70
|
+
key_points: string[];
|
|
71
|
+
};
|
|
72
|
+
topic_b: {
|
|
73
|
+
title: string;
|
|
74
|
+
url: string;
|
|
75
|
+
key_points: string[];
|
|
76
|
+
};
|
|
77
|
+
confidence_score: number;
|
|
78
|
+
}
|
|
79
|
+
export interface LatestArticle {
|
|
80
|
+
title: string;
|
|
81
|
+
description: string;
|
|
82
|
+
url: string;
|
|
83
|
+
content_type: string;
|
|
84
|
+
added_at: string | null;
|
|
85
|
+
}
|
|
86
|
+
export type ContentType = "article" | "tutorial" | "faq" | "comparison" | "guide" | "newsletter" | "project";
|
|
87
|
+
export interface QaPair {
|
|
88
|
+
question: string;
|
|
89
|
+
answer: string;
|
|
90
|
+
}
|
|
91
|
+
export interface ClassificationResult {
|
|
92
|
+
content_type: ContentType;
|
|
93
|
+
title: string;
|
|
94
|
+
description: string;
|
|
95
|
+
topics: string[];
|
|
96
|
+
author: string;
|
|
97
|
+
}
|
|
98
|
+
export interface StructuredArticle {
|
|
99
|
+
url: string;
|
|
100
|
+
sourceUrl: string;
|
|
101
|
+
slug: string;
|
|
102
|
+
title: string;
|
|
103
|
+
description: string;
|
|
104
|
+
author: string;
|
|
105
|
+
contentType: ContentType;
|
|
46
106
|
topics: string[];
|
|
107
|
+
qaPairs: QaPair[];
|
|
108
|
+
jsonLd: string;
|
|
109
|
+
markdownBody: string;
|
|
110
|
+
processedAt: string;
|
|
111
|
+
pubDate?: string;
|
|
47
112
|
}
|
|
48
113
|
export declare const EMBEDDING_DIM = 768;
|
|
49
114
|
export declare const BASE_URL = "https://astgl.ai/answers";
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AA8GA,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,0BAA0B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-astgl-knowledge",
|
|
3
3
|
"mcpName": "io.github.Jmeg8r/astgl-knowledge",
|
|
4
|
-
"version": "1.0
|
|
5
|
-
"description": "MCP server for searching and
|
|
4
|
+
"version": "1.1.0",
|
|
5
|
+
"description": "MCP server with 7 tools for searching, citing, and exploring ASTGL content about MCP servers, local AI, and AI automation — includes tutorials, comparisons, freshness tracking, and rate-limited API access",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
8
8
|
"mcp-astgl-knowledge": "dist/index.js"
|
|
@@ -15,7 +15,15 @@
|
|
|
15
15
|
"scripts": {
|
|
16
16
|
"build": "tsc",
|
|
17
17
|
"ingest": "tsx src/ingest.ts",
|
|
18
|
+
"ingest-projects": "tsx src/ingest-projects.ts",
|
|
18
19
|
"discover": "tsx src/discover.ts",
|
|
20
|
+
"structure": "tsx src/structure.ts",
|
|
21
|
+
"pipeline": "tsx src/pipeline.ts",
|
|
22
|
+
"citation-test": "tsx src/citation-test.ts",
|
|
23
|
+
"daily-report": "tsx src/daily-report.ts",
|
|
24
|
+
"alerts": "tsx src/alerts.ts",
|
|
25
|
+
"freshness": "tsx src/freshness.ts",
|
|
26
|
+
"related": "tsx src/related-articles.ts",
|
|
19
27
|
"start": "node dist/index.js",
|
|
20
28
|
"dev": "tsx src/index.ts",
|
|
21
29
|
"prepublishOnly": "npm run build"
|