pi-para 0.6.0 → 0.6.1

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 (208) hide show
  1. package/ARCHITECTURE.md +0 -9
  2. package/CHANGELOG.md +13 -0
  3. package/CONFIGURATION.md +0 -23
  4. package/README.md +1 -29
  5. package/SETUP.md +1 -1
  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 +719 -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 +176 -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 +342 -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 +48 -0
  112. package/dist/scheduler/index.d.ts.map +1 -0
  113. package/dist/scheduler/index.js +193 -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 +19 -0
  140. package/dist/settings.d.ts.map +1 -0
  141. package/dist/settings.js +106 -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/config.ts +0 -25
  197. package/src/index.ts +1 -38
  198. package/src/templates/prompts.ts +0 -56
  199. package/scripts/gepa/dataset.py +0 -192
  200. package/scripts/gepa/lm_providers.py +0 -472
  201. package/scripts/gepa/metric.py +0 -279
  202. package/scripts/gepa/optimize.py +0 -367
  203. package/scripts/gepa/program.py +0 -99
  204. package/scripts/gepa/pyproject.toml +0 -19
  205. package/scripts/gepa/run-all.sh +0 -53
  206. package/scripts/gepa/wiki_reader.py +0 -113
  207. package/src/gepa/index.ts +0 -287
  208. package/src/gepa/optimized/capture-prompt.txt +0 -65
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wiki.js","sourceRoot":"","sources":["../src/wiki.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-para",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "PARA Knowledge Base Extension for pi — persistent, LLM-curated personal wiki",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -146,6 +146,7 @@
146
146
  "scripts": {
147
147
  "clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
148
148
  "build": "tsc -p tsconfig.json && node scripts/build-assets.mjs",
149
+ "prepack": "npm run build",
149
150
  "check": "tsc --noEmit",
150
151
  "test": "vitest --run",
151
152
  "test:coverage": "vitest --run --coverage",
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /* v8 ignore start */
3
3
  // Cross-platform post-tsc asset copy (replaces POSIX mkdir -p/cp in npm build).
4
- import { cp, mkdir, readdir } from "node:fs/promises";
4
+ import { cp, mkdir } from "node:fs/promises";
5
5
  import { existsSync } from "node:fs";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import { join, resolve, dirname } from "node:path";
@@ -15,15 +15,3 @@ await mkdir(webuiDestDir, { recursive: true });
15
15
  if (existsSync(webuiSrc)) {
16
16
  await cp(webuiSrc, join(webuiDestDir, "index.html"));
17
17
  }
18
-
19
- // 2. GEPA optimized prompt text files (optional)
20
- const gepaSrcDir = join(root, "src", "gepa", "optimized");
21
- const gepaDestDir = join(root, "dist", "gepa", "optimized");
22
- await mkdir(gepaDestDir, { recursive: true });
23
- if (existsSync(gepaSrcDir)) {
24
- for (const entry of await readdir(gepaSrcDir)) {
25
- if (entry.endsWith(".txt")) {
26
- await cp(join(gepaSrcDir, entry), join(gepaDestDir, entry));
27
- }
28
- }
29
- }
@@ -10,7 +10,7 @@ Read and follow the instructions in `SETUP.md` at the root of the pi-para packag
10
10
  The setup file is at: `{{skill_dir}}/../../SETUP.md`
11
11
 
12
12
  Steps:
13
- 1. `pi install @picassio/pi-para` (extension)
13
+ 1. `pi install npm:pi-para` (extension)
14
14
  2. `npm install -g @picassio/qmd` (search engine)
15
15
  3. Configure `~/.config/qmd/index.yml` (providers)
16
16
  4. Set `daemonModel` in `~/.pi/wiki/config.json` (daemon LLM)
package/src/cli.ts CHANGED
@@ -413,75 +413,6 @@ async function main() {
413
413
  break;
414
414
  }
415
415
 
416
- case "gepa": {
417
- const sub = args[1];
418
- const { runGEPA, listOptimized, compareTarget, extractTargets } = await import("./gepa/index.js");
419
- switch (sub) {
420
- case "optimize": {
421
- const g = (flag: string) => { const i = args.indexOf(flag); return i >= 0 ? args[i + 1] : undefined; };
422
- try {
423
- await runGEPA({
424
- target: g("--target"),
425
- studentModel: g("--student-model") ?? g("--model"),
426
- teacherModel: g("--teacher-model") ?? g("--reflection-model"),
427
- judgeModel: g("--judge-model"),
428
- auto: (g("--auto") ?? undefined) as "light" | "medium" | "heavy" | undefined,
429
- maxMetricCalls: g("--max-metric-calls") ? parseInt(g("--max-metric-calls")!) : undefined,
430
- threads: g("--threads") ? parseInt(g("--threads")!) : undefined,
431
- seed: g("--seed") ? parseInt(g("--seed")!) : undefined,
432
- });
433
- } catch (err) {
434
- console.error(`[gepa] Error: ${err instanceof Error ? err.message : err}`);
435
- process.exit(1);
436
- }
437
- break;
438
- }
439
- case "list": {
440
- const items = listOptimized();
441
- if (items.length === 0) { console.log("No optimized prompts. Run 'gepa optimize' first."); }
442
- else { for (const i of items) console.log(` ${i.name}: score=${i.score.toFixed(3)} model=${i.model}`); }
443
- break;
444
- }
445
- case "targets": {
446
- for (const t of extractTargets()) console.log(` ${t.name} (${t.type}): ${t.content.length} chars`);
447
- break;
448
- }
449
- case "compare": {
450
- const name = args[args.indexOf("--target") + 1];
451
- if (!name) { console.error("Usage: gepa compare --target <name>"); process.exit(1); }
452
- const d = compareTarget(name);
453
- if (!d) console.log(`No optimized version for '${name}'.`);
454
- else { console.log("=== ORIGINAL ===\n" + d.original.slice(0, 500)); console.log("\n=== OPTIMIZED ===\n" + d.optimized.slice(0, 500)); }
455
- break;
456
- }
457
- default:
458
- console.log(`pi-para gepa — GEPA prompt optimizer (DSPy GEPA via uv)
459
-
460
- Subcommands:
461
- optimize Run DSPy GEPA optimization
462
- list Show optimized prompts and scores
463
- targets List all 22 optimization targets
464
- compare Compare original vs optimized for a target
465
-
466
- Options (optimize):
467
- --target <name> Optimize only this target
468
- --student-model <spec> Student LM — runs proxy (default: anthropic/claude-sonnet-4-20250514)
469
- --teacher-model <spec> Teacher/reflection LM — proposes mutations (default: anthropic/claude-opus-4-6)
470
- --judge-model <spec> Judge LM — scores output (default: same as student)
471
- --model <spec> Shorthand for --student-model
472
- --reflection-model <spec> Shorthand for --teacher-model
473
- --auto light|medium|heavy Budget preset (default: light)
474
- --max-metric-calls <N> Override auto with explicit budget
475
- --threads <N> Parallel eval threads (default: 2)
476
- --seed <N> Random seed (default: 42)
477
-
478
- Config (persistent defaults in ~/.pi/wiki/config.json):
479
- gepa.studentModel gepa.teacherModel gepa.judgeModel
480
- gepa.auto gepa.threads gepa.seed
481
- gepa.useOptimized (toggle optimized prompts at runtime)`);
482
- }
483
- break;
484
- }
485
416
 
486
417
  default:
487
418
  console.log(`pi-para — PARA wiki extension CLI
@@ -498,7 +429,6 @@ Primary commands:
498
429
  providers List credential refs and local secrets
499
430
  providers set-secret <name> <value>
500
431
  providers remove-secret <name>
501
- gepa <subcommand> GEPA prompt optimizer (optimize, list, targets, compare)
502
432
 
503
433
  Legacy compatibility commands:
504
434
  start Deprecated daemon foreground mode
package/src/config.ts CHANGED
@@ -58,15 +58,6 @@ export interface ParaUserConfig {
58
58
  port: number;
59
59
  launch: "manual" | "disabled";
60
60
  };
61
- gepa: {
62
- useOptimized: boolean;
63
- studentModel: string;
64
- teacherModel: string;
65
- judgeModel: string;
66
- auto: "light" | "medium" | "heavy";
67
- threads: number;
68
- seed: number;
69
- };
70
61
  }
71
62
 
72
63
  export interface LegacyParaRuntimeConfig {
@@ -81,7 +72,6 @@ export interface LegacyParaRuntimeConfig {
81
72
  searchGraphBoost: boolean;
82
73
  daemonModel: string | null;
83
74
  webWiki: { enabled: boolean; host: string; port: number };
84
- gepa: ParaUserConfig["gepa"];
85
75
  }
86
76
 
87
77
  export interface LoadedParaConfig {
@@ -137,15 +127,6 @@ export function getDefaultUserConfig(homeDir?: string): ParaUserConfig {
137
127
  port: 10973,
138
128
  launch: "manual",
139
129
  },
140
- gepa: {
141
- useOptimized: false,
142
- studentModel: "anthropic/claude-sonnet-4-20250514",
143
- teacherModel: "anthropic/claude-opus-4-6",
144
- judgeModel: "anthropic/claude-sonnet-4-20250514",
145
- auto: "light",
146
- threads: 2,
147
- seed: 42,
148
- },
149
130
  };
150
131
  }
151
132
 
@@ -215,7 +196,6 @@ export function normalizeConfig(input: Partial<ParaUserConfig>, homeDir?: string
215
196
  qmd: { ...defaults.qmd, ...input.qmd },
216
197
  lint: { ...defaults.lint, ...input.lint },
217
198
  webWiki: { ...defaults.webWiki, ...input.webWiki },
218
- gepa: { ...defaults.gepa, ...input.gepa },
219
199
  };
220
200
  }
221
201
 
@@ -295,10 +275,6 @@ export function migrateLegacyConfig(
295
275
  config.webWiki.port = numberOr(legacy.webWiki.port, defaults.webWiki.port);
296
276
  }
297
277
 
298
- if (isRecord(legacy.gepa)) {
299
- config.gepa = { ...config.gepa, ...legacy.gepa } as ParaUserConfig["gepa"];
300
- }
301
-
302
278
  return config;
303
279
  }
304
280
 
@@ -321,7 +297,6 @@ export function toLegacyRuntimeConfig(config: ParaUserConfig): LegacyParaRuntime
321
297
  host: config.webWiki.host,
322
298
  port: config.webWiki.port,
323
299
  },
324
- gepa: config.gepa,
325
300
  };
326
301
  }
327
302
 
package/src/index.ts CHANGED
@@ -65,26 +65,6 @@ interface ParaConfig {
65
65
  host: string;
66
66
  port: number;
67
67
  };
68
- /** GEPA prompt optimizer settings */
69
- gepa: {
70
- /** When true, load optimized prompts from ~/.pi/wiki/gepa/optimized/ at runtime. */
71
- useOptimized: boolean;
72
- /** Student model — runs the proxy (generates wiki output). Fast + cheap.
73
- * Default: anthropic/claude-sonnet-4-20250514 */
74
- studentModel: string | null;
75
- /** Teacher/reflection model — proposes instruction mutations. Smart + creative.
76
- * Default: anthropic/claude-opus-4-6 */
77
- teacherModel: string | null;
78
- /** Judge model — scores candidate outputs (LLM-as-judge). Fast + cheap.
79
- * Default: same as studentModel */
80
- judgeModel: string | null;
81
- /** Budget preset: light (~460 calls), medium (~1500), heavy (~5000) */
82
- auto: "light" | "medium" | "heavy";
83
- /** Parallel eval threads */
84
- threads: number;
85
- /** Random seed for reproducibility */
86
- seed: number;
87
- };
88
68
  }
89
69
 
90
70
  function getDefaultConfig(): ParaConfig {
@@ -104,15 +84,6 @@ function getDefaultConfig(): ParaConfig {
104
84
  host: "0.0.0.0",
105
85
  port: 10973,
106
86
  },
107
- gepa: {
108
- useOptimized: true,
109
- studentModel: null,
110
- teacherModel: null,
111
- judgeModel: null,
112
- auto: "light",
113
- threads: 2,
114
- seed: 42,
115
- },
116
87
  };
117
88
  }
118
89
 
@@ -127,15 +98,7 @@ async function loadConfig(): Promise<LoadedRuntimeConfig> {
127
98
  const loaded = await loadParaConfig({ migrate: true });
128
99
  const runtime = toLegacyRuntimeConfig(loaded.config);
129
100
  return {
130
- runtime: {
131
- ...runtime,
132
- gepa: {
133
- ...runtime.gepa,
134
- studentModel: runtime.gepa.studentModel ?? null,
135
- teacherModel: runtime.gepa.teacherModel ?? null,
136
- judgeModel: runtime.gepa.judgeModel ?? null,
137
- },
138
- },
101
+ runtime,
139
102
  userConfig: loaded.config,
140
103
  secretsPath: loaded.paths.secretsPath,
141
104
  };
@@ -1,63 +1,7 @@
1
1
  /**
2
2
  * LLM prompt templates for ingest, query, lint, capture, and summarize operations.
3
- *
4
- * Use getPrompt(name) to load the GEPA-optimized version (if deployed) or the original.
5
3
  */
6
4
 
7
- import { readFileSync, existsSync } from "node:fs";
8
- import { join, dirname } from "node:path";
9
- import { homedir } from "node:os";
10
-
11
- /**
12
- * Load a prompt by name — returns the GEPA-optimized version if
13
- * config.gepa.useOptimized is true, otherwise returns the original.
14
- *
15
- * Resolution order:
16
- * 1. User-generated optimized prompt at ~/.pi/wiki/gepa/optimized/{name}.txt
17
- * 2. Bundled optimized prompt shipped with the package (src/gepa/optimized/{name}.txt)
18
- * 3. Original constant from this file
19
- */
20
- export function getPrompt(name: string): string {
21
- const original = _originals()[name];
22
- if (!original) return "";
23
- try {
24
- const cfgPath = join(homedir(), ".pi", "wiki", "config.json");
25
- if (!existsSync(cfgPath)) return original;
26
- const cfg = JSON.parse(readFileSync(cfgPath, "utf-8"));
27
- if (!cfg.gepa?.useOptimized) return original;
28
-
29
- // 1. Check user-generated optimized prompt
30
- const userPath = join(homedir(), ".pi", "wiki", "gepa", "optimized", `${name}.txt`);
31
- if (existsSync(userPath)) {
32
- const content = readFileSync(userPath, "utf-8").trim();
33
- if (content.length > 50) return content;
34
- }
35
-
36
- // 2. Check bundled optimized prompt (shipped with package)
37
- const bundledPath = join(dirname(new URL(import.meta.url).pathname), "..", "gepa", "optimized", `${name}.txt`);
38
- if (existsSync(bundledPath)) {
39
- const content = readFileSync(bundledPath, "utf-8").trim();
40
- if (content.length > 50) return content;
41
- }
42
- } catch { /* fall through to original */ }
43
- return original;
44
- }
45
-
46
- function _originals(): Record<string, string> {
47
- return {
48
- "wiki-system-prompt": WIKI_SYSTEM_PROMPT,
49
- "ingest-prompt": INGEST_PROMPT,
50
- "query-prompt": QUERY_PROMPT,
51
- "capture-system-prompt": CAPTURE_SYSTEM_PROMPT,
52
- "capture-prompt": CAPTURE_PROMPT,
53
- "explicit-capture-prompt": EXPLICIT_CAPTURE_PROMPT,
54
- "summarize-system-prompt": SUMMARIZE_SYSTEM_PROMPT,
55
- "iterative-update-prompt": ITERATIVE_UPDATE_PROMPT,
56
- "overview-prompt": OVERVIEW_PROMPT,
57
- "lint-prompt": LINT_PROMPT,
58
- };
59
- }
60
-
61
5
  // -- Wiki System Prompt (standalone agent) ------------------------------------
62
6
 
63
7
  /**
@@ -1,192 +0,0 @@
1
- """Build trainset/valset from real wiki pages.
2
-
3
- Each example pairs a synthetic task context (derived from the page topic)
4
- with the actual page body as expected output. The proxy module runs the
5
- instruction on the task context; the metric scores how well the output
6
- matches the gold page.
7
- """
8
-
9
- from __future__ import annotations
10
-
11
- import random
12
- from typing import Any
13
-
14
- import dspy
15
-
16
- from wiki_reader import WikiPage, load_all_pages, get_wiki_stats
17
-
18
-
19
- # -- Task context generators --------------------------------------------------
20
-
21
- def _capture_context(page: WikiPage) -> str:
22
- """Generate a synthetic capture-style task context from a wiki page."""
23
- scope_str = ", ".join(page.scope) if page.scope else "unknown"
24
- tags_str = ", ".join(page.tags[:5]) if page.tags else ""
25
- # Simulate what a session about this topic would look like
26
- return (
27
- f"A coding session about '{page.title}' in the {scope_str} project. "
28
- f"Topics covered: {tags_str}. "
29
- f"Extract and organize the key knowledge from this session into a wiki page."
30
- )
31
-
32
-
33
- def _ingest_context(page: WikiPage) -> str:
34
- """Generate a synthetic ingest-style task context."""
35
- return (
36
- f"Ingest the following source material about '{page.title}' "
37
- f"into the PARA wiki. Organize into a structured page with "
38
- f"proper frontmatter, sections, and cross-references."
39
- )
40
-
41
-
42
- def _query_context(page: WikiPage) -> str:
43
- """Generate a synthetic query-style task context."""
44
- return (
45
- f"The user asked about '{page.title}'. "
46
- f"Search results returned pages related to: {', '.join(page.scope)}. "
47
- f"Synthesize a helpful answer citing specific wiki pages."
48
- )
49
-
50
-
51
- def _maintenance_context(page: WikiPage) -> str:
52
- """Generate a synthetic maintenance-style task context."""
53
- link_count = len(page.links)
54
- return (
55
- f"Review the wiki page '{page.title}' ({page.category}/{page.slug}). "
56
- f"It has {link_count} outgoing links, scope [{', '.join(page.scope)}], "
57
- f"tags [{', '.join(page.tags[:5])}]. "
58
- f"Check for correct categorization, missing links, and content quality."
59
- )
60
-
61
-
62
- def _tool_context(page: WikiPage) -> str:
63
- """Generate a task context for tool instruction optimization."""
64
- return (
65
- f"A user wants to work with the wiki page '{page.title}' "
66
- f"in category '{page.category}', scope [{', '.join(page.scope)}]. "
67
- f"Guide them on how to use wiki tools effectively."
68
- )
69
-
70
-
71
- def _skill_context(page: WikiPage) -> str:
72
- """Generate a task context for skill optimization."""
73
- return (
74
- f"Working on a task related to '{page.title}' in the {', '.join(page.scope)} project. "
75
- f"Apply the PARA knowledge management methodology to this work."
76
- )
77
-
78
-
79
- # Target type → context generator
80
- CONTEXT_GENERATORS = {
81
- "capture": _capture_context,
82
- "ingest": _ingest_context,
83
- "query": _query_context,
84
- "maintenance": _maintenance_context,
85
- "tool": _tool_context,
86
- "skill": _skill_context,
87
- "system": _capture_context, # system prompts use capture-style context
88
- }
89
-
90
-
91
- # -- Dataset builder -----------------------------------------------------------
92
-
93
- def build_dataset(
94
- wiki_dir: str,
95
- target_type: str = "capture",
96
- max_examples: int = 50,
97
- val_ratio: float = 0.4,
98
- seed: int = 42,
99
- ) -> tuple[list[dspy.Example], list[dspy.Example]]:
100
- """Build train/val datasets from real wiki pages.
101
-
102
- Args:
103
- wiki_dir: Path to wiki directory (e.g. ~/.pi/wiki)
104
- target_type: Type of target being optimized (capture, ingest, query, etc.)
105
- max_examples: Maximum total examples
106
- val_ratio: Fraction of examples for validation
107
- seed: Random seed for reproducible splits
108
-
109
- Returns:
110
- (trainset, valset) — lists of dspy.Example
111
- """
112
- pages = load_all_pages(wiki_dir)
113
-
114
- if not pages:
115
- raise ValueError(f"No wiki pages found in {wiki_dir}")
116
-
117
- # Filter to pages with substantial content (at least 200 chars body)
118
- good_pages = [p for p in pages if len(p.body) >= 200]
119
-
120
- if len(good_pages) < 4:
121
- raise ValueError(f"Need at least 4 pages with content, found {len(good_pages)}")
122
-
123
- # Shuffle deterministically
124
- rng = random.Random(seed)
125
- rng.shuffle(good_pages)
126
-
127
- # Limit to max_examples
128
- good_pages = good_pages[:max_examples]
129
-
130
- # Get context generator for this target type
131
- gen_context = CONTEXT_GENERATORS.get(target_type, _capture_context)
132
-
133
- # Build examples
134
- examples = []
135
- for page in good_pages:
136
- task_context = gen_context(page)
137
-
138
- # Gold output: the actual page body (truncated to keep examples manageable)
139
- expected_output = page.body[:3000] if len(page.body) > 3000 else page.body
140
-
141
- example = dspy.Example(
142
- task_context=task_context,
143
- expected_output=expected_output,
144
- # Metadata for the metric
145
- expected_category=page.category,
146
- expected_scope=",".join(page.scope),
147
- expected_slug=page.slug,
148
- expected_title=page.title,
149
- page_link_count=str(len(page.links)),
150
- ).with_inputs("task_context")
151
-
152
- examples.append(example)
153
-
154
- # Split into train/val
155
- split_idx = max(1, int(len(examples) * (1 - val_ratio)))
156
- trainset = examples[:split_idx]
157
- valset = examples[split_idx:]
158
-
159
- # Ensure minimum sizes
160
- if len(trainset) < 2:
161
- trainset = examples[:max(2, len(examples) // 2)]
162
- valset = examples[len(trainset):]
163
- if len(valset) < 2:
164
- valset = trainset[-2:] # share a few from train if needed
165
-
166
- return trainset, valset
167
-
168
-
169
- def get_wiki_context(wiki_dir: str) -> str:
170
- """Build a wiki context string for the metric/evaluator."""
171
- stats = get_wiki_stats(wiki_dir)
172
- pages = load_all_pages(wiki_dir)
173
-
174
- # Build a brief summary of existing pages for context
175
- page_summaries = []
176
- for p in pages[:30]: # Top 30 pages
177
- first_line = ""
178
- for line in p.body.split("\n"):
179
- line = line.strip()
180
- if line and not line.startswith("#"):
181
- first_line = line[:100]
182
- break
183
- page_summaries.append(f" - [[{p.slug}]] ({p.category}): {p.title}")
184
-
185
- context = f"""Wiki has {stats['total_pages']} pages across categories: {stats['categories']}.
186
- Scopes: {', '.join(stats['unique_scopes'][:10])}.
187
- Avg links/page: {stats['avg_links_per_page']}.
188
-
189
- Existing pages:
190
- {chr(10).join(page_summaries)}"""
191
-
192
- return context