pi-para 0.5.2 → 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 (195) hide show
  1. package/ARCHITECTURE.md +160 -0
  2. package/CHANGELOG.md +51 -0
  3. package/CONFIGURATION.md +243 -0
  4. package/README.md +140 -237
  5. package/SETUP.md +196 -112
  6. package/STRUCTURE.md +140 -0
  7. package/package.json +86 -18
  8. package/scripts/build-assets.mjs +29 -0
  9. package/scripts/install.ps1 +55 -0
  10. package/scripts/install.sh +63 -0
  11. package/scripts/smoke-install.mjs +63 -0
  12. package/skills/para/SKILL.md +1 -1
  13. package/skills/setup/SKILL.md +1 -1
  14. package/src/atomic-write.ts +17 -0
  15. package/src/capture.ts +4 -4
  16. package/src/cli-legacy.ts +43 -0
  17. package/src/cli.ts +133 -28
  18. package/src/commands.ts +203 -243
  19. package/src/config.ts +355 -0
  20. package/src/context.ts +29 -14
  21. package/src/credentials.ts +100 -0
  22. package/src/daemon.ts +1 -1
  23. package/src/doctor.ts +209 -0
  24. package/src/gepa/index.ts +1 -1
  25. package/src/index.ts +119 -40
  26. package/src/maintainer.ts +4 -4
  27. package/src/model-resolver.ts +96 -0
  28. package/src/paths.ts +48 -0
  29. package/src/processor.ts +4 -4
  30. package/src/qmd-providers.ts +63 -0
  31. package/src/query.ts +15 -1
  32. package/src/repair.ts +49 -0
  33. package/src/scheduler/controls.ts +125 -0
  34. package/src/scheduler/index.ts +210 -0
  35. package/src/scheduler/leases.ts +98 -0
  36. package/src/scheduler/session-capture.ts +146 -0
  37. package/src/scheduler/state.ts +304 -0
  38. package/src/session-tools.ts +1 -1
  39. package/src/settings.ts +126 -0
  40. package/src/setup.ts +116 -0
  41. package/src/status.ts +115 -0
  42. package/src/store.ts +116 -31
  43. package/src/summarize.ts +72 -16
  44. package/src/templates/prompts.ts +1 -1
  45. package/src/tools.ts +280 -90
  46. package/src/wiki-tool-guidance.ts +84 -0
  47. package/src/wiki.ts +98 -26
  48. package/dist/capture.d.ts +0 -34
  49. package/dist/capture.d.ts.map +0 -1
  50. package/dist/capture.js +0 -461
  51. package/dist/capture.js.map +0 -1
  52. package/dist/cli.d.ts +0 -15
  53. package/dist/cli.d.ts.map +0 -1
  54. package/dist/cli.js +0 -405
  55. package/dist/cli.js.map +0 -1
  56. package/dist/commands.d.ts +0 -15
  57. package/dist/commands.d.ts.map +0 -1
  58. package/dist/commands.js +0 -786
  59. package/dist/commands.js.map +0 -1
  60. package/dist/context.d.ts +0 -61
  61. package/dist/context.d.ts.map +0 -1
  62. package/dist/context.js +0 -289
  63. package/dist/context.js.map +0 -1
  64. package/dist/daemon.d.ts +0 -49
  65. package/dist/daemon.d.ts.map +0 -1
  66. package/dist/daemon.js +0 -226
  67. package/dist/daemon.js.map +0 -1
  68. package/dist/frontmatter.d.ts +0 -59
  69. package/dist/frontmatter.d.ts.map +0 -1
  70. package/dist/frontmatter.js +0 -170
  71. package/dist/frontmatter.js.map +0 -1
  72. package/dist/gepa/dataset.d.ts +0 -36
  73. package/dist/gepa/dataset.d.ts.map +0 -1
  74. package/dist/gepa/dataset.js +0 -148
  75. package/dist/gepa/dataset.js.map +0 -1
  76. package/dist/gepa/evaluator.d.ts +0 -51
  77. package/dist/gepa/evaluator.d.ts.map +0 -1
  78. package/dist/gepa/evaluator.js +0 -317
  79. package/dist/gepa/evaluator.js.map +0 -1
  80. package/dist/gepa/index.d.ts +0 -66
  81. package/dist/gepa/index.d.ts.map +0 -1
  82. package/dist/gepa/index.js +0 -240
  83. package/dist/gepa/index.js.map +0 -1
  84. package/dist/gepa/llm.d.ts +0 -35
  85. package/dist/gepa/llm.d.ts.map +0 -1
  86. package/dist/gepa/llm.js +0 -268
  87. package/dist/gepa/llm.js.map +0 -1
  88. package/dist/gepa/optimized/capture-prompt.txt +0 -65
  89. package/dist/gepa/optimizer.d.ts +0 -29
  90. package/dist/gepa/optimizer.d.ts.map +0 -1
  91. package/dist/gepa/optimizer.js +0 -249
  92. package/dist/gepa/optimizer.js.map +0 -1
  93. package/dist/gepa/targets.d.ts +0 -39
  94. package/dist/gepa/targets.d.ts.map +0 -1
  95. package/dist/gepa/targets.js +0 -326
  96. package/dist/gepa/targets.js.map +0 -1
  97. package/dist/gepa/types.d.ts +0 -168
  98. package/dist/gepa/types.d.ts.map +0 -1
  99. package/dist/gepa/types.js +0 -124
  100. package/dist/gepa/types.js.map +0 -1
  101. package/dist/index.d.ts +0 -21
  102. package/dist/index.d.ts.map +0 -1
  103. package/dist/index.js +0 -294
  104. package/dist/index.js.map +0 -1
  105. package/dist/ingest.d.ts +0 -88
  106. package/dist/ingest.d.ts.map +0 -1
  107. package/dist/ingest.js +0 -105
  108. package/dist/ingest.js.map +0 -1
  109. package/dist/link-discovery.d.ts +0 -40
  110. package/dist/link-discovery.d.ts.map +0 -1
  111. package/dist/link-discovery.js +0 -122
  112. package/dist/link-discovery.js.map +0 -1
  113. package/dist/link-utils.d.ts +0 -30
  114. package/dist/link-utils.d.ts.map +0 -1
  115. package/dist/link-utils.js +0 -145
  116. package/dist/link-utils.js.map +0 -1
  117. package/dist/lint.d.ts +0 -39
  118. package/dist/lint.d.ts.map +0 -1
  119. package/dist/lint.js +0 -827
  120. package/dist/lint.js.map +0 -1
  121. package/dist/maintainer.d.ts +0 -24
  122. package/dist/maintainer.d.ts.map +0 -1
  123. package/dist/maintainer.js +0 -358
  124. package/dist/maintainer.js.map +0 -1
  125. package/dist/processor.d.ts +0 -14
  126. package/dist/processor.d.ts.map +0 -1
  127. package/dist/processor.js +0 -361
  128. package/dist/processor.js.map +0 -1
  129. package/dist/query.d.ts +0 -69
  130. package/dist/query.d.ts.map +0 -1
  131. package/dist/query.js +0 -107
  132. package/dist/query.js.map +0 -1
  133. package/dist/raw.d.ts +0 -57
  134. package/dist/raw.d.ts.map +0 -1
  135. package/dist/raw.js +0 -219
  136. package/dist/raw.js.map +0 -1
  137. package/dist/redact.d.ts +0 -21
  138. package/dist/redact.d.ts.map +0 -1
  139. package/dist/redact.js +0 -143
  140. package/dist/redact.js.map +0 -1
  141. package/dist/scope.d.ts +0 -54
  142. package/dist/scope.d.ts.map +0 -1
  143. package/dist/scope.js +0 -161
  144. package/dist/scope.js.map +0 -1
  145. package/dist/scripts/bulk-link-fix.d.ts +0 -9
  146. package/dist/scripts/bulk-link-fix.d.ts.map +0 -1
  147. package/dist/scripts/bulk-link-fix.js +0 -106
  148. package/dist/scripts/bulk-link-fix.js.map +0 -1
  149. package/dist/session-tools.d.ts +0 -33
  150. package/dist/session-tools.d.ts.map +0 -1
  151. package/dist/session-tools.js +0 -211
  152. package/dist/session-tools.js.map +0 -1
  153. package/dist/state.d.ts +0 -54
  154. package/dist/state.d.ts.map +0 -1
  155. package/dist/state.js +0 -176
  156. package/dist/state.js.map +0 -1
  157. package/dist/store.d.ts +0 -56
  158. package/dist/store.d.ts.map +0 -1
  159. package/dist/store.js +0 -227
  160. package/dist/store.js.map +0 -1
  161. package/dist/summarize.d.ts +0 -56
  162. package/dist/summarize.d.ts.map +0 -1
  163. package/dist/summarize.js +0 -231
  164. package/dist/summarize.js.map +0 -1
  165. package/dist/tag-registry.d.ts +0 -56
  166. package/dist/tag-registry.d.ts.map +0 -1
  167. package/dist/tag-registry.js +0 -146
  168. package/dist/tag-registry.js.map +0 -1
  169. package/dist/templates/prompts.d.ts +0 -63
  170. package/dist/templates/prompts.d.ts.map +0 -1
  171. package/dist/templates/prompts.js +0 -260
  172. package/dist/templates/prompts.js.map +0 -1
  173. package/dist/tools.d.ts +0 -26
  174. package/dist/tools.d.ts.map +0 -1
  175. package/dist/tools.js +0 -1033
  176. package/dist/tools.js.map +0 -1
  177. package/dist/watcher.d.ts +0 -25
  178. package/dist/watcher.d.ts.map +0 -1
  179. package/dist/watcher.js +0 -84
  180. package/dist/watcher.js.map +0 -1
  181. package/dist/webui/client/dist/index.html +0 -1885
  182. package/dist/webui/server.d.ts +0 -31
  183. package/dist/webui/server.d.ts.map +0 -1
  184. package/dist/webui/server.js +0 -566
  185. package/dist/webui/server.js.map +0 -1
  186. package/dist/wiki.d.ts +0 -103
  187. package/dist/wiki.d.ts.map +0 -1
  188. package/dist/wiki.js +0 -428
  189. package/dist/wiki.js.map +0 -1
  190. package/scripts/gepa/__pycache__/dataset.cpython-313.pyc +0 -0
  191. package/scripts/gepa/__pycache__/lm_providers.cpython-313.pyc +0 -0
  192. package/scripts/gepa/__pycache__/metric.cpython-313.pyc +0 -0
  193. package/scripts/gepa/__pycache__/program.cpython-313.pyc +0 -0
  194. package/scripts/gepa/__pycache__/wiki_reader.cpython-313.pyc +0 -0
  195. package/scripts/gepa/uv.lock +0 -2241
