orchajs 0.2.0 → 0.4.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-agents-template.js","sourceRoot":"","sources":["../src/cli-agents-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAy4BxB,CAAC"}
package/dist/cli.js CHANGED
@@ -1,20 +1,47 @@
1
1
  #!/usr/bin/env node
2
- import { existsSync } from "node:fs";
3
- import { appendFile, mkdir, readFile, writeFile } from "node:fs/promises";
4
- import { dirname, resolve } from "node:path";
2
+ import { existsSync, watch } from "node:fs";
3
+ import { appendFile, mkdir, readFile, rm, writeFile, } from "node:fs/promises";
4
+ import { dirname, relative, resolve } from "node:path";
5
+ import { pathToFileURL } from "node:url";
6
+ import { build as bundleEntry } from "esbuild";
7
+ import { AGENTS_MD } from "./cli-agents-template.js";
5
8
  import { buildProject } from "./compiler/build-project.js";
9
+ import { orcha } from "./orcha.js";
10
+ import { getOrchaRuntimeContext } from "./runtime/context.js";
11
+ import { runTests } from "./testing.js";
6
12
  const command = process.argv[2];
13
+ const commandArguments = process.argv.slice(3);
14
+ const projectRoot = process.cwd();
7
15
  try {
8
- if (command === "init") {
9
- await initializeProject(process.cwd());
10
- }
11
- else if (command === "build") {
12
- const outputPath = await buildProject({ projectRoot: process.cwd() });
13
- console.log(`Built ${outputPath}`);
14
- }
15
- else {
16
- printUsage();
17
- process.exitCode = command ? 1 : 0;
16
+ switch (command) {
17
+ case "init":
18
+ assertNoArguments(commandArguments, "init");
19
+ await initializeProject(projectRoot);
20
+ break;
21
+ case "dev":
22
+ assertNoArguments(commandArguments, "dev");
23
+ await watchProject(projectRoot);
24
+ break;
25
+ case "run":
26
+ await runAgent(projectRoot, commandArguments);
27
+ break;
28
+ case "test":
29
+ await testAgents(projectRoot, commandArguments);
30
+ break;
31
+ case "build": {
32
+ assertNoArguments(commandArguments, "build");
33
+ const outputPath = await buildProject({ projectRoot });
34
+ console.log(`Built ${relative(projectRoot, outputPath)}`);
35
+ break;
36
+ }
37
+ case "help":
38
+ case "--help":
39
+ case "-h":
40
+ case undefined:
41
+ printUsage();
42
+ break;
43
+ default:
44
+ throw new Error(`Unknown command "${command}". Run "orcha --help".`);
18
45
  }
19
46
  }
20
47
  catch (error) {
@@ -29,7 +56,7 @@ async function initializeProject(projectRoot) {
29
56
  provider: "anthropic",
30
57
  model: "claude-sonnet-4-6",
31
58
  region: "provider_managed",
32
- maxTokens: 1024,
59
+ maxTokens: 10240,
33
60
  outputType: "text",
34
61
  }, null, 2)}\n`,
35
62
  ],
@@ -53,6 +80,7 @@ async function initializeProject(projectRoot) {
53
80
  "",
54
81
  ].join("\n"),
55
82
  ],
83
+ ["AGENTS.md", AGENTS_MD],
56
84
  ]);
57
85
  for (const [relativePath, contents] of files) {
58
86
  const path = resolve(projectRoot, relativePath);
@@ -65,7 +93,287 @@ async function initializeProject(projectRoot) {
65
93
  console.log(`Created ${relativePath}`);
66
94
  }
67
95
  await ensureGitignore(projectRoot);
68
- console.log('\nImport "./orcha/index.js" once from your application entrypoint, then run your existing development command.');
96
+ console.log('\nRun "orcha dev" to validate changes or "orcha run exampleAgent --input \\"Hello\\"" to execute the agent.');
97
+ }
98
+ async function watchProject(projectRoot) {
99
+ const registryDirectory = resolve(projectRoot, "orcha");
100
+ if (!existsSync(registryDirectory)) {
101
+ throw new Error('Missing "orcha/". Run "orcha init" first.');
102
+ }
103
+ let validating = false;
104
+ let validateAgain = false;
105
+ let timer;
106
+ const validate = async () => {
107
+ if (validating) {
108
+ validateAgain = true;
109
+ return;
110
+ }
111
+ validating = true;
112
+ try {
113
+ await loadProject(projectRoot);
114
+ const agents = Object.keys(orcha.getCompiledBundle().agents);
115
+ console.log(`[orcha] valid — ${agents.length} agent${agents.length === 1 ? "" : "s"}: ${agents.join(", ") || "none"}`);
116
+ }
117
+ catch (error) {
118
+ console.error(`[orcha] invalid — ${error instanceof Error ? error.message : String(error)}`);
119
+ }
120
+ finally {
121
+ validating = false;
122
+ if (validateAgain) {
123
+ validateAgain = false;
124
+ void validate();
125
+ }
126
+ }
127
+ };
128
+ await validate();
129
+ console.log("[orcha] watching orcha/**");
130
+ const watcher = watch(registryDirectory, { recursive: true }, () => {
131
+ clearTimeout(timer);
132
+ timer = setTimeout(() => void validate(), 75);
133
+ });
134
+ await new Promise((resolveStop) => {
135
+ const stop = () => {
136
+ clearTimeout(timer);
137
+ watcher.close();
138
+ resolveStop();
139
+ };
140
+ process.once("SIGINT", stop);
141
+ process.once("SIGTERM", stop);
142
+ });
143
+ }
144
+ async function runAgent(projectRoot, arguments_) {
145
+ const parsed = parseArguments(arguments_, new Set([
146
+ "--input",
147
+ "--input-file",
148
+ "--session",
149
+ "--tool-results",
150
+ ]));
151
+ const agentName = parsed.positionals[0];
152
+ if (!agentName || parsed.positionals.length > 1) {
153
+ throw new Error('Usage: orcha run <agent> (--input "…" | --input-file request.json) [--session <id>] [--json]');
154
+ }
155
+ await loadProject(projectRoot);
156
+ const agent = orcha[agentName];
157
+ if (!agent || !(agentName in orcha.getCompiledBundle().agents)) {
158
+ throw new Error(`Unknown agent "${agentName}".`);
159
+ }
160
+ const sessionId = parsed.values.get("--session");
161
+ const toolResultsPath = parsed.values.get("--tool-results");
162
+ if (toolResultsPath && (parsed.values.has("--input") ||
163
+ parsed.values.has("--input-file"))) {
164
+ throw new Error("--tool-results cannot be combined with --input or --input-file.");
165
+ }
166
+ let execution;
167
+ if (toolResultsPath) {
168
+ if (!sessionId) {
169
+ throw new Error("--tool-results requires --session.");
170
+ }
171
+ execution = agent.resume(sessionId, {
172
+ toolResults: await readToolResults(resolve(projectRoot, toolResultsPath)),
173
+ });
174
+ }
175
+ else {
176
+ const input = await readAgentInput(parsed, projectRoot);
177
+ execution = sessionId
178
+ ? agent.resume(sessionId, normalizeResumeInput(input))
179
+ : agent.run(input);
180
+ }
181
+ const result = await execution.result;
182
+ const evaluations = await execution.evaluations;
183
+ if (parsed.flags.has("--json")) {
184
+ console.log(JSON.stringify({ result, evaluations }));
185
+ }
186
+ else {
187
+ printRunResult(projectRoot, result, evaluations);
188
+ }
189
+ if (result.status === "failed") {
190
+ process.exitCode = 1;
191
+ }
192
+ }
193
+ async function testAgents(projectRoot, arguments_) {
194
+ const parsed = parseArguments(arguments_, new Set());
195
+ if (parsed.positionals.length > 1) {
196
+ throw new Error("Usage: orcha test [agent | agent/test] [--json]");
197
+ }
198
+ const selector = parsed.positionals[0];
199
+ const [agent, test, extra] = selector?.split("/") ?? [];
200
+ if (extra || (selector?.includes("/") && (!agent || !test))) {
201
+ throw new Error('Test selector must be an agent name or "agent/test".');
202
+ }
203
+ await loadProject(projectRoot);
204
+ const report = await runTests(orcha, {
205
+ ...(agent ? { agent } : {}),
206
+ ...(test ? { test } : {}),
207
+ });
208
+ if (parsed.flags.has("--json")) {
209
+ console.log(JSON.stringify(report));
210
+ }
211
+ else {
212
+ console.log(`Agent tests: ${report.passed}/${report.total} passed`);
213
+ for (const testCase of report.cases) {
214
+ const sessionLink = testCase.sessionPath
215
+ ? `${testCase.sessionPath}:1`
216
+ : testCase.sessionId;
217
+ console.log(`${testCase.status === "passed" ? "PASS" : "FAIL"} ${testCase.agent}/${testCase.name} (${testCase.durationMs}ms) ${sessionLink}`);
218
+ for (const assertion of testCase.assertions) {
219
+ if (!assertion.passed) {
220
+ console.error(` ${assertion.message}`);
221
+ }
222
+ }
223
+ }
224
+ }
225
+ if (report.status === "failed") {
226
+ process.exitCode = 1;
227
+ }
228
+ }
229
+ async function loadProject(projectRoot) {
230
+ const registryPath = resolve(projectRoot, "orcha/index.ts");
231
+ if (!existsSync(registryPath)) {
232
+ throw new Error('Missing "orcha/index.ts". Run "orcha init" first.');
233
+ }
234
+ const temporaryDirectory = resolve(projectRoot, ".orcha/.cli");
235
+ const bundlePath = resolve(temporaryDirectory, `registry-${process.pid}-${Date.now()}.mjs`);
236
+ await mkdir(temporaryDirectory, { recursive: true });
237
+ try {
238
+ const previousBundle = orcha.isInitialized()
239
+ ? orcha.getCompiledBundle()
240
+ : undefined;
241
+ await bundleEntry({
242
+ entryPoints: [registryPath],
243
+ outfile: bundlePath,
244
+ bundle: true,
245
+ format: "esm",
246
+ platform: "node",
247
+ target: "node20",
248
+ packages: "external",
249
+ logLevel: "silent",
250
+ });
251
+ const previousRoot = process.env.ORCHA_PROJECT_ROOT;
252
+ const previousCompiling = process.env.ORCHA_COMPILING;
253
+ process.env.ORCHA_PROJECT_ROOT = projectRoot;
254
+ process.env.ORCHA_COMPILING = "1";
255
+ try {
256
+ await import(`${pathToFileURL(bundlePath).href}?time=${Date.now()}`);
257
+ }
258
+ finally {
259
+ restoreEnvironment("ORCHA_PROJECT_ROOT", previousRoot);
260
+ restoreEnvironment("ORCHA_COMPILING", previousCompiling);
261
+ }
262
+ if (!orcha.isInitialized() ||
263
+ orcha.getCompiledBundle() === previousBundle) {
264
+ throw new Error('"orcha/index.ts" must call orcha.init({ providers, agents }).');
265
+ }
266
+ }
267
+ finally {
268
+ await rm(bundlePath, { force: true });
269
+ }
270
+ }
271
+ function parseArguments(arguments_, valueOptions) {
272
+ const parsed = {
273
+ positionals: [],
274
+ flags: new Set(),
275
+ values: new Map(),
276
+ };
277
+ for (let index = 0; index < arguments_.length; index += 1) {
278
+ const argument = arguments_[index];
279
+ if (!argument.startsWith("--")) {
280
+ parsed.positionals.push(argument);
281
+ continue;
282
+ }
283
+ if (argument === "--json") {
284
+ parsed.flags.add(argument);
285
+ continue;
286
+ }
287
+ if (!valueOptions.has(argument)) {
288
+ throw new Error(`Unknown option "${argument}".`);
289
+ }
290
+ const value = arguments_[index + 1];
291
+ if (!value || value.startsWith("--")) {
292
+ throw new Error(`Option "${argument}" requires a value.`);
293
+ }
294
+ parsed.values.set(argument, value);
295
+ index += 1;
296
+ }
297
+ return parsed;
298
+ }
299
+ async function readAgentInput(parsed, projectRoot) {
300
+ const inline = parsed.values.get("--input");
301
+ const inputFile = parsed.values.get("--input-file");
302
+ if (inline && inputFile) {
303
+ throw new Error("--input and --input-file cannot be combined.");
304
+ }
305
+ if (inline !== undefined) {
306
+ return inline;
307
+ }
308
+ if (inputFile) {
309
+ return parseInput(await readFile(resolve(projectRoot, inputFile), "utf8"));
310
+ }
311
+ if (!process.stdin.isTTY) {
312
+ const chunks = [];
313
+ for await (const chunk of process.stdin) {
314
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
315
+ }
316
+ return parseInput(Buffer.concat(chunks).toString("utf8"));
317
+ }
318
+ throw new Error('Provide --input, --input-file, or pipe input through stdin.');
319
+ }
320
+ function parseInput(value) {
321
+ const trimmed = value.trim();
322
+ if (!trimmed) {
323
+ throw new Error("Agent input cannot be empty.");
324
+ }
325
+ if (!trimmed.startsWith("{")) {
326
+ return trimmed;
327
+ }
328
+ const parsed = JSON.parse(trimmed);
329
+ if (!parsed ||
330
+ typeof parsed !== "object" ||
331
+ !("content" in parsed)) {
332
+ throw new Error('Structured input must be an object with "content".');
333
+ }
334
+ return parsed;
335
+ }
336
+ function normalizeResumeInput(input) {
337
+ return typeof input === "string"
338
+ ? input
339
+ : { content: input.content };
340
+ }
341
+ async function readToolResults(path) {
342
+ const parsed = JSON.parse(await readFile(path, "utf8"));
343
+ const results = Array.isArray(parsed)
344
+ ? parsed
345
+ : parsed &&
346
+ typeof parsed === "object" &&
347
+ "toolResults" in parsed &&
348
+ Array.isArray(parsed.toolResults)
349
+ ? parsed.toolResults
350
+ : undefined;
351
+ if (!results) {
352
+ throw new Error('Tool results must be an array or an object with "toolResults".');
353
+ }
354
+ return results;
355
+ }
356
+ function printRunResult(projectRoot, result, evaluations) {
357
+ console.log(JSON.stringify(result, null, 2));
358
+ if (evaluations.length > 0) {
359
+ console.log("Evaluations:");
360
+ console.log(JSON.stringify(evaluations, null, 2));
361
+ }
362
+ console.log(`Session log: ${relative(projectRoot, resolve(projectRoot, getOrchaRuntimeContext(orcha).configuration.storage?.directory ??
363
+ ".orcha/sessions", `${result.sessionId}.jsonl`))}:1`);
364
+ }
365
+ function restoreEnvironment(name, value) {
366
+ if (value === undefined) {
367
+ delete process.env[name];
368
+ }
369
+ else {
370
+ process.env[name] = value;
371
+ }
372
+ }
373
+ function assertNoArguments(arguments_, command) {
374
+ if (arguments_.length > 0) {
375
+ throw new Error(`Usage: orcha ${command}`);
376
+ }
69
377
  }
70
378
  async function ensureGitignore(projectRoot) {
71
379
  const path = resolve(projectRoot, ".gitignore");
@@ -80,6 +388,17 @@ async function ensureGitignore(projectRoot) {
80
388
  console.log("Updated .gitignore");
81
389
  }
82
390
  function printUsage() {
83
- console.log(["Usage: orcha <command>", "", "Commands:", " init", " build"].join("\n"));
391
+ console.log([
392
+ "Usage: orcha <command>",
393
+ "",
394
+ "Commands:",
395
+ " init Add Orcha to the current project",
396
+ " dev Validate and watch orcha/**",
397
+ " run <agent> [options] Execute or resume an agent",
398
+ " test [agent | agent/test] Run agent tests",
399
+ " build Build the production Orcha bundle",
400
+ "",
401
+ "Run and test support --json for machine-readable output.",
402
+ ].join("\n"));
84
403
  }
85
404
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-project.d.ts","sourceRoot":"","sources":["../../src/compiler/build-project.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,YAAY,CAChC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC,CAwHjB"}
1
+ {"version":3,"file":"build-project.d.ts","sourceRoot":"","sources":["../../src/compiler/build-project.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,YAAY,CAChC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC,CA6HjB"}
@@ -53,7 +53,12 @@ export async function buildProject(options = {}) {
53
53
  const runtimeFactoryPath = resolve(dirname(fileURLToPath(import.meta.url)), "../runtime/create-orcha.js").replaceAll("\\", "/");
54
54
  const providerDispatcherPath = resolve(dirname(fileURLToPath(import.meta.url)), "../providers/dispatcher.js").replaceAll("\\", "/");
55
55
  const includedProviders = [
56
- ...new Set(Object.values(compiledBundle.agents).map((agent) => agent.provider)),
56
+ ...new Set(Object.values(compiledBundle.agents).flatMap((agent) => [
57
+ agent.provider,
58
+ ...Object.values(agent.evaluations ?? {})
59
+ .filter((evaluation) => evaluation.enabled !== false)
60
+ .map((evaluation) => evaluation.provider),
61
+ ])),
57
62
  ];
58
63
  const providerRuntimeSource = createProviderRuntimeSource(includedProviders);
59
64
  const needsNodeRequire = compiledBundle.actionRuntime === "sandbox" ||
@@ -1 +1 @@
1
- {"version":3,"file":"build-project.js","sourceRoot":"","sources":["../../src/compiler/build-project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-project.js","sourceRoot":"","sources":["../../src/compiler/build-project.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAMV,cAAc,EAGf,MAAM,aAAa,CAAC;AAErB,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GACnC,cAAc,CAkHhB;AAsWD,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAO9D"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/compiler/compile.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAOV,cAAc,EAKf,MAAM,aAAa,CAAC;AAErB,wBAAgB,eAAe,CAC7B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,YAAY,EAAE,MAAM,EACpB,aAAa,CAAC,EAAE,QAAQ,GAAG,SAAS,GACnC,cAAc,CAmHhB;AAmjBD,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAO9D"}
@@ -78,6 +78,7 @@ export function compileRegistry(registrations, registryRoot, actionRuntime) {
78
78
  outputSchema: configuration.outputSchema,
79
79
  actions: compileActions(name, sourceDirectory),
80
80
  skills: compileSkills(name, sourceDirectory),
81
+ evaluations: compileEvaluations(name, sourceDirectory),
81
82
  });
82
83
  }
83
84
  if (Object.keys(agents).length === 0) {
@@ -217,13 +218,66 @@ function compileSkills(agentName, sourceDirectory) {
217
218
  }
218
219
  return Object.freeze(skills);
219
220
  }
221
+ function compileEvaluations(agentName, sourceDirectory) {
222
+ const evaluationsDirectory = resolve(sourceDirectory, "evaluations");
223
+ if (!existsSync(evaluationsDirectory)) {
224
+ return {};
225
+ }
226
+ const registryPath = resolve(evaluationsDirectory, "index.js");
227
+ if (!existsSync(registryPath)) {
228
+ throw new Error(`Agent "${agentName}" has an evaluations directory but is missing evaluations/index.js.`);
229
+ }
230
+ const registrations = loadEvaluationRegistrations(agentName, registryPath);
231
+ const evaluations = {};
232
+ for (const [registrationName, registeredPath] of Object.entries(registrations)) {
233
+ if (!registrationName.trim()) {
234
+ throw new Error(`Agent "${agentName}" has an empty registered evaluation name.`);
235
+ }
236
+ if (typeof registeredPath !== "string" || !registeredPath.trim()) {
237
+ throw new Error(`Evaluation "${agentName}/${registrationName}" must register a folder path.`);
238
+ }
239
+ const evaluationDirectory = resolve(evaluationsDirectory, registeredPath);
240
+ const relativePath = relative(evaluationsDirectory, evaluationDirectory);
241
+ if (!relativePath ||
242
+ relativePath === ".." ||
243
+ relativePath.startsWith(`..${sep}`)) {
244
+ throw new Error(`Evaluation "${agentName}/${registrationName}" must resolve inside the agent's evaluations directory.`);
245
+ }
246
+ const configurationPath = resolve(evaluationDirectory, "index.json");
247
+ let configuration;
248
+ try {
249
+ configuration = JSON.parse(readFileSync(configurationPath, "utf8"));
250
+ }
251
+ catch (error) {
252
+ throw new Error(`Evaluation "${agentName}/${registrationName}" is missing a valid index.json at ${configurationPath}.`, { cause: error });
253
+ }
254
+ validateEvaluationConfiguration(agentName, registrationName, configuration);
255
+ if (evaluations[configuration.name]) {
256
+ throw new Error(`Agent "${agentName}" has duplicate evaluation name "${configuration.name}".`);
257
+ }
258
+ evaluations[configuration.name] = Object.freeze({
259
+ ...configuration,
260
+ enabled: configuration.enabled ?? true,
261
+ provider: configuration.provider,
262
+ directoryName: relativePath.split(sep).join("/"),
263
+ metrics: Object.freeze(configuration.metrics.map((metric) => Object.freeze({ ...metric }))),
264
+ });
265
+ }
266
+ return Object.freeze(evaluations);
267
+ }
220
268
  function loadSkillRegistrations(agentName, registryPath) {
269
+ return loadFolderRegistrations(agentName, registryPath, "skills", "skill", "orchajs/skills", "../skills.js");
270
+ }
271
+ function loadEvaluationRegistrations(agentName, registryPath) {
272
+ return loadFolderRegistrations(agentName, registryPath, "evaluations", "evaluation", "orchajs/evaluations", "../evaluations.js");
273
+ }
274
+ function loadFolderRegistrations(agentName, registryPath, collectionName, itemName, moduleSpecifier, helperPath) {
221
275
  let output;
222
276
  try {
223
277
  const result = buildSync({
224
278
  entryPoints: [registryPath],
225
279
  alias: {
226
- "orchajs/skills": resolve(dirname(fileURLToPath(import.meta.url)), "../skills.js"),
280
+ [moduleSpecifier]: resolve(dirname(fileURLToPath(import.meta.url)), helperPath),
227
281
  },
228
282
  bundle: true,
229
283
  write: false,
@@ -235,7 +289,7 @@ function loadSkillRegistrations(agentName, registryPath) {
235
289
  output = result.outputFiles[0]?.text ?? "";
236
290
  }
237
291
  catch (error) {
238
- throw new Error(`Agent "${agentName}" skills/index.js could not be bundled.`, { cause: error });
292
+ throw new Error(`Agent "${agentName}" ${collectionName}/index.js could not be bundled.`, { cause: error });
239
293
  }
240
294
  try {
241
295
  const module = { exports: {} };
@@ -251,7 +305,7 @@ function loadSkillRegistrations(agentName, registryPath) {
251
305
  return registrations;
252
306
  }
253
307
  catch (error) {
254
- throw new Error(`Agent "${agentName}" skills/index.js must default-export skill registrations.`, { cause: error });
308
+ throw new Error(`Agent "${agentName}" ${collectionName}/index.js must default-export ${itemName} registrations.`, { cause: error });
255
309
  }
256
310
  }
257
311
  function validateSkillConfiguration(agentName, registrationName, configuration) {
@@ -274,6 +328,63 @@ function validateSkillConfiguration(agentName, registrationName, configuration)
274
328
  throw new Error(`Skill "${agentName}/${registrationName}" triggers must be non-empty strings.`);
275
329
  }
276
330
  }
331
+ function validateEvaluationConfiguration(agentName, registrationName, configuration) {
332
+ const label = `Evaluation "${agentName}/${registrationName}"`;
333
+ if (!configuration ||
334
+ typeof configuration !== "object" ||
335
+ Array.isArray(configuration) ||
336
+ typeof configuration.name !== "string" ||
337
+ !configuration.name.trim()) {
338
+ throw new Error(`${label} requires a name.`);
339
+ }
340
+ if (!/^[a-zA-Z0-9_-]{1,64}$/.test(configuration.name)) {
341
+ throw new Error(`${label} has an invalid name.`);
342
+ }
343
+ if (configuration.description !== undefined &&
344
+ (typeof configuration.description !== "string" ||
345
+ !configuration.description.trim())) {
346
+ throw new Error(`${label} description must be a non-empty string.`);
347
+ }
348
+ if (!isBuiltInProvider(configuration.provider)) {
349
+ throw new Error(`${label} uses unsupported provider "${configuration.provider}".`);
350
+ }
351
+ if (typeof configuration.model !== "string" || !configuration.model.trim()) {
352
+ throw new Error(`${label} requires a model.`);
353
+ }
354
+ if (configuration.enabled !== undefined &&
355
+ typeof configuration.enabled !== "boolean") {
356
+ throw new Error(`${label} enabled must be a boolean.`);
357
+ }
358
+ validateNumber(`${agentName}/${registrationName}`, "maxTokens", configuration.maxTokens, { integer: true, minimum: 1 });
359
+ if (configuration.reasoningLevel !== undefined &&
360
+ (typeof configuration.reasoningLevel !== "string" ||
361
+ !configuration.reasoningLevel.trim())) {
362
+ throw new Error(`${label} reasoningLevel must be a non-empty string.`);
363
+ }
364
+ if (!Array.isArray(configuration.metrics) ||
365
+ configuration.metrics.length === 0) {
366
+ throw new Error(`${label} requires at least one metric.`);
367
+ }
368
+ const names = new Set();
369
+ for (const metric of configuration.metrics) {
370
+ if (!metric ||
371
+ typeof metric !== "object" ||
372
+ typeof metric.name !== "string" ||
373
+ !/^[a-zA-Z0-9_-]{1,64}$/.test(metric.name) ||
374
+ typeof metric.description !== "string" ||
375
+ !metric.description.trim() ||
376
+ typeof metric.threshold !== "number" ||
377
+ !Number.isFinite(metric.threshold) ||
378
+ metric.threshold < 0 ||
379
+ metric.threshold > 1) {
380
+ throw new Error(`${label} metrics require a valid name, description, and threshold between 0 and 1.`);
381
+ }
382
+ if (names.has(metric.name)) {
383
+ throw new Error(`${label} has duplicate metric "${metric.name}".`);
384
+ }
385
+ names.add(metric.name);
386
+ }
387
+ }
277
388
  function compileLocalAction(agentName, directoryName, actionsDirectory) {
278
389
  const entryPath = resolve(actionsDirectory, directoryName, "index.js");
279
390
  if (!existsSync(entryPath)) {