pi-para 0.6.0 → 0.6.2

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 (213) hide show
  1. package/ARCHITECTURE.md +0 -9
  2. package/CHANGELOG.md +22 -0
  3. package/CONFIGURATION.md +5 -23
  4. package/README.md +7 -31
  5. package/SETUP.md +5 -3
  6. package/STRUCTURE.md +0 -9
  7. package/dist/atomic-write.d.ts +2 -0
  8. package/dist/atomic-write.d.ts.map +1 -0
  9. package/dist/atomic-write.js +18 -0
  10. package/dist/atomic-write.js.map +1 -0
  11. package/dist/capture.d.ts +34 -0
  12. package/dist/capture.d.ts.map +1 -0
  13. package/dist/capture.js +461 -0
  14. package/dist/capture.js.map +1 -0
  15. package/dist/cli-legacy.d.ts +4 -0
  16. package/dist/cli-legacy.d.ts.map +1 -0
  17. package/dist/cli-legacy.js +41 -0
  18. package/dist/cli-legacy.js.map +1 -0
  19. package/dist/cli.d.ts +8 -0
  20. package/dist/cli.d.ts.map +1 -0
  21. package/dist/cli.js +427 -0
  22. package/dist/cli.js.map +1 -0
  23. package/dist/commands.d.ts +15 -0
  24. package/dist/commands.d.ts.map +1 -0
  25. package/dist/commands.js +791 -0
  26. package/dist/commands.js.map +1 -0
  27. package/dist/config.d.ts +94 -0
  28. package/dist/config.d.ts.map +1 -0
  29. package/dist/config.js +228 -0
  30. package/dist/config.js.map +1 -0
  31. package/dist/context.d.ts +63 -0
  32. package/dist/context.d.ts.map +1 -0
  33. package/dist/context.js +311 -0
  34. package/dist/context.js.map +1 -0
  35. package/dist/credentials.d.ts +27 -0
  36. package/dist/credentials.d.ts.map +1 -0
  37. package/dist/credentials.js +85 -0
  38. package/dist/credentials.js.map +1 -0
  39. package/dist/daemon.d.ts +49 -0
  40. package/dist/daemon.d.ts.map +1 -0
  41. package/dist/daemon.js +226 -0
  42. package/dist/daemon.js.map +1 -0
  43. package/dist/doctor.d.ts +20 -0
  44. package/dist/doctor.d.ts.map +1 -0
  45. package/dist/doctor.js +197 -0
  46. package/dist/doctor.js.map +1 -0
  47. package/dist/frontmatter.d.ts +59 -0
  48. package/dist/frontmatter.d.ts.map +1 -0
  49. package/dist/frontmatter.js +170 -0
  50. package/dist/frontmatter.js.map +1 -0
  51. package/dist/index.d.ts +21 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +357 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/ingest.d.ts +88 -0
  56. package/dist/ingest.d.ts.map +1 -0
  57. package/dist/ingest.js +105 -0
  58. package/dist/ingest.js.map +1 -0
  59. package/dist/link-discovery.d.ts +40 -0
  60. package/dist/link-discovery.d.ts.map +1 -0
  61. package/dist/link-discovery.js +122 -0
  62. package/dist/link-discovery.js.map +1 -0
  63. package/dist/link-utils.d.ts +30 -0
  64. package/dist/link-utils.d.ts.map +1 -0
  65. package/dist/link-utils.js +145 -0
  66. package/dist/link-utils.js.map +1 -0
  67. package/dist/lint.d.ts +39 -0
  68. package/dist/lint.d.ts.map +1 -0
  69. package/dist/lint.js +827 -0
  70. package/dist/lint.js.map +1 -0
  71. package/dist/maintainer.d.ts +24 -0
  72. package/dist/maintainer.d.ts.map +1 -0
  73. package/dist/maintainer.js +358 -0
  74. package/dist/maintainer.js.map +1 -0
  75. package/dist/model-resolver.d.ts +30 -0
  76. package/dist/model-resolver.d.ts.map +1 -0
  77. package/dist/model-resolver.js +71 -0
  78. package/dist/model-resolver.js.map +1 -0
  79. package/dist/paths.d.ts +20 -0
  80. package/dist/paths.d.ts.map +1 -0
  81. package/dist/paths.js +33 -0
  82. package/dist/paths.js.map +1 -0
  83. package/dist/processor.d.ts +14 -0
  84. package/dist/processor.d.ts.map +1 -0
  85. package/dist/processor.js +361 -0
  86. package/dist/processor.js.map +1 -0
  87. package/dist/qmd-providers.d.ts +12 -0
  88. package/dist/qmd-providers.d.ts.map +1 -0
  89. package/dist/qmd-providers.js +45 -0
  90. package/dist/qmd-providers.js.map +1 -0
  91. package/dist/query.d.ts +69 -0
  92. package/dist/query.d.ts.map +1 -0
  93. package/dist/query.js +120 -0
  94. package/dist/query.js.map +1 -0
  95. package/dist/raw.d.ts +57 -0
  96. package/dist/raw.d.ts.map +1 -0
  97. package/dist/raw.js +219 -0
  98. package/dist/raw.js.map +1 -0
  99. package/dist/redact.d.ts +21 -0
  100. package/dist/redact.d.ts.map +1 -0
  101. package/dist/redact.js +143 -0
  102. package/dist/redact.js.map +1 -0
  103. package/dist/repair.d.ts +11 -0
  104. package/dist/repair.d.ts.map +1 -0
  105. package/dist/repair.js +41 -0
  106. package/dist/repair.js.map +1 -0
  107. package/dist/scheduler/controls.d.ts +35 -0
  108. package/dist/scheduler/controls.d.ts.map +1 -0
  109. package/dist/scheduler/controls.js +98 -0
  110. package/dist/scheduler/controls.js.map +1 -0
  111. package/dist/scheduler/index.d.ts +70 -0
  112. package/dist/scheduler/index.d.ts.map +1 -0
  113. package/dist/scheduler/index.js +245 -0
  114. package/dist/scheduler/index.js.map +1 -0
  115. package/dist/scheduler/leases.d.ts +22 -0
  116. package/dist/scheduler/leases.d.ts.map +1 -0
  117. package/dist/scheduler/leases.js +74 -0
  118. package/dist/scheduler/leases.js.map +1 -0
  119. package/dist/scheduler/session-capture.d.ts +33 -0
  120. package/dist/scheduler/session-capture.d.ts.map +1 -0
  121. package/dist/scheduler/session-capture.js +108 -0
  122. package/dist/scheduler/session-capture.js.map +1 -0
  123. package/dist/scheduler/state.d.ts +56 -0
  124. package/dist/scheduler/state.d.ts.map +1 -0
  125. package/dist/scheduler/state.js +210 -0
  126. package/dist/scheduler/state.js.map +1 -0
  127. package/dist/scope.d.ts +54 -0
  128. package/dist/scope.d.ts.map +1 -0
  129. package/dist/scope.js +161 -0
  130. package/dist/scope.js.map +1 -0
  131. package/dist/scripts/bulk-link-fix.d.ts +9 -0
  132. package/dist/scripts/bulk-link-fix.d.ts.map +1 -0
  133. package/dist/scripts/bulk-link-fix.js +106 -0
  134. package/dist/scripts/bulk-link-fix.js.map +1 -0
  135. package/dist/session-tools.d.ts +33 -0
  136. package/dist/session-tools.d.ts.map +1 -0
  137. package/dist/session-tools.js +211 -0
  138. package/dist/session-tools.js.map +1 -0
  139. package/dist/settings.d.ts +37 -0
  140. package/dist/settings.d.ts.map +1 -0
  141. package/dist/settings.js +176 -0
  142. package/dist/settings.js.map +1 -0
  143. package/dist/setup.d.ts +29 -0
  144. package/dist/setup.d.ts.map +1 -0
  145. package/dist/setup.js +90 -0
  146. package/dist/setup.js.map +1 -0
  147. package/dist/state.d.ts +54 -0
  148. package/dist/state.d.ts.map +1 -0
  149. package/dist/state.js +176 -0
  150. package/dist/state.js.map +1 -0
  151. package/dist/status.d.ts +22 -0
  152. package/dist/status.d.ts.map +1 -0
  153. package/dist/status.js +93 -0
  154. package/dist/status.js.map +1 -0
  155. package/dist/store.d.ts +71 -0
  156. package/dist/store.d.ts.map +1 -0
  157. package/dist/store.js +282 -0
  158. package/dist/store.js.map +1 -0
  159. package/dist/summarize.d.ts +60 -0
  160. package/dist/summarize.d.ts.map +1 -0
  161. package/dist/summarize.js +266 -0
  162. package/dist/summarize.js.map +1 -0
  163. package/dist/tag-registry.d.ts +56 -0
  164. package/dist/tag-registry.d.ts.map +1 -0
  165. package/dist/tag-registry.js +146 -0
  166. package/dist/tag-registry.js.map +1 -0
  167. package/dist/templates/prompts.d.ts +51 -0
  168. package/dist/templates/prompts.d.ts.map +1 -0
  169. package/dist/templates/prompts.js +203 -0
  170. package/dist/templates/prompts.js.map +1 -0
  171. package/dist/tools.d.ts +26 -0
  172. package/dist/tools.d.ts.map +1 -0
  173. package/dist/tools.js +1198 -0
  174. package/dist/tools.js.map +1 -0
  175. package/dist/watcher.d.ts +25 -0
  176. package/dist/watcher.d.ts.map +1 -0
  177. package/dist/watcher.js +84 -0
  178. package/dist/watcher.js.map +1 -0
  179. package/dist/webui/client/dist/index.html +1885 -0
  180. package/dist/webui/server.d.ts +31 -0
  181. package/dist/webui/server.d.ts.map +1 -0
  182. package/dist/webui/server.js +566 -0
  183. package/dist/webui/server.js.map +1 -0
  184. package/dist/wiki-tool-guidance.d.ts +6 -0
  185. package/dist/wiki-tool-guidance.d.ts.map +1 -0
  186. package/dist/wiki-tool-guidance.js +70 -0
  187. package/dist/wiki-tool-guidance.js.map +1 -0
  188. package/dist/wiki.d.ts +108 -0
  189. package/dist/wiki.d.ts.map +1 -0
  190. package/dist/wiki.js +497 -0
  191. package/dist/wiki.js.map +1 -0
  192. package/package.json +2 -1
  193. package/scripts/build-assets.mjs +1 -13
  194. package/skills/setup/SKILL.md +1 -1
  195. package/src/cli.ts +0 -70
  196. package/src/commands.ts +78 -3
  197. package/src/config.ts +0 -25
  198. package/src/doctor.ts +21 -1
  199. package/src/index.ts +16 -38
  200. package/src/scheduler/index.ts +64 -0
  201. package/src/settings.ts +88 -0
  202. package/src/setup.ts +1 -1
  203. package/src/templates/prompts.ts +0 -56
  204. package/scripts/gepa/dataset.py +0 -192
  205. package/scripts/gepa/lm_providers.py +0 -472
  206. package/scripts/gepa/metric.py +0 -279
  207. package/scripts/gepa/optimize.py +0 -367
  208. package/scripts/gepa/program.py +0 -99
  209. package/scripts/gepa/pyproject.toml +0 -19
  210. package/scripts/gepa/run-all.sh +0 -53
  211. package/scripts/gepa/wiki_reader.py +0 -113
  212. package/src/gepa/index.ts +0 -287
  213. package/src/gepa/optimized/capture-prompt.txt +0 -65
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../src/lint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Wiki maintenance agent - uses LLM to intelligently maintain the wiki.
3
+ *
4
+ * Replaces brittle code-based maintenance (link discovery, dedup detection,
5
+ * tag canonicalization, category review) with an LLM agent that understands
6
+ * content and can make smarter decisions.
7
+ *
8
+ * Deterministic operations (secret redaction, schema validation, index rebuild)
9
+ * stay in code. This agent handles everything that needs intelligence.
10
+ */
11
+ import type { Model } from "@earendil-works/pi-ai";
12
+ import type { QMDStore } from "qmd-engine";
13
+ export interface MaintenanceResult {
14
+ pagesUpdated: number;
15
+ pagesMerged: number;
16
+ linksAdded: number;
17
+ issuesFixed: number;
18
+ summary: string;
19
+ }
20
+ /**
21
+ * Run the maintenance agent. Called periodically by the daemon.
22
+ */
23
+ export declare function runMaintenance(wikiDir: string, store: QMDStore, model: Model<any>, getApiKey: (provider: string) => Promise<string | undefined>): Promise<MaintenanceResult>;
24
+ //# sourceMappingURL=maintainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintainer.d.ts","sourceRoot":"","sources":["../src/maintainer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAsB3C,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAqRD;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAC3D,OAAO,CAAC,iBAAiB,CAAC,CA4E5B"}
@@ -0,0 +1,358 @@
1
+ /**
2
+ * Wiki maintenance agent - uses LLM to intelligently maintain the wiki.
3
+ *
4
+ * Replaces brittle code-based maintenance (link discovery, dedup detection,
5
+ * tag canonicalization, category review) with an LLM agent that understands
6
+ * content and can make smarter decisions.
7
+ *
8
+ * Deterministic operations (secret redaction, schema validation, index rebuild)
9
+ * stay in code. This agent handles everything that needs intelligence.
10
+ */
11
+ import { Agent } from "@earendil-works/pi-agent-core";
12
+ import { Type } from "typebox";
13
+ import { StringEnum } from "@earendil-works/pi-ai";
14
+ import { readPage, writePage, listPages, writeIndex, gitCommit, PARA_CATEGORIES, } from "./wiki.js";
15
+ import { validateFrontmatter } from "./frontmatter.js";
16
+ import { searchWiki, reindex } from "./store.js";
17
+ import { extractWikilinks, syncFrontmatterLinks } from "./link-utils.js";
18
+ import { normalizeTags, normalizeScopes } from "./tag-registry.js";
19
+ import { redactSecrets } from "./redact.js";
20
+ import { lintWiki } from "./lint.js";
21
+ // -- Maintenance prompt ------------------------------------------------------
22
+ const MAINTENANCE_SYSTEM_PROMPT = `You are a wiki maintenance agent. Your job is to keep a PARA knowledge base healthy, well-linked, and free of duplicates.
23
+
24
+ You have tools to inspect and modify the wiki:
25
+ - wiki_list: List all pages with their scope, tags, and link counts
26
+ - wiki_read: Read a page's full content
27
+ - wiki_query: Search for pages by keyword
28
+ - wiki_write: Update a page (merge content, add links, fix category)
29
+ - wiki_merge: Merge two pages into one (keeps the target, deletes the source)
30
+ - wiki_lint: Run automated checks and get a report of issues
31
+
32
+ Your maintenance tasks (in priority order):
33
+
34
+ 1. DUPLICATE DETECTION & MERGING
35
+ - Find pages covering the same topic with different slugs
36
+ - Merge them: combine content into the older/more complete page, delete the duplicate
37
+ - Examples: "pi-para daemon architecture" and "pi-para daemon" are duplicates
38
+
39
+ 2. WIKILINK DISCOVERY
40
+ - Find pages that discuss related topics but aren't linked
41
+ - Add [[wikilinks]] in body text and ## Connections sections
42
+ - Every page should link to at least 2 related pages
43
+
44
+ 3. CATEGORY REVIEW
45
+ - resources/ should have reference docs, architecture, how-tos, patterns
46
+ - areas/ should have ongoing responsibilities only
47
+ - projects/ should ONLY have actual goals with end dates (almost never used)
48
+ - Move miscategorized pages
49
+
50
+ 4. TAG CLEANUP
51
+ - Remove redundant tags (tags that duplicate scope values)
52
+ - Canonicalize similar tags (e.g. "capture" and "session-capture" → keep "session-capture")
53
+ - Ensure tags are kebab-case
54
+
55
+ 5. CONTENT QUALITY
56
+ - Pages should have: Topic, Key Facts, Connections sections at minimum
57
+ - Flag pages with very thin content for expansion
58
+ - Flag pages with no ## Connections section
59
+
60
+ 6. STALENESS REVIEW
61
+ - Identify pages not updated in >30 days that make specific claims about code, file paths, configs, ports, or API endpoints
62
+ - These are high-risk for being outdated - add a note in Open Questions: "⚠️ This page has not been updated since [date]. Claims about [specific thing] should be verified."
63
+ - If you can determine from other pages or context that a claim is now wrong, fix it directly
64
+ - Pages about architecture decisions or historical events are less likely to go stale than pages about configs or deployment
65
+
66
+ 7. PROJECT LIFECYCLE REVIEW
67
+ - Review projects/ pages — only archive a project if ALL of these are true:
68
+ a) The End Condition section explicitly says the goal is met or done
69
+ b) There are NO unchecked items ([ ]) remaining anywhere in the page
70
+ c) The page has no Open Questions or pending tasks
71
+ - Do NOT archive just because status checkboxes are ticked — there may be remaining work not captured in checkboxes
72
+ - When archiving: use wiki_write to create the page in archives/ with '(Completed)' in the title, then wiki_merge to remove the projects/ copy
73
+
74
+ 8. AREAS HEALTH METRICS
75
+ - Review areas/ pages - update current health metrics based on recent lint results and maintenance findings
76
+ - Areas represent ongoing responsibilities; keep them current with the latest status
77
+
78
+ Rules:
79
+ - Work systematically: list all pages first, then process in batches
80
+ - For merges: preserve ALL information from both pages, combine into the better-structured one
81
+ - For links: only add links between genuinely related pages, not random connections
82
+ - Be conservative: when unsure, leave it alone
83
+ - Never include secrets/API keys in page content
84
+ - Scope must be a kebab-case project name, not a topic description
85
+
86
+ When done, summarize what you changed.`;
87
+ // -- Tools -------------------------------------------------------------------
88
+ function createMaintenanceTools(wikiDir, store) {
89
+ const WikiListParams = Type.Object({});
90
+ const WikiReadParams = Type.Object({ path: Type.String({ description: "category/slug" }) });
91
+ const WikiQueryParams = Type.Object({ query: Type.String() });
92
+ const WikiWriteParams = Type.Object({
93
+ category: StringEnum(["projects", "areas", "resources", "archives"]),
94
+ slug: Type.String(),
95
+ title: Type.String(),
96
+ scope: Type.Array(Type.String()),
97
+ tags: Type.Array(Type.String()),
98
+ body: Type.String(),
99
+ });
100
+ const WikiMergeParams = Type.Object({
101
+ keepCategory: StringEnum(["projects", "areas", "resources", "archives"]),
102
+ keepSlug: Type.String({ description: "Slug of the page to keep (target)" }),
103
+ deleteCategory: StringEnum(["projects", "areas", "resources", "archives"]),
104
+ deleteSlug: Type.String({ description: "Slug of the page to delete (source)" }),
105
+ mergedBody: Type.String({ description: "Combined body text for the kept page" }),
106
+ });
107
+ const WikiLintParams = Type.Object({});
108
+ const wikiList = {
109
+ name: "wiki_list",
110
+ label: "Wiki List",
111
+ description: "List all wiki pages with scope, tags, and outgoing link count.",
112
+ parameters: WikiListParams,
113
+ execute: async () => {
114
+ const refs = await listPages(wikiDir);
115
+ const lines = [];
116
+ for (const ref of refs) {
117
+ const page = await readPage(wikiDir, ref.category, ref.slug);
118
+ if (!page)
119
+ continue;
120
+ const linkCount = extractWikilinks(page.body).length;
121
+ lines.push(`${ref.category}/${ref.slug} | "${page.frontmatter.title}" | scope:[${page.frontmatter.scope.join(",")}] | tags:[${page.frontmatter.tags.join(",")}] | links:${linkCount}`);
122
+ }
123
+ return {
124
+ content: [{ type: "text", text: `${lines.length} pages:\n${lines.join("\n")}` }],
125
+ details: { count: lines.length },
126
+ };
127
+ },
128
+ };
129
+ const wikiRead = {
130
+ name: "wiki_read",
131
+ label: "Wiki Read",
132
+ description: "Read a wiki page by path (category/slug).",
133
+ parameters: WikiReadParams,
134
+ execute: async (_id, params) => {
135
+ const parts = params.path.split("/");
136
+ if (parts.length !== 2) {
137
+ return { content: [{ type: "text", text: `Invalid path: ${params.path}` }], details: {} };
138
+ }
139
+ const page = await readPage(wikiDir, parts[0], parts[1]);
140
+ if (!page) {
141
+ return { content: [{ type: "text", text: `Not found: ${params.path}` }], details: {} };
142
+ }
143
+ return {
144
+ content: [{ type: "text", text: `# ${page.frontmatter.title}\nCategory: ${page.category}\nScope: ${page.frontmatter.scope.join(", ")}\nTags: ${page.frontmatter.tags.join(", ")}\nLinks: ${page.frontmatter.links.join(", ") || "none"}\n\n${page.body}` }],
145
+ details: { title: page.frontmatter.title },
146
+ };
147
+ },
148
+ };
149
+ const wikiQuery = {
150
+ name: "wiki_query",
151
+ label: "Wiki Query",
152
+ description: "Search wiki pages by keyword. Returns top matches with scores.",
153
+ parameters: WikiQueryParams,
154
+ execute: async (_id, params) => {
155
+ const results = await searchWiki(store, params.query, { limit: 8 });
156
+ if (results.length === 0) {
157
+ return { content: [{ type: "text", text: "No results." }], details: { count: 0 } };
158
+ }
159
+ const text = results
160
+ .map(r => `${r.page.path} | "${r.frontmatter.title}" | score:${r.score.toFixed(3)}`)
161
+ .join("\n");
162
+ return {
163
+ content: [{ type: "text", text: `${results.length} results:\n${text}` }],
164
+ details: { count: results.length },
165
+ };
166
+ },
167
+ };
168
+ const wikiWrite = {
169
+ name: "wiki_write",
170
+ label: "Wiki Write",
171
+ description: "Create or update a wiki page. Always redacts secrets and normalizes tags/scope.",
172
+ parameters: WikiWriteParams,
173
+ execute: async (_id, params) => {
174
+ const now = new Date().toISOString();
175
+ const slug = params.slug.toLowerCase().replace(/[^a-z0-9-]/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
176
+ const existing = await readPage(wikiDir, params.category, slug);
177
+ const body = redactSecrets(params.body).text;
178
+ const scope = normalizeScopes(params.scope);
179
+ const tags = normalizeTags(params.tags, scope);
180
+ const links = syncFrontmatterLinks(body);
181
+ if (existing) {
182
+ const updated = {
183
+ ...existing,
184
+ body,
185
+ frontmatter: { ...existing.frontmatter, title: params.title, scope, tags, updated: now, links },
186
+ };
187
+ await writePage(wikiDir, updated);
188
+ }
189
+ else {
190
+ const fm = validateFrontmatter({ title: params.title, para: params.category, scope, tags, sources: [], created: now, updated: now, links });
191
+ await writePage(wikiDir, { category: params.category, slug, frontmatter: fm, body });
192
+ }
193
+ await reindex(store);
194
+ return {
195
+ content: [{ type: "text", text: `Wrote ${params.category}/${slug}` }],
196
+ details: { path: `${params.category}/${slug}` },
197
+ };
198
+ },
199
+ };
200
+ const wikiMerge = {
201
+ name: "wiki_merge",
202
+ label: "Wiki Merge",
203
+ description: "Merge two pages: update the target page with combined content, delete the source page.",
204
+ parameters: WikiMergeParams,
205
+ execute: async (_id, params) => {
206
+ const keepPage = await readPage(wikiDir, params.keepCategory, params.keepSlug);
207
+ const deletePage = await readPage(wikiDir, params.deleteCategory, params.deleteSlug);
208
+ if (!keepPage)
209
+ return { content: [{ type: "text", text: `Target not found: ${params.keepCategory}/${params.keepSlug}` }], details: {} };
210
+ if (!deletePage)
211
+ return { content: [{ type: "text", text: `Source not found: ${params.deleteCategory}/${params.deleteSlug}` }], details: {} };
212
+ const now = new Date().toISOString();
213
+ const body = redactSecrets(params.mergedBody).text;
214
+ const mergedScope = normalizeScopes([...new Set([...keepPage.frontmatter.scope, ...deletePage.frontmatter.scope])]);
215
+ const mergedTags = normalizeTags([...new Set([...keepPage.frontmatter.tags, ...deletePage.frontmatter.tags])], mergedScope);
216
+ // Update target
217
+ const updated = {
218
+ ...keepPage,
219
+ body,
220
+ frontmatter: {
221
+ ...keepPage.frontmatter,
222
+ scope: mergedScope,
223
+ tags: mergedTags,
224
+ updated: now,
225
+ links: syncFrontmatterLinks(body),
226
+ },
227
+ };
228
+ await writePage(wikiDir, updated);
229
+ // Delete source
230
+ const { unlink } = await import("node:fs/promises");
231
+ const { join } = await import("node:path");
232
+ await unlink(join(wikiDir, params.deleteCategory, params.deleteSlug + ".md"));
233
+ await reindex(store);
234
+ return {
235
+ content: [{ type: "text", text: `Merged ${params.deleteCategory}/${params.deleteSlug} into ${params.keepCategory}/${params.keepSlug}, deleted source.` }],
236
+ details: { kept: `${params.keepCategory}/${params.keepSlug}`, deleted: `${params.deleteCategory}/${params.deleteSlug}` },
237
+ };
238
+ },
239
+ };
240
+ const wikiLint = {
241
+ name: "wiki_lint",
242
+ label: "Wiki Lint",
243
+ description: "Run lint checks and return a report. Does NOT auto-fix - you decide what to fix.",
244
+ parameters: WikiLintParams,
245
+ execute: async () => {
246
+ const report = await lintWiki(wikiDir, { autoFix: false });
247
+ const lines = report.issues.map(i => `[${i.severity}] ${i.category}: ${i.page ?? ""} - ${i.message}`);
248
+ return {
249
+ content: [{ type: "text", text: `${report.issues.length} issues:\n${lines.join("\n")}\n\nStats: ${JSON.stringify(report.stats.byCategory)}` }],
250
+ details: { issueCount: report.issues.length },
251
+ };
252
+ },
253
+ };
254
+ return [wikiList, wikiRead, wikiQuery, wikiWrite, wikiMerge, wikiLint];
255
+ }
256
+ // -- Rebuild index helper (shared with processor) ----------------------------
257
+ async function rebuildIndex(wikiDir) {
258
+ const allPages = await listPages(wikiDir);
259
+ const sections = {
260
+ projects: [], areas: [], resources: [], archives: [],
261
+ };
262
+ for (const ref of allPages) {
263
+ const page = await readPage(wikiDir, ref.category, ref.slug);
264
+ const title = page?.frontmatter.title ?? ref.title;
265
+ const summary = page?.body.split("\n").find(l => l.trim() && !l.startsWith("#") && !l.startsWith("---"))?.trim() ?? "";
266
+ const desc = summary.length > 120 ? summary.slice(0, 117) + "..." : summary;
267
+ sections[ref.category].push(`- [[${ref.slug}]] - ${title}${desc ? ": " + desc : ""}`);
268
+ }
269
+ const indexLines = [
270
+ "# Wiki Index", "",
271
+ "## Projects", "", sections.projects.length > 0 ? sections.projects.join("\n") : "_No active projects._", "",
272
+ "## Areas", "", sections.areas.length > 0 ? sections.areas.join("\n") : "_No areas._", "",
273
+ "## Resources", "", sections.resources.length > 0 ? sections.resources.join("\n") : "_No resources._", "",
274
+ "## Archives", "", sections.archives.length > 0 ? sections.archives.join("\n") : "_No archived items._",
275
+ ];
276
+ await writeIndex(wikiDir, indexLines.join("\n"));
277
+ }
278
+ // -- Main entry point --------------------------------------------------------
279
+ /**
280
+ * Run the maintenance agent. Called periodically by the daemon.
281
+ */
282
+ export async function runMaintenance(wikiDir, store, model, getApiKey) {
283
+ const tools = createMaintenanceTools(wikiDir, store);
284
+ const agent = new Agent({
285
+ initialState: {
286
+ systemPrompt: MAINTENANCE_SYSTEM_PROMPT,
287
+ model,
288
+ tools,
289
+ messages: [],
290
+ },
291
+ getApiKey,
292
+ });
293
+ const prompt = `Run a maintenance pass on the wiki. Start by listing all pages, then:
294
+ 1. Look for duplicate pages (same topic, different slugs) and merge them
295
+ 2. Find pages with 0 outgoing links and add relevant [[wikilinks]]
296
+ 3. Check for any category misuse or tag issues
297
+ 4. Review pages not updated in >30 days for staleness - add Open Questions warnings for pages making specific claims about code/configs/ports that may have changed
298
+ Be thorough but conservative. Summarize what you changed at the end.`;
299
+ try {
300
+ await agent.prompt(prompt);
301
+ }
302
+ catch (err) {
303
+ return {
304
+ pagesUpdated: 0,
305
+ pagesMerged: 0,
306
+ linksAdded: 0,
307
+ issuesFixed: 0,
308
+ summary: `Agent error: ${err instanceof Error ? err.message : String(err)}`,
309
+ };
310
+ }
311
+ // Rebuild index after all changes
312
+ await rebuildIndex(wikiDir);
313
+ // Extract summary from agent's last message
314
+ const messages = agent.state.messages;
315
+ const lastAssistant = [...messages].reverse().find(m => m.role === "assistant");
316
+ let summary = "Maintenance completed.";
317
+ if (lastAssistant && "content" in lastAssistant) {
318
+ const content = lastAssistant.content;
319
+ if (typeof content === "string")
320
+ summary = content;
321
+ else if (Array.isArray(content)) {
322
+ const textBlock = content.find((b) => b.type === "text" && typeof b.text === "string");
323
+ if (textBlock)
324
+ summary = textBlock.text;
325
+ }
326
+ }
327
+ // Count changes from tool results
328
+ let pagesUpdated = 0;
329
+ let pagesMerged = 0;
330
+ for (const msg of messages) {
331
+ if (msg.role !== "toolResult")
332
+ continue;
333
+ const c = msg.content;
334
+ if (!Array.isArray(c))
335
+ continue;
336
+ for (const block of c) {
337
+ const b = block;
338
+ if (b.type === "text" && typeof b.text === "string") {
339
+ if (b.text.startsWith("Wrote "))
340
+ pagesUpdated++;
341
+ if (b.text.startsWith("Merged "))
342
+ pagesMerged++;
343
+ }
344
+ }
345
+ }
346
+ // Git commit all maintenance changes
347
+ if (pagesUpdated > 0 || pagesMerged > 0) {
348
+ await gitCommit(wikiDir, `maintenance: ${pagesUpdated} updated, ${pagesMerged} merged`);
349
+ }
350
+ return {
351
+ pagesUpdated,
352
+ pagesMerged,
353
+ linksAdded: 0, // Agent handles this via wiki_write
354
+ issuesFixed: pagesUpdated + pagesMerged,
355
+ summary,
356
+ };
357
+ }
358
+ //# sourceMappingURL=maintainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintainer.js","sourceRoot":"","sources":["../src/maintainer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { Model } from "@earendil-works/pi-ai";
2
+ import type { ProviderCredentialRef, ParaUserConfig } from "./config.js";
3
+ export interface ModelRegistryLike {
4
+ getAvailable(): Model<any>[];
5
+ find(provider: string, modelId: string): Model<any> | undefined;
6
+ getApiKeyForProvider(provider: string): Promise<string | undefined>;
7
+ }
8
+ export interface AuthStorageLike {
9
+ getApiKey(provider: string): Promise<string | undefined>;
10
+ }
11
+ export type ModelSelection = ProviderCredentialRef | "auto";
12
+ export declare function parseProviderModelSpec(spec: string): {
13
+ provider: string;
14
+ modelId: string;
15
+ } | null;
16
+ export declare function resolveSelectedModel(selection: ModelSelection, registry: ModelRegistryLike, opts?: {
17
+ legacyModelSpec?: string | null;
18
+ preferredModelSpec?: string;
19
+ }): Model<any> | null;
20
+ export declare function pickBestAvailableModel(models: Model<any>[]): Model<any> | null;
21
+ export declare function createModelApiKeyResolver(selection: ModelSelection, registry: ModelRegistryLike, opts?: {
22
+ authStorage?: AuthStorageLike;
23
+ secretsPath?: string;
24
+ }): (provider: string) => Promise<string | undefined>;
25
+ export declare function getCaptureSelection(config: ParaUserConfig): ModelSelection;
26
+ export declare function createPiModelRegistry(): Promise<{
27
+ authStorage: AuthStorageLike;
28
+ modelRegistry: ModelRegistryLike;
29
+ } | null>;
30
+ //# sourceMappingURL=model-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-resolver.d.ts","sourceRoot":"","sources":["../src/model-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGzE,MAAM,WAAW,iBAAiB;IAChC,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAC7B,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAChE,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1D;AAED,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,MAAM,CAAC;AAE5D,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIjG;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,GAAE;IAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1E,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAmBnB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAK9E;AAED,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,eAAe,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GACjE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkBnD;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAE1E;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IAAE,WAAW,EAAE,eAAe,CAAC;IAAC,aAAa,EAAE,iBAAiB,CAAA;CAAE,GAAG,IAAI,CAAC,CAahI"}
@@ -0,0 +1,71 @@
1
+ import { resolveCredentialRef } from "./credentials.js";
2
+ export function parseProviderModelSpec(spec) {
3
+ const idx = spec.indexOf("/");
4
+ if (idx <= 0 || idx === spec.length - 1)
5
+ return null;
6
+ return { provider: spec.slice(0, idx), modelId: spec.slice(idx + 1) };
7
+ }
8
+ export function resolveSelectedModel(selection, registry, opts = {}) {
9
+ if (selection !== "auto") {
10
+ if (selection.model)
11
+ return registry.find(selection.provider, selection.model) ?? null;
12
+ return registry.getAvailable().find((model) => model.provider === selection.provider) ?? null;
13
+ }
14
+ const legacy = opts.legacyModelSpec ? parseProviderModelSpec(opts.legacyModelSpec) : null;
15
+ if (legacy) {
16
+ const model = registry.find(legacy.provider, legacy.modelId);
17
+ if (model)
18
+ return model;
19
+ }
20
+ const preferred = opts.preferredModelSpec ? parseProviderModelSpec(opts.preferredModelSpec) : null;
21
+ if (preferred) {
22
+ const model = registry.find(preferred.provider, preferred.modelId);
23
+ if (model)
24
+ return model;
25
+ }
26
+ return pickBestAvailableModel(registry.getAvailable());
27
+ }
28
+ export function pickBestAvailableModel(models) {
29
+ if (models.length === 0)
30
+ return null;
31
+ const sonnet = models.find((model) => model.provider === "anthropic" && /sonnet/i.test(model.id));
32
+ if (sonnet)
33
+ return sonnet;
34
+ return [...models].sort((a, b) => (b.contextWindow ?? 0) - (a.contextWindow ?? 0))[0] ?? null;
35
+ }
36
+ export function createModelApiKeyResolver(selection, registry, opts = {}) {
37
+ return async (provider) => {
38
+ if (selection === "auto")
39
+ return registry.getApiKeyForProvider(provider);
40
+ if (selection.credentialRef.startsWith("pi-auth:")) {
41
+ const configuredProvider = selection.credentialRef.slice("pi-auth:".length);
42
+ if (configuredProvider !== provider && selection.provider !== provider)
43
+ return undefined;
44
+ return (await opts.authStorage?.getApiKey(provider)) ?? await registry.getApiKeyForProvider(provider);
45
+ }
46
+ if (selection.credentialRef.startsWith("secret:")) {
47
+ if (selection.provider !== provider)
48
+ return undefined;
49
+ const resolved = await resolveCredentialRef(selection.credentialRef, { secretsPath: opts.secretsPath });
50
+ return resolved.ok ? resolved.value : undefined;
51
+ }
52
+ return undefined;
53
+ };
54
+ }
55
+ export function getCaptureSelection(config) {
56
+ return config.models.capture;
57
+ }
58
+ export async function createPiModelRegistry() {
59
+ try {
60
+ const mod = await import("@earendil-works/pi-coding-agent");
61
+ const typed = mod;
62
+ if (!typed.AuthStorage || !typed.ModelRegistry)
63
+ return null;
64
+ const authStorage = typed.AuthStorage.create();
65
+ return { authStorage, modelRegistry: typed.ModelRegistry.create(authStorage) };
66
+ }
67
+ catch {
68
+ return null;
69
+ }
70
+ }
71
+ //# sourceMappingURL=model-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-resolver.js","sourceRoot":"","sources":["../src/model-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface ParaPaths {
2
+ homeDir: string;
3
+ agentDir: string;
4
+ paraDir: string;
5
+ wikiDir: string;
6
+ userConfigPath: string;
7
+ secretsPath: string;
8
+ schedulerDbPath: string;
9
+ qmdDbPath: string;
10
+ legacyConfigPath: string;
11
+ legacyQmdConfigPath: string;
12
+ piSettingsPath: string;
13
+ }
14
+ export declare function expandHome(path: string, homeDir?: string): string;
15
+ export declare function resolvePath(path: string, baseDir?: string, homeDir?: string): string;
16
+ export declare function getParaPaths(opts?: {
17
+ homeDir?: string;
18
+ wikiDir?: string;
19
+ }): ParaPaths;
20
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAY,GAAG,MAAM,CAIpE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAgB,EAAE,OAAO,SAAY,GAAG,MAAM,CAG9F;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,SAAS,CAmBzF"}