feat: Complete LLMX v0.1.0 - Rebrand from Codex with LiteLLM Integration

This release represents a comprehensive transformation of the codebase from Codex to LLMX,
enhanced with LiteLLM integration to support 100+ LLM providers through a unified API.

## Major Changes

### Phase 1: Repository & Infrastructure Setup
- Established new repository structure and branching strategy
- Created comprehensive project documentation (CLAUDE.md, LITELLM-SETUP.md)
- Set up development environment and tooling configuration

### Phase 2: Rust Workspace Transformation
- Renamed all Rust crates from `codex-*` to `llmx-*` (30+ crates)
- Updated package names, binary names, and workspace members
- Renamed core modules: codex.rs → llmx.rs, codex_delegate.rs → llmx_delegate.rs
- Updated all internal references, imports, and type names
- Renamed directories: codex-rs/ → llmx-rs/, codex-backend-openapi-models/ → llmx-backend-openapi-models/
- Fixed all Rust compilation errors after mass rename

### Phase 3: LiteLLM Integration
- Integrated LiteLLM for multi-provider LLM support (Anthropic, OpenAI, Azure, Google AI, AWS Bedrock, etc.)
- Implemented OpenAI-compatible Chat Completions API support
- Added model family detection and provider-specific handling
- Updated authentication to support LiteLLM API keys
- Renamed environment variables: OPENAI_BASE_URL → LLMX_BASE_URL
- Added LLMX_API_KEY for unified authentication
- Enhanced error handling for Chat Completions API responses
- Implemented fallback mechanisms between Responses API and Chat Completions API

### Phase 4: TypeScript/Node.js Components
- Renamed npm package: @codex/codex-cli → @valknar/llmx
- Updated TypeScript SDK to use new LLMX APIs and endpoints
- Fixed all TypeScript compilation and linting errors
- Updated SDK tests to support both API backends
- Enhanced mock server to handle multiple API formats
- Updated build scripts for cross-platform packaging

### Phase 5: Configuration & Documentation
- Updated all configuration files to use LLMX naming
- Rewrote README and documentation for LLMX branding
- Updated config paths: ~/.codex/ → ~/.llmx/
- Added comprehensive LiteLLM setup guide
- Updated all user-facing strings and help text
- Created release plan and migration documentation

### Phase 6: Testing & Validation
- Fixed all Rust tests for new naming scheme
- Updated snapshot tests in TUI (36 frame files)
- Fixed authentication storage tests
- Updated Chat Completions payload and SSE tests
- Fixed SDK tests for new API endpoints
- Ensured compatibility with Claude Sonnet 4.5 model
- Fixed test environment variables (LLMX_API_KEY, LLMX_BASE_URL)

### Phase 7: Build & Release Pipeline
- Updated GitHub Actions workflows for LLMX binary names
- Fixed rust-release.yml to reference llmx-rs/ instead of codex-rs/
- Updated CI/CD pipelines for new package names
- Made Apple code signing optional in release workflow
- Enhanced npm packaging resilience for partial platform builds
- Added Windows sandbox support to workspace
- Updated dotslash configuration for new binary names

### Phase 8: Final Polish
- Renamed all assets (.github images, labels, templates)
- Updated VSCode and DevContainer configurations
- Fixed all clippy warnings and formatting issues
- Applied cargo fmt and prettier formatting across codebase
- Updated issue templates and pull request templates
- Fixed all remaining UI text references

## Technical Details

**Breaking Changes:**
- Binary name changed from `codex` to `llmx`
- Config directory changed from `~/.codex/` to `~/.llmx/`
- Environment variables renamed (CODEX_* → LLMX_*)
- npm package renamed to `@valknar/llmx`

**New Features:**
- Support for 100+ LLM providers via LiteLLM
- Unified authentication with LLMX_API_KEY
- Enhanced model provider detection and handling
- Improved error handling and fallback mechanisms

**Files Changed:**
- 578 files modified across Rust, TypeScript, and documentation
- 30+ Rust crates renamed and updated
- Complete rebrand of UI, CLI, and documentation
- All tests updated and passing

