@wiki0/core 0.0.2 → 0.0.3
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 +23 -14
- package/dist/database.d.ts +3 -2
- package/dist/database.js +2 -2
- package/dist/database.js.map +1 -1
- package/dist/graph.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/indexer.d.ts +3 -1
- package/dist/indexer.js +95 -5
- package/dist/indexer.js.map +1 -1
- package/dist/lint.js +1 -1
- package/dist/lint.js.map +1 -1
- package/dist/markdown.js +32 -54
- package/dist/markdown.js.map +1 -1
- package/dist/pages.js +1 -1
- package/dist/pages.js.map +1 -1
- package/dist/review.js +3 -1
- package/dist/review.js.map +1 -1
- package/dist/schema.sql +6 -0
- package/dist/search.d.ts +1 -0
- package/dist/search.js +56 -6
- package/dist/search.js.map +1 -1
- package/dist/types.d.ts +46 -1
- package/dist/workflow.d.ts +4 -0
- package/dist/workflow.js +203 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -11,29 +11,38 @@ Core wiki0 primitives for local-first Markdown wiki memory.
|
|
|
11
11
|
- Context snippets with `wiki/...` citations.
|
|
12
12
|
- Backlinks, graph data, lint results, review queues, and structured
|
|
13
13
|
facts.
|
|
14
|
+
- Wiki-building workflow planning for agents that need a deterministic
|
|
15
|
+
source-to-wiki recipe.
|
|
14
16
|
|
|
15
17
|
## Basic usage
|
|
16
18
|
|
|
17
19
|
```ts
|
|
18
20
|
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
bootstrap_wiki,
|
|
22
|
+
create_page,
|
|
23
|
+
index_status,
|
|
24
|
+
index_wiki,
|
|
25
|
+
search_wiki,
|
|
26
|
+
get_wiki_context,
|
|
27
|
+
lint_wiki,
|
|
28
|
+
plan_wiki,
|
|
29
|
+
} from "@wiki0/core";
|
|
30
|
+
|
|
31
|
+
create_page("projects/wiki0", "Local-first [[topics/memory]].", {
|
|
32
|
+
root: ".",
|
|
28
33
|
});
|
|
29
|
-
index_wiki(
|
|
30
|
-
console.log(
|
|
31
|
-
console.log(
|
|
32
|
-
console.log(
|
|
34
|
+
index_wiki(".");
|
|
35
|
+
console.log(index_status("."));
|
|
36
|
+
console.log(search_wiki("memory", ".", 10));
|
|
37
|
+
console.log(get_wiki_context("what is wiki0?", ".", 5).markdown);
|
|
38
|
+
console.log(lint_wiki("."));
|
|
39
|
+
console.log(plan_wiki({ sourceType: "codebase", scope: "current repo" }));
|
|
40
|
+
console.log(bootstrap_wiki({ root: ".", sourceType: "docs" }));
|
|
33
41
|
```
|
|
34
42
|
|
|
35
43
|
## Storage model
|
|
36
44
|
|
|
37
45
|
Markdown files under `wiki/` are canonical. The `.wiki0/wiki0.sqlite`
|
|
38
46
|
database is a rebuildable cache for search, backlinks, graph data, and
|
|
39
|
-
facts.
|
|
47
|
+
facts. `index_status` reports indexed-at time, schema version, and
|
|
48
|
+
stale reasons when Markdown has changed since the last rebuild.
|
package/dist/database.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
export type WikiDatabase = DatabaseSync;
|
|
2
3
|
export declare function wiki_db_path(root?: string): string;
|
|
3
|
-
export declare function open_wiki_database(root?: string):
|
|
4
|
+
export declare function open_wiki_database(root?: string): WikiDatabase;
|
package/dist/database.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import Database from 'better-sqlite3';
|
|
2
1
|
import { mkdirSync } from 'node:fs';
|
|
3
2
|
import { dirname, join } from 'node:path';
|
|
3
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
4
4
|
import { resolve_wiki_root } from './paths.js';
|
|
5
5
|
import { schema_sql } from './schema.js';
|
|
6
6
|
export function wiki_db_path(root = '.') {
|
|
@@ -10,7 +10,7 @@ export function open_wiki_database(root = '.') {
|
|
|
10
10
|
const wiki_root = resolve_wiki_root(root);
|
|
11
11
|
const db_path = wiki_db_path(wiki_root);
|
|
12
12
|
mkdirSync(dirname(db_path), { recursive: true });
|
|
13
|
-
const db = new
|
|
13
|
+
const db = new DatabaseSync(db_path);
|
|
14
14
|
db.exec(schema_sql);
|
|
15
15
|
return db;
|
|
16
16
|
}
|
package/dist/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,UAAU,YAAY,CAAC,IAAI,GAAG,GAAG;IACtC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAI,GAAG,GAAG;IAC5C,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACxC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,EAAE,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC;AACX,CAAC"}
|
package/dist/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGrE,MAAM,UAAU,UAAU,CAAC,IAAI,GAAG,GAAG;IACpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,EAAE;SACd,OAAO,CAAC,6CAA6C,CAAC;SACtD,GAAG,EAAiB,CAAC;IACvB,MAAM,KAAK,GAAG,EAAE;SACd,OAAO,CACP;;;;;;;;;0CASuC,CACvC;SACA,GAAG,
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGrE,MAAM,UAAU,UAAU,CAAC,IAAI,GAAG,GAAG;IACpC,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,EAAE;SACd,OAAO,CAAC,6CAA6C,CAAC;SACtD,GAAG,EAAiB,CAAC;IACvB,MAAM,KAAK,GAAG,EAAE;SACd,OAAO,CACP;;;;;;;;;0CASuC,CACvC;SACA,GAAG,EAA4B,CAAC;IAClC,EAAE,CAAC,KAAK,EAAE,CAAC;IAEX,OAAO;QACN,IAAI,EAAE,SAAS;QACf,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3B,GAAG,IAAI;YACP,EAAE,EACD,IAAI,CAAC,MAAM,KAAK,UAAU;gBACzB,CAAC,CAAC,IAAI,CAAC,EAAE;gBACT,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;YACrC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1B,CAAC,CAAC;KACH,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { open_wiki_database, wiki_db_path } from './database.js';
|
|
2
2
|
export { add_fact, list_facts } from './facts.js';
|
|
3
3
|
export { graph_wiki } from './graph.js';
|
|
4
|
-
export { index_wiki } from './indexer.js';
|
|
4
|
+
export { current_index_schema_version, index_status, index_wiki, } from './indexer.js';
|
|
5
5
|
export { lint_wiki } from './lint.js';
|
|
6
6
|
export { page_title_from_markdown, parse_frontmatter, parse_markdown, parse_wikilinks, serialize_frontmatter, strip_fenced_code_blocks, strip_inline_code, } from './markdown.js';
|
|
7
7
|
export { append_page, create_page, list_markdown_page_paths, read_page, resolve_page_path, set_page_frontmatter, } from './pages.js';
|
|
@@ -10,3 +10,4 @@ export { review_wiki } from './review.js';
|
|
|
10
10
|
export { schema_sql } from './schema.js';
|
|
11
11
|
export { backlinks_for_page, format_context_markdown, get_wiki_context, search_wiki, } from './search.js';
|
|
12
12
|
export type * from './types.js';
|
|
13
|
+
export { bootstrap_wiki, plan_wiki, wiki_building_workflow_markdown, } from './workflow.js';
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { open_wiki_database, wiki_db_path } from './database.js';
|
|
2
2
|
export { add_fact, list_facts } from './facts.js';
|
|
3
3
|
export { graph_wiki } from './graph.js';
|
|
4
|
-
export { index_wiki } from './indexer.js';
|
|
4
|
+
export { current_index_schema_version, index_status, index_wiki, } from './indexer.js';
|
|
5
5
|
export { lint_wiki } from './lint.js';
|
|
6
6
|
export { page_title_from_markdown, parse_frontmatter, parse_markdown, parse_wikilinks, serialize_frontmatter, strip_fenced_code_blocks, strip_inline_code, } from './markdown.js';
|
|
7
7
|
export { append_page, create_page, list_markdown_page_paths, read_page, resolve_page_path, set_page_frontmatter, } from './pages.js';
|
|
@@ -9,4 +9,5 @@ export { display_page_title, page_file_path, page_relative_path, resolve_wiki_ro
|
|
|
9
9
|
export { review_wiki } from './review.js';
|
|
10
10
|
export { schema_sql } from './schema.js';
|
|
11
11
|
export { backlinks_for_page, format_context_markdown, get_wiki_context, search_wiki, } from './search.js';
|
|
12
|
+
export { bootstrap_wiki, plan_wiki, wiki_building_workflow_markdown, } from './workflow.js';
|
|
12
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EACN,4BAA4B,EAC5B,YAAY,EACZ,UAAU,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACN,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,GACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,WAAW,EACX,WAAW,EACX,wBAAwB,EACxB,SAAS,EACT,iBAAiB,EACjB,oBAAoB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACN,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,oBAAoB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACN,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACN,cAAc,EACd,SAAS,EACT,+BAA+B,GAC/B,MAAM,eAAe,CAAC"}
|
package/dist/indexer.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
import type { IndexResult } from './types.js';
|
|
1
|
+
import type { IndexResult, IndexStatus } from './types.js';
|
|
2
|
+
export declare const current_index_schema_version = 1;
|
|
2
3
|
export declare function index_wiki(root?: string): IndexResult;
|
|
4
|
+
export declare function index_status(root?: string): IndexStatus;
|
package/dist/indexer.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
|
-
import { statSync } from 'node:fs';
|
|
2
|
+
import { existsSync, statSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { open_wiki_database, wiki_db_path } from './database.js';
|
|
5
5
|
import { list_markdown_page_paths, read_page_by_path, } from './pages.js';
|
|
6
6
|
import { resolve_wiki_root, wikilink_target_path } from './paths.js';
|
|
7
|
+
export const current_index_schema_version = 1;
|
|
7
8
|
export function index_wiki(root = '.') {
|
|
8
9
|
const wiki_root = resolve_wiki_root(root);
|
|
9
10
|
const db_path = wiki_db_path(wiki_root);
|
|
@@ -28,6 +29,13 @@ export function index_wiki(root = '.') {
|
|
|
28
29
|
`);
|
|
29
30
|
const clear_fts = db.prepare('DELETE FROM fts_pages');
|
|
30
31
|
const insert_fts = db.prepare('INSERT INTO fts_pages (path, title, body) VALUES (?, ?, ?)');
|
|
32
|
+
const set_meta = db.prepare(`
|
|
33
|
+
INSERT INTO wiki_meta (key, value, updated_at)
|
|
34
|
+
VALUES (?, ?, datetime('now'))
|
|
35
|
+
ON CONFLICT(key) DO UPDATE SET
|
|
36
|
+
value = excluded.value,
|
|
37
|
+
updated_at = datetime('now')
|
|
38
|
+
`);
|
|
31
39
|
const page_paths = list_markdown_page_paths(wiki_root);
|
|
32
40
|
const known_paths = new Set(page_paths);
|
|
33
41
|
const pages = page_paths.map((page_path) => read_page_by_path(page_path, wiki_root));
|
|
@@ -35,7 +43,7 @@ export function index_wiki(root = '.') {
|
|
|
35
43
|
for (const page of pages) {
|
|
36
44
|
const aliases = page.frontmatter.aliases;
|
|
37
45
|
const alias_list = Array.isArray(aliases)
|
|
38
|
-
? aliases
|
|
46
|
+
? aliases.filter((alias) => typeof alias === 'string')
|
|
39
47
|
: typeof aliases === 'string'
|
|
40
48
|
? [aliases]
|
|
41
49
|
: [];
|
|
@@ -45,7 +53,10 @@ export function index_wiki(root = '.') {
|
|
|
45
53
|
name_paths.set(normalized_name, page.path);
|
|
46
54
|
}
|
|
47
55
|
}
|
|
48
|
-
|
|
56
|
+
let indexed_at = new Date().toISOString();
|
|
57
|
+
db.exec('BEGIN');
|
|
58
|
+
try {
|
|
59
|
+
indexed_at = new Date().toISOString();
|
|
49
60
|
clear_fts.run();
|
|
50
61
|
for (const page of pages) {
|
|
51
62
|
const file_path = join(wiki_root, 'wiki', page.path);
|
|
@@ -82,14 +93,93 @@ export function index_wiki(root = '.') {
|
|
|
82
93
|
else {
|
|
83
94
|
db.prepare('DELETE FROM pages').run();
|
|
84
95
|
}
|
|
85
|
-
|
|
86
|
-
|
|
96
|
+
set_meta.run('indexed_at', indexed_at);
|
|
97
|
+
set_meta.run('schema_version', String(current_index_schema_version));
|
|
98
|
+
db.exec('COMMIT');
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
db.exec('ROLLBACK');
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
87
104
|
db.close();
|
|
88
105
|
return {
|
|
89
106
|
root: wiki_root,
|
|
90
107
|
dbPath: db_path,
|
|
91
108
|
pageCount: page_count,
|
|
92
109
|
linkCount: link_count,
|
|
110
|
+
indexedAt: indexed_at,
|
|
111
|
+
schemaVersion: current_index_schema_version,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
export function index_status(root = '.') {
|
|
115
|
+
const wiki_root = resolve_wiki_root(root);
|
|
116
|
+
const db_path = wiki_db_path(wiki_root);
|
|
117
|
+
const page_paths = list_markdown_page_paths(wiki_root);
|
|
118
|
+
const reasons = [];
|
|
119
|
+
if (!existsSync(db_path)) {
|
|
120
|
+
return {
|
|
121
|
+
root: wiki_root,
|
|
122
|
+
dbPath: db_path,
|
|
123
|
+
exists: false,
|
|
124
|
+
indexedAt: null,
|
|
125
|
+
schemaVersion: null,
|
|
126
|
+
currentSchemaVersion: current_index_schema_version,
|
|
127
|
+
pageCount: page_paths.length,
|
|
128
|
+
indexedPageCount: 0,
|
|
129
|
+
stale: true,
|
|
130
|
+
reasons: ['missing-index'],
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
const db = open_wiki_database(wiki_root);
|
|
134
|
+
const meta_rows = db
|
|
135
|
+
.prepare('SELECT key, value FROM wiki_meta')
|
|
136
|
+
.all();
|
|
137
|
+
const meta = new Map(meta_rows.map((row) => [row.key, row.value]));
|
|
138
|
+
const indexed_at = meta.get('indexed_at') ?? null;
|
|
139
|
+
const schema_version = Number(meta.get('schema_version') ?? NaN);
|
|
140
|
+
const indexed_page_count = db.prepare('SELECT COUNT(*) AS count FROM pages').get().count;
|
|
141
|
+
const indexed_pages = db
|
|
142
|
+
.prepare('SELECT path, content_hash AS contentHash FROM pages')
|
|
143
|
+
.all();
|
|
144
|
+
db.close();
|
|
145
|
+
if (!indexed_at)
|
|
146
|
+
reasons.push('never-indexed');
|
|
147
|
+
if (schema_version !== current_index_schema_version) {
|
|
148
|
+
reasons.push('schema-version-mismatch');
|
|
149
|
+
}
|
|
150
|
+
if (indexed_page_count !== page_paths.length) {
|
|
151
|
+
reasons.push('page-count-changed');
|
|
152
|
+
}
|
|
153
|
+
const current_paths = new Set(page_paths);
|
|
154
|
+
const indexed_hashes = new Map(indexed_pages.map((page) => [page.path, page.contentHash]));
|
|
155
|
+
for (const page of indexed_pages) {
|
|
156
|
+
if (!current_paths.has(page.path))
|
|
157
|
+
reasons.push('deleted-pages');
|
|
158
|
+
}
|
|
159
|
+
for (const page_path of page_paths) {
|
|
160
|
+
const page = read_page_by_path(page_path, wiki_root);
|
|
161
|
+
const current_hash = createHash('sha256')
|
|
162
|
+
.update(page.body)
|
|
163
|
+
.digest('hex');
|
|
164
|
+
const indexed_hash = indexed_hashes.get(page_path);
|
|
165
|
+
if (!indexed_hash)
|
|
166
|
+
reasons.push('new-pages');
|
|
167
|
+
else if (indexed_hash !== current_hash)
|
|
168
|
+
reasons.push('modified-pages');
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
root: wiki_root,
|
|
172
|
+
dbPath: db_path,
|
|
173
|
+
exists: true,
|
|
174
|
+
indexedAt: indexed_at,
|
|
175
|
+
schemaVersion: Number.isNaN(schema_version)
|
|
176
|
+
? null
|
|
177
|
+
: schema_version,
|
|
178
|
+
currentSchemaVersion: current_index_schema_version,
|
|
179
|
+
pageCount: page_paths.length,
|
|
180
|
+
indexedPageCount: indexed_page_count,
|
|
181
|
+
stale: reasons.length > 0,
|
|
182
|
+
reasons: [...new Set(reasons)],
|
|
93
183
|
};
|
|
94
184
|
}
|
|
95
185
|
//# 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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
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
|
: [];
|
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
|
@@ -49,7 +49,7 @@ export function resolve_page_path(title, root = '.') {
|
|
|
49
49
|
const page = read_page_by_path(page_path, wiki_root);
|
|
50
50
|
const aliases = page.frontmatter.aliases;
|
|
51
51
|
const alias_list = Array.isArray(aliases)
|
|
52
|
-
? aliases
|
|
52
|
+
? aliases.filter((alias) => typeof alias === 'string')
|
|
53
53
|
: typeof aliases === 'string'
|
|
54
54
|
? [aliases]
|
|
55
55
|
: [];
|
package/dist/pages.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pages.js","sourceRoot":"","sources":["../src/pages.ts"],"names":[],"mappings":"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
|
|
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
|
@@ -34,4 +34,10 @@ CREATE TABLE IF NOT EXISTS facts (
|
|
|
34
34
|
created_at TEXT DEFAULT (datetime('now'))
|
|
35
35
|
);
|
|
36
36
|
|
|
37
|
+
CREATE TABLE IF NOT EXISTS wiki_meta (
|
|
38
|
+
key TEXT PRIMARY KEY,
|
|
39
|
+
value TEXT NOT NULL,
|
|
40
|
+
updated_at TEXT DEFAULT (datetime('now'))
|
|
41
|
+
);
|
|
42
|
+
|
|
37
43
|
CREATE VIRTUAL TABLE IF NOT EXISTS fts_pages USING fts5(path, title, body);
|
package/dist/search.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BacklinkResult, ContextResult, SearchResult } 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;
|
|
4
5
|
export declare function get_wiki_context(query: string, root?: string, limit?: number): ContextResult;
|
|
5
6
|
export declare function format_context_markdown(query: string, results: SearchResult[]): string;
|
|
6
7
|
export declare function backlinks_for_page(title: string, root?: string): BacklinkResult[];
|
package/dist/search.js
CHANGED
|
@@ -16,23 +16,73 @@ export function search_wiki(query, root = '.', limit = 10) {
|
|
|
16
16
|
}
|
|
17
17
|
try {
|
|
18
18
|
const rows = statement.all(fts_query, limit);
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
if (rows.length > 0)
|
|
20
|
+
return rows;
|
|
21
|
+
const relaxed_query = relaxed_plain_text_fts_query(query);
|
|
22
|
+
if (!relaxed_query || relaxed_query === fts_query)
|
|
23
|
+
return rows;
|
|
24
|
+
return statement.all(relaxed_query, limit);
|
|
21
25
|
}
|
|
22
26
|
catch (error) {
|
|
23
|
-
db.close();
|
|
24
27
|
throw new Error(`Invalid wiki search query: ${query}`, {
|
|
25
28
|
cause: error,
|
|
26
29
|
});
|
|
27
30
|
}
|
|
31
|
+
finally {
|
|
32
|
+
db.close();
|
|
33
|
+
}
|
|
28
34
|
}
|
|
35
|
+
const stop_words = new Set([
|
|
36
|
+
'a',
|
|
37
|
+
'an',
|
|
38
|
+
'and',
|
|
39
|
+
'are',
|
|
40
|
+
'as',
|
|
41
|
+
'at',
|
|
42
|
+
'be',
|
|
43
|
+
'by',
|
|
44
|
+
'did',
|
|
45
|
+
'do',
|
|
46
|
+
'does',
|
|
47
|
+
'for',
|
|
48
|
+
'from',
|
|
49
|
+
'how',
|
|
50
|
+
'in',
|
|
51
|
+
'is',
|
|
52
|
+
'it',
|
|
53
|
+
'of',
|
|
54
|
+
'on',
|
|
55
|
+
'or',
|
|
56
|
+
'that',
|
|
57
|
+
'the',
|
|
58
|
+
'this',
|
|
59
|
+
'to',
|
|
60
|
+
'was',
|
|
61
|
+
'we',
|
|
62
|
+
'what',
|
|
63
|
+
'when',
|
|
64
|
+
'where',
|
|
65
|
+
'who',
|
|
66
|
+
'why',
|
|
67
|
+
'with',
|
|
68
|
+
]);
|
|
29
69
|
export function plain_text_fts_query(query) {
|
|
70
|
+
return plain_text_terms(query).map(quote_fts_term).join(' ');
|
|
71
|
+
}
|
|
72
|
+
export function relaxed_plain_text_fts_query(query) {
|
|
73
|
+
return plain_text_terms(query)
|
|
74
|
+
.filter((term) => !stop_words.has(term.toLowerCase()))
|
|
75
|
+
.map(quote_fts_term)
|
|
76
|
+
.join(' OR ');
|
|
77
|
+
}
|
|
78
|
+
function plain_text_terms(query) {
|
|
30
79
|
return query
|
|
31
80
|
.split(/\s+/u)
|
|
32
81
|
.map((term) => term.replace(/^\W+|\W+$/gu, ''))
|
|
33
|
-
.filter((term) => term.length > 0)
|
|
34
|
-
|
|
35
|
-
|
|
82
|
+
.filter((term) => term.length > 0);
|
|
83
|
+
}
|
|
84
|
+
function quote_fts_term(term) {
|
|
85
|
+
return `"${term.replace(/"/gu, '""')}"`;
|
|
36
86
|
}
|
|
37
87
|
export function get_wiki_context(query, root = '.', limit = 5) {
|
|
38
88
|
const results = search_wiki(query, root, limit);
|
package/dist/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAO/C,MAAM,UAAU,WAAW,CAC1B,KAAa,EACb,IAAI,GAAG,GAAG,EACV,KAAK,GAAG,EAAE;IAEV,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAC3B;;;;;;UAMQ,CACR,CAAC;IACF,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,EAAE,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAmB,CAAC;QAC/D,
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,7 +9,9 @@ export type WikiLink = {
|
|
|
9
9
|
alias?: string;
|
|
10
10
|
embed: boolean;
|
|
11
11
|
};
|
|
12
|
-
export type FrontmatterValue = string | number | boolean |
|
|
12
|
+
export type FrontmatterValue = string | number | boolean | null | FrontmatterValue[] | {
|
|
13
|
+
[key: string]: FrontmatterValue;
|
|
14
|
+
};
|
|
13
15
|
export type WikiFrontmatter = Record<string, FrontmatterValue>;
|
|
14
16
|
export type ParsedMarkdown = {
|
|
15
17
|
frontmatter: WikiFrontmatter;
|
|
@@ -36,6 +38,20 @@ export type IndexResult = {
|
|
|
36
38
|
dbPath: string;
|
|
37
39
|
pageCount: number;
|
|
38
40
|
linkCount: number;
|
|
41
|
+
indexedAt: string;
|
|
42
|
+
schemaVersion: number;
|
|
43
|
+
};
|
|
44
|
+
export type IndexStatus = {
|
|
45
|
+
root: string;
|
|
46
|
+
dbPath: string;
|
|
47
|
+
exists: boolean;
|
|
48
|
+
indexedAt: string | null;
|
|
49
|
+
schemaVersion: number | null;
|
|
50
|
+
currentSchemaVersion: number;
|
|
51
|
+
pageCount: number;
|
|
52
|
+
indexedPageCount: number;
|
|
53
|
+
stale: boolean;
|
|
54
|
+
reasons: string[];
|
|
39
55
|
};
|
|
40
56
|
export type SearchResult = {
|
|
41
57
|
path: string;
|
|
@@ -111,3 +127,32 @@ export type LintResult = {
|
|
|
111
127
|
issueCount: number;
|
|
112
128
|
issues: LintIssue[];
|
|
113
129
|
};
|
|
130
|
+
export type WikiSourceType = 'general' | 'codebase' | 'docs' | 'research' | 'notes';
|
|
131
|
+
export type WikiPlanOptions = {
|
|
132
|
+
sourceType?: WikiSourceType;
|
|
133
|
+
scope?: string;
|
|
134
|
+
};
|
|
135
|
+
export type WikiBootstrapOptions = WikiPlanOptions & {
|
|
136
|
+
root?: string;
|
|
137
|
+
overwrite?: boolean;
|
|
138
|
+
};
|
|
139
|
+
export type WikiPlanPage = {
|
|
140
|
+
title: string;
|
|
141
|
+
path: string;
|
|
142
|
+
purpose: string;
|
|
143
|
+
tags: string[];
|
|
144
|
+
};
|
|
145
|
+
export type WikiPlanResult = {
|
|
146
|
+
sourceType: WikiSourceType;
|
|
147
|
+
scope: string;
|
|
148
|
+
workflow: string;
|
|
149
|
+
pages: WikiPlanPage[];
|
|
150
|
+
nextSteps: string[];
|
|
151
|
+
};
|
|
152
|
+
export type WikiBootstrapResult = {
|
|
153
|
+
root: string;
|
|
154
|
+
plan: WikiPlanResult;
|
|
155
|
+
created: string[];
|
|
156
|
+
skipped: string[];
|
|
157
|
+
indexed: IndexResult;
|
|
158
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { WikiBootstrapOptions, WikiBootstrapResult, WikiPlanOptions, WikiPlanResult } from './types.js';
|
|
2
|
+
export declare const wiki_building_workflow_markdown = "# Wiki building workflow\n\nUse this workflow when a user asks to build, bootstrap, generate, or improve a wiki from source material. A codebase is one source type; the same workflow applies to docs, notes, research, transcripts, or any mixed knowledge corpus.\n\n## Steps\n\n1. Clarify the source scope only if it is ambiguous.\n2. Inspect source material before writing pages.\n3. Propose a small page plan with names, purposes, and review flags.\n4. Create an index page that explains the corpus and links to major sections.\n5. Create focused pages for concepts, workflows, decisions, sources, and open questions.\n6. Use [[WikiLinks]] to connect related pages instead of duplicating context.\n7. Use frontmatter for title, aliases, tags, status, and review markers.\n8. Add structured facts for durable claims, decisions, or constraints.\n9. Run index_wiki after page creation.\n10. Run lint_wiki and fix unresolved links or duplicate names.\n11. Run review_wiki and surface pages that still need human review.\n\n## Quality bar\n\n- Prefer many focused pages over one giant dump.\n- Mark uncertain pages with needs-review instead of inventing confidence.\n- Preserve citations or source paths when facts come from external material.\n- Make the wiki navigable for humans and retrievable for agents.\n";
|
|
3
|
+
export declare function plan_wiki(options?: WikiPlanOptions): WikiPlanResult;
|
|
4
|
+
export declare function bootstrap_wiki(options?: WikiBootstrapOptions): WikiBootstrapResult;
|
package/dist/workflow.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { existsSync, readdirSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { index_wiki } from './indexer.js';
|
|
4
|
+
import { serialize_frontmatter } from './markdown.js';
|
|
5
|
+
import { create_page } from './pages.js';
|
|
6
|
+
import { page_file_path, resolve_wiki_root } from './paths.js';
|
|
7
|
+
export const wiki_building_workflow_markdown = `# Wiki building workflow
|
|
8
|
+
|
|
9
|
+
Use this workflow when a user asks to build, bootstrap, generate, or improve a wiki from source material. A codebase is one source type; the same workflow applies to docs, notes, research, transcripts, or any mixed knowledge corpus.
|
|
10
|
+
|
|
11
|
+
## Steps
|
|
12
|
+
|
|
13
|
+
1. Clarify the source scope only if it is ambiguous.
|
|
14
|
+
2. Inspect source material before writing pages.
|
|
15
|
+
3. Propose a small page plan with names, purposes, and review flags.
|
|
16
|
+
4. Create an index page that explains the corpus and links to major sections.
|
|
17
|
+
5. Create focused pages for concepts, workflows, decisions, sources, and open questions.
|
|
18
|
+
6. Use [[WikiLinks]] to connect related pages instead of duplicating context.
|
|
19
|
+
7. Use frontmatter for title, aliases, tags, status, and review markers.
|
|
20
|
+
8. Add structured facts for durable claims, decisions, or constraints.
|
|
21
|
+
9. Run index_wiki after page creation.
|
|
22
|
+
10. Run lint_wiki and fix unresolved links or duplicate names.
|
|
23
|
+
11. Run review_wiki and surface pages that still need human review.
|
|
24
|
+
|
|
25
|
+
## Quality bar
|
|
26
|
+
|
|
27
|
+
- Prefer many focused pages over one giant dump.
|
|
28
|
+
- Mark uncertain pages with needs-review instead of inventing confidence.
|
|
29
|
+
- Preserve citations or source paths when facts come from external material.
|
|
30
|
+
- Make the wiki navigable for humans and retrievable for agents.
|
|
31
|
+
`;
|
|
32
|
+
const common_pages = [
|
|
33
|
+
{
|
|
34
|
+
title: 'Index',
|
|
35
|
+
path: 'index',
|
|
36
|
+
purpose: 'Entry point that summarizes the wiki and links to major sections.',
|
|
37
|
+
tags: ['index'],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
title: 'Sources',
|
|
41
|
+
path: 'sources/index',
|
|
42
|
+
purpose: 'Inventory of source material used to build the wiki.',
|
|
43
|
+
tags: ['sources'],
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
title: 'Concepts',
|
|
47
|
+
path: 'concepts/index',
|
|
48
|
+
purpose: 'Stable concepts, glossary entries, and domain vocabulary.',
|
|
49
|
+
tags: ['concepts'],
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
title: 'Workflows',
|
|
53
|
+
path: 'workflows/index',
|
|
54
|
+
purpose: 'Repeatable processes, how-tos, and operational playbooks.',
|
|
55
|
+
tags: ['workflow'],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
title: 'Open questions',
|
|
59
|
+
path: 'questions/open-questions',
|
|
60
|
+
purpose: 'Unknowns, contradictions, and items requiring human review.',
|
|
61
|
+
tags: ['needs-review', 'questions'],
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
const source_pages = {
|
|
65
|
+
general: [],
|
|
66
|
+
codebase: [
|
|
67
|
+
{
|
|
68
|
+
title: 'Architecture overview',
|
|
69
|
+
path: 'architecture/overview',
|
|
70
|
+
purpose: 'System shape, package boundaries, runtime flow, and key tradeoffs.',
|
|
71
|
+
tags: ['architecture', 'needs-review'],
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
title: 'Packages and modules',
|
|
75
|
+
path: 'packages/index',
|
|
76
|
+
purpose: 'Map packages, modules, entry points, and ownership boundaries.',
|
|
77
|
+
tags: ['package', 'codebase'],
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
docs: [
|
|
81
|
+
{
|
|
82
|
+
title: 'Documentation map',
|
|
83
|
+
path: 'docs/documentation-map',
|
|
84
|
+
purpose: 'Organize existing documentation by audience, topic, and freshness.',
|
|
85
|
+
tags: ['documentation', 'needs-review'],
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
research: [
|
|
89
|
+
{
|
|
90
|
+
title: 'Research findings',
|
|
91
|
+
path: 'research/findings',
|
|
92
|
+
purpose: 'Summarize sourced claims, evidence, and confidence levels.',
|
|
93
|
+
tags: ['research', 'needs-review'],
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
notes: [
|
|
97
|
+
{
|
|
98
|
+
title: 'Note clusters',
|
|
99
|
+
path: 'notes/clusters',
|
|
100
|
+
purpose: 'Group raw notes into themes and candidate durable pages.',
|
|
101
|
+
tags: ['notes', 'needs-review'],
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
};
|
|
105
|
+
export function plan_wiki(options = {}) {
|
|
106
|
+
const source_type = options.sourceType ?? 'general';
|
|
107
|
+
const scope = options.scope ?? 'user-provided source material';
|
|
108
|
+
const pages = [...common_pages, ...source_pages[source_type]];
|
|
109
|
+
return {
|
|
110
|
+
sourceType: source_type,
|
|
111
|
+
scope,
|
|
112
|
+
workflow: wiki_building_workflow_markdown,
|
|
113
|
+
pages,
|
|
114
|
+
nextSteps: [
|
|
115
|
+
'Inspect the source material and adjust this plan before writing pages.',
|
|
116
|
+
'Create or update the index page first so later pages have a navigation target.',
|
|
117
|
+
'Create focused pages with frontmatter and wikilinks.',
|
|
118
|
+
'Run index_wiki, lint_wiki, and review_wiki before handing off.',
|
|
119
|
+
],
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
export function bootstrap_wiki(options = {}) {
|
|
123
|
+
const root = resolve_wiki_root(options.root);
|
|
124
|
+
const plan = plan_wiki(options);
|
|
125
|
+
const created = [];
|
|
126
|
+
const skipped = [];
|
|
127
|
+
const detected_sources = detect_source_inventory(root, plan.sourceType);
|
|
128
|
+
for (const page of plan.pages) {
|
|
129
|
+
if (!options.overwrite &&
|
|
130
|
+
existsSync(page_file_path(page.path, root))) {
|
|
131
|
+
skipped.push(page.path);
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
create_page(page.path, page_template(page, plan, detected_sources), {
|
|
135
|
+
root,
|
|
136
|
+
overwrite: options.overwrite,
|
|
137
|
+
});
|
|
138
|
+
created.push(page.path);
|
|
139
|
+
}
|
|
140
|
+
return {
|
|
141
|
+
root,
|
|
142
|
+
plan,
|
|
143
|
+
created,
|
|
144
|
+
skipped,
|
|
145
|
+
indexed: index_wiki(root),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
function page_template(page, plan, detected_sources) {
|
|
149
|
+
if (page.path === 'index')
|
|
150
|
+
return index_template(page, plan);
|
|
151
|
+
const frontmatter = serialize_frontmatter({
|
|
152
|
+
title: page.title,
|
|
153
|
+
tags: page.tags,
|
|
154
|
+
});
|
|
155
|
+
if (page.path === 'sources/index') {
|
|
156
|
+
return `${frontmatter}# ${page.title}\n\n${page.purpose}\n\n## Source scope\n\n${plan.scope}\n\n## Detected sources\n\n${format_source_inventory(detected_sources)}\n\n## Ingestion notes\n\n- Record source paths, URLs, owners, and freshness before extracting durable facts.\n`;
|
|
157
|
+
}
|
|
158
|
+
if (page.path === 'questions/open-questions') {
|
|
159
|
+
return `${frontmatter}# ${page.title}\n\n${page.purpose}\n\n## Source scope\n\n${plan.scope}\n\n## Questions\n\n- What source material has not been inspected yet?\n- Which claims need citations or owner confirmation?\n- Which pages should move from needs-review to verified?\n`;
|
|
160
|
+
}
|
|
161
|
+
return `${frontmatter}# ${page.title}\n\n${page.purpose}\n\n## Source scope\n\n${plan.scope}\n\n## Evidence\n\n- Add source-backed details here with citations or file paths.\n\n## Candidate facts\n\n- Add durable claims here before promoting them with add_fact.\n`;
|
|
162
|
+
}
|
|
163
|
+
function index_template(page, plan) {
|
|
164
|
+
const frontmatter = serialize_frontmatter({
|
|
165
|
+
title: page.title,
|
|
166
|
+
tags: page.tags,
|
|
167
|
+
});
|
|
168
|
+
const links = plan.pages
|
|
169
|
+
.filter((planned_page) => planned_page.path !== page.path)
|
|
170
|
+
.map((planned_page) => `- [[${planned_page.path}|${planned_page.title}]] — ${planned_page.purpose}`)
|
|
171
|
+
.join('\n');
|
|
172
|
+
return `${frontmatter}# ${page.title}\n\nWiki for ${plan.scope}.\n\n## Start here\n\n${links}\n\n## Workflow\n\nUse [[workflows/index|Workflows]] to capture repeatable processes, [[sources/index|Sources]] to track inspected material, and [[questions/open-questions|Open questions]] for uncertain claims.\n`;
|
|
173
|
+
}
|
|
174
|
+
function detect_source_inventory(root, source_type) {
|
|
175
|
+
const candidates = ['README.md', 'package.json', 'docs'];
|
|
176
|
+
if (source_type === 'codebase')
|
|
177
|
+
candidates.push('packages');
|
|
178
|
+
const sources = [];
|
|
179
|
+
for (const candidate of candidates) {
|
|
180
|
+
const candidate_path = join(root, candidate);
|
|
181
|
+
if (!existsSync(candidate_path))
|
|
182
|
+
continue;
|
|
183
|
+
if (candidate === 'packages') {
|
|
184
|
+
for (const entry of readdirSync(candidate_path, {
|
|
185
|
+
withFileTypes: true,
|
|
186
|
+
})) {
|
|
187
|
+
if (entry.isDirectory()) {
|
|
188
|
+
sources.push(`packages/${entry.name}/package.json`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
sources.push(candidate);
|
|
194
|
+
}
|
|
195
|
+
return sources;
|
|
196
|
+
}
|
|
197
|
+
function format_source_inventory(sources) {
|
|
198
|
+
if (sources.length === 0) {
|
|
199
|
+
return '- No local sources detected automatically; add source paths or URLs here.';
|
|
200
|
+
}
|
|
201
|
+
return sources.map((source) => `- \`${source}\``).join('\n');
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wiki0/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Core wiki0 Markdown wiki indexing and retrieval primitives",
|
|
5
5
|
"homepage": "https://github.com/spences10/wiki0/tree/main/packages/core#readme",
|
|
6
6
|
"license": "MIT",
|
|
@@ -27,10 +27,9 @@
|
|
|
27
27
|
"access": "public"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"
|
|
30
|
+
"yaml": "^2.9.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@types/better-sqlite3": "^7.6.13",
|
|
34
33
|
"@types/node": "^25.8.0",
|
|
35
34
|
"typescript": "^6.0.3",
|
|
36
35
|
"vite-plus": "^0.1.22",
|