apps/web/package.json | 8 +- apps/web/src/components/AppSidebarLayout.tsx | 15 +- apps/web/src/components/ComposerCitationNode.tsx | 223 ---- apps/web/src/components/ComposerContextReferenceNode.test.ts | 92 -- apps/web/src/components/ComposerContextReferenceNode.tsx | 133 -- apps/web/src/components/ComposerPromptEditor.serialization.test.tsx | 183 --- apps/web/src/components/ComposerPromptEditor.test.ts | 864 ------------- apps/web/src/components/ComposerPromptEditor.tsx | 2144 +------------------------------- apps/web/src/components/ComposerPromptEditorTiptap.tsx | 1379 ++++++++++++++++++++ apps/web/src/components/chat/ChatComposer.tsx | 36 +- apps/web/src/components/chat/ComposerStashMenu.tsx | 2 +- apps/web/src/components/composerInlineTokenPaste.ts | 140 +-- apps/web/src/components/settings/SettingsFontPreviews.tsx | 2 +- apps/web/src/components/settings/SettingsPanels.tsx | 32 + apps/web/src/components/settings/settingsSearch.ts | 6 + apps/web/src/composer-list-continuation.test.ts | 62 + apps/web/src/composer-list-continuation.ts | 137 ++ apps/web/src/composer-rich-text-doc.test.ts | 344 +++++ apps/web/src/composer-rich-text-doc.ts | 644 ++++++++++ apps/web/src/composer-rich-text.test.ts | 67 + apps/web/src/composer-rich-text.ts | 131 ++ apps/web/src/index.css | 102 ++ apps/web/src/keybindings.test.ts | 16 + apps/web/src/keybindings.ts | 17 + docs/internals/composer-editors.md | 27 + packages/contracts/src/settings.test.ts | 13 + packages/contracts/src/settings.ts | 3 + pnpm-lock.yaml | 806 +++++++----- 28 files changed, 3557 insertions(+), 4071 deletions(-)