pi-para 0.5.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 (198) hide show
  1. package/CHANGELOG.md +214 -0
  2. package/README.md +305 -0
  3. package/SETUP.md +171 -0
  4. package/dist/capture.d.ts +34 -0
  5. package/dist/capture.d.ts.map +1 -0
  6. package/dist/capture.js +461 -0
  7. package/dist/capture.js.map +1 -0
  8. package/dist/cli.d.ts +15 -0
  9. package/dist/cli.d.ts.map +1 -0
  10. package/dist/cli.js +405 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/commands.d.ts +15 -0
  13. package/dist/commands.d.ts.map +1 -0
  14. package/dist/commands.js +786 -0
  15. package/dist/commands.js.map +1 -0
  16. package/dist/context.d.ts +61 -0
  17. package/dist/context.d.ts.map +1 -0
  18. package/dist/context.js +289 -0
  19. package/dist/context.js.map +1 -0
  20. package/dist/daemon.d.ts +49 -0
  21. package/dist/daemon.d.ts.map +1 -0
  22. package/dist/daemon.js +226 -0
  23. package/dist/daemon.js.map +1 -0
  24. package/dist/frontmatter.d.ts +59 -0
  25. package/dist/frontmatter.d.ts.map +1 -0
  26. package/dist/frontmatter.js +170 -0
  27. package/dist/frontmatter.js.map +1 -0
  28. package/dist/gepa/dataset.d.ts +36 -0
  29. package/dist/gepa/dataset.d.ts.map +1 -0
  30. package/dist/gepa/dataset.js +148 -0
  31. package/dist/gepa/dataset.js.map +1 -0
  32. package/dist/gepa/evaluator.d.ts +51 -0
  33. package/dist/gepa/evaluator.d.ts.map +1 -0
  34. package/dist/gepa/evaluator.js +317 -0
  35. package/dist/gepa/evaluator.js.map +1 -0
  36. package/dist/gepa/index.d.ts +66 -0
  37. package/dist/gepa/index.d.ts.map +1 -0
  38. package/dist/gepa/index.js +240 -0
  39. package/dist/gepa/index.js.map +1 -0
  40. package/dist/gepa/llm.d.ts +35 -0
  41. package/dist/gepa/llm.d.ts.map +1 -0
  42. package/dist/gepa/llm.js +268 -0
  43. package/dist/gepa/llm.js.map +1 -0
  44. package/dist/gepa/optimized/capture-prompt.txt +65 -0
  45. package/dist/gepa/optimizer.d.ts +29 -0
  46. package/dist/gepa/optimizer.d.ts.map +1 -0
  47. package/dist/gepa/optimizer.js +249 -0
  48. package/dist/gepa/optimizer.js.map +1 -0
  49. package/dist/gepa/targets.d.ts +39 -0
  50. package/dist/gepa/targets.d.ts.map +1 -0
  51. package/dist/gepa/targets.js +326 -0
  52. package/dist/gepa/targets.js.map +1 -0
  53. package/dist/gepa/types.d.ts +168 -0
  54. package/dist/gepa/types.d.ts.map +1 -0
  55. package/dist/gepa/types.js +124 -0
  56. package/dist/gepa/types.js.map +1 -0
  57. package/dist/index.d.ts +21 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +294 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/ingest.d.ts +88 -0
  62. package/dist/ingest.d.ts.map +1 -0
  63. package/dist/ingest.js +105 -0
  64. package/dist/ingest.js.map +1 -0
  65. package/dist/link-discovery.d.ts +40 -0
  66. package/dist/link-discovery.d.ts.map +1 -0
  67. package/dist/link-discovery.js +122 -0
  68. package/dist/link-discovery.js.map +1 -0
  69. package/dist/link-utils.d.ts +30 -0
  70. package/dist/link-utils.d.ts.map +1 -0
  71. package/dist/link-utils.js +145 -0
  72. package/dist/link-utils.js.map +1 -0
  73. package/dist/lint.d.ts +39 -0
  74. package/dist/lint.d.ts.map +1 -0
  75. package/dist/lint.js +827 -0
  76. package/dist/lint.js.map +1 -0
  77. package/dist/maintainer.d.ts +24 -0
  78. package/dist/maintainer.d.ts.map +1 -0
  79. package/dist/maintainer.js +358 -0
  80. package/dist/maintainer.js.map +1 -0
  81. package/dist/processor.d.ts +14 -0
  82. package/dist/processor.d.ts.map +1 -0
  83. package/dist/processor.js +361 -0
  84. package/dist/processor.js.map +1 -0
  85. package/dist/query.d.ts +69 -0
  86. package/dist/query.d.ts.map +1 -0
  87. package/dist/query.js +107 -0
  88. package/dist/query.js.map +1 -0
  89. package/dist/raw.d.ts +57 -0
  90. package/dist/raw.d.ts.map +1 -0
  91. package/dist/raw.js +219 -0
  92. package/dist/raw.js.map +1 -0
  93. package/dist/redact.d.ts +21 -0
  94. package/dist/redact.d.ts.map +1 -0
  95. package/dist/redact.js +143 -0
  96. package/dist/redact.js.map +1 -0
  97. package/dist/scope.d.ts +54 -0
  98. package/dist/scope.d.ts.map +1 -0
  99. package/dist/scope.js +161 -0
  100. package/dist/scope.js.map +1 -0
  101. package/dist/scripts/bulk-link-fix.d.ts +9 -0
  102. package/dist/scripts/bulk-link-fix.d.ts.map +1 -0
  103. package/dist/scripts/bulk-link-fix.js +106 -0
  104. package/dist/scripts/bulk-link-fix.js.map +1 -0
  105. package/dist/session-tools.d.ts +33 -0
  106. package/dist/session-tools.d.ts.map +1 -0
  107. package/dist/session-tools.js +211 -0
  108. package/dist/session-tools.js.map +1 -0
  109. package/dist/state.d.ts +54 -0
  110. package/dist/state.d.ts.map +1 -0
  111. package/dist/state.js +176 -0
  112. package/dist/state.js.map +1 -0
  113. package/dist/store.d.ts +56 -0
  114. package/dist/store.d.ts.map +1 -0
  115. package/dist/store.js +227 -0
  116. package/dist/store.js.map +1 -0
  117. package/dist/summarize.d.ts +56 -0
  118. package/dist/summarize.d.ts.map +1 -0
  119. package/dist/summarize.js +231 -0
  120. package/dist/summarize.js.map +1 -0
  121. package/dist/tag-registry.d.ts +56 -0
  122. package/dist/tag-registry.d.ts.map +1 -0
  123. package/dist/tag-registry.js +146 -0
  124. package/dist/tag-registry.js.map +1 -0
  125. package/dist/templates/prompts.d.ts +63 -0
  126. package/dist/templates/prompts.d.ts.map +1 -0
  127. package/dist/templates/prompts.js +260 -0
  128. package/dist/templates/prompts.js.map +1 -0
  129. package/dist/tools.d.ts +26 -0
  130. package/dist/tools.d.ts.map +1 -0
  131. package/dist/tools.js +1033 -0
  132. package/dist/tools.js.map +1 -0
  133. package/dist/watcher.d.ts +25 -0
  134. package/dist/watcher.d.ts.map +1 -0
  135. package/dist/watcher.js +84 -0
  136. package/dist/watcher.js.map +1 -0
  137. package/dist/webui/client/dist/index.html +1885 -0
  138. package/dist/webui/server.d.ts +31 -0
  139. package/dist/webui/server.d.ts.map +1 -0
  140. package/dist/webui/server.js +566 -0
  141. package/dist/webui/server.js.map +1 -0
  142. package/dist/wiki.d.ts +103 -0
  143. package/dist/wiki.d.ts.map +1 -0
  144. package/dist/wiki.js +428 -0
  145. package/dist/wiki.js.map +1 -0
  146. package/package.json +142 -0
  147. package/scripts/gepa/__pycache__/dataset.cpython-313.pyc +0 -0
  148. package/scripts/gepa/__pycache__/lm_providers.cpython-313.pyc +0 -0
  149. package/scripts/gepa/__pycache__/metric.cpython-313.pyc +0 -0
  150. package/scripts/gepa/__pycache__/program.cpython-313.pyc +0 -0
  151. package/scripts/gepa/__pycache__/wiki_reader.cpython-313.pyc +0 -0
  152. package/scripts/gepa/dataset.py +192 -0
  153. package/scripts/gepa/lm_providers.py +472 -0
  154. package/scripts/gepa/metric.py +279 -0
  155. package/scripts/gepa/optimize.py +367 -0
  156. package/scripts/gepa/program.py +99 -0
  157. package/scripts/gepa/pyproject.toml +19 -0
  158. package/scripts/gepa/run-all.sh +53 -0
  159. package/scripts/gepa/uv.lock +2241 -0
  160. package/scripts/gepa/wiki_reader.py +113 -0
  161. package/skills/para/SKILL.md +77 -0
  162. package/skills/setup/SKILL.md +20 -0
  163. package/src/capture.ts +563 -0
  164. package/src/cli.ts +416 -0
  165. package/src/commands.ts +878 -0
  166. package/src/context.ts +390 -0
  167. package/src/daemon.ts +288 -0
  168. package/src/frontmatter.ts +219 -0
  169. package/src/gepa/index.ts +287 -0
  170. package/src/gepa/optimized/capture-prompt.txt +65 -0
  171. package/src/index.ts +384 -0
  172. package/src/ingest.ts +177 -0
  173. package/src/link-discovery.ts +170 -0
  174. package/src/link-utils.ts +169 -0
  175. package/src/lint.ts +1018 -0
  176. package/src/maintainer.ts +404 -0
  177. package/src/processor.ts +415 -0
  178. package/src/python/__pycache__/minimax_lm.cpython-312.pyc +0 -0
  179. package/src/python/minimax_lm.py +198 -0
  180. package/src/python/rlm_capture.py +215 -0
  181. package/src/query.ts +148 -0
  182. package/src/raw.ts +276 -0
  183. package/src/redact.ts +159 -0
  184. package/src/scope.ts +214 -0
  185. package/src/scripts/bulk-link-fix.ts +126 -0
  186. package/src/session-tools.ts +260 -0
  187. package/src/state.ts +271 -0
  188. package/src/store.ts +288 -0
  189. package/src/summarize.ts +273 -0
  190. package/src/tag-registry.ts +157 -0
  191. package/src/templates/index.md +17 -0
  192. package/src/templates/prompts.ts +274 -0
  193. package/src/templates/schema.md +116 -0
  194. package/src/tools.ts +1293 -0
  195. package/src/watcher.ts +101 -0
  196. package/src/webui/client/dist/index.html +1885 -0
  197. package/src/webui/server.ts +765 -0
  198. package/src/wiki.ts +550 -0
