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.
- package/ARCHITECTURE.md +160 -0
- package/CHANGELOG.md +51 -0
- package/CONFIGURATION.md +243 -0
- package/README.md +140 -237
- package/SETUP.md +196 -112
- package/STRUCTURE.md +140 -0
- package/package.json +86 -18
- package/scripts/build-assets.mjs +29 -0
- package/scripts/install.ps1 +55 -0
- package/scripts/install.sh +63 -0
- package/scripts/smoke-install.mjs +63 -0
- package/skills/para/SKILL.md +1 -1
- package/skills/setup/SKILL.md +1 -1
- package/src/atomic-write.ts +17 -0
- package/src/capture.ts +4 -4
- package/src/cli-legacy.ts +43 -0
- package/src/cli.ts +133 -28
- package/src/commands.ts +203 -243
- package/src/config.ts +355 -0
- package/src/context.ts +29 -14
- package/src/credentials.ts +100 -0
- package/src/daemon.ts +1 -1
- package/src/doctor.ts +209 -0
- package/src/gepa/index.ts +1 -1
- package/src/index.ts +119 -40
- package/src/maintainer.ts +4 -4
- package/src/model-resolver.ts +96 -0
- package/src/paths.ts +48 -0
- package/src/processor.ts +4 -4
- package/src/qmd-providers.ts +63 -0
- package/src/query.ts +15 -1
- package/src/repair.ts +49 -0
- package/src/scheduler/controls.ts +125 -0
- package/src/scheduler/index.ts +210 -0
- package/src/scheduler/leases.ts +98 -0
- package/src/scheduler/session-capture.ts +146 -0
- package/src/scheduler/state.ts +304 -0
- package/src/session-tools.ts +1 -1
- package/src/settings.ts +126 -0
- package/src/setup.ts +116 -0
- package/src/status.ts +115 -0
- package/src/store.ts +116 -31
- package/src/summarize.ts +72 -16
- package/src/templates/prompts.ts +1 -1
- package/src/tools.ts +280 -90
- package/src/wiki-tool-guidance.ts +84 -0
- package/src/wiki.ts +98 -26
- package/dist/capture.d.ts +0 -34
- package/dist/capture.d.ts.map +0 -1
- package/dist/capture.js +0 -461
- package/dist/capture.js.map +0 -1
- package/dist/cli.d.ts +0 -15
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -405
- package/dist/cli.js.map +0 -1
- package/dist/commands.d.ts +0 -15
- package/dist/commands.d.ts.map +0 -1
- package/dist/commands.js +0 -786
- package/dist/commands.js.map +0 -1
- package/dist/context.d.ts +0 -61
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -289
- package/dist/context.js.map +0 -1
- package/dist/daemon.d.ts +0 -49
- package/dist/daemon.d.ts.map +0 -1
- package/dist/daemon.js +0 -226
- package/dist/daemon.js.map +0 -1
- package/dist/frontmatter.d.ts +0 -59
- package/dist/frontmatter.d.ts.map +0 -1
- package/dist/frontmatter.js +0 -170
- package/dist/frontmatter.js.map +0 -1
- package/dist/gepa/dataset.d.ts +0 -36
- package/dist/gepa/dataset.d.ts.map +0 -1
- package/dist/gepa/dataset.js +0 -148
- package/dist/gepa/dataset.js.map +0 -1
- package/dist/gepa/evaluator.d.ts +0 -51
- package/dist/gepa/evaluator.d.ts.map +0 -1
- package/dist/gepa/evaluator.js +0 -317
- package/dist/gepa/evaluator.js.map +0 -1
- package/dist/gepa/index.d.ts +0 -66
- package/dist/gepa/index.d.ts.map +0 -1
- package/dist/gepa/index.js +0 -240
- package/dist/gepa/index.js.map +0 -1
- package/dist/gepa/llm.d.ts +0 -35
- package/dist/gepa/llm.d.ts.map +0 -1
- package/dist/gepa/llm.js +0 -268
- package/dist/gepa/llm.js.map +0 -1
- package/dist/gepa/optimized/capture-prompt.txt +0 -65
- package/dist/gepa/optimizer.d.ts +0 -29
- package/dist/gepa/optimizer.d.ts.map +0 -1
- package/dist/gepa/optimizer.js +0 -249
- package/dist/gepa/optimizer.js.map +0 -1
- package/dist/gepa/targets.d.ts +0 -39
- package/dist/gepa/targets.d.ts.map +0 -1
- package/dist/gepa/targets.js +0 -326
- package/dist/gepa/targets.js.map +0 -1
- package/dist/gepa/types.d.ts +0 -168
- package/dist/gepa/types.d.ts.map +0 -1
- package/dist/gepa/types.js +0 -124
- package/dist/gepa/types.js.map +0 -1
- package/dist/index.d.ts +0 -21
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -294
- package/dist/index.js.map +0 -1
- package/dist/ingest.d.ts +0 -88
- package/dist/ingest.d.ts.map +0 -1
- package/dist/ingest.js +0 -105
- package/dist/ingest.js.map +0 -1
- package/dist/link-discovery.d.ts +0 -40
- package/dist/link-discovery.d.ts.map +0 -1
- package/dist/link-discovery.js +0 -122
- package/dist/link-discovery.js.map +0 -1
- package/dist/link-utils.d.ts +0 -30
- package/dist/link-utils.d.ts.map +0 -1
- package/dist/link-utils.js +0 -145
- package/dist/link-utils.js.map +0 -1
- package/dist/lint.d.ts +0 -39
- package/dist/lint.d.ts.map +0 -1
- package/dist/lint.js +0 -827
- package/dist/lint.js.map +0 -1
- package/dist/maintainer.d.ts +0 -24
- package/dist/maintainer.d.ts.map +0 -1
- package/dist/maintainer.js +0 -358
- package/dist/maintainer.js.map +0 -1
- package/dist/processor.d.ts +0 -14
- package/dist/processor.d.ts.map +0 -1
- package/dist/processor.js +0 -361
- package/dist/processor.js.map +0 -1
- package/dist/query.d.ts +0 -69
- package/dist/query.d.ts.map +0 -1
- package/dist/query.js +0 -107
- package/dist/query.js.map +0 -1
- package/dist/raw.d.ts +0 -57
- package/dist/raw.d.ts.map +0 -1
- package/dist/raw.js +0 -219
- package/dist/raw.js.map +0 -1
- package/dist/redact.d.ts +0 -21
- package/dist/redact.d.ts.map +0 -1
- package/dist/redact.js +0 -143
- package/dist/redact.js.map +0 -1
- package/dist/scope.d.ts +0 -54
- package/dist/scope.d.ts.map +0 -1
- package/dist/scope.js +0 -161
- package/dist/scope.js.map +0 -1
- package/dist/scripts/bulk-link-fix.d.ts +0 -9
- package/dist/scripts/bulk-link-fix.d.ts.map +0 -1
- package/dist/scripts/bulk-link-fix.js +0 -106
- package/dist/scripts/bulk-link-fix.js.map +0 -1
- package/dist/session-tools.d.ts +0 -33
- package/dist/session-tools.d.ts.map +0 -1
- package/dist/session-tools.js +0 -211
- package/dist/session-tools.js.map +0 -1
- package/dist/state.d.ts +0 -54
- package/dist/state.d.ts.map +0 -1
- package/dist/state.js +0 -176
- package/dist/state.js.map +0 -1
- package/dist/store.d.ts +0 -56
- package/dist/store.d.ts.map +0 -1
- package/dist/store.js +0 -227
- package/dist/store.js.map +0 -1
- package/dist/summarize.d.ts +0 -56
- package/dist/summarize.d.ts.map +0 -1
- package/dist/summarize.js +0 -231
- package/dist/summarize.js.map +0 -1
- package/dist/tag-registry.d.ts +0 -56
- package/dist/tag-registry.d.ts.map +0 -1
- package/dist/tag-registry.js +0 -146
- package/dist/tag-registry.js.map +0 -1
- package/dist/templates/prompts.d.ts +0 -63
- package/dist/templates/prompts.d.ts.map +0 -1
- package/dist/templates/prompts.js +0 -260
- package/dist/templates/prompts.js.map +0 -1
- package/dist/tools.d.ts +0 -26
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -1033
- package/dist/tools.js.map +0 -1
- package/dist/watcher.d.ts +0 -25
- package/dist/watcher.d.ts.map +0 -1
- package/dist/watcher.js +0 -84
- package/dist/watcher.js.map +0 -1
- package/dist/webui/client/dist/index.html +0 -1885
- package/dist/webui/server.d.ts +0 -31
- package/dist/webui/server.d.ts.map +0 -1
- package/dist/webui/server.js +0 -566
- package/dist/webui/server.js.map +0 -1
- package/dist/wiki.d.ts +0 -103
- package/dist/wiki.d.ts.map +0 -1
- package/dist/wiki.js +0 -428
- package/dist/wiki.js.map +0 -1
- package/scripts/gepa/__pycache__/dataset.cpython-313.pyc +0 -0
- package/scripts/gepa/__pycache__/lm_providers.cpython-313.pyc +0 -0
- package/scripts/gepa/__pycache__/metric.cpython-313.pyc +0 -0
- package/scripts/gepa/__pycache__/program.cpython-313.pyc +0 -0
- package/scripts/gepa/__pycache__/wiki_reader.cpython-313.pyc +0 -0
- package/scripts/gepa/uv.lock +0 -2241
package/dist/gepa/dataset.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dataset.js","sourceRoot":"","sources":["../../src/gepa/dataset.ts"],"names":[],"mappings":"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"}
|
package/dist/gepa/evaluator.d.ts
DELETED
|
@@ -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"}
|
package/dist/gepa/evaluator.js
DELETED
|
@@ -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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"}
|
package/dist/gepa/index.d.ts
DELETED
|
@@ -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
|
package/dist/gepa/index.d.ts.map
DELETED
|
@@ -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"}
|