26e305e805
- B 桶 Chat 系直接采用上游(含云超服主题色映射):HarnessModelSelector/ChatActionGroup/ChatHeaderTitle/LoopModeSelector/ApprovalLevelToggle/ChatSenderTabsPanel/BackgroundTaskPanel/ContextUsageIndicator/HarnessApprovalToggle/useToolCallControl/harness/provider api - ToolCardShell 上游基底+补本地 inputProgress;merge_less.py 三向 LESS 并合 8 个 module.less - ModelSelector 三 Tab 并合(上游重构基底+云超服 pineagents Tab,默认保留 pineagents) - Chat/index.tsx 上游基底 + 10 依赖模块(InlineMarkdown 平铺版/RichFileReferenceInput/MediaDownload 等) - 复制 upstream_only:turnUsage/turnUsageStore/sessionRoute/loopModeDescription/resolveLocalizedText - api/types/provider.ts 双改并合(ProviderInfo 补 discovery 字段) - 新增依赖 lexical@0.48.0+@lexical/react@0.48.0;vite.config 增加 DefaultCards/Audios 精确 alias - locales 6 语言补齐 36 个上游 chat.* key(my/th/lo 英文占位) - 测试采用上游版;ModelSelector.test 预设 pro tab 保留云超服默认 pineagents - tsc 0 错误,build 通过,阶段 2 相关 344 测试全过
25 lines
675 B
TypeScript
25 lines
675 B
TypeScript
export type SessionRouteMode = "chat" | "coding";
|
|
|
|
export function getSessionIdFromPath(pathname: string): string | undefined {
|
|
const match = pathname.match(/^\/chat\/(.+)$/);
|
|
return match?.[1];
|
|
}
|
|
|
|
export const CHAT_BASE_PATH = "/chat";
|
|
|
|
export function buildChatPath(sessionId?: string | null): string {
|
|
return sessionId ? `${CHAT_BASE_PATH}/${sessionId}` : CHAT_BASE_PATH;
|
|
}
|
|
|
|
export function buildBasePath(mode: SessionRouteMode): string {
|
|
return `/${mode}`;
|
|
}
|
|
|
|
export function buildSessionPath(
|
|
mode: SessionRouteMode,
|
|
sessionId?: string | null,
|
|
): string {
|
|
const basePath = buildBasePath(mode);
|
|
return sessionId ? `${basePath}/${sessionId}` : basePath;
|
|
}
|