@vibesdotdev/integrations-openai 0.0.0-stage → 1.0.0-rc.1
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/LICENSE +126 -0
- package/README.md +38 -2
- package/dist/ai/index.d.ts +4 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +4 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/metadata/assets/logos/providers/openai-dark.svg +12 -0
- package/dist/ai/metadata/assets/logos/providers/openai.svg +12 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-5-4-mini.json +41 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-5-4.json +41 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-5-5.json +41 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-5-6-luna.json +7 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-5-6-sol.json +7 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-5-6-terra.json +7 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-6-1-sol.json +41 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-6-1-terra.json +40 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-6-astra.json +41 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-6-luna.json +41 -0
- package/dist/ai/metadata/provider-models/openai/openai-gpt-image-1.json +34 -0
- package/dist/ai/metadata/providers/openai.json +36 -0
- package/dist/ai/openai-api.d.ts +39 -0
- package/dist/ai/openai-api.d.ts.map +1 -0
- package/dist/ai/openai-api.js +94 -0
- package/dist/ai/openai-api.js.map +1 -0
- package/dist/ai/openai-client.d.ts +12 -0
- package/dist/ai/openai-client.d.ts.map +1 -0
- package/dist/ai/openai-client.js +37 -0
- package/dist/ai/openai-client.js.map +1 -0
- package/dist/ai/openai-router-codec.d.ts +32 -0
- package/dist/ai/openai-router-codec.d.ts.map +1 -0
- package/dist/ai/openai-router-codec.js +225 -0
- package/dist/ai/openai-router-codec.js.map +1 -0
- package/dist/ai/openai.api.plugin.d.ts +6 -0
- package/dist/ai/openai.api.plugin.d.ts.map +1 -0
- package/dist/ai/openai.api.plugin.js +141 -0
- package/dist/ai/openai.api.plugin.js.map +1 -0
- package/dist/ai/openai.consumer.plugin.d.ts +10 -0
- package/dist/ai/openai.consumer.plugin.d.ts.map +1 -0
- package/dist/ai/openai.consumer.plugin.js +38 -0
- package/dist/ai/openai.consumer.plugin.js.map +1 -0
- package/dist/ai/openai.plugin.d.ts +2 -0
- package/dist/ai/openai.plugin.d.ts.map +1 -0
- package/dist/ai/openai.plugin.js +2 -0
- package/dist/ai/openai.plugin.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/openai/config/config.openai.descriptor.d.ts +4194 -0
- package/dist/ai/providers/cloud/frontier/openai/config/config.openai.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/openai/config/config.openai.descriptor.js +28 -0
- package/dist/ai/providers/cloud/frontier/openai/config/config.openai.descriptor.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/openai/config/schemas/index.d.ts +26 -0
- package/dist/ai/providers/cloud/frontier/openai/config/schemas/index.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/openai/config/schemas/index.js +39 -0
- package/dist/ai/providers/cloud/frontier/openai/config/schemas/index.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/openai/index.d.ts +4 -0
- package/dist/ai/providers/cloud/frontier/openai/index.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/openai/index.js +4 -0
- package/dist/ai/providers/cloud/frontier/openai/index.js.map +1 -0
- package/dist/ai/providers/cloud/frontier/openai/provider.openai.descriptor.d.ts +183 -0
- package/dist/ai/providers/cloud/frontier/openai/provider.openai.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/cloud/frontier/openai/provider.openai.descriptor.js +190 -0
- package/dist/ai/providers/cloud/frontier/openai/provider.openai.descriptor.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.descriptor.d.ts +25 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.descriptor.js +20 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.descriptor.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.impl.d.ts +36 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.impl.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.impl.js +228 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.spec.impl.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.descriptor.d.ts +13 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.descriptor.js +11 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.descriptor.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.impl.consumer.d.ts +47 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.impl.consumer.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.impl.consumer.js +111 -0
- package/dist/ai/providers/openai/codex-app-server/codex-app-server.transport.impl.consumer.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/codex-failure.d.ts +166 -0
- package/dist/ai/providers/openai/codex-app-server/codex-failure.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/codex-failure.js +229 -0
- package/dist/ai/providers/openai/codex-app-server/codex-failure.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/connection.d.ts +83 -0
- package/dist/ai/providers/openai/codex-app-server/connection.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/connection.js +222 -0
- package/dist/ai/providers/openai/codex-app-server/connection.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/failure-chunk.d.ts +10 -0
- package/dist/ai/providers/openai/codex-app-server/failure-chunk.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/failure-chunk.js +33 -0
- package/dist/ai/providers/openai/codex-app-server/failure-chunk.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/index.d.ts +10 -0
- package/dist/ai/providers/openai/codex-app-server/index.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/index.js +9 -0
- package/dist/ai/providers/openai/codex-app-server/index.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/protocol.d.ts +162 -0
- package/dist/ai/providers/openai/codex-app-server/protocol.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/protocol.js +116 -0
- package/dist/ai/providers/openai/codex-app-server/protocol.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/runtime-execution.d.ts +3 -0
- package/dist/ai/providers/openai/codex-app-server/runtime-execution.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/runtime-execution.js +3 -0
- package/dist/ai/providers/openai/codex-app-server/runtime-execution.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/runtime-transport.consumer.d.ts +5 -0
- package/dist/ai/providers/openai/codex-app-server/runtime-transport.consumer.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/runtime-transport.consumer.js +16 -0
- package/dist/ai/providers/openai/codex-app-server/runtime-transport.consumer.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/session.d.ts +24 -0
- package/dist/ai/providers/openai/codex-app-server/session.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/session.js +392 -0
- package/dist/ai/providers/openai/codex-app-server/session.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/spawner.d.ts +9 -0
- package/dist/ai/providers/openai/codex-app-server/spawner.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/spawner.js +48 -0
- package/dist/ai/providers/openai/codex-app-server/spawner.js.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/tool-name.d.ts +14 -0
- package/dist/ai/providers/openai/codex-app-server/tool-name.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-app-server/tool-name.js +45 -0
- package/dist/ai/providers/openai/codex-app-server/tool-name.js.map +1 -0
- package/dist/ai/providers/openai/codex-subscription.d.ts +48 -0
- package/dist/ai/providers/openai/codex-subscription.d.ts.map +1 -0
- package/dist/ai/providers/openai/codex-subscription.js +128 -0
- package/dist/ai/providers/openai/codex-subscription.js.map +1 -0
- package/dist/ai/providers/openai/detection/index.d.ts +2 -0
- package/dist/ai/providers/openai/detection/index.d.ts.map +1 -0
- package/dist/ai/providers/openai/detection/index.js +2 -0
- package/dist/ai/providers/openai/detection/index.js.map +1 -0
- package/dist/ai/providers/openai/detection/system.d.ts +5 -0
- package/dist/ai/providers/openai/detection/system.d.ts.map +1 -0
- package/dist/ai/providers/openai/detection/system.js +25 -0
- package/dist/ai/providers/openai/detection/system.js.map +1 -0
- package/dist/ai/providers/openai/docs/ai.providers.openai.docs.descriptor.d.ts +4 -0
- package/dist/ai/providers/openai/docs/ai.providers.openai.docs.descriptor.d.ts.map +1 -0
- package/dist/ai/providers/openai/docs/ai.providers.openai.docs.descriptor.js +39 -0
- package/dist/ai/providers/openai/docs/ai.providers.openai.docs.descriptor.js.map +1 -0
- package/dist/ai/providers/openai/index.d.ts +4 -0
- package/dist/ai/providers/openai/index.d.ts.map +1 -0
- package/dist/ai/providers/openai/index.js +4 -0
- package/dist/ai/providers/openai/index.js.map +1 -0
- package/dist/ai/providers/openai/openai.provider.impl.d.ts +50 -0
- package/dist/ai/providers/openai/openai.provider.impl.d.ts.map +1 -0
- package/dist/ai/providers/openai/openai.provider.impl.js +331 -0
- package/dist/ai/providers/openai/openai.provider.impl.js.map +1 -0
- package/dist/ai/providers/openai/recommendations.d.ts +25 -0
- package/dist/ai/providers/openai/recommendations.d.ts.map +1 -0
- package/dist/ai/providers/openai/recommendations.js +33 -0
- package/dist/ai/providers/openai/recommendations.js.map +1 -0
- package/dist/ai/transcription/index.d.ts +4 -0
- package/dist/ai/transcription/index.d.ts.map +1 -0
- package/dist/ai/transcription/index.js +4 -0
- package/dist/ai/transcription/index.js.map +1 -0
- package/dist/ai/transcription/metadata/assets/logos/providers/openai-dark.svg +12 -0
- package/dist/ai/transcription/metadata/assets/logos/providers/openai.svg +12 -0
- package/dist/ai/transcription/metadata/provider-models/openai-transcription/openai-transcription-gpt-4o-mini-transcribe-2025-12-15.json +20 -0
- package/dist/ai/transcription/metadata/provider-models/openai-transcription/openai-transcription-gpt-4o-mini-transcribe.json +17 -0
- package/dist/ai/transcription/metadata/provider-models/openai-transcription/openai-transcription-gpt-4o-transcribe.json +17 -0
- package/dist/ai/transcription/metadata/provider-models/openai-transcription/openai-transcription-whisper-1.json +16 -0
- package/dist/ai/transcription/metadata/providers/openai-transcription.json +30 -0
- package/dist/ai/transcription/provider.plugin.d.ts +6 -0
- package/dist/ai/transcription/provider.plugin.d.ts.map +1 -0
- package/dist/ai/transcription/provider.plugin.js +120 -0
- package/dist/ai/transcription/provider.plugin.js.map +1 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/config.openai-transcription.descriptor.d.ts +4194 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/config.openai-transcription.descriptor.d.ts.map +1 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/config.openai-transcription.descriptor.js +53 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/config.openai-transcription.descriptor.js.map +1 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/schemas/index.d.ts +17 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/schemas/index.d.ts.map +1 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/schemas/index.js +10 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/config/schemas/index.js.map +1 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/index.d.ts +5 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/index.d.ts.map +1 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/index.js +4 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/index.js.map +1 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/provider.openai-transcription.descriptor.d.ts +183 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/provider.openai-transcription.descriptor.d.ts.map +1 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/provider.openai-transcription.descriptor.js +49 -0
- package/dist/ai/transcription/providers/cloud/speech/openai-transcription/provider.openai-transcription.descriptor.js.map +1 -0
- package/dist/ai/transcription/providers/openai-transcription/detection/index.d.ts +2 -0
- package/dist/ai/transcription/providers/openai-transcription/detection/index.d.ts.map +1 -0
- package/dist/ai/transcription/providers/openai-transcription/detection/index.js +2 -0
- package/dist/ai/transcription/providers/openai-transcription/detection/index.js.map +1 -0
- package/dist/ai/transcription/providers/openai-transcription/detection/system.d.ts +4 -0
- package/dist/ai/transcription/providers/openai-transcription/detection/system.d.ts.map +1 -0
- package/dist/ai/transcription/providers/openai-transcription/detection/system.js +21 -0
- package/dist/ai/transcription/providers/openai-transcription/detection/system.js.map +1 -0
- package/dist/ai/transcription/providers/openai-transcription/index.d.ts +4 -0
- package/dist/ai/transcription/providers/openai-transcription/index.d.ts.map +1 -0
- package/dist/ai/transcription/providers/openai-transcription/index.js +4 -0
- package/dist/ai/transcription/providers/openai-transcription/index.js.map +1 -0
- package/dist/ai/transcription/providers/openai-transcription/openai-transcription.provider.impl.d.ts +20 -0
- package/dist/ai/transcription/providers/openai-transcription/openai-transcription.provider.impl.d.ts.map +1 -0
- package/dist/ai/transcription/providers/openai-transcription/openai-transcription.provider.impl.js +102 -0
- package/dist/ai/transcription/providers/openai-transcription/openai-transcription.provider.impl.js.map +1 -0
- package/dist/ai/transcription/providers/openai-transcription/recommendations.d.ts +24 -0
- package/dist/ai/transcription/providers/openai-transcription/recommendations.d.ts.map +1 -0
- package/dist/ai/transcription/providers/openai-transcription/recommendations.js +74 -0
- package/dist/ai/transcription/providers/openai-transcription/recommendations.js.map +1 -0
- package/dist/ai/tts/index.d.ts +4 -0
- package/dist/ai/tts/index.d.ts.map +1 -0
- package/dist/ai/tts/index.js +4 -0
- package/dist/ai/tts/index.js.map +1 -0
- package/dist/ai/tts/metadata/assets/logos/providers/openai-dark.svg +12 -0
- package/dist/ai/tts/metadata/assets/logos/providers/openai.svg +12 -0
- package/dist/ai/tts/metadata/provider-models/openai-tts/openai-tts-gpt-4o-mini-tts-2025-12-15.json +17 -0
- package/dist/ai/tts/metadata/provider-models/openai-tts/openai-tts-gpt-4o-mini-tts.json +17 -0
- package/dist/ai/tts/metadata/provider-models/openai-tts/openai-tts-tts-1-hd.json +17 -0
- package/dist/ai/tts/metadata/provider-models/openai-tts/openai-tts-tts-1.json +17 -0
- package/dist/ai/tts/metadata/providers/openai-tts.json +32 -0
- package/dist/ai/tts/provider.plugin.d.ts +6 -0
- package/dist/ai/tts/provider.plugin.d.ts.map +1 -0
- package/dist/ai/tts/provider.plugin.js +120 -0
- package/dist/ai/tts/provider.plugin.js.map +1 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/config/config.openai-tts.descriptor.d.ts +4194 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/config/config.openai-tts.descriptor.d.ts.map +1 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/config/config.openai-tts.descriptor.js +53 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/config/config.openai-tts.descriptor.js.map +1 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/config/schemas/index.d.ts +17 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/config/schemas/index.d.ts.map +1 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/config/schemas/index.js +10 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/config/schemas/index.js.map +1 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/index.d.ts +5 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/index.d.ts.map +1 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/index.js +4 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/index.js.map +1 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/provider.openai-tts.descriptor.d.ts +183 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/provider.openai-tts.descriptor.d.ts.map +1 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/provider.openai-tts.descriptor.js +49 -0
- package/dist/ai/tts/providers/cloud/speech/openai-tts/provider.openai-tts.descriptor.js.map +1 -0
- package/dist/ai/tts/providers/openai-tts/detection/index.d.ts +2 -0
- package/dist/ai/tts/providers/openai-tts/detection/index.d.ts.map +1 -0
- package/dist/ai/tts/providers/openai-tts/detection/index.js +2 -0
- package/dist/ai/tts/providers/openai-tts/detection/index.js.map +1 -0
- package/dist/ai/tts/providers/openai-tts/detection/system.d.ts +4 -0
- package/dist/ai/tts/providers/openai-tts/detection/system.d.ts.map +1 -0
- package/dist/ai/tts/providers/openai-tts/detection/system.js +21 -0
- package/dist/ai/tts/providers/openai-tts/detection/system.js.map +1 -0
- package/dist/ai/tts/providers/openai-tts/index.d.ts +4 -0
- package/dist/ai/tts/providers/openai-tts/index.d.ts.map +1 -0
- package/dist/ai/tts/providers/openai-tts/index.js +4 -0
- package/dist/ai/tts/providers/openai-tts/index.js.map +1 -0
- package/dist/ai/tts/providers/openai-tts/openai-tts.provider.impl.d.ts +24 -0
- package/dist/ai/tts/providers/openai-tts/openai-tts.provider.impl.d.ts.map +1 -0
- package/dist/ai/tts/providers/openai-tts/openai-tts.provider.impl.js +120 -0
- package/dist/ai/tts/providers/openai-tts/openai-tts.provider.impl.js.map +1 -0
- package/dist/ai/tts/providers/openai-tts/recommendations.d.ts +24 -0
- package/dist/ai/tts/providers/openai-tts/recommendations.d.ts.map +1 -0
- package/dist/ai/tts/providers/openai-tts/recommendations.js +74 -0
- package/dist/ai/tts/providers/openai-tts/recommendations.js.map +1 -0
- package/dist/external/codex/index.d.ts +162 -0
- package/dist/external/codex/index.d.ts.map +1 -0
- package/dist/external/codex/index.js +5 -0
- package/dist/external/codex/index.js.map +1 -0
- package/dist/external/codex/manifest.d.ts +9 -0
- package/dist/external/codex/manifest.d.ts.map +1 -0
- package/dist/external/codex/manifest.js +201 -0
- package/dist/external/codex/manifest.js.map +1 -0
- package/dist/external/codex-hooks.d.ts +39 -0
- package/dist/external/codex-hooks.d.ts.map +1 -0
- package/dist/external/codex-hooks.js +204 -0
- package/dist/external/codex-hooks.js.map +1 -0
- package/dist/external/codex-presets.d.ts +2033 -0
- package/dist/external/codex-presets.d.ts.map +1 -0
- package/dist/external/codex-presets.js +312 -0
- package/dist/external/codex-presets.js.map +1 -0
- package/dist/external/codex-subscription.operation.descriptors.d.ts +57 -0
- package/dist/external/codex-subscription.operation.descriptors.d.ts.map +1 -0
- package/dist/external/codex-subscription.operation.descriptors.js +22 -0
- package/dist/external/codex-subscription.operation.descriptors.js.map +1 -0
- package/dist/external/codex-subscription.operations.d.ts +4 -0
- package/dist/external/codex-subscription.operations.d.ts.map +1 -0
- package/dist/external/codex-subscription.operations.js +42 -0
- package/dist/external/codex-subscription.operations.js.map +1 -0
- package/dist/external/external.plugin.d.ts +3 -0
- package/dist/external/external.plugin.d.ts.map +1 -0
- package/dist/external/external.plugin.js +30 -0
- package/dist/external/external.plugin.js.map +1 -0
- package/dist/external/index.d.ts +4 -0
- package/dist/external/index.d.ts.map +1 -0
- package/dist/external/index.js +4 -0
- package/dist/external/index.js.map +1 -0
- package/dist/failure-outcome.d.ts +21 -0
- package/dist/failure-outcome.d.ts.map +1 -0
- package/dist/failure-outcome.js +22 -0
- package/dist/failure-outcome.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/codex-models.d.ts +23 -0
- package/dist/schemas/codex-models.d.ts.map +1 -0
- package/dist/schemas/codex-models.js +15 -0
- package/dist/schemas/codex-models.js.map +1 -0
- package/dist/schemas/codex-wire.d.ts +108 -0
- package/dist/schemas/codex-wire.d.ts.map +1 -0
- package/dist/schemas/codex-wire.js +25 -0
- package/dist/schemas/codex-wire.js.map +1 -0
- package/package.json +142 -4
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
import * as z from 'zod/v4';
|
|
2
|
+
import { detectOpenAISystem } from "./detection/system.js";
|
|
3
|
+
import { CredentialReferenceSchema } from '@vibesdotdev/ai/providers-runtime';
|
|
4
|
+
import { getLogger } from '@vibesdotdev/logging';
|
|
5
|
+
import { baseUrlProblem, OPENAI_DEFAULT_BASE_URL, probeOpenAIModels, resolveOpenAIApiKey } from "../../openai-api.js";
|
|
6
|
+
import { settle } from "../../../failure-outcome.js";
|
|
7
|
+
import { createAIModelDescriptor } from '@vibesdotdev/ai/models/schemas';
|
|
8
|
+
import { getVibesAIClient } from '@vibesdotdev/ai/client';
|
|
9
|
+
import { getRuntimeExecution } from '@vibesdotdev/kernel/execution';
|
|
10
|
+
import { readCodexSubscriptionStatus, runCodexSubscriptionLogin } from "./codex-subscription.js";
|
|
11
|
+
import { CodexAppServerConnection } from "./codex-app-server/connection.js";
|
|
12
|
+
import { createCodexAppServerSpawner } from "./codex-app-server/spawner.js";
|
|
13
|
+
import { CodexModelListResultSchema } from "../../../schemas/codex-models.js";
|
|
14
|
+
import { getVibesClient } from '@vibesdotdev/kernel/client';
|
|
15
|
+
import { codexFailure } from "./codex-app-server/codex-failure.js";
|
|
16
|
+
/** The model catalogue's capability words as the recommendation vocabulary. */
|
|
17
|
+
const RECOMMENDATION_CAPABILITIES = new Map([
|
|
18
|
+
['chat_completion', 'chat'],
|
|
19
|
+
['function_calling', 'tools'],
|
|
20
|
+
['image_understanding', 'vision']
|
|
21
|
+
]);
|
|
22
|
+
const OwnedByOpenAISchema = z.looseObject({ providerId: z.literal('openai') });
|
|
23
|
+
const CatalogueModelSchema = z.object({
|
|
24
|
+
id: z.string().min(1),
|
|
25
|
+
providerId: z.literal('openai'),
|
|
26
|
+
name: z.string().min(1),
|
|
27
|
+
displayName: z.string().optional(),
|
|
28
|
+
enabled: z.boolean().default(true),
|
|
29
|
+
capabilities: z.array(z.string()).default([]),
|
|
30
|
+
/** Absent means text, as `supportsModality` reads an empty list. */
|
|
31
|
+
modalities: z.array(z.string()).default(['text']),
|
|
32
|
+
hardware: z.array(z.enum(['consumer', 'cloud'])).optional(),
|
|
33
|
+
tags: z.array(z.string()).default([]),
|
|
34
|
+
tokenLimit: z.number().positive().nullish(),
|
|
35
|
+
configuration: z.looseObject({ maxTokens: z.number().positive().optional().catch(undefined) }).default({})
|
|
36
|
+
});
|
|
37
|
+
/** The part of a connection's configuration that selects its transport: `chatgpt-oauth` is the Codex app-server. */
|
|
38
|
+
const ConnectionAuthMethodSchema = z.looseObject({ authMethod: z.string().optional() });
|
|
39
|
+
/** Pages of `model/list` read before the answer is refused as unbounded. */
|
|
40
|
+
const CODEX_MODEL_LIST_MAX_PAGES = 32;
|
|
41
|
+
export class OpenAIProviderType {
|
|
42
|
+
descriptor;
|
|
43
|
+
context;
|
|
44
|
+
constructor(descriptor, context) {
|
|
45
|
+
this.descriptor = descriptor;
|
|
46
|
+
this.context = context;
|
|
47
|
+
}
|
|
48
|
+
async generate(providerInstance, model, request, options) {
|
|
49
|
+
const ai = await getVibesAIClient(this.context.runtime);
|
|
50
|
+
return ai.requestProviderGeneration(providerInstance, model, request, options);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The live models of a Codex app-server connection, from Codex's own `model/list`.
|
|
54
|
+
* Any other connection has no authoritative live inventory here (`null`), so the
|
|
55
|
+
* caller keeps its catalogue. A Codex that cannot answer raises its typed failure.
|
|
56
|
+
*/
|
|
57
|
+
async listModels(providerInstance, options) {
|
|
58
|
+
if (ConnectionAuthMethodSchema.parse(providerInstance.configuration ?? {}).authMethod !== 'chatgpt-oauth')
|
|
59
|
+
return null;
|
|
60
|
+
const execution = await this.resolveExecution();
|
|
61
|
+
if (!execution)
|
|
62
|
+
return null;
|
|
63
|
+
if (options?.modality !== undefined && options.modality !== 'text')
|
|
64
|
+
return [];
|
|
65
|
+
const client = await getVibesClient('integrations-openai', this.context.runtime);
|
|
66
|
+
const listed = await client.listModels(providerInstance.id, () => this.readCodexModels(execution, options?.signal));
|
|
67
|
+
return listed
|
|
68
|
+
.filter((model) => !model.hidden)
|
|
69
|
+
.map((model) => {
|
|
70
|
+
const descriptor = createAIModelDescriptor({
|
|
71
|
+
id: `${providerInstance.id}:${model.id}`,
|
|
72
|
+
providerId: providerInstance.id,
|
|
73
|
+
name: model.id,
|
|
74
|
+
displayName: model.displayName ?? model.id,
|
|
75
|
+
modelType: 'llm_chat',
|
|
76
|
+
// Every Codex turn carries the caller's tools as dynamic tools, whatever the model.
|
|
77
|
+
capabilities: [
|
|
78
|
+
'chat_completion',
|
|
79
|
+
'text_generation',
|
|
80
|
+
'function_calling',
|
|
81
|
+
...(model.inputModalities.includes('image') ? ['image_understanding'] : [])
|
|
82
|
+
],
|
|
83
|
+
modalities: ['text'],
|
|
84
|
+
configuration: { modelId: model.id },
|
|
85
|
+
hardware: ['consumer'],
|
|
86
|
+
enabled: true,
|
|
87
|
+
tags: ['openai', 'codex', 'chatgpt-oauth', ...(model.isDefault ? ['default'] : [])]
|
|
88
|
+
});
|
|
89
|
+
if (model.description)
|
|
90
|
+
descriptor.description = model.description;
|
|
91
|
+
return descriptor;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/** One `model/list` read on a fresh app-server connection, which is always closed. */
|
|
95
|
+
async readCodexModels(execution, signal) {
|
|
96
|
+
const runtime = this.context.runtime;
|
|
97
|
+
const connection = await CodexAppServerConnection.connect(runtime, createCodexAppServerSpawner(runtime, execution));
|
|
98
|
+
const listed = await settle(readCodexModelList(connection, signal));
|
|
99
|
+
const closed = await settle(connection.close());
|
|
100
|
+
if (listed.failed) {
|
|
101
|
+
if (closed.failed) {
|
|
102
|
+
getLogger('integrations-openai', runtime).warn('codex-app-server close after model/list failed', { error: closed.cause });
|
|
103
|
+
}
|
|
104
|
+
throw listed.cause;
|
|
105
|
+
}
|
|
106
|
+
if (closed.failed)
|
|
107
|
+
throw closed.cause;
|
|
108
|
+
return listed.value;
|
|
109
|
+
}
|
|
110
|
+
async detectInstalled() {
|
|
111
|
+
const instances = [];
|
|
112
|
+
const detected = await detectOpenAISystem(this.context.runtime);
|
|
113
|
+
if (detected) {
|
|
114
|
+
instances.push({ name: detected.name, source: 'system', config: { ...detected.configuration, baseUrl: OPENAI_DEFAULT_BASE_URL } });
|
|
115
|
+
}
|
|
116
|
+
// A Codex that cannot be checked never discards the API-key instance already found: the
|
|
117
|
+
// failure is reported (typed, to the log) and the subscription instance is simply absent.
|
|
118
|
+
const codex = await settle(this.detectCodexInstance());
|
|
119
|
+
if (codex.failed) {
|
|
120
|
+
getLogger('integrations-openai', this.context.runtime).warn('openai codex subscription detection failed', {
|
|
121
|
+
error: codex.cause
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
else if (codex.value) {
|
|
125
|
+
instances.push(codex.value);
|
|
126
|
+
}
|
|
127
|
+
return instances;
|
|
128
|
+
}
|
|
129
|
+
/** The Codex subscription instance, when Codex is installed and signed in with a managed ChatGPT account. */
|
|
130
|
+
async detectCodexInstance() {
|
|
131
|
+
const execution = await this.resolveExecution();
|
|
132
|
+
if (execution &&
|
|
133
|
+
(await execution.resolveCommand('codex')) &&
|
|
134
|
+
(await this.checkCodexSubscription(execution, 5_000)).healthy) {
|
|
135
|
+
return {
|
|
136
|
+
name: 'Codex app-server (experimental)',
|
|
137
|
+
source: 'system',
|
|
138
|
+
config: { authMethod: 'chatgpt-oauth', tokenSource: 'oauth-browser' }
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* The models of this provider's catalogue (`ai/model` descriptors), ranked for `useCase`.
|
|
145
|
+
* Which models exist, what they can do, and their limits are the catalogue's; this only ranks
|
|
146
|
+
* them (a frontier tier first, a fast tier last) and drops a model this host cannot serve.
|
|
147
|
+
*/
|
|
148
|
+
async recommendModels(useCase) {
|
|
149
|
+
const runtime = this.context.runtime;
|
|
150
|
+
if (!runtime.hasKind('ai/model'))
|
|
151
|
+
return [];
|
|
152
|
+
const hardware = runtime.scope?.hardware;
|
|
153
|
+
const recommendations = [];
|
|
154
|
+
for (const descriptor of runtime.query('ai/model').descriptors()) {
|
|
155
|
+
if (!OwnedByOpenAISchema.safeParse(descriptor).success)
|
|
156
|
+
continue;
|
|
157
|
+
const model = CatalogueModelSchema.safeParse(descriptor);
|
|
158
|
+
if (!model.success || !model.data.enabled)
|
|
159
|
+
continue;
|
|
160
|
+
const entry = model.data;
|
|
161
|
+
// These recommendations score and describe text work; an image or speech row is not one.
|
|
162
|
+
if (!entry.modalities.includes('text'))
|
|
163
|
+
continue;
|
|
164
|
+
if (entry.hardware && (hardware === 'consumer' || hardware === 'cloud') && !entry.hardware.includes(hardware))
|
|
165
|
+
continue;
|
|
166
|
+
const frontier = entry.tags.includes('frontier');
|
|
167
|
+
const fast = entry.tags.includes('fast');
|
|
168
|
+
const capabilities = entry.capabilities.flatMap((capability) => {
|
|
169
|
+
const word = RECOMMENDATION_CAPABILITIES.get(capability);
|
|
170
|
+
return word === undefined ? [] : [word];
|
|
171
|
+
});
|
|
172
|
+
const recommendation = {
|
|
173
|
+
modelId: entry.id,
|
|
174
|
+
modelName: entry.displayName ?? entry.name,
|
|
175
|
+
score: frontier ? 96 : fast ? 80 : 90,
|
|
176
|
+
reason: frontier
|
|
177
|
+
? 'Frontier coding and reasoning'
|
|
178
|
+
: fast
|
|
179
|
+
? 'Lower-latency, lower-cost execution'
|
|
180
|
+
: 'Balanced general-purpose agentic work',
|
|
181
|
+
capabilities,
|
|
182
|
+
useCaseFit: frontier ? (useCase === 'development' ? 100 : 94) : fast ? (useCase === 'organization' ? 88 : 80) : 90
|
|
183
|
+
};
|
|
184
|
+
if (entry.tokenLimit)
|
|
185
|
+
recommendation.contextWindow = entry.tokenLimit;
|
|
186
|
+
if (entry.configuration.maxTokens)
|
|
187
|
+
recommendation.maxOutputTokens = entry.configuration.maxTokens;
|
|
188
|
+
recommendations.push(recommendation);
|
|
189
|
+
}
|
|
190
|
+
return recommendations.sort((a, b) => b.useCaseFit - a.useCaseFit || a.modelId.localeCompare(b.modelId));
|
|
191
|
+
}
|
|
192
|
+
async checkHealth(instanceConfig, options) {
|
|
193
|
+
if (instanceConfig.authMethod === 'chatgpt-oauth') {
|
|
194
|
+
if (this.isCloudRuntime()) {
|
|
195
|
+
return this.unhealthy('CONSUMER_RUNTIME_REQUIRED', 'ChatGPT subscription execution requires a connected consumer host');
|
|
196
|
+
}
|
|
197
|
+
const execution = await this.resolveExecution();
|
|
198
|
+
if (!execution || !(await execution.resolveCommand('codex'))) {
|
|
199
|
+
return this.unhealthy('CLI_UNAVAILABLE', 'Codex CLI is unavailable');
|
|
200
|
+
}
|
|
201
|
+
return this.checkCodexSubscription(execution, options?.timeout ?? 5_000);
|
|
202
|
+
}
|
|
203
|
+
const apiKey = await resolveOpenAIApiKey(this.context.runtime, instanceConfig, options);
|
|
204
|
+
if (!apiKey)
|
|
205
|
+
return {
|
|
206
|
+
healthy: false,
|
|
207
|
+
message: 'OpenAI API credential is unavailable',
|
|
208
|
+
error: {
|
|
209
|
+
code: 'MISSING_API_KEY',
|
|
210
|
+
message: 'Resolve apiKey through the runtime credential boundary'
|
|
211
|
+
},
|
|
212
|
+
checkedAt: new Date()
|
|
213
|
+
};
|
|
214
|
+
// The connections host's typed refusal belongs to its owner: the probe raises it, never reports it.
|
|
215
|
+
return probeOpenAIModels({
|
|
216
|
+
runtime: this.context.runtime,
|
|
217
|
+
apiKey,
|
|
218
|
+
config: instanceConfig,
|
|
219
|
+
options,
|
|
220
|
+
subject: 'OpenAI',
|
|
221
|
+
modalities: ['text', 'image', 'embedding', 'transcription', 'audio']
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
async authenticate(instanceConfig, options) {
|
|
225
|
+
if (instanceConfig.authMethod !== 'chatgpt-oauth') {
|
|
226
|
+
return this.checkHealth(instanceConfig, options);
|
|
227
|
+
}
|
|
228
|
+
if (options?.signal?.aborted) {
|
|
229
|
+
return this.unhealthy('AUTH_CANCELLED', 'Authentication cancelled');
|
|
230
|
+
}
|
|
231
|
+
if (this.isCloudRuntime()) {
|
|
232
|
+
return this.unhealthy('CONSUMER_RUNTIME_REQUIRED', 'ChatGPT subscription authentication requires a connected consumer host');
|
|
233
|
+
}
|
|
234
|
+
const execution = await this.resolveExecution();
|
|
235
|
+
if (!execution || !(await execution.resolveCommand('codex'))) {
|
|
236
|
+
return this.unhealthy('CLI_UNAVAILABLE', 'Codex CLI is unavailable');
|
|
237
|
+
}
|
|
238
|
+
const signedIn = await settle(this.signInWithChatGpt(execution, options));
|
|
239
|
+
if (!signedIn.failed)
|
|
240
|
+
return signedIn.value;
|
|
241
|
+
// The failure is why the login cannot run here (a spawn or execution failure): it is reported
|
|
242
|
+
// to the log as the failure it is, and the result carries only fixed text.
|
|
243
|
+
getLogger('integrations-openai', this.context.runtime).warn('chatgpt login could not run', { error: signedIn.cause });
|
|
244
|
+
return this.unhealthy('AUTH_FAILED', 'ChatGPT login is unavailable on this consumer host');
|
|
245
|
+
}
|
|
246
|
+
/** Checks the Codex account, runs the browser login when it is not signed in, then checks again. */
|
|
247
|
+
async signInWithChatGpt(execution, options) {
|
|
248
|
+
const current = await this.checkCodexSubscription(execution, 5_000);
|
|
249
|
+
if (options?.signal?.aborted)
|
|
250
|
+
return this.unhealthy('AUTH_CANCELLED', 'Authentication cancelled');
|
|
251
|
+
if (current.healthy)
|
|
252
|
+
return current;
|
|
253
|
+
const login = await runCodexSubscriptionLogin(this.context.runtime, execution, options);
|
|
254
|
+
if (options?.signal?.aborted)
|
|
255
|
+
return this.unhealthy('AUTH_CANCELLED', 'Authentication cancelled');
|
|
256
|
+
if (login.timedOut)
|
|
257
|
+
return this.unhealthy('AUTH_TIMEOUT', 'ChatGPT login timed out');
|
|
258
|
+
if (login.exitCode !== 0)
|
|
259
|
+
return this.unhealthy('AUTH_FAILED', 'ChatGPT login failed');
|
|
260
|
+
return this.checkCodexSubscription(execution, 5_000);
|
|
261
|
+
}
|
|
262
|
+
async validateConnection(config) {
|
|
263
|
+
const errors = [];
|
|
264
|
+
const method = config.authMethod ?? 'api-key';
|
|
265
|
+
if (method !== 'chatgpt-oauth' && method !== 'api-key')
|
|
266
|
+
errors.push('authMethod must be chatgpt-oauth or api-key');
|
|
267
|
+
const apiKey = CredentialReferenceSchema.safeParse(config.apiKey);
|
|
268
|
+
if (method === 'api-key' && (!apiKey.success || apiKey.data.source === 'inline'))
|
|
269
|
+
errors.push('apiKey must be a CredentialReference');
|
|
270
|
+
const baseUrl = config.baseUrl === undefined ? undefined : baseUrlProblem(config);
|
|
271
|
+
if (baseUrl)
|
|
272
|
+
errors.push(baseUrl);
|
|
273
|
+
if (method === 'chatgpt-oauth') {
|
|
274
|
+
if (config.tokenSource === 'credential' ||
|
|
275
|
+
config.apiKey !== undefined ||
|
|
276
|
+
config.accessToken !== undefined ||
|
|
277
|
+
config.refreshToken !== undefined)
|
|
278
|
+
errors.push('ChatGPT subscription authentication must remain in the Codex account store');
|
|
279
|
+
}
|
|
280
|
+
return { valid: errors.length === 0, errors: errors.length ? errors : undefined };
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* A host that composes no execution kind (a cloud host, or a consumer host
|
|
284
|
+
* without one) runs no Codex. A composed execution provider that is
|
|
285
|
+
* unavailable or fails is an owner failure and propagates typed.
|
|
286
|
+
*/
|
|
287
|
+
async resolveExecution() {
|
|
288
|
+
if (this.isCloudRuntime() || !this.context.runtime.hasKind('runtime/execution'))
|
|
289
|
+
return null;
|
|
290
|
+
return getRuntimeExecution(this.context.runtime);
|
|
291
|
+
}
|
|
292
|
+
isCloudRuntime() {
|
|
293
|
+
return this.context.runtime.scope?.hardware === 'cloud';
|
|
294
|
+
}
|
|
295
|
+
async checkCodexSubscription(execution, timeout) {
|
|
296
|
+
const startedAt = Date.now();
|
|
297
|
+
const status = await readCodexSubscriptionStatus(this.context.runtime, execution, timeout);
|
|
298
|
+
const latencyMs = Date.now() - startedAt;
|
|
299
|
+
if (status.timedOut) {
|
|
300
|
+
return this.unhealthy('AUTH_TIMEOUT', 'ChatGPT authentication check timed out', latencyMs);
|
|
301
|
+
}
|
|
302
|
+
if (status.authenticated) {
|
|
303
|
+
return {
|
|
304
|
+
healthy: true,
|
|
305
|
+
message: 'ChatGPT subscription is authenticated',
|
|
306
|
+
checkedAt: new Date(),
|
|
307
|
+
latencyMs,
|
|
308
|
+
availableModalities: ['text']
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
return this.unhealthy('SUBSCRIPTION_REQUIRED', 'Codex is not authenticated with a ChatGPT subscription', latencyMs);
|
|
312
|
+
}
|
|
313
|
+
unhealthy(code, message, latencyMs) {
|
|
314
|
+
return { healthy: false, message, error: { code, message }, checkedAt: new Date(), latencyMs };
|
|
315
|
+
}
|
|
316
|
+
async dispose() { }
|
|
317
|
+
}
|
|
318
|
+
/** Every page of Codex's `model/list`, following `nextCursor`. */
|
|
319
|
+
async function readCodexModelList(connection, signal) {
|
|
320
|
+
const models = [];
|
|
321
|
+
let cursor;
|
|
322
|
+
for (let page = 0; page < CODEX_MODEL_LIST_MAX_PAGES; page += 1) {
|
|
323
|
+
const result = await connection.request('model/list', cursor === undefined ? {} : { cursor }, CodexModelListResultSchema, { signal });
|
|
324
|
+
models.push(...result.data);
|
|
325
|
+
if (!result.nextCursor)
|
|
326
|
+
return models;
|
|
327
|
+
cursor = result.nextCursor;
|
|
328
|
+
}
|
|
329
|
+
throw codexFailure('response-shape-mismatch', { details: { method: 'model/list', pages: CODEX_MODEL_LIST_MAX_PAGES } });
|
|
330
|
+
}
|
|
331
|
+
//# sourceMappingURL=openai.provider.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.provider.impl.js","sourceRoot":"","sources":["../../../../src/ai/providers/openai/openai.provider.impl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACtH,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAarD,OAAO,EAAE,uBAAuB,EAAyC,MAAM,gCAAgC,CAAC;AAGhH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAyB,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAyB,MAAM,kCAAkC,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAKnE,+EAA+E;AAC/E,MAAM,2BAA2B,GAAgC,IAAI,GAAG,CAAC;IACxE,CAAC,iBAAiB,EAAE,MAAM,CAAC;IAC3B,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC7B,CAAC,qBAAqB,EAAE,QAAQ,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE/E,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAClC,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,oEAAoE;IACpE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC1G,CAAC,CAAC;AAEH,oHAAoH;AACpH,MAAM,0BAA0B,GAAG,CAAC,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAExF,4EAA4E;AAC5E,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,MAAM,OAAO,kBAAkB;IACrB,UAAU,CAA2B;IAC7B,OAAO,CAAwB;IAEhD,YAAY,UAAoC,EAAE,OAA8B;QAC/E,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ,CACb,gBAAsC,EACtC,KAAwB,EACxB,OAA6B,EAC7B,OAAiC;QAEjC,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,EAAE,CAAC,yBAAyB,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAChF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CACf,gBAAsC,EACtC,OAA0E;QAE1E,IAAI,0BAA0B,CAAC,KAAK,CAAC,gBAAgB,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,UAAU,KAAK,eAAe;YAAE,OAAO,IAAI,CAAC;QACvH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAC5B,IAAI,OAAO,EAAE,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,MAAM;YAAE,OAAO,EAAE,CAAC;QAC9E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAe,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC/F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACpH,OAAO,MAAM;aACX,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;aAChC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACd,MAAM,UAAU,GAAG,uBAAuB,CAAC;gBAC1C,EAAE,EAAE,GAAG,gBAAgB,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE;gBACxC,UAAU,EAAE,gBAAgB,CAAC,EAAE;gBAC/B,IAAI,EAAE,KAAK,CAAC,EAAE;gBACd,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,EAAE;gBAC1C,SAAS,EAAE,UAAU;gBACrB,oFAAoF;gBACpF,YAAY,EAAE;oBACb,iBAAiB;oBACjB,iBAAiB;oBACjB,kBAAkB;oBAClB,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,qBAAqB,CAAW,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtF;gBACD,UAAU,EAAE,CAAC,MAAM,CAAC;gBACpB,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE;gBACpC,QAAQ,EAAE,CAAC,UAAU,CAAC;gBACtB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACnF,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,WAAW;gBAAE,UAAU,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YAClE,OAAO,UAAU,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sFAAsF;IAC9E,KAAK,CAAC,eAAe,CAAC,SAA2B,EAAE,MAA+B;QACzF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,OAAO,CAAC,OAAO,EAAE,2BAA2B,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACpH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,gDAAgD,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC3H,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,CAAC;QACpB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,MAAM,CAAC,KAAK,CAAC;QACtC,OAAO,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,MAAM,SAAS,GAA+B,EAAE,CAAC;QACjD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,QAAQ,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,QAAQ,CAAC,aAAa,EAAE,OAAO,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC;QACpI,CAAC;QACD,wFAAwF;QACxF,0FAA0F;QAC1F,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,SAAS,CAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,4CAA4C,EAAE;gBACzG,KAAK,EAAE,KAAK,CAAC,KAAK;aAClB,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,6GAA6G;IACrG,KAAK,CAAC,mBAAmB;QAChC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChD,IACC,SAAS;YACT,CAAC,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAC5D,CAAC;YACF,OAAO;gBACN,IAAI,EAAE,iCAAiC;gBACvC,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE;aACrE,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;QACzC,MAAM,eAAe,GAA0B,EAAE,CAAC;QAClD,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAClE,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO;gBAAE,SAAS;YACjE,MAAM,KAAK,GAAG,oBAAoB,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACpD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;YACzB,yFAAyF;YACzF,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,SAAS;YACjD,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACxH,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC9D,MAAM,IAAI,GAAG,2BAA2B,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACzD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,MAAM,cAAc,GAAwB;gBAC3C,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,SAAS,EAAE,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI;gBAC1C,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBACrC,MAAM,EAAE,QAAQ;oBACf,CAAC,CAAC,+BAA+B;oBACjC,CAAC,CAAC,IAAI;wBACL,CAAC,CAAC,qCAAqC;wBACvC,CAAC,CAAC,uCAAuC;gBAC3C,YAAY;gBACZ,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;aAClH,CAAC;YACF,IAAI,KAAK,CAAC,UAAU;gBAAE,cAAc,CAAC,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC;YACtE,IAAI,KAAK,CAAC,aAAa,CAAC,SAAS;gBAAE,cAAc,CAAC,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;YAClG,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,WAAW,CAChB,cAAwC,EACxC,OAAkC;QAElC,IAAI,cAAc,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC,SAAS,CACpB,2BAA2B,EAC3B,mEAAmE,CACnE,CAAC;YACH,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAChD,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;YACtE,CAAC;YACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACxF,IAAI,CAAC,MAAM;YACV,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,sCAAsC;gBAC/C,KAAK,EAAE;oBACN,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,wDAAwD;iBACjE;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE;aACrB,CAAC;QACH,oGAAoG;QACpG,OAAO,iBAAiB,CAAC;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,MAAM;YACN,MAAM,EAAE,cAAc;YACtB,OAAO;YACP,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC;SACpE,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CACjB,cAAwC,EACxC,OAAkC;QAElC,IAAI,cAAc,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,SAAS,CACpB,2BAA2B,EAC3B,wEAAwE,CACxE,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;QAC5C,8FAA8F;QAC9F,2EAA2E;QAC3E,SAAS,CAAC,qBAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACtH,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,oDAAoD,CAAC,CAAC;IAC5F,CAAC;IAED,oGAAoG;IAC5F,KAAK,CAAC,iBAAiB,CAC9B,SAA2B,EAC3B,OAAkC;QAElC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpE,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QAClG,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACxF,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;QAClG,IAAI,KAAK,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,yBAAyB,CAAC,CAAC;QACrF,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAgC;QACxD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC;QAC9C,IAAI,MAAM,KAAK,eAAe,IAAI,MAAM,KAAK,SAAS;YACrD,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,yBAAyB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClE,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;YAC/E,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAClF,IAAI,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;YAChC,IACC,MAAM,CAAC,WAAW,KAAK,YAAY;gBACnC,MAAM,CAAC,MAAM,KAAK,SAAS;gBAC3B,MAAM,CAAC,WAAW,KAAK,SAAS;gBAChC,MAAM,CAAC,YAAY,KAAK,SAAS;gBAEjC,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACnF,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,gBAAgB;QAC7B,IAAI,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7F,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAEO,cAAc;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,sBAAsB,CACnC,SAA2B,EAC3B,OAAe;QAEf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACzC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,wCAAwC,EAAE,SAAS,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1B,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,uCAAuC;gBAChD,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS;gBACT,mBAAmB,EAAE,CAAC,MAAM,CAAC;aAC7B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CACpB,uBAAuB,EACvB,wDAAwD,EACxD,SAAS,CACT,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,IAAY,EAAE,OAAe,EAAE,SAAkB;QAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,OAAO,KAAmB,CAAC;CACjC;AAED,kEAAkE;AAClE,KAAK,UAAU,kBAAkB,CAChC,UAAoC,EACpC,MAA+B;IAE/B,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,IAAI,MAA0B,CAAC;IAC/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,0BAA0B,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CACtC,YAAY,EACZ,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EACtC,0BAA0B,EAC1B,EAAE,MAAM,EAAE,CACV,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,UAAU;YAAE,OAAO,MAAM,CAAC;QACtC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;IAC5B,CAAC;IACD,MAAM,YAAY,CAAC,yBAAyB,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC;AACzH,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ProviderRecommendation, type ModelAdapter } from '@vibesdotdev/ai/recommendations/base';
|
|
2
|
+
import type { ModelRecommendation, RecommendationContext, SetupMethod, SetupStep, UseCase } from '@vibesdotdev/ai/recommendations/schemas';
|
|
3
|
+
export declare class OpenAIRecommendation extends ProviderRecommendation {
|
|
4
|
+
readonly providerType = "openai";
|
|
5
|
+
readonly displayName = "OpenAI";
|
|
6
|
+
getUseCaseScore(useCase: UseCase): number;
|
|
7
|
+
getStageScore(stage: RecommendationContext['stage']): number;
|
|
8
|
+
getRequiredEnvironmentVariables(): string[];
|
|
9
|
+
getReason(useCase: UseCase): string;
|
|
10
|
+
getStrengths(): string[];
|
|
11
|
+
getWeaknesses(context: RecommendationContext): string[];
|
|
12
|
+
getSupportedSetupMethods(): SetupMethod[];
|
|
13
|
+
getSetupSteps(method: SetupMethod): Promise<SetupStep[]>;
|
|
14
|
+
recommendModels(_adapter: ModelAdapter | null, context: RecommendationContext): Promise<ModelRecommendation[]>;
|
|
15
|
+
getExecutionContext(): {
|
|
16
|
+
scanModels: "server";
|
|
17
|
+
getSetupSteps: "both";
|
|
18
|
+
recommendModels: "server";
|
|
19
|
+
};
|
|
20
|
+
supportsOAuth(): boolean;
|
|
21
|
+
supportsLocal(): boolean;
|
|
22
|
+
requiresGPU(): boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare const openAIRecommendation: OpenAIRecommendation;
|
|
25
|
+
//# sourceMappingURL=recommendations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recommendations.d.ts","sourceRoot":"","sources":["../../../../src/ai/providers/openai/recommendations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAE3I,qBAAa,oBAAqB,SAAQ,sBAAsB;IAC/D,QAAQ,CAAC,YAAY,YAAY;IACjC,QAAQ,CAAC,WAAW,YAAY;IAEhC,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAGzC,aAAa,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,MAAM;IAC5D,+BAA+B,IAAI,MAAM,EAAE;IAC3C,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IACnC,YAAY,IAAI,MAAM,EAAE;IACxB,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,EAAE;IACvD,wBAAwB,IAAI,WAAW,EAAE;IACnC,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAKxD,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAMpH,mBAAmB;;;;;IACnB,aAAa,IAAI,OAAO;IACxB,aAAa,IAAI,OAAO;IACxB,WAAW,IAAI,OAAO;CACtB;AAED,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ProviderRecommendation } from '@vibesdotdev/ai/recommendations/base';
|
|
2
|
+
export class OpenAIRecommendation extends ProviderRecommendation {
|
|
3
|
+
providerType = 'openai';
|
|
4
|
+
displayName = 'OpenAI';
|
|
5
|
+
getUseCaseScore(useCase) {
|
|
6
|
+
return ({ chat: 50, development: 50, research: 45, images: 45, video: 20, audio: 40, organization: 45 })[useCase];
|
|
7
|
+
}
|
|
8
|
+
getStageScore(stage) { return stage === 'production' ? 25 : 0; }
|
|
9
|
+
getRequiredEnvironmentVariables() { return ['OPENAI_API_KEY']; }
|
|
10
|
+
getReason(useCase) { return useCase === 'development' ? 'Strong agentic coding and tool use' : 'Broad multimodal API support'; }
|
|
11
|
+
getStrengths() { return ['OpenAI Responses API for text and tools', 'Text, image, speech, transcription, and embeddings', 'Experimental local Codex app-server integration']; }
|
|
12
|
+
getWeaknesses(context) { return context.availableEnvVars?.includes('OPENAI_API_KEY') ? [] : ['Cloud hosts require an OpenAI API credential']; }
|
|
13
|
+
getSupportedSetupMethods() { return ['oauth', 'api_key', 'env_var']; }
|
|
14
|
+
async getSetupSteps(method) {
|
|
15
|
+
if (method === 'oauth')
|
|
16
|
+
return [{ step: 'Authenticate Codex', description: 'Run `vibes dev external codex login`. That runs `codex login`; Codex keeps the account session.' }];
|
|
17
|
+
if (method === 'api_key')
|
|
18
|
+
return [{ step: 'Create API key', description: 'Create an OpenAI API key and store it in the Vibes secret store.' }];
|
|
19
|
+
return [{ step: 'Bind environment credential', description: 'Bind OPENAI_API_KEY through the runtime environment.' }];
|
|
20
|
+
}
|
|
21
|
+
async recommendModels(_adapter, context) {
|
|
22
|
+
return [
|
|
23
|
+
{ modelId: 'openai:gpt-6.1-terra', modelName: 'GPT-6.1 Terra', score: context.useCase === 'development' ? 100 : 95, reason: 'Frontier reasoning and agentic coding', contextWindow: 272000, maxOutputTokens: 128000, capabilities: ['chat', 'vision', 'tools'], isAvailable: true, requiresUpgrade: false, useCaseFit: context.useCase === 'development' ? 100 : 95 },
|
|
24
|
+
{ modelId: 'openai:gpt-6.1-sol', modelName: 'GPT-6.1 Sol', score: context.useCase === 'development' ? 100 : 95, reason: 'Frontier reasoning and agentic coding', contextWindow: 272000, maxOutputTokens: 128000, capabilities: ['chat', 'vision', 'tools'], isAvailable: true, requiresUpgrade: false, useCaseFit: context.useCase === 'development' ? 100 : 95 }
|
|
25
|
+
];
|
|
26
|
+
}
|
|
27
|
+
getExecutionContext() { return { scanModels: 'server', getSetupSteps: 'both', recommendModels: 'server' }; }
|
|
28
|
+
supportsOAuth() { return true; }
|
|
29
|
+
supportsLocal() { return false; }
|
|
30
|
+
requiresGPU() { return false; }
|
|
31
|
+
}
|
|
32
|
+
export const openAIRecommendation = new OpenAIRecommendation();
|
|
33
|
+
//# sourceMappingURL=recommendations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recommendations.js","sourceRoot":"","sources":["../../../../src/ai/providers/openai/recommendations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/transcription/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,cAAc,uEAAuE,CAAC;AACtF,cAAc,2CAA2C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/transcription/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,cAAc,uEAAuE,CAAC;AACtF,cAAc,2CAA2C,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg width="1183" height="719" viewBox="0 0 1183 719" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M414.688 359.358C414.688 319.91 446.996 287.603 486.444 287.603C525.891 287.603 558.199 319.91 558.199 359.358C558.199 398.805 525.891 431.113 486.444 431.113C446.996 431.113 414.688 398.805 414.688 359.358Z" stroke="white" stroke-opacity="0.2" stroke-width="1.59259"/>
|
|
3
|
+
<path d="M2.38867 359.358C2.38867 319.91 34.696 287.603 74.1439 287.603C113.592 287.603 145.899 319.91 145.899 359.358C145.899 398.805 113.592 431.113 74.1439 431.113C34.696 431.113 2.38867 398.805 2.38867 359.358Z" stroke="white" stroke-opacity="0.2" stroke-width="1.59259"/>
|
|
4
|
+
<path d="M208.539 154.491C208.539 115.043 240.846 82.7354 280.293 82.7354C319.742 82.7354 352.049 115.043 352.049 154.491C352.049 193.938 319.742 226.246 280.293 226.246C240.846 226.246 208.539 193.938 208.539 154.491Z" stroke="white" stroke-opacity="0.2" stroke-width="1.59259"/>
|
|
5
|
+
<path d="M208.539 564.406C208.539 524.958 240.846 492.65 280.293 492.65C319.742 492.65 352.049 524.958 352.049 564.406C352.049 603.855 319.742 636.162 280.293 636.162C240.846 636.162 208.539 603.855 208.539 564.406Z" stroke="white" stroke-opacity="0.2" stroke-width="1.59259"/>
|
|
6
|
+
<path d="M413.892 81.9395V636.777M146.694 81.9395V636.777" stroke="white" stroke-opacity="0.2" stroke-width="1.59259" stroke-miterlimit="10"/>
|
|
7
|
+
<path d="M558.995 227.042H1.59277M1.59277 491.674H558.995" stroke="white" stroke-opacity="0.2" stroke-width="1.59259" stroke-miterlimit="10"/>
|
|
8
|
+
<path d="M249.176 323.434V298.276C249.176 296.158 249.971 294.569 251.825 293.509L302.406 264.381C309.29 260.409 317.5 258.555 325.973 258.555C357.75 258.555 377.877 283.185 377.877 309.399C377.877 311.253 377.877 313.371 377.611 315.49L325.178 284.771C322.001 282.919 318.822 282.919 315.645 284.771L249.176 323.434ZM367.283 421.415V361.301C367.283 357.592 365.694 354.945 362.516 353.092L296.048 314.43L317.763 301.982C319.617 300.925 321.206 300.925 323.058 301.982L373.639 331.112C388.205 339.586 398.003 357.592 398.003 375.069C398.003 395.195 386.087 413.733 367.283 421.412V421.415ZM233.553 368.452L211.838 355.742C209.986 354.684 209.19 353.095 209.19 350.975V292.718C209.19 264.383 230.905 242.932 260.301 242.932C271.423 242.932 281.748 246.641 290.49 253.26L238.321 283.449C235.146 285.303 233.555 287.951 233.555 291.659V368.455L233.553 368.452ZM280.292 395.462L249.176 377.985V340.913L280.292 323.436L311.407 340.913V377.985L280.292 395.462ZM300.286 475.968C289.163 475.968 278.837 472.259 270.097 465.64L322.264 435.449C325.441 433.597 327.03 430.949 327.03 427.239V350.445L349.011 363.155C350.865 364.213 351.66 365.802 351.66 367.922V426.179C351.66 454.514 329.679 475.965 300.286 475.965V475.968ZM237.525 416.915L186.944 387.785C172.378 379.31 162.582 361.305 162.582 343.827C162.582 323.436 174.763 305.164 193.563 297.485V357.861C193.563 361.571 195.154 364.217 198.33 366.071L264.535 404.467L242.82 416.915C240.967 417.972 239.377 417.972 237.525 416.915ZM234.614 460.343C204.689 460.343 182.71 437.833 182.71 410.028C182.71 407.91 182.976 405.792 183.238 403.672L235.405 433.863C238.582 435.715 241.763 435.715 244.938 433.863L311.407 395.466V420.622C311.407 422.742 310.612 424.331 308.758 425.389L258.179 454.519C251.293 458.491 243.083 460.343 234.611 460.343H234.614ZM300.286 491.854C332.329 491.854 359.073 469.082 365.167 438.892C394.825 431.211 413.892 403.406 413.892 375.073C413.892 356.535 405.948 338.529 391.648 325.552C392.972 319.991 393.766 314.43 393.766 308.87C393.766 271.003 363.048 242.666 327.562 242.666C320.413 242.666 313.528 243.723 306.644 246.109C294.725 234.457 278.307 227.042 260.301 227.042C228.258 227.042 201.513 249.815 195.42 280.004C165.761 287.685 146.694 315.49 146.694 343.824C146.694 362.362 154.638 380.368 168.938 393.344C167.613 398.906 166.819 404.467 166.819 410.027C166.819 447.894 197.538 476.231 233.024 476.231C240.172 476.231 247.058 475.173 253.943 472.788C265.859 484.441 282.278 491.854 300.286 491.854Z" fill="white"/>
|
|
9
|
+
<path d="M558.995 81.9395H1.59277V636.777H558.995V81.9395Z" stroke="white" stroke-opacity="0.2" stroke-width="1.59259" stroke-miterlimit="10"/>
|
|
10
|
+
<rect x="624.593" y="83.1855" width="557.407" height="555.815" stroke="white" stroke-opacity="0.2" stroke-width="1.59259" stroke-miterlimit="10"/>
|
|
11
|
+
<path d="M872.176 325.027V299.869C872.176 297.751 872.971 296.161 874.825 295.102L925.406 265.974C932.29 262.002 940.5 260.148 948.973 260.148C980.75 260.148 1000.88 284.777 1000.88 310.992C1000.88 312.845 1000.88 314.963 1000.61 317.083L948.178 286.364C945.001 284.512 941.822 284.512 938.645 286.364L872.176 325.027ZM990.283 423.008V362.894C990.283 359.185 988.694 356.538 985.516 354.684L919.048 316.023L940.763 303.575C942.617 302.517 944.206 302.517 946.058 303.575L996.639 332.705C1011.2 341.179 1021 359.185 1021 376.662C1021 396.788 1009.09 415.325 990.283 423.005V423.008ZM856.553 370.045L834.838 357.334C832.986 356.277 832.19 354.688 832.19 352.568V294.311C832.19 265.975 853.905 244.525 883.301 244.525C894.423 244.525 904.748 248.234 913.49 254.853L861.321 285.042C858.146 286.896 856.555 289.544 856.555 293.252V370.048L856.553 370.045ZM903.292 397.055L872.176 379.578V342.506L903.292 325.029L934.407 342.506V379.578L903.292 397.055ZM923.286 477.561C912.163 477.561 901.837 473.852 893.097 467.233L945.264 437.042C948.441 435.19 950.03 432.541 950.03 428.832V352.037L972.011 364.748C973.865 365.805 974.66 367.395 974.66 369.515V427.772C974.66 456.107 952.679 477.558 923.286 477.558V477.561ZM860.525 418.507L809.944 389.377C795.378 380.903 785.582 362.897 785.582 345.42C785.582 325.029 797.763 306.757 816.563 299.077V359.454C816.563 363.163 818.154 365.81 821.33 367.664L887.535 406.06L865.82 418.507C863.967 419.565 862.377 419.565 860.525 418.507ZM857.614 461.936C827.689 461.936 805.71 439.426 805.71 411.621C805.71 409.503 805.976 407.385 806.238 405.265L858.405 435.456C861.582 437.308 864.763 437.308 867.938 435.456L934.407 397.058V422.215C934.407 424.335 933.612 425.924 931.758 426.982L881.179 456.112C874.293 460.084 866.083 461.936 857.611 461.936H857.614ZM923.286 493.447C955.329 493.447 982.073 470.674 988.167 440.485C1017.83 432.804 1036.89 404.999 1036.89 376.665C1036.89 358.128 1028.95 340.122 1014.65 327.145C1015.97 321.584 1016.77 316.023 1016.77 310.463C1016.77 272.596 986.048 244.259 950.562 244.259C943.413 244.259 936.528 245.316 929.644 247.702C917.725 236.049 901.307 228.635 883.301 228.635C851.258 228.635 824.513 251.408 818.42 281.597C788.761 289.278 769.694 317.083 769.694 345.417C769.694 363.955 777.638 381.961 791.938 394.937C790.613 400.498 789.819 406.06 789.819 411.62C789.819 449.487 820.538 477.824 856.024 477.824C863.172 477.824 870.058 476.766 876.943 474.38C888.859 486.033 905.278 493.447 923.286 493.447Z" fill="white"/>
|
|
12
|
+
</svg>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg width="1183" height="719" viewBox="0 0 1183 719" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M414.688 359.358C414.688 319.91 446.996 287.603 486.444 287.603C525.891 287.603 558.199 319.91 558.199 359.358C558.199 398.805 525.891 431.113 486.444 431.113C446.996 431.113 414.688 398.805 414.688 359.358Z" stroke="black" stroke-opacity="0.12" stroke-width="1.59259"/>
|
|
3
|
+
<path d="M2.38867 359.358C2.38867 319.91 34.696 287.603 74.1439 287.603C113.592 287.603 145.899 319.91 145.899 359.358C145.899 398.805 113.592 431.113 74.1439 431.113C34.696 431.113 2.38867 398.805 2.38867 359.358Z" stroke="black" stroke-opacity="0.12" stroke-width="1.59259"/>
|
|
4
|
+
<path d="M208.539 154.491C208.539 115.043 240.846 82.7354 280.293 82.7354C319.742 82.7354 352.049 115.043 352.049 154.491C352.049 193.938 319.742 226.246 280.293 226.246C240.846 226.246 208.539 193.938 208.539 154.491Z" stroke="black" stroke-opacity="0.12" stroke-width="1.59259"/>
|
|
5
|
+
<path d="M208.539 564.406C208.539 524.958 240.846 492.65 280.293 492.65C319.742 492.65 352.049 524.958 352.049 564.406C352.049 603.855 319.742 636.162 280.293 636.162C240.846 636.162 208.539 603.855 208.539 564.406Z" stroke="black" stroke-opacity="0.12" stroke-width="1.59259"/>
|
|
6
|
+
<path d="M413.892 81.9395V636.777M146.694 81.9395V636.777" stroke="black" stroke-opacity="0.12" stroke-width="1.59259" stroke-miterlimit="10"/>
|
|
7
|
+
<path d="M558.995 227.042H1.59277M1.59277 491.674H558.995" stroke="black" stroke-opacity="0.12" stroke-width="1.59259" stroke-miterlimit="10"/>
|
|
8
|
+
<path d="M249.176 323.434V298.276C249.176 296.158 249.971 294.569 251.825 293.509L302.406 264.381C309.29 260.409 317.5 258.555 325.973 258.555C357.75 258.555 377.877 283.185 377.877 309.399C377.877 311.253 377.877 313.371 377.611 315.49L325.178 284.771C322.001 282.919 318.822 282.919 315.645 284.771L249.176 323.434ZM367.283 421.415V361.301C367.283 357.592 365.694 354.945 362.516 353.092L296.048 314.43L317.763 301.982C319.617 300.925 321.206 300.925 323.058 301.982L373.639 331.112C388.205 339.586 398.003 357.592 398.003 375.069C398.003 395.195 386.087 413.733 367.283 421.412V421.415ZM233.553 368.452L211.838 355.742C209.986 354.684 209.19 353.095 209.19 350.975V292.718C209.19 264.383 230.905 242.932 260.301 242.932C271.423 242.932 281.748 246.641 290.49 253.26L238.321 283.449C235.146 285.303 233.555 287.951 233.555 291.659V368.455L233.553 368.452ZM280.292 395.462L249.176 377.985V340.913L280.292 323.436L311.407 340.913V377.985L280.292 395.462ZM300.286 475.968C289.163 475.968 278.837 472.259 270.097 465.64L322.264 435.449C325.441 433.597 327.03 430.949 327.03 427.239V350.445L349.011 363.155C350.865 364.213 351.66 365.802 351.66 367.922V426.179C351.66 454.514 329.679 475.965 300.286 475.965V475.968ZM237.525 416.915L186.944 387.785C172.378 379.31 162.582 361.305 162.582 343.827C162.582 323.436 174.763 305.164 193.563 297.485V357.861C193.563 361.571 195.154 364.217 198.33 366.071L264.535 404.467L242.82 416.915C240.967 417.972 239.377 417.972 237.525 416.915ZM234.614 460.343C204.689 460.343 182.71 437.833 182.71 410.028C182.71 407.91 182.976 405.792 183.238 403.672L235.405 433.863C238.582 435.715 241.763 435.715 244.938 433.863L311.407 395.466V420.622C311.407 422.742 310.612 424.331 308.758 425.389L258.179 454.519C251.293 458.491 243.083 460.343 234.611 460.343H234.614ZM300.286 491.854C332.329 491.854 359.073 469.082 365.167 438.892C394.825 431.211 413.892 403.406 413.892 375.073C413.892 356.535 405.948 338.529 391.648 325.552C392.972 319.991 393.766 314.43 393.766 308.87C393.766 271.003 363.048 242.666 327.562 242.666C320.413 242.666 313.528 243.723 306.644 246.109C294.725 234.457 278.307 227.042 260.301 227.042C228.258 227.042 201.513 249.815 195.42 280.004C165.761 287.685 146.694 315.49 146.694 343.824C146.694 362.362 154.638 380.368 168.938 393.344C167.613 398.906 166.819 404.467 166.819 410.027C166.819 447.894 197.538 476.231 233.024 476.231C240.172 476.231 247.058 475.173 253.943 472.788C265.859 484.441 282.278 491.854 300.286 491.854Z" fill="black"/>
|
|
9
|
+
<path d="M558.995 81.9395H1.59277V636.777H558.995V81.9395Z" stroke="black" stroke-opacity="0.12" stroke-width="1.59259" stroke-miterlimit="10"/>
|
|
10
|
+
<rect x="624.593" y="83.1855" width="557.407" height="555.815" stroke="black" stroke-opacity="0.12" stroke-width="1.59259" stroke-miterlimit="10"/>
|
|
11
|
+
<path d="M872.176 325.027V299.869C872.176 297.751 872.971 296.161 874.825 295.102L925.406 265.974C932.29 262.002 940.5 260.148 948.973 260.148C980.75 260.148 1000.88 284.777 1000.88 310.992C1000.88 312.845 1000.88 314.963 1000.61 317.083L948.178 286.364C945.001 284.512 941.822 284.512 938.645 286.364L872.176 325.027ZM990.283 423.008V362.894C990.283 359.185 988.694 356.538 985.516 354.684L919.048 316.023L940.763 303.575C942.617 302.517 944.206 302.517 946.058 303.575L996.639 332.705C1011.2 341.179 1021 359.185 1021 376.662C1021 396.788 1009.09 415.325 990.283 423.005V423.008ZM856.553 370.045L834.838 357.334C832.986 356.277 832.19 354.688 832.19 352.568V294.311C832.19 265.975 853.905 244.525 883.301 244.525C894.423 244.525 904.748 248.234 913.49 254.853L861.321 285.042C858.146 286.896 856.555 289.544 856.555 293.252V370.048L856.553 370.045ZM903.292 397.055L872.176 379.578V342.506L903.292 325.029L934.407 342.506V379.578L903.292 397.055ZM923.286 477.561C912.163 477.561 901.837 473.852 893.097 467.233L945.264 437.042C948.441 435.19 950.03 432.541 950.03 428.832V352.037L972.011 364.748C973.865 365.805 974.66 367.395 974.66 369.515V427.772C974.66 456.107 952.679 477.558 923.286 477.558V477.561ZM860.525 418.507L809.944 389.377C795.378 380.903 785.582 362.897 785.582 345.42C785.582 325.029 797.763 306.757 816.563 299.077V359.454C816.563 363.163 818.154 365.81 821.33 367.664L887.535 406.06L865.82 418.507C863.967 419.565 862.377 419.565 860.525 418.507ZM857.614 461.936C827.689 461.936 805.71 439.426 805.71 411.621C805.71 409.503 805.976 407.385 806.238 405.265L858.405 435.456C861.582 437.308 864.763 437.308 867.938 435.456L934.407 397.058V422.215C934.407 424.335 933.612 425.924 931.758 426.982L881.179 456.112C874.293 460.084 866.083 461.936 857.611 461.936H857.614ZM923.286 493.447C955.329 493.447 982.073 470.674 988.167 440.485C1017.83 432.804 1036.89 404.999 1036.89 376.665C1036.89 358.128 1028.95 340.122 1014.65 327.145C1015.97 321.584 1016.77 316.023 1016.77 310.463C1016.77 272.596 986.048 244.259 950.562 244.259C943.413 244.259 936.528 245.316 929.644 247.702C917.725 236.049 901.307 228.635 883.301 228.635C851.258 228.635 824.513 251.408 818.42 281.597C788.761 289.278 769.694 317.083 769.694 345.417C769.694 363.955 777.638 381.961 791.938 394.937C790.613 400.498 789.819 406.06 789.819 411.62C789.819 449.487 820.538 477.824 856.024 477.824C863.172 477.824 870.058 476.766 876.943 474.38C888.859 486.033 905.278 493.447 923.286 493.447Z" fill="black"/>
|
|
12
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "openai-transcription:gpt-4o-mini-transcribe-2025-12-15",
|
|
3
|
+
"providerId": "openai-transcription",
|
|
4
|
+
"providerModelId": "gpt-4o-mini-transcribe-2025-12-15",
|
|
5
|
+
"aliases": [
|
|
6
|
+
"gpt-4o-mini-transcribe-2025-12-15",
|
|
7
|
+
"openai-transcription:gpt-4o-mini-transcribe-2025-12-15"
|
|
8
|
+
],
|
|
9
|
+
"globalModelId": "openai:gpt-4o-mini-transcribe-2025-12-15",
|
|
10
|
+
"source": "provider-catalog",
|
|
11
|
+
"displayName": "GPT-4o mini Transcribe (2025-12-15)",
|
|
12
|
+
"description": "Pinned OpenAI GPT-4o mini speech-to-text model.",
|
|
13
|
+
"modelType": "audio_transcription",
|
|
14
|
+
"capabilities": ["audio_transcription"],
|
|
15
|
+
"modalities": ["transcription"],
|
|
16
|
+
"configuration": { "modelId": "gpt-4o-mini-transcribe-2025-12-15" },
|
|
17
|
+
"hardware": ["cloud"],
|
|
18
|
+
"enabled": true,
|
|
19
|
+
"tags": ["openai", "speech-to-text", "transcription", "pinned"]
|
|
20
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "openai-transcription:gpt-4o-mini-transcribe",
|
|
3
|
+
"providerId": "openai-transcription",
|
|
4
|
+
"providerModelId": "gpt-4o-mini-transcribe",
|
|
5
|
+
"aliases": ["gpt-4o-mini-transcribe", "openai-transcription:gpt-4o-mini-transcribe"],
|
|
6
|
+
"globalModelId": "openai:gpt-4o-mini-transcribe",
|
|
7
|
+
"source": "provider-catalog",
|
|
8
|
+
"displayName": "GPT-4o mini Transcribe",
|
|
9
|
+
"description": "OpenAI speech-to-text model powered by GPT-4o mini.",
|
|
10
|
+
"modelType": "audio_transcription",
|
|
11
|
+
"capabilities": ["audio_transcription"],
|
|
12
|
+
"modalities": ["transcription"],
|
|
13
|
+
"configuration": { "modelId": "gpt-4o-mini-transcribe" },
|
|
14
|
+
"hardware": ["cloud"],
|
|
15
|
+
"enabled": true,
|
|
16
|
+
"tags": ["openai", "speech-to-text", "transcription"]
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "openai-transcription:gpt-4o-transcribe",
|
|
3
|
+
"providerId": "openai-transcription",
|
|
4
|
+
"providerModelId": "gpt-4o-transcribe",
|
|
5
|
+
"aliases": ["gpt-4o-transcribe", "openai-transcription:gpt-4o-transcribe"],
|
|
6
|
+
"globalModelId": "openai:gpt-4o-transcribe",
|
|
7
|
+
"source": "provider-catalog",
|
|
8
|
+
"displayName": "GPT-4o Transcribe",
|
|
9
|
+
"description": "OpenAI speech-to-text model powered by GPT-4o.",
|
|
10
|
+
"modelType": "audio_transcription",
|
|
11
|
+
"capabilities": ["audio_transcription"],
|
|
12
|
+
"modalities": ["transcription"],
|
|
13
|
+
"configuration": { "modelId": "gpt-4o-transcribe" },
|
|
14
|
+
"hardware": ["cloud"],
|
|
15
|
+
"enabled": true,
|
|
16
|
+
"tags": ["openai", "speech-to-text", "transcription"]
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "openai-transcription:whisper-1",
|
|
3
|
+
"providerId": "openai-transcription",
|
|
4
|
+
"providerModelId": "whisper-1",
|
|
5
|
+
"aliases": ["whisper-1", "openai-transcription:whisper-1"],
|
|
6
|
+
"globalModelId": "openai:whisper-1",
|
|
7
|
+
"source": "provider-catalog",
|
|
8
|
+
"displayName": "Whisper",
|
|
9
|
+
"modelType": "audio_transcription",
|
|
10
|
+
"capabilities": ["audio_transcription"],
|
|
11
|
+
"modalities": ["transcription"],
|
|
12
|
+
"configuration": { "modelId": "whisper-1" },
|
|
13
|
+
"hardware": ["cloud"],
|
|
14
|
+
"enabled": true,
|
|
15
|
+
"tags": ["openai", "whisper", "speech-to-text", "transcription"]
|
|
16
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "openai-transcription",
|
|
3
|
+
"name": "OpenAI Transcription",
|
|
4
|
+
"baseUrl": "https://api.openai.com/v1",
|
|
5
|
+
"compatibleKindId": "openai-compatible",
|
|
6
|
+
"docsUrl": "https://platform.openai.com/docs",
|
|
7
|
+
"sourceUrls": ["https://openai.com/brand/"],
|
|
8
|
+
"branding": {
|
|
9
|
+
"logo": {
|
|
10
|
+
"kind": "mark",
|
|
11
|
+
"format": "svg",
|
|
12
|
+
"path": "./assets/logos/providers/openai.svg",
|
|
13
|
+
"sourceUrl": "https://images.ctfassets.net/kftzwdyauwt9/3hUGLn3ypllZ0oa01qOYVq/28e8188e6f11b84c3e876569d492734f/Blossom_Light.svg",
|
|
14
|
+
"sourcePageUrl": "https://openai.com/brand/",
|
|
15
|
+
"source": "official-brand-kit",
|
|
16
|
+
"theme": "dark"
|
|
17
|
+
},
|
|
18
|
+
"darkLogo": {
|
|
19
|
+
"kind": "mark",
|
|
20
|
+
"format": "svg",
|
|
21
|
+
"path": "./assets/logos/providers/openai-dark.svg",
|
|
22
|
+
"sourceUrl": "https://images.ctfassets.net/kftzwdyauwt9/3M8rPrJsENQL5tjaDzo6SL/f0f85c8e27090123c767ac3c8237b401/Blossom_Dark.svg",
|
|
23
|
+
"sourcePageUrl": "https://openai.com/brand/",
|
|
24
|
+
"source": "official-brand-kit",
|
|
25
|
+
"theme": "light"
|
|
26
|
+
},
|
|
27
|
+
"sourcePageUrl": "https://openai.com/brand/",
|
|
28
|
+
"usageNotes": "OpenAI brand guidance identifies the wordmark as primary; Blossom usage is constrained by the official brand page."
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type RuntimePlugin } from '@vibesdotdev/kernel';
|
|
2
|
+
/** Complete runtime boundary for OpenAI Transcription-owned AI capabilities. */
|
|
3
|
+
export declare function createOpenAITranscriptionAIPlugin(): RuntimePlugin;
|
|
4
|
+
export declare const openAITranscriptionAIPlugin: RuntimePlugin;
|
|
5
|
+
export default openAITranscriptionAIPlugin;
|
|
6
|
+
//# sourceMappingURL=provider.plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.plugin.d.ts","sourceRoot":"","sources":["../../../src/ai/transcription/provider.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAkG9E,gFAAgF;AAChF,wBAAgB,iCAAiC,IAAI,aAAa,CA6DjE;AAED,eAAO,MAAM,2BAA2B,EAAE,aAAmD,CAAC;AAC9F,eAAe,2BAA2B,CAAC"}
|