pi-harness-runtime 1.1.77 → 1.1.78
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/package.json +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/architecture-generator/package.json +1 -1
- package/packages/auth/package.json +1 -1
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +1 -1
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +1 -1
- package/packages/config-capture/package.json +1 -1
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/package.json +1 -1
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/jev-judge/README.md +61 -0
- package/packages/jev-judge/dist/auto-continue.d.ts +92 -0
- package/packages/jev-judge/dist/auto-continue.d.ts.map +1 -0
- package/packages/jev-judge/dist/auto-continue.js +230 -0
- package/packages/jev-judge/dist/auto-continue.js.map +1 -0
- package/packages/jev-judge/dist/index.d.ts +22 -1
- package/packages/jev-judge/dist/index.d.ts.map +1 -1
- package/packages/jev-judge/dist/index.js +34 -26
- package/packages/jev-judge/dist/index.js.map +1 -1
- package/packages/jev-judge/package.json +1 -1
- package/packages/jev-judge/src/auto-continue.ts +317 -0
- package/packages/jev-judge/src/index.ts +43 -28
- package/packages/knowledge-graph/package.json +1 -1
- package/packages/knowledge-retrieval/package.json +1 -1
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/package.json +1 -1
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +1 -1
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +1 -1
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/quota-manager/package.json +1 -1
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-mcp-client/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/tencentdb-memory/package.json +1 -1
- package/packages/tencentdb-sync/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/write-review/package.json +1 -1
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Continue Judge - Agent decision making when user is unavailable
|
|
3
|
+
*
|
|
4
|
+
* Uses Jev to decide whether an agent should continue autonomously
|
|
5
|
+
* when waiting for user input that may not come.
|
|
6
|
+
*
|
|
7
|
+
* Scenario: Agent completes 2/5 tasks, asks "Continue?" User asleep.
|
|
8
|
+
* Jev decides: proceed, wait, or proceed with caution.
|
|
9
|
+
*/
|
|
10
|
+
import { JevJudge } from "./index.js";
|
|
11
|
+
/**
|
|
12
|
+
* Default configuration
|
|
13
|
+
*/
|
|
14
|
+
const DEFAULT_CONFIG = {
|
|
15
|
+
proceedThreshold: 0.7,
|
|
16
|
+
cautionThreshold: 0.5,
|
|
17
|
+
maxWaitMinutes: 30,
|
|
18
|
+
fallbackAction: "wait",
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Auto-Continue Judge
|
|
22
|
+
*
|
|
23
|
+
* Judges whether an agent should continue autonomously when user is unavailable.
|
|
24
|
+
* Integrates with pi-coding-agent hooks for automatic decision making.
|
|
25
|
+
*/
|
|
26
|
+
export class AutoContinueJudge {
|
|
27
|
+
jev;
|
|
28
|
+
config;
|
|
29
|
+
constructor(config) {
|
|
30
|
+
this.config = {
|
|
31
|
+
...DEFAULT_CONFIG,
|
|
32
|
+
...config,
|
|
33
|
+
};
|
|
34
|
+
this.jev = new JevJudge(config);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Judge whether to continue or wait
|
|
38
|
+
*/
|
|
39
|
+
async decide(taskState) {
|
|
40
|
+
const state = this.buildState(taskState);
|
|
41
|
+
try {
|
|
42
|
+
const result = await this.jev.evaluate(state, {
|
|
43
|
+
shouldProceed: {
|
|
44
|
+
type: "noul",
|
|
45
|
+
instructions: "The agent should continue with remaining tasks without waiting for user confirmation. Consider: task completion %, risk of wrong action, time sensitivity, user unavailability.",
|
|
46
|
+
},
|
|
47
|
+
riskLevel: {
|
|
48
|
+
type: "score",
|
|
49
|
+
instructions: "Risk level if agent proceeds without user confirmation",
|
|
50
|
+
min: 1,
|
|
51
|
+
max: 5,
|
|
52
|
+
},
|
|
53
|
+
urgency: {
|
|
54
|
+
type: "choice",
|
|
55
|
+
instructions: "How urgent are the remaining tasks?",
|
|
56
|
+
options: ["critical", "high", "normal", "low"],
|
|
57
|
+
},
|
|
58
|
+
estimatedImpact: {
|
|
59
|
+
type: "choice",
|
|
60
|
+
instructions: "Impact if the agent makes wrong decision by proceeding",
|
|
61
|
+
options: ["minimal", "moderate", "significant", "major"],
|
|
62
|
+
},
|
|
63
|
+
waitBenefit: {
|
|
64
|
+
type: "noul",
|
|
65
|
+
instructions: "Would waiting for user confirmation significantly improve the outcome or prevent a serious mistake?",
|
|
66
|
+
},
|
|
67
|
+
taskComplexity: {
|
|
68
|
+
type: "score",
|
|
69
|
+
instructions: "How complex are the remaining tasks compared to completed ones?",
|
|
70
|
+
min: 1,
|
|
71
|
+
max: 5,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
return this.buildDecision(result, taskState);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.error("[AutoContinueJudge] Jev call failed:", error);
|
|
78
|
+
return this.fallbackDecision(taskState);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Quick decision - simple yes/no to proceed
|
|
83
|
+
*/
|
|
84
|
+
async shouldContinue(taskState) {
|
|
85
|
+
const result = await this.decide(taskState);
|
|
86
|
+
return {
|
|
87
|
+
shouldContinue: result.action !== "wait",
|
|
88
|
+
probability: result.probability,
|
|
89
|
+
confidence: result.confidence,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Build state for Jev
|
|
94
|
+
*/
|
|
95
|
+
buildState(taskState) {
|
|
96
|
+
const completionPercent = Math.round((taskState.completedTasks.length / taskState.totalTasks) * 100);
|
|
97
|
+
const state = {
|
|
98
|
+
task_summary: {
|
|
99
|
+
completed: taskState.completedTasks.length,
|
|
100
|
+
remaining: taskState.remainingTasks.length,
|
|
101
|
+
total: taskState.totalTasks,
|
|
102
|
+
completion_percent: completionPercent,
|
|
103
|
+
completed_list: taskState.completedTasks,
|
|
104
|
+
remaining_list: taskState.remainingTasks,
|
|
105
|
+
},
|
|
106
|
+
user_status: {
|
|
107
|
+
responded: taskState.userResponded,
|
|
108
|
+
wait_time_minutes: taskState.waitTimeMinutes,
|
|
109
|
+
last_activity: taskState.lastUserActivity?.toISOString() ?? "unknown",
|
|
110
|
+
session_duration_minutes: Math.round((Date.now() - taskState.sessionStartTime.getTime()) / 60000),
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
return JSON.stringify(state, null, 2);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Build decision from Jev result
|
|
117
|
+
*/
|
|
118
|
+
buildDecision(result, _taskState) {
|
|
119
|
+
const shouldProceed = result.decisions.shouldProceed;
|
|
120
|
+
const probability = shouldProceed.probability ?? 0.5;
|
|
121
|
+
const riskDecision = result.decisions.riskLevel;
|
|
122
|
+
const riskScore = riskDecision?.response?.score ?? 3;
|
|
123
|
+
const riskLevel = this.scoreToRiskLevel(riskScore);
|
|
124
|
+
const urgencyDecision = result.decisions.urgency;
|
|
125
|
+
const urgency = urgencyDecision?.response?.choice ?? "normal";
|
|
126
|
+
const impactDecision = result.decisions.estimatedImpact;
|
|
127
|
+
const estimatedImpact = impactDecision?.response?.choice ?? "moderate";
|
|
128
|
+
const waitBenefit = result.decisions.waitBenefit?.response?.noul ?? 0.5;
|
|
129
|
+
// Determine action based on thresholds
|
|
130
|
+
let action;
|
|
131
|
+
let confidence;
|
|
132
|
+
let reasoning;
|
|
133
|
+
if (probability >= this.config.proceedThreshold) {
|
|
134
|
+
action = "proceed";
|
|
135
|
+
confidence = probability > 0.85 ? "high" : "medium";
|
|
136
|
+
reasoning = `High confidence to proceed (${(probability * 100).toFixed(0)}%)`;
|
|
137
|
+
}
|
|
138
|
+
else if (probability >= this.config.cautionThreshold && riskScore <= 3) {
|
|
139
|
+
action = "proceed_with_caution";
|
|
140
|
+
confidence = "medium";
|
|
141
|
+
reasoning = `Proceed with caution (${(probability * 100).toFixed(0)}%), risk level ${riskScore}/5`;
|
|
142
|
+
}
|
|
143
|
+
else if (waitBenefit < 0.3 && riskScore <= 2) {
|
|
144
|
+
action = "proceed_with_caution";
|
|
145
|
+
confidence = "low";
|
|
146
|
+
reasoning = `Low wait benefit, proceeding despite lower confidence`;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
action = "wait";
|
|
150
|
+
confidence = "high";
|
|
151
|
+
reasoning = `Waiting recommended (${((1 - probability) * 100).toFixed(0)}% confidence to wait)`;
|
|
152
|
+
}
|
|
153
|
+
// Calculate recommended wait time
|
|
154
|
+
let waitRecommendation;
|
|
155
|
+
if (action === "wait") {
|
|
156
|
+
waitRecommendation = Math.min(this.config.maxWaitMinutes, Math.round(this.config.maxWaitMinutes * (1 - probability)));
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
action,
|
|
160
|
+
probability,
|
|
161
|
+
riskLevel,
|
|
162
|
+
reasoning,
|
|
163
|
+
urgency,
|
|
164
|
+
estimatedImpact,
|
|
165
|
+
confidence,
|
|
166
|
+
waitRecommendation,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Convert score to risk level
|
|
171
|
+
*/
|
|
172
|
+
scoreToRiskLevel(score) {
|
|
173
|
+
if (score <= 1.5)
|
|
174
|
+
return "minimal";
|
|
175
|
+
if (score <= 2.5)
|
|
176
|
+
return "low";
|
|
177
|
+
if (score <= 3.5)
|
|
178
|
+
return "medium";
|
|
179
|
+
if (score <= 4.5)
|
|
180
|
+
return "high";
|
|
181
|
+
return "critical";
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Fallback decision when Jev fails
|
|
185
|
+
*/
|
|
186
|
+
fallbackDecision(taskState) {
|
|
187
|
+
const completionPercent = taskState.completedTasks.length / taskState.totalTasks;
|
|
188
|
+
// If >80% done and waited >15 min, proceed with caution
|
|
189
|
+
if (completionPercent >= 0.8 && taskState.waitTimeMinutes >= 15) {
|
|
190
|
+
return {
|
|
191
|
+
action: "proceed_with_caution",
|
|
192
|
+
probability: 0.6,
|
|
193
|
+
riskLevel: "medium",
|
|
194
|
+
reasoning: "Fallback: high completion, waited long time",
|
|
195
|
+
urgency: "normal",
|
|
196
|
+
estimatedImpact: "moderate",
|
|
197
|
+
confidence: "low",
|
|
198
|
+
waitRecommendation: 10,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
return {
|
|
202
|
+
action: this.config.fallbackAction,
|
|
203
|
+
probability: 0.5,
|
|
204
|
+
riskLevel: "medium",
|
|
205
|
+
reasoning: "Fallback: Jev unavailable, using default behavior",
|
|
206
|
+
urgency: "normal",
|
|
207
|
+
estimatedImpact: "moderate",
|
|
208
|
+
confidence: "low",
|
|
209
|
+
waitRecommendation: this.config.maxWaitMinutes,
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Helper: Create task state from todo list
|
|
215
|
+
*/
|
|
216
|
+
export function createTaskState(completedTasks, remainingTasks, lastUserActivity, sessionStartTime) {
|
|
217
|
+
const totalTasks = completedTasks.length + remainingTasks.length;
|
|
218
|
+
return {
|
|
219
|
+
completedTasks,
|
|
220
|
+
remainingTasks,
|
|
221
|
+
totalTasks,
|
|
222
|
+
waitTimeMinutes: lastUserActivity
|
|
223
|
+
? Math.round((Date.now() - lastUserActivity.getTime()) / 60000)
|
|
224
|
+
: 0,
|
|
225
|
+
userResponded: false,
|
|
226
|
+
lastUserActivity,
|
|
227
|
+
sessionStartTime: sessionStartTime ?? new Date(),
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=auto-continue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-continue.js","sourceRoot":"","sources":["../src/auto-continue.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,26 @@
|
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
29
29
|
import type { JevJudgeConfig, JevQuestions, JevEvaluationResult, ThresholdDecision } from "./types.js";
|
|
30
|
+
/**
|
|
31
|
+
* Environment variable keys for API keys
|
|
32
|
+
*/
|
|
33
|
+
export declare const ENV_KEYS: {
|
|
34
|
+
readonly TYPESAFE_API_KEY: "TYPESAFE_API_KEY";
|
|
35
|
+
readonly OPENROUTER_API_KEY: "OPENROUTER_API_KEY";
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Get API key from environment
|
|
39
|
+
* Priority: TYPESAFE_API_KEY > OPENROUTER_API_KEY
|
|
40
|
+
*/
|
|
41
|
+
export declare function getApiKeyFromEnv(): string | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Check if Jev API key is available
|
|
44
|
+
*/
|
|
45
|
+
export declare function hasJevApiKey(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Create JevJudge with auto-detected API key from environment
|
|
48
|
+
*/
|
|
49
|
+
export declare function createJevJudge(config?: Partial<JevJudgeConfig>): JevJudge;
|
|
30
50
|
/**
|
|
31
51
|
* JevJudge - Main class for making structured decisions with Jev
|
|
32
52
|
*/
|
|
@@ -66,7 +86,6 @@ export declare class JevJudge {
|
|
|
66
86
|
batchEvaluate<T extends string>(states: (string | object)[], questions: JevQuestions<T>, options?: {
|
|
67
87
|
concurrency?: number;
|
|
68
88
|
}): Promise<JevEvaluationResult<T>[]>;
|
|
69
|
-
private buildResponseSchema;
|
|
70
89
|
private buildDecision;
|
|
71
90
|
private getConfidence;
|
|
72
91
|
}
|
|
@@ -74,4 +93,6 @@ export * from "./types.js";
|
|
|
74
93
|
export { E2EJudge } from "./e2e-judge.js";
|
|
75
94
|
export { FlakyDetector } from "./flaky-detector.js";
|
|
76
95
|
export { DecisionEngine } from "./decision-engine.js";
|
|
96
|
+
export { AutoContinueJudge, createTaskState } from "./auto-continue.js";
|
|
97
|
+
export type { TaskState, AutoContinueDecision, AutoContinueConfig } from "./auto-continue.js";
|
|
77
98
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EACV,cAAc,EAEd,YAAY,EAGZ,mBAAmB,EAInB,iBAAiB,EAClB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EACV,cAAc,EAEd,YAAY,EAGZ,mBAAmB,EAInB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAMpB;;GAEG;AACH,eAAO,MAAM,QAAQ;aACnB,gBAAgB,EAAE,kBAAkB;aACpC,kBAAkB,EAAE,oBAAoB;CAChC,CAAC;AAEX;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAKrD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,QAAQ,CAQzE;AAYD;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAA2B;IAEzC,YAAY,MAAM,EAAE,cAAc,EAWjC;IAED;;;;;;OAMG;IACG,QAAQ,CAAC,CAAC,SAAS,MAAM,EAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CA6FjC;IAED;;OAEG;IACG,IAAI,CACR,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;KAAE,CAAC,CAUlE;IAED;;OAEG;IACG,MAAM,CAAC,CAAC,SAAS,MAAM,EAC3B,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,EAAE,GACX,OAAO,CAAC;QAAE,MAAM,EAAE,CAAC,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAU5C;IAED;;OAEG;IACH,iBAAiB,CACf,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAqC,GAC/C,iBAAiB,CASnB;IAED;;OAEG;IACG,aAAa,CAAC,CAAC,SAAS,MAAM,EAClC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,EAC3B,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAC1B,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO,GACrC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAkBnC;IAOD,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,aAAa;CAStB;AAGD,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,YAAY,EAAE,SAAS,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -29,6 +29,37 @@
|
|
|
29
29
|
// OpenAI SDK (OpenRouter is OpenAI-compatible)
|
|
30
30
|
// @ts-ignore - openai is installed at workspace root
|
|
31
31
|
import OpenAI from "openai";
|
|
32
|
+
/**
|
|
33
|
+
* Environment variable keys for API keys
|
|
34
|
+
*/
|
|
35
|
+
export const ENV_KEYS = {
|
|
36
|
+
TYPESAFE_API_KEY: "TYPESAFE_API_KEY",
|
|
37
|
+
OPENROUTER_API_KEY: "OPENROUTER_API_KEY",
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Get API key from environment
|
|
41
|
+
* Priority: TYPESAFE_API_KEY > OPENROUTER_API_KEY
|
|
42
|
+
*/
|
|
43
|
+
export function getApiKeyFromEnv() {
|
|
44
|
+
return (process.env[ENV_KEYS.TYPESAFE_API_KEY] ||
|
|
45
|
+
process.env[ENV_KEYS.OPENROUTER_API_KEY]);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Check if Jev API key is available
|
|
49
|
+
*/
|
|
50
|
+
export function hasJevApiKey() {
|
|
51
|
+
return !!getApiKeyFromEnv();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Create JevJudge with auto-detected API key from environment
|
|
55
|
+
*/
|
|
56
|
+
export function createJevJudge(config) {
|
|
57
|
+
const apiKey = getApiKeyFromEnv();
|
|
58
|
+
if (!apiKey) {
|
|
59
|
+
throw new Error(`Jev API key not found. Set ${ENV_KEYS.TYPESAFE_API_KEY} or ${ENV_KEYS.OPENROUTER_API_KEY} in environment.`);
|
|
60
|
+
}
|
|
61
|
+
return new JevJudge({ apiKey, ...config });
|
|
62
|
+
}
|
|
32
63
|
/**
|
|
33
64
|
* Default configuration
|
|
34
65
|
*/
|
|
@@ -110,7 +141,6 @@ Respond with a JSON object mapping each question ID to its answer.`,
|
|
|
110
141
|
],
|
|
111
142
|
response_format: {
|
|
112
143
|
type: "json_object",
|
|
113
|
-
schema: this.buildResponseSchema(questions),
|
|
114
144
|
},
|
|
115
145
|
temperature: 0.1, // Low temperature for consistent decisions
|
|
116
146
|
});
|
|
@@ -202,31 +232,8 @@ Respond with a JSON object mapping each question ID to its answer.`,
|
|
|
202
232
|
return results;
|
|
203
233
|
}
|
|
204
234
|
// Private helpers
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
for (const [id, question] of Object.entries(questions)) {
|
|
208
|
-
switch (question.type) {
|
|
209
|
-
case "noul":
|
|
210
|
-
schema[id] = { type: "object", properties: {
|
|
211
|
-
noul: { type: "number", minimum: 0, maximum: 1 }
|
|
212
|
-
}, required: ["noul"] };
|
|
213
|
-
break;
|
|
214
|
-
case "choice":
|
|
215
|
-
schema[id] = { type: "object", properties: {
|
|
216
|
-
choice: { type: "string", enum: question.options },
|
|
217
|
-
confidence: { type: "number", minimum: 0, maximum: 1 }
|
|
218
|
-
}, required: ["choice"] };
|
|
219
|
-
break;
|
|
220
|
-
case "score":
|
|
221
|
-
schema[id] = { type: "object", properties: {
|
|
222
|
-
score: { type: "number" },
|
|
223
|
-
confidence: { type: "number", minimum: 0, maximum: 1 }
|
|
224
|
-
}, required: ["score"] };
|
|
225
|
-
break;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
return { type: "object", properties: schema, additionalProperties: false };
|
|
229
|
-
}
|
|
235
|
+
// Note: Response schema removed - using json_object mode without strict schema
|
|
236
|
+
// This allows Jev to return flexible responses
|
|
230
237
|
buildDecision(questionId, question, response) {
|
|
231
238
|
let probability;
|
|
232
239
|
let confidence;
|
|
@@ -268,4 +275,5 @@ export * from "./types.js";
|
|
|
268
275
|
export { E2EJudge } from "./e2e-judge.js";
|
|
269
276
|
export { FlakyDetector } from "./flaky-detector.js";
|
|
270
277
|
export { DecisionEngine } from "./decision-engine.js";
|
|
278
|
+
export { AutoContinueJudge, createTaskState } from "./auto-continue.js";
|
|
271
279
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|