**Dependencies:**
- Updated Cargo.lock with new package names
- Updated npm dependencies in llmx-cli
- Enhanced OpenAPI models for LLMX backend

This release establishes LLMX as a standalone project with comprehensive LiteLLM
integration, maintaining full backward compatibility with existing functionality
while opening support for a wide ecosystem of LLM providers.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Sebastian Krüger <support@pivoine.art>
This commit is contained in:
Sebastian Krüger
2025-11-12 20:40:44 +01:00
parent 052b052832
commit 3c7efc58c8
1248 changed files with 10085 additions and 9580 deletions

View File

@@ -0,0 +1,17 @@
-.-A*##**##-
-*#A**#A#**..*- -█#-
#.*.#**█-- -█*-█.*...#
**-**█##- A*.*.#
*-*A█-.*-** █..**#
.* #- .*A*..# █.*..#
#-█-* █*.*A█.- .A.
..-.- #AA.*.* █-.
.*.█- *..-*.█..######-## *█ .
-.** -*#- A* .█.---.A###.A#A#.
*--█- -*#.A- --*██* -*█A#*-A
*-# █# - #█A*-.
-*#-*#- -*-#.-#█
-*#*- *#A****.**#-#.*
-*█*...---#-*#*█

View File

@@ -0,0 +1,17 @@
-#****##-
*█-#*#*.A-*#
--#..A..-.#*##
.--A*.*-.*#██**#
A *..█.- █#A-A.A
.- █.*.AA* --█.
* .*█*....* .A#
█ ..*#A#..---.*..
█ .* **.*..#*#*..
. #.*#.-A-*---.*-
# █.....██ *#█*.-
*-█#*#*█ -.██#AA
.█ ....*#A#A.A-
*-**A.#*- AA█
*# -**-#**

View File

@@ -0,0 +1,17 @@
#****##-
A█ *...**#
A█--..***A*#
.--..**#-*AA
-█.**.#*█*-..#
.#-..#-**.-A..
** #......-.**
. ..A..*A .█.
A █.A..*A#.-.
** -.A*#█A.-.-
█-- ....*A.**.
*--A.-*A***.-
- *.**--.*█
*# *..#-A*-
*- █*#-#-

View File

@@ -0,0 +1,17 @@
#***#.
#*--A.#*
█ .A*##
A#...**█.
. █.....A.
.█..*-█-.█
. .A*..*
. A#*..█
*# .A..#..
. A.***-
.. .█***A
# *. -#.
A **.#**.
█-A█#.*.-
* █.*.A

View File

@@ -0,0 +1,17 @@
A***#
.--..
.--.█
.**.-
* ..
█A-..
# ..
# █.
A# -..
.█ #*.
█-.. .-
.---.
.##.-
*--.*
# .█*

View File

@@ -0,0 +1,17 @@
#****
#A--.*
.-... .
..A.█-.#
...* .
.*.. █.
.... . *
..*.- *
.... █
█-AA *A
*.██#.#.
.*..---.
A █.***-
.*A*--A
-* █*A

View File

@@ -0,0 +1,17 @@
##***.-
-#*..-A*#
AA.***.█*.
.A- AA#.--.
..*█**..A█-.
*..-..AA. █
.. ......#.
..A..#... █-.
..###*...-.A.
.-.*A.*.*. ..
.A....-. - *
.**.-..*- *
█.*# AAA- *-
.-..**.#*A
*-*----A
--

View File

@@ -0,0 +1,17 @@
-*#█**#.-
A-..*..*.**
.AA█*A**.. █*
AAA **-*.*..**.
..*-A*█*..*A.-*
...*.█ .** . ...
**. A-#....A*█# .
.A* .-..A...█* -.
**...#.A-..█*# A
*█--#****..-. #-.
...#██A**.*█*...-
..* .- -AA# A
*.* . A#A-#.
*..█-*.AA#-.
█A.-*A--**

View File

