@elsium-ai/cli 0.10.0 → 0.12.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/dist/cli.js CHANGED
@@ -3299,6 +3299,11 @@ async function devCommand(args) {
3299
3299
  import { existsSync as existsSync3 } from "node:fs";
3300
3300
  import { join as join3 } from "node:path";
3301
3301
  var VALID_FORMATS = new Set(["text", "junit", "github", "markdown"]);
3302
+ var STRING_FLAGS = {
3303
+ "--dataset": "dataset",
3304
+ "--compare": "compare",
3305
+ "--baseline-dir": "baselineDir"
3306
+ };
3302
3307
  function parseFlags(args) {
3303
3308
  const flags = {
3304
3309
  saveBaseline: false,
@@ -3308,37 +3313,17 @@ function parseFlags(args) {
3308
3313
  for (let i = 0;i < args.length; i++) {
3309
3314
  const arg = args[i];
3310
3315
  const next = args[i + 1];
3311
- switch (arg) {
3312
- case "--dataset":
3313
- if (next) {
3314
- flags.dataset = next;
3315
- i++;
3316
- }
3317
- break;
3318
- case "--compare":
3319
- if (next) {
3320
- flags.compare = next;
3321
- i++;
3322
- }
3323
- break;
3324
- case "--save-baseline":
3325
- flags.saveBaseline = true;
3326
- break;
3327
- case "--baseline-dir":
3328
- if (next) {
3329
- flags.baselineDir = next;
3330
- i++;
3331
- }
3332
- break;
3333
- case "--format":
3334
- if (next && VALID_FORMATS.has(next)) {
3335
- flags.format = next;
3336
- i++;
3337
- }
3338
- break;
3339
- default:
3340
- if (!arg.startsWith("--"))
3341
- flags.file = arg;
3316
+ const stringKey = STRING_FLAGS[arg];
3317
+ if (stringKey && next) {
3318
+ flags[stringKey] = next;
3319
+ i++;
3320
+ } else if (arg === "--save-baseline") {
3321
+ flags.saveBaseline = true;
3322
+ } else if (arg === "--format" && next && VALID_FORMATS.has(next)) {
3323
+ flags.format = next;
3324
+ i++;
3325
+ } else if (!arg.startsWith("--")) {
3326
+ flags.file = arg;
3342
3327
  }
3343
3328
  }
3344
3329
  return flags;
@@ -5829,29 +5814,280 @@ init_src();
5829
5814
 
5830
5815
  // ../tools/src/define.ts
5831
5816
  init_src();
5817
+
5818
+ // ../tools/src/sandbox/runner.ts
5819
+ init_src();
5820
+ import { Worker } from "node:worker_threads";
5821
+ var WORKER_SCRIPT = `
5822
+ const { parentPort, workerData } = require('node:worker_threads')
5823
+
5824
+ if (!parentPort) throw new Error('worker-runner must be run as a worker thread')
5825
+
5826
+ const { handlerPath } = workerData
5827
+ let handlerPromise = null
5828
+
5829
+ async function loadHandler() {
5830
+ if (!handlerPromise) {
5831
+ handlerPromise = (async () => {
5832
+ const mod = await import(handlerPath)
5833
+ const fn = (mod && (mod.default || mod.handler)) || null
5834
+ if (typeof fn !== 'function') {
5835
+ throw new Error(
5836
+ 'Sandbox handler module must export a default function or a named "handler" function: ' + handlerPath,
5837
+ )
5838
+ }
5839
+ return fn
5840
+ })().catch((err) => {
5841
+ handlerPromise = null
5842
+ throw err
5843
+ })
5844
+ }
5845
+ return handlerPromise
5846
+ }
5847
+
5848
+ parentPort.on('message', async (msg) => {
5849
+ if (!msg || msg.type !== 'invoke') return
5850
+ try {
5851
+ const handler = await loadHandler()
5852
+ const result = await handler(msg.input)
5853
+ parentPort.postMessage({
5854
+ type: 'result',
5855
+ invocationId: msg.invocationId,
5856
+ success: true,
5857
+ data: result,
5858
+ })
5859
+ } catch (err) {
5860
+ parentPort.postMessage({
5861
+ type: 'result',
5862
+ invocationId: msg.invocationId,
5863
+ success: false,
5864
+ error: {
5865
+ name: (err && err.name) || 'Error',
5866
+ message: (err && err.message) || String(err),
5867
+ stack: err && err.stack,
5868
+ },
5869
+ })
5870
+ }
5871
+ })
5872
+ `;
5873
+ function rejectPending(state, error) {
5874
+ if (!state.pending)
5875
+ return;
5876
+ const pending = state.pending;
5877
+ state.pending = null;
5878
+ pending.reject(error);
5879
+ }
5880
+ function attachWorkerListeners(worker, state) {
5881
+ worker.on("message", (msg) => {
5882
+ if (msg?.type !== "result")
5883
+ return;
5884
+ const pending = state.pending;
5885
+ if (!pending || pending.id !== msg.invocationId)
5886
+ return;
5887
+ state.pending = null;
5888
+ if (msg.success) {
5889
+ pending.resolve(msg.data);
5890
+ } else {
5891
+ const error = new Error(msg.error?.message ?? "Sandbox handler failed");
5892
+ if (msg.error?.name)
5893
+ error.name = msg.error.name;
5894
+ if (msg.error?.stack)
5895
+ error.stack = msg.error.stack;
5896
+ pending.reject(error);
5897
+ }
5898
+ });
5899
+ worker.on("error", (err2) => {
5900
+ state.worker = null;
5901
+ rejectPending(state, err2);
5902
+ });
5903
+ worker.on("exit", (code) => {
5904
+ if (state.worker === worker)
5905
+ state.worker = null;
5906
+ if (code !== 0) {
5907
+ rejectPending(state, new Error(`Sandbox worker exited with code ${code}`));
5908
+ }
5909
+ });
5910
+ }
5911
+ function ensureWorker(state, handlerPath) {
5912
+ if (state.worker)
5913
+ return state.worker;
5914
+ const w = new Worker(WORKER_SCRIPT, {
5915
+ eval: true,
5916
+ workerData: { handlerPath }
5917
+ });
5918
+ attachWorkerListeners(w, state);
5919
+ w.unref();
5920
+ state.worker = w;
5921
+ return w;
5922
+ }
5923
+ function killWorker(state) {
5924
+ const dying = state.worker;
5925
+ state.worker = null;
5926
+ if (dying) {
5927
+ dying.terminate().catch(() => {});
5928
+ }
5929
+ }
5930
+ function postInvocation(state, worker, invocationId, input, timeoutMs, handlerPath, signal) {
5931
+ return new Promise((resolve2, reject) => {
5932
+ let timer = null;
5933
+ let abortHandler = null;
5934
+ const cleanup = () => {
5935
+ if (timer)
5936
+ clearTimeout(timer);
5937
+ if (signal && abortHandler)
5938
+ signal.removeEventListener("abort", abortHandler);
5939
+ };
5940
+ state.pending = {
5941
+ id: invocationId,
5942
+ resolve: (v) => {
5943
+ cleanup();
5944
+ resolve2(v);
5945
+ },
5946
+ reject: (e) => {
5947
+ cleanup();
5948
+ reject(e);
5949
+ }
5950
+ };
5951
+ timer = setTimeout(() => {
5952
+ if (state.pending?.id !== invocationId)
5953
+ return;
5954
+ const pending = state.pending;
5955
+ state.pending = null;
5956
+ killWorker(state);
5957
+ pending.reject(ElsiumError.timeout(`sandbox(${handlerPath})`, timeoutMs));
5958
+ }, timeoutMs);
5959
+ if (signal) {
5960
+ abortHandler = () => {
5961
+ if (state.pending?.id !== invocationId)
5962
+ return;
5963
+ const pending = state.pending;
5964
+ state.pending = null;
5965
+ killWorker(state);
5966
+ pending.reject(new Error("Sandbox invocation aborted"));
5967
+ };
5968
+ signal.addEventListener("abort", abortHandler, { once: true });
5969
+ }
5970
+ try {
5971
+ worker.postMessage({ type: "invoke", invocationId, input });
5972
+ } catch (err2) {
5973
+ if (state.pending?.id === invocationId)
5974
+ state.pending = null;
5975
+ cleanup();
5976
+ reject(err2 instanceof Error ? err2 : new Error(String(err2)));
5977
+ }
5978
+ });
5979
+ }
5980
+ function createWorkerSandboxRunner(config, defaultTimeoutMs) {
5981
+ const handlerPath = typeof config.handler === "string" ? config.handler : config.handler.href;
5982
+ const timeoutMs = config.timeoutMs ?? defaultTimeoutMs;
5983
+ const state = {
5984
+ worker: null,
5985
+ pending: null,
5986
+ chain: Promise.resolve(),
5987
+ disposed: false
5988
+ };
5989
+ async function runOnce(input, signal) {
5990
+ if (state.disposed) {
5991
+ throw new Error("Sandbox runner has been disposed");
5992
+ }
5993
+ if (signal?.aborted) {
5994
+ throw new Error("Sandbox invocation aborted");
5995
+ }
5996
+ const worker = ensureWorker(state, handlerPath);
5997
+ const invocationId = generateId("si");
5998
+ return postInvocation(state, worker, invocationId, input, timeoutMs, handlerPath, signal);
5999
+ }
6000
+ return {
6001
+ async invoke(input, signal) {
6002
+ const previous = state.chain.catch(() => {
6003
+ return;
6004
+ });
6005
+ const next = previous.then(() => runOnce(input, signal));
6006
+ state.chain = next.catch(() => {
6007
+ return;
6008
+ });
6009
+ return next;
6010
+ },
6011
+ async dispose() {
6012
+ state.disposed = true;
6013
+ const w = state.worker;
6014
+ state.worker = null;
6015
+ rejectPending(state, new Error("Sandbox runner disposed"));
6016
+ if (w) {
6017
+ try {
6018
+ await w.terminate();
6019
+ } catch {}
6020
+ }
6021
+ }
6022
+ };
6023
+ }
6024
+
6025
+ // ../tools/src/define.ts
6026
+ function formatZodErrors(error) {
6027
+ return error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join(", ");
6028
+ }
6029
+ function buildExecutionFailure(toolCallId, startTime, error) {
6030
+ return {
6031
+ success: false,
6032
+ error,
6033
+ toolCallId,
6034
+ durationMs: Math.round(performance.now() - startTime)
6035
+ };
6036
+ }
6037
+ function buildExecutionSuccess(toolCallId, startTime, data) {
6038
+ return {
6039
+ success: true,
6040
+ data,
6041
+ toolCallId,
6042
+ durationMs: Math.round(performance.now() - startTime)
6043
+ };
6044
+ }
5832
6045
  function defineTool(config) {
5833
6046
  const input = config.input ?? config.parameters;
5834
6047
  if (!input) {
5835
6048
  throw ElsiumError.validation(`Tool "${config.name}" requires an input schema (use "input" or "parameters" key)`);
5836
6049
  }
5837
- const { name, description, output, handler, timeoutMs = 30000 } = config;
5838
- return {
6050
+ if (!config.handler && !config.sandbox) {
6051
+ throw ElsiumError.validation(`Tool "${config.name}" requires either an inline "handler" or a "sandbox" config`);
6052
+ }
6053
+ if (config.sandbox && config.sandbox.mode !== "worker") {
6054
+ throw ElsiumError.validation(`Tool "${config.name}" sandbox.mode must be "worker" (received "${config.sandbox.mode}")`);
6055
+ }
6056
+ const { name, description, output, sandbox, timeoutMs = 30000 } = config;
6057
+ const handler = config.handler;
6058
+ let sandboxRunner = null;
6059
+ function getSandboxRunner() {
6060
+ if (!sandboxRunner) {
6061
+ if (!sandbox) {
6062
+ throw ElsiumError.validation(`Tool "${name}" has no sandbox config`);
6063
+ }
6064
+ sandboxRunner = createWorkerSandboxRunner(sandbox, timeoutMs);
6065
+ }
6066
+ return sandboxRunner;
6067
+ }
6068
+ async function runHandler(parsedInput, context) {
6069
+ if (sandbox) {
6070
+ const result = await getSandboxRunner().invoke(parsedInput, context.signal);
6071
+ return result;
6072
+ }
6073
+ if (!handler) {
6074
+ throw ElsiumError.validation(`Tool "${name}" has no handler`);
6075
+ }
6076
+ return handler(parsedInput, context);
6077
+ }
6078
+ const tool = {
5839
6079
  name,
5840
6080
  description,
5841
6081
  inputSchema: input,
5842
6082
  outputSchema: output,
5843
6083
  timeoutMs,
6084
+ sandbox,
5844
6085
  async execute(rawInput, partialCtx) {
5845
6086
  const toolCallId = partialCtx?.toolCallId ?? generateId("tc");
5846
6087
  const startTime = performance.now();
5847
6088
  const parsed = input.safeParse(rawInput);
5848
6089
  if (!parsed.success) {
5849
- return {
5850
- success: false,
5851
- error: `Invalid input: ${parsed.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join(", ")}`,
5852
- toolCallId,
5853
- durationMs: Math.round(performance.now() - startTime)
5854
- };
6090
+ return buildExecutionFailure(toolCallId, startTime, `Invalid input: ${formatZodErrors(parsed.error)}`);
5855
6091
  }
5856
6092
  const controller = new AbortController;
5857
6093
  const timer = setTimeout(() => controller.abort(), timeoutMs);
@@ -5862,9 +6098,9 @@ function defineTool(config) {
5862
6098
  };
5863
6099
  try {
5864
6100
  const result = await Promise.race([
5865
- handler(parsed.data, context),
6101
+ runHandler(parsed.data, context),
5866
6102
  new Promise((_, reject) => {
5867
- controller.signal.addEventListener("abort", () => {
6103
+ context.signal?.addEventListener("abort", () => {
5868
6104
  reject(ElsiumError.timeout(name, timeoutMs));
5869
6105
  });
5870
6106
  })
@@ -5872,28 +6108,13 @@ function defineTool(config) {
5872
6108
  if (output) {
5873
6109
  const validated = output.safeParse(result);
5874
6110
  if (!validated.success) {
5875
- return {
5876
- success: false,
5877
- error: `Invalid output: ${validated.error.issues.map((i) => `${i.path.join(".")}: ${i.message}`).join(", ")}`,
5878
- toolCallId,
5879
- durationMs: Math.round(performance.now() - startTime)
5880
- };
6111
+ return buildExecutionFailure(toolCallId, startTime, `Invalid output: ${formatZodErrors(validated.error)}`);
5881
6112
  }
5882
6113
  }
5883
- return {
5884
- success: true,
5885
- data: result,
5886
- toolCallId,
5887
- durationMs: Math.round(performance.now() - startTime)
5888
- };
6114
+ return buildExecutionSuccess(toolCallId, startTime, result);
5889
6115
  } catch (error) {
5890
6116
  const message = error instanceof Error ? error.message : String(error);
5891
- return {
5892
- success: false,
5893
- error: message,
5894
- toolCallId,
5895
- durationMs: Math.round(performance.now() - startTime)
5896
- };
6117
+ return buildExecutionFailure(toolCallId, startTime, message);
5897
6118
  } finally {
5898
6119
  clearTimeout(timer);
5899
6120
  }
@@ -5904,8 +6125,16 @@ function defineTool(config) {
5904
6125
  description,
5905
6126
  inputSchema: zodToJsonSchema(input)
5906
6127
  };
6128
+ },
6129
+ async dispose() {
6130
+ if (sandboxRunner) {
6131
+ const r = sandboxRunner;
6132
+ sandboxRunner = null;
6133
+ await r.dispose();
6134
+ }
5907
6135
  }
5908
6136
  };
6137
+ return tool;
5909
6138
  }
5910
6139
  // ../tools/src/toolkit.ts
5911
6140
  init_src();
@@ -10215,9 +10444,6 @@ var currentTimeTool = defineTool({
10215
10444
  // ../agents/src/approval.ts
10216
10445
  init_src();
10217
10446
 
10218
- // ../agents/src/identity.ts
10219
- var DEFAULT_REPLAY_WINDOW_MS = 5 * 60 * 1000;
10220
-
10221
10447
  // ../agents/src/memory.ts
10222
10448
  init_src();
10223
10449
 
@@ -10246,12 +10472,15 @@ init_src();
10246
10472
  init_src();
10247
10473
  // ../agents/src/async-agent.ts
10248
10474
  init_src();
10475
+ var log8 = createLogger();
10249
10476
  // ../agents/src/session.ts
10250
10477
  init_src();
10251
10478
  // ../agents/src/react.ts
10252
10479
  init_src();
10253
10480
  // ../agents/src/scheduler.ts
10254
10481
  init_src();
10482
+ // ../agents/src/identity.ts
10483
+ var DEFAULT_REPLAY_WINDOW_MS = 5 * 60 * 1000;
10255
10484
  // ../rag/src/loaders.ts
10256
10485
  init_src();
10257
10486
  // ../rag/src/chunkers.ts
@@ -10266,7 +10495,7 @@ var vectorStoreRegistry = createRegistry("vectorStore");
10266
10495
  init_src();
10267
10496
  import { createRequire as createRequire2 } from "node:module";
10268
10497
  var require3 = createRequire2(import.meta.url);
10269
- var log8 = createLogger();
10498
+ var log9 = createLogger();
10270
10499
  var BLOCKED_KEYS3 = new Set(["__proto__", "constructor", "prototype"]);
10271
10500
  // ../rag/src/stores/qdrant.ts
10272
10501
  init_src();
@@ -10481,13 +10710,13 @@ init_src();
10481
10710
  init_src();
10482
10711
  // ../observe/src/tracer.ts
10483
10712
  init_src();
10484
- var log9 = createLogger();
10713
+ var log10 = createLogger();
10485
10714
  // ../observe/src/audit.ts
10486
10715
  import { createHash as createHash5 } from "node:crypto";
10487
10716
 
10488
10717
  // ../observe/src/audit-sink.ts
10489
10718
  init_src();
10490
- var log10 = createLogger();
10719
+ var log11 = createLogger();
10491
10720
  function getRetryDelay2(attempt, baseDelayMs, maxDelayMs) {
10492
10721
  const delay = Math.min(baseDelayMs * 2 ** attempt, maxDelayMs);
10493
10722
  return delay * (0.5 + Math.random() * 0.5);
@@ -10515,14 +10744,14 @@ async function deliverToSink(sink, events, retryConfig, deadLetterSink, onError)
10515
10744
  try {
10516
10745
  await sendWithRetry(sink, filtered, retryConfig);
10517
10746
  } catch (error) {
10518
- log10.error("Audit sink delivery failed", { sink: sink.name });
10747
+ log11.error("Audit sink delivery failed", { sink: sink.name });
10519
10748
  onError?.(sink.name, error);
10520
10749
  if (!deadLetterSink)
10521
10750
  return;
10522
10751
  try {
10523
10752
  await deadLetterSink.send(filtered);
10524
10753
  } catch (dlqError) {
10525
- log10.error("Dead letter sink delivery failed", { sink: deadLetterSink.name });
10754
+ log11.error("Dead letter sink delivery failed", { sink: deadLetterSink.name });
10526
10755
  onError?.(deadLetterSink.name, dlqError);
10527
10756
  }
10528
10757
  }
@@ -10566,7 +10795,7 @@ function createSinkManager(config) {
10566
10795
  dispatch(event) {
10567
10796
  if (buffer.length >= maxBufferSize) {
10568
10797
  buffer.shift();
10569
- log10.warn("Audit sink buffer full, dropping oldest event");
10798
+ log11.warn("Audit sink buffer full, dropping oldest event");
10570
10799
  }
10571
10800
  buffer.push(event);
10572
10801
  if (buffer.length >= batchSize)
@@ -10875,15 +11104,18 @@ function auditMiddleware(auditTrail) {
10875
11104
  }
10876
11105
  };
10877
11106
  }
11107
+ // ../observe/src/audit-sink-jsonl.ts
11108
+ init_src();
11109
+ var log12 = createLogger();
10878
11110
  // ../observe/src/experiment.ts
10879
11111
  init_src();
10880
- var log11 = createLogger();
11112
+ var log13 = createLogger();
10881
11113
  // ../observe/src/studio-exporter.ts
10882
11114
  init_src();
10883
- var log12 = createLogger();
11115
+ var log14 = createLogger();
10884
11116
  // ../observe/src/otel.ts
10885
11117
  init_src();
10886
- var log13 = createLogger();
11118
+ var log15 = createLogger();
10887
11119
  // ../app/src/app.ts
10888
11120
  init_src();
10889
11121
 
@@ -11109,7 +11341,7 @@ var outgoingEnded = Symbol("outgoingEnded");
11109
11341
  var incomingDraining = Symbol("incomingDraining");
11110
11342
  var MAX_DRAIN_BYTES = 64 * 1024 * 1024;
11111
11343
 
11112
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/compose.js
11344
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/compose.js
11113
11345
  var compose = (middleware, onError, onNotFound) => {
11114
11346
  return (context, next) => {
11115
11347
  let index = -1;
@@ -11153,10 +11385,10 @@ var compose = (middleware, onError, onNotFound) => {
11153
11385
  };
11154
11386
  };
11155
11387
 
11156
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/request/constants.js
11388
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/request/constants.js
11157
11389
  var GET_MATCH_RESULT = /* @__PURE__ */ Symbol();
11158
11390
 
11159
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/utils/body.js
11391
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/utils/body.js
11160
11392
  var parseBody = async (request, options = /* @__PURE__ */ Object.create(null)) => {
11161
11393
  const { all = false, dot = false } = options;
11162
11394
  const headers = request instanceof HonoRequest ? request.raw.headers : request.headers;
@@ -11227,7 +11459,7 @@ var handleParsingNestedValues = (form, key, value) => {
11227
11459
  });
11228
11460
  };
11229
11461
 
11230
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/utils/url.js
11462
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/utils/url.js
11231
11463
  var splitPath = (path) => {
11232
11464
  const paths = path.split("/");
11233
11465
  if (paths[0] === "") {
@@ -11427,7 +11659,7 @@ var getQueryParams = (url, key) => {
11427
11659
  };
11428
11660
  var decodeURIComponent_ = decodeURIComponent;
11429
11661
 
11430
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/request.js
11662
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/request.js
11431
11663
  var tryDecodeURIComponent = (str) => tryDecode(str, decodeURIComponent_);
11432
11664
  var HonoRequest = class {
11433
11665
  raw;
@@ -11538,7 +11770,7 @@ var HonoRequest = class {
11538
11770
  }
11539
11771
  };
11540
11772
 
11541
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/utils/html.js
11773
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/utils/html.js
11542
11774
  var HtmlEscapedCallbackPhase = {
11543
11775
  Stringify: 1,
11544
11776
  BeforeStream: 2,
@@ -11576,7 +11808,7 @@ var resolveCallback = async (str, phase, preserveCallbacks, context, buffer) =>
11576
11808
  }
11577
11809
  };
11578
11810
 
11579
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/context.js
11811
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/context.js
11580
11812
  var TEXT_PLAIN = "text/plain; charset=UTF-8";
11581
11813
  var setDefaultContentType = (contentType, headers) => {
11582
11814
  return {
@@ -11743,7 +11975,7 @@ var Context = class {
11743
11975
  };
11744
11976
  };
11745
11977
 
11746
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/router.js
11978
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/router.js
11747
11979
  var METHOD_NAME_ALL = "ALL";
11748
11980
  var METHOD_NAME_ALL_LOWERCASE = "all";
11749
11981
  var METHODS = ["get", "post", "put", "delete", "options", "patch"];
@@ -11751,10 +11983,10 @@ var MESSAGE_MATCHER_IS_ALREADY_BUILT = "Can not add a route since the matcher is
11751
11983
  var UnsupportedPathError = class extends Error {
11752
11984
  };
11753
11985
 
11754
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/utils/constants.js
11986
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/utils/constants.js
11755
11987
  var COMPOSED_HANDLER = "__COMPOSED_HANDLER";
11756
11988
 
11757
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/hono-base.js
11989
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/hono-base.js
11758
11990
  var notFoundHandler = (c) => {
11759
11991
  return c.text("404 Not Found", 404);
11760
11992
  };
@@ -11973,7 +12205,7 @@ var Hono = class _Hono {
11973
12205
  };
11974
12206
  };
11975
12207
 
11976
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/router/reg-exp-router/matcher.js
12208
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/router/reg-exp-router/matcher.js
11977
12209
  var emptyParam = [];
11978
12210
  function match(method, path) {
11979
12211
  const matchers = this.buildAllMatchers();
@@ -11994,7 +12226,7 @@ function match(method, path) {
11994
12226
  return match2(method, path);
11995
12227
  }
11996
12228
 
11997
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/router/reg-exp-router/node.js
12229
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/router/reg-exp-router/node.js
11998
12230
  var LABEL_REG_EXP_STR = "[^/]+";
11999
12231
  var ONLY_WILDCARD_REG_EXP_STR = ".*";
12000
12232
  var TAIL_WILDCARD_REG_EXP_STR = "(?:|/.*)";
@@ -12098,7 +12330,7 @@ var Node = class _Node {
12098
12330
  }
12099
12331
  };
12100
12332
 
12101
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/router/reg-exp-router/trie.js
12333
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/router/reg-exp-router/trie.js
12102
12334
  var Trie = class {
12103
12335
  #context = { varIndex: 0 };
12104
12336
  #root = new Node;
@@ -12154,7 +12386,7 @@ var Trie = class {
12154
12386
  }
12155
12387
  };
12156
12388
 
12157
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/router/reg-exp-router/router.js
12389
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/router/reg-exp-router/router.js
12158
12390
  var nullMatcher = [/^$/, [], /* @__PURE__ */ Object.create(null)];
12159
12391
  var wildcardRegExpCache = /* @__PURE__ */ Object.create(null);
12160
12392
  function buildWildcardRegExp(path) {
@@ -12319,7 +12551,7 @@ var RegExpRouter = class {
12319
12551
  }
12320
12552
  };
12321
12553
 
12322
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/router/reg-exp-router/prepared-router.js
12554
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/router/reg-exp-router/prepared-router.js
12323
12555
  var PreparedRegExpRouter = class {
12324
12556
  name = "PreparedRegExpRouter";
12325
12557
  #matchers;
@@ -12391,7 +12623,7 @@ var PreparedRegExpRouter = class {
12391
12623
  match = match;
12392
12624
  };
12393
12625
 
12394
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/router/smart-router/router.js
12626
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/router/smart-router/router.js
12395
12627
  var SmartRouter = class {
12396
12628
  name = "SmartRouter";
12397
12629
  #routers = [];
@@ -12446,7 +12678,7 @@ var SmartRouter = class {
12446
12678
  }
12447
12679
  };
12448
12680
 
12449
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/router/trie-router/node.js
12681
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/router/trie-router/node.js
12450
12682
  var emptyParams = /* @__PURE__ */ Object.create(null);
12451
12683
  var hasChildren = (children) => {
12452
12684
  for (const _ in children) {
@@ -12615,7 +12847,7 @@ var Node2 = class _Node2 {
12615
12847
  }
12616
12848
  };
12617
12849
 
12618
- // ../../node_modules/.bun/hono@4.12.12/node_modules/hono/dist/router/trie-router/router.js
12850
+ // ../../node_modules/.bun/hono@4.12.18/node_modules/hono/dist/router/trie-router/router.js
12619
12851
  var TrieRouter = class {
12620
12852
  name = "TrieRouter";
12621
12853
  #node;
@@ -12644,19 +12876,19 @@ init_src();
12644
12876
  init_src();
12645
12877
 
12646
12878
  // ../app/src/app.ts
12647
- var log14 = createLogger();
12879
+ var log16 = createLogger();
12648
12880
  // ../app/src/rbac.ts
12649
12881
  init_src();
12650
- var log15 = createLogger();
12882
+ var log17 = createLogger();
12651
12883
  // ../app/src/tenant.ts
12652
12884
  init_src();
12653
- var log16 = createLogger();
12885
+ var log18 = createLogger();
12654
12886
  var tenantUsage = new Map;
12655
12887
  // ../mcp/src/client.ts
12656
12888
  init_src();
12657
12889
  // ../mcp/src/server.ts
12658
12890
  init_src();
12659
- var log17 = createLogger();
12891
+ var log19 = createLogger();
12660
12892
  // ../mcp/src/trust.ts
12661
12893
  init_src();
12662
12894
  var MAX_TOOL_OUTPUT_SIZE = 1024 * 1024;
@@ -1 +1 @@
1
- {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAoJA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,iBAwD/C"}
1
+ {"version":3,"file":"eval.d.ts","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"AAwIA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,iBAwD/C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elsium-ai/cli",
3
- "version": "0.10.0",
3
+ "version": "0.12.0",
4
4
  "description": "CLI tool for ElsiumAI projects",
5
5
  "license": "MIT",
6
6
  "author": "Eric Utrera <ebutrera9103@gmail.com>",
@@ -24,9 +24,9 @@
24
24
  "dev": "bun --watch src/cli.ts"
25
25
  },
26
26
  "dependencies": {
27
- "@elsium-ai/core": "^0.10.0",
28
- "@elsium-ai/observe": "^0.10.0",
29
- "elsium-ai": "^0.10.0"
27
+ "@elsium-ai/core": "^0.12.0",
28
+ "@elsium-ai/observe": "^0.12.0",
29
+ "elsium-ai": "^0.12.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "typescript": "^5.7.0"