/models
Add, inspect, or remove AI language models and their providers — the node-based (data, not config) way
- Instructions: Manage the AI language models the chat picker offers. Everything here is **data** — mesh nodes you create/read/delete — **not** deployment config. The Helm/appsettings `ModelTier__*` / `AzureFoundry__*` keys are a legacy seed path; the live source of truth is nodes. # The model: two node types | nodeType | Holds | Path shape | |---|---|---| | `ModelProvider` | credentials + endpoint shared by its models — content `$type: ModelProviderConfiguration` with `provider`, `label`, `endpoint`, `apiKey` (encrypted), `models[]` | `Provider/{Name}` (system) · `{space}/Provider/{Name}` (space) · `{user}/_Memex/{Name}` (user) | | `LanguageModel` | one model — content `$type: ModelDefinition` with `id`, `displayName`, `provider`, `providerRef` (→ its provider path), `order` | `{providerPath}/{modelId}` (nested under its provider) | A `LanguageModel` is always **nested under its provider** and never stores a key — it points at the provider via `providerRef`; the resolver follows that to get the endpoint + key. > The `provider` string on BOTH nodes selects the chat-client **factory** (e.g. `AzureFoundry` → the Azure Foundry factory, `claude-*` ids → the Claude factory). It is independent of the node's path id — you can name the provider node `Provider/Azure` while its `provider` field is `AzureFoundry`. # Three layers (closest wins) - **System** — top-level `Provider/{Name}`: platform-wide, visible to everyone. Needs `Permission.Api` / Provider Admin. - **Space** — `{space}/Provider/{Name}`: visible to users with Read on that space. - **User** — `{user}/_Memex/{Name}`: personal bring-your-own-key, overrides same-named org/system provider. # Add a model (worked example) Create the provider once, then one `LanguageModel` child per model. This exact shape is live at `Provider/Azure`: ```jsonc // create @Provider/Azure — the provider (holds endpoint + optional key) { "id": "Azure", "namespace": "Provider", "name": "Azure AI Foundry", "nodeType": "ModelProvider", "content":…
- Auto mount: yes
- Launches sub thread: no