@@ -0,0 +1,17 @@
#*###**.#-
-***...***.#█-#
#**A-**-##█...-█*
A.A-A.█-- █.**...**
.A- . .█A***AA #
-**#A- #AA. A#*A..A
* *A. #AA.- *█..A*.
-█*. AA..A.#..***
#A*A***#.*-.*-A*... .
.█-*--.A**A..* *#█#*
***A███*****-.*AA* *█
*..-* -A..- *
-** **- #█#A--A
# .*#**#--**A.█
-#*A-##.*-#*
-

View File

@@ -0,0 +1,17 @@
-**#**#*.#-
-#█-*###.--#█#**-
-AA.*█**█#█.-█#AA* *
#..*.#-█* █*--A*.*****#
-*AA A. -█#-*A.A.-****-
A*. ##..---A#*#.█-A-A-A.
..*AA #A*A.█-A█*.*.*#
█*-.. -*█..*- .*.█
*██ #******#..#.*A*# .*.-
-**.*** ..A--*-...-*.-* #
.A.*-██*****- *--A.A*A---
** #*# --*█A*-█
*-*#--. -*--A*#-
█..**##***-█*-A-#*
█..-A--#.#█*#█
-

View File

@@ -0,0 +1,17 @@
--**#.#**..-
-#...*A***-*-#.*##
#***A█.#*- -*A#-***
A*.*#-- -**##-.*#
..A-A- #.-█A█.* .*#
.*A*█ -.*.A .A █.*.
-*..█ A*-A.##- AAA#.
.... .*█*.█# . ...
.*.*#******....#***.* * █..
-*A#.**A-*#*#-# -- A*-*#A..-
█*█A#.█████**█ -*-A.AA AA█
**-*-* -AA-AA█
█ -*..*# #**.A.*-
██..*A.#--**A*█ **.█
█..-A-█-#.-*--

View File

@@ -0,0 +1,17 @@
-.-A*#***##-
-##A**#...*..*-█.*#-
#.*.***.*-- -█***A..*.#
-.A-A*█##- -#*.A.#
#-█A*-.*-**- -#.*.#
█A#█- .**#A*# **.*.
#.█*. -A.*.-.# A█.█.
.█ *- #.*..** .█A..
*██*. *.---.█..#########.-..*
-*█. A..█ A* .**----..--.#A .
*** * **...█ -█*******█.#*..
█*-.A# - ##*A#*
.*--.## #*-# -.█
-.-*--█*#A****.**--..*
-*#*#..----.*A*█

View File

@@ -0,0 +1,17 @@
--#*..*#*#--
#**█*#-#***..--**##
##█-#*█.*█ -█-█*#*.#-
-.█-*.* -##.*A***
-. #.* -A -..-**..*
A-#.█ #*█*.█A █*..*
*.*#. #* .#*- #*.A
.--A- ██*A.█# ..█.
.A..*#********-#█*--*** A .*
█.-.-█ A------.* ***█.** #A ..
*#-*████████*█ *#*..#. A*
* -*A# -A*..A
*--*#.- #**-**█
-#-.█.#-**#A█.█-#A*█
-*#.- *----.*██

View File

@@ -0,0 +1,17 @@
--#*#**#*##--
##*----#.*.#*---*#-
**--#*-█- --.*#--*#
#*.*██ -#**#**#
A#A*- #.A-* **--#
A█A. #**-AA **-#
.█.- - A-#A█ ***█
-* ** █.# . .
. . ##*****### -.#█.# *A .
. .* .- -#. -█-*.# A█.A
* █. --███ █- █*-#* A- #
█# A*- -*█ A
*- --- -.**█ #-
**- *█*#A..*A**██ --
*##*#----#-*#*-

View File