@@ -1 +0,0 @@
1
- {"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/gepa/dataset.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- /**
2
- * GEPA LLM-based evaluator — judges prompt/skill candidates on multiple dimensions.
3
- *
4
- * Every candidate is scored by an LLM judge across 5 equally-weighted dimensions:
5
- * Structure (0.20), Clarity (0.20), Completeness (0.20),
6
- * Error Prevention (0.20), Actionability (0.20)
7
- *
8
- * The evaluator builds a target-specific evaluation prompt that describes what
9
- * "good" looks like for each target type (system prompts, capture prompts,
10
- * maintenance prompts, skills), then parses the LLM's JSON response robustly.
11
- *
12
- * Constraint violations (missing required concepts) cap the score at 0.3.
13
- */
14
- import type { Target, LLMClient, EvalResult, EvalDimension } from "./types.js";
15
- /** Evaluation dimensions with equal weighting. */
16
- declare const EVAL_DIMENSIONS: readonly [{
17
- readonly name: "structure";
18
- readonly weight: 0.2;
19
- }, {
20
- readonly name: "clarity";
21
- readonly weight: 0.2;
22
- }, {
23
- readonly name: "completeness";
24
- readonly weight: 0.2;
25
- }, {
26
- readonly name: "error-prevention";
27
- readonly weight: 0.2;
28
- }, {
29
- readonly name: "actionability";
30
- readonly weight: 0.2;
31
- }];
32
- /** Maximum score when constraint violations are detected. */
33
- declare const CONSTRAINT_VIOLATION_CAP = 0.3;
34
- declare function getTargetTypeGuidance(target: Target): string;
35
- declare function buildEvaluationPrompt(candidate: string, target: Target, context: string): string;
36
- declare function extractJSON(raw: string): Record<string, unknown> | null;
37
- interface ParsedJudgeResponse {
38
- success: boolean;
39
- dimensions: EvalDimension[];
40
- constraintViolations: string[];
41
- overallFeedback: string;
42
- }
43
- declare function parseJudgeResponse(raw: string): ParsedJudgeResponse;
44
- declare function checkConstraintViolations(candidate: string, constraints: string[]): string[];
45
- declare function computeWeightedScore(dimensions: EvalDimension[]): number;
46
- /**
47
- * Evaluate a candidate prompt/skill using an LLM judge.
48
- */
49
- export declare function evaluateCandidate(candidate: string, target: Target, context: string, llm: LLMClient): Promise<EvalResult>;
50
- export { buildEvaluationPrompt, extractJSON, parseJudgeResponse, checkConstraintViolations, computeWeightedScore, getTargetTypeGuidance, EVAL_DIMENSIONS, CONSTRAINT_VIOLATION_CAP, };
51
- //# sourceMappingURL=evaluator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/gepa/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI/E,kDAAkD;AAClD,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;EAMX,CAAC;AAEX,6DAA6D;AAC7D,QAAA,MAAM,wBAAwB,MAAM,CAAC;AAkBrC,iBAAS,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CA4ErD;AAID,iBAAS,qBAAqB,CAC5B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,MAAM,CAsDR;AAID,iBAAS,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAuBhE;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,iBAAS,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CA2C5D;AAID,iBAAS,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAiBrF;AAgCD,iBAAS,oBAAoB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,CAWjE;AAID;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,SAAS,GACb,OAAO,CAAC,UAAU,CAAC,CAmDrB;AAED,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,wBAAwB,GACzB,CAAC"}
@@ -1,317 +0,0 @@
1
- /**
2
- * GEPA LLM-based evaluator — judges prompt/skill candidates on multiple dimensions.
3
- *
4
- * Every candidate is scored by an LLM judge across 5 equally-weighted dimensions:
5
- * Structure (0.20), Clarity (0.20), Completeness (0.20),
6
- * Error Prevention (0.20), Actionability (0.20)
7
- *
8
- * The evaluator builds a target-specific evaluation prompt that describes what
9
- * "good" looks like for each target type (system prompts, capture prompts,
10
- * maintenance prompts, skills), then parses the LLM's JSON response robustly.
11
- *
12
- * Constraint violations (missing required concepts) cap the score at 0.3.
13
- */
14
- // -- Constants ---------------------------------------------------------------
15
- /** Evaluation dimensions with equal weighting. */
16
- const EVAL_DIMENSIONS = [
17
- { name: "structure", weight: 0.20 },
18
- { name: "clarity", weight: 0.20 },
19
- { name: "completeness", weight: 0.20 },
20
- { name: "error-prevention", weight: 0.20 },
21
- { name: "actionability", weight: 0.20 },
22
- ];
23
- /** Maximum score when constraint violations are detected. */
24
- const CONSTRAINT_VIOLATION_CAP = 0.3;
25
- /** System prompt for the LLM judge. */
26
- const JUDGE_SYSTEM_PROMPT = `You are an expert prompt engineer evaluating prompt templates and skill documents for an AI-powered PARA knowledge base system called pi-para.
27
-
28
- Your evaluations must be precise, calibrated, and honest. Do not inflate scores.
29
-
30
- Scoring scale:
31
- - 0.0–0.2: Fundamentally broken or missing
32
- - 0.2–0.4: Major issues, needs significant rework
33
- - 0.4–0.6: Functional but has clear gaps or weaknesses
34
- - 0.6–0.8: Good, minor improvements possible
35
- - 0.8–1.0: Excellent, best-in-class for this type of content
36
-
37
- Always respond with valid JSON only. No markdown formatting, no explanatory text outside the JSON.`;
38
- // -- Target-type-specific quality criteria -----------------------------------
39
- function getTargetTypeGuidance(target) {
40
- const name = target.name.toLowerCase();
41
- if (name.includes("system-prompt") || name.includes("capture-prompt-processor")) {
42
- return `This is a SYSTEM PROMPT — it sets the persona and rules for an LLM agent.
43
-
44
- Quality criteria for system prompts:
45
- - MUST define a clear agent role/persona at the top
46
- - MUST include explicit PARA category rules (resources/ as default, projects/ ONLY for goals with end dates)
47
- - MUST include security rules (never store API keys/tokens/secrets in content)
48
- - MUST include scope rules (kebab-case project names)
49
- - SHOULD include content format guidance (wiki summary format)
50
- - SHOULD include [[wikilink]] usage instructions
51
- - Must be authoritative and unambiguous
52
- - Must prevent common mistakes (wrong category, duplicate pages, secrets in content)`;
53
- }
54
- if (name.includes("capture")) {
55
- return `This is a CAPTURE PROMPT — it instructs the LLM on extracting knowledge from coding sessions.
56
-
57
- Quality criteria for capture prompts:
58
- - MUST emphasize deduplication: search wiki_query BEFORE creating new pages
59
- - MUST include session reference instructions (include session file path in Sources)
60
- - MUST include skip-trivial logic (only skip pure greetings/chitchat)
61
- - MUST define what constitutes capturable knowledge
62
- - SHOULD specify capture bias: "when in doubt, capture it"
63
- - SHOULD emphasize small operational facts are valuable`;
64
- }
65
- if (name.includes("maintenance")) {
66
- return `This is a MAINTENANCE PROMPT — it instructs the LLM on keeping the wiki healthy.
67
-
68
- Quality criteria:
69
- - MUST take a conservative approach: "when unsure, leave it alone"
70
- - MUST include duplicate detection and merge rules
71
- - MUST include wikilink discovery
72
- - MUST include category review rules
73
- - SHOULD include project lifecycle review with safeguards`;
74
- }
75
- if (name.includes("ingest")) {
76
- return `This is an INGEST PROMPT — it instructs the LLM on integrating new source material.
77
-
78
- Quality criteria:
79
- - MUST instruct to review existing pages before creating new ones
80
- - MUST include PARA category assignment rules
81
- - MUST include wiki summary format
82
- - MUST instruct to flag contradictions`;
83
- }
84
- if (name.includes("query")) {
85
- return `This is a QUERY PROMPT — it instructs the LLM on synthesizing answers from wiki search.
86
-
87
- Quality criteria:
88
- - MUST include citation instructions (use [[page-slug]] references)
89
- - MUST include freshness verification rules
90
- - MUST include self-healing instructions (fix incorrect wiki pages)`;
91
- }
92
- if (target.type === "skill") {
93
- return `This is a SKILL DOCUMENT — behavioral guidelines or setup instructions.
94
-
95
- Quality criteria:
96
- - MUST have clear structure with numbered or headed sections
97
- - MUST have actionable steps the agent can follow without ambiguity
98
- - MUST include concrete examples where helpful
99
- - SHOULD include "common mistakes" or anti-patterns to avoid`;
100
- }
101
- return `This is a prompt template for the pi-para PARA knowledge base system.
102
-
103
- General quality criteria:
104
- - Clear structure with logical sections
105
- - Unambiguous instructions
106
- - Appropriate level of detail
107
- - Covers edge cases and error scenarios`;
108
- }
109
- // -- Evaluation prompt builder -----------------------------------------------
110
- function buildEvaluationPrompt(candidate, target, context) {
111
- const typeGuidance = getTargetTypeGuidance(target);
112
- const constraintSection = target.constraints.length > 0
113
- ? `\n## Required Constraints\n\nThe following concepts MUST be present. If any are missing, the candidate has a constraint violation.\n\n${target.constraints.map((c, i) => `${i + 1}. ${c}`).join("\n")}\n`
114
- : "";
115
- const descriptionSection = target.description
116
- ? `\n**Purpose**: ${target.description}\n`
117
- : "";
118
- return `# Prompt Evaluation Task
119
-
120
- You are evaluating a candidate ${target.type === "skill" ? "skill document" : "prompt template"} for the pi-para PARA knowledge base system.
121
-
122
- ## Target: "${target.name}"
123
- **Type**: ${target.type}${descriptionSection}
124
-
125
- ## Target-Specific Quality Criteria
126
-
127
- ${typeGuidance}
128
- ${constraintSection}
129
- ## Current Wiki Context
130
-
131
- ${context || "No additional context available."}
132
-
133
- ## Candidate to Evaluate
134
-
135
- <candidate>
136
- ${candidate}
137
- </candidate>
138
-
139
- ## Evaluation Instructions
140
-
141
- Score this candidate on exactly 5 dimensions, each from 0.0 to 1.0:
142
-
143
- 1. **structure** (0.20): Organization, clear sections, appropriate length, logical grouping
144
- 2. **clarity** (0.20): Unambiguous instructions, no contradictions, consistent interpretation
145
- 3. **completeness** (0.20): Covers all necessary aspects, no gaps, all constraints present
146
- 4. **error-prevention** (0.20): Guards against common mistakes, includes safety rails
147
- 5. **actionability** (0.20): Concrete rules to follow, clear decision criteria, not vague
148
-
149
- Respond with ONLY this JSON structure (no markdown, no extra text):
150
- {
151
- "dimensions": {
152
- "structure": { "score": 0.0, "feedback": "..." },
153
- "clarity": { "score": 0.0, "feedback": "..." },
154
- "completeness": { "score": 0.0, "feedback": "..." },
155
- "error-prevention": { "score": 0.0, "feedback": "..." },
156
- "actionability": { "score": 0.0, "feedback": "..." }
157
- },
158
- "constraintViolations": [],
159
- "overallFeedback": "2-3 sentence summary"
160
- }`;
161
- }
162
- // -- JSON parsing ------------------------------------------------------------
163
- function extractJSON(raw) {
164
- const trimmed = raw.trim();
165
- try {
166
- return JSON.parse(trimmed);
167
- }
168
- catch { /* continue */ }
169
- const codeBlockMatch = trimmed.match(/```(?:json)?\s*\n?([\s\S]*?)```/);
170
- if (codeBlockMatch) {
171
- try {
172
- return JSON.parse(codeBlockMatch[1].trim());
173
- }
174
- catch { /* continue */ }
175
- }
176
- const firstBrace = trimmed.indexOf("{");
177
- const lastBrace = trimmed.lastIndexOf("}");
178
- if (firstBrace !== -1 && lastBrace > firstBrace) {
179
- try {
180
- return JSON.parse(trimmed.slice(firstBrace, lastBrace + 1));
181
- }
182
- catch { /* continue */ }
183
- }
184
- return null;
185
- }
186
- function parseJudgeResponse(raw) {
187
- const json = extractJSON(raw);
188
- if (!json) {
189
- return {
190
- success: false,
191
- dimensions: createZeroDimensions("Failed to parse LLM judge response as JSON"),
192
- constraintViolations: [],
193
- overallFeedback: `[gepa] Parse error: could not extract JSON from response.`,
194
- };
195
- }
196
- const dims = json.dimensions;
197
- const dimensions = [];
198
- for (const dim of EVAL_DIMENSIONS) {
199
- const dimData = dims?.[dim.name];
200
- const score = typeof dimData?.score === "number"
201
- ? clamp(dimData.score, 0, 1)
202
- : 0;
203
- const feedback = typeof dimData?.feedback === "string"
204
- ? dimData.feedback
205
- : "No feedback provided";
206
- dimensions.push({
207
- name: dim.name,
208
- score,
209
- feedback,
210
- weight: dim.weight,
211
- });
212
- }
213
- const violations = Array.isArray(json.constraintViolations)
214
- ? json.constraintViolations.filter((v) => typeof v === "string")
215
- : [];
216
- const overallFeedback = typeof json.overallFeedback === "string"
217
- ? json.overallFeedback
218
- : "No overall feedback provided";
219
- return { success: true, dimensions, constraintViolations: violations, overallFeedback };
220
- }
221
- // -- Constraint checking -----------------------------------------------------
222
- function checkConstraintViolations(candidate, constraints) {
223
- if (constraints.length === 0)
224
- return [];
225
- const lowerCandidate = candidate.toLowerCase();
226
- const missing = [];
227
- for (const constraint of constraints) {
228
- const keyTerms = extractKeyTerms(constraint);
229
- const hasAnyTerm = keyTerms.some((term) => lowerCandidate.includes(term.toLowerCase()));
230
- if (!hasAnyTerm) {
231
- missing.push(constraint);
232
- }
233
- }
234
- return missing;
235
- }
236
- function extractKeyTerms(constraint) {
237
- const fillerWords = new Set([
238
- "must", "should", "include", "have", "contain", "mention",
239
- "use", "provide", "specify", "ensure", "be", "the", "a", "an",
240
- "and", "or", "for", "with", "about", "that", "this", "is", "are",
241
- "in", "of", "to", "not", "no", "any", "all", "each",
242
- ]);
243
- return constraint
244
- .toLowerCase()
245
- .replace(/[^a-z0-9\s-]/g, "")
246
- .split(/\s+/)
247
- .filter((w) => w.length > 2 && !fillerWords.has(w));
248
- }
249
- // -- Helpers -----------------------------------------------------------------
250
- function clamp(value, min, max) {
251
- return Math.max(min, Math.min(max, value));
252
- }
253
- function createZeroDimensions(feedback) {
254
- return EVAL_DIMENSIONS.map((dim) => ({
255
- name: dim.name,
256
- score: 0,
257
- feedback,
258
- weight: dim.weight,
259
- }));
260
- }
261
- function computeWeightedScore(dimensions) {
262
- let totalWeight = 0;
263
- let weightedSum = 0;
264
- for (const dim of dimensions) {
265
- weightedSum += dim.score * dim.weight;
266
- totalWeight += dim.weight;
267
- }
268
- if (totalWeight === 0)
269
- return 0;
270
- return weightedSum / totalWeight;
271
- }
272
- // -- Main evaluation function ------------------------------------------------
273
- /**
274
- * Evaluate a candidate prompt/skill using an LLM judge.
275
- */
276
- export async function evaluateCandidate(candidate, target, context, llm) {
277
- const evalPrompt = buildEvaluationPrompt(candidate, target, context);
278
- let rawResponse;
279
- try {
280
- rawResponse = await llm.complete(evalPrompt, JUDGE_SYSTEM_PROMPT);
281
- }
282
- catch (error) {
283
- const msg = error instanceof Error ? error.message : String(error);
284
- console.error(`[gepa] LLM judge call failed for target "${target.name}": ${msg}`);
285
- return {
286
- score: 0,
287
- dimensions: createZeroDimensions(`LLM judge error: ${msg}`),
288
- overallFeedback: `[gepa] Evaluation failed: ${msg}`,
289
- };
290
- }
291
- const parsed = parseJudgeResponse(rawResponse);
292
- if (!parsed.success) {
293
- console.warn(`[gepa] Failed to parse judge response for "${target.name}", using zero scores`);
294
- }
295
- let { dimensions } = parsed;
296
- let { overallFeedback } = parsed;
297
- // Check for constraint violations
298
- const hardViolations = checkConstraintViolations(candidate, target.constraints);
299
- const allViolationsArr = [...hardViolations, ...parsed.constraintViolations];
300
- const allViolations = Array.from(new Set(allViolationsArr));
301
- if (allViolations.length > 0) {
302
- const violationList = allViolations.join("; ");
303
- console.log(`[gepa] Constraint violations for "${target.name}": ${violationList} — capping score at ${CONSTRAINT_VIOLATION_CAP}`);
304
- dimensions = dimensions.map((dim) => ({
305
- ...dim,
306
- score: Math.min(dim.score, CONSTRAINT_VIOLATION_CAP),
307
- feedback: dim.score > CONSTRAINT_VIOLATION_CAP
308
- ? `${dim.feedback} [CAPPED: constraint violations]`
309
- : dim.feedback,
310
- }));
311
- overallFeedback = `${overallFeedback}\n\n⚠️ CONSTRAINT VIOLATIONS (score capped at ${CONSTRAINT_VIOLATION_CAP}): ${violationList}`;
312
- }
313
- const score = computeWeightedScore(dimensions);
314
- return { score, dimensions, overallFeedback };
315
- }
316
- export { buildEvaluationPrompt, extractJSON, parseJudgeResponse, checkConstraintViolations, computeWeightedScore, getTargetTypeGuidance, EVAL_DIMENSIONS, CONSTRAINT_VIOLATION_CAP, };
317
- //# sourceMappingURL=evaluator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/gepa/evaluator.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- /**
2
- * GEPA optimizer orchestrator — TypeScript side.
3
- *
4
- * 1. Extracts all prompt/tool/skill instruction texts from source
5
- * 2. Writes targets.json for the Python DSPy GEPA script
6
- * 3. Reads auth.json → passes API keys as env vars to uv subprocess
7
- * 4. Calls `uv run scripts/gepa/optimize.py`
8
- * 5. Reads results.json → saves optimized prompts to disk
9
- */
10
- interface GEPATarget {
11
- name: string;
12
- type: "prompt" | "tool" | "skill";
13
- content: string;
14
- sourceFile: string;
15
- }
16
- interface GEPAResult {
17
- target: string;
18
- status: "success" | "error";
19
- baseline_score?: number;
20
- optimized_score?: number;
21
- improvement_pct?: number;
22
- optimized_instruction?: string;
23
- original_instruction?: string;
24
- model?: string;
25
- auto?: string;
26
- error?: string;
27
- timestamp?: string;
28
- }
29
- interface GEPAOutput {
30
- results: GEPAResult[];
31
- model: string;
32
- auto: string;
33
- wiki_dir: string;
34
- timestamp: string;
35
- }
36
- export interface GEPAOptions {
37
- target?: string;
38
- /** Student model — runs the proxy (fast, cheap). */
39
- studentModel?: string;
40
- /** Teacher/reflection model — proposes mutations (smart, creative). */
41
- teacherModel?: string;
42
- /** Judge model — scores outputs (fast, cheap). Default: same as student. */
43
- judgeModel?: string;
44
- /** Shorthand: sets studentModel (backward compat with --model flag) */
45
- model?: string;
46
- /** Shorthand: sets teacherModel (backward compat with --reflection-model flag) */
47
- reflectionModel?: string;
48
- auto?: "light" | "medium" | "heavy";
49
- maxMetricCalls?: number;
50
- threads?: number;
51
- seed?: number;
52
- }
53
- export declare function extractTargets(packageRoot?: string): GEPATarget[];
54
- export declare function runGEPA(options?: GEPAOptions): Promise<GEPAOutput>;
55
- export declare function listOptimized(): {
56
- name: string;
57
- score: number;
58
- timestamp: string;
59
- model: string;
60
- }[];
61
- export declare function compareTarget(targetName: string): {
62
- original: string;
63
- optimized: string;
64
- } | null;
65
- export {};
66
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gepa/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,UAAU;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA4DD,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CA6CjE;AAyBD,wBAAsB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAoE5E;AAID,wBAAgB,aAAa,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAanG;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAOhG"}