package/dist/cli.js ADDED
@@ -0,0 +1,405 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI for pi-para-daemon.
4
+ *
5
+ * Usage:
6
+ * pi-para-daemon start [--foreground]
7
+ * pi-para-daemon stop
8
+ * pi-para-daemon status
9
+ * pi-para-daemon process <session_file>
10
+ * pi-para-daemon process-recent [--hours N]
11
+ * pi-para-daemon retry-failed
12
+ * pi-para-daemon history [--scope NAME]
13
+ */
14
+ import { join } from "node:path";
15
+ import { homedir } from "node:os";
16
+ import { existsSync, readdirSync, statSync } from "node:fs";
17
+ import { Daemon } from "./daemon.js";
18
+ import { StateDB } from "./state.js";
19
+ import { RegistryWatcher } from "./watcher.js";
20
+ // -- Model setup -------------------------------------------------------------
21
+ // Use MiniMax via the same config as @picassio/qmd
22
+ async function createModel(modelArg) {
23
+ const { parse } = await import("yaml");
24
+ const { readFileSync } = await import("node:fs");
25
+ const { getModel, getProviders, getEnvApiKey } = await import("@mariozechner/pi-ai");
26
+ // 0. Try config.json daemonModel
27
+ if (!modelArg) {
28
+ try {
29
+ const configPath = join(homedir(), ".pi", "wiki", "config.json");
30
+ const raw = readFileSync(configPath, "utf-8");
31
+ const config = JSON.parse(raw);
32
+ if (config.daemonModel) {
33
+ modelArg = config.daemonModel;
34
+ console.log(`[daemon] Using model from config.json: ${modelArg}`);
35
+ }
36
+ }
37
+ catch {
38
+ // No config or no daemonModel — continue to auto-detect
39
+ }
40
+ }
41
+ // 1. Try CLI --model arg or config daemonModel
42
+ if (modelArg) {
43
+ const [provider, ...rest] = modelArg.split("/");
44
+ const modelId = rest.join("/");
45
+ if (provider && modelId) {
46
+ const model = getModel(provider, modelId);
47
+ if (model) {
48
+ // Resolve API key: try AuthStorage first (OAuth), then env vars
49
+ let authStore = null;
50
+ try {
51
+ const { AuthStorage } = await import("@mariozechner/pi-coding-agent");
52
+ authStore = AuthStorage.create();
53
+ }
54
+ catch { }
55
+ const getApiKey = async (p) => {
56
+ if (authStore) {
57
+ const k = await authStore.getApiKey(p);
58
+ if (k)
59
+ return k;
60
+ }
61
+ return getEnvApiKey(p) ?? "";
62
+ };
63
+ console.log(`[daemon] Using pi model: ${provider}/${modelId} (context: ${model.contextWindow})`);
64
+ return { model, getApiKey };
65
+ }
66
+ }
67
+ }
68
+ // 2. Try pi's auth storage (auth.json) — supports OAuth (Anthropic, GitHub Copilot, etc.)
69
+ try {
70
+ const { AuthStorage } = await import("@mariozechner/pi-coding-agent");
71
+ const authStorage = AuthStorage.create();
72
+ const { getModels } = await import("@mariozechner/pi-ai");
73
+ // Check providers in preference order: anthropic first (best quality)
74
+ const preferredProviders = ["anthropic", "openai", "openrouter", "google-antigravity", "github-copilot"];
75
+ for (const provider of preferredProviders) {
76
+ if (!authStorage.hasAuth(provider))
77
+ continue;
78
+ const key = await authStorage.getApiKey(provider);
79
+ if (!key)
80
+ continue;
81
+ const models = getModels(provider);
82
+ const sorted = [...models].sort((a, b) => (b.contextWindow ?? 0) - (a.contextWindow ?? 0));
83
+ const picked = sorted.find(m => !m.reasoning) ?? sorted[0];
84
+ if (picked) {
85
+ const getApiKey = async (p) => {
86
+ const k = await authStorage.getApiKey(p);
87
+ return k ?? getEnvApiKey(p) ?? "";
88
+ };
89
+ console.log(`[daemon] Using pi auth: ${provider}/${picked.id} (context: ${picked.contextWindow})`);
90
+ return { model: picked, getApiKey };
91
+ }
92
+ }
93
+ }
94
+ catch {
95
+ // AuthStorage not available — continue to env/qmd fallback
96
+ }
97
+ // 3. Try env vars
98
+ const providers = getProviders();
99
+ for (const provider of providers) {
100
+ const key = getEnvApiKey(provider);
101
+ if (key) {
102
+ const { getModels } = await import("@mariozechner/pi-ai");
103
+ const models = getModels(provider);
104
+ const sorted = [...models].sort((a, b) => (b.contextWindow ?? 0) - (a.contextWindow ?? 0));
105
+ const picked = sorted.find(m => !m.reasoning) ?? sorted[0];
106
+ if (picked) {
107
+ const getApiKey = async (p) => getEnvApiKey(p) ?? "";
108
+ console.log(`[daemon] Using env key: ${provider}/${picked.id} (context: ${picked.contextWindow})`);
109
+ return { model: picked, getApiKey };
110
+ }
111
+ }
112
+ }
113
+ // 3. Fall back to qmd config (MiniMax, OpenRouter, etc.)
114
+ const configPath = join(homedir(), ".config", "qmd", "index.yml");
115
+ if (existsSync(configPath)) {
116
+ const cfg = parse(readFileSync(configPath, "utf-8"));
117
+ const chat = cfg?.providers?.chat;
118
+ if (chat?.url && chat?.key) {
119
+ const model = {
120
+ id: chat.model || "MiniMax-M2.7-highspeed",
121
+ name: chat.model || "MiniMax-M2.7-highspeed",
122
+ provider: "custom",
123
+ api: chat.api === "anthropic" ? "anthropic-messages" : "openai-completions",
124
+ baseUrl: chat.url,
125
+ reasoning: false,
126
+ input: ["text"],
127
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
128
+ contextWindow: 196000,
129
+ maxTokens: 8192,
130
+ };
131
+ const getApiKey = async (_provider) => chat.key;
132
+ console.log(`[daemon] Using qmd provider: ${chat.model} at ${chat.url}`);
133
+ return { model, getApiKey };
134
+ }
135
+ }
136
+ console.error("Error: No LLM available. Set API keys (ANTHROPIC_API_KEY, OPENAI_API_KEY, etc.) or configure ~/.config/qmd/index.yml");
137
+ process.exit(1);
138
+ }
139
+ // -- CLI ---------------------------------------------------------------------
140
+ async function main() {
141
+ const args = process.argv.slice(2);
142
+ const command = args[0];
143
+ const wikiDir = join(homedir(), ".pi", "wiki");
144
+ switch (command) {
145
+ case "start": {
146
+ const modelIdx = args.indexOf("--model");
147
+ const modelArg = modelIdx >= 0 ? args[modelIdx + 1] : undefined;
148
+ const { model, getApiKey } = await createModel(modelArg);
149
+ // Load web wiki config
150
+ let webWiki;
151
+ try {
152
+ const { readFileSync } = await import("node:fs");
153
+ const configPath = join(homedir(), ".pi", "wiki", "config.json");
154
+ const raw = readFileSync(configPath, "utf-8");
155
+ const config = JSON.parse(raw);
156
+ if (config.webWiki?.enabled) {
157
+ webWiki = {
158
+ enabled: true,
159
+ host: config.webWiki.host ?? "0.0.0.0",
160
+ port: config.webWiki.port ?? 10973,
161
+ };
162
+ }
163
+ }
164
+ catch {
165
+ // No config or parse error — skip web wiki
166
+ }
167
+ const daemon = new Daemon({ wikiDir, model: model, getApiKey, webWiki });
168
+ process.on("SIGINT", async () => {
169
+ await daemon.stop();
170
+ process.exit(0);
171
+ });
172
+ process.on("SIGTERM", async () => {
173
+ await daemon.stop();
174
+ process.exit(0);
175
+ });
176
+ await daemon.start();
177
+ // Keep process alive
178
+ await new Promise(() => { });
179
+ break;
180
+ }
181
+ case "stop": {
182
+ const state = new StateDB(wikiDir);
183
+ const pid = state.getState("daemon_pid");
184
+ state.close();
185
+ if (pid) {
186
+ try {
187
+ process.kill(parseInt(pid), "SIGTERM");
188
+ console.log(`Sent SIGTERM to daemon (PID ${pid})`);
189
+ }
190
+ catch {
191
+ console.log(`Daemon not running (PID ${pid} not found)`);
192
+ }
193
+ }
194
+ else {
195
+ console.log("No daemon PID recorded.");
196
+ }
197
+ break;
198
+ }
199
+ case "status": {
200
+ const state = new StateDB(wikiDir);
201
+ const pid = state.getState("daemon_pid");
202
+ const startedAt = state.getState("daemon_started_at");
203
+ const history = state.getHistory(undefined, 5);
204
+ const failed = state.getFailed();
205
+ state.close();
206
+ let running = false;
207
+ if (pid) {
208
+ try {
209
+ process.kill(parseInt(pid), 0);
210
+ running = true;
211
+ }
212
+ catch { }
213
+ }
214
+ console.log(`Daemon: ${running ? `running (PID ${pid})` : "not running"}`);
215
+ if (startedAt)
216
+ console.log(`Started: ${startedAt}`);
217
+ console.log(`Failed: ${failed.length}`);
218
+ console.log(`\nRecent history:`);
219
+ for (const h of history) {
220
+ const status = h.error ? `ERROR: ${h.error.slice(0, 50)}` : `${h.pagesCreated.length} pages`;
221
+ console.log(` ${h.processedAt} | ${h.scope} | ${status}`);
222
+ }
223
+ break;
224
+ }
225
+ case "process": {
226
+ const sessionFile = args[1];
227
+ if (!sessionFile) {
228
+ console.error("Usage: pi-para-daemon process <session_file>");
229
+ process.exit(1);
230
+ }
231
+ const modelIdx2 = args.indexOf("--model");
232
+ const modelArg2 = modelIdx2 >= 0 ? args[modelIdx2 + 1] : undefined;
233
+ const { model, getApiKey } = await createModel(modelArg2);
234
+ const daemon = new Daemon({ wikiDir, model: model, getApiKey });
235
+ await daemon.start();
236
+ await daemon.processOne(sessionFile);
237
+ await daemon.stop();
238
+ break;
239
+ }
240
+ case "process-recent": {
241
+ const hoursIdx = args.indexOf("--hours");
242
+ const hours = hoursIdx >= 0 ? parseInt(args[hoursIdx + 1] ?? "24") : 24;
243
+ const cutoff = Date.now() - hours * 60 * 60 * 1000;
244
+ // Find recent sessions from registry
245
+ const watcher = new RegistryWatcher(wikiDir, () => { });
246
+ const entries = watcher.getAllEntries().filter((e) => {
247
+ const ts = new Date(e.timestamp).getTime();
248
+ return ts > cutoff;
249
+ });
250
+ const state = new StateDB(wikiDir);
251
+ const unprocessed = entries.filter((e) => !state.isProcessed(e.sessionPath));
252
+ state.close();
253
+ if (unprocessed.length === 0) {
254
+ console.log(`No unprocessed sessions in the last ${hours} hour(s).`);
255
+ break;
256
+ }
257
+ console.log(`Found ${unprocessed.length} unprocessed session(s)`);
258
+ const { model, getApiKey } = await createModel();
259
+ const daemon = new Daemon({ wikiDir, model: model, getApiKey });
260
+ await daemon.start();
261
+ for (const entry of unprocessed) {
262
+ await daemon.processOne(entry.sessionPath);
263
+ }
264
+ await daemon.stop();
265
+ break;
266
+ }
267
+ case "retry-failed": {
268
+ const { model, getApiKey } = await createModel();
269
+ const daemon = new Daemon({ wikiDir, model: model, getApiKey });
270
+ await daemon.start();
271
+ await daemon.retryFailed();
272
+ await daemon.stop();
273
+ break;
274
+ }
275
+ case "history": {
276
+ const scopeIdx = args.indexOf("--scope");
277
+ const scope = scopeIdx >= 0 ? args[scopeIdx + 1] : undefined;
278
+ const state = new StateDB(wikiDir);
279
+ const history = state.getHistory(scope, 20);
280
+ state.close();
281
+ if (history.length === 0) {
282
+ console.log("No processing history.");
283
+ break;
284
+ }
285
+ for (const h of history) {
286
+ const status = h.error
287
+ ? `ERROR: ${h.error.slice(0, 60)}`
288
+ : h.pagesCreated.length > 0
289
+ ? `${h.pagesCreated.length} page(s): ${h.pagesCreated.join(", ")}`
290
+ : "skipped";
291
+ console.log(`${h.processedAt} | ${h.scope} | ${status}`);
292
+ }
293
+ break;
294
+ }
295
+ case "gepa": {
296
+ const sub = args[1];
297
+ const { runGEPA, listOptimized, compareTarget, extractTargets } = await import("./gepa/index.js");
298
+ switch (sub) {
299
+ case "optimize": {
300
+ const g = (flag) => { const i = args.indexOf(flag); return i >= 0 ? args[i + 1] : undefined; };
301
+ try {
302
+ await runGEPA({
303
+ target: g("--target"),
304
+ studentModel: g("--student-model") ?? g("--model"),
305
+ teacherModel: g("--teacher-model") ?? g("--reflection-model"),
306
+ judgeModel: g("--judge-model"),
307
+ auto: (g("--auto") ?? undefined),
308
+ maxMetricCalls: g("--max-metric-calls") ? parseInt(g("--max-metric-calls")) : undefined,
309
+ threads: g("--threads") ? parseInt(g("--threads")) : undefined,
310
+ seed: g("--seed") ? parseInt(g("--seed")) : undefined,
311
+ });
312
+ }
313
+ catch (err) {
314
+ console.error(`[gepa] Error: ${err instanceof Error ? err.message : err}`);
315
+ process.exit(1);
316
+ }
317
+ break;
318
+ }
319
+ case "list": {
320
+ const items = listOptimized();
321
+ if (items.length === 0) {
322
+ console.log("No optimized prompts. Run 'gepa optimize' first.");
323
+ }
324
+ else {
325
+ for (const i of items)
326
+ console.log(` ${i.name}: score=${i.score.toFixed(3)} model=${i.model}`);
327
+ }
328
+ break;
329
+ }
330
+ case "targets": {
331
+ for (const t of extractTargets())
332
+ console.log(` ${t.name} (${t.type}): ${t.content.length} chars`);
333
+ break;
334
+ }
335
+ case "compare": {
336
+ const name = args[args.indexOf("--target") + 1];
337
+ if (!name) {
338
+ console.error("Usage: gepa compare --target <name>");
339
+ process.exit(1);
340
+ }
341
+ const d = compareTarget(name);
342
+ if (!d)
343
+ console.log(`No optimized version for '${name}'.`);
344
+ else {
345
+ console.log("=== ORIGINAL ===\n" + d.original.slice(0, 500));
346
+ console.log("\n=== OPTIMIZED ===\n" + d.optimized.slice(0, 500));
347
+ }
348
+ break;
349
+ }
350
+ default:
351
+ console.log(`pi-para-daemon gepa — GEPA prompt optimizer (DSPy GEPA via uv)
352
+
353
+ Subcommands:
354
+ optimize Run DSPy GEPA optimization
355
+ list Show optimized prompts and scores
356
+ targets List all 22 optimization targets
357
+ compare Compare original vs optimized for a target
358
+
359
+ Options (optimize):
360
+ --target <name> Optimize only this target
361
+ --student-model <spec> Student LM — runs proxy (default: anthropic/claude-sonnet-4-20250514)
362
+ --teacher-model <spec> Teacher/reflection LM — proposes mutations (default: anthropic/claude-opus-4-6)
363
+ --judge-model <spec> Judge LM — scores output (default: same as student)
364
+ --model <spec> Shorthand for --student-model
365
+ --reflection-model <spec> Shorthand for --teacher-model
366
+ --auto light|medium|heavy Budget preset (default: light)
367
+ --max-metric-calls <N> Override auto with explicit budget
368
+ --threads <N> Parallel eval threads (default: 2)
369
+ --seed <N> Random seed (default: 42)
370
+
371
+ Config (persistent defaults in ~/.pi/wiki/config.json):
372
+ gepa.studentModel gepa.teacherModel gepa.judgeModel
373
+ gepa.auto gepa.threads gepa.seed
374
+ gepa.useOptimized (toggle optimized prompts at runtime)`);
375
+ }
376
+ break;
377
+ }
378
+ default:
379
+ console.log(`pi-para-daemon — background knowledge capture
380
+
381
+ Commands:
382
+ start Start the daemon (foreground)
383
+ stop Stop the running daemon
384
+ status Show daemon status and recent history
385
+ process <file> Process a single session file
386
+ process-recent Process unprocessed sessions (--hours N, default 24)
387
+ retry-failed Retry all failed sessions
388
+ history Show processing history (--scope NAME to filter)
389
+ gepa <subcommand> GEPA prompt optimizer (optimize, list, targets, compare)
390
+
391
+ Options:
392
+ --model <provider/id> Use specific model (e.g. anthropic/claude-sonnet-4)
393
+
394
+ Model resolution order:
395
+ 1. --model flag
396
+ 2. Pi's model registry (ANTHROPIC_API_KEY, OPENAI_API_KEY, etc.)
397
+ 3. ~/.config/qmd/index.yml chat provider (MiniMax, OpenRouter, etc.)`);
398
+ break;
399
+ }
400
+ }
401
+ main().catch((err) => {
402
+ console.error(err);
403
+ process.exit(1);
404
+ });
405
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Slash command registrations for user interaction.
3
+ *
4
+ * Commands: /wiki, /wiki-ingest, /wiki-lint, /wiki-capture,
5
+ * /wiki-scope, /wiki-search, /wiki-summarize,
6
+ * /wiki-daemon, /wiki-settings
7
+ */
8
+ import type { QMDStore } from "@picassio/qmd";
9
+ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
10
+ import type { ProjectScope } from "./scope.js";
11
+ /**
12
+ * Register all slash commands with the pi extension API.
13
+ */
14
+ export declare function registerCommands(pi: ExtensionAPI, wikiDir: string, store: QMDStore, getScope: () => ProjectScope, setScope: (scope: ProjectScope) => void): void;
15
+ //# sourceMappingURL=commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAqJ/C;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,YAAY,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,MAAM,YAAY,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GACtC,IAAI,CAisBN"}