@wiki0/core 0.0.2 → 0.0.4
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 +27 -3
- package/dist/database.d.ts +3 -2
- package/dist/database.js +2 -2
- package/dist/database.js.map +1 -1
- package/dist/events.d.ts +9 -0
- package/dist/events.js +56 -0
- package/dist/events.js.map +1 -0
- package/dist/facts.js +78 -16
- package/dist/facts.js.map +1 -1
- package/dist/graph.js +14 -2
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/indexer.d.ts +13 -1
- package/dist/indexer.js +208 -7
- package/dist/indexer.js.map +1 -1
- package/dist/lint.js +2 -2
- package/dist/lint.js.map +1 -1
- package/dist/markdown.js +32 -54
- package/dist/markdown.js.map +1 -1
- package/dist/pages.js +26 -4
- package/dist/pages.js.map +1 -1
- package/dist/review.js +3 -1
- package/dist/review.js.map +1 -1
- package/dist/schema.sql +38 -0
- package/dist/search.d.ts +5 -2
- package/dist/search.js +218 -12
- package/dist/search.js.map +1 -1
- package/dist/topics.d.ts +2 -0
- package/dist/topics.js +55 -0
- package/dist/topics.js.map +1 -0
- package/dist/types.d.ts +102 -12
- package/dist/workflow.d.ts +4 -0
- package/dist/workflow.js +301 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +2 -3
package/dist/indexer.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
-
import { statSync } from 'node:fs';
|
|
2
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { open_wiki_database, wiki_db_path } from './database.js';
|
|
5
|
+
import { log_wiki_event } from './events.js';
|
|
5
6
|
import { list_markdown_page_paths, read_page_by_path, } from './pages.js';
|
|
6
7
|
import { resolve_wiki_root, wikilink_target_path } from './paths.js';
|
|
8
|
+
export const current_index_schema_version = 4;
|
|
9
|
+
export const current_index_package_version = read_package_version();
|
|
7
10
|
export function index_wiki(root = '.') {
|
|
8
11
|
const wiki_root = resolve_wiki_root(root);
|
|
9
12
|
const db_path = wiki_db_path(wiki_root);
|
|
10
13
|
const db = open_wiki_database(wiki_root);
|
|
14
|
+
ensure_index_schema(db);
|
|
11
15
|
let page_count = 0;
|
|
12
16
|
let link_count = 0;
|
|
13
17
|
const upsert_page = db.prepare(`
|
|
@@ -27,7 +31,24 @@ export function index_wiki(root = '.') {
|
|
|
27
31
|
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
28
32
|
`);
|
|
29
33
|
const clear_fts = db.prepare('DELETE FROM fts_pages');
|
|
34
|
+
const clear_chunks = db.prepare('DELETE FROM page_chunks');
|
|
35
|
+
const clear_chunk_fts = db.prepare('DELETE FROM fts_page_chunks');
|
|
30
36
|
const insert_fts = db.prepare('INSERT INTO fts_pages (path, title, body) VALUES (?, ?, ?)');
|
|
37
|
+
const insert_chunk = db.prepare(`
|
|
38
|
+
INSERT INTO page_chunks (
|
|
39
|
+
page_id, path, title, heading, body, start_line, end_line,
|
|
40
|
+
sequence, page_priority, page_status, page_tags
|
|
41
|
+
)
|
|
42
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
43
|
+
`);
|
|
44
|
+
const insert_chunk_fts = db.prepare('INSERT INTO fts_page_chunks (chunk_id, path, title, heading, body) VALUES (?, ?, ?, ?, ?)');
|
|
45
|
+
const set_meta = db.prepare(`
|
|
46
|
+
INSERT INTO wiki_meta (key, value, updated_at)
|
|
47
|
+
VALUES (?, ?, datetime('now'))
|
|
48
|
+
ON CONFLICT(key) DO UPDATE SET
|
|
49
|
+
value = excluded.value,
|
|
50
|
+
updated_at = datetime('now')
|
|
51
|
+
`);
|
|
31
52
|
const page_paths = list_markdown_page_paths(wiki_root);
|
|
32
53
|
const known_paths = new Set(page_paths);
|
|
33
54
|
const pages = page_paths.map((page_path) => read_page_by_path(page_path, wiki_root));
|
|
@@ -35,7 +56,7 @@ export function index_wiki(root = '.') {
|
|
|
35
56
|
for (const page of pages) {
|
|
36
57
|
const aliases = page.frontmatter.aliases;
|
|
37
58
|
const alias_list = Array.isArray(aliases)
|
|
38
|
-
? aliases
|
|
59
|
+
? aliases.filter((alias) => typeof alias === 'string')
|
|
39
60
|
: typeof aliases === 'string'
|
|
40
61
|
? [aliases]
|
|
41
62
|
: [];
|
|
@@ -45,8 +66,13 @@ export function index_wiki(root = '.') {
|
|
|
45
66
|
name_paths.set(normalized_name, page.path);
|
|
46
67
|
}
|
|
47
68
|
}
|
|
48
|
-
|
|
69
|
+
let indexed_at = new Date().toISOString();
|
|
70
|
+
db.exec('BEGIN');
|
|
71
|
+
try {
|
|
72
|
+
indexed_at = new Date().toISOString();
|
|
49
73
|
clear_fts.run();
|
|
74
|
+
clear_chunks.run();
|
|
75
|
+
clear_chunk_fts.run();
|
|
50
76
|
for (const page of pages) {
|
|
51
77
|
const file_path = join(wiki_root, 'wiki', page.path);
|
|
52
78
|
const modified_at = statSync(file_path).mtime.toISOString();
|
|
@@ -73,6 +99,13 @@ export function index_wiki(root = '.') {
|
|
|
73
99
|
link_count += 1;
|
|
74
100
|
}
|
|
75
101
|
insert_fts.run(page.path, page.title, page.content);
|
|
102
|
+
const page_priority = frontmatter_number(page.frontmatter.priority);
|
|
103
|
+
const page_status = frontmatter_string(page.frontmatter.status);
|
|
104
|
+
const page_tags = frontmatter_string_array(page.frontmatter.tags);
|
|
105
|
+
for (const chunk of chunk_page_body(page.body)) {
|
|
106
|
+
const chunk_result = insert_chunk.run(row.id, page.path, page.title, chunk.heading, chunk.body, chunk.start_line, chunk.end_line, chunk.sequence, page_priority, page_status, JSON.stringify(page_tags));
|
|
107
|
+
insert_chunk_fts.run(chunk_result.lastInsertRowid, page.path, page.title, chunk.heading, chunk.body);
|
|
108
|
+
}
|
|
76
109
|
page_count += 1;
|
|
77
110
|
}
|
|
78
111
|
const placeholders = [...known_paths].map(() => '?').join(', ');
|
|
@@ -82,14 +115,182 @@ export function index_wiki(root = '.') {
|
|
|
82
115
|
else {
|
|
83
116
|
db.prepare('DELETE FROM pages').run();
|
|
84
117
|
}
|
|
118
|
+
set_meta.run('indexed_at', indexed_at);
|
|
119
|
+
set_meta.run('schema_version', String(current_index_schema_version));
|
|
120
|
+
set_meta.run('package_version', current_index_package_version);
|
|
121
|
+
db.exec('COMMIT');
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
db.exec('ROLLBACK');
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
db.close();
|
|
128
|
+
log_wiki_event({
|
|
129
|
+
root: wiki_root,
|
|
130
|
+
operation: 'index_wiki',
|
|
131
|
+
summary: `Indexed ${page_count} pages and ${link_count} links`,
|
|
132
|
+
target: wiki_root,
|
|
133
|
+
details: {
|
|
134
|
+
page_count,
|
|
135
|
+
link_count,
|
|
136
|
+
schema_version: current_index_schema_version,
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
return {
|
|
140
|
+
root: wiki_root,
|
|
141
|
+
db_path: db_path,
|
|
142
|
+
page_count: page_count,
|
|
143
|
+
link_count: link_count,
|
|
144
|
+
indexed_at: indexed_at,
|
|
145
|
+
schema_version: current_index_schema_version,
|
|
146
|
+
package_version: current_index_package_version,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function ensure_index_schema(db) {
|
|
150
|
+
const chunk_columns = new Set(db.prepare('PRAGMA table_info(page_chunks)').all().map((column) => column.name));
|
|
151
|
+
const migrations = {
|
|
152
|
+
page_priority: 'ALTER TABLE page_chunks ADD COLUMN page_priority INTEGER NOT NULL DEFAULT 0',
|
|
153
|
+
page_status: 'ALTER TABLE page_chunks ADD COLUMN page_status TEXT',
|
|
154
|
+
page_tags: 'ALTER TABLE page_chunks ADD COLUMN page_tags TEXT',
|
|
155
|
+
};
|
|
156
|
+
for (const [column_name, sql] of Object.entries(migrations)) {
|
|
157
|
+
if (!chunk_columns.has(column_name))
|
|
158
|
+
db.exec(sql);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
export function chunk_page_body(body) {
|
|
162
|
+
const lines = body.split(/\r?\n/u);
|
|
163
|
+
const heading_lines = lines
|
|
164
|
+
.map((line, index) => ({ line, index }))
|
|
165
|
+
.filter(({ line }) => /^#{1,6}\s+\S/u.test(line));
|
|
166
|
+
if (heading_lines.length === 0) {
|
|
167
|
+
return [
|
|
168
|
+
{
|
|
169
|
+
heading: null,
|
|
170
|
+
body: body.trim(),
|
|
171
|
+
start_line: 1,
|
|
172
|
+
end_line: Math.max(lines.length, 1),
|
|
173
|
+
sequence: 0,
|
|
174
|
+
},
|
|
175
|
+
];
|
|
176
|
+
}
|
|
177
|
+
return heading_lines.map((heading, sequence) => {
|
|
178
|
+
const next_heading = heading_lines[sequence + 1];
|
|
179
|
+
const end_index = next_heading
|
|
180
|
+
? next_heading.index - 1
|
|
181
|
+
: lines.length - 1;
|
|
182
|
+
return {
|
|
183
|
+
heading: heading.line.replace(/^#{1,6}\s+/u, '').trim(),
|
|
184
|
+
body: lines
|
|
185
|
+
.slice(heading.index, end_index + 1)
|
|
186
|
+
.join('\n')
|
|
187
|
+
.trim(),
|
|
188
|
+
start_line: heading.index + 1,
|
|
189
|
+
end_line: end_index + 1,
|
|
190
|
+
sequence,
|
|
191
|
+
};
|
|
85
192
|
});
|
|
86
|
-
|
|
193
|
+
}
|
|
194
|
+
function frontmatter_string(value) {
|
|
195
|
+
return typeof value === 'string' ? value : null;
|
|
196
|
+
}
|
|
197
|
+
function frontmatter_number(value) {
|
|
198
|
+
return typeof value === 'number' && Number.isFinite(value)
|
|
199
|
+
? value
|
|
200
|
+
: 0;
|
|
201
|
+
}
|
|
202
|
+
function frontmatter_string_array(value) {
|
|
203
|
+
if (Array.isArray(value)) {
|
|
204
|
+
return value.filter((item) => typeof item === 'string');
|
|
205
|
+
}
|
|
206
|
+
return typeof value === 'string' ? [value] : [];
|
|
207
|
+
}
|
|
208
|
+
export function index_status(root = '.') {
|
|
209
|
+
const wiki_root = resolve_wiki_root(root);
|
|
210
|
+
const db_path = wiki_db_path(wiki_root);
|
|
211
|
+
const page_paths = list_markdown_page_paths(wiki_root);
|
|
212
|
+
const reasons = [];
|
|
213
|
+
if (!existsSync(db_path)) {
|
|
214
|
+
return {
|
|
215
|
+
root: wiki_root,
|
|
216
|
+
db_path: db_path,
|
|
217
|
+
exists: false,
|
|
218
|
+
indexed_at: null,
|
|
219
|
+
schema_version: null,
|
|
220
|
+
current_schema_version: current_index_schema_version,
|
|
221
|
+
package_version: null,
|
|
222
|
+
current_package_version: current_index_package_version,
|
|
223
|
+
page_count: page_paths.length,
|
|
224
|
+
indexed_page_count: 0,
|
|
225
|
+
stale: true,
|
|
226
|
+
reasons: ['missing-index'],
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
const db = open_wiki_database(wiki_root);
|
|
230
|
+
const meta_rows = db
|
|
231
|
+
.prepare('SELECT key, value FROM wiki_meta')
|
|
232
|
+
.all();
|
|
233
|
+
const meta = new Map(meta_rows.map((row) => [row.key, row.value]));
|
|
234
|
+
const indexed_at = meta.get('indexed_at') ?? null;
|
|
235
|
+
const schema_version = Number(meta.get('schema_version') ?? NaN);
|
|
236
|
+
const package_version = meta.get('package_version') ?? null;
|
|
237
|
+
const indexed_page_count = db.prepare('SELECT COUNT(*) AS count FROM pages').get().count;
|
|
238
|
+
const indexed_pages = db
|
|
239
|
+
.prepare('SELECT path, content_hash AS content_hash FROM pages')
|
|
240
|
+
.all();
|
|
87
241
|
db.close();
|
|
242
|
+
if (!indexed_at)
|
|
243
|
+
reasons.push('never-indexed');
|
|
244
|
+
if (schema_version !== current_index_schema_version) {
|
|
245
|
+
reasons.push('schema-version-mismatch');
|
|
246
|
+
}
|
|
247
|
+
if (package_version !== current_index_package_version) {
|
|
248
|
+
reasons.push('package-version-mismatch');
|
|
249
|
+
}
|
|
250
|
+
if (indexed_page_count !== page_paths.length) {
|
|
251
|
+
reasons.push('page-count-changed');
|
|
252
|
+
}
|
|
253
|
+
const current_paths = new Set(page_paths);
|
|
254
|
+
const indexed_hashes = new Map(indexed_pages.map((page) => [page.path, page.content_hash]));
|
|
255
|
+
for (const page of indexed_pages) {
|
|
256
|
+
if (!current_paths.has(page.path))
|
|
257
|
+
reasons.push('deleted-pages');
|
|
258
|
+
}
|
|
259
|
+
for (const page_path of page_paths) {
|
|
260
|
+
const page = read_page_by_path(page_path, wiki_root);
|
|
261
|
+
const current_hash = createHash('sha256')
|
|
262
|
+
.update(page.body)
|
|
263
|
+
.digest('hex');
|
|
264
|
+
const indexed_hash = indexed_hashes.get(page_path);
|
|
265
|
+
if (!indexed_hash)
|
|
266
|
+
reasons.push('new-pages');
|
|
267
|
+
else if (indexed_hash !== current_hash)
|
|
268
|
+
reasons.push('modified-pages');
|
|
269
|
+
}
|
|
88
270
|
return {
|
|
89
271
|
root: wiki_root,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
272
|
+
db_path: db_path,
|
|
273
|
+
exists: true,
|
|
274
|
+
indexed_at: indexed_at,
|
|
275
|
+
schema_version: Number.isNaN(schema_version)
|
|
276
|
+
? null
|
|
277
|
+
: schema_version,
|
|
278
|
+
current_schema_version: current_index_schema_version,
|
|
279
|
+
package_version: package_version,
|
|
280
|
+
current_package_version: current_index_package_version,
|
|
281
|
+
page_count: page_paths.length,
|
|
282
|
+
indexed_page_count: indexed_page_count,
|
|
283
|
+
stale: reasons.length > 0,
|
|
284
|
+
reasons: [...new Set(reasons)],
|
|
93
285
|
};
|
|
94
286
|
}
|
|
287
|
+
function read_package_version() {
|
|
288
|
+
try {
|
|
289
|
+
const package_json = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf-8'));
|
|
290
|
+
return package_json.version ?? '0.0.0';
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
return '0.0.0';
|
|
294
|
+
}
|
|
295
|
+
}
|
|
95
296
|
//# sourceMappingURL=indexer.js.map
|
package/dist/indexer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexer.js","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"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"}
|
package/dist/lint.js
CHANGED
|
@@ -10,7 +10,7 @@ export function lint_wiki(root = '.') {
|
|
|
10
10
|
for (const page of pages) {
|
|
11
11
|
const aliases = page.frontmatter.aliases;
|
|
12
12
|
const alias_list = Array.isArray(aliases)
|
|
13
|
-
? aliases
|
|
13
|
+
? aliases.filter((alias) => typeof alias === 'string')
|
|
14
14
|
: typeof aliases === 'string'
|
|
15
15
|
? [aliases]
|
|
16
16
|
: [];
|
|
@@ -51,7 +51,7 @@ export function lint_wiki(root = '.') {
|
|
|
51
51
|
return {
|
|
52
52
|
root: wiki_root,
|
|
53
53
|
ok: issues.every((issue) => issue.severity !== 'error'),
|
|
54
|
-
|
|
54
|
+
issue_count: issues.length,
|
|
55
55
|
issues: issues.sort((left, right) => `${left.path}:${left.code}:${left.target ?? ''}`.localeCompare(`${right.path}:${right.code}:${right.target ?? ''}`)),
|
|
56
56
|
};
|
|
57
57
|
}
|
package/dist/lint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGrE,MAAM,UAAU,SAAS,CAAC,IAAI,GAAG,GAAG;IACnC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC1C,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CACvC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACxC,CAAC,CAAC,OAAO;
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
|
package/dist/markdown.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isMap, parseDocument, stringify } from 'yaml';
|
|
1
2
|
export function parse_wikilinks(markdown) {
|
|
2
3
|
const links = [];
|
|
3
4
|
const pattern = /(!?)\[\[([^\]|]+)(?:\|([^\]]+))?\]\]/gu;
|
|
@@ -33,65 +34,42 @@ export function parse_markdown(markdown) {
|
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
36
|
export function parse_frontmatter(source) {
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const line = raw_line.trimEnd();
|
|
40
|
-
if (line.trim().length === 0)
|
|
41
|
-
continue;
|
|
42
|
-
const list_match = line.match(/^\s*-\s+(.+)$/u);
|
|
43
|
-
if (list_match && current_key) {
|
|
44
|
-
const value = frontmatter[current_key];
|
|
45
|
-
const values = Array.isArray(value)
|
|
46
|
-
? value
|
|
47
|
-
: value === undefined
|
|
48
|
-
? []
|
|
49
|
-
: [String(value)];
|
|
50
|
-
values.push(String(parse_frontmatter_scalar(list_match[1] ?? '')));
|
|
51
|
-
frontmatter[current_key] = values;
|
|
52
|
-
continue;
|
|
53
|
-
}
|
|
54
|
-
const pair_match = line.match(/^([A-Za-z0-9_-]+):\s*(.*)$/u);
|
|
55
|
-
if (!pair_match)
|
|
56
|
-
continue;
|
|
57
|
-
const [, key, value] = pair_match;
|
|
58
|
-
current_key = key;
|
|
59
|
-
frontmatter[key] =
|
|
60
|
-
value.length > 0 ? parse_frontmatter_scalar(value) : [];
|
|
37
|
+
const document = parseDocument(source, { prettyErrors: false });
|
|
38
|
+
if (document.errors.length > 0) {
|
|
39
|
+
throw new Error(`Invalid YAML frontmatter: ${document.errors[0]?.message}`);
|
|
61
40
|
}
|
|
62
|
-
|
|
41
|
+
if (document.contents === null)
|
|
42
|
+
return {};
|
|
43
|
+
if (!isMap(document.contents)) {
|
|
44
|
+
throw new Error('YAML frontmatter must be a mapping/object');
|
|
45
|
+
}
|
|
46
|
+
return normalize_frontmatter_value(document.toJSON());
|
|
63
47
|
}
|
|
64
48
|
export function serialize_frontmatter(frontmatter) {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
for (const item of value)
|
|
70
|
-
lines.push(` - ${item}`);
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
lines.push(`${key}: ${String(value)}`);
|
|
74
|
-
}
|
|
75
|
-
lines.push('---', '');
|
|
76
|
-
return `${lines.join('\n')}\n`;
|
|
49
|
+
const yaml = stringify(frontmatter, {
|
|
50
|
+
lineWidth: 0,
|
|
51
|
+
}).trimEnd();
|
|
52
|
+
return `---\n${yaml}\n---\n\n`;
|
|
77
53
|
}
|
|
78
|
-
function
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (
|
|
86
|
-
return
|
|
87
|
-
if (
|
|
88
|
-
return
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
54
|
+
function normalize_frontmatter_value(value) {
|
|
55
|
+
if (value === null ||
|
|
56
|
+
typeof value === 'string' ||
|
|
57
|
+
typeof value === 'number' ||
|
|
58
|
+
typeof value === 'boolean') {
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
if (value instanceof Date)
|
|
62
|
+
return value.toISOString();
|
|
63
|
+
if (Array.isArray(value)) {
|
|
64
|
+
return value.map((item) => normalize_frontmatter_value(item));
|
|
65
|
+
}
|
|
66
|
+
if (typeof value === 'object') {
|
|
67
|
+
return Object.fromEntries(Object.entries(value).map(([key, item]) => [
|
|
68
|
+
key,
|
|
69
|
+
normalize_frontmatter_value(item),
|
|
70
|
+
]));
|
|
93
71
|
}
|
|
94
|
-
return
|
|
72
|
+
return JSON.stringify(value) ?? null;
|
|
95
73
|
}
|
|
96
74
|
export function page_title_from_markdown(markdown, fallback) {
|
|
97
75
|
const parsed_markdown = parse_markdown(markdown);
|
package/dist/markdown.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../src/markdown.ts"],"names":[],"mappings":"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"}
|
package/dist/pages.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, } from 'node:fs';
|
|
2
2
|
import { dirname, join, relative } from 'node:path';
|
|
3
|
+
import { log_wiki_event } from './events.js';
|
|
3
4
|
import { page_title_from_markdown, parse_markdown, parse_wikilinks, serialize_frontmatter, } from './markdown.js';
|
|
4
5
|
import { display_page_title, page_file_path, page_relative_path, resolve_wiki_root, } from './paths.js';
|
|
5
6
|
export function create_page(title, body, options = {}) {
|
|
@@ -11,7 +12,14 @@ export function create_page(title, body, options = {}) {
|
|
|
11
12
|
writeFileSync(file_path, page_body.endsWith('\n') ? page_body : `${page_body}\n`, {
|
|
12
13
|
flag: options.overwrite ? 'w' : 'wx',
|
|
13
14
|
});
|
|
14
|
-
|
|
15
|
+
const page = read_page(title, options.root);
|
|
16
|
+
log_wiki_event({
|
|
17
|
+
root: options.root,
|
|
18
|
+
operation: options.overwrite ? 'overwrite_page' : 'create_page',
|
|
19
|
+
summary: `Wrote wiki page ${page.path}`,
|
|
20
|
+
target: page.path,
|
|
21
|
+
});
|
|
22
|
+
return page;
|
|
15
23
|
}
|
|
16
24
|
export function read_page(title, root = '.') {
|
|
17
25
|
const page_path = resolve_page_path(title, root);
|
|
@@ -27,7 +35,14 @@ export function set_page_frontmatter(title, frontmatter, options = {}) {
|
|
|
27
35
|
: frontmatter;
|
|
28
36
|
const next_body = `${serialize_frontmatter(next_frontmatter)}${parsed_markdown.content}`;
|
|
29
37
|
writeFileSync(file_path, next_body.endsWith('\n') ? next_body : `${next_body}\n`);
|
|
30
|
-
|
|
38
|
+
const page = read_page_by_path(page_path, options.root);
|
|
39
|
+
log_wiki_event({
|
|
40
|
+
root: options.root,
|
|
41
|
+
operation: 'set_page_frontmatter',
|
|
42
|
+
summary: `Updated frontmatter for ${page.path}`,
|
|
43
|
+
target: page.path,
|
|
44
|
+
});
|
|
45
|
+
return page;
|
|
31
46
|
}
|
|
32
47
|
export function append_page(title, body, root = '.') {
|
|
33
48
|
const page_path = resolve_page_path(title, root);
|
|
@@ -36,7 +51,14 @@ export function append_page(title, body, root = '.') {
|
|
|
36
51
|
writeFileSync(file_path, append_body.endsWith('\n') ? append_body : `${append_body}\n`, {
|
|
37
52
|
flag: 'a',
|
|
38
53
|
});
|
|
39
|
-
|
|
54
|
+
const page = read_page_by_path(page_path, root);
|
|
55
|
+
log_wiki_event({
|
|
56
|
+
root,
|
|
57
|
+
operation: 'append_page',
|
|
58
|
+
summary: `Appended wiki page ${page.path}`,
|
|
59
|
+
target: page.path,
|
|
60
|
+
});
|
|
61
|
+
return page;
|
|
40
62
|
}
|
|
41
63
|
export function resolve_page_path(title, root = '.') {
|
|
42
64
|
const wiki_root = resolve_wiki_root(root);
|
|
@@ -49,7 +71,7 @@ export function resolve_page_path(title, root = '.') {
|
|
|
49
71
|
const page = read_page_by_path(page_path, wiki_root);
|
|
50
72
|
const aliases = page.frontmatter.aliases;
|
|
51
73
|
const alias_list = Array.isArray(aliases)
|
|
52
|
-
? aliases
|
|
74
|
+
? aliases.filter((alias) => typeof alias === 'string')
|
|
53
75
|
: typeof aliases === 'string'
|
|
54
76
|
? [aliases]
|
|
55
77
|
: [];
|
package/dist/pages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,aAAa,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EACN,wBAAwB,EACxB,cAAc,EACd,eAAe,EACf,qBAAqB,GACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAOpB,MAAM,UAAU,WAAW,CAC1B,KAAa,EACb,IAAY,EACZ,UAA4B,EAAE;IAE9B,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QACtC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,KAAK,kBAAkB,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;IAE/C,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,aAAa,CACZ,SAAS,EACT,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,EACvD;QACC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;KACpC,CACD,CAAC;IAEF,
|
|
1
|
+
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"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"}
|
package/dist/review.js
CHANGED
|
@@ -19,7 +19,9 @@ export function review_wiki(root = '.') {
|
|
|
19
19
|
const status = page.frontmatter.status;
|
|
20
20
|
const tags = page.frontmatter.tags;
|
|
21
21
|
const status_text = typeof status === 'string' ? status : null;
|
|
22
|
-
const tag_list = Array.isArray(tags)
|
|
22
|
+
const tag_list = Array.isArray(tags)
|
|
23
|
+
? tags.filter((tag) => typeof tag === 'string')
|
|
24
|
+
: [];
|
|
23
25
|
const matching_tag = tag_list.find((tag) => review_tags.has(tag));
|
|
24
26
|
if (status_text && review_statuses.has(status_text)) {
|
|
25
27
|
results.push({
|
package/dist/review.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAGpB,MAAM,UAAU,WAAW,CAAC,IAAI,GAAG,GAAG;IACrC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;QAC/B,OAAO;QACP,UAAU;QACV,QAAQ;QACR,OAAO;QACP,YAAY;KACZ,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;QAC3B,QAAQ;QACR,cAAc;QACd,YAAY;QACZ,OAAO;KACP,CAAC,CAAC;IACH,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,MAAM,SAAS,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACnC,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAGpB,MAAM,UAAU,WAAW,CAAC,IAAI,GAAG,GAAG;IACrC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;QAC/B,OAAO;QACP,UAAU;QACV,QAAQ;QACR,OAAO;QACP,YAAY;KACZ,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;QAC3B,QAAQ;QACR,cAAc;QACd,YAAY;QACZ,OAAO;KACP,CAAC,CAAC;IACH,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,MAAM,SAAS,IAAI,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACnC,MAAM,WAAW,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACnC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;YAC/C,CAAC,CAAC,EAAE,CAAC;QACN,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAElE,IAAI,WAAW,IAAI,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU,WAAW,EAAE;aAC/B,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,WAAW;gBACnB,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,OAAO,YAAY,EAAE;aAC7B,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACnC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CACnC,CAAC;AACH,CAAC"}
|
package/dist/schema.sql
CHANGED
|
@@ -24,6 +24,23 @@ CREATE TABLE IF NOT EXISTS page_links (
|
|
|
24
24
|
created_at TEXT DEFAULT (datetime('now'))
|
|
25
25
|
);
|
|
26
26
|
|
|
27
|
+
CREATE TABLE IF NOT EXISTS page_chunks (
|
|
28
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
29
|
+
page_id INTEGER NOT NULL REFERENCES pages(id) ON DELETE CASCADE,
|
|
30
|
+
path TEXT NOT NULL,
|
|
31
|
+
title TEXT NOT NULL,
|
|
32
|
+
heading TEXT,
|
|
33
|
+
body TEXT NOT NULL,
|
|
34
|
+
start_line INTEGER NOT NULL,
|
|
35
|
+
end_line INTEGER NOT NULL,
|
|
36
|
+
sequence INTEGER NOT NULL,
|
|
37
|
+
page_priority INTEGER NOT NULL DEFAULT 0,
|
|
38
|
+
page_status TEXT,
|
|
39
|
+
page_tags TEXT,
|
|
40
|
+
created_at TEXT DEFAULT (datetime('now')),
|
|
41
|
+
UNIQUE(page_id, sequence)
|
|
42
|
+
);
|
|
43
|
+
|
|
27
44
|
CREATE TABLE IF NOT EXISTS facts (
|
|
28
45
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
29
46
|
page_id INTEGER REFERENCES pages(id) ON DELETE SET NULL,
|
|
@@ -31,7 +48,28 @@ CREATE TABLE IF NOT EXISTS facts (
|
|
|
31
48
|
summary TEXT NOT NULL,
|
|
32
49
|
body TEXT,
|
|
33
50
|
confidence TEXT NOT NULL DEFAULT 'unknown',
|
|
51
|
+
source_path TEXT,
|
|
52
|
+
source_heading TEXT,
|
|
53
|
+
source_start_line INTEGER,
|
|
54
|
+
source_end_line INTEGER,
|
|
55
|
+
source_quote TEXT,
|
|
56
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
CREATE TABLE IF NOT EXISTS wiki_meta (
|
|
60
|
+
key TEXT PRIMARY KEY,
|
|
61
|
+
value TEXT NOT NULL,
|
|
62
|
+
updated_at TEXT DEFAULT (datetime('now'))
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
CREATE TABLE IF NOT EXISTS wiki_events (
|
|
66
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
67
|
+
operation TEXT NOT NULL,
|
|
68
|
+
summary TEXT NOT NULL,
|
|
69
|
+
target TEXT,
|
|
70
|
+
details TEXT,
|
|
34
71
|
created_at TEXT DEFAULT (datetime('now'))
|
|
35
72
|
);
|
|
36
73
|
|
|
37
74
|
CREATE VIRTUAL TABLE IF NOT EXISTS fts_pages USING fts5(path, title, body);
|
|
75
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS fts_page_chunks USING fts5(chunk_id UNINDEXED, path, title, heading, body);
|
package/dist/search.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import type { BacklinkResult, ContextResult, SearchResult } from './types.js';
|
|
1
|
+
import type { BacklinkResult, ChunkSearchResult, ContextResult, SearchResult, ShowChunkResult } from './types.js';
|
|
2
2
|
export declare function search_wiki(query: string, root?: string, limit?: number): SearchResult[];
|
|
3
3
|
export declare function plain_text_fts_query(query: string): string;
|
|
4
|
+
export declare function relaxed_plain_text_fts_query(query: string): string;
|
|
5
|
+
export declare function search_wiki_chunks(query: string, root?: string, limit?: number): ChunkSearchResult[];
|
|
6
|
+
export declare function show_wiki_chunk(target: string, root?: string): ShowChunkResult | null;
|
|
4
7
|
export declare function get_wiki_context(query: string, root?: string, limit?: number): ContextResult;
|
|
5
|
-
export declare function format_context_markdown(query: string, results:
|
|
8
|
+
export declare function format_context_markdown(query: string, results: ChunkSearchResult[], warnings?: string[]): string;
|
|
6
9
|
export declare function backlinks_for_page(title: string, root?: string): BacklinkResult[];
|