@@ -0,0 +1,17 @@
-##*#**#*##-
-#A*..-A.A*..*.#A*#-
#***.***- -█****#--##
**.**█ ##...-**
*..A█ #-A.*..A*█.
*.*A- #.A.*-A- *.**.
.#**A .#.**A█ ..A.
..*.- .*..-* .-.█.
..#█# #.******##-**.- *# -.*█
-.* *-**# A#█.AA. ***-█.## A**
***-. █████**█- -A*#-AAA█#-
***-*# -*#█.#█
██#* ##- -.*#█*-A
█A*##█*.**#**A**███#*
█.█.-*----*-.**-

View File

@@ -0,0 +1,17 @@
-##-*#*##*#--
-*.#.*-#-**#.-.*.#-
#█#.█#**- █.A#.**..#
A*.**A- -***..**
AA.-A█ #A##█*A**.*
#*.█A- -***██A*█..*.#
-..█. AAA. -.- █ .█*
.A. . .█.#-*# . *A.
-█* .#.********.-*.-█*- . ...
.**-.█*█ A-* *.-*#. *-.
A█. . -███████ █-A**.-A-A-
#..-.. #A.*-A-
* .#█A-- -.█**A#A
***#**#*.**-##█--#*-
█. ***.--#--**-

View File

@@ -0,0 +1,17 @@
-.-*##***#-
#█-A█.--.**##-█#
#██**A#█. .-A*.**# *
#█AA#A.*#*-.A- -**.*-█
# AA*A# -██A*-.--*.#█
.#*#*- *##A ..* A█*
. .. #A-#A█A-*.*-.-
. *.. .#*A*-..-A.-..
.. .***A##...##-*#-. . ..
- A *.A##**##..-*#*. .*.
* █*.**██████- *#.**.*A#-
* *#** . █A*A
*.**-.. -*█-AA-*
.-*#*-█..A***.--A-
*A-*#**--**#*

View File

@@ -0,0 +1,17 @@
-#***####-
# *#*--**.*..#
A.AA##█..#***...-
.#*. A *. █*.#**A
#--*#A█-*A-.█ .AA*A*
*#...-*#.-.A A.#.AA.#
.A.*. .--A*-A.*A-█.*.
...A..█ .-**A.*-.*..*
-#*.█.--****#..**.#*.*
A-█.A.#.-..**-.***A*.
*.*A*.-██████#A.*.A.-
.-█.*#**-#*A-A#AA.A
---.-*-**A#-A-..A
*.***-**.** *.*
.#█**##-#.*

View File

@@ -0,0 +1,17 @@
-****█##
A*.*A*.#*.#
A*██.**.*██*#
**█#...-..-#A-
.-#*...█**A*.**
* █.AAA█*-*█**A
. *█*..A..**█#
A- *...--*..A..
. .***#.#**A*..
.-.A#.--#****.
.-█A.*█*#A-#*..
*-..A* AA█..-
* *.* --A.A#
.█***█*-***
*AA-*.-**

View File

@@ -0,0 +1,17 @@
****##
.*AA.A*
*█- *.A█.
...-..*..
. -.--█*
.-.-█-...-
* █..-*..
. -...*█..
.. . .#....
█* .█-.-*..
.- --**#A█
..##..-A.
.**#*#A.-
*--.**AA
█*█ -*A

View File

@@ -0,0 +1,17 @@
A***
.#-.-
* *.-
.--*.
. ..
. -█.
-.. -.
.-██.
A* -.
...A..
. -.
.*#*.
.**..
*--A.
. .#.

View File

@@ -0,0 +1,17 @@
#****#
#.*A **
-#.. ██.
....-*#A
* .█. .
.#... --
.**... -
..*..
...*. -
-.*.. -
*..A.- *
.A... -.
....-.-.
.*.*A█.█
..* .#

View File

@@ -0,0 +1,17 @@
-.**##****#-
-##A*..#.█**.*--.*#-
#*A**.*██- -█. **#A-.#
A#A*.*##- -** ..*
█A*.A-A..**- *-*..-
A.**A .#.**** . **.
** . █**.-█.# .*A.#
#-.#. #-.█A*. .-.*.
-██. *.*#..*-.*##---##-.-█*.
#*A*# .A*A**. .*.--# *.#**-.*.-
█-. . █..##█ █***███**#AAA#A
█*. *# - A-#-AA
*-AA**# ##*A█#.█
*-##-**-****#A***--#█
-*#*-A.----.*A-█

