@cef-ai/testing 0.1.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/README.md +132 -0
- package/dist/harness/clock.d.ts +26 -0
- package/dist/harness/clock.d.ts.map +1 -0
- package/dist/harness/clock.js +17 -0
- package/dist/harness/clock.js.map +1 -0
- package/dist/harness/cubby.d.ts +57 -0
- package/dist/harness/cubby.d.ts.map +1 -0
- package/dist/harness/cubby.js +94 -0
- package/dist/harness/cubby.js.map +1 -0
- package/dist/harness/dispatch.d.ts +31 -0
- package/dist/harness/dispatch.d.ts.map +1 -0
- package/dist/harness/dispatch.js +37 -0
- package/dist/harness/dispatch.js.map +1 -0
- package/dist/harness/fetch-mock.d.ts +43 -0
- package/dist/harness/fetch-mock.d.ts.map +1 -0
- package/dist/harness/fetch-mock.js +58 -0
- package/dist/harness/fetch-mock.js.map +1 -0
- package/dist/harness/lifecycle.d.ts +29 -0
- package/dist/harness/lifecycle.d.ts.map +1 -0
- package/dist/harness/lifecycle.js +37 -0
- package/dist/harness/lifecycle.js.map +1 -0
- package/dist/harness/model-mock.d.ts +49 -0
- package/dist/harness/model-mock.d.ts.map +1 -0
- package/dist/harness/model-mock.js +56 -0
- package/dist/harness/model-mock.js.map +1 -0
- package/dist/harness/publish.d.ts +29 -0
- package/dist/harness/publish.d.ts.map +1 -0
- package/dist/harness/publish.js +20 -0
- package/dist/harness/publish.js.map +1 -0
- package/dist/harness/replay.d.ts +32 -0
- package/dist/harness/replay.d.ts.map +1 -0
- package/dist/harness/replay.js +72 -0
- package/dist/harness/replay.js.map +1 -0
- package/dist/harness/snapshot.d.ts +44 -0
- package/dist/harness/snapshot.d.ts.map +1 -0
- package/dist/harness/snapshot.js +58 -0
- package/dist/harness/snapshot.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/peers/from-marketplace.d.ts +19 -0
- package/dist/peers/from-marketplace.d.ts.map +1 -0
- package/dist/peers/from-marketplace.js +22 -0
- package/dist/peers/from-marketplace.js.map +1 -0
- package/dist/peers/mock-agent.d.ts +108 -0
- package/dist/peers/mock-agent.d.ts.map +1 -0
- package/dist/peers/mock-agent.js +113 -0
- package/dist/peers/mock-agent.js.map +1 -0
- package/dist/platform/event-runtime.d.ts +28 -0
- package/dist/platform/event-runtime.d.ts.map +1 -0
- package/dist/platform/event-runtime.js +38 -0
- package/dist/platform/event-runtime.js.map +1 -0
- package/dist/platform/orchestrator.d.ts +86 -0
- package/dist/platform/orchestrator.d.ts.map +1 -0
- package/dist/platform/orchestrator.js +164 -0
- package/dist/platform/orchestrator.js.map +1 -0
- package/dist/platform/runtime.d.ts +66 -0
- package/dist/platform/runtime.d.ts.map +1 -0
- package/dist/platform/runtime.js +116 -0
- package/dist/platform/runtime.js.map +1 -0
- package/dist/platform/targeting.d.ts +29 -0
- package/dist/platform/targeting.d.ts.map +1 -0
- package/dist/platform/targeting.js +64 -0
- package/dist/platform/targeting.js.map +1 -0
- package/dist/platform/vault.d.ts +185 -0
- package/dist/platform/vault.d.ts.map +1 -0
- package/dist/platform/vault.js +200 -0
- package/dist/platform/vault.js.map +1 -0
- package/dist/test-agent.d.ts +137 -0
- package/dist/test-agent.d.ts.map +1 -0
- package/dist/test-agent.js +223 -0
- package/dist/test-agent.js.map +1 -0
- package/dist/test-platform.d.ts +167 -0
- package/dist/test-platform.d.ts.map +1 -0
- package/dist/test-platform.js +352 -0
- package/dist/test-platform.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `testPlatform({...})` — multi-agent + vault simulator harness.
|
|
3
|
+
*
|
|
4
|
+
* Wires the `./platform/*` pieces together so a test can:
|
|
5
|
+
* - spin up multiple peer agents (typed `Agent` classes or `mockAgent({...})`);
|
|
6
|
+
* - publish to a shared in-memory vault and watch events route between agents;
|
|
7
|
+
* - inspect jobs / activities created by the orchestrator;
|
|
8
|
+
* - run cubby-level assertions per agent via {@link TestPlatform.runInCubby}.
|
|
9
|
+
*
|
|
10
|
+
* Per ADR-019 H4 the simulator is engagement-aware: each registered agent has
|
|
11
|
+
* one or more engagements; targeting picks one at Job creation; the chosen
|
|
12
|
+
* engagement is pinned for the Job's life. Single-class registrations remain
|
|
13
|
+
* equivalent to one engagement with id `"default"` for back-compat.
|
|
14
|
+
*
|
|
15
|
+
* Public surface mirrors `agent-sdk.md` §10 and the contract docs so app-side
|
|
16
|
+
* test code uses the same vault API it would in production.
|
|
17
|
+
*/
|
|
18
|
+
import { ENGAGEMENT_METADATA, } from "@cef-ai/agent-sdk";
|
|
19
|
+
import { createClock } from "./harness/clock.js";
|
|
20
|
+
import { createCubby } from "./harness/cubby.js";
|
|
21
|
+
import { createFetchMock } from "./harness/fetch-mock.js";
|
|
22
|
+
import { isModelHandle } from "./harness/model-mock.js";
|
|
23
|
+
import { isMockAgentDescriptor, } from "./peers/mock-agent.js";
|
|
24
|
+
import { createEventRuntime } from "./platform/event-runtime.js";
|
|
25
|
+
import { createOrchestrator, } from "./platform/orchestrator.js";
|
|
26
|
+
import { createRuntime } from "./platform/runtime.js";
|
|
27
|
+
import { createVault, } from "./platform/vault.js";
|
|
28
|
+
/**
|
|
29
|
+
* Convenience wallet stub — `testWallet("alice")` produces a deterministic
|
|
30
|
+
* `{ publicKey: "wallet-alice" }`. The simulator does not verify signatures.
|
|
31
|
+
*/
|
|
32
|
+
export function testWallet(id) {
|
|
33
|
+
return { publicKey: `wallet-${id}` };
|
|
34
|
+
}
|
|
35
|
+
export function testPlatform(opts) {
|
|
36
|
+
const defaultContext = opts.context ?? "default";
|
|
37
|
+
const clock = createClock(opts.clock?.now);
|
|
38
|
+
const fetchMock = createFetchMock();
|
|
39
|
+
// ---- Resolve user ids ----------------------------------------------------
|
|
40
|
+
// ADR-019 H5: explicit `users` map declares the user set. With 0 declared
|
|
41
|
+
// users, we synthesise a single implicit user so legacy testPlatform
|
|
42
|
+
// fixtures (no `users` field) keep working unchanged. The implicit id
|
|
43
|
+
// honours `vaultId` for v0.1.0 compatibility.
|
|
44
|
+
const declaredUsers = Object.keys(opts.users ?? {});
|
|
45
|
+
const userIds = declaredUsers.length > 0 ? declaredUsers : [opts.vaultId ?? "default"];
|
|
46
|
+
// ---- Shared model handles -----------------------------------------------
|
|
47
|
+
const models = {};
|
|
48
|
+
for (const [alias, handle] of Object.entries(opts.models ?? {})) {
|
|
49
|
+
if (!isModelHandle(handle)) {
|
|
50
|
+
throw new Error(`[testPlatform] models["${alias}"] is not a ModelHandle (missing infer())`);
|
|
51
|
+
}
|
|
52
|
+
models[alias] = handle;
|
|
53
|
+
}
|
|
54
|
+
// ---- Resolve every registered agent up front -----------------------------
|
|
55
|
+
// We instantiate classes once (per engagement) and synthesise manifests for
|
|
56
|
+
// mocks. The resulting record drives both the vault's `connect` resolution
|
|
57
|
+
// and the platform's cubby/runInCubby plumbing.
|
|
58
|
+
const registrations = new Map();
|
|
59
|
+
for (const [agentId, raw] of Object.entries(opts.agents)) {
|
|
60
|
+
registrations.set(agentId, materialise(agentId, raw));
|
|
61
|
+
}
|
|
62
|
+
// ---- Provision cubbies per (user, agent) --------------------------------
|
|
63
|
+
// ADR-019 H5: cubby state is partitioned by user (per the contract's
|
|
64
|
+
// instanceID derivation `sha256(vaultId + "/" + scope + "/" + agentId
|
|
65
|
+
// + "/" + alias)`). Each declared user gets its own fresh in-memory
|
|
66
|
+
// SQLite per alias.
|
|
67
|
+
const cubbiesByUser = new Map();
|
|
68
|
+
for (const userId of userIds) {
|
|
69
|
+
const perAgent = new Map();
|
|
70
|
+
for (const [agentId, { registration }] of registrations) {
|
|
71
|
+
const map = new Map();
|
|
72
|
+
const cubbies = "source" in registration
|
|
73
|
+
? registration.cubbies
|
|
74
|
+
: registration.cubbies;
|
|
75
|
+
for (const spec of cubbies ?? []) {
|
|
76
|
+
const s = typeof spec === "string" ? { alias: spec } : spec;
|
|
77
|
+
if (map.has(s.alias)) {
|
|
78
|
+
throw new Error(`[testPlatform] duplicate cubby alias "${s.alias}" for agent "${agentId}"`);
|
|
79
|
+
}
|
|
80
|
+
map.set(s.alias, createCubby(s.alias, s.migrations));
|
|
81
|
+
}
|
|
82
|
+
perAgent.set(agentId, map);
|
|
83
|
+
}
|
|
84
|
+
cubbiesByUser.set(userId, perAgent);
|
|
85
|
+
}
|
|
86
|
+
// ---- Build runtime → orchestrator → event-runtime → per-user vaults -----
|
|
87
|
+
// The runtime closes over the per-user vault map for `ctx.publish`, so we
|
|
88
|
+
// use a mutable holder and patch it after vault construction. A single
|
|
89
|
+
// shared event log + shared orchestrator back every user's vault — but
|
|
90
|
+
// events are stamped with vaultId so per-user `stream()` filters work.
|
|
91
|
+
const userVaults = new Map();
|
|
92
|
+
const runtime = createRuntime({
|
|
93
|
+
vault: (vaultId) => {
|
|
94
|
+
const v = userVaults.get(vaultId);
|
|
95
|
+
if (!v) {
|
|
96
|
+
throw new Error(`[testPlatform] no vault for user "${vaultId}" — declare it via testPlatform({ users })`);
|
|
97
|
+
}
|
|
98
|
+
return v;
|
|
99
|
+
},
|
|
100
|
+
cubbies: cubbiesByUser,
|
|
101
|
+
fetchMock,
|
|
102
|
+
models,
|
|
103
|
+
clock: clock.now,
|
|
104
|
+
});
|
|
105
|
+
const orchestrator = createOrchestrator({
|
|
106
|
+
clock: clock.now,
|
|
107
|
+
runtime,
|
|
108
|
+
});
|
|
109
|
+
const eventRuntime = createEventRuntime({ orchestrator });
|
|
110
|
+
// Shared event log across every per-user vault. Each vault's `publish()`
|
|
111
|
+
// appends to it; each vault's `stream(ctx).events.list()` filters to
|
|
112
|
+
// events tagged with that vault's `vaultId`.
|
|
113
|
+
const sharedEvents = [];
|
|
114
|
+
for (const userId of userIds) {
|
|
115
|
+
const v = createVault({
|
|
116
|
+
vaultId: userId,
|
|
117
|
+
defaultScope: opts.scope ?? "default",
|
|
118
|
+
defaultContext,
|
|
119
|
+
eventRuntime,
|
|
120
|
+
orchestrator,
|
|
121
|
+
clock: clock.now,
|
|
122
|
+
resolveAgent(agentId) {
|
|
123
|
+
const reg = registrations.get(agentId);
|
|
124
|
+
if (!reg)
|
|
125
|
+
return undefined;
|
|
126
|
+
return {
|
|
127
|
+
manifest: reg.manifest,
|
|
128
|
+
engagementInstances: reg.engagementInstances,
|
|
129
|
+
};
|
|
130
|
+
},
|
|
131
|
+
cubbies: cubbiesByUser.get(userId),
|
|
132
|
+
events: sharedEvents,
|
|
133
|
+
});
|
|
134
|
+
userVaults.set(userId, v);
|
|
135
|
+
}
|
|
136
|
+
function userAccessor(id) {
|
|
137
|
+
const v = userVaults.get(id);
|
|
138
|
+
if (!v) {
|
|
139
|
+
throw new Error(`[testPlatform] unknown user "${id}" — declare it via testPlatform({ users })`);
|
|
140
|
+
}
|
|
141
|
+
return { vault: v };
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
get vault() {
|
|
145
|
+
// ADR-019 H5: top-level `platform.vault` is a back-compat shorthand
|
|
146
|
+
// that resolves to the single declared user. With 2+ users it's
|
|
147
|
+
// ambiguous and callers must use `platform.user(id).vault`.
|
|
148
|
+
if (userIds.length > 1) {
|
|
149
|
+
throw new Error(`[testPlatform] platform.vault is ambiguous with ${userIds.length} users declared — use platform.user(id).vault`);
|
|
150
|
+
}
|
|
151
|
+
return userVaults.get(userIds[0]);
|
|
152
|
+
},
|
|
153
|
+
user: userAccessor,
|
|
154
|
+
orchestrator: {
|
|
155
|
+
jobs: orchestrator.jobs,
|
|
156
|
+
list: (f) => orchestrator.list(f),
|
|
157
|
+
get: (id) => orchestrator.get(id),
|
|
158
|
+
},
|
|
159
|
+
clock,
|
|
160
|
+
fetchMock: () => fetchMock,
|
|
161
|
+
models,
|
|
162
|
+
async runInCubby(agentId, alias, fn, userId) {
|
|
163
|
+
let resolvedUserId;
|
|
164
|
+
if (userId !== undefined) {
|
|
165
|
+
resolvedUserId = userId;
|
|
166
|
+
}
|
|
167
|
+
else if (userIds.length === 1) {
|
|
168
|
+
resolvedUserId = userIds[0];
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
throw new Error(`[testPlatform] runInCubby requires an explicit userId with ${userIds.length} users declared`);
|
|
172
|
+
}
|
|
173
|
+
const userMap = cubbiesByUser.get(resolvedUserId);
|
|
174
|
+
if (!userMap) {
|
|
175
|
+
throw new Error(`[testPlatform] unknown user "${resolvedUserId}" — declare it via testPlatform({ users })`);
|
|
176
|
+
}
|
|
177
|
+
const map = userMap.get(agentId);
|
|
178
|
+
if (!map) {
|
|
179
|
+
throw new Error(`[testPlatform] unknown agentId "${agentId}" — register it via opts.agents`);
|
|
180
|
+
}
|
|
181
|
+
const c = map.get(alias);
|
|
182
|
+
if (!c) {
|
|
183
|
+
throw new Error(`[testPlatform] cubby "${alias}" not declared for agent "${agentId}"`);
|
|
184
|
+
}
|
|
185
|
+
return await fn({ query: c.query.bind(c), exec: c.exec.bind(c) }, c.raw);
|
|
186
|
+
},
|
|
187
|
+
dispose() {
|
|
188
|
+
for (const perAgent of cubbiesByUser.values()) {
|
|
189
|
+
for (const map of perAgent.values()) {
|
|
190
|
+
for (const c of map.values())
|
|
191
|
+
c.close();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
/* -------------------------------------------------------------------------- */
|
|
198
|
+
/* Helpers */
|
|
199
|
+
/* -------------------------------------------------------------------------- */
|
|
200
|
+
/** Discriminator for the multi-engagement registration form. */
|
|
201
|
+
function isMultiEngagementSpec(reg) {
|
|
202
|
+
return (typeof reg === "object" &&
|
|
203
|
+
reg !== null &&
|
|
204
|
+
!isMockAgentDescriptor(reg) &&
|
|
205
|
+
Array.isArray(reg.engagements));
|
|
206
|
+
}
|
|
207
|
+
/** Discriminator for the long-form single-class/mock registration. */
|
|
208
|
+
function isSingleAgentRegistration(reg) {
|
|
209
|
+
return (typeof reg === "object" &&
|
|
210
|
+
reg !== null &&
|
|
211
|
+
!isMockAgentDescriptor(reg) &&
|
|
212
|
+
!Array.isArray(reg.engagements) &&
|
|
213
|
+
"source" in reg);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Read `ENGAGEMENT_METADATA` off a class. Throws with an actionable message
|
|
217
|
+
* naming the agent so multi-engagement misconfiguration surfaces clearly.
|
|
218
|
+
*/
|
|
219
|
+
function readClassMeta(agentId, engagementId, ctor) {
|
|
220
|
+
const meta = ctor[ENGAGEMENT_METADATA];
|
|
221
|
+
if (!meta) {
|
|
222
|
+
const where = engagementId
|
|
223
|
+
? `engagement "${engagementId}" of agent "${agentId}"`
|
|
224
|
+
: `agent "${agentId}"`;
|
|
225
|
+
throw new Error(`[testPlatform] ${where} class has no @OnEvent/@OnStart/@OnClose decorators (missing ENGAGEMENT_METADATA)`);
|
|
226
|
+
}
|
|
227
|
+
return meta;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Turn a registration into a `(manifest, engagementInstances)` pair plus the
|
|
231
|
+
* normalised SingleAgentRegistration / MultiEngagementSpec for cubby
|
|
232
|
+
* resolution.
|
|
233
|
+
*
|
|
234
|
+
* For mocks we use the descriptor's already-normalised engagements; for
|
|
235
|
+
* single-class shorthand we synthesise a one-engagement manifest with id
|
|
236
|
+
* `"default"`; for multi-engagement source-class specs we instantiate each
|
|
237
|
+
* class and assemble the manifest.
|
|
238
|
+
*/
|
|
239
|
+
function materialise(agentId, raw) {
|
|
240
|
+
// Mock peer: descriptor already has normalised engagements + targeting.
|
|
241
|
+
if (isMockAgentDescriptor(raw)) {
|
|
242
|
+
const manifest = {
|
|
243
|
+
engagements: raw.engagements.map((e) => ({
|
|
244
|
+
id: e.id,
|
|
245
|
+
goal: e.goal,
|
|
246
|
+
events: e.meta.events,
|
|
247
|
+
lifecycle: e.meta.lifecycle,
|
|
248
|
+
})),
|
|
249
|
+
targeting: raw.targeting,
|
|
250
|
+
};
|
|
251
|
+
const engagementInstances = {};
|
|
252
|
+
for (const e of raw.engagements) {
|
|
253
|
+
engagementInstances[e.id] = e.instance;
|
|
254
|
+
}
|
|
255
|
+
return {
|
|
256
|
+
manifest,
|
|
257
|
+
engagementInstances,
|
|
258
|
+
registration: { source: raw },
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
// Multi-engagement source-class form.
|
|
262
|
+
if (isMultiEngagementSpec(raw)) {
|
|
263
|
+
if (raw.engagements.length === 0) {
|
|
264
|
+
throw new Error(`[testPlatform] agent "${agentId}" has empty engagements[]`);
|
|
265
|
+
}
|
|
266
|
+
const seen = new Set();
|
|
267
|
+
const manifestEngagements = [];
|
|
268
|
+
const engagementInstances = {};
|
|
269
|
+
for (const e of raw.engagements) {
|
|
270
|
+
if (!e.id) {
|
|
271
|
+
throw new Error(`[testPlatform] agent "${agentId}" has an engagement with no id`);
|
|
272
|
+
}
|
|
273
|
+
if (seen.has(e.id)) {
|
|
274
|
+
throw new Error(`[testPlatform] agent "${agentId}" has duplicate engagement id "${e.id}"`);
|
|
275
|
+
}
|
|
276
|
+
seen.add(e.id);
|
|
277
|
+
const meta = readClassMeta(agentId, e.id, e.source);
|
|
278
|
+
manifestEngagements.push({
|
|
279
|
+
id: e.id,
|
|
280
|
+
// Prefer explicit goal, else fall back to whatever `@Engagement` set.
|
|
281
|
+
goal: e.goal ?? meta.goal,
|
|
282
|
+
events: meta.events,
|
|
283
|
+
lifecycle: meta.lifecycle,
|
|
284
|
+
});
|
|
285
|
+
engagementInstances[e.id] = new e.source();
|
|
286
|
+
}
|
|
287
|
+
const targeting = raw.targeting ?? {
|
|
288
|
+
engagements: [{ id: manifestEngagements[0].id, rules: [] }],
|
|
289
|
+
};
|
|
290
|
+
for (const entry of targeting.engagements) {
|
|
291
|
+
if (!seen.has(entry.id)) {
|
|
292
|
+
throw new Error(`[testPlatform] agent "${agentId}" targeting references unknown engagement "${entry.id}"`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
return {
|
|
296
|
+
manifest: { engagements: manifestEngagements, targeting },
|
|
297
|
+
engagementInstances,
|
|
298
|
+
registration: raw,
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
// Long-form single-class registration (`{ source, cubbies?, settings? }`).
|
|
302
|
+
if (isSingleAgentRegistration(raw)) {
|
|
303
|
+
return materialiseSingle(agentId, raw);
|
|
304
|
+
}
|
|
305
|
+
// Bare class shorthand.
|
|
306
|
+
if (typeof raw === "function") {
|
|
307
|
+
return materialiseSingle(agentId, { source: raw });
|
|
308
|
+
}
|
|
309
|
+
throw new Error(`[testPlatform] agent "${agentId}" has an unrecognised registration shape`);
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* Materialise a single-class (or single-mock — but mocks are handled above)
|
|
313
|
+
* registration into the engagement-aware shape with one engagement of id
|
|
314
|
+
* `"default"`.
|
|
315
|
+
*/
|
|
316
|
+
function materialiseSingle(agentId, reg) {
|
|
317
|
+
const source = reg.source;
|
|
318
|
+
if (isMockAgentDescriptor(source)) {
|
|
319
|
+
// {source: mockAgent({...}), cubbies?, settings?} — delegate to mock path.
|
|
320
|
+
const inner = materialise(agentId, source);
|
|
321
|
+
return { ...inner, registration: reg };
|
|
322
|
+
}
|
|
323
|
+
if (typeof source !== "function") {
|
|
324
|
+
throw new Error(`[testPlatform] agent "${agentId}" registration.source is not a class or mock descriptor`);
|
|
325
|
+
}
|
|
326
|
+
const meta = readClassMeta(agentId, undefined, source);
|
|
327
|
+
// Use the class's own engagement id when present (`@Engagement({id})`),
|
|
328
|
+
// else fall back to the harness default of "default" so single-class
|
|
329
|
+
// registrations stay equivalent to one engagement with that id.
|
|
330
|
+
const engagementId = meta.id ?? "default";
|
|
331
|
+
const manifest = {
|
|
332
|
+
engagements: [
|
|
333
|
+
{
|
|
334
|
+
id: engagementId,
|
|
335
|
+
goal: meta.goal,
|
|
336
|
+
events: meta.events,
|
|
337
|
+
lifecycle: meta.lifecycle,
|
|
338
|
+
},
|
|
339
|
+
],
|
|
340
|
+
targeting: { engagements: [{ id: engagementId, rules: [] }] },
|
|
341
|
+
};
|
|
342
|
+
const engagementInstances = {
|
|
343
|
+
[engagementId]: new source(),
|
|
344
|
+
};
|
|
345
|
+
return { manifest, engagementInstances, registration: reg };
|
|
346
|
+
}
|
|
347
|
+
/* -------------------------------------------------------------------------- */
|
|
348
|
+
/* Re-exports */
|
|
349
|
+
/* -------------------------------------------------------------------------- */
|
|
350
|
+
export { mockAgent } from "./peers/mock-agent.js";
|
|
351
|
+
export { fromMarketplace } from "./peers/from-marketplace.js";
|
|
352
|
+
//# sourceMappingURL=test-platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-platform.js","sourceRoot":"","sources":["../src/test-platform.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cef-ai/testing",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"better-sqlite3": "^11.0.0",
|
|
15
|
+
"@cef-ai/agent-sdk": "0.1.0"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
19
|
+
"@types/node": "^20.11.0",
|
|
20
|
+
"typescript": "^5.4.0",
|
|
21
|
+
"vitest": "^1.5.0"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc -b",
|
|
25
|
+
"test": "vitest run",
|
|
26
|
+
"lint": "eslint src"
|
|
27
|
+
}
|
|
28
|
+
}
|