@virtualkitchenco/multiverse-sdk 0.0.14 → 0.0.16
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/README.md +242 -0
- package/dist/client.d.ts +7 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js.map +1 -1
- package/dist/multiverse.d.ts +32 -18
- package/dist/multiverse.d.ts.map +1 -1
- package/dist/multiverse.js +136 -125
- package/dist/multiverse.js.map +1 -1
- package/package.json +3 -3
package/README.md
ADDED
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
# @virtualkitchenco/multiverse-sdk
|
|
2
|
+
|
|
3
|
+
Simulation testing for AI agents. Test your agent against realistic scenarios with simulated users and automated quality evaluation — no real APIs needed.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @virtualkitchenco/multiverse-sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { multiverse, wrap } from '@virtualkitchenco/multiverse-sdk';
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
|
|
17
|
+
// 1. Configure
|
|
18
|
+
multiverse.configure({
|
|
19
|
+
llm: { provider: 'anthropic', model: 'claude-sonnet-4-20250514' },
|
|
20
|
+
baseUrl: 'https://your-multiverse-server.com',
|
|
21
|
+
apiKey: process.env.MULTIVERSE_API_KEY,
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
// 2. Define output schemas
|
|
25
|
+
const SearchResultSchema = z.object({
|
|
26
|
+
flights: z.array(z.object({
|
|
27
|
+
id: z.string(),
|
|
28
|
+
from: z.string(),
|
|
29
|
+
to: z.string(),
|
|
30
|
+
price: z.number(),
|
|
31
|
+
airline: z.string(),
|
|
32
|
+
})),
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const BookingSchema = z.object({
|
|
36
|
+
bookingId: z.string(),
|
|
37
|
+
flightId: z.string(),
|
|
38
|
+
passengerName: z.string(),
|
|
39
|
+
status: z.enum(['confirmed', 'pending', 'failed']),
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// 3. Wrap your tools
|
|
43
|
+
const searchFlights = wrap(searchFlightsTool, {
|
|
44
|
+
output: SearchResultSchema,
|
|
45
|
+
effects: (output) =>
|
|
46
|
+
output.flights.map((f) => ({
|
|
47
|
+
operation: 'create' as const,
|
|
48
|
+
collection: 'flights',
|
|
49
|
+
id: f.id,
|
|
50
|
+
data: f,
|
|
51
|
+
})),
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const bookFlight = wrap(bookFlightTool, {
|
|
55
|
+
output: BookingSchema,
|
|
56
|
+
effects: (output) => [
|
|
57
|
+
{ operation: 'create', collection: 'bookings', id: output.bookingId, data: output },
|
|
58
|
+
],
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// 4. Define and run tests
|
|
62
|
+
const test = multiverse.describe({
|
|
63
|
+
name: 'flight-booking-agent',
|
|
64
|
+
task: 'Book flights for passengers',
|
|
65
|
+
agent: runAgent,
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const results = await test.run({
|
|
69
|
+
simulateUser: true,
|
|
70
|
+
success: (world) => world.getCollection('bookings').size > 0,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
console.log(`${results.passRate}% pass`);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## API
|
|
77
|
+
|
|
78
|
+
### `multiverse.configure(config)`
|
|
79
|
+
|
|
80
|
+
Initialize the SDK. Call once at startup.
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
multiverse.configure({
|
|
84
|
+
llm: {
|
|
85
|
+
provider: 'anthropic',
|
|
86
|
+
model: 'claude-sonnet-4-20250514',
|
|
87
|
+
},
|
|
88
|
+
baseUrl: 'https://your-multiverse-server.com',
|
|
89
|
+
apiKey: process.env.MULTIVERSE_API_KEY,
|
|
90
|
+
});
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### `wrap(tool, config)`
|
|
94
|
+
|
|
95
|
+
Wrap a LangChain tool for simulation testing.
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
import { wrap } from '@virtualkitchenco/multiverse-sdk';
|
|
99
|
+
|
|
100
|
+
const myTool = wrap(langchainTool, {
|
|
101
|
+
output: OutputSchema,
|
|
102
|
+
effects: (output, world) => [
|
|
103
|
+
{ operation: 'create', collection: 'orders', id: output.id, data: output },
|
|
104
|
+
],
|
|
105
|
+
invariants: [
|
|
106
|
+
{ collection: 'inventory', field: 'quantity', condition: 'gte', value: 0 },
|
|
107
|
+
],
|
|
108
|
+
});
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
| Option | Type | Description |
|
|
112
|
+
|--------|------|-------------|
|
|
113
|
+
| `output` | `ZodSchema` | Output schema for responses |
|
|
114
|
+
| `effects` | `(output, world) => Effect[]` | Declare state changes from output |
|
|
115
|
+
| `invariants` | `Invariant[]` | Constraints to enforce |
|
|
116
|
+
| `input` | `ZodSchema` | Input schema (auto-extracted from LangChain tools) |
|
|
117
|
+
| `name` | `string` | Tool name (auto-extracted from LangChain tools) |
|
|
118
|
+
| `description` | `string` | Tool description (auto-extracted from LangChain tools) |
|
|
119
|
+
|
|
120
|
+
### `multiverse.describe(options)`
|
|
121
|
+
|
|
122
|
+
Define a test. Returns an object with `generateScenarios()` and `run()` methods.
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
const test = multiverse.describe({
|
|
126
|
+
name: 'my-agent',
|
|
127
|
+
task: 'Complete the task for the user',
|
|
128
|
+
agent: runAgent,
|
|
129
|
+
});
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Agent function signature:**
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
async function runAgent(context: {
|
|
136
|
+
userMessage: string;
|
|
137
|
+
runId: string;
|
|
138
|
+
}): Promise<string>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### `test.generateScenarios(options)`
|
|
142
|
+
|
|
143
|
+
Generate test scenarios upfront for inspection or reuse.
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
const scenarios = await test.generateScenarios({ count: 10 });
|
|
147
|
+
|
|
148
|
+
// With typed variables for programmatic assertions
|
|
149
|
+
const scenarios = await test.generateScenarios({
|
|
150
|
+
count: 5,
|
|
151
|
+
variables: z.object({
|
|
152
|
+
expectedBookings: z.number().describe(
|
|
153
|
+
'Total bookings that should be created (e.g. 2 passengers round-trip = 4)'
|
|
154
|
+
),
|
|
155
|
+
}),
|
|
156
|
+
});
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### `test.run(options)`
|
|
160
|
+
|
|
161
|
+
Run tests against the agent.
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
const results = await test.run({
|
|
165
|
+
success: (world, trace, scenario) => {
|
|
166
|
+
return world.getCollection('bookings').size === scenario.variables.expectedBookings;
|
|
167
|
+
},
|
|
168
|
+
scenarios, // Pre-generated or auto-generated
|
|
169
|
+
scenarioCount: 5, // Auto-generate count (ignored if scenarios provided)
|
|
170
|
+
trialsPerScenario: 4,
|
|
171
|
+
simulateUser: true,
|
|
172
|
+
maxTurns: 20,
|
|
173
|
+
qualityThreshold: 70,
|
|
174
|
+
concurrency: 8,
|
|
175
|
+
onProgress: (p) => console.log(`${p.completed}/${p.total}`),
|
|
176
|
+
ci: {
|
|
177
|
+
postToPR: true, // Install the Multiverse GitHub App to enable
|
|
178
|
+
printReport: true,
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Results:**
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
interface TestResults {
|
|
187
|
+
passRate: number;
|
|
188
|
+
runs: RunResult[];
|
|
189
|
+
duration: number;
|
|
190
|
+
url?: string;
|
|
191
|
+
report?: ReportResponse;
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## LangChain Integration
|
|
196
|
+
|
|
197
|
+
`wrap()` works with any LangChain tool. It extracts `name`, `description`, and `schema` automatically:
|
|
198
|
+
|
|
199
|
+
```typescript
|
|
200
|
+
import { ChatAnthropic } from '@langchain/anthropic';
|
|
201
|
+
import { tool } from '@langchain/core/tools';
|
|
202
|
+
import { createReactAgent } from '@langchain/langgraph/prebuilt';
|
|
203
|
+
import { multiverse, wrap } from '@virtualkitchenco/multiverse-sdk';
|
|
204
|
+
|
|
205
|
+
// Your LangChain tools
|
|
206
|
+
const searchFlightsTool = tool(
|
|
207
|
+
async ({ from, to, date }) => { /* real implementation */ },
|
|
208
|
+
{
|
|
209
|
+
name: 'searchFlights',
|
|
210
|
+
description: 'Search for available flights',
|
|
211
|
+
schema: z.object({
|
|
212
|
+
from: z.string().describe('Departure airport code'),
|
|
213
|
+
to: z.string().describe('Arrival airport code'),
|
|
214
|
+
date: z.string().describe('Departure date (YYYY-MM-DD)'),
|
|
215
|
+
}),
|
|
216
|
+
}
|
|
217
|
+
);
|
|
218
|
+
|
|
219
|
+
// Wrap for simulation
|
|
220
|
+
const searchFlights = wrap(searchFlightsTool, {
|
|
221
|
+
output: SearchResultSchema,
|
|
222
|
+
effects: (output) =>
|
|
223
|
+
output.flights.map((f) => ({
|
|
224
|
+
operation: 'create' as const,
|
|
225
|
+
collection: 'flights',
|
|
226
|
+
id: f.id,
|
|
227
|
+
data: f,
|
|
228
|
+
})),
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
// Use wrapped tools directly in your agent
|
|
232
|
+
const agent = createReactAgent({
|
|
233
|
+
llm: new ChatAnthropic({ model: 'claude-sonnet-4-20250514' }),
|
|
234
|
+
tools: [searchFlights, bookFlight],
|
|
235
|
+
});
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Wrapped tools are drop-in replacements — they preserve the original tool's type, name, and schema.
|
|
239
|
+
|
|
240
|
+
## License
|
|
241
|
+
|
|
242
|
+
Proprietary. All rights reserved.
|
package/dist/client.d.ts
CHANGED
|
@@ -13,15 +13,19 @@ export interface CreateSessionRequest {
|
|
|
13
13
|
tools: Array<{
|
|
14
14
|
name: string;
|
|
15
15
|
description: string;
|
|
16
|
+
inputSchema?: Record<string, unknown>;
|
|
16
17
|
}>;
|
|
17
18
|
scenarioConfig?: {
|
|
18
19
|
count?: number;
|
|
19
20
|
};
|
|
20
|
-
seed?: Record<string, Record<string, unknown>>;
|
|
21
21
|
llmConfig: {
|
|
22
22
|
provider: string;
|
|
23
23
|
model?: string;
|
|
24
24
|
};
|
|
25
|
+
/** Pre-generated scenarios — skips server-side generation */
|
|
26
|
+
scenarios?: Scenario[];
|
|
27
|
+
/** JSON schema for variables to generate per scenario */
|
|
28
|
+
variablesSchema?: Record<string, unknown>;
|
|
25
29
|
}
|
|
26
30
|
export interface SimulateRequest {
|
|
27
31
|
tool: string;
|
|
@@ -43,6 +47,8 @@ export interface SimulateResponse {
|
|
|
43
47
|
data?: Record<string, unknown>;
|
|
44
48
|
}>;
|
|
45
49
|
worldState: Record<string, unknown>;
|
|
50
|
+
/** True when output is a planned failure (bad_data/empty) — skip effects */
|
|
51
|
+
isFailure?: boolean;
|
|
46
52
|
analysis?: {
|
|
47
53
|
action: string;
|
|
48
54
|
matches: string[];
|
|
@@ -52,8 +58,6 @@ export interface SimulateResponse {
|
|
|
52
58
|
}
|
|
53
59
|
export interface ReportResponse {
|
|
54
60
|
markdown: string;
|
|
55
|
-
summary: string;
|
|
56
|
-
tier: 'S' | 'A' | 'B' | 'C' | 'D';
|
|
57
61
|
passRate: number;
|
|
58
62
|
analysis: {
|
|
59
63
|
summary: string;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/G,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/multiverse.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* 2. Orchestrates test runs via API
|
|
7
7
|
* 3. Runs user's agent code and success function locally
|
|
8
8
|
*/
|
|
9
|
-
import type { Criterion, ToolDef, Infer, Schema, TestResults, LLMConfig,
|
|
9
|
+
import type { Criterion, Scenario, Trace, ToolDef, Infer, Schema, TestResults, LLMConfig, WorldStateAccessor, EffectsFn, Invariant } from '@virtualkitchenco/multiverse-types';
|
|
10
10
|
interface MultiverseConfig {
|
|
11
11
|
/** Base URL of the Multiverse API server (required) */
|
|
12
12
|
baseUrl: string;
|
|
@@ -19,10 +19,6 @@ interface MultiverseConfig {
|
|
|
19
19
|
* Configure Multiverse
|
|
20
20
|
*/
|
|
21
21
|
declare function configure(options: MultiverseConfig): void;
|
|
22
|
-
/**
|
|
23
|
-
* Seed initial world state
|
|
24
|
-
*/
|
|
25
|
-
declare function seed(data: Record<string, Record<string, unknown>>): void;
|
|
26
22
|
/**
|
|
27
23
|
* Check if configured
|
|
28
24
|
*/
|
|
@@ -75,21 +71,25 @@ export interface AgentContext {
|
|
|
75
71
|
}
|
|
76
72
|
type AgentFn = (context: AgentContext) => Promise<unknown>;
|
|
77
73
|
export type { Criterion };
|
|
78
|
-
interface
|
|
74
|
+
interface DescribeOptions {
|
|
79
75
|
/** Agent name for grouping in the dashboard */
|
|
80
76
|
name: string;
|
|
77
|
+
/** Task description — what the agent is being tested on */
|
|
78
|
+
task: string;
|
|
81
79
|
/** Agent function to test. Must be safe for parallel execution — use context.runId to scope conversation memory. */
|
|
82
80
|
agent: AgentFn;
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
}
|
|
82
|
+
interface RunOptions<S extends Scenario = Scenario> {
|
|
85
83
|
/** Success function - returns true if task completed */
|
|
86
|
-
success:
|
|
84
|
+
success: (world: WorldStateAccessor, trace: Trace, scenario: S) => boolean;
|
|
85
|
+
/** Pre-generated scenarios. If provided, scenarioCount is ignored. */
|
|
86
|
+
scenarios?: S[];
|
|
87
87
|
/** Custom scoring criteria. Defaults to communication, error_handling, efficiency, accuracy. */
|
|
88
88
|
criteria?: Criterion[];
|
|
89
|
-
/** Number of scenarios to generate */
|
|
89
|
+
/** Number of scenarios to generate (ignored if scenarios are provided) */
|
|
90
90
|
scenarioCount?: number;
|
|
91
|
-
/**
|
|
92
|
-
|
|
91
|
+
/** Trials per scenario */
|
|
92
|
+
trialsPerScenario?: number;
|
|
93
93
|
/** Enable multi-turn user simulation */
|
|
94
94
|
simulateUser?: boolean;
|
|
95
95
|
/** Max conversation turns */
|
|
@@ -114,16 +114,30 @@ interface TestOptions {
|
|
|
114
114
|
printReport?: boolean;
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
117
|
+
interface GenerateScenariosOptions {
|
|
118
|
+
/** Number of scenarios to generate */
|
|
119
|
+
count?: number;
|
|
120
|
+
}
|
|
121
|
+
declare function describe(options: DescribeOptions): {
|
|
122
|
+
/**
|
|
123
|
+
* Generate scenarios upfront for inspection, editing, or reuse.
|
|
124
|
+
* If a `variables` schema is provided, each scenario includes a typed `variables` object.
|
|
125
|
+
*/
|
|
126
|
+
generateScenarios: <TVar extends Schema>(opts: GenerateScenariosOptions & {
|
|
127
|
+
variables: TVar;
|
|
128
|
+
}) => Promise<Array<Scenario & {
|
|
129
|
+
variables: Infer<TVar>;
|
|
130
|
+
}>>;
|
|
131
|
+
/**
|
|
132
|
+
* Run test scenarios against the agent.
|
|
133
|
+
*/
|
|
134
|
+
run: <S extends Scenario>(opts: RunOptions<S>) => Promise<TestResults>;
|
|
135
|
+
};
|
|
121
136
|
export { tool };
|
|
122
137
|
export declare const multiverse: {
|
|
123
138
|
configure: typeof configure;
|
|
124
|
-
seed: typeof seed;
|
|
125
139
|
tool: typeof tool;
|
|
126
|
-
|
|
140
|
+
describe: typeof describe;
|
|
127
141
|
getTools: typeof getTools;
|
|
128
142
|
clearTools: typeof clearTools;
|
|
129
143
|
isConfigured: typeof isConfigured;
|
package/dist/multiverse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiverse.d.ts","sourceRoot":"","sources":["../src/multiverse.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EACV,SAAS,
|
|
1
|
+
{"version":3,"file":"multiverse.d.ts","sourceRoot":"","sources":["../src/multiverse.ts"],"names":[],"mappings":"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"}
|
package/dist/multiverse.js
CHANGED
|
@@ -12,6 +12,14 @@ import { MultiverseClient } from './client.js';
|
|
|
12
12
|
import { detectCI } from './ci.js';
|
|
13
13
|
import { postReportToPR } from './github.js';
|
|
14
14
|
// ============================================================================
|
|
15
|
+
// Utilities
|
|
16
|
+
// ============================================================================
|
|
17
|
+
function createDeferred() {
|
|
18
|
+
let resolve;
|
|
19
|
+
const promise = new Promise(r => { resolve = r; });
|
|
20
|
+
return { promise, resolve };
|
|
21
|
+
}
|
|
22
|
+
// ============================================================================
|
|
15
23
|
// Schema Serialization (Zod -> JSON)
|
|
16
24
|
// ============================================================================
|
|
17
25
|
/**
|
|
@@ -98,7 +106,6 @@ function serializeZodType(zodType) {
|
|
|
98
106
|
}
|
|
99
107
|
let config = null;
|
|
100
108
|
let client = null;
|
|
101
|
-
let seedData = null;
|
|
102
109
|
/**
|
|
103
110
|
* Configure Multiverse
|
|
104
111
|
*/
|
|
@@ -112,12 +119,6 @@ function configure(options) {
|
|
|
112
119
|
apiKey: options.apiKey,
|
|
113
120
|
});
|
|
114
121
|
}
|
|
115
|
-
/**
|
|
116
|
-
* Seed initial world state
|
|
117
|
-
*/
|
|
118
|
-
function seed(data) {
|
|
119
|
-
seedData = data;
|
|
120
|
-
}
|
|
121
122
|
/**
|
|
122
123
|
* Check if configured
|
|
123
124
|
*/
|
|
@@ -125,6 +126,17 @@ function isConfigured() {
|
|
|
125
126
|
return config !== null && client !== null;
|
|
126
127
|
}
|
|
127
128
|
const sessionStorage = new AsyncLocalStorage();
|
|
129
|
+
/**
|
|
130
|
+
* Per-run lock to serialize tool calls within a simulation run.
|
|
131
|
+
*
|
|
132
|
+
* LLM agents (e.g. LangChain ReAct) can fire multiple tool calls in parallel.
|
|
133
|
+
* Without serialization, call N+1's simulation runs against stale world state
|
|
134
|
+
* because call N's effects haven't been synced yet. This causes duplicate IDs
|
|
135
|
+
* and lost mutations.
|
|
136
|
+
*
|
|
137
|
+
* Keyed by `${apiSessionId}:${apiRunId}` — each run gets its own chain.
|
|
138
|
+
*/
|
|
139
|
+
const runLocks = new Map();
|
|
128
140
|
function getCurrentSession() {
|
|
129
141
|
return sessionStorage.getStore() || null;
|
|
130
142
|
}
|
|
@@ -172,66 +184,67 @@ function tool(def) {
|
|
|
172
184
|
if (!session || !client) {
|
|
173
185
|
return fn(toolInput);
|
|
174
186
|
}
|
|
175
|
-
//
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
if (mutations.length > 0) {
|
|
231
|
-
await client.applyMutations(session.apiSessionId, session.apiRunId, mutations, name);
|
|
187
|
+
// Serialize tool calls within the same run.
|
|
188
|
+
// This ensures simulate → effects → applyMutations completes atomically
|
|
189
|
+
// before the next tool call starts, so each simulation sees up-to-date world state.
|
|
190
|
+
const lockKey = `${session.apiSessionId}:${session.apiRunId}`;
|
|
191
|
+
const prev = runLocks.get(lockKey) ?? Promise.resolve();
|
|
192
|
+
const { promise, resolve } = createDeferred();
|
|
193
|
+
runLocks.set(lockKey, promise);
|
|
194
|
+
// Wait for previous tool call in this run to finish
|
|
195
|
+
await prev;
|
|
196
|
+
try {
|
|
197
|
+
// Call the API to simulate
|
|
198
|
+
const result = await client.simulate(session.apiSessionId, session.apiRunId, {
|
|
199
|
+
tool: name,
|
|
200
|
+
input: toolInput,
|
|
201
|
+
description,
|
|
202
|
+
inputSchema: serializeSchema(input),
|
|
203
|
+
outputSchema: serializeSchema(output),
|
|
204
|
+
hasClientEffects: !!effects,
|
|
205
|
+
});
|
|
206
|
+
// Compute mutations from effects function (if defined) and send to server
|
|
207
|
+
// Skip effects for failure responses (bad_data/empty) — they don't match the output schema
|
|
208
|
+
if (effects && !result.isFailure) {
|
|
209
|
+
const worldState = result.worldState;
|
|
210
|
+
const worldAccessor = {
|
|
211
|
+
getCollection: (collName) => {
|
|
212
|
+
const coll = worldState[collName];
|
|
213
|
+
if (!coll)
|
|
214
|
+
return new Map();
|
|
215
|
+
return new Map(Object.entries(coll).map(([id, entity]) => [
|
|
216
|
+
id,
|
|
217
|
+
entity,
|
|
218
|
+
]));
|
|
219
|
+
},
|
|
220
|
+
getEntity: (collection, id) => {
|
|
221
|
+
const coll = worldState[collection];
|
|
222
|
+
if (!coll || !coll[id])
|
|
223
|
+
return undefined;
|
|
224
|
+
return coll[id];
|
|
225
|
+
},
|
|
226
|
+
hasEntity: (collection, id) => {
|
|
227
|
+
const coll = worldState[collection];
|
|
228
|
+
return coll ? id in coll : false;
|
|
229
|
+
},
|
|
230
|
+
getCollectionNames: () => Object.keys(worldState),
|
|
231
|
+
};
|
|
232
|
+
const computed = effects(result.output, worldAccessor);
|
|
233
|
+
const mutations = computed.map(e => ({
|
|
234
|
+
operation: e.operation,
|
|
235
|
+
collection: e.collection,
|
|
236
|
+
id: e.id,
|
|
237
|
+
data: e.data,
|
|
238
|
+
}));
|
|
239
|
+
if (mutations.length > 0) {
|
|
240
|
+
await client.applyMutations(session.apiSessionId, session.apiRunId, mutations, name);
|
|
241
|
+
}
|
|
232
242
|
}
|
|
243
|
+
return result.output;
|
|
244
|
+
}
|
|
245
|
+
finally {
|
|
246
|
+
resolve();
|
|
233
247
|
}
|
|
234
|
-
return result.output;
|
|
235
248
|
};
|
|
236
249
|
}
|
|
237
250
|
/**
|
|
@@ -252,45 +265,78 @@ const DEFAULT_CRITERIA = [
|
|
|
252
265
|
{ name: 'efficiency', description: 'Completes the task efficiently without unnecessary steps' },
|
|
253
266
|
{ name: 'accuracy', description: 'Does not hallucinate or fabricate information' },
|
|
254
267
|
];
|
|
255
|
-
|
|
256
|
-
* Run tests against an agent
|
|
257
|
-
*/
|
|
258
|
-
async function test(options) {
|
|
268
|
+
async function generateScenariosInternal(task, opts) {
|
|
259
269
|
if (!config || !client) {
|
|
260
270
|
throw new Error('Multiverse not configured. Call multiverse.configure() first.');
|
|
261
271
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
272
|
+
const count = opts?.count ?? 5;
|
|
273
|
+
const variables = opts?.variables;
|
|
274
|
+
const toolDefs = Array.from(registeredTools.values()).map(t => ({
|
|
275
|
+
name: t.name,
|
|
276
|
+
description: t.description,
|
|
277
|
+
inputSchema: serializeSchema(t.input),
|
|
278
|
+
}));
|
|
279
|
+
const variablesSchema = serializeSchema(variables);
|
|
280
|
+
const { scenarios } = await client.createSession({
|
|
281
|
+
task,
|
|
282
|
+
tools: toolDefs,
|
|
283
|
+
scenarioConfig: { count },
|
|
284
|
+
llmConfig: config.llm,
|
|
285
|
+
variablesSchema,
|
|
286
|
+
});
|
|
287
|
+
return scenarios;
|
|
288
|
+
}
|
|
289
|
+
function describe(options) {
|
|
290
|
+
const { name, task, agent } = options;
|
|
291
|
+
return {
|
|
292
|
+
/**
|
|
293
|
+
* Generate scenarios upfront for inspection, editing, or reuse.
|
|
294
|
+
* If a `variables` schema is provided, each scenario includes a typed `variables` object.
|
|
295
|
+
*/
|
|
296
|
+
generateScenarios: (opts) => generateScenariosInternal(task, opts),
|
|
297
|
+
/**
|
|
298
|
+
* Run test scenarios against the agent.
|
|
299
|
+
*/
|
|
300
|
+
run: (opts) => {
|
|
301
|
+
return runTest(name, task, agent, opts);
|
|
302
|
+
},
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
// ============================================================================
|
|
306
|
+
// Internal Test Runner
|
|
307
|
+
// ============================================================================
|
|
308
|
+
async function runTest(name, task, agent, options) {
|
|
309
|
+
if (!config || !client) {
|
|
310
|
+
throw new Error('Multiverse not configured. Call multiverse.configure() first.');
|
|
267
311
|
}
|
|
268
|
-
const {
|
|
312
|
+
const { success: successFn, criteria = DEFAULT_CRITERIA, scenarioCount = 5, trialsPerScenario = 1, simulateUser = false, maxTurns = 10, qualityThreshold = 70, onProgress, } = options;
|
|
269
313
|
const testId = nanoid(10);
|
|
270
314
|
const startTime = Date.now();
|
|
271
315
|
// Get tool definitions for API
|
|
272
316
|
const toolDefs = Array.from(registeredTools.values()).map(t => ({
|
|
273
317
|
name: t.name,
|
|
274
318
|
description: t.description,
|
|
319
|
+
inputSchema: serializeSchema(t.input),
|
|
275
320
|
}));
|
|
276
321
|
// Create session via API
|
|
322
|
+
// If scenarios are provided, pass them directly (server skips generation)
|
|
277
323
|
const { sessionId, scenarios } = await client.createSession({
|
|
278
324
|
task,
|
|
279
325
|
tools: toolDefs,
|
|
280
326
|
scenarioConfig: { count: scenarioCount },
|
|
281
|
-
seed: seedData || undefined,
|
|
282
327
|
llmConfig: config.llm,
|
|
328
|
+
scenarios: options.scenarios,
|
|
283
329
|
});
|
|
284
330
|
// Build run configs
|
|
331
|
+
const typedScenarios = scenarios;
|
|
285
332
|
const runConfigs = [];
|
|
286
|
-
for (const scenario of
|
|
287
|
-
for (let i = 0; i <
|
|
333
|
+
for (const scenario of typedScenarios) {
|
|
334
|
+
for (let i = 0; i < trialsPerScenario; i++) {
|
|
288
335
|
runConfigs.push({ scenario, runIndex: i });
|
|
289
336
|
}
|
|
290
337
|
}
|
|
291
338
|
const totalRuns = runConfigs.length;
|
|
292
339
|
let completed = 0;
|
|
293
|
-
// Execute a single run (never throws — returns a failed result on error)
|
|
294
340
|
async function executeRun(runConfig) {
|
|
295
341
|
const { scenario, runIndex } = runConfig;
|
|
296
342
|
const runStartTime = Date.now();
|
|
@@ -350,9 +396,12 @@ async function test(options) {
|
|
|
350
396
|
}
|
|
351
397
|
});
|
|
352
398
|
const { worldState, trace } = await client.getState(sessionId, runId);
|
|
399
|
+
// Clean up per-run lock after getState to ensure no tool calls
|
|
400
|
+
// can race with the final state fetch
|
|
401
|
+
runLocks.delete(`${sessionId}:${runId}`);
|
|
353
402
|
const worldAccessor = {
|
|
354
|
-
getCollection: (
|
|
355
|
-
const collection = worldState[
|
|
403
|
+
getCollection: (collName) => {
|
|
404
|
+
const collection = worldState[collName];
|
|
356
405
|
if (!collection)
|
|
357
406
|
return new Map();
|
|
358
407
|
return new Map(Object.entries(collection));
|
|
@@ -369,7 +418,7 @@ async function test(options) {
|
|
|
369
418
|
},
|
|
370
419
|
getCollectionNames: () => Object.keys(worldState),
|
|
371
420
|
};
|
|
372
|
-
const taskCompleted = agentError === null && successFn(worldAccessor, trace);
|
|
421
|
+
const taskCompleted = agentError === null && successFn(worldAccessor, trace, scenario);
|
|
373
422
|
const quality = await client.judge(sessionId, runId, taskCompleted, criteria);
|
|
374
423
|
const passed = taskCompleted && quality.score >= qualityThreshold && agentError === null;
|
|
375
424
|
completed++;
|
|
@@ -385,8 +434,7 @@ async function test(options) {
|
|
|
385
434
|
duration: Date.now() - runStartTime,
|
|
386
435
|
};
|
|
387
436
|
}
|
|
388
|
-
// Execute runs with a concurrency pool
|
|
389
|
-
// Each worker pulls the next run when it finishes, so no idle slots.
|
|
437
|
+
// Execute runs with a concurrency pool
|
|
390
438
|
const concurrency = options.concurrency ?? 8;
|
|
391
439
|
const results = [];
|
|
392
440
|
let nextIndex = 0;
|
|
@@ -400,15 +448,14 @@ async function test(options) {
|
|
|
400
448
|
await Promise.all(workers);
|
|
401
449
|
// Aggregate results
|
|
402
450
|
const passedCount = results.filter(r => r.passed).length;
|
|
403
|
-
// Find weak spots
|
|
404
451
|
const scenarioResults = new Map();
|
|
405
452
|
for (const result of results) {
|
|
406
|
-
const
|
|
407
|
-
const current = scenarioResults.get(
|
|
453
|
+
const sName = result.scenario.name;
|
|
454
|
+
const current = scenarioResults.get(sName) || { passed: 0, total: 0 };
|
|
408
455
|
current.total++;
|
|
409
456
|
if (result.passed)
|
|
410
457
|
current.passed++;
|
|
411
|
-
scenarioResults.set(
|
|
458
|
+
scenarioResults.set(sName, current);
|
|
412
459
|
}
|
|
413
460
|
const weakSpots = Array.from(scenarioResults.entries())
|
|
414
461
|
.map(([scenario, data]) => ({
|
|
@@ -428,7 +475,6 @@ async function test(options) {
|
|
|
428
475
|
url: `${config.baseUrl}/tests/${testId}`,
|
|
429
476
|
};
|
|
430
477
|
// Sync results to server for dashboard
|
|
431
|
-
// Serialize runs (remove non-serializable worldState accessor)
|
|
432
478
|
const serializedRuns = results.map(r => ({
|
|
433
479
|
id: r.id,
|
|
434
480
|
runId: `${testId}-${r.scenario.name}-${r.id}`,
|
|
@@ -457,42 +503,27 @@ async function test(options) {
|
|
|
457
503
|
// CI Integration
|
|
458
504
|
const ciContext = detectCI();
|
|
459
505
|
const ciOptions = options.ci || {};
|
|
460
|
-
// Fetch report from server (server does LLM analysis)
|
|
461
506
|
let markdown;
|
|
462
|
-
let summary;
|
|
463
|
-
let tier;
|
|
464
507
|
if (options.skipReport) {
|
|
465
508
|
markdown = generateFallbackReport(testResults);
|
|
466
|
-
summary = `Multiverse: ${passedCount}/${results.length} tests passed (${testResults.passRate}%)`;
|
|
467
|
-
tier = calculateTier(testResults.passRate);
|
|
468
509
|
}
|
|
469
510
|
else {
|
|
470
511
|
try {
|
|
471
512
|
const report = await client.fetchReport(testId, config.llm);
|
|
472
513
|
markdown = report.markdown;
|
|
473
|
-
summary = report.summary;
|
|
474
|
-
tier = report.tier;
|
|
475
514
|
}
|
|
476
515
|
catch (err) {
|
|
477
516
|
console.warn('Failed to fetch report from server:', err);
|
|
478
517
|
markdown = generateFallbackReport(testResults);
|
|
479
|
-
summary = `Multiverse: ${passedCount}/${results.length} tests passed (${testResults.passRate}%)`;
|
|
480
|
-
tier = calculateTier(testResults.passRate);
|
|
481
518
|
}
|
|
482
519
|
}
|
|
483
|
-
// Add markdown and CI info to results
|
|
484
520
|
const enhancedResults = {
|
|
485
521
|
...testResults,
|
|
486
522
|
markdown,
|
|
487
|
-
summary,
|
|
488
|
-
tier,
|
|
489
|
-
ci: ciContext,
|
|
490
523
|
};
|
|
491
|
-
// Print report if requested or in CI
|
|
492
524
|
if (ciOptions.printReport || ciContext.isCI) {
|
|
493
525
|
console.log('\n' + markdown + '\n');
|
|
494
526
|
}
|
|
495
|
-
// Post to PR if in CI with PR context (via multiverse-bot)
|
|
496
527
|
if (ciOptions.postToPR !== false && ciContext.isCI && ciContext.isPR) {
|
|
497
528
|
const result = await postReportToPR(markdown, ciContext, config.baseUrl, config.apiKey);
|
|
498
529
|
if (result.posted) {
|
|
@@ -504,24 +535,6 @@ async function test(options) {
|
|
|
504
535
|
}
|
|
505
536
|
return enhancedResults;
|
|
506
537
|
}
|
|
507
|
-
/**
|
|
508
|
-
* Calculate tier from pass rate
|
|
509
|
-
* Note: Intentionally duplicated from core to avoid SDK depending on core
|
|
510
|
-
*/
|
|
511
|
-
function calculateTier(passRate) {
|
|
512
|
-
if (passRate >= 95)
|
|
513
|
-
return 'S';
|
|
514
|
-
if (passRate >= 85)
|
|
515
|
-
return 'A';
|
|
516
|
-
if (passRate >= 70)
|
|
517
|
-
return 'B';
|
|
518
|
-
if (passRate >= 50)
|
|
519
|
-
return 'C';
|
|
520
|
-
return 'D';
|
|
521
|
-
}
|
|
522
|
-
/**
|
|
523
|
-
* Generate fallback report if server is unavailable
|
|
524
|
-
*/
|
|
525
538
|
function generateFallbackReport(results) {
|
|
526
539
|
const passed = results.runs.filter(r => r.passed).length;
|
|
527
540
|
const failed = results.runs.length - passed;
|
|
@@ -541,13 +554,11 @@ function generateFallbackReport(results) {
|
|
|
541
554
|
// ============================================================================
|
|
542
555
|
// Exports
|
|
543
556
|
// ============================================================================
|
|
544
|
-
// Export for adapters
|
|
545
557
|
export { tool };
|
|
546
558
|
export const multiverse = {
|
|
547
559
|
configure,
|
|
548
|
-
seed,
|
|
549
560
|
tool,
|
|
550
|
-
|
|
561
|
+
describe,
|
|
551
562
|
getTools,
|
|
552
563
|
clearTools,
|
|
553
564
|
isConfigured,
|
package/dist/multiverse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiverse.js","sourceRoot":"","sources":["../src/multiverse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"multiverse.js","sourceRoot":"","sources":["../src/multiverse.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@virtualkitchenco/multiverse-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"description": "Simulated worlds for AI agents - 6 months production in 6 minutes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"nanoid": "^5.0.4",
|
|
28
|
-
"@virtualkitchenco/multiverse-types": "0.0.
|
|
28
|
+
"@virtualkitchenco/multiverse-types": "0.0.16"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^20.11.0",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"files": [
|
|
52
52
|
"dist"
|
|
53
53
|
],
|
|
54
|
-
"license": "
|
|
54
|
+
"license": "UNLICENSED",
|
|
55
55
|
"keywords": [
|
|
56
56
|
"ai",
|
|
57
57
|
"agents",
|