@skybridge/vite-plugin 0.0.0-dev.fca7959 → 0.0.0-dev.ffdf126
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/dist/evals/index.d.ts +2 -2
- package/dist/evals/index.d.ts.map +1 -1
- package/dist/evals/matchers.d.ts +0 -12
- package/dist/evals/matchers.d.ts.map +1 -1
- package/dist/evals/matchers.js +0 -46
- package/dist/evals/matchers.js.map +1 -1
- package/dist/evals/types.d.ts +0 -11
- package/dist/evals/types.d.ts.map +1 -1
- package/package.json +3 -8
package/dist/evals/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export type { ChatAssertion, ChatMatchers
|
|
2
|
-
export type { ChatLike, ToolCall
|
|
1
|
+
export type { ChatAssertion, ChatMatchers } from "./matchers.js";
|
|
2
|
+
export type { ChatLike, ToolCall } from "./types.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evals/index.ts"],"names":[],"mappings":"AAAA,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evals/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/evals/matchers.d.ts
CHANGED
|
@@ -1,17 +1,6 @@
|
|
|
1
1
|
import "vitest";
|
|
2
|
-
import type { LanguageModel } from "ai";
|
|
3
2
|
import type { ToolInput, ToolNames } from "skybridge/server";
|
|
4
3
|
import type { ChatLike } from "./types.js";
|
|
5
|
-
/** Options for {@link ChatMatchers.toPassJudgment}. */
|
|
6
|
-
export interface JudgmentOptions {
|
|
7
|
-
/** Overrides the judge for this assertion. Defaults to the chat's model. */
|
|
8
|
-
model?: LanguageModel;
|
|
9
|
-
/**
|
|
10
|
-
* What the judge reads. `conversation` is every turn and tool call;
|
|
11
|
-
* `lastTurn` is only the final assistant message.
|
|
12
|
-
*/
|
|
13
|
-
scope?: "conversation" | "lastTurn";
|
|
14
|
-
}
|
|
15
4
|
/**
|
|
16
5
|
* Assertions about the tool calls a conversation produced. Kept off vitest's
|
|
17
6
|
* global `Matchers` so they never appear on unrelated `expect()` calls, and so
|
|
@@ -23,7 +12,6 @@ export interface ChatMatchers<App> {
|
|
|
23
12
|
toNeverHaveCalledTool<Name extends ToolNames<App>>(name: Name): void;
|
|
24
13
|
toHaveFailedToolCall<Name extends ToolNames<App>>(name: Name): void;
|
|
25
14
|
toHaveSaid(text: string | RegExp): void;
|
|
26
|
-
toPassJudgment(criteria: string, options?: JudgmentOptions): Promise<void>;
|
|
27
15
|
}
|
|
28
16
|
export interface ChatAssertion<App> extends ChatMatchers<App> {
|
|
29
17
|
not: ChatMatchers<App>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/evals/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"matchers.d.ts","sourceRoot":"","sources":["../../src/evals/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;AAChB,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,YAAY,CAAC;AAErD;;;;GAIG;AACH,MAAM,WAAW,YAAY,CAAC,GAAG;IAC/B,oBAAoB,CAAC,IAAI,SAAS,SAAS,CAAC,GAAG,CAAC,EAC9C,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GACnC,IAAI,CAAC;IACR,oBAAoB,CAAC,IAAI,SAAS,SAAS,CAAC,GAAG,CAAC,EAC9C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAClC,IAAI,CAAC;IACR,qBAAqB,CAAC,IAAI,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IACrE,oBAAoB,CAAC,IAAI,SAAS,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IACpE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,aAAa,CAAC,GAAG,CAAE,SAAQ,YAAY,CAAC,GAAG,CAAC;IAC3D,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;CACxB;AAED,OAAO,QAAQ,QAAQ,CAAC;IACtB,UAAU,YAAY;QACpB,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;KACpD;CACF"}
|
package/dist/evals/matchers.js
CHANGED
|
@@ -30,34 +30,6 @@ function spoken(chat) {
|
|
|
30
30
|
.map((turn, index) => ` ${index + 1}. ${collapse(turn)}`)
|
|
31
31
|
.join("\n");
|
|
32
32
|
}
|
|
33
|
-
const JUDGE_SYSTEM = `You grade a conversation between a user and an AI assistant against criteria written by the developer of the assistant's app.
|
|
34
|
-
Judge the criteria and nothing else: style, verbosity and tone are irrelevant unless the criteria mention them.
|
|
35
|
-
Answer with a verdict and a short reasoning that names the evidence you based it on, quoting the conversation where it helps.`;
|
|
36
|
-
function transcriptFor(chat, scope) {
|
|
37
|
-
const entries = scope === "lastTurn"
|
|
38
|
-
? chat.transcript.filter((entry) => entry.role === "assistant").slice(-1)
|
|
39
|
-
: chat.transcript;
|
|
40
|
-
if (entries.length === 0) {
|
|
41
|
-
return "(the assistant said nothing)";
|
|
42
|
-
}
|
|
43
|
-
return entries.map((entry) => `${entry.role}: ${entry.text}`).join("\n");
|
|
44
|
-
}
|
|
45
|
-
async function askJudge(model, criteria, conversation) {
|
|
46
|
-
const { generateObject, jsonSchema } = await import("ai");
|
|
47
|
-
const { object } = await generateObject({
|
|
48
|
-
model,
|
|
49
|
-
temperature: 0,
|
|
50
|
-
system: JUDGE_SYSTEM,
|
|
51
|
-
prompt: `Criteria:\n${criteria}\n\nConversation:\n${conversation}`,
|
|
52
|
-
schema: jsonSchema({
|
|
53
|
-
type: "object",
|
|
54
|
-
properties: { pass: { type: "boolean" }, reasoning: { type: "string" } },
|
|
55
|
-
required: ["pass", "reasoning"],
|
|
56
|
-
additionalProperties: false,
|
|
57
|
-
}),
|
|
58
|
-
});
|
|
59
|
-
return object;
|
|
60
|
-
}
|
|
61
33
|
function report(chat, summary) {
|
|
62
34
|
return `${summary}
|
|
63
35
|
|
|
@@ -114,24 +86,6 @@ What the assistant actually said:
|
|
|
114
86
|
${spoken(received)}`,
|
|
115
87
|
};
|
|
116
88
|
},
|
|
117
|
-
async toPassJudgment(received, criteria, options) {
|
|
118
|
-
const subject = options?.scope === "lastTurn" ? "last turn" : "conversation";
|
|
119
|
-
let verdict;
|
|
120
|
-
try {
|
|
121
|
-
verdict = await askJudge(options?.model ?? received.model, criteria, transcriptFor(received, options?.scope));
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
throw new Error(`judge unavailable: ${error instanceof Error ? error.message : String(error)}`);
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
pass: verdict.pass,
|
|
128
|
-
message: () => `expected the ${subject} ${verdict.pass ? "not " : ""}to pass judgment:
|
|
129
|
-
"${criteria}"
|
|
130
|
-
|
|
131
|
-
judge: ${verdict.pass ? "PASS" : "FAIL"}
|
|
132
|
-
${verdict.reasoning}`,
|
|
133
|
-
};
|
|
134
|
-
},
|
|
135
89
|
toNeverHaveCalledTool(received, name) {
|
|
136
90
|
const matching = attemptedCalls(received, name);
|
|
137
91
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/evals/matchers.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"matchers.js","sourceRoot":"","sources":["../../src/evals/matchers.ts"],"names":[],"mappings":"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"}
|
package/dist/evals/types.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { LanguageModel } from "ai";
|
|
2
1
|
import type { ToolInput, ToolNames } from "skybridge/server";
|
|
3
2
|
import type { EvalsOptions } from "../plugin.js";
|
|
4
3
|
/**
|
|
@@ -13,22 +12,12 @@ export type ToolCall<App> = {
|
|
|
13
12
|
failed?: string;
|
|
14
13
|
};
|
|
15
14
|
}[ToolNames<App>];
|
|
16
|
-
/**
|
|
17
|
-
* One line of the conversation, in the order it happened. `tool` entries carry
|
|
18
|
-
* the call's arguments and, when it did not go through, the server's reason.
|
|
19
|
-
*/
|
|
20
|
-
export interface TranscriptEntry {
|
|
21
|
-
role: "user" | "assistant" | "tool";
|
|
22
|
-
text: string;
|
|
23
|
-
}
|
|
24
15
|
/** The part of a conversation the matchers assert on. */
|
|
25
16
|
export interface ChatLike<App> {
|
|
26
17
|
/** Type-only anchor so `expect.chat` infers `App` from the conversation. */
|
|
27
18
|
readonly $app?: App;
|
|
28
19
|
readonly toolCalls: ToolCall<App>[];
|
|
29
20
|
readonly assistantTurns: string[];
|
|
30
|
-
readonly transcript: TranscriptEntry[];
|
|
31
|
-
readonly model: LanguageModel;
|
|
32
21
|
}
|
|
33
22
|
declare module "vitest" {
|
|
34
23
|
interface ProvidedContext {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/evals/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/evals/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,CAAC,GAAG,IAAI;KACzB,IAAI,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG;QACxB,IAAI,EAAE,IAAI,CAAC;QACX,SAAS,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;CACF,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAElB,yDAAyD;AACzD,MAAM,WAAW,QAAQ,CAAC,GAAG;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;CACnC;AAED,OAAO,QAAQ,QAAQ,CAAC;IACtB,UAAU,eAAe;QACvB,cAAc,EAAE,YAAY,GAAG,SAAS,CAAC;KAC1C;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skybridge/vite-plugin",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.ffdf126",
|
|
4
4
|
"description": "The Skybridge Vite plugin: view discovery, data-llm transforms, and eval wiring",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"type": "module",
|
|
@@ -27,8 +27,7 @@
|
|
|
27
27
|
"peerDependencies": {
|
|
28
28
|
"skybridge": "^2.0.0",
|
|
29
29
|
"vite": ">=7.3.1",
|
|
30
|
-
"vitest": ">=4.1.0"
|
|
31
|
-
"ai": "^5.0.0"
|
|
30
|
+
"vitest": ">=4.1.0"
|
|
32
31
|
},
|
|
33
32
|
"devDependencies": {
|
|
34
33
|
"@types/babel__core": "^7.20.5",
|
|
@@ -36,8 +35,7 @@
|
|
|
36
35
|
"typescript": "^5.9.3",
|
|
37
36
|
"vite": "^8.1.5",
|
|
38
37
|
"vitest": "^4.1.10",
|
|
39
|
-
"
|
|
40
|
-
"skybridge": "0.0.0-dev.fca7959"
|
|
38
|
+
"skybridge": "0.0.0-dev.ffdf126"
|
|
41
39
|
},
|
|
42
40
|
"engines": {
|
|
43
41
|
"node": ">=22.23.1"
|
|
@@ -45,9 +43,6 @@
|
|
|
45
43
|
"peerDependenciesMeta": {
|
|
46
44
|
"vitest": {
|
|
47
45
|
"optional": true
|
|
48
|
-
},
|
|
49
|
-
"ai": {
|
|
50
|
-
"optional": true
|
|
51
46
|
}
|
|
52
47
|
},
|
|
53
48
|
"scripts": {
|