View File

@@ -0,0 +1,17 @@
-*█**##
-A*..**█**
██-.#**.##*
..*.A.-*.* *#
**..-*.#.# .
.*.-# *......
*A...*- *A*. *-
█. █#*.#.█.- -
█.-█*.*.*A.# -
█..*.--.. ## -
*..**-*...#..
.*AA#A**..█ .
*.*..A*..#.A
#-##*-A.#A█
*-..---*█
----

View File

@@ -0,0 +1,17 @@
-.A*#*#*#
-#**##-█#*█*#
#.*AA#*--.█.-**
#.A#--**-#**.*..*
-....#-**-#█*.A--
*.--.-.██***#.A.#█.
A.. .-*.*.*A**.*.A.
**# ..█.* .-██..*..
.*#-.█-...A#...- .
█...AA..---*-.*.. *
-*-A#.# A***-A.█.-
...***# -** .
*.**- # . .*-A-
A.*.A-.-#.█#.-
██*.-#*A.**
----

View File

@@ -0,0 +1,17 @@
#####**.#-
**.**.*..**..#
A-**-##-A--*.**█*#
█AA.-#-*- - #-*.## #
AA.#.**█*.* █-#.*A***#
*A**#**.-A..#- .#A *
*.█*#-█*..##.#*-A-AA.█-
...#- █-..█A█.*--█*.██-
*..-- █-.█--.###...*.█*-
███--.**█*-----..*.*.--
#**..A .*██***-*AAA.A
*#.-** #*.A█.
█**...#- -A-.A #
*-*█.#.***--#█-A
.**--##A*-██
---

View File

@@ -0,0 +1,17 @@
-##*#*#*..-
-#*..***.A.-.*.*.
-A*.#*##*█- █*A..#█#
#*A.A-.#- *..*-*
-..A-..A*-* .#**-
AA# *-**-*# A*A-*
..# *#*.-.* .*..
*.## #██*A*# *█.*
... . #- A*###***#..#A-.*.
-A.██AA#A-..-----..*---...
***# .A.A A ████*** ..#A--
*#**#█# AA*A*A
**█*#**# -#.#A**█
*.█**#.#*#-█*#**.*
█**##----#**-█
----

View File

@@ -0,0 +1,17 @@
-#*####*.#-
-#*#A**.█.#*****#*-
-AA#.*█A.*- --**#█**#
#A-.*-A#- *.#***
AA.*-A. .█ # ****-
#A*.-A **█.*** *#*.*
.*-.- █*-*.-- .*.-
*.*█A .*-.A█. A -*
#█A.█ A*AA█-**######.--█ .--
..*#A##-█AA█...-..---#A-..-.*
A-*# .*.*- █**----- #A#*.█
A#****- A*..A█
*#-.#**# -#*█-A#-
-*A.█.##*##****-#*A█
█.***-----****-
---

View File

@@ -0,0 +1,17 @@
-##**###*##-
#***..**#█.*.A█.**-
-AA.*#*.-*█- -█***.█.*#
#AA#A#*#- *#-*.-
AA..AA* █**# .**.#
*A*A#- █.-█..*- .**.
* .A ** █*-. .-**
...A A***A█ A █A
A #- #..A*█A.**-*-*#.. ..**
.#-*█ AA*█*#A.* *#----A█.A█ .█
A-*#█A*-.A-- -█----*--*AA-#.
█.-*A. -A* #-
**--*#A# #*A-**█
█--█.*.-A..#.*A*█-A*█
█-.**--A--##*█-

View File

