elsium-ai 0.4.0 → 0.4.2

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/index.d.ts CHANGED
@@ -11,8 +11,8 @@
11
11
  */
12
12
  export { ElsiumError, ok, err, isOk, isErr, unwrap, unwrapOr, tryCatch, tryCatchSync, createStream, createLogger, env, envNumber, envBool, generateId, generateTraceId, extractText, sleep, retry, zodToJsonSchema, createRegistry, countTokens, createContextManager, } from '@elsium-ai/core';
13
13
  export type { Role, ContentPart, TextContent, ImageContent, AudioContent, DocumentContent, Message, ToolCall, ToolResult, TokenUsage, CostBreakdown, StopReason, LLMResponse, StreamEvent, XRayData, StreamCheckpoint, ProviderConfig, CompletionRequest, ToolDefinition, TenantContext, Middleware, Result, Ok, Err, ElsiumStream, ResilientStreamOptions, LogLevel, Logger, ErrorCode, Registry, ContextStrategy, ContextManagerConfig, ContextManager, } from '@elsium-ai/core';
14
- export { gateway, registerProviderFactory, calculateCost, registerPricing, composeMiddleware, loggingMiddleware, costTrackingMiddleware, xrayMiddleware, createAnthropicProvider, createOpenAIProvider, createGoogleProvider, createProviderMesh, securityMiddleware, detectPromptInjection, detectJailbreak, redactSecrets, checkBlockedPatterns, cacheMiddleware, createInMemoryCache, outputGuardrailMiddleware, createBatch, } from '@elsium-ai/gateway';
15
- export type { LLMProvider, ProviderFactory, Gateway, GatewayConfig, XRayStore, ProviderMeshConfig, ProviderEntry, RoutingStrategy, ProviderMesh, SecurityMiddlewareConfig, SecurityViolation, SecurityResult, CacheAdapter, CacheStats, CacheMiddlewareConfig, OutputGuardrailConfig, OutputGuardrailRule, OutputViolation, BatchConfig, BatchResult, BatchResultItem, } from '@elsium-ai/gateway';
14
+ export { gateway, registerProviderFactory, registerProvider, getProviderFactory, listProviders, registerProviderMetadata, getProviderMetadata, calculateCost, registerPricing, composeMiddleware, loggingMiddleware, costTrackingMiddleware, xrayMiddleware, createAnthropicProvider, createOpenAIProvider, createGoogleProvider, createProviderMesh, securityMiddleware, detectPromptInjection, detectJailbreak, redactSecrets, checkBlockedPatterns, cacheMiddleware, createInMemoryCache, outputGuardrailMiddleware, createBatch, } from '@elsium-ai/gateway';
15
+ export type { LLMProvider, ProviderFactory, ProviderMetadata, ModelPricing, ModelTier, Gateway, GatewayConfig, XRayStore, ProviderMeshConfig, ProviderEntry, RoutingStrategy, ProviderMesh, SecurityMiddlewareConfig, SecurityViolation, SecurityResult, CacheAdapter, CacheStats, CacheMiddlewareConfig, OutputGuardrailConfig, OutputGuardrailRule, OutputViolation, BatchConfig, BatchResult, BatchResultItem, } from '@elsium-ai/gateway';
16
16
  export { defineAgent, runSequential, runParallel, runSupervisor, createMemory, createSemanticValidator, createAgentSecurity, createConfidenceScorer, executeStateMachine, createInMemoryMemoryStore, createSqliteMemoryStore, } from '@elsium-ai/agents';
17
17
  export type { Agent, AgentDependencies, AgentConfig, AgentResult, AgentRunOptions, GuardrailConfig, AgentHooks, Memory, MemoryConfig, SemanticGuardrailConfig, SemanticCheck, SemanticCheckResult, SemanticValidationResult, SemanticValidator, AgentSecurityConfig, AgentSecurityResult, ConfidenceConfig, ConfidenceResult, StateDefinition, StateHistoryEntry, StateMachineResult, MemoryStore, SqliteMemoryStoreConfig, } from '@elsium-ai/agents';
