@discomedia/utils 1.0.70 → 1.0.72

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.
Files changed (34) hide show
  1. package/dist/index-frontend.cjs +2392 -173
  2. package/dist/index-frontend.cjs.map +1 -1
  3. package/dist/index-frontend.mjs +2390 -174
  4. package/dist/index-frontend.mjs.map +1 -1
  5. package/dist/index.cjs +2392 -173
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.mjs +2390 -174
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/package.json +4 -4
  10. package/dist/test.js +10466 -9003
  11. package/dist/test.js.map +1 -1
  12. package/dist/types/index-frontend.d.ts +2 -1
  13. package/dist/types/index-frontend.d.ts.map +1 -1
  14. package/dist/types/index.d.ts +3 -2
  15. package/dist/types/index.d.ts.map +1 -1
  16. package/dist/types/llm-config.d.ts +19 -4
  17. package/dist/types/llm-config.d.ts.map +1 -1
  18. package/dist/types/llm-images.d.ts.map +1 -1
  19. package/dist/types/llm-openai.d.ts +9 -2
  20. package/dist/types/llm-openai.d.ts.map +1 -1
  21. package/dist/types/types/llm-types.d.ts +60 -4
  22. package/dist/types/types/llm-types.d.ts.map +1 -1
  23. package/dist/types-frontend/index-frontend.d.ts +2 -1
  24. package/dist/types-frontend/index-frontend.d.ts.map +1 -1
  25. package/dist/types-frontend/index.d.ts +3 -2
  26. package/dist/types-frontend/index.d.ts.map +1 -1
  27. package/dist/types-frontend/llm-config.d.ts +19 -4
  28. package/dist/types-frontend/llm-config.d.ts.map +1 -1
  29. package/dist/types-frontend/llm-images.d.ts.map +1 -1
  30. package/dist/types-frontend/llm-openai.d.ts +9 -2
  31. package/dist/types-frontend/llm-openai.d.ts.map +1 -1
  32. package/dist/types-frontend/types/llm-types.d.ts +60 -4
  33. package/dist/types-frontend/types/llm-types.d.ts.map +1 -1
  34. package/package.json +4 -4
@@ -3,12 +3,13 @@ import * as llm from './llm-openai';
3
3
  import * as llmImages from './llm-images';
4
4
  import * as time from './market-time';
5
5
  export * from './types';
6
- export { supportsTemperature } from './llm-openai';
6
+ export { supportsTemperature, uploadVisionFile } from './llm-openai';
7
7
  export { OPENAI_MODELS, OPENROUTER_MODELS } from './types/llm-types';
