AI Catalog Sync #46
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: AI Catalog Sync | |
| on: | |
| schedule: | |
| - cron: '0 6 * * *' # Daily at 6 AM UTC | |
| workflow_dispatch: # Allow manual trigger | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| jobs: | |
| sync-catalog: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| env: | |
| NODE_OPTIONS: '--max-old-space-size=4096' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: main | |
| - name: Install dependencies | |
| uses: ./.github/actions/yarn-install | |
| - name: Build dependencies | |
| run: npx nx build twenty-shared | |
| - name: Run catalog sync | |
| run: npx nx run twenty-server:ts-node-no-deps-transpile-only -- ./scripts/ai-sync-models-dev.ts | |
| - name: Check for changes | |
| id: changes | |
| run: | | |
| if git diff --quiet packages/twenty-server/src/engine/metadata-modules/ai/ai-models/ai-providers.json; then | |
| echo "changed=false" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "changed=true" >> "$GITHUB_OUTPUT" | |
| fi | |
| - name: Create pull request | |
| if: steps.changes.outputs.changed == 'true' | |
| uses: peter-evans/create-pull-request@v7 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| commit-message: 'chore: sync AI model catalog from models.dev' | |
| title: 'chore: sync AI model catalog from models.dev' | |
| body: | | |
| Automated daily sync of `ai-providers.json` from [models.dev](https://models.dev). | |
| This PR updates pricing, context windows, and model availability based on the latest data. | |
| New models meeting inclusion criteria (tool calling, pricing data, context limits) are added automatically. | |
| Deprecated models are detected based on cost-efficiency within the same model family. | |
| **Please review before merging** — verify no critical models were incorrectly deprecated. | |
| branch: chore/ai-catalog-sync | |
| base: main | |
| labels: ai, automated | |
| delete-branch: true | |
| - name: Trigger automerge | |
| if: steps.changes.outputs.changed == 'true' | |
| uses: peter-evans/repository-dispatch@v2 | |
| with: | |
| token: ${{ secrets.TWENTY_INFRA_TOKEN }} | |
| repository: twentyhq/twenty-infra | |
| event-type: automated-pr-ready |