pi-para 0.5.5 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/package.json +8 -5
  3. package/scripts/build-assets.mjs +29 -0
  4. package/scripts/install.ps1 +27 -16
  5. package/scripts/install.sh +3 -2
  6. package/scripts/smoke-install.mjs +5 -3
  7. package/src/doctor.ts +5 -0
  8. package/dist/atomic-write.d.ts +0 -2
  9. package/dist/atomic-write.d.ts.map +0 -1
  10. package/dist/atomic-write.js +0 -18
  11. package/dist/atomic-write.js.map +0 -1
  12. package/dist/capture.d.ts +0 -34
  13. package/dist/capture.d.ts.map +0 -1
  14. package/dist/capture.js +0 -461
  15. package/dist/capture.js.map +0 -1
  16. package/dist/cli-legacy.d.ts +0 -4
  17. package/dist/cli-legacy.d.ts.map +0 -1
  18. package/dist/cli-legacy.js +0 -41
  19. package/dist/cli-legacy.js.map +0 -1
  20. package/dist/cli.d.ts +0 -8
  21. package/dist/cli.d.ts.map +0 -1
  22. package/dist/cli.js +0 -511
  23. package/dist/cli.js.map +0 -1
  24. package/dist/commands.d.ts +0 -15
  25. package/dist/commands.d.ts.map +0 -1
  26. package/dist/commands.js +0 -719
  27. package/dist/commands.js.map +0 -1
  28. package/dist/config.d.ts +0 -104
  29. package/dist/config.d.ts.map +0 -1
  30. package/dist/config.js +0 -242
  31. package/dist/config.js.map +0 -1
  32. package/dist/context.d.ts +0 -63
  33. package/dist/context.d.ts.map +0 -1
  34. package/dist/context.js +0 -311
  35. package/dist/context.js.map +0 -1
  36. package/dist/credentials.d.ts +0 -27
  37. package/dist/credentials.d.ts.map +0 -1
  38. package/dist/credentials.js +0 -85
  39. package/dist/credentials.js.map +0 -1
  40. package/dist/daemon.d.ts +0 -49
  41. package/dist/daemon.d.ts.map +0 -1
  42. package/dist/daemon.js +0 -226
  43. package/dist/daemon.js.map +0 -1
  44. package/dist/doctor.d.ts +0 -20
  45. package/dist/doctor.d.ts.map +0 -1
  46. package/dist/doctor.js +0 -171
  47. package/dist/doctor.js.map +0 -1
  48. package/dist/frontmatter.d.ts +0 -59
  49. package/dist/frontmatter.d.ts.map +0 -1
  50. package/dist/frontmatter.js +0 -170
  51. package/dist/frontmatter.js.map +0 -1
  52. package/dist/gepa/dataset.d.ts +0 -36
  53. package/dist/gepa/dataset.d.ts.map +0 -1
  54. package/dist/gepa/dataset.js +0 -148
  55. package/dist/gepa/dataset.js.map +0 -1
  56. package/dist/gepa/evaluator.d.ts +0 -51
  57. package/dist/gepa/evaluator.d.ts.map +0 -1
  58. package/dist/gepa/evaluator.js +0 -317
  59. package/dist/gepa/evaluator.js.map +0 -1
  60. package/dist/gepa/index.d.ts +0 -66
  61. package/dist/gepa/index.d.ts.map +0 -1
  62. package/dist/gepa/index.js +0 -240
  63. package/dist/gepa/index.js.map +0 -1
  64. package/dist/gepa/llm.d.ts +0 -35
  65. package/dist/gepa/llm.d.ts.map +0 -1
  66. package/dist/gepa/llm.js +0 -268
  67. package/dist/gepa/llm.js.map +0 -1
  68. package/dist/gepa/optimized/capture-prompt.txt +0 -65
  69. package/dist/gepa/optimizer.d.ts +0 -29
  70. package/dist/gepa/optimizer.d.ts.map +0 -1
  71. package/dist/gepa/optimizer.js +0 -249
  72. package/dist/gepa/optimizer.js.map +0 -1
  73. package/dist/gepa/targets.d.ts +0 -39
  74. package/dist/gepa/targets.d.ts.map +0 -1
  75. package/dist/gepa/targets.js +0 -326
  76. package/dist/gepa/targets.js.map +0 -1
  77. package/dist/gepa/types.d.ts +0 -168
  78. package/dist/gepa/types.d.ts.map +0 -1
  79. package/dist/gepa/types.js +0 -124
  80. package/dist/gepa/types.js.map +0 -1
  81. package/dist/index.d.ts +0 -21
  82. package/dist/index.d.ts.map +0 -1
  83. package/dist/index.js +0 -359
  84. package/dist/index.js.map +0 -1
  85. package/dist/ingest.d.ts +0 -88
  86. package/dist/ingest.d.ts.map +0 -1
  87. package/dist/ingest.js +0 -105
  88. package/dist/ingest.js.map +0 -1
  89. package/dist/link-discovery.d.ts +0 -40
  90. package/dist/link-discovery.d.ts.map +0 -1
  91. package/dist/link-discovery.js +0 -122
  92. package/dist/link-discovery.js.map +0 -1
  93. package/dist/link-utils.d.ts +0 -30
  94. package/dist/link-utils.d.ts.map +0 -1
  95. package/dist/link-utils.js +0 -145
  96. package/dist/link-utils.js.map +0 -1
  97. package/dist/lint.d.ts +0 -39
  98. package/dist/lint.d.ts.map +0 -1
  99. package/dist/lint.js +0 -827
  100. package/dist/lint.js.map +0 -1
  101. package/dist/maintainer.d.ts +0 -24
  102. package/dist/maintainer.d.ts.map +0 -1
  103. package/dist/maintainer.js +0 -358
  104. package/dist/maintainer.js.map +0 -1
  105. package/dist/model-resolver.d.ts +0 -30
  106. package/dist/model-resolver.d.ts.map +0 -1
  107. package/dist/model-resolver.js +0 -71
  108. package/dist/model-resolver.js.map +0 -1
  109. package/dist/paths.d.ts +0 -20
  110. package/dist/paths.d.ts.map +0 -1
  111. package/dist/paths.js +0 -33
  112. package/dist/paths.js.map +0 -1
  113. package/dist/processor.d.ts +0 -14
  114. package/dist/processor.d.ts.map +0 -1
  115. package/dist/processor.js +0 -361
  116. package/dist/processor.js.map +0 -1
  117. package/dist/qmd-providers.d.ts +0 -12
  118. package/dist/qmd-providers.d.ts.map +0 -1
  119. package/dist/qmd-providers.js +0 -45
  120. package/dist/qmd-providers.js.map +0 -1
  121. package/dist/query.d.ts +0 -69
  122. package/dist/query.d.ts.map +0 -1
  123. package/dist/query.js +0 -120
  124. package/dist/query.js.map +0 -1
  125. package/dist/raw.d.ts +0 -57
  126. package/dist/raw.d.ts.map +0 -1
  127. package/dist/raw.js +0 -219
  128. package/dist/raw.js.map +0 -1
  129. package/dist/redact.d.ts +0 -21
  130. package/dist/redact.d.ts.map +0 -1
  131. package/dist/redact.js +0 -143
  132. package/dist/redact.js.map +0 -1
  133. package/dist/repair.d.ts +0 -11
  134. package/dist/repair.d.ts.map +0 -1
  135. package/dist/repair.js +0 -41
  136. package/dist/repair.js.map +0 -1
  137. package/dist/scheduler/controls.d.ts +0 -35
  138. package/dist/scheduler/controls.d.ts.map +0 -1
  139. package/dist/scheduler/controls.js +0 -98
  140. package/dist/scheduler/controls.js.map +0 -1
  141. package/dist/scheduler/index.d.ts +0 -48
  142. package/dist/scheduler/index.d.ts.map +0 -1
  143. package/dist/scheduler/index.js +0 -193
  144. package/dist/scheduler/index.js.map +0 -1
  145. package/dist/scheduler/leases.d.ts +0 -22
  146. package/dist/scheduler/leases.d.ts.map +0 -1
  147. package/dist/scheduler/leases.js +0 -74
  148. package/dist/scheduler/leases.js.map +0 -1
  149. package/dist/scheduler/session-capture.d.ts +0 -33
  150. package/dist/scheduler/session-capture.d.ts.map +0 -1
  151. package/dist/scheduler/session-capture.js +0 -108
  152. package/dist/scheduler/session-capture.js.map +0 -1
  153. package/dist/scheduler/state.d.ts +0 -56
  154. package/dist/scheduler/state.d.ts.map +0 -1
  155. package/dist/scheduler/state.js +0 -210
  156. package/dist/scheduler/state.js.map +0 -1
  157. package/dist/scope.d.ts +0 -54
  158. package/dist/scope.d.ts.map +0 -1
  159. package/dist/scope.js +0 -161
  160. package/dist/scope.js.map +0 -1
  161. package/dist/scripts/bulk-link-fix.d.ts +0 -9
  162. package/dist/scripts/bulk-link-fix.d.ts.map +0 -1
  163. package/dist/scripts/bulk-link-fix.js +0 -106
  164. package/dist/scripts/bulk-link-fix.js.map +0 -1
  165. package/dist/session-tools.d.ts +0 -33
  166. package/dist/session-tools.d.ts.map +0 -1
  167. package/dist/session-tools.js +0 -211
  168. package/dist/session-tools.js.map +0 -1
  169. package/dist/settings.d.ts +0 -19
  170. package/dist/settings.d.ts.map +0 -1
  171. package/dist/settings.js +0 -106
  172. package/dist/settings.js.map +0 -1
  173. package/dist/setup.d.ts +0 -29
  174. package/dist/setup.d.ts.map +0 -1
  175. package/dist/setup.js +0 -90
  176. package/dist/setup.js.map +0 -1
  177. package/dist/state.d.ts +0 -54
  178. package/dist/state.d.ts.map +0 -1
  179. package/dist/state.js +0 -176
  180. package/dist/state.js.map +0 -1
  181. package/dist/status.d.ts +0 -22
  182. package/dist/status.d.ts.map +0 -1
  183. package/dist/status.js +0 -93
  184. package/dist/status.js.map +0 -1
  185. package/dist/store.d.ts +0 -71
  186. package/dist/store.d.ts.map +0 -1
  187. package/dist/store.js +0 -282
  188. package/dist/store.js.map +0 -1
  189. package/dist/summarize.d.ts +0 -60
  190. package/dist/summarize.d.ts.map +0 -1
  191. package/dist/summarize.js +0 -266
  192. package/dist/summarize.js.map +0 -1
  193. package/dist/tag-registry.d.ts +0 -56
  194. package/dist/tag-registry.d.ts.map +0 -1
  195. package/dist/tag-registry.js +0 -146
  196. package/dist/tag-registry.js.map +0 -1
  197. package/dist/templates/prompts.d.ts +0 -63
  198. package/dist/templates/prompts.d.ts.map +0 -1
  199. package/dist/templates/prompts.js +0 -260
  200. package/dist/templates/prompts.js.map +0 -1
  201. package/dist/tools.d.ts +0 -26
  202. package/dist/tools.d.ts.map +0 -1
  203. package/dist/tools.js +0 -1198
  204. package/dist/tools.js.map +0 -1
  205. package/dist/watcher.d.ts +0 -25
  206. package/dist/watcher.d.ts.map +0 -1
  207. package/dist/watcher.js +0 -84
  208. package/dist/watcher.js.map +0 -1
  209. package/dist/webui/client/dist/index.html +0 -1885
  210. package/dist/webui/server.d.ts +0 -31
  211. package/dist/webui/server.d.ts.map +0 -1
  212. package/dist/webui/server.js +0 -566
  213. package/dist/webui/server.js.map +0 -1
  214. package/dist/wiki-tool-guidance.d.ts +0 -6
  215. package/dist/wiki-tool-guidance.d.ts.map +0 -1
  216. package/dist/wiki-tool-guidance.js +0 -70
  217. package/dist/wiki-tool-guidance.js.map +0 -1
  218. package/dist/wiki.d.ts +0 -108
  219. package/dist/wiki.d.ts.map +0 -1
  220. package/dist/wiki.js +0 -497
  221. package/dist/wiki.js.map +0 -1
  222. package/scripts/gepa/__pycache__/dataset.cpython-313.pyc +0 -0
  223. package/scripts/gepa/__pycache__/lm_providers.cpython-313.pyc +0 -0
  224. package/scripts/gepa/__pycache__/metric.cpython-313.pyc +0 -0
  225. package/scripts/gepa/__pycache__/program.cpython-313.pyc +0 -0
  226. package/scripts/gepa/__pycache__/wiki_reader.cpython-313.pyc +0 -0
  227. package/scripts/gepa/uv.lock +0 -2241
