Commit Graph

1519 Commits

Author SHA1 Message Date
ruitanglin
33c47e0c56 feat: add inline citations and thread management features
Citations:
- Add citations parsing utilities for extracting source references from AI responses
- Render inline citations as hover card badges in message content
- Display citation cards with title, URL, and description on hover
- Add citation badge rendering in artifact markdown preview
- Update prompt to guide AI to output citations in correct format

Thread Management:
- Add rename functionality for chat threads with dialog UI
- Add share functionality to copy thread link to clipboard
- Share links use Vercel URL for production accessibility
- Add useRenameThread hook for thread title updates

i18n:
- Add translations for rename, share, cancel, save, and linkCopied

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-28 19:15:11 +08:00
ruitanglin
f8d2d88727 feat: add inline citations and thread management features
Citations:
- Add citations parsing utilities for extracting source references from AI responses
- Render inline citations as hover card badges in message content
- Display citation cards with title, URL, and description on hover
- Add citation badge rendering in artifact markdown preview
- Update prompt to guide AI to output citations in correct format

Thread Management:
- Add rename functionality for chat threads with dialog UI
- Add share functionality to copy thread link to clipboard
- Share links use Vercel URL for production accessibility
- Add useRenameThread hook for thread title updates

i18n:
- Add translations for rename, share, cancel, save, and linkCopied

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-01-28 19:15:11 +08:00
Henry Li
a010953880 feat: update notes 2026-01-28 14:42:13 +08:00
Henry Li
453efa1a1d feat: update notes 2026-01-28 14:42:13 +08:00
Henry Li
efb0db53bc Merge remote-tracking branch 'refs/remotes/origin/experimental' into experimental 2026-01-28 14:20:24 +08:00
Henry Li
3293dda5db Merge remote-tracking branch 'refs/remotes/origin/experimental' into experimental 2026-01-28 14:20:24 +08:00
Henry Li
dd2c2011f1 feat: update a new demo 2026-01-28 14:19:00 +08:00
Henry Li
c0980bfa82 feat: update a new demo 2026-01-28 14:19:00 +08:00
hetaoBackend
49f6c001c3 feat: modify the config example yaml 2026-01-28 14:06:38 +08:00
hetaoBackend
055ab1fb04 feat: modify the config example yaml 2026-01-28 14:06:38 +08:00
hetaoBackend
fa9fba3f8e fix: preserve reasoning_content in multi-turn conversations
When using thinking-enabled models (like Kimi K2.5, DeepSeek), the API
expects reasoning_content on all assistant messages. The original
ChatDeepSeek stores reasoning_content in additional_kwargs but doesn't
include it when making subsequent API calls, causing "reasoning_content
is missing" errors.

This adds PatchedChatDeepSeek which overrides _get_request_payload to
restore reasoning_content from additional_kwargs into the payload.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:04:35 +08:00
hetaoBackend
9d0a0ea022 fix: preserve reasoning_content in multi-turn conversations
When using thinking-enabled models (like Kimi K2.5, DeepSeek), the API
expects reasoning_content on all assistant messages. The original
ChatDeepSeek stores reasoning_content in additional_kwargs but doesn't
include it when making subsequent API calls, causing "reasoning_content
is missing" errors.

