Libs shipped as bare source with no manifest — consumable only via per-app
vite/tsconfig alias surgery, no version contract, no tree-shaking signal.
Add a minimal package.json matching the @crema/content-ui template: entry +
exports map, declared peerDependencies, sideEffects:false. Mechanical, no
code change. Frontend audit 2026-06-20, rank 2.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Disambiguates the Phoenix/auth client lib from lib-arcadia-agents-client.
Dir lib-arcadia-client → lib-arcadia-core-client; alias updated in
tsconfig paths, vite config, app.css @source, imports, CI and docs.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Provider's published URL is now https://api.deepseek.com (no /v1).
Default model list updated to V4 family (flash + pro). Legacy aliases
deepseek-chat / deepseek-reasoner are still accepted upstream but
deprecate 2026-07-24, so they don't belong in the picker default.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Multi-provider LLM picker for Crema apps. Sits on top of @crema/llm-ui
and adds:
- A named provider catalog (OpenAI, Anthropic, DeepSeek, Qwen, LM Studio)
with default base URLs and suggested models.
- buildAdapter(): async factory that resolves the API key from a
caller-injected resolveSecret() (direct mode) or assembles an
ArcadiaProxyAdapter pointing at /api/v1/ai/llm/chat (proxy mode).
- LLMProvidersSettingsCard: provider/model picker, vault-key reference
field with "looks like an API key" warning, direct/proxy toggle,
context/response budgets, system prompt, optional Test connection.
- Persisted settings store at crema.llm-providers.settings, reactive
via useSyncExternalStore.
The lib is provider-agnostic about how keys are stored; the consuming
app injects a resolveSecret() that hits whatever vault it owns.
arcadia-admin and vibespace both wire this to /api/v1/secrets/:name.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>