aieo 0.1.29 → 0.1.30

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.cjs CHANGED
@@ -38,6 +38,7 @@ __export(index_exports, {
38
38
  callGenerateObject: () => callGenerateObject,
39
39
  callGenerateText: () => callGenerateText,
40
40
  callModel: () => callModel,
41
+ consoleLogger: () => consoleLogger,
41
42
  getApiKeyForProvider: () => getApiKeyForProvider,
42
43
  getModel: () => getModel,
43
44
  getProviderOptions: () => getProviderOptions,
@@ -13758,36 +13759,40 @@ function createOpenAI(options = {}) {
13758
13759
  var openai = createOpenAI();
13759
13760
 
13760
13761
  // src/provider.ts
13762
+ var import_ai_sdk_provider = require("@openrouter/ai-sdk-provider");
13761
13763
  var PROVIDERS = [
13762
13764
  "anthropic",
13763
13765
  "google",
13764
13766
  "openai",
13767
+ "openrouter",
13765
13768
  "claude_code"
13766
13769
  ];
13767
- var SOTA = {
13768
- anthropic: "claude-sonnet-4-5",
13769
- google: "gemini-2.5-pro-preview-05-06",
13770
- openai: "gpt-5",
13771
- claude_code: "sonnet"
13772
- };
13773
- var TOKEN_PRICING = {
13770
+ var MODELS = {
13774
13771
  anthropic: {
13775
- inputTokenPrice: 3,
13776
- outputTokenPrice: 15
13772
+ sonnet: "claude-sonnet-4-5",
13773
+ opus: "claude-opus-4-5",
13774
+ haiku: "claude-haiku-4-5"
13777
13775
  },
13778
13776
  google: {
13779
- inputTokenPrice: 1.25,
13780
- outputTokenPrice: 5
13777
+ gemini: "gemini-3-pro-preview"
13781
13778
  },
13782
13779
  openai: {
13783
- inputTokenPrice: 2.5,
13784
- outputTokenPrice: 10
13780
+ gpt: "gpt-5"
13785
13781
  },
13786
13782
  claude_code: {
13787
- inputTokenPrice: 3,
13788
- outputTokenPrice: 15
13783
+ sonnet: "sonnet"
13784
+ },
13785
+ openrouter: {
13786
+ kimi: "moonshotai/kimi-k2.5"
13789
13787
  }
13790
13788
  };
13789
+ var DEFAULT_MODELS = {
13790
+ anthropic: MODELS.anthropic.sonnet,
13791
+ google: MODELS.google.gemini,
13792
+ openai: MODELS.openai.gpt,
13793
+ claude_code: MODELS.claude_code.sonnet,
13794
+ openrouter: MODELS.openrouter.kimi
13795
+ };
13791
13796
  function getApiKeyForProvider(provider) {
13792
13797
  let apiKey;
13793
13798
  switch (provider) {
@@ -13809,23 +13814,47 @@ function getApiKeyForProvider(provider) {
13809
13814
  }
13810
13815
  return apiKey;
13811
13816
  }
13812
- async function getModel(provider, apiKey, cwd, executablePath) {
13817
+ function getModelForProvider(provider, modelName) {
13818
+ const model = MODELS[provider][modelName];
13819
+ if (!model) {
13820
+ throw new Error(
13821
+ `Model "${modelName}" is not available for provider "${provider}". Available models: ${Object.keys(MODELS[provider]).join(", ")}`
13822
+ );
13823
+ }
13824
+ return model;
13825
+ }
13826
+ function getModel(provider, opts) {
13827
+ if (typeof opts === "string") {
13828
+ opts = { apiKey: opts };
13829
+ }
13830
+ const apiKey = opts?.apiKey || getApiKeyForProvider(provider);
13831
+ const modelId = opts?.modelName ? getModelForProvider(provider, opts.modelName) : DEFAULT_MODELS[provider];
13832
+ if (opts?.logger) {
13833
+ opts.logger.info(
13834
+ `Getting model for provider: ${provider}, model: ${modelId}`
13835
+ );
13836
+ }
13813
13837
  switch (provider) {
13814
13838
  case "anthropic":
13815
13839
  const anthropic2 = createAnthropic({
13816
13840
  apiKey
13817
13841
  });
13818
- return anthropic2(SOTA[provider]);
13842
+ return anthropic2(modelId);
13819
13843
  case "google":
13820
13844
  const google2 = createGoogleGenerativeAI({
13821
13845
  apiKey
13822
13846
  });
13823
- return google2(SOTA[provider]);
13847
+ return google2(modelId);
13824
13848
  case "openai":
13825
13849
  const openai2 = createOpenAI({
13826
13850
  apiKey
13827
13851
  });
13828
- return openai2(SOTA[provider]);
13852
+ return openai2(modelId);
13853
+ case "openrouter":
13854
+ const openrouter = (0, import_ai_sdk_provider.createOpenRouter)({
13855
+ apiKey
13856
+ });
13857
+ return openrouter(modelId);
13829
13858
  // case "claude_code":
13830
13859
  // try {
13831
13860
  // const customProvider = createClaudeCode({
@@ -13851,6 +13880,28 @@ async function getModel(provider, apiKey, cwd, executablePath) {
13851
13880
  throw new Error(`Unsupported provider: ${provider}`);
13852
13881
  }
13853
13882
  }
13883
+ var TOKEN_PRICING = {
13884
+ anthropic: {
13885
+ inputTokenPrice: 3,
13886
+ outputTokenPrice: 15
13887
+ },
13888
+ google: {
13889
+ inputTokenPrice: 1.25,
13890
+ outputTokenPrice: 5
13891
+ },
13892
+ openai: {
13893
+ inputTokenPrice: 2.5,
13894
+ outputTokenPrice: 10
13895
+ },
13896
+ claude_code: {
13897
+ inputTokenPrice: 3,
13898
+ outputTokenPrice: 15
13899
+ },
13900
+ openrouter: {
13901
+ inputTokenPrice: 0.6,
13902
+ outputTokenPrice: 3
13903
+ }
13904
+ };
13854
13905
  function getTokenPricing(provider) {
13855
13906
  return TOKEN_PRICING[provider];
13856
13907
  }
@@ -13875,6 +13926,10 @@ function getProviderOptions(provider, thinkingSpeed) {
13875
13926
  return {
13876
13927
  openai: {}
13877
13928
  };
13929
+ case "openrouter":
13930
+ return {
13931
+ openrouter: {}
13932
+ };
13878
13933
  case "claude_code":
13879
13934
  return;
13880
13935
  default:
@@ -13893,9 +13948,15 @@ async function callModel(opts) {
13893
13948
  parser,
13894
13949
  thinkingSpeed,
13895
13950
  cwd,
13896
- executablePath
13951
+ executablePath,
13952
+ modelName
13897
13953
  } = opts;
13898
- const model = await getModel(provider, apiKey, cwd, executablePath);
13954
+ const model = await getModel(provider, {
13955
+ apiKey,
13956
+ cwd,
13957
+ executablePath,
13958
+ modelName
13959
+ });
13899
13960
  const providerOptions = getProviderOptions(provider, thinkingSpeed);
13900
13961
  console.log(`Calling ${provider} with options:`, providerOptions);
13901
13962
  const result = (0, import_ai.streamText)({
@@ -14011,6 +14072,30 @@ function getAnthropicTool(apiKey, toolName) {
14011
14072
  throw new Error(`Unsupported tool: ${toolName}`);
14012
14073
  }
14013
14074
  }
14075
+
14076
+ // src/logger.ts
14077
+ function consoleLogger(name17) {
14078
+ return {
14079
+ info(message) {
14080
+ console.log(`[${name17}] ${message}`);
14081
+ },
14082
+ error(message) {
14083
+ console.error(`[${name17}] ${message}`);
14084
+ },
14085
+ warn(message) {
14086
+ console.warn(`[${name17}] ${message}`);
14087
+ },
14088
+ debug(message) {
14089
+ console.debug(`[${name17}] ${message}`);
14090
+ },
14091
+ trace(message) {
14092
+ console.trace(`[${name17}] ${message}`);
14093
+ },
14094
+ fatal(message) {
14095
+ console.error(`==FATAL== [${name17}] ${message}`);
14096
+ }
14097
+ };
14098
+ }
14014
14099
  // Annotate the CommonJS export names for ESM import in node:
14015
14100
  0 && (module.exports = {
14016
14101
  ConversationStorage,
@@ -14021,6 +14106,7 @@ function getAnthropicTool(apiKey, toolName) {
14021
14106
  callGenerateObject,
14022
14107
  callGenerateText,
14023
14108
  callModel,
14109
+ consoleLogger,
14024
14110
  getApiKeyForProvider,
14025
14111
  getModel,
14026
14112
  getProviderOptions,