@nextclaw/ui 0.15.2 → 0.15.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/dist/assets/aiden0z-pptx-renderer.es-Bd99vut2.js +94 -0
- package/dist/assets/api-BOXOrpcJ.js +13 -0
- package/dist/assets/app-presenter-provider-CkHLbvZQ.js +106 -0
- package/dist/assets/app-presenter-provider-D3BuuOyZ.css +1 -0
- package/dist/assets/appearance-settings-page-fLIJbx1C.js +1 -0
- package/dist/assets/{book-open-Ba2f7YiG.js → book-open-DWUjS6aW.js} +1 -1
- package/dist/assets/channels-list-page-CvCTJraa.js +8 -0
- package/dist/assets/chat-page-B42UUIFR.js +1 -0
- package/dist/assets/chunk-DseTPa7n.js +1 -0
- package/dist/assets/config-split-page-DBgt9S8b.js +1 -0
- package/dist/assets/confirm-dialog-GSXIvoRU.js +5 -0
- package/dist/assets/desktop-update-config-7bmNeWIC.js +1 -0
- package/dist/assets/dist-DC7f4TJH.js +41 -0
- package/dist/assets/doc-browser-CgdoLUT92.js +1 -0
- package/dist/assets/doc-browser-D0monHjG.js +1 -0
- package/dist/assets/doc-browser-context-CGwEOhBy.js +1 -0
- package/dist/assets/docx-preview-eFH9DRsS.js +20 -0
- package/dist/assets/download-DiP9zx-J.js +1 -0
- package/dist/assets/{external-link-DxuPaDoK.js → external-link-C6ZeSPef.js} +1 -1
- package/dist/assets/eye-suvKmtwn.js +1 -0
- package/dist/assets/folder-CMELbQGG.js +1 -0
- package/dist/assets/{form-actions-BztL7P_T.js → form-actions-CUAzpNe_.js} +1 -1
- package/dist/assets/index-BFeNDQ4R.css +1 -0
- package/dist/assets/index-D_6U-M94.js +2 -0
- package/dist/assets/jszip.min-Das2IAnb.js +2 -0
- package/dist/assets/loader-circle-tYHStefV.js +1 -0
- package/dist/assets/logo-badge-Cu5UGH_4.js +1 -0
- package/dist/assets/mcp-marketplace-page-BUzHDwW6.js +9 -0
- package/dist/assets/mcp-marketplace-page-ohUAdfqJ.js +1 -0
- package/dist/assets/model-config-page-CWP6pyBm.js +1 -0
- package/dist/assets/plus-tywizkeY.js +1 -0
- package/dist/assets/popover-DImguRok.js +1 -0
- package/dist/assets/provider-models-C_yOh6DE.js +1 -0
- package/dist/assets/provider-scoped-model-input-CE7p4SbJ.js +1 -0
- package/dist/assets/providers-config-page-BKPo8SjH.js +1 -0
- package/dist/assets/react-5sjAT_6d.js +8 -0
- package/dist/assets/{refresh-cw-eT8BF-8B.js → refresh-cw-CHLBzWWj.js} +1 -1
- package/dist/assets/remote-DXJryUxB.js +1 -0
- package/dist/assets/rotate-cw-BefO5brU.js +1 -0
- package/dist/assets/runtime-config-page-1Axv4QGu.js +1 -0
- package/dist/assets/{save-Cb2g0BOi.js → save-BABzyrjB.js} +1 -1
- package/dist/assets/{search-BcHjwdsb.js → search-BTqxG3ZG.js} +1 -1
- package/dist/assets/search-config-page-BkKKmxmS.js +1 -0
- package/dist/assets/secrets-config-page-CWJMyu-k.js +3 -0
- package/dist/assets/security-config-DeQUIXfi.js +1 -0
- package/dist/assets/select-TYZDBNmq.js +1 -0
- package/dist/assets/setting-row-DR23Z_5I.js +1 -0
- package/dist/assets/{settings-2-2DWauOjY.js → settings-2-D8WWcBnw.js} +1 -1
- package/dist/assets/{skeleton-P5oM14E1.js → skeleton-CloHeg0S.js} +1 -1
- package/dist/assets/tabs-CX-ckWoo.js +1 -0
- package/dist/assets/tag-chip-mCc23Rhb.js +1 -0
- package/dist/assets/trash-2-SAW1Z4Po.js +1 -0
- package/dist/assets/use-config-BucdaK23.js +1 -0
- package/dist/assets/use-confirm-dialog-C95F6sT1.js +1 -0
- package/dist/assets/use-viewport-layout-C6m3Nte7.js +1 -0
- package/dist/assets/x-DtCPHwCu.js +1 -0
- package/dist/assets/xlsx-B6zVt1RK.js +64 -0
- package/dist/index.html +34 -28
- package/package.json +14 -9
- package/src/app/components/layout/sidebar-items.tsx +3 -3
- package/src/app/components/layout/sidebar-rail.styles.ts +2 -2
- package/src/app/components/layout/sidebar.tsx +1 -1
- package/src/app/styles/design-system.css +17 -4
- package/src/features/chat/components/__tests__/chat-popover-content.test.tsx +41 -0
- package/src/features/chat/components/chat-popover-content.tsx +26 -0
- package/src/features/chat/components/conversation/__tests__/chat-conversation-content.test.tsx +13 -0
- package/src/features/chat/components/conversation/__tests__/chat-conversation-header-section.test.tsx +21 -11
- package/src/features/chat/components/conversation/__tests__/chat-conversation-header.test.tsx +2 -2
- package/src/features/chat/components/conversation/__tests__/chat-conversation-workspace-section.test.tsx +28 -1
- package/src/features/chat/components/conversation/chat-conversation-content.tsx +5 -4
- package/src/features/chat/components/conversation/chat-conversation-header-section.tsx +9 -18
- package/src/features/chat/components/conversation/chat-conversation-track.tsx +35 -0
- package/src/features/chat/components/conversation/chat-conversation-workspace-section.tsx +1 -0
- package/src/features/chat/components/layout/chat-sidebar-toolbar.tsx +7 -7
- package/src/features/chat/components/layout/chat-sidebar-utility-menu.tsx +4 -15
- package/src/features/chat/features/conversation/components/__tests__/session-conversation-input.streaming.test.tsx +20 -1
- package/src/features/chat/features/conversation/components/session-conversation-input.tsx +69 -54
- package/src/features/chat/features/conversation/components/session-queued-input-rows.tsx +1 -1
- package/src/features/chat/features/message/components/__tests__/chat-message-list.container.test.tsx +62 -1
- package/src/features/chat/features/message/components/chat-message-list.container.tsx +63 -2
- package/src/features/chat/features/message/utils/__tests__/chat-message-file-operation.utils.test.ts +30 -0
- package/src/features/chat/features/message/utils/__tests__/chat-message-process-summary.utils.test.ts +11 -1
- package/src/features/chat/features/message/utils/__tests__/chat-message-texts.utils.test.ts +23 -0
- package/src/features/chat/features/message/utils/chat-message-process-summary.utils.ts +5 -0
- package/src/features/chat/features/message/utils/chat-message-texts.utils.ts +138 -0
- package/src/features/chat/features/session/components/__tests__/chat-sidebar-session-item.test.tsx +37 -0
- package/src/features/chat/features/session/components/chat-sidebar-project-groups.tsx +5 -4
- package/src/features/chat/features/session/components/chat-sidebar-session-item.tsx +3 -8
- package/src/features/chat/features/session/components/session-header/__tests__/chat-session-header-actions.test.tsx +65 -20
- package/src/features/chat/features/session/components/session-header/chat-session-header-actions.tsx +26 -28
- package/src/features/chat/features/session/components/session-header/chat-session-project-badge.tsx +3 -3
- package/src/features/chat/features/session/components/session-header/chat-session-title-switcher.tsx +5 -5
- package/src/features/chat/features/welcome/components/chat-welcome-project-picker.tsx +4 -4
- package/src/features/chat/features/welcome/components/chat-welcome-session-type-picker.tsx +4 -4
- package/src/features/chat/features/workspace/components/__tests__/chat-session-workspace-file-preview.test.tsx +463 -99
- package/src/features/chat/features/workspace/components/__tests__/chat-session-workspace-panel-content.test.tsx +113 -2
- package/src/features/chat/features/workspace/components/__tests__/chat-session-workspace-panel.test.tsx +1 -0
- package/src/features/chat/features/workspace/components/chat-session-workspace-directory-browser.tsx +197 -44
- package/src/features/chat/features/workspace/components/chat-session-workspace-file-breadcrumb-browser.tsx +11 -5
- package/src/features/chat/features/workspace/components/chat-session-workspace-file-breadcrumbs.tsx +8 -6
- package/src/features/chat/features/workspace/components/chat-session-workspace-file-preview.tsx +99 -67
- package/src/features/chat/features/workspace/components/chat-session-workspace-panel-content.tsx +239 -1
- package/src/features/chat/features/workspace/components/chat-session-workspace-panel-nav.tsx +56 -6
- package/src/features/chat/features/workspace/components/chat-session-workspace-panel.tsx +29 -7
- package/src/features/chat/features/workspace/components/file-content-preview/use-workspace-file-buffer.ts +42 -0
- package/src/features/chat/features/workspace/components/file-content-preview/workspace-document-preview-state.tsx +18 -0
- package/src/features/chat/features/workspace/components/file-content-preview/workspace-docx-preview.css +89 -0
- package/src/features/chat/features/workspace/components/file-content-preview/workspace-docx-preview.tsx +87 -0
- package/src/features/chat/features/workspace/components/file-content-preview/workspace-presentation-preview.tsx +82 -0
- package/src/features/chat/features/workspace/components/file-content-preview/workspace-spreadsheet-preview.tsx +180 -0
- package/src/features/chat/features/workspace/components/workspace-file-content-preview.tsx +191 -0
- package/src/features/chat/features/workspace/hooks/use-chat-conversation-workspace-state.ts +1 -4
- package/src/features/chat/features/workspace/utils/__tests__/chat-workspace-panel-view-model.utils.test.ts +53 -10
- package/src/features/chat/features/workspace/utils/chat-thread-workspace-session.utils.ts +68 -2
- package/src/features/chat/features/workspace/utils/chat-workspace-file-tab-persistence.utils.ts +21 -0
- package/src/features/chat/features/workspace/utils/chat-workspace-file-tab.utils.ts +63 -0
- package/src/features/chat/features/workspace/utils/chat-workspace-file-viewer.utils.ts +49 -0
- package/src/features/chat/features/workspace/utils/chat-workspace-panel-layout.utils.ts +13 -0
- package/src/features/chat/features/workspace/utils/chat-workspace-panel-view-model.utils.ts +120 -38
- package/src/features/chat/index.ts +1 -0
- package/src/features/chat/managers/__tests__/chat-thread-workspace.manager.test.ts +76 -0
- package/src/features/chat/managers/__tests__/chat-thread.manager.test.ts +44 -60
- package/src/features/chat/managers/chat-thread.manager.ts +123 -124
- package/src/features/chat/pages/ncp-chat-page.tsx +1 -2
- package/src/features/chat/stores/__tests__/chat-thread.store.test.ts +78 -1
- package/src/features/chat/stores/chat-message-layout.store.test.ts +37 -0
- package/src/features/chat/stores/chat-message-layout.store.ts +41 -0
- package/src/features/chat/stores/chat-thread.store.ts +73 -13
- package/src/features/cron/components/cron-config.tsx +63 -80
- package/src/features/marketplace/components/detail-doc/__tests__/marketplace-detail-doc.test.tsx +44 -6
- package/src/features/marketplace/components/marketplace-detail-doc.tsx +8 -4
- package/src/features/marketplace/components/marketplace-page-parts.tsx +1 -1
- package/src/features/marketplace/hooks/use-marketplace-detail-doc-entry.ts +84 -0
- package/src/features/panel-apps/components/panel-apps-list.tsx +2 -2
- package/src/features/right-panel-resources/components/right-panel-resource-home-page.tsx +1 -1
- package/src/features/settings/pages/__tests__/appearance-settings-page.test.tsx +25 -8
- package/src/features/settings/pages/appearance-settings-page.tsx +92 -13
- package/src/features/side-dock/components/side-dock.tsx +3 -3
- package/src/index.css +275 -15
- package/src/shared/components/__tests__/file-type-icon.test.tsx +61 -0
- package/src/shared/components/actions/action-link.tsx +1 -1
- package/src/shared/components/doc-browser/__tests__/doc-browser-context.test.tsx +19 -0
- package/src/shared/components/doc-browser/__tests__/doc-browser.test.tsx +16 -0
- package/src/shared/components/doc-browser/doc-browser-context.tsx +1 -0
- package/src/shared/components/doc-browser/doc-browser-panel-parts.tsx +1 -1
- package/src/shared/components/doc-browser/doc-browser.tsx +11 -3
- package/src/shared/components/doc-browser/managers/doc-browser.manager.ts +5 -0
- package/src/shared/components/doc-browser/stores/doc-browser.store.ts +6 -1
- package/src/shared/components/doc-browser/types/doc-browser.types.ts +2 -0
- package/src/shared/components/doc-browser/utils/doc-browser-state.utils.ts +11 -0
- package/src/shared/components/file-type-icon.tsx +272 -0
- package/src/shared/components/resizable-right-panel/__tests__/resizable-right-panel.test.tsx +22 -0
- package/src/shared/components/resizable-right-panel/resizable-right-panel.tsx +17 -2
- package/src/shared/components/ui/actions/icon-action-button.tsx +1 -1
- package/src/shared/components/ui/button.tsx +1 -1
- package/src/shared/components/ui/dialog.tsx +1 -1
- package/src/shared/components/ui/input.tsx +1 -1
- package/src/shared/components/ui/select.tsx +1 -1
- package/src/shared/components/ui/switch.tsx +1 -1
- package/src/shared/components/ui/tab-strip/__tests__/compact-tab-strip.test.tsx +38 -0
- package/src/shared/components/ui/tab-strip/compact-tab-strip.tsx +82 -2
- package/src/shared/components/ui/tabs.tsx +1 -1
- package/src/shared/components/ui/textarea.tsx +1 -1
- package/src/shared/lib/api/__tests__/server-path.utils.test.ts +28 -0
- package/src/shared/lib/api/utils/server-path.utils.ts +19 -20
- package/src/shared/lib/i18n/locales/en-US/chat.json +99 -0
- package/src/shared/lib/i18n/locales/en-US/core.json +6 -0
- package/src/shared/lib/i18n/locales/zh-CN/chat.json +99 -0
- package/src/shared/lib/i18n/locales/zh-CN/core.json +6 -0
- package/dist/assets/api-B7Qigvtm.js +0 -13
- package/dist/assets/appearance-settings-page-CuE0Iiqj.js +0 -1
- package/dist/assets/channels-list-page-CTsM6TcP.js +0 -8
- package/dist/assets/chat-page-C_5dcuE3.js +0 -1
- package/dist/assets/config-split-page-Fbb4PtTf.js +0 -1
- package/dist/assets/confirm-dialog-D2EG3nqE.js +0 -5
- package/dist/assets/desktop-update-config-BGR3HUi1.js +0 -1
- package/dist/assets/dist-7JTjycxE.js +0 -1
- package/dist/assets/dist-wXLhk4hl.js +0 -1
- package/dist/assets/doc-browser-bHyXnxlj.js +0 -1
- package/dist/assets/doc-browser-context-CYAGm5d5.js +0 -1
- package/dist/assets/doc-browser-gTrQ3jCF.js +0 -1
- package/dist/assets/es2015-j1SRCIX5.js +0 -41
- package/dist/assets/i18n-provider-B4oMxOFx.js +0 -1
- package/dist/assets/index-CvrvblgX.css +0 -1
- package/dist/assets/index-Obd4JYU2.js +0 -104
- package/dist/assets/loader-circle-CdzgK4eH.js +0 -1
- package/dist/assets/mcp-marketplace-page-Bt7CuOoq.js +0 -9
- package/dist/assets/mcp-marketplace-page-Ck3t78_n.js +0 -1
- package/dist/assets/model-config-page-DeKk9gvE.js +0 -1
- package/dist/assets/plus-Bx7wQbhG.js +0 -1
- package/dist/assets/provider-scoped-model-input-DsH2LF1q.js +0 -1
- package/dist/assets/providers-config-page-BFnGp68F.js +0 -1
- package/dist/assets/react-UirzUuST.js +0 -8
- package/dist/assets/remote-CDkHZtA8.js +0 -1
- package/dist/assets/rotate-cw-1JqxHTuw.js +0 -1
- package/dist/assets/runtime-config-page-BelAqiNG.js +0 -1
- package/dist/assets/search-config-page-zPm6--Ig.js +0 -1
- package/dist/assets/secrets-config-page-Cxyp-KuQ.js +0 -3
- package/dist/assets/security-config-B_gCq9fn.js +0 -1
- package/dist/assets/select-CdSEOwVM.js +0 -1
- package/dist/assets/setting-row-CTAtGexr.js +0 -1
- package/dist/assets/side-dock-DPvakJ0a.js +0 -3
- package/dist/assets/switch-BU_UEULb.js +0 -1
- package/dist/assets/tag-chip-D-WsKoT1.js +0 -1
- package/dist/assets/tooltip-CjkOaHW7.js +0 -1
- package/dist/assets/use-config--hx5oxQn.js +0 -1
- package/dist/assets/use-confirm-dialog-CD9a_SK1.js +0 -1
- package/dist/assets/x-DT5x45JU.js +0 -1
- /package/dist/assets/{config-hints-C_iP1zl_.js → config-hints-fDrYfl0l.js} +0 -0
- /package/dist/assets/{host-capabilities-9bB_998Z.js → host-capabilities-zZvY9U63.js} +0 -0
- /package/dist/assets/{middleware-BILWbJE4.js → middleware-BLMHv9YF.js} +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { buildServerPathContentUrl } from "@/shared/lib/api/utils/server-path.utils";
|
|
3
|
+
|
|
4
|
+
describe("buildServerPathContentUrl", () => {
|
|
5
|
+
it("uses the query content route for absolute files", () => {
|
|
6
|
+
expect(buildServerPathContentUrl("/tmp/logo.svg")).toContain(
|
|
7
|
+
"/api/server-paths/content?path=%2Ftmp%2Flogo.svg",
|
|
8
|
+
);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
it("uses the same query content route for Windows files", () => {
|
|
12
|
+
expect(buildServerPathContentUrl("C:\\Users\\me\\logo.svg")).toContain(
|
|
13
|
+
"path=C%3A%5CUsers%5Cme%5Clogo.svg",
|
|
14
|
+
);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("builds a base-path content URL for relative Markdown images", () => {
|
|
18
|
+
const url = buildServerPathContentUrl("assets/logo.svg", "/tmp/project");
|
|
19
|
+
|
|
20
|
+
expect(url).toContain("/api/server-paths/content?");
|
|
21
|
+
expect(url).toContain("path=assets%2Flogo.svg");
|
|
22
|
+
expect(url).toContain("basePath=%2Ftmp%2Fproject");
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it("rejects relative content paths when no base path is available", () => {
|
|
26
|
+
expect(buildServerPathContentUrl("assets/logo.svg", null)).toBeNull();
|
|
27
|
+
});
|
|
28
|
+
});
|
|
@@ -3,17 +3,6 @@ import { nextclawClient } from '@/shared/lib/api/managers/client.manager';
|
|
|
3
3
|
import type { ServerPathBrowseView, ServerPathReadView } from '@/shared/lib/api/types';
|
|
4
4
|
|
|
5
5
|
const SERVER_PATH_CONTENT_BASE_PATH = '/api/server-paths/content';
|
|
6
|
-
const SERVER_PATH_CONTENT_ABSOLUTE_SCOPE = '__abs__';
|
|
7
|
-
const SERVER_PATH_CONTENT_WINDOWS_SCOPE = '__win__';
|
|
8
|
-
|
|
9
|
-
function encodeServerPathSegments(path: string): string {
|
|
10
|
-
return path
|
|
11
|
-
.replace(/\\/g, '/')
|
|
12
|
-
.split('/')
|
|
13
|
-
.filter(Boolean)
|
|
14
|
-
.map((segment) => encodeURIComponent(segment))
|
|
15
|
-
.join('/');
|
|
16
|
-
}
|
|
17
6
|
|
|
18
7
|
export async function fetchServerPathBrowse(params?: {
|
|
19
8
|
path?: string | null;
|
|
@@ -30,14 +19,24 @@ export async function fetchServerPathRead(params: {
|
|
|
30
19
|
return await nextclawClient.serverPaths.read(params);
|
|
31
20
|
}
|
|
32
21
|
|
|
33
|
-
export function buildServerPathContentUrl(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
22
|
+
export function buildServerPathContentUrl(path: string): string;
|
|
23
|
+
export function buildServerPathContentUrl(
|
|
24
|
+
path: string,
|
|
25
|
+
basePath: string | null,
|
|
26
|
+
): string | null;
|
|
27
|
+
export function buildServerPathContentUrl(
|
|
28
|
+
path: string,
|
|
29
|
+
basePath?: string | null,
|
|
30
|
+
): string | null {
|
|
31
|
+
const normalizedPath = path.trim();
|
|
32
|
+
const isAbsolute = normalizedPath.startsWith("/") || /^[a-z]:[\\/]/i.test(normalizedPath);
|
|
33
|
+
const normalizedBasePath = basePath?.trim() ?? "";
|
|
34
|
+
if (!isAbsolute && !normalizedBasePath) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const query = new URLSearchParams({ path: normalizedPath });
|
|
38
|
+
if (normalizedBasePath) {
|
|
39
|
+
query.set("basePath", normalizedBasePath);
|
|
41
40
|
}
|
|
42
|
-
return `${API_BASE}${SERVER_PATH_CONTENT_BASE_PATH}
|
|
41
|
+
return `${API_BASE}${SERVER_PATH_CONTENT_BASE_PATH}?${query.toString()}`;
|
|
43
42
|
}
|
|
@@ -37,6 +37,8 @@
|
|
|
37
37
|
"chatBackToParent": "Back to parent",
|
|
38
38
|
"chatSessionOpenChildSessions": "View child sessions",
|
|
39
39
|
"chatSessionOpenCronJobs": "View session cron jobs",
|
|
40
|
+
"chatSessionOpenWorkspace": "Open session workspace",
|
|
41
|
+
"chatSessionCloseWorkspace": "Close session workspace",
|
|
40
42
|
"chatChildSessionLoading": "Loading child session…",
|
|
41
43
|
"chatChildSessionEmpty": "No child session messages yet.",
|
|
42
44
|
"chatWorkspaceBack": "Back in workspace",
|
|
@@ -45,11 +47,22 @@
|
|
|
45
47
|
"chatWorkspaceMaximizePanel": "Maximize workspace panel",
|
|
46
48
|
"chatWorkspaceRestorePanel": "Restore workspace panel",
|
|
47
49
|
"chatWorkspaceClosePanel": "Close workspace panel",
|
|
50
|
+
"chatWorkspaceOverview": "Overview",
|
|
51
|
+
"chatWorkspaceOverviewDescription": "Open this session's related conversations, scheduled work, and project files.",
|
|
52
|
+
"chatWorkspaceChildSessionsDescription": "Review the child sessions created from this conversation.",
|
|
53
|
+
"chatWorkspaceChildSessionsEmpty": "No child sessions yet.",
|
|
54
|
+
"chatWorkspaceSessionCronJobsDescription": "Review scheduled tasks associated with this session.",
|
|
55
|
+
"chatWorkspaceProjectFiles": "Project files",
|
|
56
|
+
"chatWorkspaceProjectFilesDescription": "Browse files from this session's project directory.",
|
|
57
|
+
"chatWorkspaceProjectFilesUnavailable": "This session does not have a project directory yet.",
|
|
48
58
|
"chatWorkspaceSideChatDraftTitle": "Side chat",
|
|
49
59
|
"chatWorkspaceSideChatDraftSubtitle": "This draft will inherit the parent session context when you send the first message.",
|
|
50
60
|
"chatWorkspaceChildSessions": "Child sessions",
|
|
51
61
|
"chatWorkspaceOpenFiles": "Open files",
|
|
52
62
|
"chatWorkspacePreview": "Preview",
|
|
63
|
+
"chatWorkspaceOpenPreview": "Open preview",
|
|
64
|
+
"chatWorkspaceOpenSource": "Open source",
|
|
65
|
+
"chatWorkspaceFileMoreActions": "File actions",
|
|
53
66
|
"chatWorkspaceDiff": "Diff",
|
|
54
67
|
"chatWorkspaceCloseFile": "Close file",
|
|
55
68
|
"chatWorkspaceLoadingPreview": "Loading preview…",
|
|
@@ -60,6 +73,11 @@
|
|
|
60
73
|
"chatWorkspaceDirectoryEmpty": "This directory is empty.",
|
|
61
74
|
"chatWorkspaceDirectoryLoadFailed": "Failed to load directory",
|
|
62
75
|
"chatWorkspacePreviewUnsupported": "This file is not supported in the sidebar preview yet.",
|
|
76
|
+
"chatWorkspacePreviewUnsupportedHint": "Legacy Word or PowerPoint files, archives, and other unsupported formats can be downloaded and opened with a local app.",
|
|
77
|
+
"chatWorkspacePreviewFailed": "The file could not be previewed. You can still download it and open it with a local app.",
|
|
78
|
+
"chatWorkspaceSpreadsheetPreviewTruncated": "This workbook is large. The preview shows up to 500 rows and 100 columns.",
|
|
79
|
+
"chatWorkspacePreviewDownload": "Download file",
|
|
80
|
+
"chatWorkspacePreviewOpenExternally": "Open with system app",
|
|
63
81
|
"chatWorkspacePreviewEmpty": "No file content is available for preview.",
|
|
64
82
|
"chatWorkspaceDiffEmpty": "No diff content is available.",
|
|
65
83
|
"chatWorkspaceHtmlPreviewTitle": "Rendered HTML preview",
|
|
@@ -68,8 +86,86 @@
|
|
|
68
86
|
"chatWorkspaceCronJobEmpty": "This session has no cron jobs.",
|
|
69
87
|
"chatSessionUnread": "Session has unread updates",
|
|
70
88
|
"chatTyping": "Agent is thinking...",
|
|
89
|
+
"chatReasoningInProgressCharacterCount": "Thinking · {count} characters so far",
|
|
90
|
+
"chatReasoningCompletedCharacterCount": "Thought through {count} characters",
|
|
91
|
+
"chatToolTerminalRunning": "Running command",
|
|
92
|
+
"chatToolTerminalSuccess": "Ran command",
|
|
93
|
+
"chatToolTerminalError": "Command failed",
|
|
94
|
+
"chatToolTerminalCancelled": "Command cancelled",
|
|
95
|
+
"chatToolFileReadRunning": "Reading file",
|
|
96
|
+
"chatToolFileReadSuccess": "Read file",
|
|
97
|
+
"chatToolFileReadError": "File read failed",
|
|
98
|
+
"chatToolFileReadCancelled": "File read cancelled",
|
|
99
|
+
"chatToolFileEditRunning": "Editing file",
|
|
100
|
+
"chatToolFileEditSuccess": "Edited file",
|
|
101
|
+
"chatToolFileEditError": "File edit failed",
|
|
102
|
+
"chatToolFileEditCancelled": "File edit cancelled",
|
|
103
|
+
"chatToolSearchRunning": "Searching",
|
|
104
|
+
"chatToolSearchSuccess": "Searched",
|
|
105
|
+
"chatToolSearchError": "Search failed",
|
|
106
|
+
"chatToolSearchCancelled": "Search cancelled",
|
|
107
|
+
"chatToolDirectoryRunning": "Listing directory",
|
|
108
|
+
"chatToolDirectorySuccess": "Listed directory",
|
|
109
|
+
"chatToolDirectoryError": "Directory listing failed",
|
|
110
|
+
"chatToolDirectoryCancelled": "Directory listing cancelled",
|
|
111
|
+
"chatToolWebRunning": "Fetching page",
|
|
112
|
+
"chatToolWebSuccess": "Fetched page",
|
|
113
|
+
"chatToolWebError": "Page fetch failed",
|
|
114
|
+
"chatToolWebCancelled": "Page fetch cancelled",
|
|
115
|
+
"chatToolMessageRunning": "Sending message",
|
|
116
|
+
"chatToolMessageSuccess": "Sent message",
|
|
117
|
+
"chatToolMessageError": "Message failed",
|
|
118
|
+
"chatToolMessageCancelled": "Message cancelled",
|
|
119
|
+
"chatToolSessionRunning": "Reading sessions",
|
|
120
|
+
"chatToolSessionSuccess": "Read sessions",
|
|
121
|
+
"chatToolSessionError": "Session read failed",
|
|
122
|
+
"chatToolSessionCancelled": "Session read cancelled",
|
|
123
|
+
"chatToolAgentRunning": "Managing subtask",
|
|
124
|
+
"chatToolAgentSuccess": "Managed subtask",
|
|
125
|
+
"chatToolAgentError": "Subtask failed",
|
|
126
|
+
"chatToolAgentCancelled": "Subtask cancelled",
|
|
127
|
+
"chatToolMemoryRunning": "Accessing memory",
|
|
128
|
+
"chatToolMemorySuccess": "Accessed memory",
|
|
129
|
+
"chatToolMemoryError": "Memory access failed",
|
|
130
|
+
"chatToolMemoryCancelled": "Memory access cancelled",
|
|
131
|
+
"chatToolScheduleRunning": "Managing schedule",
|
|
132
|
+
"chatToolScheduleSuccess": "Managed schedule",
|
|
133
|
+
"chatToolScheduleError": "Schedule action failed",
|
|
134
|
+
"chatToolScheduleCancelled": "Schedule action cancelled",
|
|
135
|
+
"chatToolSystemRunning": "Managing service",
|
|
136
|
+
"chatToolSystemSuccess": "Managed service",
|
|
137
|
+
"chatToolSystemError": "Service action failed",
|
|
138
|
+
"chatToolSystemCancelled": "Service action cancelled",
|
|
139
|
+
"chatToolImageRunning": "Viewing image",
|
|
140
|
+
"chatToolImageSuccess": "Viewed image",
|
|
141
|
+
"chatToolImageError": "Image view failed",
|
|
142
|
+
"chatToolImageCancelled": "Image view cancelled",
|
|
143
|
+
"chatToolDisplayRunning": "Showing result",
|
|
144
|
+
"chatToolDisplaySuccess": "Showed result",
|
|
145
|
+
"chatToolDisplayError": "Display failed",
|
|
146
|
+
"chatToolDisplayCancelled": "Display cancelled",
|
|
71
147
|
"chatScrollToBottom": "Scroll to bottom",
|
|
72
148
|
"chatProcessSummaryProcessed": "Processed",
|
|
149
|
+
"chatToolActivityReadOne": "Read 1 file",
|
|
150
|
+
"chatToolActivityReadOther": "Read {count} files",
|
|
151
|
+
"chatToolActivityEditOne": "Edit 1 file",
|
|
152
|
+
"chatToolActivityEditOther": "Edit {count} files",
|
|
153
|
+
"chatToolActivityDirectoryOne": "View 1 directory",
|
|
154
|
+
"chatToolActivityDirectoryOther": "View {count} directories",
|
|
155
|
+
"chatToolActivitySearchOne": "Search 1 time",
|
|
156
|
+
"chatToolActivitySearchOther": "Search {count} times",
|
|
157
|
+
"chatToolActivityBashOne": "Run 1 command",
|
|
158
|
+
"chatToolActivityBashOther": "Run {count} commands",
|
|
159
|
+
"chatToolActivityWebOne": "Open 1 page",
|
|
160
|
+
"chatToolActivityWebOther": "Open {count} pages",
|
|
161
|
+
"chatToolActivityAgentOne": "Start 1 subtask",
|
|
162
|
+
"chatToolActivityAgentOther": "Start {count} subtasks",
|
|
163
|
+
"chatToolActivityPanelOne": "Show 1 result",
|
|
164
|
+
"chatToolActivityPanelOther": "Show {count} results",
|
|
165
|
+
"chatToolActivityOtherOne": "Use 1 tool",
|
|
166
|
+
"chatToolActivityOtherOther": "Use {count} tools",
|
|
167
|
+
"chatProcessSummaryFailed": "failed",
|
|
168
|
+
"chatProcessSummaryCancelled": "cancelled",
|
|
73
169
|
"chatRuntimeInitializing": "Chat is still initializing. You can keep typing and send once startup finishes.",
|
|
74
170
|
"chatRuntimeInitializationFailed": "Chat startup failed. Please retry in a moment or inspect the service logs.",
|
|
75
171
|
"chatInputPlaceholder": "Type a message, / for commands, apps or skills, @ for panel app references, Enter to send, Shift + Enter for newline",
|
|
@@ -158,6 +254,7 @@
|
|
|
158
254
|
"chatSessionProjectCleared": "Project directory cleared",
|
|
159
255
|
"chatSessionErrorTitle": "Something went wrong",
|
|
160
256
|
"chatSendFailed": "Failed to send message",
|
|
257
|
+
"chatErrorDetails": "Details",
|
|
161
258
|
"chatRoleUser": "You",
|
|
162
259
|
"chatRoleAssistant": "Assistant",
|
|
163
260
|
"chatRoleTool": "Tool",
|
|
@@ -182,6 +279,8 @@
|
|
|
182
279
|
"chatFileAttachment": "File attachment",
|
|
183
280
|
"chatAttachmentOpen": "Open",
|
|
184
281
|
"chatAttachmentAttached": "Attached",
|
|
282
|
+
"chatAttachmentExpand": "Expand image",
|
|
283
|
+
"chatAttachmentClosePreview": "Close preview",
|
|
185
284
|
"chatAttachmentCategoryArchive": "Archive",
|
|
186
285
|
"chatAttachmentCategoryAudio": "Audio",
|
|
187
286
|
"chatAttachmentCategoryCode": "Code file",
|
|
@@ -14,6 +14,12 @@
|
|
|
14
14
|
"settingsGroupBasic": "Basic Configuration",
|
|
15
15
|
"settingsGroupAdvanced": "Advanced Configuration",
|
|
16
16
|
"appearance": "Appearance",
|
|
17
|
+
"chatMessageLayoutTitle": "Message layout",
|
|
18
|
+
"chatMessageLayoutDescription": "Choose how chat messages are displayed.",
|
|
19
|
+
"chatMessageLayoutCard": "Cards",
|
|
20
|
+
"chatMessageLayoutCardDescription": "Show user and AI messages in separate cards.",
|
|
21
|
+
"chatMessageLayoutFlat": "Flat",
|
|
22
|
+
"chatMessageLayoutFlatDescription": "Keep user bubbles while showing AI identity and content in a flat layout.",
|
|
17
23
|
"settingsMenu": "Settings menu",
|
|
18
24
|
"sidebarCollapse": "Collapse sidebar",
|
|
19
25
|
"sidebarExpand": "Expand sidebar",
|
|
@@ -37,6 +37,8 @@
|
|
|
37
37
|
"chatBackToParent": "返回父会话",
|
|
38
38
|
"chatSessionOpenChildSessions": "查看子会话",
|
|
39
39
|
"chatSessionOpenCronJobs": "查看本会话定时任务",
|
|
40
|
+
"chatSessionOpenWorkspace": "打开会话工作台",
|
|
41
|
+
"chatSessionCloseWorkspace": "收起会话工作台",
|
|
40
42
|
"chatChildSessionLoading": "正在加载子会话…",
|
|
41
43
|
"chatChildSessionEmpty": "子会话还没有消息。",
|
|
42
44
|
"chatWorkspaceBack": "工作区后退",
|
|
@@ -45,11 +47,22 @@
|
|
|
45
47
|
"chatWorkspaceMaximizePanel": "最大化工作区侧栏",
|
|
46
48
|
"chatWorkspaceRestorePanel": "还原工作区侧栏",
|
|
47
49
|
"chatWorkspaceClosePanel": "关闭工作区侧栏",
|
|
50
|
+
"chatWorkspaceOverview": "概览",
|
|
51
|
+
"chatWorkspaceOverviewDescription": "查看与当前会话相关的子会话、定时任务和项目文件。",
|
|
52
|
+
"chatWorkspaceChildSessionsDescription": "查看从当前会话创建的子会话。",
|
|
53
|
+
"chatWorkspaceChildSessionsEmpty": "当前还没有子会话。",
|
|
54
|
+
"chatWorkspaceSessionCronJobsDescription": "查看与当前会话关联的定时任务。",
|
|
55
|
+
"chatWorkspaceProjectFiles": "项目文件",
|
|
56
|
+
"chatWorkspaceProjectFilesDescription": "浏览当前会话项目目录中的文件。",
|
|
57
|
+
"chatWorkspaceProjectFilesUnavailable": "当前会话还没有项目目录。",
|
|
48
58
|
"chatWorkspaceSideChatDraftTitle": "Side chat",
|
|
49
59
|
"chatWorkspaceSideChatDraftSubtitle": "发送第一条消息后,会继承父会话上下文并创建真实 child 会话。",
|
|
50
60
|
"chatWorkspaceChildSessions": "子会话",
|
|
51
61
|
"chatWorkspaceOpenFiles": "打开的文件",
|
|
52
62
|
"chatWorkspacePreview": "预览",
|
|
63
|
+
"chatWorkspaceOpenPreview": "打开预览",
|
|
64
|
+
"chatWorkspaceOpenSource": "打开源码",
|
|
65
|
+
"chatWorkspaceFileMoreActions": "文件操作",
|
|
53
66
|
"chatWorkspaceDiff": "Diff",
|
|
54
67
|
"chatWorkspaceCloseFile": "关闭文件",
|
|
55
68
|
"chatWorkspaceLoadingPreview": "正在加载预览…",
|
|
@@ -60,6 +73,11 @@
|
|
|
60
73
|
"chatWorkspaceDirectoryEmpty": "这个目录为空。",
|
|
61
74
|
"chatWorkspaceDirectoryLoadFailed": "读取目录失败",
|
|
62
75
|
"chatWorkspacePreviewUnsupported": "该文件暂不支持在侧栏预览。",
|
|
76
|
+
"chatWorkspacePreviewUnsupportedHint": "旧版 Word、PowerPoint、压缩包等暂不支持的格式,可以下载后用本机应用打开。",
|
|
77
|
+
"chatWorkspacePreviewFailed": "文件预览失败。你仍可以下载后用本机应用打开。",
|
|
78
|
+
"chatWorkspaceSpreadsheetPreviewTruncated": "工作簿较大,当前最多显示 500 行和 100 列。",
|
|
79
|
+
"chatWorkspacePreviewDownload": "下载文件",
|
|
80
|
+
"chatWorkspacePreviewOpenExternally": "用系统应用打开",
|
|
63
81
|
"chatWorkspacePreviewEmpty": "当前没有可显示的文件内容。",
|
|
64
82
|
"chatWorkspaceDiffEmpty": "当前没有可显示的 diff 内容。",
|
|
65
83
|
"chatWorkspaceHtmlPreviewTitle": "HTML 渲染预览",
|
|
@@ -68,8 +86,86 @@
|
|
|
68
86
|
"chatWorkspaceCronJobEmpty": "这个会话暂无定时任务。",
|
|
69
87
|
"chatSessionUnread": "会话有未读更新",
|
|
70
88
|
"chatTyping": "Agent 正在思考...",
|
|
89
|
+
"chatReasoningInProgressCharacterCount": "思考中 · 已思考 {count} 个字符",
|
|
90
|
+
"chatReasoningCompletedCharacterCount": "已思考 {count} 个字符",
|
|
91
|
+
"chatToolTerminalRunning": "执行中",
|
|
92
|
+
"chatToolTerminalSuccess": "已执行",
|
|
93
|
+
"chatToolTerminalError": "执行失败",
|
|
94
|
+
"chatToolTerminalCancelled": "已取消执行",
|
|
95
|
+
"chatToolFileReadRunning": "读取中",
|
|
96
|
+
"chatToolFileReadSuccess": "已读取",
|
|
97
|
+
"chatToolFileReadError": "读取失败",
|
|
98
|
+
"chatToolFileReadCancelled": "已取消读取",
|
|
99
|
+
"chatToolFileEditRunning": "编辑中",
|
|
100
|
+
"chatToolFileEditSuccess": "已编辑",
|
|
101
|
+
"chatToolFileEditError": "编辑失败",
|
|
102
|
+
"chatToolFileEditCancelled": "已取消编辑",
|
|
103
|
+
"chatToolSearchRunning": "搜索中",
|
|
104
|
+
"chatToolSearchSuccess": "已搜索",
|
|
105
|
+
"chatToolSearchError": "搜索失败",
|
|
106
|
+
"chatToolSearchCancelled": "已取消搜索",
|
|
107
|
+
"chatToolDirectoryRunning": "正在查看目录",
|
|
108
|
+
"chatToolDirectorySuccess": "已查看目录",
|
|
109
|
+
"chatToolDirectoryError": "查看目录失败",
|
|
110
|
+
"chatToolDirectoryCancelled": "已取消查看目录",
|
|
111
|
+
"chatToolWebRunning": "正在读取网页",
|
|
112
|
+
"chatToolWebSuccess": "已读取网页",
|
|
113
|
+
"chatToolWebError": "读取网页失败",
|
|
114
|
+
"chatToolWebCancelled": "已取消读取网页",
|
|
115
|
+
"chatToolMessageRunning": "正在发送消息",
|
|
116
|
+
"chatToolMessageSuccess": "已发送消息",
|
|
117
|
+
"chatToolMessageError": "发送消息失败",
|
|
118
|
+
"chatToolMessageCancelled": "已取消发送消息",
|
|
119
|
+
"chatToolSessionRunning": "正在读取会话",
|
|
120
|
+
"chatToolSessionSuccess": "已读取会话",
|
|
121
|
+
"chatToolSessionError": "读取会话失败",
|
|
122
|
+
"chatToolSessionCancelled": "已取消读取会话",
|
|
123
|
+
"chatToolAgentRunning": "正在处理子任务",
|
|
124
|
+
"chatToolAgentSuccess": "已处理子任务",
|
|
125
|
+
"chatToolAgentError": "处理子任务失败",
|
|
126
|
+
"chatToolAgentCancelled": "已取消处理子任务",
|
|
127
|
+
"chatToolMemoryRunning": "正在访问记忆",
|
|
128
|
+
"chatToolMemorySuccess": "已访问记忆",
|
|
129
|
+
"chatToolMemoryError": "访问记忆失败",
|
|
130
|
+
"chatToolMemoryCancelled": "已取消访问记忆",
|
|
131
|
+
"chatToolScheduleRunning": "正在管理定时任务",
|
|
132
|
+
"chatToolScheduleSuccess": "已管理定时任务",
|
|
133
|
+
"chatToolScheduleError": "管理定时任务失败",
|
|
134
|
+
"chatToolScheduleCancelled": "已取消管理定时任务",
|
|
135
|
+
"chatToolSystemRunning": "正在管理服务",
|
|
136
|
+
"chatToolSystemSuccess": "已管理服务",
|
|
137
|
+
"chatToolSystemError": "管理服务失败",
|
|
138
|
+
"chatToolSystemCancelled": "已取消管理服务",
|
|
139
|
+
"chatToolImageRunning": "正在查看图片",
|
|
140
|
+
"chatToolImageSuccess": "已查看图片",
|
|
141
|
+
"chatToolImageError": "查看图片失败",
|
|
142
|
+
"chatToolImageCancelled": "已取消查看图片",
|
|
143
|
+
"chatToolDisplayRunning": "正在展示结果",
|
|
144
|
+
"chatToolDisplaySuccess": "已展示结果",
|
|
145
|
+
"chatToolDisplayError": "展示结果失败",
|
|
146
|
+
"chatToolDisplayCancelled": "已取消展示结果",
|
|
71
147
|
"chatScrollToBottom": "滚动到底部",
|
|
72
148
|
"chatProcessSummaryProcessed": "已处理",
|
|
149
|
+
"chatToolActivityReadOne": "读取 1 个文件",
|
|
150
|
+
"chatToolActivityReadOther": "读取 {count} 个文件",
|
|
151
|
+
"chatToolActivityEditOne": "编辑 1 个文件",
|
|
152
|
+
"chatToolActivityEditOther": "编辑 {count} 个文件",
|
|
153
|
+
"chatToolActivityDirectoryOne": "查看 1 个目录",
|
|
154
|
+
"chatToolActivityDirectoryOther": "查看 {count} 个目录",
|
|
155
|
+
"chatToolActivitySearchOne": "搜索 1 次",
|
|
156
|
+
"chatToolActivitySearchOther": "搜索 {count} 次",
|
|
157
|
+
"chatToolActivityBashOne": "运行 1 条命令",
|
|
158
|
+
"chatToolActivityBashOther": "运行 {count} 条命令",
|
|
159
|
+
"chatToolActivityWebOne": "访问 1 个网页",
|
|
160
|
+
"chatToolActivityWebOther": "访问 {count} 个网页",
|
|
161
|
+
"chatToolActivityAgentOne": "启动 1 个子任务",
|
|
162
|
+
"chatToolActivityAgentOther": "启动 {count} 个子任务",
|
|
163
|
+
"chatToolActivityPanelOne": "展示 1 个结果",
|
|
164
|
+
"chatToolActivityPanelOther": "展示 {count} 个结果",
|
|
165
|
+
"chatToolActivityOtherOne": "调用 1 个工具",
|
|
166
|
+
"chatToolActivityOtherOther": "调用 {count} 个工具",
|
|
167
|
+
"chatProcessSummaryFailed": "失败",
|
|
168
|
+
"chatProcessSummaryCancelled": "已取消",
|
|
73
169
|
"chatRuntimeInitializing": "聊天能力正在初始化。你可以先输入内容,完成后即可发送。",
|
|
74
170
|
"chatRuntimeInitializationFailed": "聊天能力启动失败,请稍后重试或检查服务日志。",
|
|
75
171
|
"chatInputPlaceholder": "输入消息,/ 选命令、应用或技能,@ 引用面板应用,Enter 发送,Shift + Enter 换行",
|
|
@@ -158,6 +254,7 @@
|
|
|
158
254
|
"chatSessionProjectCleared": "项目目录已清除",
|
|
159
255
|
"chatSessionErrorTitle": "出错了",
|
|
160
256
|
"chatSendFailed": "发送消息失败",
|
|
257
|
+
"chatErrorDetails": "查看详情",
|
|
161
258
|
"chatRoleUser": "你",
|
|
162
259
|
"chatRoleAssistant": "助手",
|
|
163
260
|
"chatRoleTool": "工具",
|
|
@@ -182,6 +279,8 @@
|
|
|
182
279
|
"chatFileAttachment": "文件附件",
|
|
183
280
|
"chatAttachmentOpen": "打开",
|
|
184
281
|
"chatAttachmentAttached": "已附加",
|
|
282
|
+
"chatAttachmentExpand": "放大查看",
|
|
283
|
+
"chatAttachmentClosePreview": "关闭预览",
|
|
185
284
|
"chatAttachmentCategoryArchive": "压缩包",
|
|
186
285
|
"chatAttachmentCategoryAudio": "音频",
|
|
187
286
|
"chatAttachmentCategoryCode": "代码文件",
|
|
@@ -14,6 +14,12 @@
|
|
|
14
14
|
"settingsGroupBasic": "基础配置",
|
|
15
15
|
"settingsGroupAdvanced": "高级配置",
|
|
16
16
|
"appearance": "外观",
|
|
17
|
+
"chatMessageLayoutTitle": "消息布局",
|
|
18
|
+
"chatMessageLayoutDescription": "选择聊天消息的展示方式。",
|
|
19
|
+
"chatMessageLayoutCard": "卡片式",
|
|
20
|
+
"chatMessageLayoutCardDescription": "用户与 AI 消息都使用独立卡片展示。",
|
|
21
|
+
"chatMessageLayoutFlat": "平铺式",
|
|
22
|
+
"chatMessageLayoutFlatDescription": "用户消息保留气泡,AI 消息以头像、名称和正文平铺展示。",
|
|
17
23
|
"settingsMenu": "设置菜单",
|
|
18
24
|
"sidebarCollapse": "收起侧边栏",
|
|
19
25
|
"sidebarExpand": "展开侧边栏",
|