apps/server/package.json | 1 + apps/server/src/git/Layers/OpenCodeTextGeneration.test.ts | 259 ++++++ apps/server/src/git/Layers/OpenCodeTextGeneration.ts | 422 ++++++++++ apps/server/src/git/Layers/RoutingTextGeneration.ts | 22 +- apps/server/src/git/Services/TextGeneration.ts | 2 +- apps/server/src/provider/Layers/OpenCodeAdapter.test.ts | 486 ++++++++++++ apps/server/src/provider/Layers/OpenCodeAdapter.ts | 1344 ++++++++++++++++++++++++++++++++ apps/server/src/provider/Layers/OpenCodeProvider.test.ts | 138 ++++ apps/server/src/provider/Layers/OpenCodeProvider.ts | 342 ++++++++ apps/server/src/provider/Layers/ProviderAdapterRegistry.test.ts | 24 +- apps/server/src/provider/Layers/ProviderAdapterRegistry.ts | 3 +- apps/server/src/provider/Layers/ProviderRegistry.test.ts | 39 +- apps/server/src/provider/Layers/ProviderRegistry.ts | 34 +- apps/server/src/provider/Layers/ProviderService.test.ts | 56 ++ apps/server/src/provider/Layers/ProviderService.ts | 4 +- apps/server/src/provider/Layers/ProviderSessionDirectory.ts | 2 +- apps/server/src/provider/Services/OpenCodeAdapter.ts | 12 + apps/server/src/provider/Services/OpenCodeProvider.ts | 9 + apps/server/src/provider/opencodeRuntime.test.ts | 38 + apps/server/src/provider/opencodeRuntime.ts | 573 ++++++++++++++ apps/server/src/provider/providerSnapshot.test.ts | 34 + apps/server/src/provider/providerStatusCache.test.ts | 13 + apps/server/src/provider/providerStatusCache.ts | 8 +- apps/server/src/server.ts | 5 + apps/server/src/serverSettings.test.ts | 20 + apps/server/src/serverSettings.ts | 2 +- apps/web/src/components/ChatView.tsx | 15 +- apps/web/src/components/Icons.tsx | 6 +- apps/web/src/components/KeybindingsToast.browser.tsx | 7 + apps/web/src/components/chat/ChatComposer.tsx | 60 +- apps/web/src/components/chat/CompactComposerControlsMenu.browser.tsx | 35 + apps/web/src/components/chat/CompactComposerControlsMenu.tsx | 29 +- apps/web/src/components/chat/ProviderModelPicker.tsx | 6 +- apps/web/src/components/chat/TraitsPicker.browser.tsx | 129 ++- apps/web/src/components/chat/TraitsPicker.tsx | 102 ++- apps/web/src/components/chat/composerProviderRegistry.test.tsx | 65 ++ apps/web/src/components/chat/composerProviderRegistry.tsx | 122 ++- apps/web/src/components/settings/SettingsPanels.browser.tsx | 17 + apps/web/src/components/settings/SettingsPanels.tsx | 126 ++- apps/web/src/composerDraftStore.ts | 101 +-- apps/web/src/modelSelection.ts | 25 +- apps/web/src/session-logic.test.ts | 9 +- apps/web/src/session-logic.ts | 1 + apps/web/src/store.ts | 4 +- bun.lock | 3 + packages/contracts/src/model.ts | 13 + packages/contracts/src/orchestration.ts | 17 +- packages/contracts/src/providerRuntime.ts | 1 + packages/contracts/src/settings.ts | 30 + packages/shared/src/model.ts | 73 ++ packages/shared/src/serverSettings.test.ts | 26 + packages/shared/src/serverSettings.ts | 41 +- 52 files changed, 4727 insertions(+), 228 deletions(-)