8
8
  export declare const disco: {
9
9
  types: typeof Types;
10
10
  llm: {
11
11
  call: typeof llm.makeLLMCall;
12
+ uploadVisionFile: typeof llm.uploadVisionFile;
12
13
  seek: <T = string>(content: string | import("openai/resources/index.mjs").ChatCompletionContentPart[], responseFormat?: Types.OpenAIResponseFormat, options?: Types.LLMOptions) => Promise<Types.LLMResponse<T>>;
13
14
  images: typeof llmImages.makeImagesCall;
14
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index-frontend.d.ts","sourceRoot":"","sources":["../../src/index-frontend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAGtC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErE,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
1
+ {"version":3,"file":"index-frontend.d.ts","sourceRoot":"","sources":["../../src/index-frontend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAGtC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErE,eAAO,MAAM,KAAK;;;;;;;;;CASjB,CAAC"}
@@ -9,8 +9,8 @@ import { PerformanceTimer } from './performance-timer';
9
9
  export * from './types';
10
10
  export { AlpacaTradingAPI } from './alpaca-trading-api';
11
11
  export { AlpacaMarketDataAPI } from './alpaca-market-data-api';
12
- export { supportsTemperature } from './llm-openai';
13
- export { OPENAI_MODELS, OPENROUTER_MODELS } from './types/llm-types';
12
+ export { supportsTemperature, uploadVisionFile } from './llm-openai';
13
+ export { OPENAI_IMAGE_MODELS, OPENAI_MODELS, OPENROUTER_MODELS } from './types/llm-types';
14
14
  export declare const disco: {
15
15
  types: typeof Types;
16
16
  alpaca: {
@@ -26,6 +26,7 @@ export declare const disco: {
26
26
  };
27
27
  llm: {
28
28
  call: typeof llm.makeLLMCall;
29
+ uploadVisionFile: typeof llm.uploadVisionFile;
29
30
  seek: <T = string>(content: string | import("openai/resources/index.mjs").ChatCompletionContentPart[], responseFormat?: Types.OpenAIResponseFormat, options?: Types.LLMOptions) => Promise<Types.LLMResponse<T>>;
30
31
  images: typeof llmImages.makeImagesCall;
31
32
  open: typeof openrouter.makeOpenRouterCall;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErE,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CjB,CAAC"}
@@ -1,4 +1,6 @@
1
- export declare const DEFAULT_MODEL = "gpt-5-mini";
1
+ import type { ImageGenerateParams } from 'openai/resources/images';
2
+ import type { OpenAIImageModel, OpenAIModel } from './types/llm-types';
3
+ export declare const DEFAULT_MODEL: OpenAIModel;
2
4
  export declare const DEFAULT_DEVELOPER_PROMPT = "\n You are a highly experienced coding, business analyst, and financial analyst associate.\n Help with coding, business process design and analysis, data generation and refinement, content creation, financial analysis, and more.\n When presented with a coding problem, logic problem, or other problem benefiting from systematic thinking, think through it step by step before giving your final answer.\n Present complete, high-confidence, final answers only. Do not rephrase to be more brief or omit parts of answers.\n Respond only with final content (e.g. code, a json or yaml object, a formatted string, or a markdown document) and nothing else. Do not reply with a preamble, introduction, or conclusion.\n";
3
5
  interface AIModelCosts {
4
6
  [modelName: string]: {
@@ -10,16 +12,29 @@ interface AIModelCosts {
10
12
  /** Token costs in USD per 1M tokens. Last updated May 2026. */
11
13
  export declare const openAiModelCosts: AIModelCosts;
12
14
  export declare const deepseekModelCosts: AIModelCosts;
13
- /** Image generation costs in USD per image. Based on OpenAI pricing as of Feb 2025. */
14
- export declare const openAiImageCosts: Record<string, number>;
15
+ export type PricedOpenAIImageModel = 'gpt-image-2' | 'gpt-image-2-2026-04-21' | 'gpt-image-1.5' | 'gpt-image-1' | 'gpt-image-1-mini';
16
+ export type OpenAIImagePricingQuality = 'low' | 'medium' | 'high';
17
+ export type OpenAIImagePricingSize = '1024x1024' | '1024x1536' | '1536x1024';
18
+ export declare const DEFAULT_IMAGE_PRICING_QUALITY: OpenAIImagePricingQuality;
19
+ export declare const DEFAULT_IMAGE_PRICING_SIZE: OpenAIImagePricingSize;
20
+ /**
21
+ * Estimated image output costs in USD per image for common GPT Image sizes.
22
+ * Last updated May 2026 from the OpenAI image generation guide. Text and image
23
+ * input token costs for prompts and edit inputs are not included.
24
+ */
25
+ export declare const openAiImageCostByQualityAndSize: Record<PricedOpenAIImageModel, Record<OpenAIImagePricingQuality, Record<OpenAIImagePricingSize, number>>>;
26
+ /** Default image output costs in USD per image for legacy callers. */
27
+ export declare const openAiImageCosts: Record<PricedOpenAIImageModel, number>;
15
28
  /**
16
29
  * Calculates the cost of generating images using OpenAI's Images API.
17
30
  *
18
31
  * @param model The image generation model name.
19
32
  * @param imageCount The number of images generated.
33
+ * @param quality The requested image quality.
34
+ * @param size The requested image size.
20
35
  * @returns The cost of generating the images in USD.
21
36
  */
22
- export declare function calculateImageCost(model: string, imageCount: number): number;
37
+ export declare function calculateImageCost(model: OpenAIImageModel | string, imageCount: number, quality?: ImageGenerateParams['quality'], size?: ImageGenerateParams['size']): number;
23
38
  /**
24
39
  * Calculates the cost of calling a language model in USD based on the provider and model, tokens, and given costs per 1M tokens.
25
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"llm-config.d.ts","sourceRoot":"","sources":["../../src/llm-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,eAAe,CAAC;AAE1C,eAAO,MAAM,wBAAwB,wtBAMpC,CAAC;AAEF,UAAU,YAAY;IACpB,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAMD,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,EAAE,YA2D9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAWhC,CAAC;AAMF,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGnD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAS5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAgCR"}
1
+ {"version":3,"file":"llm-config.d.ts","sourceRoot":"","sources":["../../src/llm-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEvE,eAAO,MAAM,aAAa,EAAE,WAA4B,CAAC;AAEzD,eAAO,MAAM,wBAAwB,wtBAMpC,CAAC;AAEF,UAAU,YAAY;IACpB,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAMD,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,EAAE,YA2D9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAWhC,CAAC;AAMF,MAAM,MAAM,sBAAsB,GAC9B,aAAa,GACb,wBAAwB,GACxB,eAAe,GACf,aAAa,GACb,kBAAkB,CAAC;AACvB,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE7E,eAAO,MAAM,6BAA6B,EAAE,yBAAkC,CAAC;AAC/E,eAAO,MAAM,0BAA0B,EAAE,sBAAoC,CAAC;AAW9E;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAClD,sBAAsB,EACtB,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAuF1E,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAanE,CAAC;AA0BF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAChC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,GACjC,MAAM,CAYR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAgCR"}
@@ -1 +1 @@
1
- {"version":3,"file":"llm-images.d.ts","sourceRoot":"","sources":["../../src/llm-images.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,eAAe,EAAiB,MAAM,SAAS,CAAC;AAE3F,OAAO,EAAuB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,eAAe,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,QAAQ,CAAC;KACxB,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,EAAE,eAAiC,CAAC;AAEpE,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,KAAG,eAA+C,CAAC;AAI5G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC,CAoGjC"}
1
+ {"version":3,"file":"llm-images.d.ts","sourceRoot":"","sources":["../../src/llm-images.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,eAAe,EAAiB,MAAM,SAAS,CAAC;AAE3F,OAAO,EAAuB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,eAAe,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,QAAQ,CAAC;KACxB,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,EAAE,eAA+B,CAAC;AAElE,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,KAAG,eAA+C,CAAC;AAI5G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC,CAoGjC"}
@@ -1,5 +1,5 @@
1
1
  import { Tool } from 'openai/resources/responses/responses';
2
- import { LLMResponse, LLMOptions, LLMModel, OpenAIResponseFormat, ContextMessage, OpenAISchemaInput } from './types';
2
+ import { LLMResponse, LLMOptions, LLMModel, OpenAIResponseFormat, ContextMessage, OpenAISchemaInput, OpenAIImageInput, OpenAIImageDetail } from './types';
3
3
  import { ResponseCreateParamsNonStreaming } from 'openai/resources/responses/responses';
4
4
  export declare const DEFAULT_OPTIONS: LLMOptions;
5
5
  /**
@@ -8,6 +8,11 @@ export declare const DEFAULT_OPTIONS: LLMOptions;
8
8
  * @returns True if the model supports the temperature parameter, false otherwise.
9
9
  */
10
10
  export declare function supportsTemperature(_model: string): boolean;
11
+ export declare function uploadVisionFile(filePath: string, options?: {
12
+ apiKey?: string;
13
+ filename?: string;
14
+ mimeType?: string;
15
+ }): Promise<string>;
11
16
  /**
12
17
  * Makes a call to OpenAI's Responses API for more advanced use cases with built-in tools.
13
18
  *
@@ -65,8 +70,10 @@ export declare function makeLLMCall<T = string>(input: string, options?: {
65
70
  tools?: Tool[];
66
71
  useCodeInterpreter?: boolean;
67
72
  useWebSearch?: boolean;
73
+ image?: OpenAIImageInput;
74
+ images?: OpenAIImageInput[];
68
75
  imageBase64?: string;
69
- imageDetail?: 'low' | 'high' | 'auto';
76
+ imageDetail?: OpenAIImageDetail;
70
77
  context?: ContextMessage[];
71
78
  }): Promise<LLMResponse<T>>;
72
79
  //# sourceMappingURL=llm-openai.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-openai.d.ts","sourceRoot":"","sources":["../../src/llm-openai.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,IAAI,EAGL,MAAM,sCAAsC,CAAC;AAI9C,OAAO,EACL,WAAW,EACX,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EAElB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gCAAgC,EAOjC,MAAM,sCAAsC,CAAC;AAE9C,eAAO,MAAM,eAAe,EAAE,UAG7B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAyCD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,oBAAoB,GAAU,CAAC,GAAG,MAAM,EACnD,OAAO,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,EACzD,UAAS,IAAI,CAAC,gCAAgC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,KACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAqIxB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,MAAM,EAC1C,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CACvB,GACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAwHzB"}
1
+ {"version":3,"file":"llm-openai.d.ts","sourceRoot":"","sources":["../../src/llm-openai.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,IAAI,EAKL,MAAM,sCAAsC,CAAC;AAI9C,OAAO,EACL,WAAW,EACX,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gCAAgC,EAOjC,MAAM,sCAAsC,CAAC;AAE9C,eAAO,MAAM,eAAe,EAAE,UAG7B,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AA+ND,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd,GACL,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,oBAAoB,GAAU,CAAC,GAAG,MAAM,EACnD,OAAO,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,EACzD,UAAS,IAAI,CAAC,gCAAgC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,KACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CA+HxB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,MAAM,EAC1C,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CACvB,GACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAiHzB"}
@@ -1,6 +1,6 @@
1
- import { ChatCompletionMessageParam, ChatCompletionTool, ChatCompletionMessageToolCall } from 'openai/resources/chat/completions';
2
- import { ImageGenerateParams, ImageModel } from 'openai/resources/images';
3
- import type { ResponseFormatTextJSONSchemaConfig } from 'openai/resources/responses/responses';
1
+ import type { ChatCompletionMessageParam, ChatCompletionTool, ChatCompletionMessageToolCall } from 'openai/resources/chat/completions';
2
+ import type { ImageGenerateParams } from 'openai/resources/images';
3
+ import type { ResponseFormatTextJSONSchemaConfig, ResponseInputImage } from 'openai/resources/responses/responses';
4
4
  import type { ZodType } from 'zod';
5
5
  /**
6
6
  * Represents OpenAI models
@@ -11,6 +11,15 @@ export type OpenAIModel = (typeof OPENAI_MODELS)[number];
11
11
  * Type guard to check if a model is a supported direct OpenAI model.
12
12
  */
13
13
  export declare function isOpenAIModel(model: string): model is OpenAIModel;
14
+ /**
15
+ * Represents OpenAI image models.
16
+ */
17
+ export declare const OPENAI_IMAGE_MODELS: readonly ["gpt-image-2", "gpt-image-2-2026-04-21", "gpt-image-1.5", "gpt-image-1", "gpt-image-1-mini", "chatgpt-image-latest", "dall-e-2", "dall-e-3"];
18
+ export type OpenAIImageModel = (typeof OPENAI_IMAGE_MODELS)[number];
19
+ /**
20
+ * Type guard to check if a model is a supported OpenAI image model.
21
+ */
22
+ export declare function isOpenAIImageModel(model: string): model is OpenAIImageModel;
14
23
  /**
15
24
  * Represents Deepseek models
16
25
  */
@@ -85,6 +94,53 @@ export type OpenAIResponseFormat = 'text' | 'json' | ResponseFormatTextJSONSchem
85
94
  * Can be either a JSON Schema object or a Zod schema.
86
95
  */
87
96
  export type OpenAISchemaInput = ResponseFormatTextJSONSchemaConfig['schema'] | ZodType;
97
+ /**
98
+ * Supported image detail levels for OpenAI Responses vision inputs.
99
+ */
100
+ export type OpenAIImageDetail = ResponseInputImage['detail'];
101
+ /**
102
+ * A remote image URL to analyze.
103
+ */
104
+ export interface OpenAIImageURLInput {
105
+ url: string;
106
+ detail?: OpenAIImageDetail;
107
+ }
108
+ /**
109
+ * A base64-encoded image to analyze.
110
+ * If `base64` is a raw base64 string, `mimeType` is used to create a data URL.
111
+ */
112
+ export interface OpenAIImageBase64Input {
113
+ base64: string;
114
+ mimeType?: string;
115
+ detail?: OpenAIImageDetail;
116
+ }
117
+ /**
118
+ * A fully formed data URL to analyze.
119
+ */
120
+ export interface OpenAIImageDataURLInput {
121
+ dataUrl: string;
122
+ detail?: OpenAIImageDetail;
123
+ }
124
+ /**
125
+ * An already-uploaded OpenAI file ID to analyze.
126
+ */
127
+ export interface OpenAIImageFileIDInput {
128
+ fileId: string;
129
+ detail?: OpenAIImageDetail;
130
+ }
131
+ /**
132
+ * A local file path to upload for vision analysis in Node.js environments.
133
+ */
134
+ export interface OpenAIImageFilePathInput {
135
+ filePath: string;
136
+ filename?: string;
137
+ mimeType?: string;
138
+ detail?: OpenAIImageDetail;
139
+ }
140
+ /**
141
+ * Vision image input accepted by the OpenAI Responses helper.
142
+ */
143
+ export type OpenAIImageInput = OpenAIImageURLInput | OpenAIImageBase64Input | OpenAIImageDataURLInput | OpenAIImageFileIDInput | OpenAIImageFilePathInput;
88
144
  /**
89
145
  * Represents the options for the OpenAI Images API.
90
146
  * Extends the official ImageGenerateParams but with more user-friendly option names.
@@ -104,7 +160,7 @@ export interface ImageGenerationOptions {
104
160
  */
105
161
  visionModel?: LLMModel;
106
162
  }
107
- export type DiscoImageModel = ImageModel | 'gpt-image-1.5';
163
+ export type DiscoImageModel = OpenAIImageModel;
108
164
  /**
109
165
  * Context message for conversation history
110
166
  */
@@ -1 +1 @@
1
- {"version":3,"file":"llm-types.d.ts","sourceRoot":"","sources":["../../../src/types/llm-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-types.d.ts","sourceRoot":"","sources":["../../../src/types/llm-types.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,13 @@ import * as llm from './llm-openai';
3
3
  import * as llmImages from './llm-images';
4
4
  import * as time from './market-time';
5
5
  export * from './types';
6
- export { supportsTemperature } from './llm-openai';
6
+ export { supportsTemperature, uploadVisionFile } from './llm-openai';
7
7
  export { OPENAI_MODELS, OPENROUTER_MODELS } from './types/llm-types';
8
8
  export declare const disco: {
9
9
  types: typeof Types;
10
10
  llm: {
11
11
  call: typeof llm.makeLLMCall;
12
+ uploadVisionFile: typeof llm.uploadVisionFile;
12
13
  seek: <T = string>(content: string | import("openai/resources/index.mjs").ChatCompletionContentPart[], responseFormat?: Types.OpenAIResponseFormat, options?: Types.LLMOptions) => Promise<Types.LLMResponse<T>>;
13
14
  images: typeof llmImages.makeImagesCall;
14
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index-frontend.d.ts","sourceRoot":"","sources":["../../src/index-frontend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAGtC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErE,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
1
+ {"version":3,"file":"index-frontend.d.ts","sourceRoot":"","sources":["../../src/index-frontend.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAGtC,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErE,eAAO,MAAM,KAAK;;;;;;;;;CASjB,CAAC"}
@@ -9,8 +9,8 @@ import { PerformanceTimer } from './performance-timer';
9
9
  export * from './types';
10
10
  export { AlpacaTradingAPI } from './alpaca-trading-api';
11
11
  export { AlpacaMarketDataAPI } from './alpaca-market-data-api';
12
- export { supportsTemperature } from './llm-openai';
13
- export { OPENAI_MODELS, OPENROUTER_MODELS } from './types/llm-types';
12
+ export { supportsTemperature, uploadVisionFile } from './llm-openai';
13
+ export { OPENAI_IMAGE_MODELS, OPENAI_MODELS, OPENROUTER_MODELS } from './types/llm-types';
14
14
  export declare const disco: {
15
15
  types: typeof Types;
16
16
  alpaca: {
@@ -26,6 +26,7 @@ export declare const disco: {
26
26
  };
27
27
  llm: {
28
28
  call: typeof llm.makeLLMCall;
29
+ uploadVisionFile: typeof llm.uploadVisionFile;
29
30
  seek: <T = string>(content: string | import("openai/resources/index.mjs").ChatCompletionContentPart[], responseFormat?: Types.OpenAIResponseFormat, options?: Types.LLMOptions) => Promise<Types.LLMResponse<T>>;
30
31
  images: typeof llmImages.makeImagesCall;
31
32
  open: typeof openrouter.makeOpenRouterCall;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAErE,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE1F,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CjB,CAAC"}
@@ -1,4 +1,6 @@
1
- export declare const DEFAULT_MODEL = "gpt-5-mini";
1
+ import type { ImageGenerateParams } from 'openai/resources/images';
2
+ import type { OpenAIImageModel, OpenAIModel } from './types/llm-types';
3
+ export declare const DEFAULT_MODEL: OpenAIModel;
2
4
  export declare const DEFAULT_DEVELOPER_PROMPT = "\n You are a highly experienced coding, business analyst, and financial analyst associate.\n Help with coding, business process design and analysis, data generation and refinement, content creation, financial analysis, and more.\n When presented with a coding problem, logic problem, or other problem benefiting from systematic thinking, think through it step by step before giving your final answer.\n Present complete, high-confidence, final answers only. Do not rephrase to be more brief or omit parts of answers.\n Respond only with final content (e.g. code, a json or yaml object, a formatted string, or a markdown document) and nothing else. Do not reply with a preamble, introduction, or conclusion.\n";
3
5
  interface AIModelCosts {
4
6
  [modelName: string]: {
@@ -10,16 +12,29 @@ interface AIModelCosts {
10
12
  /** Token costs in USD per 1M tokens. Last updated May 2026. */
11
13
  export declare const openAiModelCosts: AIModelCosts;
12
14
  export declare const deepseekModelCosts: AIModelCosts;
13
- /** Image generation costs in USD per image. Based on OpenAI pricing as of Feb 2025. */
14
- export declare const openAiImageCosts: Record<string, number>;
15
+ export type PricedOpenAIImageModel = 'gpt-image-2' | 'gpt-image-2-2026-04-21' | 'gpt-image-1.5' | 'gpt-image-1' | 'gpt-image-1-mini';
16
+ export type OpenAIImagePricingQuality = 'low' | 'medium' | 'high';
17
+ export type OpenAIImagePricingSize = '1024x1024' | '1024x1536' | '1536x1024';
18
+ export declare const DEFAULT_IMAGE_PRICING_QUALITY: OpenAIImagePricingQuality;
19
+ export declare const DEFAULT_IMAGE_PRICING_SIZE: OpenAIImagePricingSize;
20
+ /**
21
+ * Estimated image output costs in USD per image for common GPT Image sizes.
22
+ * Last updated May 2026 from the OpenAI image generation guide. Text and image
23
+ * input token costs for prompts and edit inputs are not included.
24
+ */
25
+ export declare const openAiImageCostByQualityAndSize: Record<PricedOpenAIImageModel, Record<OpenAIImagePricingQuality, Record<OpenAIImagePricingSize, number>>>;
26
+ /** Default image output costs in USD per image for legacy callers. */
27
+ export declare const openAiImageCosts: Record<PricedOpenAIImageModel, number>;
15
28
  /**
16
29
  * Calculates the cost of generating images using OpenAI's Images API.
17
30
  *
18
31
  * @param model The image generation model name.
19
32
  * @param imageCount The number of images generated.
33
+ * @param quality The requested image quality.
34
+ * @param size The requested image size.
20
35
  * @returns The cost of generating the images in USD.
21
36
  */
22
- export declare function calculateImageCost(model: string, imageCount: number): number;
37
+ export declare function calculateImageCost(model: OpenAIImageModel | string, imageCount: number, quality?: ImageGenerateParams['quality'], size?: ImageGenerateParams['size']): number;
23
38
  /**
24
39
  * Calculates the cost of calling a language model in USD based on the provider and model, tokens, and given costs per 1M tokens.
25
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"llm-config.d.ts","sourceRoot":"","sources":["../../src/llm-config.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,eAAe,CAAC;AAE1C,eAAO,MAAM,wBAAwB,wtBAMpC,CAAC;AAEF,UAAU,YAAY;IACpB,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAMD,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,EAAE,YA2D9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAWhC,CAAC;AAMF,uFAAuF;AACvF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAGnD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAS5E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAgCR"}
1
+ {"version":3,"file":"llm-config.d.ts","sourceRoot":"","sources":["../../src/llm-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEvE,eAAO,MAAM,aAAa,EAAE,WAA4B,CAAC;AAEzD,eAAO,MAAM,wBAAwB,wtBAMpC,CAAC;AAEF,UAAU,YAAY;IACpB,CAAC,SAAS,EAAE,MAAM,GAAG;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAMD,+DAA+D;AAC/D,eAAO,MAAM,gBAAgB,EAAE,YA2D9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAWhC,CAAC;AAMF,MAAM,MAAM,sBAAsB,GAC9B,aAAa,GACb,wBAAwB,GACxB,eAAe,GACf,aAAa,GACb,kBAAkB,CAAC;AACvB,MAAM,MAAM,yBAAyB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE7E,eAAO,MAAM,6BAA6B,EAAE,yBAAkC,CAAC;AAC/E,eAAO,MAAM,0BAA0B,EAAE,sBAAoC,CAAC;AAW9E;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAClD,sBAAsB,EACtB,MAAM,CAAC,yBAAyB,EAAE,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAuF1E,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,sBAAsB,EAAE,MAAM,CAanE,CAAC;AA0BF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,gBAAgB,GAAG,MAAM,EAChC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,EACxC,IAAI,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,GACjC,MAAM,CAYR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,MAAM,EACxB,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAgCR"}
@@ -1 +1 @@
1
- {"version":3,"file":"llm-images.d.ts","sourceRoot":"","sources":["../../src/llm-images.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,eAAe,EAAiB,MAAM,SAAS,CAAC;AAE3F,OAAO,EAAuB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,eAAe,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,QAAQ,CAAC;KACxB,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,EAAE,eAAiC,CAAC;AAEpE,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,KAAG,eAA+C,CAAC;AAI5G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC,CAoGjC"}
1
+ {"version":3,"file":"llm-images.d.ts","sourceRoot":"","sources":["../../src/llm-images.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,eAAe,EAAiB,MAAM,SAAS,CAAC;AAE3F,OAAO,EAAuB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,eAAe,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,QAAQ,CAAC;KACxB,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,EAAE,eAA+B,CAAC;AAElE,eAAO,MAAM,iBAAiB,GAAI,QAAQ,eAAe,KAAG,eAA+C,CAAC;AAI5G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC,CAoGjC"}
@@ -1,5 +1,5 @@
1
1
  import { Tool } from 'openai/resources/responses/responses';
2
- import { LLMResponse, LLMOptions, LLMModel, OpenAIResponseFormat, ContextMessage, OpenAISchemaInput } from './types';
2
+ import { LLMResponse, LLMOptions, LLMModel, OpenAIResponseFormat, ContextMessage, OpenAISchemaInput, OpenAIImageInput, OpenAIImageDetail } from './types';
3
3
  import { ResponseCreateParamsNonStreaming } from 'openai/resources/responses/responses';
4
4
  export declare const DEFAULT_OPTIONS: LLMOptions;
5
5
  /**
@@ -8,6 +8,11 @@ export declare const DEFAULT_OPTIONS: LLMOptions;
8
8
  * @returns True if the model supports the temperature parameter, false otherwise.
9
9
  */
10
10
  export declare function supportsTemperature(_model: string): boolean;
11
+ export declare function uploadVisionFile(filePath: string, options?: {
12
+ apiKey?: string;
13
+ filename?: string;
14
+ mimeType?: string;
15
+ }): Promise<string>;
11
16
  /**
12
17
  * Makes a call to OpenAI's Responses API for more advanced use cases with built-in tools.
13
18
  *
@@ -65,8 +70,10 @@ export declare function makeLLMCall<T = string>(input: string, options?: {
65
70
  tools?: Tool[];
66
71
  useCodeInterpreter?: boolean;
67
72
  useWebSearch?: boolean;
73
+ image?: OpenAIImageInput;
74
+ images?: OpenAIImageInput[];
68
75
  imageBase64?: string;
69
- imageDetail?: 'low' | 'high' | 'auto';
76
+ imageDetail?: OpenAIImageDetail;
70
77
  context?: ContextMessage[];
71
78
  }): Promise<LLMResponse<T>>;
72
79
  //# sourceMappingURL=llm-openai.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-openai.d.ts","sourceRoot":"","sources":["../../src/llm-openai.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,IAAI,EAGL,MAAM,sCAAsC,CAAC;AAI9C,OAAO,EACL,WAAW,EACX,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EAElB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gCAAgC,EAOjC,MAAM,sCAAsC,CAAC;AAE9C,eAAO,MAAM,eAAe,EAAE,UAG7B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AAyCD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,oBAAoB,GAAU,CAAC,GAAG,MAAM,EACnD,OAAO,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,EACzD,UAAS,IAAI,CAAC,gCAAgC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,KACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAqIxB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,MAAM,EAC1C,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CACvB,GACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAwHzB"}
1
+ {"version":3,"file":"llm-openai.d.ts","sourceRoot":"","sources":["../../src/llm-openai.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,IAAI,EAKL,MAAM,sCAAsC,CAAC;AAI9C,OAAO,EACL,WAAW,EACX,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,gCAAgC,EAOjC,MAAM,sCAAsC,CAAC;AAE9C,eAAO,MAAM,eAAe,EAAE,UAG7B,CAAC;AAIF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE3D;AA+ND,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd,GACL,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,oBAAoB,GAAU,CAAC,GAAG,MAAM,EACnD,OAAO,MAAM,GAAG,gCAAgC,CAAC,OAAO,CAAC,EACzD,UAAS,IAAI,CAAC,gCAAgC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACX,KACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CA+HxB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,MAAM,EAC1C,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CACvB,GACL,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAiHzB"}
@@ -1,6 +1,6 @@
1
- import { ChatCompletionMessageParam, ChatCompletionTool, ChatCompletionMessageToolCall } from 'openai/resources/chat/completions';
2
- import { ImageGenerateParams, ImageModel } from 'openai/resources/images';
3
- import type { ResponseFormatTextJSONSchemaConfig } from 'openai/resources/responses/responses';
1
+ import type { ChatCompletionMessageParam, ChatCompletionTool, ChatCompletionMessageToolCall } from 'openai/resources/chat/completions';
2
+ import type { ImageGenerateParams } from 'openai/resources/images';
3
+ import type { ResponseFormatTextJSONSchemaConfig, ResponseInputImage } from 'openai/resources/responses/responses';
4
4
  import type { ZodType } from 'zod';
5
5
  /**
6
6
  * Represents OpenAI models
@@ -11,6 +11,15 @@ export type OpenAIModel = (typeof OPENAI_MODELS)[number];
11
11
  * Type guard to check if a model is a supported direct OpenAI model.
12
12
  */
13
13
  export declare function isOpenAIModel(model: string): model is OpenAIModel;
14
+ /**
15
+ * Represents OpenAI image models.
16
+ */
17
+ export declare const OPENAI_IMAGE_MODELS: readonly ["gpt-image-2", "gpt-image-2-2026-04-21", "gpt-image-1.5", "gpt-image-1", "gpt-image-1-mini", "chatgpt-image-latest", "dall-e-2", "dall-e-3"];
18
+ export type OpenAIImageModel = (typeof OPENAI_IMAGE_MODELS)[number];
19
+ /**
20
+ * Type guard to check if a model is a supported OpenAI image model.
21
+ */
22
+ export declare function isOpenAIImageModel(model: string): model is OpenAIImageModel;
14
23
  /**
15
24
  * Represents Deepseek models
16
25
  */
@@ -85,6 +94,53 @@ export type OpenAIResponseFormat = 'text' | 'json' | ResponseFormatTextJSONSchem
85
94
  * Can be either a JSON Schema object or a Zod schema.
86
95
  */
87
96
  export type OpenAISchemaInput = ResponseFormatTextJSONSchemaConfig['schema'] | ZodType;
97
+ /**
98
+ * Supported image detail levels for OpenAI Responses vision inputs.
99
+ */
100
+ export type OpenAIImageDetail = ResponseInputImage['detail'];
101
+ /**
102
+ * A remote image URL to analyze.
103
+ */
104
+ export interface OpenAIImageURLInput {
105
+ url: string;
106
+ detail?: OpenAIImageDetail;
107
+ }
108
+ /**
109
+ * A base64-encoded image to analyze.
110
+ * If `base64` is a raw base64 string, `mimeType` is used to create a data URL.
111
+ */
112
+ export interface OpenAIImageBase64Input {
113
+ base64: string;
114
+ mimeType?: string;
115
+ detail?: OpenAIImageDetail;
116
+ }
117
+ /**
118
+ * A fully formed data URL to analyze.
119
+ */
120
+ export interface OpenAIImageDataURLInput {
121
+ dataUrl: string;
122
+ detail?: OpenAIImageDetail;
123
+ }
124
+ /**
125
+ * An already-uploaded OpenAI file ID to analyze.
126
+ */
127
+ export interface OpenAIImageFileIDInput {
128
+ fileId: string;
129
+ detail?: OpenAIImageDetail;
130
+ }
131
+ /**
132
+ * A local file path to upload for vision analysis in Node.js environments.
133
+ */
134
+ export interface OpenAIImageFilePathInput {
135
+ filePath: string;
136
+ filename?: string;
137
+ mimeType?: string;
138
+ detail?: OpenAIImageDetail;
139
+ }
140
+ /**
141
+ * Vision image input accepted by the OpenAI Responses helper.
142
+ */
143
+ export type OpenAIImageInput = OpenAIImageURLInput | OpenAIImageBase64Input | OpenAIImageDataURLInput | OpenAIImageFileIDInput | OpenAIImageFilePathInput;
88
144
  /**
89
145
  * Represents the options for the OpenAI Images API.
90
146
  * Extends the official ImageGenerateParams but with more user-friendly option names.
@@ -104,7 +160,7 @@ export interface ImageGenerationOptions {
104
160
  */
105
161
  visionModel?: LLMModel;
106
162
  }
107
- export type DiscoImageModel = ImageModel | 'gpt-image-1.5';
163
+ export type DiscoImageModel = OpenAIImageModel;
108
164
  /**
109
165
  * Context message for conversation history
110
166
  */
@@ -1 +1 @@
1
- {"version":3,"file":"llm-types.d.ts","sourceRoot":"","sources":["../../../src/types/llm-types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClI,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAC/F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC;;GAEG;AACH,eAAO,MAAM,aAAa,gLAahB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAEjE;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,mBAAmB,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,iBAAiB,+cAqBpB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,aAAa,GAAG,eAAe,CAAC;AAErE;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,eAAe,CAEzE;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC;IACZ,KAAK,EAAE,QAAQ,CAAC;IAChB,UAAU,CAAC,EAAE,6BAA6B,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,kCAAkC,CAAC;AAExF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,kCAAkC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;AAEvF;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,IAAI,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC/C,UAAU,CAAC,EAAE,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC/C;;OAEG;IACH,WAAW,CAAC,EAAE,QAAQ,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,eAAe,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"llm-types.d.ts","sourceRoot":"","sources":["../../../src/types/llm-types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.0.70",
6
+ "version": "1.0.72",
7
7
  "author": "Disco Media",
8
8
  "description": "Utility functions used in Disco Media apps",
9
9
  "always-build-npm": true,
@@ -33,11 +33,11 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "dotenv": "^17.4.2",
36
- "openai": "^6.35.0",
36
+ "openai": "^6.37.0",
37
37
  "p-limit": "^7.3.0",
38
38
  "tslib": "^2.8.1",
39
39
  "ws": "^8.20.0",
40
- "zod": "^4.4.2"
40
+ "zod": "^4.4.3"
41
41
  },
42
42
  "license": "ISC",
43
43
  "devDependencies": {
@@ -47,7 +47,7 @@
47
47
  "@rollup/plugin-typescript": "^12.3.0",
48
48
  "@types/ws": "^8.18.1",
49
49
  "lightweight-charts": "^5.2.0",
50
- "rollup": "^4.60.2",
50
+ "rollup": "^4.60.3",
51
51
  "typescript": "^6.0.3"
52
52
  }
53
53
  }