@@ -0,0 +1,17 @@
--#*####*##-
-*██*#A*A#*#*##█**#-
#*█*##*-*█-- -█*.*#.#*.#
-.█*#---- █*.*█.
#A-**█.*-*#. -*.*
A #A- *- █.A# █*-*
. * - * █** .-.#
..*. -* -AA *. .
.██. AA #*██###-#####- .*..
-*.* #.--A.A -.-------.. *A█-
█ *.* #-#A- █**-----█ .#█A
█#█**. #A.█A
*A..#.# ###█A#-
*#-█***-*.-#.*█-█#*#█
-*#A.-##-####**█

View File

@@ -0,0 +1,17 @@
-.**#**#*##-
--█#*.A .**A**.█A*#-
#**...#*█- --.*-*.A**-
AA.#.█.## █.*****
A.A-.*.**-.# *█*.**
A..-. █-..A** █ **.#
█*.*- █***#█.# # █*.
..* #.A*-.. ...
-. .- *.A█-AA#.###----## ..*
.*A . #AAA#-.-**.#.-#AA-*.AA█.
-.*█*#**#*A █*******█--...-
#.*█.-- #-*A**█
**#A- #- -.-#**.A
...*-*******##**#*.*-
***.A.-----*-*-

View File

@@ -0,0 +1,17 @@
-.***#***##-
-#█#A*A..#.*#*-.█##
*-A*#.*█- █-*.** #*#
#.A.A..*# --....-
#*A*A--#.-*# - *.*.-
....A *-.**A.- #A..
.A. # -*-.*█.# ██.#.#
.A.-█ #-*.A-. #.-.
.#.-* A-.█#.**-.#.---##-█...
-*.*##A#*█ .█ AA**-#*.#A.A*.-
*#..#.#**A#- █**█████#.*.*A
**#A** - A-A*#-
-A**.*#- -*##*█**
-.*.#*#**.*-##**-.**
--*-*█-----##*-

View File

@@ -0,0 +1,17 @@
-.***#**##--
#-*A*.**#.##*-#*#-
###...*█ -█..**#*A*-
A#.*.*-*# *#....#
█*...***#** .**.*#
*-A.A--#*.*-.# .**A.
- #.. -*.A-* -#.-.
. ... -.*.A.. .#*..
-..-. A█..**A#-.#.--##-.*A.
..*#A---*# .A**#..#****.#.*
A . A...*A█ █*████*█-**A.
# * A#- #A-AA.-
.-*-**# -#--A*##
-█.*#█# *.--##** A*█
--**##-----##*

View File

@@ -0,0 +1,17 @@
-..**#**##-
#*-#*.#*#**** -*#
* #...*- --.- *A-*#
**....*# -.**.A#
-█.*..-.A*# . *..*
. *..█ -█**.* #-...
-*█. --.*.*. **-..
-█A.. *#A.*.- █ ...
A█.* #█-A.*A..**-..****..
.#█..*A..A█..*..**#*#**.*.
* *-A*.*-A ******██-A..
█- A-A-- #█-A*A█
█*##***- #-.#*A*█
*-█*.***.---#*.*#A
█.*█.A.--#-***

View File

@@ -0,0 +1,17 @@
--#-*##*##-
#█*A...*** . █#
-.*#.AA* #█.A.**#-#
-***A.##. █ *-..*
█ A.A#*.A* .█*..#
.█#.*---*.-* *#...
.*... █-**.-. .-.A.#
*#..A .#*A.#*. .-A..
* *..-- A**..A#####*...
**A*-.█#.#..*.*--..*█
AA**.*...A█-*-*█**█A*.
█#█.*.-- .#AAA█
█*-****- -A*-.#A*
.A█.#* **#**A*#.-
..-***.-##A*-
--

View File

@@ -0,0 +1,17 @@
.*-*A##*#
A*-A..*█* --*-
A #..A*--*A *-.#
█ ..A**- --#.*-.##
A*█***█.*# *.█#A#..
. ...█-.**-- .█.*...
- .**.**.**#█.#A -..
. .A-#*...-A**-. ..
█#.█ A.█....#..#..-
.-...-#.-.-....--...
█ --A**.A█****..█A*.
*...*#- #A -A.-
*#*.** A*-*.A*
--█*-.*A#****.-
█-- ***.*#A█