package/dist/setup.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/dist/state.d.ts DELETED
@@ -1,54 +0,0 @@
1
- /**
2
- * SQLite state management for processed sessions.
3
- * Tracks which sessions have been processed, their content hash,
4
- * and what pages were created/updated.
5
- */
6
- export interface PageSummary {
7
- slug: string;
8
- category: string;
9
- scope: string[];
10
- tags: string[];
11
- firstParagraph: string;
12
- updatedAt: string;
13
- }
14
- export interface ProcessedSession {
15
- sessionPath: string;
16
- contentHash: string;
17
- processedAt: string;
18
- scope: string;
19
- pagesCreated: string[];
20
- pagesUpdated: string[];
21
- error: string | null;
22
- }
23
- export declare class StateDB {
24
- private db;
25
- constructor(wikiDir: string);
26
- private migrate;
27
- /** Check if a session file has already been processed with the same content. */
28
- isProcessed(sessionPath: string): boolean;
29
- /** Get the stored hash for a session (or null if not processed). */
30
- getHash(sessionPath: string): string | null;
31
- /** Record a successfully processed session. */
32
- recordSuccess(sessionPath: string, scope: string, pagesCreated: string[], pagesUpdated: string[]): void;
33
- /** Record a failed processing attempt. */
34
- recordFailure(sessionPath: string, scope: string, error: string): void;
35
- /** Get all failed sessions for retry. */
36
- getFailed(): ProcessedSession[];
37
- /** Get processing history, optionally filtered by scope. */
38
- getHistory(scope?: string, limit?: number): ProcessedSession[];
39
- /** Get/set daemon state values. */
40
- getState(key: string): string | null;
41
- setState(key: string, value: string): void;
42
- /** Upsert a page summary in the cache. */
43
- upsertPageSummary(slug: string, category: string, scope: string[], tags: string[], firstParagraph: string, updatedAt: string): void;
44
- /** Get all page summaries, optionally filtered by scope. */
45
- getPageSummaries(scope?: {
46
- name: string;
47
- include: string[];
48
- exclude: string[];
49
- }): PageSummary[];
50
- /** Delete a page summary from the cache. */
51
- deletePageSummary(slug: string): void;
52
- close(): void;
53
- }
54
- //# sourceMappingURL=state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAoB;gBAElB,OAAO,EAAE,MAAM;IAO3B,OAAO,CAAC,OAAO;IA0Bf,gFAAgF;IAChF,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAUzC,oEAAoE;IACpE,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO3C,+CAA+C;IAC/C,aAAa,CACX,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EAAE,EACtB,YAAY,EAAE,MAAM,EAAE,GACrB,IAAI;IAkBP,0CAA0C;IAC1C,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAWtE,yCAAyC;IACzC,SAAS,IAAI,gBAAgB,EAAE;IAe/B,4DAA4D;IAC5D,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,gBAAgB,EAAE;IAiBlE,mCAAmC;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOpC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1C,0CAA0C;IAC1C,iBAAiB,CACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,IAAI,EAAE,MAAM,EAAE,EACd,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,GAChB,IAAI;IAiBP,4DAA4D;IAC5D,gBAAgB,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,WAAW,EAAE;IAoC/F,4CAA4C;IAC5C,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMrC,KAAK,IAAI,IAAI;CAGd"}
package/dist/state.js DELETED
@@ -1,176 +0,0 @@
1
- /**
2
- * SQLite state management for processed sessions.
3
- * Tracks which sessions have been processed, their content hash,
4
- * and what pages were created/updated.
5
- */
6
- import Database from "better-sqlite3";
7
- import { createHash } from "node:crypto";
8
- import { readFileSync } from "node:fs";
9
- import { join } from "node:path";
10
- export class StateDB {
11
- db;
12
- constructor(wikiDir) {
13
- const dbPath = join(wikiDir, ".daemon.sqlite");
14
- this.db = new Database(dbPath);
15
- this.db.pragma("journal_mode = WAL");
16
- this.migrate();
17
- }
18
- migrate() {
19
- this.db.exec(`
20
- CREATE TABLE IF NOT EXISTS processed_sessions (
21
- session_path TEXT PRIMARY KEY,
22
- content_hash TEXT NOT NULL,
23
- processed_at TEXT NOT NULL,
24
- scope TEXT,
25
- pages_created TEXT DEFAULT '[]',
26
- pages_updated TEXT DEFAULT '[]',
27
- error TEXT
28
- );
29
- CREATE TABLE IF NOT EXISTS daemon_state (
30
- key TEXT PRIMARY KEY,
31
- value TEXT
32
- );
33
- CREATE TABLE IF NOT EXISTS page_summaries (
34
- slug TEXT PRIMARY KEY,
35
- category TEXT NOT NULL,
36
- scope_json TEXT NOT NULL DEFAULT '[]',
37
- tags_json TEXT NOT NULL DEFAULT '[]',
38
- first_paragraph TEXT NOT NULL DEFAULT '',
39
- updated_at TEXT NOT NULL
40
- );
41
- `);
42
- }
43
- /** Check if a session file has already been processed with the same content. */
44
- isProcessed(sessionPath) {
45
- const row = this.db
46
- .prepare("SELECT content_hash FROM processed_sessions WHERE session_path = ?")
47
- .get(sessionPath);
48
- if (!row)
49
- return false;
50
- const currentHash = hashFile(sessionPath);
51
- return row.content_hash === currentHash;
52
- }
53
- /** Get the stored hash for a session (or null if not processed). */
54
- getHash(sessionPath) {
55
- const row = this.db
56
- .prepare("SELECT content_hash FROM processed_sessions WHERE session_path = ?")
57
- .get(sessionPath);
58
- return row?.content_hash ?? null;
59
- }
60
- /** Record a successfully processed session. */
61
- recordSuccess(sessionPath, scope, pagesCreated, pagesUpdated) {
62
- const hash = hashFile(sessionPath);
63
- this.db
64
- .prepare(`
65
- INSERT OR REPLACE INTO processed_sessions
66
- (session_path, content_hash, processed_at, scope, pages_created, pages_updated, error)
67
- VALUES (?, ?, ?, ?, ?, ?, NULL)
68
- `)
69
- .run(sessionPath, hash, new Date().toISOString(), scope, JSON.stringify(pagesCreated), JSON.stringify(pagesUpdated));
70
- }
71
- /** Record a failed processing attempt. */
72
- recordFailure(sessionPath, scope, error) {
73
- const hash = hashFile(sessionPath);
74
- this.db
75
- .prepare(`
76
- INSERT OR REPLACE INTO processed_sessions
77
- (session_path, content_hash, processed_at, scope, pages_created, pages_updated, error)
78
- VALUES (?, ?, ?, ?, '[]', '[]', ?)
79
- `)
80
- .run(sessionPath, hash, new Date().toISOString(), scope, error);
81
- }
82
- /** Get all failed sessions for retry. */
83
- getFailed() {
84
- const rows = this.db
85
- .prepare("SELECT * FROM processed_sessions WHERE error IS NOT NULL")
86
- .all();
87
- return rows.map(rowToSession);
88
- }
89
- /** Get processing history, optionally filtered by scope. */
90
- getHistory(scope, limit = 20) {
91
- const sql = scope
92
- ? "SELECT * FROM processed_sessions WHERE scope = ? ORDER BY processed_at DESC LIMIT ?"
93
- : "SELECT * FROM processed_sessions ORDER BY processed_at DESC LIMIT ?";
94
- const params = scope ? [scope, limit] : [limit];
95
- const rows = this.db.prepare(sql).all(...params);
96
- return rows.map(rowToSession);
97
- }
98
- /** Get/set daemon state values. */
99
- getState(key) {
100
- const row = this.db
101
- .prepare("SELECT value FROM daemon_state WHERE key = ?")
102
- .get(key);
103
- return row?.value ?? null;
104
- }
105
- setState(key, value) {
106
- this.db
107
- .prepare("INSERT OR REPLACE INTO daemon_state (key, value) VALUES (?, ?)")
108
- .run(key, value);
109
- }
110
- /** Upsert a page summary in the cache. */
111
- upsertPageSummary(slug, category, scope, tags, firstParagraph, updatedAt) {
112
- this.db
113
- .prepare(`
114
- INSERT OR REPLACE INTO page_summaries
115
- (slug, category, scope_json, tags_json, first_paragraph, updated_at)
116
- VALUES (?, ?, ?, ?, ?, ?)
117
- `)
118
- .run(slug, category, JSON.stringify(scope), JSON.stringify(tags), firstParagraph, updatedAt);
119
- }
120
- /** Get all page summaries, optionally filtered by scope. */
121
- getPageSummaries(scope) {
122
- const rows = this.db
123
- .prepare("SELECT * FROM page_summaries ORDER BY updated_at DESC")
124
- .all();
125
- const summaries = rows.map((row) => ({
126
- slug: row.slug,
127
- category: row.category,
128
- scope: JSON.parse(row.scope_json || "[]"),
129
- tags: JSON.parse(row.tags_json || "[]"),
130
- firstParagraph: row.first_paragraph,
131
- updatedAt: row.updated_at,
132
- }));
133
- if (!scope)
134
- return summaries;
135
- // Filter by scope: include global + matching, exclude excluded
136
- return summaries.filter((s) => {
137
- if (scope.exclude.length > 0 &&
138
- s.scope.some((tag) => scope.exclude.includes(tag))) {
139
- return false;
140
- }
141
- if (s.scope.includes("global"))
142
- return true;
143
- return s.scope.some((tag) => scope.include.includes(tag));
144
- });
145
- }
146
- /** Delete a page summary from the cache. */
147
- deletePageSummary(slug) {
148
- this.db
149
- .prepare("DELETE FROM page_summaries WHERE slug = ?")
150
- .run(slug);
151
- }
152
- close() {
153
- this.db.close();
154
- }
155
- }
156
- function hashFile(filePath) {
157
- try {
158
- const content = readFileSync(filePath);
159
- return createHash("sha256").update(content).digest("hex");
160
- }
161
- catch {
162
- return "missing";
163
- }
164
- }
165
- function rowToSession(row) {
166
- return {
167
- sessionPath: row.session_path,
168
- contentHash: row.content_hash,
169
- processedAt: row.processed_at,
170
- scope: row.scope ?? "",
171
- pagesCreated: JSON.parse(row.pages_created || "[]"),
172
- pagesUpdated: JSON.parse(row.pages_updated || "[]"),
173
- error: row.error,
174
- };
175
- }
176
- //# sourceMappingURL=state.js.map
package/dist/state.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
package/dist/status.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import { type ParaCategory } from "./wiki.js";
2
- import { type QueueStatus } from "./scheduler/state.js";
3
- export interface PiParaStatusOptions {
4
- homeDir?: string;
5
- }
6
- export interface PiParaStatusResult {
7
- configPath: string;
8
- wikiDir: string;
9
- configSource: "canonical" | "migrated";
10
- schedulerDbPath: string;
11
- qmdDbPath: string;
12
- pages: {
13
- total: number;
14
- byCategory: Record<ParaCategory, number>;
15
- };
16
- scheduler: Record<QueueStatus, number>;
17
- qmdDbExists: boolean;
18
- warnings: string[];
19
- }
20
- export declare function getPiParaStatus(options?: PiParaStatusOptions): Promise<PiParaStatusResult>;
21
- export declare function formatPiParaStatus(status: PiParaStatusResult): string;
22
- //# sourceMappingURL=status.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,WAAW,GAAG,UAAU,CAAC;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;KAC1C,CAAC;IACF,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACvC,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAID,wBAAsB,eAAe,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAuBpG;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAiBrE"}
package/dist/status.js DELETED
@@ -1,93 +0,0 @@
1
- import { existsSync } from "node:fs";
2
- import { loadParaConfig } from "./config.js";
3
- import { getParaPaths } from "./paths.js";
4
- import { listPages } from "./wiki.js";
5
- import { SchedulerStateDB } from "./scheduler/state.js";
6
- const QUEUE_STATUSES = ["queued", "running", "done", "failed"];
7
- export async function getPiParaStatus(options = {}) {
8
- const loaded = await loadParaConfig({ homeDir: options.homeDir, migrate: true });
9
- const paths = getParaPaths({ homeDir: options.homeDir, wikiDir: loaded.config.wiki.dir });
10
- const warnings = [];
11
- const pages = await getPageCounts(paths.wikiDir, warnings);
12
- const scheduler = getSchedulerCounts(paths.schedulerDbPath, warnings);
13
- if (!existsSync(paths.wikiDir))
14
- warnings.push(`wiki directory not found: ${paths.wikiDir}`);
15
- if (!existsSync(paths.schedulerDbPath))
16
- warnings.push("scheduler DB not created yet; it will be initialized when Pi starts");
17
- if (!existsSync(paths.qmdDbPath))
18
- warnings.push("QMD DB not created yet; search index is initialized on first store open");
19
- return {
20
- configPath: paths.userConfigPath,
21
- wikiDir: paths.wikiDir,
22
- configSource: loaded.migratedFromLegacy ? "migrated" : "canonical",
23
- schedulerDbPath: paths.schedulerDbPath,
24
- qmdDbPath: paths.qmdDbPath,
25
- pages,
26
- scheduler,
27
- qmdDbExists: existsSync(paths.qmdDbPath),
28
- warnings,
29
- };
30
- }
31
- export function formatPiParaStatus(status) {
32
- const lines = [
33
- "pi-para status",
34
- ` Config: ${status.configPath} (${status.configSource})`,
35
- ` Wiki: ${status.wikiDir}`,
36
- ` Pages: ${status.pages.total} total (${formatCategoryCounts(status.pages.byCategory)})`,
37
- ` Scheduler: ${status.scheduler.queued} queued, ${status.scheduler.running} running, ${status.scheduler.failed} failed`,
38
- ` QMD SDK DB: ${status.qmdDbExists ? status.qmdDbPath : "not initialized"}`,
39
- ];
40
- if (status.warnings.length > 0) {
41
- lines.push("", "Warnings:");
42
- for (const warning of status.warnings)
43
- lines.push(` ⚠ ${warning}`);
44
- }
45
- lines.push("", "Next: use 'pi-para doctor' for diagnostics or '/wiki-scheduler status' inside Pi.");
46
- return lines.join("\n");
47
- }
48
- async function getPageCounts(wikiDir, warnings) {
49
- const byCategory = {
50
- projects: 0,
51
- areas: 0,
52
- resources: 0,
53
- archives: 0,
54
- };
55
- try {
56
- if (!existsSync(wikiDir))
57
- return { total: 0, byCategory };
58
- const pages = await listPages(wikiDir);
59
- for (const page of pages)
60
- byCategory[page.category]++;
61
- return { total: pages.length, byCategory };
62
- }
63
- catch (err) {
64
- warnings.push(`could not count wiki pages: ${err instanceof Error ? err.message : String(err)}`);
65
- return { total: 0, byCategory };
66
- }
67
- }
68
- function getSchedulerCounts(dbPath, warnings) {
69
- const counts = {
70
- queued: 0,
71
- running: 0,
72
- done: 0,
73
- failed: 0,
74
- };
75
- try {
76
- const db = new SchedulerStateDB(dbPath);
77
- try {
78
- for (const status of QUEUE_STATUSES)
79
- counts[status] = db.list(status).length;
80
- }
81
- finally {
82
- db.close();
83
- }
84
- }
85
- catch (err) {
86
- warnings.push(`could not read scheduler DB: ${err instanceof Error ? err.message : String(err)}`);
87
- }
88
- return counts;
89
- }
90
- function formatCategoryCounts(counts) {
91
- return `projects ${counts.projects}, areas ${counts.areas}, resources ${counts.resources}, archives ${counts.archives}`;
92
- }
93
- //# sourceMappingURL=status.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"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"}
package/dist/store.d.ts DELETED
@@ -1,71 +0,0 @@
1
- /**
2
- * qmd store lifecycle — manages the qmd-engine store instance.
3
- *
4
- * Handles store creation/opening, search with scope filtering,
5
- * re-indexing after wiki changes, and embedding lifecycle.
6
- */
7
- import type { QMDStore } from "qmd-engine";
8
- import type { ParaUserConfig } from "./config.js";
9
- import type { PageFrontmatter, PageRef, ParaCategory } from "./wiki.js";
10
- import type { ProjectScope } from "./scope.js";
11
- export type { QMDStore } from "qmd-engine";
12
- export interface OpenStoreOptions {
13
- paraConfig?: ParaUserConfig;
14
- secretsPath?: string;
15
- authStorage?: {
16
- getApiKey(provider: string): Promise<string | undefined>;
17
- };
18
- /**
19
- * Start slow vector embedding in the background after BM25 indexing.
20
- * Pi session startup disables this so single-shot `pi -p` processes can exit
21
- * promptly; callers can still invoke embedIfNeeded() explicitly.
22
- */
23
- backgroundEmbed?: boolean;
24
- }
25
- export interface WikiSearchOptions {
26
- scope?: ProjectScope;
27
- category?: ParaCategory;
28
- limit?: number;
29
- includeArchives?: boolean;
30
- graphBoost?: boolean;
31
- }
32
- export interface WikiSearchResult {
33
- page: PageRef;
34
- score: number;
35
- snippet: string;
36
- frontmatter: PageFrontmatter;
37
- }
38
- /**
39
- * Open and configure a qmd store for the wiki directory.
40
- *
41
- * Creates the store with two collections:
42
- * - wiki: all .md files except raw/
43
- * - raw: .md files under raw/, not included in default queries
44
- *
45
- * Adds PARA category contexts and runs update() for BM25. When requested,
46
- * also schedules embed() in the background.
47
- */
48
- export declare function openStore(wikiDir: string, opts?: OpenStoreOptions): Promise<QMDStore>;
49
- /**
50
- * Close the store. Awaits any pending embed operation (with timeout) first.
51
- */
52
- export declare function closeStore(store: QMDStore): Promise<void>;
53
- /**
54
- * Search the wiki with scope and category filtering.
55
- *
56
- * Uses vector search when an embedding index is available, merged with BM25
57
- * lexical search for exact keyword matches. Each result's frontmatter is parsed
58
- * to apply scope/category/archive filters.
59
- */
60
- export declare function searchWiki(store: QMDStore, query: string, opts: WikiSearchOptions): Promise<WikiSearchResult[]>;
61
- /**
62
- * Re-index the store (fast filesystem scan). Makes new/changed
63
- * content BM25-searchable immediately. Call after wiki writes.
64
- */
65
- export declare function reindex(store: QMDStore): Promise<void>;
66
- /**
67
- * Generate vector embeddings for new/changed pages.
68
- * Slow — call only at startup (via openStore) or shutdown.
69
- */
70
- export declare function embedIfNeeded(store: QMDStore): Promise<void>;
71
- //# sourceMappingURL=store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE;QAAE,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAA;KAAE,CAAC;IAC3E;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,eAAe,CAAC;CAC9B;AA8DD;;;;;;;;;GASG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkE/F;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/D;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAqE7B;AAkCD;;;GAGG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5D;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAElE"}