This adds PatchedChatDeepSeek which overrides _get_request_payload to
restore reasoning_content from additional_kwargs into the payload.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:04:35 +08:00
Henry Li
d84a34b7cd feat: add Leica demo 2026-01-28 13:52:41 +08:00
Henry Li
486a06d772 feat: add Leica demo 2026-01-28 13:52:41 +08:00
Henry Li
d075e7a234 feat: fallback to error reporting 2026-01-28 12:23:29 +08:00
Henry Li
5980bbde02 feat: fallback to error reporting 2026-01-28 12:23:29 +08:00
Henry Li
a249b7178a feat: add another Kimi K2.5 demo 2026-01-28 12:17:21 +08:00
Henry Li
5d5aec43d3 feat: add another Kimi K2.5 demo 2026-01-28 12:17:21 +08:00
Henry Li
e2bcc70a84 feat: add kimi-k2.5 demo with vercel deployment 2026-01-28 10:13:32 +08:00
Henry Li
ade5426d9e feat: add kimi-k2.5 demo with vercel deployment 2026-01-28 10:13:32 +08:00
Henry Li
dab4093103 feat: fallback to textarea when loading 2026-01-28 10:13:17 +08:00
Henry Li
86c8f1a25e feat: fallback to textarea when loading 2026-01-28 10:13:17 +08:00
Henry Li
90782f29a2 chore: remove 2026-01-27 13:37:09 +08:00
Henry Li
6b3e101b66 chore: remove 2026-01-27 13:37:09 +08:00
Henry Li
28361ca03c feat: add scroll indicator 2026-01-27 13:15:49 +08:00
Henry Li
7c42fa5162 feat: add scroll indicator 2026-01-27 13:15:49 +08:00
Henry Li
ed31dc6aab fix: hide chats when sidebar is not open 2026-01-27 10:41:08 +08:00
Henry Li
ec31e61f95 fix: hide chats when sidebar is not open 2026-01-27 10:41:08 +08:00
Henry Li
cc1fe4e50e fix: eslint 2026-01-27 10:39:44 +08:00
Henry Li
7928a6f2e1 fix: eslint 2026-01-27 10:39:44 +08:00
Henry Li
eca2b139cc fix: bugfix 2026-01-27 09:50:42 +08:00
Henry Li
0bcbaebb7e fix: bugfix 2026-01-27 09:50:42 +08:00
Xun
ee02b9f637 feat: Generate a fallback report upon recursion limit hit (#838)
* finish handle_recursion_limit_fallback

* fix

* renmae test file

* fix

* doc

---------

Co-authored-by: lxl0413 <lixinling2021@gmail.com>
2026-01-26 21:10:18 +08:00
hetao
b8c33e342b feat: add firecrawl community package with web_search and web_fetch tools
Add web_search_tool and web_fetch_tool implementations using the official
firecrawl-py SDK as an alternative to Tavily/Jina AI integrations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 19:58:08 +08:00
hetao
ce7f7258ba feat: add firecrawl community package with web_search and web_fetch tools
Add web_search_tool and web_fetch_tool implementations using the official
firecrawl-py SDK as an alternative to Tavily/Jina AI integrations.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 19:58:08 +08:00
hetao
9215c9cce7 feat: add ppt-generation skill
Creates presentations by generating AI images for each slide and composing
them into PPTX files. Features include:
- Multiple presentation styles (business, academic, minimal, keynote, creative)
- Visual consistency through reference image chaining (each slide uses the
  previous slide as reference)
- Speaker notes from presentation plan

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 19:35:29 +08:00
hetao
0cc7cc08e9 feat: add ppt-generation skill
Creates presentations by generating AI images for each slide and composing
them into PPTX files. Features include:
- Multiple presentation styles (business, academic, minimal, keynote, creative)
- Visual consistency through reference image chaining (each slide uses the
  previous slide as reference)
- Speaker notes from presentation plan

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 19:35:29 +08:00
Henry Li
3ce4968e95 feat: auto select the first model as default model 2026-01-26 17:13:34 +08:00
Henry Li
574dfd2b05 feat: auto select the first model as default model 2026-01-26 17:13:34 +08:00
hetao
22004406a7 perf: parallelize TTS generation in podcast skill
Use ThreadPoolExecutor to generate audio for multiple script lines
concurrently, significantly speeding up podcast generation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 14:50:56 +08:00
hetao
ff7065b085 perf: parallelize TTS generation in podcast skill
Use ThreadPoolExecutor to generate audio for multiple script lines
concurrently, significantly speeding up podcast generation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 14:50:56 +08:00
hetao
dddd745b5b refactor: simplify podcast-generation to use direct JSON script input
- Remove LLM script generation from Python script, model now generates
  JSON script directly (similar to image-generation skill)
- Add --transcript-file option to generate markdown transcript
- Add optional "title" field in JSON for transcript heading
- Remove dependency on OPENAI_API_KEY for podcast generation
- Update SKILL.md with new workflow and JSON format documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 14:01:48 +08:00
hetao
68a3be1491 refactor: simplify podcast-generation to use direct JSON script input
- Remove LLM script generation from Python script, model now generates
  JSON script directly (similar to image-generation skill)
- Add --transcript-file option to generate markdown transcript
- Add optional "title" field in JSON for transcript heading
- Remove dependency on OPENAI_API_KEY for podcast generation
- Update SKILL.md with new workflow and JSON format documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 14:01:48 +08:00
hetaoBackend
9f5658fa0e feat: add podcast generation skill
- Add podcast-generation skill for creating tech explainer podcasts
- Include generate.py script with TTS synthesis capabilities
- Add tech-explainer template for structured podcast content
- Increase sandbox command timeout from 30s to 600s to support
  longer-running skill scripts
2026-01-26 13:16:35 +08:00
hetaoBackend
3fa16467a2 feat: add podcast generation skill
- Add podcast-generation skill for creating tech explainer podcasts
- Include generate.py script with TTS synthesis capabilities
- Add tech-explainer template for structured podcast content
- Increase sandbox command timeout from 30s to 600s to support
  longer-running skill scripts
2026-01-26 13:16:35 +08:00
hetaoBackend
139063283f fix: ensure MCP and skills config changes are immediately reflected
- Use ExtensionsConfig.from_file() instead of cached config to always
  read latest configuration from disk in LangGraph Server
- Add mtime-based cache invalidation for MCP tools to detect config
  file changes made through Gateway API
- Call reload_extensions_config() in Gateway API after updates to
  refresh the global cache
- Remove unnecessary MCP initialization from Gateway startup since
  MCP tools are only used by LangGraph Server

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 22:40:09 +08:00
hetaoBackend
038f5d44f4 fix: ensure MCP and skills config changes are immediately reflected
- Use ExtensionsConfig.from_file() instead of cached config to always
  read latest configuration from disk in LangGraph Server
- Add mtime-based cache invalidation for MCP tools to detect config
  file changes made through Gateway API
- Call reload_extensions_config() in Gateway API after updates to
  refresh the global cache
- Remove unnecessary MCP initialization from Gateway startup since
  MCP tools are only used by LangGraph Server

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 22:40:09 +08:00
Henry Li
f629e134d4 feat: adjust button 2026-01-25 22:10:50 +08:00
Henry Li
044e38aec6 feat: adjust button 2026-01-25 22:10:50 +08:00
Henry Li
598fed797f fix: many minor fixes 2026-01-25 21:57:57 +08:00