18
18
  export { defineTool, createToolkit, httpFetchTool, calculatorTool, jsonParseTool, currentTimeTool, formatToolResult, formatToolResultAsText, } from '@elsium-ai/tools';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -974,6 +974,9 @@ function createShutdownManager(config) {
974
974
  // ../gateway/src/provider.ts
975
975
  var providerRegistry = new Map;
976
976
  var metadataRegistry = new Map;
977
+ function registerProvider(name, factory) {
978
+ providerRegistry.set(name, factory);
979
+ }
977
980
  function getProviderFactory(name) {
978
981
  return providerRegistry.get(name);
979
982
  }
@@ -2365,6 +2368,7 @@ registerProviderMetadata("google", {
2365
2368
  });
2366
2369
  function registerProviderFactory(name, factory) {
2367
2370
  PROVIDER_FACTORIES[name] = factory;
2371
+ registerProvider(name, factory);
2368
2372
  }
2369
2373
  function validateGatewayConfig(config) {
2370
2374
  const factory = PROVIDER_FACTORIES[config.provider] ?? getProviderFactory(config.provider);
@@ -2732,6 +2736,7 @@ function redactPatterns(text, patterns) {
2732
2736
  let redacted = text;
2733
2737
  for (const { pattern, detail, replacement } of patterns) {
2734
2738
  const regex = new RegExp(pattern.source, pattern.flags);
2739
+ regex.lastIndex = 0;
2735
2740
  const result = redacted.replace(regex, replacement);
2736
2741
  if (result !== redacted) {
2737
2742
  found.push({ type: "secret_detected", detail, severity: "medium" });
@@ -2763,7 +2768,8 @@ function redactSecrets(text, piiTypes) {
2763
2768
  }
2764
2769
  function checkBlockedPatterns(text, patterns) {
2765
2770
  const violations = [];
2766
- for (const pattern of patterns) {
2771
+ for (const raw of patterns) {
2772
+ const pattern = typeof raw === "string" ? new RegExp(raw, "i") : raw;
2767
2773
  pattern.lastIndex = 0;
2768
2774
  if (pattern.test(text)) {
2769
2775
  violations.push({
@@ -3413,7 +3419,11 @@ function createProviderMesh(config) {
3413
3419
  }
3414
3420
  // ../tools/src/define.ts
3415
3421
  function defineTool(config) {
3416
- const { name, description, input, output, handler, timeoutMs = 30000 } = config;
3422
+ const input = config.input ?? config.parameters;
3423
+ if (!input) {
3424
+ throw ElsiumError.validation(`Tool "${config.name}" requires an input schema (use "input" or "parameters" key)`);
3425
+ }
3426
+ const { name, description, output, handler, timeoutMs = 30000 } = config;
3417
3427
  return {
3418
3428
  name,
3419
3429
  description,
@@ -8122,6 +8132,21 @@ var SECRET_PATTERNS3 = [
8122
8132
  detail: "API public key detected",
8123
8133
  replacement: "[REDACTED_API_KEY]"
8124
8134
  },
8135
+ {
8136
+ pattern: /\bghp_[a-zA-Z0-9]{36,}\b/g,
8137
+ detail: "GitHub personal access token detected",
8138
+ replacement: "[REDACTED_GITHUB_TOKEN]"
8139
+ },
8140
+ {
8141
+ pattern: /\bgho_[a-zA-Z0-9]{36,}\b/g,
8142
+ detail: "GitHub OAuth token detected",
8143
+ replacement: "[REDACTED_GITHUB_TOKEN]"
8144
+ },
8145
+ {
8146
+ pattern: /\bgithub_pat_[a-zA-Z0-9_]{20,}\b/g,
8147
+ detail: "GitHub fine-grained token detected",
8148
+ replacement: "[REDACTED_GITHUB_TOKEN]"
8149
+ },
8125
8150
  {
8126
8151
  pattern: /\bapi_key[=:]\s*["']?[a-zA-Z0-9_-]{16,}["']?/gi,
8127
8152
  detail: "API key assignment detected",
@@ -8652,7 +8677,26 @@ async function safeHook2(fn) {
8652
8677
  await fn();
8653
8678
  } catch (_) {}
8654
8679
  }
8680
+ function resolveDependencies(config, deps) {
8681
+ if (deps)
8682
+ return deps;
8683
+ if (typeof config.provider === "object" && config.provider !== null) {
8684
+ const provider = config.provider;
8685
+ return { complete: (req) => provider.complete(req) };
8686
+ }
8687
+ if (!config.provider || !config.apiKey) {
8688
+ throw ElsiumError.validation("Either provide AgentDependencies as second argument, set provider and apiKey in config, or pass an LLMProvider object as provider");
8689
+ }
8690
+ const gw = gateway({
8691
+ provider: config.provider,
8692
+ apiKey: config.apiKey,
8693
+ baseUrl: config.baseUrl,
8694
+ model: config.model
8695
+ });
8696
+ return { complete: (req) => gw.complete(req) };
8697
+ }
8655
8698
  function defineAgent(config, deps) {
8699
+ const resolvedDeps = resolveDependencies(config, deps);
8656
8700
  const memory = createMemory(config.memory ?? { strategy: "sliding-window", maxMessages: 50 });
8657
8701
  const toolMap = new Map((config.tools ?? []).map((t) => [t.name, t]));
8658
8702
  const guardrails = {
@@ -8663,7 +8707,7 @@ function defineAgent(config, deps) {
8663
8707
  semantic: config.guardrails?.semantic,
8664
8708
  security: config.guardrails?.security
8665
8709
  };
8666
- const semanticValidator = guardrails.semantic ? createSemanticValidator(guardrails.semantic, deps.complete) : null;
8710
+ const semanticValidator = guardrails.semantic ? createSemanticValidator(guardrails.semantic, resolvedDeps.complete) : null;
8667
8711
  const agentSecurity = guardrails.security ? createAgentSecurity(guardrails.security) : null;
8668
8712
  const approvalGate = config.guardrails?.approval ? createApprovalGate(config.guardrails.approval) : null;
8669
8713
  const confidenceScorer = config.confidence ? createConfidenceScorer(typeof config.confidence === "boolean" ? {} : config.confidence) : null;
@@ -8805,7 +8849,7 @@ function defineAgent(config, deps) {
8805
8849
  checkAborted(options);
8806
8850
  checkBudget(totalInputTokens, totalOutputTokens);
8807
8851
  const request = buildCompletionRequest2(conversationMessages);
8808
- const response = await deps.complete(request);
8852
+ const response = await resolvedDeps.complete(request);
8809
8853
  totalInputTokens += response.usage.inputTokens;
8810
8854
  totalOutputTokens += response.usage.outputTokens;
8811
8855
  totalCost += response.cost.totalCost;
@@ -8884,7 +8928,7 @@ function defineAgent(config, deps) {
8884
8928
  async run(input, options = {}) {
8885
8929
  validateInputText(input);
8886
8930
  if (config.states && config.initialState) {
8887
- return executeStateMachine(config, { states: config.states, initialState: config.initialState }, deps, input, options);
8931
+ return executeStateMachine(config, { states: config.states, initialState: config.initialState }, resolvedDeps, input, options);
8888
8932
  }
8889
8933
  const userMessage = { role: "user", content: input };
8890
8934
  return executeLoop([userMessage], options);
@@ -8898,7 +8942,7 @@ function defineAgent(config, deps) {
8898
8942
  if (config.states && config.initialState) {
8899
8943
  const inputText = messages.filter((m) => m.role === "user").map((m) => extractText(m.content)).join(`
8900
8944
  `);
8901
- return executeStateMachine(config, { states: config.states, initialState: config.initialState }, deps, inputText || "", options);
8945
+ return executeStateMachine(config, { states: config.states, initialState: config.initialState }, resolvedDeps, inputText || "", options);
8902
8946
  }
8903
8947
  return executeLoop(messages, options);
8904
8948
  },
@@ -15178,7 +15222,9 @@ export {
15178
15222
  runParallel,
15179
15223
  runEvalSuite,
15180
15224
  retry,
15225
+ registerProviderMetadata,
15181
15226
  registerProviderFactory,
15227
+ registerProvider,
15182
15228
  registerPricing,
15183
15229
  redactSecrets,
15184
15230
  rag,
@@ -15189,11 +15235,14 @@ export {
15189
15235
  mockProvider,
15190
15236
  loggingMiddleware,
15191
15237
  loadFixture,
15238
+ listProviders,
15192
15239
  jsonParseTool,
15193
15240
  isOk,
15194
15241
  isErr,
15195
15242
  injectTraceContext,
15196
15243
  httpFetchTool,
15244
+ getProviderMetadata,
15245
+ getProviderFactory,
15197
15246
  generateTraceId,
15198
15247
  generateId,
15199
15248
  gateway,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elsium-ai",
3
- "version": "0.4.0",
3
+ "version": "0.4.2",
4
4
  "description": "ElsiumAI — A high-performance, TypeScript-first AI framework",
5
5
  "license": "MIT",
6
6
  "author": "Eric Utrera <ebutrera9103@gmail.com>",
@@ -25,17 +25,17 @@
25
25
  "build": "bun build ./src/index.ts --outdir ./dist --target node && bun x tsc -p tsconfig.build.json --emitDeclarationOnly"
26
26
  },
27
27
  "dependencies": {
28
- "@elsium-ai/core": "^0.4.0",
29
- "@elsium-ai/gateway": "^0.4.0",
30
- "@elsium-ai/agents": "^0.4.0",
31
- "@elsium-ai/tools": "^0.4.0",
32
- "@elsium-ai/rag": "^0.4.0",
33
- "@elsium-ai/workflows": "^0.4.0",
34
- "@elsium-ai/observe": "^0.4.0",
35
- "@elsium-ai/app": "^0.4.0",
36
- "@elsium-ai/testing": "^0.4.0",
37
- "@elsium-ai/mcp": "^0.4.0",
38
- "@elsium-ai/client": "^0.4.0"
28
+ "@elsium-ai/core": "^0.4.2",
29
+ "@elsium-ai/gateway": "^0.4.2",
30
+ "@elsium-ai/agents": "^0.4.2",
31
+ "@elsium-ai/tools": "^0.4.2",
32
+ "@elsium-ai/rag": "^0.4.2",
33
+ "@elsium-ai/workflows": "^0.4.2",
34
+ "@elsium-ai/observe": "^0.4.2",
35
+ "@elsium-ai/app": "^0.4.2",
36
+ "@elsium-ai/testing": "^0.4.2",
37
+ "@elsium-ai/mcp": "^0.4.2",
38
+ "@elsium-ai/client": "^0.4.2"
39
39
  },
40
40
  "devDependencies": {
41
41
  "typescript": "^5.7.0"