Altien plugs OpenAI and Azure into Mike's model lineup

The fork now treats OpenAI and Microsoft's Azure OpenAI as first-class engines alongside Claude and Gemini, with a fallback chain so the lights stay on when one provider stumbles.

infrastructureintegration

Altien widened Mike's model layer so the app can talk to plain OpenAI or to Azure OpenAI - Microsoft's enterprise-flavoured rehosting of the same models, which a lot of regulated buyers insist on because it lives inside their existing Azure contract and compliance perimeter. The Azure side is wired up to allow managed-identity authentication later without breaking anything, and the in-app model picker now lists whatever Azure deployments a tenant has configured.

The quieter win is a fallback chain for fast, cheap calls - the kind of small jobs that power summaries and routing. If the user's pick is unavailable, the app walks down a ladder of small models from Google, OpenAI, Anthropic and Azure before giving up. Less drama when one vendor has a bad afternoon.

So what Matters for legal-tech leads who need Azure-tenant hosting to satisfy procurement, and for anyone tired of a single-vendor outage taking the whole product down.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from Altien/mikeOssAzure, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
16a0799f feat(llm): OpenAI + Azure OpenAI providers + global-key fallback chain Allen Morgan 2026-05-08 ↗ GitHub
commit body
Adds OpenAI and Azure OpenAI to the LLM adapter alongside the existing
Claude and Gemini providers, plus the supporting plumbing on the user-
profile and chat sides:

  * lib/llm/openai.ts            - streaming + completion adapter for
                                   plain OpenAI.  Tool-call assembly
                                   matches the upstream OpenAI tool
                                   schema, so Mike's existing tool
                                   surface passes through untouched.

  * lib/llm/azureOpenai.ts        - Azure OpenAI adapter (endpoint +
                                   apiVersion + deployment).  apiKey
                                   is optional so Managed-Identity
                                   auth can land later without an API
                                   change.

  * lib/llm/azureOpenaiDeployments.ts - lists deployments configured
                                   against the user's AOAI resource
                                   for the in-app model picker.

  * lib/llm/types.ts / models.ts  - Provider type now includes
                                   "openai" and "azureOpenai"; AOAI
                                   model ids use the prefix
                                   "aoai:<deployment>" so providerForModel
                                   can route them at runtime.

  * routes/llm.ts                 - GET /llm/azure-openai/deployments
                                   exposes the deployment list to the
                                   frontend model picker.

  * lib/userSettings.ts           - fast_model resolver now walks a
                                   fallback chain: user pick →
                                   Gemini Flash Lite → OpenAI nano →
                                   Claude Haiku → AOAI default
                                   deployment.  AzureOpenaiSettings is
                                   constructed from the persisted
                                   profile columns.

  * routes/{chat,tabular}.ts      - title_model → fast_model.  Title
                                   model name is no longer
                                   provider-coupled.

Adds the openai npm package as a runtime dep.

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-192.md from inside the repo you want the changes in.

⬇ Download capture-thread-192.md