dsh-coding-sidebar 1.0.0 → 1.0.2
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/README.md +2 -2
- package/lib/client-editor.js +211 -203
- package/lib/client-mermaid.js +217 -209
- package/lib/client-registry.js +555 -421
- package/lib/client-terminal.js +213 -205
- package/lib/client.js +551 -417
- package/lib/types/client/locales.d.ts +4 -0
- package/package.json +1 -1
- package/src/client/SideCardSection.tsx +1 -1
- package/src/client/SubagentView.module.css +41 -0
- package/src/client/SubagentView.tsx +63 -7
- package/src/client/locales-ar.ts +4 -0
- package/src/client/locales-de.ts +4 -0
- package/src/client/locales-fr.ts +4 -0
- package/src/client/locales-hi.ts +4 -0
- package/src/client/locales-id.ts +4 -0
- package/src/client/locales-it.ts +4 -0
- package/src/client/locales-ja.ts +4 -0
- package/src/client/locales-ko.ts +4 -0
- package/src/client/locales-nl.ts +4 -0
- package/src/client/locales-pl.ts +4 -0
- package/src/client/locales-pt.ts +4 -0
- package/src/client/locales-ru.ts +4 -0
- package/src/client/locales-sv.ts +4 -0
- package/src/client/locales-th.ts +4 -0
- package/src/client/locales-tr.ts +4 -0
- package/src/client/locales-vi.ts +4 -0
- package/src/client/locales-zh-HK.ts +4 -0
- package/src/client/locales-zh-MO.ts +4 -0
- package/src/client/locales-zh-TW.ts +4 -0
- package/src/client/locales.ts +8 -0
|
@@ -302,6 +302,8 @@ export declare const zh: {
|
|
|
302
302
|
subagentDiagUnsupported: string;
|
|
303
303
|
subagentDiagUnavailable: string;
|
|
304
304
|
subagentThinking: string;
|
|
305
|
+
subagentShowHistory: string;
|
|
306
|
+
subagentHideHistory: string;
|
|
305
307
|
sideChat: string;
|
|
306
308
|
sideChatNew: string;
|
|
307
309
|
sideChatUntitled: string;
|
|
@@ -329,6 +331,8 @@ export declare const zh: {
|
|
|
329
331
|
jobs: string;
|
|
330
332
|
jobsCount: string;
|
|
331
333
|
jobsCountRunning: string;
|
|
334
|
+
jobsShowHistory: string;
|
|
335
|
+
jobsHideHistory: string;
|
|
332
336
|
jobStatusRunning: string;
|
|
333
337
|
jobStatusStopping: string;
|
|
334
338
|
jobStatusCompleted: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-coding-sidebar",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "DSH web plugin: a VSCode-like right sidebar (explorer / editor / terminal / git / browser), isolated per conversation session. Exposes the betterSidebar service for other plugins to register sidebar tabs and file viewers. KCoder-maintained fork of DSH-better-sidebar 0.17.2 (bottom panel removed, upstream-decoupled release line).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -861,7 +861,7 @@ export function SideCardSection({ store, service }: SideCardSectionProps) {
|
|
|
861
861
|
instance's, kept in lockstep with package.json by
|
|
862
862
|
tests/service.spec.ts). */}
|
|
863
863
|
<div className={css.versionBadge}>
|
|
864
|
-
<span className={css.versionBadgeName}>
|
|
864
|
+
<span className={css.versionBadgeName}>dsh-coding-sidebar</span>
|
|
865
865
|
<span className={css.versionBadgeTag}>v{service.version}</span>
|
|
866
866
|
</div>
|
|
867
867
|
|
|
@@ -274,6 +274,47 @@
|
|
|
274
274
|
color: var(--dsw-alias-label-primary);
|
|
275
275
|
}
|
|
276
276
|
|
|
277
|
+
/* ── History collapse toggle (shared: topology levels + jobs list) ─────── */
|
|
278
|
+
|
|
279
|
+
/* The "show earlier rows" disclosure between the header and the collapsed
|
|
280
|
+
rows; full-width like a row, but visually quieter (tertiary, small). */
|
|
281
|
+
.historyToggle {
|
|
282
|
+
display: flex;
|
|
283
|
+
align-items: center;
|
|
284
|
+
gap: 5px;
|
|
285
|
+
width: 100%;
|
|
286
|
+
box-sizing: border-box;
|
|
287
|
+
min-height: 26px;
|
|
288
|
+
padding: 3px 8px 3px 11px;
|
|
289
|
+
border: none;
|
|
290
|
+
border-radius: 8px;
|
|
291
|
+
background: transparent;
|
|
292
|
+
font: var(--dsw-font-xxxs-strong-11);
|
|
293
|
+
color: var(--dsw-alias-label-tertiary);
|
|
294
|
+
text-align: left;
|
|
295
|
+
cursor: pointer;
|
|
296
|
+
outline: none;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
.historyToggle:hover {
|
|
300
|
+
background: var(--dsw-alias-interactive-bg-hover);
|
|
301
|
+
color: var(--dsw-alias-label-secondary);
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
.historyToggle:focus-visible {
|
|
305
|
+
background: var(--dsw-alias-interactive-bg-hover);
|
|
306
|
+
color: var(--dsw-alias-label-secondary);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.historyToggle svg {
|
|
310
|
+
flex: none;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/* The jobs section's toggle sits right under its list. */
|
|
314
|
+
.jobs .historyToggle {
|
|
315
|
+
margin-top: 2px;
|
|
316
|
+
}
|
|
317
|
+
|
|
277
318
|
/* ── Background-job section (below the topology tree) ────────────────── */
|
|
278
319
|
|
|
279
320
|
.jobs {
|
|
@@ -12,6 +12,12 @@
|
|
|
12
12
|
* highlighted in place. Every branch is expanded automatically (lazy
|
|
13
13
|
* catalogs hydrate on demand and consume live membership while visible).
|
|
14
14
|
*
|
|
15
|
+
* To keep long histories browsable, each catalog level shows only its
|
|
16
|
+
* LATEST {@link SUBAGENT_VISIBLE} children by default — earlier rows fold
|
|
17
|
+
* behind a history toggle — and the jobs section shows its latest
|
|
18
|
+
* {@link JOBS_VISIBLE} rows the same way. Collapsing is view-only: the
|
|
19
|
+
* header counts, the output dock and live observation still see every row.
|
|
20
|
+
*
|
|
15
21
|
* Each node card carries live status (state dot, durable label, mode and
|
|
16
22
|
* activity); while a child RUNS, its card additionally shows the LAST text
|
|
17
23
|
* output and LAST tool call pulled from its history tail, auto-refreshing
|
|
@@ -23,6 +29,7 @@ import { useCallback, useEffect, useMemo, useRef, useState, type KeyboardEvent }
|
|
|
23
29
|
import { useSyncExternalStore } from 'react'
|
|
24
30
|
import clsx from 'clsx'
|
|
25
31
|
import {
|
|
32
|
+
IconChevronDownOutline14, IconChevronRightOutline14,
|
|
26
33
|
IconRefreshOutline14, StateDot,
|
|
27
34
|
} from '@deepseek-ai/dsh-client-ui-primitives'
|
|
28
35
|
import type {
|
|
@@ -65,6 +72,15 @@ const ARGS_PREVIEW = 60
|
|
|
65
72
|
const JOB_POLL_MS = 2000
|
|
66
73
|
/** How long the kill button stays armed before it needs re-confirming. */
|
|
67
74
|
const JOB_KILL_ARM_MS = 3000
|
|
75
|
+
/**
|
|
76
|
+
* How many of the LATEST rows stay visible by default before the earlier
|
|
77
|
+
* (history) rows collapse behind a toggle: {@link SUBAGENT_VISIBLE} for the
|
|
78
|
+
* topology's child rows, {@link JOBS_VISIBLE} for the background-job list.
|
|
79
|
+
* Collapsing is view-only — counts, the output dock and live observation
|
|
80
|
+
* keep seeing every entry.
|
|
81
|
+
*/
|
|
82
|
+
const SUBAGENT_VISIBLE = 5
|
|
83
|
+
const JOBS_VISIBLE = 3
|
|
68
84
|
|
|
69
85
|
/** The direct subagent children of one parent (durable `origin` rows;
|
|
70
86
|
* Side Chat threads ride the same origin but are tab-strip conversations,
|
|
@@ -244,7 +260,12 @@ interface RowsProps {
|
|
|
244
260
|
refresh: (parentSessionId: string) => void
|
|
245
261
|
}
|
|
246
262
|
|
|
247
|
-
/**
|
|
263
|
+
/**
|
|
264
|
+
* Render one topology level; branches are always expanded (lazy catalogs).
|
|
265
|
+
* When a level lists more than {@link SUBAGENT_VISIBLE} children, only the
|
|
266
|
+
* LATEST ones render by default — the earlier rows collapse behind a
|
|
267
|
+
* history toggle (per-level state; a fresh catalog page collapses again).
|
|
268
|
+
*/
|
|
248
269
|
function CatalogRows({
|
|
249
270
|
parentSessionId, catalog, catalogs, byId, level, currentSessionId, live,
|
|
250
271
|
openChild, refresh,
|
|
@@ -258,6 +279,10 @@ function CatalogRows({
|
|
|
258
279
|
if (entry.kind === 'child') return !(entry.label?.startsWith(SIDE_LABEL_PREFIX) ?? false)
|
|
259
280
|
return !(byId[entry.id]?.displayTitle.startsWith(SIDE_LABEL_PREFIX) ?? false)
|
|
260
281
|
})
|
|
282
|
+
const [historyOpen, setHistoryOpen] = useState(false)
|
|
283
|
+
const historyCount = visibleEntries.length - SUBAGENT_VISIBLE
|
|
284
|
+
const collapsed = historyCount > 0 && !historyOpen
|
|
285
|
+
const renderEntries = collapsed ? visibleEntries.slice(-SUBAGENT_VISIBLE) : visibleEntries
|
|
261
286
|
return (
|
|
262
287
|
<>
|
|
263
288
|
{emptyLoading && (
|
|
@@ -276,7 +301,18 @@ function CatalogRows({
|
|
|
276
301
|
</button>
|
|
277
302
|
</div>
|
|
278
303
|
)}
|
|
279
|
-
{
|
|
304
|
+
{historyCount > 0 && (
|
|
305
|
+
<button
|
|
306
|
+
type="button"
|
|
307
|
+
className={css.historyToggle}
|
|
308
|
+
aria-expanded={historyOpen}
|
|
309
|
+
onClick={() => { setHistoryOpen(open => !open) }}
|
|
310
|
+
>
|
|
311
|
+
{historyOpen ? <IconChevronDownOutline14 /> : <IconChevronRightOutline14 />}
|
|
312
|
+
{historyOpen ? t('subagentHideHistory') : t('subagentShowHistory', { count: historyCount })}
|
|
313
|
+
</button>
|
|
314
|
+
)}
|
|
315
|
+
{renderEntries.map((entry) => {
|
|
280
316
|
if (entry.kind === 'diagnostic') {
|
|
281
317
|
return (
|
|
282
318
|
<div key={entry.id} className={css.subagentNode}>
|
|
@@ -467,10 +503,12 @@ function JobOutputPane(props: {
|
|
|
467
503
|
/**
|
|
468
504
|
* The background-job section of the Subagent page: every job of the whole
|
|
469
505
|
* current tree (main agent + subagents, owner-labeled), fed by the harness
|
|
470
|
-
* `session/jobs` push mirror.
|
|
471
|
-
*
|
|
472
|
-
*
|
|
473
|
-
*
|
|
506
|
+
* `session/jobs` push mirror. When more than {@link JOBS_VISIBLE} jobs
|
|
507
|
+
* exist, only the head of the standard order (live rows, then newest
|
|
508
|
+
* settled) stays visible — earlier rows collapse behind a history toggle.
|
|
509
|
+
* Clicking a row feeds its model-read output to the shared bottom dock
|
|
510
|
+
* (event replay — never the model's cursor); live rows carry a
|
|
511
|
+
* two-click-confirm kill button. Renders nothing while the tree has no jobs.
|
|
474
512
|
*/
|
|
475
513
|
function JobsSection(props: {
|
|
476
514
|
byId: SidebarSessionList['byId']
|
|
@@ -485,6 +523,7 @@ function JobsSection(props: {
|
|
|
485
523
|
[byId, jobsBySession, rootId],
|
|
486
524
|
)
|
|
487
525
|
const [selectedId, setSelectedId] = useState<string | undefined>(undefined)
|
|
526
|
+
const [historyOpen, setHistoryOpen] = useState(false)
|
|
488
527
|
const [armedId, setArmedId] = useState<string | undefined>(undefined)
|
|
489
528
|
const [killingId, setKillingId] = useState<string | undefined>(undefined)
|
|
490
529
|
const [killErrorId, setKillErrorId] = useState<string | undefined>(undefined)
|
|
@@ -547,6 +586,12 @@ function JobsSection(props: {
|
|
|
547
586
|
? t('jobsCountRunning', { count: rows.length, running: liveCount })
|
|
548
587
|
: t('jobsCount', { count: rows.length })
|
|
549
588
|
|
|
589
|
+
// Collapsed view: the head of the standard order stays visible (all live
|
|
590
|
+
// rows up to the cap, then newest settled); the header count still
|
|
591
|
+
// reports the full totals, and a hidden job's dock keeps working.
|
|
592
|
+
const historyCount = rows.length - JOBS_VISIBLE
|
|
593
|
+
const visibleRows = historyCount > 0 && !historyOpen ? rows.slice(0, JOBS_VISIBLE) : rows
|
|
594
|
+
|
|
550
595
|
return (
|
|
551
596
|
<>
|
|
552
597
|
<section className={css.jobs} aria-label={t('jobs')}>
|
|
@@ -555,7 +600,7 @@ function JobsSection(props: {
|
|
|
555
600
|
<span className={css.jobsCount}>{countLabel}</span>
|
|
556
601
|
</div>
|
|
557
602
|
<ul className={css.jobsList} aria-label={t('jobs')}>
|
|
558
|
-
{
|
|
603
|
+
{visibleRows.map((row) => {
|
|
559
604
|
const { job } = row
|
|
560
605
|
const live = isJobLive(job)
|
|
561
606
|
const selected = selectedId === job.id
|
|
@@ -617,6 +662,17 @@ function JobsSection(props: {
|
|
|
617
662
|
)
|
|
618
663
|
})}
|
|
619
664
|
</ul>
|
|
665
|
+
{historyCount > 0 && (
|
|
666
|
+
<button
|
|
667
|
+
type="button"
|
|
668
|
+
className={css.historyToggle}
|
|
669
|
+
aria-expanded={historyOpen}
|
|
670
|
+
onClick={() => { setHistoryOpen(open => !open) }}
|
|
671
|
+
>
|
|
672
|
+
{historyOpen ? <IconChevronDownOutline14 /> : <IconChevronRightOutline14 />}
|
|
673
|
+
{historyOpen ? t('jobsHideHistory') : t('jobsShowHistory', { count: historyCount })}
|
|
674
|
+
</button>
|
|
675
|
+
)}
|
|
620
676
|
</section>
|
|
621
677
|
{selectedRow !== undefined && (
|
|
622
678
|
<JobOutputPane
|
package/src/client/locales-ar.ts
CHANGED
|
@@ -297,6 +297,8 @@ export const ar: Record<string, string> = {
|
|
|
297
297
|
subagentDiagUnsupported: 'غير مدعوم',
|
|
298
298
|
subagentDiagUnavailable: 'غير متاح',
|
|
299
299
|
subagentThinking: 'جارٍ التفكير…',
|
|
300
|
+
subagentShowHistory: 'عرض {count} من الوكلاء الفرعيين الأقدم',
|
|
301
|
+
subagentHideHistory: 'طي الوكلاء الفرعيين الأقدم',
|
|
300
302
|
sideChat: 'محادثة جانبية (تجريبية)',
|
|
301
303
|
sideChatNew: 'خيط جديد',
|
|
302
304
|
sideChatUntitled: 'خيط جديد',
|
|
@@ -324,6 +326,8 @@ export const ar: Record<string, string> = {
|
|
|
324
326
|
jobs: 'المهام الخلفية',
|
|
325
327
|
jobsCount: '{count} مهمة خلفية',
|
|
326
328
|
jobsCountRunning: '{count} مهمة خلفية · {running} قيد التشغيل',
|
|
329
|
+
jobsShowHistory: 'عرض {count} من المهام الخلفية الأقدم',
|
|
330
|
+
jobsHideHistory: 'طي المهام الخلفية الأقدم',
|
|
327
331
|
jobStatusRunning: 'قيد التشغيل',
|
|
328
332
|
jobStatusStopping: 'جارٍ الإيقاف',
|
|
329
333
|
jobStatusCompleted: 'اكتمل',
|
package/src/client/locales-de.ts
CHANGED
|
@@ -282,6 +282,8 @@ export const de: Record<string, string> = {
|
|
|
282
282
|
subagentDiagUnsupported: 'Nicht unterstützt',
|
|
283
283
|
subagentDiagUnavailable: 'Nicht verfügbar',
|
|
284
284
|
subagentThinking: 'Denkt nach…',
|
|
285
|
+
subagentShowHistory: '{count} ältere Subagenten anzeigen',
|
|
286
|
+
subagentHideHistory: 'Ältere Subagenten einklappen',
|
|
285
287
|
sideChat: 'Seitenchat (beta)',
|
|
286
288
|
sideChatNew: 'Neuer Thread',
|
|
287
289
|
sideChatUntitled: 'Neuer Thread',
|
|
@@ -309,6 +311,8 @@ export const de: Record<string, string> = {
|
|
|
309
311
|
jobs: 'Hintergrundaufgaben',
|
|
310
312
|
jobsCount: '{count} Hintergrundaufgaben',
|
|
311
313
|
jobsCountRunning: '{count} Hintergrundaufgaben · {running} läuft',
|
|
314
|
+
jobsShowHistory: '{count} ältere Hintergrundaufgaben anzeigen',
|
|
315
|
+
jobsHideHistory: 'Ältere Hintergrundaufgaben einklappen',
|
|
312
316
|
jobStatusRunning: 'Läuft',
|
|
313
317
|
jobStatusStopping: 'Wird beendet',
|
|
314
318
|
jobStatusCompleted: 'Abgeschlossen',
|
package/src/client/locales-fr.ts
CHANGED
|
@@ -289,6 +289,8 @@ export const fr: Record<string, string> = {
|
|
|
289
289
|
subagentDiagUnsupported: 'Entrée non prise en charge',
|
|
290
290
|
subagentDiagUnavailable: 'Indisponible',
|
|
291
291
|
subagentThinking: 'Réflexion…',
|
|
292
|
+
subagentShowHistory: 'Afficher {count} sous-agents plus anciens',
|
|
293
|
+
subagentHideHistory: 'Réduire les sous-agents plus anciens',
|
|
292
294
|
sideChat: 'Discussion latérale (bêta)',
|
|
293
295
|
sideChatNew: 'Nouvelle discussion',
|
|
294
296
|
sideChatUntitled: 'Nouvelle discussion',
|
|
@@ -316,6 +318,8 @@ export const fr: Record<string, string> = {
|
|
|
316
318
|
jobs: 'Tâches d’arrière-plan',
|
|
317
319
|
jobsCount: '{count} tâche(s) d’arrière-plan',
|
|
318
320
|
jobsCountRunning: '{count} tâche(s) d’arrière-plan · {running} en cours',
|
|
321
|
+
jobsShowHistory: 'Afficher {count} tâches d’arrière-plan plus anciennes',
|
|
322
|
+
jobsHideHistory: 'Réduire les tâches d’arrière-plan plus anciennes',
|
|
319
323
|
jobStatusRunning: 'En cours',
|
|
320
324
|
jobStatusStopping: 'Arrêt en cours',
|
|
321
325
|
jobStatusCompleted: 'Terminée',
|
package/src/client/locales-hi.ts
CHANGED
|
@@ -296,6 +296,8 @@ export const hi: Record<string, string> = {
|
|
|
296
296
|
subagentDiagUnsupported: 'असमर्थित',
|
|
297
297
|
subagentDiagUnavailable: 'अनुपलब्ध',
|
|
298
298
|
subagentThinking: 'सोच रहा…',
|
|
299
|
+
subagentShowHistory: 'पुराने {count} सबएजेंट दिखाएँ',
|
|
300
|
+
subagentHideHistory: 'पुराने सबएजेंट छिपाएँ',
|
|
299
301
|
sideChat: 'साइड चैट (बीटा)',
|
|
300
302
|
sideChatNew: 'नया थ्रेड',
|
|
301
303
|
sideChatUntitled: 'नया थ्रेड',
|
|
@@ -323,6 +325,8 @@ export const hi: Record<string, string> = {
|
|
|
323
325
|
jobs: 'बैकग्राउंड कार्य',
|
|
324
326
|
jobsCount: '{count} बैकग्राउंड कार्य',
|
|
325
327
|
jobsCountRunning: '{count} बैकग्राउंड कार्य · {running} चल रहे',
|
|
328
|
+
jobsShowHistory: 'पुराने {count} बैकग्राउंड कार्य दिखाएँ',
|
|
329
|
+
jobsHideHistory: 'पुराने बैकग्राउंड कार्य छिपाएँ',
|
|
326
330
|
jobStatusRunning: 'चल रहा',
|
|
327
331
|
jobStatusStopping: 'रुक रहा',
|
|
328
332
|
jobStatusCompleted: 'पूर्ण',
|
package/src/client/locales-id.ts
CHANGED
|
@@ -294,6 +294,8 @@ export const id: Record<string, string> = {
|
|
|
294
294
|
subagentDiagUnsupported: 'Tidak didukung',
|
|
295
295
|
subagentDiagUnavailable: 'Tidak tersedia',
|
|
296
296
|
subagentThinking: 'Berpikir…',
|
|
297
|
+
subagentShowHistory: 'Tampilkan {count} subagen sebelumnya',
|
|
298
|
+
subagentHideHistory: 'Ciutkan subagen sebelumnya',
|
|
297
299
|
sideChat: 'Side Chat (beta)',
|
|
298
300
|
sideChatNew: 'Thread baru',
|
|
299
301
|
sideChatUntitled: 'Thread baru',
|
|
@@ -321,6 +323,8 @@ export const id: Record<string, string> = {
|
|
|
321
323
|
jobs: 'Tugas latar',
|
|
322
324
|
jobsCount: '{count} tugas latar',
|
|
323
325
|
jobsCountRunning: '{count} tugas latar · {running} berjalan',
|
|
326
|
+
jobsShowHistory: 'Tampilkan {count} tugas latar sebelumnya',
|
|
327
|
+
jobsHideHistory: 'Ciutkan tugas latar sebelumnya',
|
|
324
328
|
jobStatusRunning: 'Berjalan',
|
|
325
329
|
jobStatusStopping: 'Menghentikan',
|
|
326
330
|
jobStatusCompleted: 'Selesai',
|
package/src/client/locales-it.ts
CHANGED
|
@@ -287,6 +287,8 @@ export const it: Record<string, string> = {
|
|
|
287
287
|
subagentDiagUnsupported: 'Non supportato',
|
|
288
288
|
subagentDiagUnavailable: 'Non disponibile',
|
|
289
289
|
subagentThinking: 'In pensiero…',
|
|
290
|
+
subagentShowHistory: 'Mostra {count} sottoagenti precedenti',
|
|
291
|
+
subagentHideHistory: 'Comprimi sottoagenti precedenti',
|
|
290
292
|
sideChat: 'Chat laterale (beta)',
|
|
291
293
|
sideChatNew: 'Nuova conversazione',
|
|
292
294
|
sideChatUntitled: 'Nuova conversazione',
|
|
@@ -314,6 +316,8 @@ export const it: Record<string, string> = {
|
|
|
314
316
|
jobs: 'Attività in background',
|
|
315
317
|
jobsCount: '{count} attività in background',
|
|
316
318
|
jobsCountRunning: '{count} attività in background · {running} in esecuzione',
|
|
319
|
+
jobsShowHistory: 'Mostra {count} attività in background precedenti',
|
|
320
|
+
jobsHideHistory: 'Comprimi attività in background precedenti',
|
|
317
321
|
jobStatusRunning: 'In esecuzione',
|
|
318
322
|
jobStatusStopping: 'Arresto in corso',
|
|
319
323
|
jobStatusCompleted: 'Completata',
|
package/src/client/locales-ja.ts
CHANGED
|
@@ -296,6 +296,8 @@ export const ja: Record<string, string> = {
|
|
|
296
296
|
subagentDiagUnsupported: '未サポートのエントリ',
|
|
297
297
|
subagentDiagUnavailable: '利用不可',
|
|
298
298
|
subagentThinking: '思考中…',
|
|
299
|
+
subagentShowHistory: '前のサブエージェント {count} 件を表示',
|
|
300
|
+
subagentHideHistory: '前のサブエージェントを折りたたむ',
|
|
299
301
|
sideChat: 'サイドチャット(beta)',
|
|
300
302
|
sideChatNew: '新規スレッド',
|
|
301
303
|
sideChatUntitled: '新規スレッド',
|
|
@@ -323,6 +325,8 @@ export const ja: Record<string, string> = {
|
|
|
323
325
|
jobs: 'バックグラウンドタスク',
|
|
324
326
|
jobsCount: '{count} 個のバックグラウンドタスク',
|
|
325
327
|
jobsCountRunning: '{count} 個のバックグラウンドタスク ・ {running} 個実行中',
|
|
328
|
+
jobsShowHistory: '前のバックグラウンドタスク {count} 件を表示',
|
|
329
|
+
jobsHideHistory: '前のバックグラウンドタスクを折りたたむ',
|
|
326
330
|
jobStatusRunning: '実行中',
|
|
327
331
|
jobStatusStopping: '停止中',
|
|
328
332
|
jobStatusCompleted: '完了',
|
package/src/client/locales-ko.ts
CHANGED
|
@@ -288,6 +288,8 @@ export const ko: Record<string, string> = {
|
|
|
288
288
|
subagentDiagUnsupported: '지원되지 않는 항목',
|
|
289
289
|
subagentDiagUnavailable: '사용할 수 없음',
|
|
290
290
|
subagentThinking: '생각하는 중…',
|
|
291
|
+
subagentShowHistory: '이전 서브 에이전트 {count}개 표시',
|
|
292
|
+
subagentHideHistory: '이전 서브 에이전트 접기',
|
|
291
293
|
sideChat: '사이드 채팅(beta)',
|
|
292
294
|
sideChatNew: '새 대화',
|
|
293
295
|
sideChatUntitled: '새 대화',
|
|
@@ -315,6 +317,8 @@ export const ko: Record<string, string> = {
|
|
|
315
317
|
jobs: '백그라운드 작업',
|
|
316
318
|
jobsCount: '백그라운드 작업 {count}개',
|
|
317
319
|
jobsCountRunning: '백그라운드 작업 {count}개 · {running} 실행 중',
|
|
320
|
+
jobsShowHistory: '이전 백그라운드 작업 {count}개 표시',
|
|
321
|
+
jobsHideHistory: '이전 백그라운드 작업 접기',
|
|
318
322
|
jobStatusRunning: '실행 중',
|
|
319
323
|
jobStatusStopping: '종료 중',
|
|
320
324
|
jobStatusCompleted: '완료됨',
|
package/src/client/locales-nl.ts
CHANGED
|
@@ -294,6 +294,8 @@ export const nl: Record<string, string> = {
|
|
|
294
294
|
subagentDiagUnsupported: 'Niet ondersteund',
|
|
295
295
|
subagentDiagUnavailable: 'Niet beschikbaar',
|
|
296
296
|
subagentThinking: 'Nadenken…',
|
|
297
|
+
subagentShowHistory: '{count} eerdere subagents weergeven',
|
|
298
|
+
subagentHideHistory: 'Eerdere subagents samenvouwen',
|
|
297
299
|
sideChat: 'Side Chat (bèta)',
|
|
298
300
|
sideChatNew: 'Nieuwe thread',
|
|
299
301
|
sideChatUntitled: 'Nieuwe thread',
|
|
@@ -321,6 +323,8 @@ export const nl: Record<string, string> = {
|
|
|
321
323
|
jobs: 'Achtergrondtaken',
|
|
322
324
|
jobsCount: '{count} achtergrondtaken',
|
|
323
325
|
jobsCountRunning: '{count} achtergrondtaken · {running} actief',
|
|
326
|
+
jobsShowHistory: '{count} eerdere achtergrondtaken weergeven',
|
|
327
|
+
jobsHideHistory: 'Eerdere achtergrondtaken samenvouwen',
|
|
324
328
|
jobStatusRunning: 'Actief',
|
|
325
329
|
jobStatusStopping: 'Stoppen',
|
|
326
330
|
jobStatusCompleted: 'Voltooid',
|
package/src/client/locales-pl.ts
CHANGED
|
@@ -298,6 +298,8 @@ export const pl: Record<string, string> = {
|
|
|
298
298
|
subagentDiagUnsupported: 'Nieobsługiwany',
|
|
299
299
|
subagentDiagUnavailable: 'Niedostępny',
|
|
300
300
|
subagentThinking: 'Myśli…',
|
|
301
|
+
subagentShowHistory: 'Pokaż {count} starszych podagentów',
|
|
302
|
+
subagentHideHistory: 'Zwiń starszych podagentów',
|
|
301
303
|
sideChat: 'Czat boczny (beta)',
|
|
302
304
|
sideChatNew: 'Nowy wątek',
|
|
303
305
|
sideChatUntitled: 'Nowy wątek',
|
|
@@ -325,6 +327,8 @@ export const pl: Record<string, string> = {
|
|
|
325
327
|
jobs: 'Zadania w tle',
|
|
326
328
|
jobsCount: '{count} zadań w tle',
|
|
327
329
|
jobsCountRunning: '{count} zadań w tle · {running} działa',
|
|
330
|
+
jobsShowHistory: 'Pokaż {count} starszych zadań w tle',
|
|
331
|
+
jobsHideHistory: 'Zwiń starsze zadania w tle',
|
|
328
332
|
jobStatusRunning: 'Działa',
|
|
329
333
|
jobStatusStopping: 'Zatrzymywanie',
|
|
330
334
|
jobStatusCompleted: 'Ukończono',
|
package/src/client/locales-pt.ts
CHANGED
|
@@ -279,6 +279,8 @@ export const pt: Record<string, string> = {
|
|
|
279
279
|
subagentDiagUnsupported: 'Não suportado',
|
|
280
280
|
subagentDiagUnavailable: 'Indisponível',
|
|
281
281
|
subagentThinking: 'Pensando…',
|
|
282
|
+
subagentShowHistory: 'Mostrar {count} subagentes anteriores',
|
|
283
|
+
subagentHideHistory: 'Recolher subagentes anteriores',
|
|
282
284
|
sideChat: 'Chat lateral (beta)',
|
|
283
285
|
sideChatNew: 'Novo tópico',
|
|
284
286
|
sideChatUntitled: 'Novo tópico',
|
|
@@ -306,6 +308,8 @@ export const pt: Record<string, string> = {
|
|
|
306
308
|
jobs: 'Tarefas em segundo plano',
|
|
307
309
|
jobsCount: '{count} tarefas em segundo plano',
|
|
308
310
|
jobsCountRunning: '{count} tarefas em segundo plano · {running} executando',
|
|
311
|
+
jobsShowHistory: 'Mostrar {count} tarefas em segundo plano anteriores',
|
|
312
|
+
jobsHideHistory: 'Recolher tarefas em segundo plano anteriores',
|
|
309
313
|
jobStatusRunning: 'Executando',
|
|
310
314
|
jobStatusStopping: 'Parando',
|
|
311
315
|
jobStatusCompleted: 'Concluída',
|
package/src/client/locales-ru.ts
CHANGED
|
@@ -294,6 +294,8 @@ export const ru: Record<string, string> = {
|
|
|
294
294
|
subagentDiagUnsupported: 'Не поддерживается',
|
|
295
295
|
subagentDiagUnavailable: 'Недоступен',
|
|
296
296
|
subagentThinking: 'Размышляет…',
|
|
297
|
+
subagentShowHistory: 'Показать {count} более ранних субагентов',
|
|
298
|
+
subagentHideHistory: 'Свернуть более ранних субагентов',
|
|
297
299
|
sideChat: 'Боковой чат (бета)',
|
|
298
300
|
sideChatNew: 'Новый поток',
|
|
299
301
|
sideChatUntitled: 'Новый поток',
|
|
@@ -321,6 +323,8 @@ export const ru: Record<string, string> = {
|
|
|
321
323
|
jobs: 'Фоновые задачи',
|
|
322
324
|
jobsCount: '{count} фоновых задач',
|
|
323
325
|
jobsCountRunning: '{count} фоновых задач · {running} выполняется',
|
|
326
|
+
jobsShowHistory: 'Показать {count} более ранних фоновых задач',
|
|
327
|
+
jobsHideHistory: 'Свернуть более ранние фоновые задачи',
|
|
324
328
|
jobStatusRunning: 'Выполняется',
|
|
325
329
|
jobStatusStopping: 'Останавливается',
|
|
326
330
|
jobStatusCompleted: 'Завершено',
|
package/src/client/locales-sv.ts
CHANGED
|
@@ -279,6 +279,8 @@ export const sv: Record<string, string> = {
|
|
|
279
279
|
subagentDiagUnsupported: 'Stöds ej',
|
|
280
280
|
subagentDiagUnavailable: 'Otillgänglig',
|
|
281
281
|
subagentThinking: 'Tänker…',
|
|
282
|
+
subagentShowHistory: 'Visa {count} tidigare subagenter',
|
|
283
|
+
subagentHideHistory: 'Fäll ihop tidigare subagenter',
|
|
282
284
|
sideChat: 'Sidochatt (beta)',
|
|
283
285
|
sideChatNew: 'Ny tråd',
|
|
284
286
|
sideChatUntitled: 'Ny tråd',
|
|
@@ -306,6 +308,8 @@ export const sv: Record<string, string> = {
|
|
|
306
308
|
jobs: 'Bakgrundsjobb',
|
|
307
309
|
jobsCount: '{count} bakgrundsjobb',
|
|
308
310
|
jobsCountRunning: '{count} bakgrundsjobb · {running} kör',
|
|
311
|
+
jobsShowHistory: 'Visa {count} tidigare bakgrundsjobb',
|
|
312
|
+
jobsHideHistory: 'Fäll ihop tidigare bakgrundsjobb',
|
|
309
313
|
jobStatusRunning: 'Kör',
|
|
310
314
|
jobStatusStopping: 'Stoppar',
|
|
311
315
|
jobStatusCompleted: 'Klar',
|
package/src/client/locales-th.ts
CHANGED
|
@@ -296,6 +296,8 @@ export const th: Record<string, string> = {
|
|
|
296
296
|
subagentDiagUnsupported: 'ไม่รองรับ',
|
|
297
297
|
subagentDiagUnavailable: 'ไม่พร้อมใช้งาน',
|
|
298
298
|
subagentThinking: 'กำลังคิด…',
|
|
299
|
+
subagentShowHistory: 'แสดงตัวแทนย่อยก่อนหน้า {count} รายการ',
|
|
300
|
+
subagentHideHistory: 'ย่อตัวแทนย่อยก่อนหน้า',
|
|
299
301
|
sideChat: 'แชทด้านข้าง (เบต้า)',
|
|
300
302
|
sideChatNew: 'เธรดใหม่',
|
|
301
303
|
sideChatUntitled: 'เธรดใหม่',
|
|
@@ -323,6 +325,8 @@ export const th: Record<string, string> = {
|
|
|
323
325
|
jobs: 'งานเบื้องหลัง',
|
|
324
326
|
jobsCount: '{count} งานเบื้องหลัง',
|
|
325
327
|
jobsCountRunning: '{count} งานเบื้องหลัง · {running} กำลังทำงาน',
|
|
328
|
+
jobsShowHistory: 'แสดงงานเบื้องหลังก่อนหน้า {count} รายการ',
|
|
329
|
+
jobsHideHistory: 'ย่องานเบื้องหลังก่อนหน้า',
|
|
326
330
|
jobStatusRunning: 'กำลังทำงาน',
|
|
327
331
|
jobStatusStopping: 'กำลังหยุด',
|
|
328
332
|
jobStatusCompleted: 'เสร็จสิ้น',
|
package/src/client/locales-tr.ts
CHANGED
|
@@ -296,6 +296,8 @@ export const tr: Record<string, string> = {
|
|
|
296
296
|
subagentDiagUnsupported: 'Desteklenmiyor',
|
|
297
297
|
subagentDiagUnavailable: 'Kullanılamıyor',
|
|
298
298
|
subagentThinking: 'Düşünüyor…',
|
|
299
|
+
subagentShowHistory: 'Önceki {count} alt aracıyı göster',
|
|
300
|
+
subagentHideHistory: 'Önceki alt araçları daralt',
|
|
299
301
|
sideChat: 'Yan sohbet (beta)',
|
|
300
302
|
sideChatNew: 'Yeni iş parçacığı',
|
|
301
303
|
sideChatUntitled: 'Yeni iş parçacığı',
|
|
@@ -323,6 +325,8 @@ export const tr: Record<string, string> = {
|
|
|
323
325
|
jobs: 'Arka plan işleri',
|
|
324
326
|
jobsCount: '{count} arka plan işi',
|
|
325
327
|
jobsCountRunning: '{count} arka plan işi · {running} çalışıyor',
|
|
328
|
+
jobsShowHistory: 'Önceki {count} arka plan işini göster',
|
|
329
|
+
jobsHideHistory: 'Önceki arka plan işlerini daralt',
|
|
326
330
|
jobStatusRunning: 'Çalışıyor',
|
|
327
331
|
jobStatusStopping: 'Durduruluyor',
|
|
328
332
|
jobStatusCompleted: 'Tamamlandı',
|
package/src/client/locales-vi.ts
CHANGED
|
@@ -296,6 +296,8 @@ export const vi: Record<string, string> = {
|
|
|
296
296
|
subagentDiagUnsupported: 'Không hỗ trợ',
|
|
297
297
|
subagentDiagUnavailable: 'Không khả dụng',
|
|
298
298
|
subagentThinking: 'Đang suy nghĩ…',
|
|
299
|
+
subagentShowHistory: 'Hiện {count} tác nhân con cũ hơn',
|
|
300
|
+
subagentHideHistory: 'Thu gọn tác nhân con cũ hơn',
|
|
299
301
|
sideChat: 'Chat bên (beta)',
|
|
300
302
|
sideChatNew: 'Luồng mới',
|
|
301
303
|
sideChatUntitled: 'Luồng mới',
|
|
@@ -323,6 +325,8 @@ export const vi: Record<string, string> = {
|
|
|
323
325
|
jobs: 'Tác vụ nền',
|
|
324
326
|
jobsCount: '{count} tác vụ nền',
|
|
325
327
|
jobsCountRunning: '{count} tác vụ nền · {running} đang chạy',
|
|
328
|
+
jobsShowHistory: 'Hiện {count} tác vụ nền cũ hơn',
|
|
329
|
+
jobsHideHistory: 'Thu gọn tác vụ nền cũ hơn',
|
|
326
330
|
jobStatusRunning: 'Đang chạy',
|
|
327
331
|
jobStatusStopping: 'Đang dừng',
|
|
328
332
|
jobStatusCompleted: 'Đã hoàn thành',
|
|
@@ -311,6 +311,8 @@ export const zhHK: Record<string, string> = {
|
|
|
311
311
|
subagentDiagUnsupported: '不支援的條目',
|
|
312
312
|
subagentDiagUnavailable: '不可用',
|
|
313
313
|
subagentThinking: '思考中…',
|
|
314
|
+
subagentShowHistory: '展開較早的 {count} 個子代理',
|
|
315
|
+
subagentHideHistory: '收起較早的子代理',
|
|
314
316
|
sideChat: '側邊對話(beta)',
|
|
315
317
|
sideChatNew: '新增對話',
|
|
316
318
|
sideChatUntitled: '新對話',
|
|
@@ -338,6 +340,8 @@ export const zhHK: Record<string, string> = {
|
|
|
338
340
|
jobs: '背景任務',
|
|
339
341
|
jobsCount: '{count} 個背景任務',
|
|
340
342
|
jobsCountRunning: '{count} 個背景任務 · {running} 執行中',
|
|
343
|
+
jobsShowHistory: '展開較早的 {count} 個背景任務',
|
|
344
|
+
jobsHideHistory: '收起較早的背景任務',
|
|
341
345
|
jobStatusRunning: '執行中',
|
|
342
346
|
jobStatusStopping: '終止中',
|
|
343
347
|
jobStatusCompleted: '已完成',
|
|
@@ -311,6 +311,8 @@ export const zhMO: Record<string, string> = {
|
|
|
311
311
|
subagentDiagUnsupported: '不支援的條目',
|
|
312
312
|
subagentDiagUnavailable: '不可用',
|
|
313
313
|
subagentThinking: '思考中…',
|
|
314
|
+
subagentShowHistory: '展開較早的 {count} 個子代理',
|
|
315
|
+
subagentHideHistory: '收起較早的子代理',
|
|
314
316
|
sideChat: '側邊對話(beta)',
|
|
315
317
|
sideChatNew: '新增對話',
|
|
316
318
|
sideChatUntitled: '新對話',
|
|
@@ -338,6 +340,8 @@ export const zhMO: Record<string, string> = {
|
|
|
338
340
|
jobs: '背景任務',
|
|
339
341
|
jobsCount: '{count} 個背景任務',
|
|
340
342
|
jobsCountRunning: '{count} 個背景任務 · {running} 執行中',
|
|
343
|
+
jobsShowHistory: '展開較早的 {count} 個背景任務',
|
|
344
|
+
jobsHideHistory: '收起較早的背景任務',
|
|
341
345
|
jobStatusRunning: '執行中',
|
|
342
346
|
jobStatusStopping: '終止中',
|
|
343
347
|
jobStatusCompleted: '已完成',
|
|
@@ -311,6 +311,8 @@ export const zhTW: Record<string, string> = {
|
|
|
311
311
|
subagentDiagUnsupported: '不支援的條目',
|
|
312
312
|
subagentDiagUnavailable: '不可用',
|
|
313
313
|
subagentThinking: '思考中…',
|
|
314
|
+
subagentShowHistory: '展開較早的 {count} 個子代理',
|
|
315
|
+
subagentHideHistory: '收起較早的子代理',
|
|
314
316
|
sideChat: '側邊對話(beta)',
|
|
315
317
|
sideChatNew: '新增對話',
|
|
316
318
|
sideChatUntitled: '新對話',
|
|
@@ -338,6 +340,8 @@ export const zhTW: Record<string, string> = {
|
|
|
338
340
|
jobs: '背景任務',
|
|
339
341
|
jobsCount: '{count} 個背景任務',
|
|
340
342
|
jobsCountRunning: '{count} 個背景任務 · {running} 執行中',
|
|
343
|
+
jobsShowHistory: '展開較早的 {count} 個背景任務',
|
|
344
|
+
jobsHideHistory: '收起較早的背景任務',
|
|
341
345
|
jobStatusRunning: '執行中',
|
|
342
346
|
jobStatusStopping: '終止中',
|
|
343
347
|
jobStatusCompleted: '已完成',
|
package/src/client/locales.ts
CHANGED
|
@@ -303,6 +303,8 @@ export const zh = {
|
|
|
303
303
|
subagentDiagUnsupported: '不支持的条目',
|
|
304
304
|
subagentDiagUnavailable: '不可用',
|
|
305
305
|
subagentThinking: '思考中…',
|
|
306
|
+
subagentShowHistory: '展开更早的 {count} 个子代理',
|
|
307
|
+
subagentHideHistory: '收起更早的子代理',
|
|
306
308
|
sideChat: '侧边对话(beta)',
|
|
307
309
|
sideChatNew: '新建对话',
|
|
308
310
|
sideChatUntitled: '新对话',
|
|
@@ -330,6 +332,8 @@ export const zh = {
|
|
|
330
332
|
jobs: '后台任务',
|
|
331
333
|
jobsCount: '{count} 个后台任务',
|
|
332
334
|
jobsCountRunning: '{count} 个后台任务 · {running} 运行中',
|
|
335
|
+
jobsShowHistory: '展开更早的 {count} 个后台任务',
|
|
336
|
+
jobsHideHistory: '收起更早的后台任务',
|
|
333
337
|
jobStatusRunning: '运行中',
|
|
334
338
|
jobStatusStopping: '终止中',
|
|
335
339
|
jobStatusCompleted: '已完成',
|
|
@@ -655,6 +659,8 @@ export const en: Record<keyof typeof zh, string> = {
|
|
|
655
659
|
subagentDiagUnsupported: 'Unsupported',
|
|
656
660
|
subagentDiagUnavailable: 'Unavailable',
|
|
657
661
|
subagentThinking: 'Thinking…',
|
|
662
|
+
subagentShowHistory: 'Show {count} earlier subagents',
|
|
663
|
+
subagentHideHistory: 'Collapse earlier subagents',
|
|
658
664
|
sideChat: 'Side Chat (beta)',
|
|
659
665
|
sideChatNew: 'New thread',
|
|
660
666
|
sideChatUntitled: 'New thread',
|
|
@@ -682,6 +688,8 @@ export const en: Record<keyof typeof zh, string> = {
|
|
|
682
688
|
jobs: 'Background jobs',
|
|
683
689
|
jobsCount: '{count} background jobs',
|
|
684
690
|
jobsCountRunning: '{count} background jobs · {running} running',
|
|
691
|
+
jobsShowHistory: 'Show {count} earlier jobs',
|
|
692
|
+
jobsHideHistory: 'Collapse earlier jobs',
|
|
685
693
|
jobStatusRunning: 'Running',
|
|
686
694
|
jobStatusStopping: 'Stopping',
|
|
687
695
|
jobStatusCompleted: 'Completed',
|