{"version":3,"sources":["../../src/openai/gpt.ts"],"sourcesContent":["/**\n * Copyright 2024 The Fire Company\n * Copyright 2024 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { z } from 'genkit';\nimport { ModelInfo, ModelReference } from 'genkit/model';\nimport {\n  ChatCompletionCommonConfigSchema,\n  compatOaiModelRef,\n} from '../model.mjs';\n\nconst MULTIMODAL_MODEL_INFO: ModelInfo = {\n  supports: {\n    multiturn: true,\n    tools: true,\n    media: true,\n    systemRole: true,\n    output: ['text', 'json'],\n    constrained: 'all',\n  },\n};\n\n/** OpenAI Custom configuration schema. */\nexport const OpenAIChatCompletionConfigSchema =\n  ChatCompletionCommonConfigSchema.extend({\n    store: z.boolean().optional(),\n  });\n\n/** OpenAI ModelRef helper, with OpenAI specific config. */\nexport function openAIModelRef(params: {\n  name: string;\n  info?: ModelInfo;\n  config?: any;\n}): ModelReference<typeof OpenAIChatCompletionConfigSchema> {\n  return compatOaiModelRef({\n    ...params,\n    info: params.info,\n    configSchema: OpenAIChatCompletionConfigSchema,\n    namespace: 'openai',\n  });\n}\n\nconst gpt45 = openAIModelRef({\n  name: 'gpt-4.5',\n  info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt45Preview = openAIModelRef({\n  name: 'gpt-4.5-preview',\n  info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4o = openAIModelRef({\n  name: 'gpt-4o',\n  info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4o20240513 = openAIModelRef({\n  name: 'gpt-4o-2024-05-13',\n  info: MULTIMODAL_MODEL_INFO,\n});\n\nconst o1 = openAIModelRef({\n  name: 'o1',\n  info: {\n    supports: {\n      multiturn: true,\n      tools: true,\n      media: true,\n      systemRole: false,\n      output: ['text', 'json'],\n    },\n  },\n});\n\nconst o3 = openAIModelRef({\n  name: 'o3',\n  info: {\n    supports: {\n      multiturn: true,\n      tools: true,\n      media: true,\n      systemRole: false,\n      output: ['text', 'json'],\n    },\n  },\n});\n\nconst o3Mini = openAIModelRef({\n  name: 'o3-mini',\n  info: {\n    supports: {\n      multiturn: true,\n      tools: true,\n      media: false,\n      systemRole: false,\n      output: ['text', 'json'],\n    },\n  },\n});\n\nconst o4Mini = openAIModelRef({\n  name: 'o4-mini',\n  info: {\n    supports: {\n      multiturn: true,\n      tools: true,\n      media: true,\n      systemRole: false,\n      output: ['text', 'json'],\n    },\n  },\n});\n\nconst gpt4oMini = openAIModelRef({\n  name: 'gpt-4o-mini',\n  info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4oMini20240718 = openAIModelRef({\n  name: 'gpt-4o-mini-2024-07-18',\n  info: MULTIMODAL_MODEL_INFO,\n});\n\nconst gpt4Turbo = openAIModelRef({\n  name: 'gpt-4-turbo',\n  info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4Turbo20240409 = openAIModelRef({\n  name: 'gpt-4-turbo-2024-04-09',\n  info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt4TurboPreview = openAIModelRef({\n  name: 'gpt-4-turbo-preview',\n  info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt40125Preview = openAIModelRef({\n  name: 'gpt-4-0125-preview',\n  info: MULTIMODAL_MODEL_INFO,\n});\nconst gpt41106Preview = openAIModelRef({\n  name: 'gpt-4-1106-preview',\n  info: MULTIMODAL_MODEL_INFO,\n});\n\nconst GPT_4_VISION_MODEL_INFO: ModelInfo = {\n  supports: {\n    multiturn: true,\n    tools: false,\n    media: true,\n    systemRole: true,\n    output: ['text'],\n  },\n};\nconst gpt4Vision = openAIModelRef({\n  name: 'gpt-4-vision',\n  info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt4VisionPreview = openAIModelRef({\n  name: 'gpt-4-vision-preview',\n  info: GPT_4_VISION_MODEL_INFO,\n});\nconst gpt41106VisionPreview = openAIModelRef({\n  name: 'gpt-4-1106-vision-preview',\n  info: GPT_4_VISION_MODEL_INFO,\n});\n\nconst GPT_4_MODEL_INFO: ModelInfo = {\n  supports: {\n    multiturn: true,\n    tools: true,\n    media: false,\n    systemRole: true,\n    output: ['text'],\n  },\n};\nconst gpt4 = openAIModelRef({ name: 'gpt-4', info: GPT_4_MODEL_INFO });\nconst gpt40613 = openAIModelRef({\n  name: 'gpt-4-0613',\n  info: GPT_4_MODEL_INFO,\n});\nconst gpt432k = openAIModelRef({\n  name: 'gpt-4-32k',\n  info: GPT_4_MODEL_INFO,\n});\nconst gpt432k0613 = openAIModelRef({\n  name: 'gpt-4-32k-0613',\n  info: GPT_4_MODEL_INFO,\n});\n\nconst GPT_35_MODEL_INFO: ModelInfo = {\n  supports: {\n    multiturn: true,\n    tools: true,\n    media: false,\n    systemRole: true,\n    output: ['text', 'json'],\n  },\n};\nconst gpt35Turbo = openAIModelRef({\n  name: 'gpt-3.5-turbo',\n  info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo0125 = openAIModelRef({\n  name: 'gpt-3.5-turbo-0125',\n  info: GPT_35_MODEL_INFO,\n});\nconst gpt35Turbo1106 = openAIModelRef({\n  name: 'gpt-3.5-turbo-1106',\n  info: GPT_35_MODEL_INFO,\n});\n\nconst GPT_5_MODEL_INFO: ModelInfo = {\n  supports: {\n    multiturn: true,\n    tools: true,\n    media: true,\n    systemRole: true,\n    output: ['text', 'json'],\n  },\n};\nconst gpt5 = openAIModelRef({\n  name: 'gpt-5',\n  info: GPT_5_MODEL_INFO,\n});\nconst gpt5Mini = openAIModelRef({\n  name: 'gpt-5-mini',\n  info: GPT_5_MODEL_INFO,\n});\nconst gpt5Nano = openAIModelRef({\n  name: 'gpt-5-nano',\n  info: GPT_5_MODEL_INFO,\n});\nconst gpt5ChatLatest = openAIModelRef({\n  name: 'gpt-5-chat-latest',\n  info: {\n    supports: {\n      ...GPT_5_MODEL_INFO.supports,\n      tools: false,\n      output: ['text'],\n    },\n  },\n});\nconst gpt5_1 = openAIModelRef({\n  name: 'gpt-5.1',\n  info: GPT_5_MODEL_INFO,\n});\n\nexport const SUPPORTED_GPT_MODELS = {\n  'gpt-4.5': gpt45,\n  'gpt-4.5-preview': gpt45Preview,\n  'gpt-4o': gpt4o,\n  'gpt-4o-2024-05-13': gpt4o20240513,\n  o1: o1,\n  o3: o3,\n  'o3-mini': o3Mini,\n  'o4-mini': o4Mini,\n  'gpt-4o-mini': gpt4oMini,\n  'gpt-4o-mini-2024-07-18': gpt4oMini20240718,\n  'gpt-4-turbo': gpt4Turbo,\n  'gpt-4-turbo-2024-04-09': gpt4Turbo20240409,\n  'gpt-4-turbo-preview': gpt4TurboPreview,\n  'gpt-4-0125-preview': gpt40125Preview,\n  'gpt-4-1106-preview': gpt41106Preview,\n  'gpt-4-vision': gpt4Vision,\n  'gpt-4-vision-preview': gpt4VisionPreview,\n  'gpt-4-1106-vision-preview': gpt41106VisionPreview,\n  'gpt-4': gpt4,\n  'gpt-4-0613': gpt40613,\n  'gpt-4-32k': gpt432k,\n  'gpt-4-32k-0613': gpt432k0613,\n  'gpt-3.5-turbo': gpt35Turbo,\n  'gpt-3.5-turbo-0125': gpt35Turbo0125,\n  'gpt-3.5-turbo-1106': gpt35Turbo1106,\n  'gpt-5': gpt5,\n  'gpt-5-mini': gpt5Mini,\n  'gpt-5-nano': gpt5Nano,\n  'gpt-5-chat-latest': gpt5ChatLatest,\n  'gpt-5.1': gpt5_1,\n} as const;\n"],"mappings":"AAiBA,SAAS,SAAS;AAElB;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP,MAAM,wBAAmC;AAAA,EACvC,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACvB,aAAa;AAAA,EACf;AACF;AAGO,MAAM,mCACX,iCAAiC,OAAO;AAAA,EACtC,OAAO,EAAE,QAAQ,EAAE,SAAS;AAC9B,CAAC;AAGI,SAAS,eAAe,QAI6B;AAC1D,SAAO,kBAAkB;AAAA,IACvB,GAAG;AAAA,IACH,MAAM,OAAO;AAAA,IACb,cAAc;AAAA,IACd,WAAW;AAAA,EACb,CAAC;AACH;AAEA,MAAM,QAAQ,eAAe;AAAA,EAC3B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,eAAe,eAAe;AAAA,EAClC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,QAAQ,eAAe;AAAA,EAC3B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,gBAAgB,eAAe;AAAA,EACnC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,KAAK,eAAe;AAAA,EACxB,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAED,MAAM,KAAK,eAAe;AAAA,EACxB,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAED,MAAM,SAAS,eAAe;AAAA,EAC5B,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAED,MAAM,SAAS,eAAe;AAAA,EAC5B,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,IACzB;AAAA,EACF;AACF,CAAC;AAED,MAAM,YAAY,eAAe;AAAA,EAC/B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,oBAAoB,eAAe;AAAA,EACvC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,YAAY,eAAe;AAAA,EAC/B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,oBAAoB,eAAe;AAAA,EACvC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,mBAAmB,eAAe;AAAA,EACtC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,kBAAkB,eAAe;AAAA,EACrC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,kBAAkB,eAAe;AAAA,EACrC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,0BAAqC;AAAA,EACzC,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,MAAM;AAAA,EACjB;AACF;AACA,MAAM,aAAa,eAAe;AAAA,EAChC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,oBAAoB,eAAe;AAAA,EACvC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,wBAAwB,eAAe;AAAA,EAC3C,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,mBAA8B;AAAA,EAClC,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,MAAM;AAAA,EACjB;AACF;AACA,MAAM,OAAO,eAAe,EAAE,MAAM,SAAS,MAAM,iBAAiB,CAAC;AACrE,MAAM,WAAW,eAAe;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,UAAU,eAAe;AAAA,EAC7B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,cAAc,eAAe;AAAA,EACjC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,oBAA+B;AAAA,EACnC,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,EACzB;AACF;AACA,MAAM,aAAa,eAAe;AAAA,EAChC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,iBAAiB,eAAe;AAAA,EACpC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,iBAAiB,eAAe;AAAA,EACpC,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAED,MAAM,mBAA8B;AAAA,EAClC,UAAU;AAAA,IACR,WAAW;AAAA,IACX,OAAO;AAAA,IACP,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ,CAAC,QAAQ,MAAM;AAAA,EACzB;AACF;AACA,MAAM,OAAO,eAAe;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,WAAW,eAAe;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,WAAW,eAAe;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AACD,MAAM,iBAAiB,eAAe;AAAA,EACpC,MAAM;AAAA,EACN,MAAM;AAAA,IACJ,UAAU;AAAA,MACR,GAAG,iBAAiB;AAAA,MACpB,OAAO;AAAA,MACP,QAAQ,CAAC,MAAM;AAAA,IACjB;AAAA,EACF;AACF,CAAC;AACD,MAAM,SAAS,eAAe;AAAA,EAC5B,MAAM;AAAA,EACN,MAAM;AACR,CAAC;AAEM,MAAM,uBAAuB;AAAA,EAClC,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,UAAU;AAAA,EACV,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX,eAAe;AAAA,EACf,0BAA0B;AAAA,EAC1B,eAAe;AAAA,EACf,0BAA0B;AAAA,EAC1B,uBAAuB;AAAA,EACvB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,wBAAwB;AAAA,EACxB,6BAA6B;AAAA,EAC7B,SAAS;AAAA,EACT,cAAc;AAAA,EACd,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,cAAc;AAAA,EACd,qBAAqB;AAAA,EACrB,WAAW;AACb;","names":[]}