dsh-group-status 0.2.2 → 0.4.0
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 +65 -0
- package/README.en.md +42 -24
- package/README.md +45 -25
- package/lib/client.js +1781 -483
- package/lib/client.js.map +1 -1
- package/lib/index.js +22 -9
- package/lib/types/client/BadgeSettingsCard.d.ts +24 -0
- package/lib/types/client/BadgeSettingsCard.d.ts.map +1 -0
- package/lib/types/client/BadgeSettingsCard.js +73 -0
- package/lib/types/client/BadgeSettingsCard.js.map +1 -0
- package/lib/types/client/badge-field.d.ts +44 -0
- package/lib/types/client/badge-field.d.ts.map +1 -0
- package/lib/types/client/badge-field.js +77 -0
- package/lib/types/client/badge-field.js.map +1 -0
- package/lib/types/client/badge-labels.d.ts +92 -0
- package/lib/types/client/badge-labels.d.ts.map +1 -0
- package/lib/types/client/badge-labels.js +150 -0
- package/lib/types/client/badge-labels.js.map +1 -0
- package/lib/types/client/badge-settings.d.ts +31 -3
- package/lib/types/client/badge-settings.d.ts.map +1 -1
- package/lib/types/client/badge-settings.js +50 -6
- package/lib/types/client/badge-settings.js.map +1 -1
- package/lib/types/client/contract/slots.d.ts +39 -21
- package/lib/types/client/contract/slots.d.ts.map +1 -1
- package/lib/types/client/contract/slots.js.map +1 -1
- package/lib/types/client/contract/toast.d.ts +67 -0
- package/lib/types/client/contract/toast.d.ts.map +1 -0
- package/lib/types/client/contract/toast.js +2 -0
- package/lib/types/client/contract/toast.js.map +1 -0
- package/lib/types/client/facet-store.d.ts +46 -0
- package/lib/types/client/facet-store.d.ts.map +1 -0
- package/lib/types/client/facet-store.js +123 -0
- package/lib/types/client/facet-store.js.map +1 -0
- package/lib/types/client/facet-visibility.d.ts +17 -0
- package/lib/types/client/facet-visibility.d.ts.map +1 -0
- package/lib/types/client/facet-visibility.js +18 -0
- package/lib/types/client/facet-visibility.js.map +1 -0
- package/lib/types/client/facets.d.ts +265 -0
- package/lib/types/client/facets.d.ts.map +1 -0
- package/lib/types/client/facets.js +209 -0
- package/lib/types/client/facets.js.map +1 -0
- package/lib/types/client/group-status.d.ts +97 -45
- package/lib/types/client/group-status.d.ts.map +1 -1
- package/lib/types/client/group-status.js +148 -85
- package/lib/types/client/group-status.js.map +1 -1
- package/lib/types/client/index.d.ts +31 -3
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +107 -14
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/locales.d.ts +60 -4
- package/lib/types/client/locales.d.ts.map +1 -1
- package/lib/types/client/locales.js +60 -4
- package/lib/types/client/locales.js.map +1 -1
- package/lib/types/client/navigation.d.ts +45 -12
- package/lib/types/client/navigation.d.ts.map +1 -1
- package/lib/types/client/navigation.js +102 -26
- package/lib/types/client/navigation.js.map +1 -1
- package/lib/types/client/rows/GroupBadge.d.ts +19 -25
- package/lib/types/client/rows/GroupBadge.d.ts.map +1 -1
- package/lib/types/client/rows/GroupBadge.js +45 -106
- package/lib/types/client/rows/GroupBadge.js.map +1 -1
- package/lib/types/client/rows/Rows.d.ts +7 -3
- package/lib/types/client/rows/Rows.d.ts.map +1 -1
- package/lib/types/client/rows/Rows.js +9 -9
- package/lib/types/client/rows/Rows.js.map +1 -1
- package/lib/types/client/rows/WorkspaceBrowser.d.ts +1 -1
- package/lib/types/client/rows/WorkspaceBrowser.d.ts.map +1 -1
- package/lib/types/client/rows/WorkspaceBrowser.js +75 -71
- package/lib/types/client/rows/WorkspaceBrowser.js.map +1 -1
- package/lib/types/client/session-actions/ArchiveSession.js +1 -1
- package/lib/types/client/session-actions/ArchiveSession.js.map +1 -1
- package/lib/types/client/session-actions/ForkSession.d.ts +5 -4
- package/lib/types/client/session-actions/ForkSession.d.ts.map +1 -1
- package/lib/types/client/session-actions/ForkSession.js +7 -4
- package/lib/types/client/session-actions/ForkSession.js.map +1 -1
- package/lib/types/client/session-actions/PinSession.js +1 -1
- package/lib/types/client/session-actions/PinSession.js.map +1 -1
- package/lib/types/client/session-actions/RowActionToast.d.ts +5 -8
- package/lib/types/client/session-actions/RowActionToast.d.ts.map +1 -1
- package/lib/types/client/session-actions/RowActionToast.js +10 -49
- package/lib/types/client/session-actions/RowActionToast.js.map +1 -1
- package/lib/types/client/session-actions/SessionId.d.ts +8 -0
- package/lib/types/client/session-actions/SessionId.d.ts.map +1 -0
- package/lib/types/client/session-actions/SessionId.js +16 -0
- package/lib/types/client/session-actions/SessionId.js.map +1 -0
- package/lib/types/client/session-watermarks.d.ts +30 -0
- package/lib/types/client/session-watermarks.d.ts.map +1 -0
- package/lib/types/client/session-watermarks.js +54 -0
- package/lib/types/client/session-watermarks.js.map +1 -0
- package/lib/types/client/shortcuts.d.ts +2 -7
- package/lib/types/client/shortcuts.d.ts.map +1 -1
- package/lib/types/client/shortcuts.js +7 -11
- package/lib/types/client/shortcuts.js.map +1 -1
- package/lib/types/client/toast/Toast.d.ts +41 -0
- package/lib/types/client/toast/Toast.d.ts.map +1 -0
- package/lib/types/client/toast/Toast.js +44 -0
- package/lib/types/client/toast/Toast.js.map +1 -0
- package/lib/types/client/toast/register.d.ts +11 -0
- package/lib/types/client/toast/register.d.ts.map +1 -0
- package/lib/types/client/toast/register.js +162 -0
- package/lib/types/client/toast/register.js.map +1 -0
- package/lib/types/client/tree.d.ts +2 -5
- package/lib/types/client/tree.d.ts.map +1 -1
- package/lib/types/client/tree.js +0 -5
- package/lib/types/client/tree.js.map +1 -1
- package/lib/types/index.d.ts +31 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +13 -1
- package/lib/types/index.js.map +1 -1
- package/package.json +33 -34
|
@@ -3,9 +3,15 @@ import { Service, type Context } from '@deepseek-ai/cordis';
|
|
|
3
3
|
import type { ClientRemote, DirectoryListing, RemoteFailure } from '@deepseek-ai/dsh-api-remotes/client';
|
|
4
4
|
import type { ISessions, SessionTarget } from '@deepseek-ai/dsh-api-session-controller/client';
|
|
5
5
|
import type { IWorkspaces, WorkspaceId } from '@deepseek-ai/dsh-api-workspace-controller/client';
|
|
6
|
+
import type { DraftInitializationOptions } from '@deepseek-ai/dsh-client-ui-conversation/client';
|
|
6
7
|
import type { SessionId } from '@deepseek-ai/dsh-session/types';
|
|
7
8
|
import type { RowToast } from './contract/slots.ts';
|
|
8
9
|
import type { WorkspaceViewStoreActions } from './stores.ts';
|
|
10
|
+
/** Content preparation and Agent preset for the Session a Workspace flow opens. */
|
|
11
|
+
export interface StartSessionOptions extends DraftInitializationOptions {
|
|
12
|
+
/** Agent preset the Session runs; the Host default when omitted. */
|
|
13
|
+
readonly agentPreset?: string;
|
|
14
|
+
}
|
|
9
15
|
/** Workspace archive and directory operations consumed by Client UI domains. */
|
|
10
16
|
export interface UiWorkspace {
|
|
11
17
|
/**
|
|
@@ -18,30 +24,37 @@ export interface UiWorkspace {
|
|
|
18
24
|
* @param workspaceId - target Workspace.
|
|
19
25
|
* @param beforeOpen - optional synchronous preparation for the selected Session,
|
|
20
26
|
* skipped after supersession; a throw aborts the open and releases the retained reference.
|
|
27
|
+
* @param options - choices for the Session the connection creates or reuses.
|
|
21
28
|
* @returns completion; a superseded request may create a Session but does not open it.
|
|
22
29
|
* @throws on failure; a refused creation is also shown through the Workspace
|
|
23
30
|
* notice unless a later navigation or disposal superseded the request.
|
|
24
31
|
*/
|
|
25
|
-
openWorkspace(workspaceId: WorkspaceId, beforeOpen?: (sessionId: SessionId) => void): Promise<void>;
|
|
32
|
+
openWorkspace(workspaceId: WorkspaceId, beforeOpen?: (sessionId: SessionId) => void, options?: Pick<StartSessionOptions, 'agentPreset'>): Promise<void>;
|
|
26
33
|
/**
|
|
27
34
|
* Fork a Session without changing the current selection.
|
|
28
35
|
* @param sessionId - source Session.
|
|
29
36
|
* @param onCreated - observer before the optional child-title update.
|
|
37
|
+
* @param options - optional permission to start source migration; omission preserves the Host default.
|
|
30
38
|
* @returns the child SessionId after creation and inherited-title increment.
|
|
31
39
|
*/
|
|
32
|
-
forkSession(sessionId: SessionId, onCreated?: (childId: SessionId) => void): Promise<SessionId>;
|
|
40
|
+
forkSession(sessionId: SessionId, onCreated?: (childId: SessionId) => void, options?: Pick<Parameters<ISessions['fork']>[0], 'allowMigration'>): Promise<SessionId>;
|
|
33
41
|
/**
|
|
34
|
-
* Resolve the
|
|
42
|
+
* Resolve the Session for a new conversation in a Workspace: the Host reuses
|
|
43
|
+
* the first listed blank member while it is reusable and otherwise creates one,
|
|
44
|
+
* under the requested preset or the Host default.
|
|
35
45
|
* @param workspaceId - target Workspace.
|
|
46
|
+
* @param options - choices for the created or reused Session.
|
|
36
47
|
* @returns a Session already addressable through the Session Controller.
|
|
37
48
|
*/
|
|
38
|
-
connectWorkspace(workspaceId: WorkspaceId): Promise<SessionId>;
|
|
49
|
+
connectWorkspace(workspaceId: WorkspaceId, options?: Pick<StartSessionOptions, 'agentPreset'>): Promise<SessionId>;
|
|
39
50
|
/**
|
|
40
|
-
*
|
|
51
|
+
* Create a fresh Session, or reuse a blank when preparing an explicit draft. A creation the Host
|
|
41
52
|
* refuses is shown through the Workspace notice and leaves the selection as it was.
|
|
42
53
|
* @param workspaceId - explicit target; absent inherits the current or most recent Workspace.
|
|
54
|
+
* @param options - initial content and the reused blank's preset; existing text or attachments
|
|
55
|
+
* are preserved unless clearPreviousDraft is true.
|
|
43
56
|
*/
|
|
44
|
-
startSession(workspaceId?: WorkspaceId): void;
|
|
57
|
+
startSession(workspaceId?: WorkspaceId, options?: StartSessionOptions): void;
|
|
45
58
|
/**
|
|
46
59
|
* Archive a Session and clear it when it is the current selection.
|
|
47
60
|
* @param sessionId - Session to archive.
|
|
@@ -121,13 +134,33 @@ declare class UiWorkspaceService extends Service implements UiWorkspace {
|
|
|
121
134
|
* @param notify - show one notice through the Workspace notice channel.
|
|
122
135
|
*/
|
|
123
136
|
constructor(ctx: Context, directoryPicker: ClientRemote['directoryPicker'], workspaces: IWorkspaces, sessions: ISessions, view: Pick<WorkspaceViewStoreActions, 'pinSessionOrder'>, notify: (toast: RowToast) => void);
|
|
124
|
-
connectWorkspace(workspaceId: WorkspaceId): Promise<SessionId>;
|
|
125
|
-
|
|
126
|
-
|
|
137
|
+
connectWorkspace(workspaceId: WorkspaceId, options?: Pick<StartSessionOptions, 'agentPreset'>): Promise<SessionId>;
|
|
138
|
+
/**
|
|
139
|
+
* @param reuse - preset for the reused or created blank; absent creates a fresh Session.
|
|
140
|
+
*/
|
|
141
|
+
private connectBlank;
|
|
142
|
+
private createInWorkspace;
|
|
143
|
+
/**
|
|
144
|
+
* Create through the Host. A named blank the Host declined may still read as
|
|
145
|
+
* blank from stale cached list metadata, which hides it from the Session tree;
|
|
146
|
+
* its projections are reloaded so the row reflects its log.
|
|
147
|
+
*/
|
|
148
|
+
private createNamed;
|
|
149
|
+
/**
|
|
150
|
+
* Reopen a saved blank Session under the preset its log recorded, or under
|
|
151
|
+
* the Host default once that preset no longer activates. Listed values are
|
|
152
|
+
* cached hints that can lag the log after an unclean Host exit, so the
|
|
153
|
+
* Session's projections are reloaded before the preset is read; a Session
|
|
154
|
+
* that still awaits a format migration reloads only those cached hints.
|
|
155
|
+
*/
|
|
156
|
+
private restoreBlank;
|
|
127
157
|
openSession(target: SessionTarget): void;
|
|
128
|
-
openWorkspace(workspaceId: WorkspaceId, beforeOpen?: (sessionId: SessionId) => void): Promise<void>;
|
|
129
|
-
|
|
130
|
-
|
|
158
|
+
openWorkspace(workspaceId: WorkspaceId, beforeOpen?: (sessionId: SessionId) => void, options?: Pick<StartSessionOptions, 'agentPreset'>): Promise<void>;
|
|
159
|
+
private openWorkspaceSession;
|
|
160
|
+
forkSession(sessionId: SessionId, onCreated?: (childId: SessionId) => void, options?: Pick<Parameters<ISessions['fork']>[0], 'allowMigration'>): Promise<SessionId>;
|
|
161
|
+
startSession(workspaceId?: WorkspaceId, options?: StartSessionOptions): void;
|
|
162
|
+
private prepareDraft;
|
|
163
|
+
private draftPreparationFailed;
|
|
131
164
|
archiveSession(sessionId: SessionId, options?: {
|
|
132
165
|
readonly stopActivity?: boolean;
|
|
133
166
|
}): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/client/navigation.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAA;AACxG,OAAO,KAAK,EACV,SAAS,
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/client/navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,54 +49,97 @@ class UiWorkspaceService extends Service {
|
|
|
49
49
|
};
|
|
50
50
|
}, 'ui-workspace: Workspace navigation policy');
|
|
51
51
|
}
|
|
52
|
-
|
|
52
|
+
connectWorkspace(workspaceId, options = {}) {
|
|
53
|
+
return this.connectBlank(workspaceId, options);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @param reuse - preset for the reused or created blank; absent creates a fresh Session.
|
|
57
|
+
*/
|
|
58
|
+
async connectBlank(workspaceId, reuse) {
|
|
53
59
|
const workspace = this.workspaces.list.getSnapshot().items
|
|
54
60
|
.find(item => item.workspaceId === workspaceId);
|
|
55
61
|
if (workspace === undefined) {
|
|
56
62
|
throw new Error(`uiWorkspace.connectWorkspace: unknown workspace ${workspaceId}`);
|
|
57
63
|
}
|
|
64
|
+
if (reuse === undefined)
|
|
65
|
+
return this.sessions.create({ workspaceId });
|
|
58
66
|
const inflight = this.connecting.get(workspaceId);
|
|
59
|
-
if (inflight !== undefined)
|
|
60
|
-
return inflight;
|
|
61
|
-
const attempt = this.
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
if (inflight !== undefined && inflight.agentPreset === reuse.agentPreset)
|
|
68
|
+
return inflight.attempt;
|
|
69
|
+
const attempt = this.createInWorkspace(workspace, reuse).finally(() => {
|
|
70
|
+
if (this.connecting.get(workspaceId)?.attempt === attempt)
|
|
71
|
+
this.connecting.delete(workspaceId);
|
|
72
|
+
});
|
|
73
|
+
this.connecting.set(workspaceId, { agentPreset: reuse.agentPreset, attempt });
|
|
64
74
|
return attempt;
|
|
65
75
|
}
|
|
66
|
-
|
|
76
|
+
createInWorkspace(workspace, options) {
|
|
67
77
|
const archived = this.workspaces.list.getSnapshot().archivedSessionIds;
|
|
68
78
|
const sessions = this.sessions.list.getSnapshot();
|
|
69
|
-
|
|
79
|
+
const blank = sessions.ids.find((id) => {
|
|
70
80
|
const summary = sessions.byId[id];
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
81
|
+
return summary !== undefined && summary.blank && summary.cwd === workspace.path
|
|
82
|
+
&& workspace.sessionIds.includes(id) && !archived.includes(id);
|
|
83
|
+
});
|
|
84
|
+
return this.createNamed({
|
|
85
|
+
workspaceId: workspace.workspaceId,
|
|
86
|
+
...(blank === undefined ? {} : { sessionId: blank }),
|
|
87
|
+
...(options.agentPreset === undefined ? {} : { agentPreset: options.agentPreset }),
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Create through the Host. A named blank the Host declined may still read as
|
|
92
|
+
* blank from stale cached list metadata, which hides it from the Session tree;
|
|
93
|
+
* its projections are reloaded so the row reflects its log.
|
|
94
|
+
*/
|
|
95
|
+
async createNamed(request) {
|
|
96
|
+
const sessionId = await this.sessions.create(request);
|
|
97
|
+
const named = request.sessionId;
|
|
98
|
+
if (named !== undefined && named !== sessionId) {
|
|
99
|
+
this.sessions.refreshProjections(named).catch((reason) => {
|
|
100
|
+
console.warn('declined blank Session projection reload failed:', reason);
|
|
101
|
+
});
|
|
75
102
|
}
|
|
76
|
-
return
|
|
103
|
+
return sessionId;
|
|
77
104
|
}
|
|
78
|
-
|
|
105
|
+
/**
|
|
106
|
+
* Reopen a saved blank Session under the preset its log recorded, or under
|
|
107
|
+
* the Host default once that preset no longer activates. Listed values are
|
|
108
|
+
* cached hints that can lag the log after an unclean Host exit, so the
|
|
109
|
+
* Session's projections are reloaded before the preset is read; a Session
|
|
110
|
+
* that still awaits a format migration reloads only those cached hints.
|
|
111
|
+
*/
|
|
112
|
+
async restoreBlank(workspaceId, sessionId) {
|
|
113
|
+
await this.sessions.refreshProjections(sessionId);
|
|
114
|
+
const recorded = this.sessions.list.getSnapshot().byId[sessionId]?.projectionValues?.agentPreset;
|
|
115
|
+
const request = { workspaceId, sessionId };
|
|
116
|
+
if (typeof recorded !== 'string')
|
|
117
|
+
return this.createNamed(request);
|
|
79
118
|
try {
|
|
80
|
-
return await this.
|
|
119
|
+
return await this.createNamed({ ...request, agentPreset: recorded });
|
|
81
120
|
}
|
|
82
121
|
catch (error) {
|
|
83
|
-
|
|
122
|
+
const code = sessionCreateErrorOf(error)?.rpcError.code;
|
|
123
|
+
if (code !== 'agent-preset/not-found' && code !== 'agent-preset/invalid')
|
|
84
124
|
throw error;
|
|
85
|
-
return this.
|
|
125
|
+
return this.createNamed(request);
|
|
86
126
|
}
|
|
87
127
|
}
|
|
88
128
|
openSession(target) {
|
|
89
129
|
this.replaceMain(target, this.lifetime.signal, 'reveal');
|
|
90
130
|
}
|
|
91
|
-
|
|
131
|
+
openWorkspace(workspaceId, beforeOpen, options = {}) {
|
|
132
|
+
return this.openWorkspaceSession(workspaceId, beforeOpen, options);
|
|
133
|
+
}
|
|
134
|
+
async openWorkspaceSession(workspaceId, beforeOpen, reuse) {
|
|
92
135
|
const navigation = AbortSignal.any([this.ctx.layout.beginNavigation(), this.lifetime.signal]);
|
|
93
136
|
let sessionId;
|
|
94
137
|
try {
|
|
95
|
-
sessionId = await this.
|
|
138
|
+
sessionId = await this.connectBlank(workspaceId, reuse);
|
|
96
139
|
}
|
|
97
140
|
catch (error) {
|
|
98
|
-
// Reported here, not in
|
|
99
|
-
//
|
|
141
|
+
// Reported here, not in connectBlank: startup restoration calls it directly
|
|
142
|
+
// and stays console-only.
|
|
100
143
|
if (!navigation.aborted)
|
|
101
144
|
this.notify({ kind: 'createFailed', message: creationFailureMessage(error) });
|
|
102
145
|
throw error;
|
|
@@ -105,10 +148,19 @@ class UiWorkspaceService extends Service {
|
|
|
105
148
|
return;
|
|
106
149
|
this.replaceMain(sessionId, navigation, 'reveal', beforeOpen);
|
|
107
150
|
}
|
|
108
|
-
|
|
109
|
-
return this.sessions.fork({
|
|
151
|
+
forkSession(sessionId, onCreated, options) {
|
|
152
|
+
return this.sessions.fork({
|
|
153
|
+
sessionId,
|
|
154
|
+
increaseTitle: true,
|
|
155
|
+
...(onCreated === undefined ? {} : { onCreated }),
|
|
156
|
+
...(options?.allowMigration === undefined ? {} : { allowMigration: options.allowMigration }),
|
|
157
|
+
});
|
|
110
158
|
}
|
|
111
|
-
startSession(workspaceId) {
|
|
159
|
+
startSession(workspaceId, options) {
|
|
160
|
+
const { agentPreset, ...draft } = options ?? {};
|
|
161
|
+
const draftOptions = options === undefined ? undefined : draft;
|
|
162
|
+
const initializeDraft = draftOptions !== undefined
|
|
163
|
+
&& (draftOptions.prompt !== undefined || draftOptions.clearPreviousDraft === true);
|
|
112
164
|
const workspace = this.workspaces.list.getSnapshot();
|
|
113
165
|
const sessions = this.sessions.list.getSnapshot();
|
|
114
166
|
const current = this.mainReference?.sessionId;
|
|
@@ -120,10 +172,34 @@ class UiWorkspaceService extends Service {
|
|
|
120
172
|
: undefined;
|
|
121
173
|
const target = workspaceId ?? currentWorkspaceId ?? recent;
|
|
122
174
|
if (target === undefined) {
|
|
175
|
+
if (initializeDraft) {
|
|
176
|
+
this.notify({
|
|
177
|
+
kind: 'createFailed',
|
|
178
|
+
message: this.ctx.locale.bind('workspace')('draft.workspaceRequired'),
|
|
179
|
+
});
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
123
182
|
this.clearMain();
|
|
124
183
|
return;
|
|
125
184
|
}
|
|
126
|
-
|
|
185
|
+
const open = draftOptions === undefined
|
|
186
|
+
? this.openWorkspaceSession(target, undefined, undefined)
|
|
187
|
+
: this.openWorkspace(target, initializeDraft ? (sessionId) => {
|
|
188
|
+
const binding = this.sessions.binding(sessionId) ?? this.draftPreparationFailed();
|
|
189
|
+
this.prepareDraft(binding, draftOptions);
|
|
190
|
+
} : undefined, agentPreset === undefined ? {} : { agentPreset });
|
|
191
|
+
void open.catch((reason) => { console.warn('new session failed:', reason); });
|
|
192
|
+
}
|
|
193
|
+
prepareDraft(binding, options) {
|
|
194
|
+
const conversation = this.ctx.get('conversation') ?? this.draftPreparationFailed();
|
|
195
|
+
if (conversation.input.requestDraftInitialization(binding, options) === 'blocked') {
|
|
196
|
+
this.draftPreparationFailed();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
draftPreparationFailed() {
|
|
200
|
+
const message = this.ctx.locale.bind('workspace')('draft.initializationFailed');
|
|
201
|
+
this.notify({ kind: 'createFailed', message });
|
|
202
|
+
throw new Error(message);
|
|
127
203
|
}
|
|
128
204
|
async archiveSession(sessionId, options = {}) {
|
|
129
205
|
await this.workspaces.archiveSession(sessionId, options);
|
|
@@ -210,7 +286,7 @@ class UiWorkspaceService extends Service {
|
|
|
210
286
|
let sessionId;
|
|
211
287
|
if (summary !== undefined && workspace !== undefined && summary.cwd === workspace.path
|
|
212
288
|
&& !workspaces.archivedSessionIds.includes(summary.id)) {
|
|
213
|
-
sessionId = await this.
|
|
289
|
+
sessionId = await this.restoreBlank(workspace.workspaceId, summary.id);
|
|
214
290
|
}
|
|
215
291
|
let target = workspace?.workspaceId ?? recentWorkspace(workspaces.items, sessions.byId);
|
|
216
292
|
if (target === undefined && workspaces.items.length === 0 && sessions.ids.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../src/client/navigation.ts"],"names":[],"mappings":"AAAA,qDAAqD;AAErD,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAS3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAQnE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAgGjE,sEAAsE;AACtE,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAIxB;IAHH,IAAI,GAAG,sBAAsB,CAAA;IAE/C,yDAAyD;IACzD,YAAqB,QAAuB;QAC1C,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;QADpD,aAAQ,GAAR,QAAQ,CAAe;IAE5C,CAAC;CACF;AAED,gEAAgE;AAChE,MAAM,kBAAmB,SAAQ,OAAO;IAkBnB;IACA;IACA;IACA;IACA;IArBF,UAAU,GAAG,IAAI,GAAG,EAAmC,CAAA;IACvD,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAA;IAChC,SAAS,GAAG,mBAAmB,CAC9C,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,CAClD,CAAA;IACO,aAAa,CAA8B;IAEnD;;;;;;;OAOG;IACH,YACE,GAAY,EACK,eAAgD,EAChD,UAAuB,EACvB,QAAmB,EACnB,IAAwD,EACxD,MAAiC;QAElD,KAAK,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QANR,oBAAe,GAAf,eAAe,CAAiC;QAChD,eAAU,GAAV,UAAU,CAAa;QACvB,aAAQ,GAAR,QAAQ,CAAW;QACnB,SAAI,GAAJ,IAAI,CAAoD;QACxD,WAAM,GAAN,MAAM,CAA2B;QAGlD,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;YACnC,OAAO,GAAG,EAAE;gBACV,IAAI,EAAE,CAAA;gBACN,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;gBACrB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAA;gBACpC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;gBAC9B,SAAS,EAAE,OAAO,EAAE,CAAA;YACtB,CAAC,CAAA;QACH,CAAC,EAAE,2CAA2C,CAAC,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,WAAwB;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK;aACvD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,CAAA;QACjD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,mDAAmD,WAAW,EAAE,CAAC,CAAA;QACnF,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;QACjD,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAA;QAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC;aAC/C,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACzD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACzC,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,kBAAkB,CAAC,SAAwB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAA;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QACjD,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACjC,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI;mBACxE,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAAE,SAAQ;YAC1E,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;IACrE,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,WAAwB,EAAE,SAAoB;QACrE,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAA;QAC/D,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,IAAI,KAAK,qBAAqB;gBAAE,MAAM,KAAK,CAAA;YACrF,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IAED,WAAW,CAAC,MAAqB;QAC/B,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC1D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAwB,EAAE,UAA2C;QACvF,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAC7F,IAAI,SAAoB,CAAA;QACxB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QACtD,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,yEAAyE;YACzE,mCAAmC;YACnC,IAAI,CAAC,UAAU,CAAC,OAAO;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACtG,MAAM,KAAK,CAAA;QACb,CAAC;QACD,IAAI,UAAU,CAAC,OAAO;YAAE,OAAM;QAC9B,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;IAC/D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAoB,EAAE,SAAwC;QAC9E,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;IAChH,CAAC;IAED,YAAY,CAAC,WAAyB;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAA;QAC7C,MAAM,kBAAkB,GAAG,OAAO,KAAK,SAAS;YAC9C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAA;QAChF,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,KAAK,OAAO,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO;YACtE,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;YACjD,CAAC,CAAC,SAAS,CAAA;QACb,MAAM,MAAM,GAAG,WAAW,IAAI,kBAAkB,IAAI,MAAM,CAAA;QAC1D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,EAAE,CAAA;YAChB,OAAM;QACR,CAAC;QACD,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CACnC,CAAC,MAAe,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA,CAAC,CAAC,CACrE,CAAA;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAoB,EAAE,UAA+C,EAAE;QAC1F,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACxD,IAAI,IAAI,CAAC,aAAa,EAAE,SAAS,KAAK,SAAS;YAAE,IAAI,CAAC,SAAS,EAAE,CAAA;IACnE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAoB;QACzC,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAoB;QACnC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QAC3C,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QAC1F,IAAI,CAAC,IAAI,CAAC,eAAe,CACvB,SAAS,EACT,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,EAClC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC,CAClG,CAAA;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAoB;QACrC,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;QAChD,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QACnF,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAa,EAAE,MAAoB;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC5D,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,IAAY;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACrE,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,MAAM,IAAI,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAEO,eAAe;QACrB,IAAI,OAAO,GAAsC,SAAS,CAAA;QAC1D,MAAM,SAAS,GAAG,GAAS,EAAE;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAM;YACxC,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAAE,OAAM;YACvC,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAM;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;YACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;YACjD,IAAI,SAAS,CAAC,KAAK,KAAK,OAAO,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO;gBAAE,OAAM;YACrE,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,GAAG,MAAM,CAAA;gBAChB,OAAM;YACR,CAAC;YACD,OAAO,GAAG,YAAY,CAAA;YACtB,KAAK,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,CAClD,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,CAAA,CAAC,CAAC,EAC1B,CAAC,MAAe,EAAE,EAAE;gBAClB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAM;gBACxC,OAAO,GAAG,SAAS,CAAA;gBACnB,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAA;YAC7D,CAAC,CACF,CAAA;QACH,CAAC,CAAA;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACnE,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC/D,SAAS,EAAE,CAAA;QACX,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;YACrB,eAAe,EAAE,CAAA;YACjB,iBAAiB,EAAE,CAAA;QACrB,CAAC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,UAA6B,EAAE,QAA0B;QACtF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAA;QAC1C,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YACzE,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC1F,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS;YACjD,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;QACvE,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QACD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAC7F,IAAI,SAAgC,CAAA;QACpC,IAAI,OAAO,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI;eACjF,CAAC,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACzD,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;QACtE,CAAC;QACD,IAAI,MAAM,GAAG,SAAS,EAAE,WAAW,IAAI,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QACvF,IAAI,MAAM,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAA;YAClE,IAAI,UAAU,CAAC,OAAO;gBAAE,OAAM;YAC9B,MAAM,GAAG,QAAQ,EAAE,WAAW,CAAA;QAChC,CAAC;QACD,IAAI,SAAS,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAAE,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QACpG,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,MAAmB;QAC1D,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACxD,CAAC;QAAC,OAAO,MAAe,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAA;YACpE,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;IAED,oEAAoE;IAC5D,oBAAoB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAA;QAC7C,IAAI,OAAO,KAAK,SAAS;eACpB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAA;QAC3F,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,SAAS;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAA;QACnC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAC9B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACtB,QAAQ,EAAE,OAAO,EAAE,CAAA;QACnB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAEO,WAAW,CACjB,MAAqB,EACrB,MAAmB,EACnB,KAA4B,EAC5B,UAA2C;QAE3C,MAAM,CAAC,cAAc,EAAE,CAAA;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;QACtE,IAAI,CAAC;YACH,MAAM,CAAC,cAAc,EAAE,CAAA;YACvB,UAAU,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACjC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,SAAS,CAAC,OAAO,EAAE,CAAA;gBACnB,OAAM;YACR,CAAC;YACD,MAAM,eAAe,GAAG,OAAO,MAAM,KAAK,QAAQ;gBAChD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC;gBACpD,CAAC,CAAC,MAAM,CAAA;YACV,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;gBACjB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC;aAC9D,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,SAAS,CAAC,OAAO,EAAE,CAAA;YACnB,MAAM,KAAK,CAAA;QACb,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAA;QACnC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAA;QAC9B,QAAQ,EAAE,OAAO,EAAE,CAAA;QACnB,IAAI,KAAK,KAAK,QAAQ;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAC3D,CAAC;CAEF;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC,CAAC,KAA2B,CAAC,CAAC,CAAC,SAAS,CAAA;AAChH,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB,CAAC,KAAc;IAC5C,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;IAC3C,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAA;IACzF,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC;AAED,wDAAwD;AACxD,SAAS,eAAe,CACtB,UAAoC,EACpC,QAAkC;IAElC,IAAI,QAAiC,CAAA;IACrC,IAAI,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAA;IAC3C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAA;QACrC,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;YACnC,IAAI,OAAO,KAAK,SAAS;gBAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;QACzE,CAAC;QACD,IAAI,MAAM,KAAK,MAAM,CAAC,iBAAiB;YAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACjF,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,GAAG,YAAY,EAAE,CAAC;YACpD,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAA;YAChC,YAAY,GAAG,MAAM,CAAA;QACvB,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../src/client/navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,43 +5,37 @@
|
|
|
5
5
|
* vendored file only needs one import and one `<GroupBadge />` call to wire
|
|
6
6
|
* the badge in. Everything fork-specific lives here.
|
|
7
7
|
*
|
|
8
|
+
* The **wording** lives in `../badge-labels.ts`: this file imports the host icon set,
|
|
9
|
+
* whose `require` graph only resolves inside the DSH app, so anything kept here is
|
|
10
|
+
* untestable in this repository.
|
|
11
|
+
*
|
|
12
|
+
* 本文件也**不为任何具体状态源写分支**:外部来源的图标、色档、脉冲、文案都随 facet
|
|
13
|
+
* 一起进来,这里只按登记顺序把它们排进徽标。
|
|
14
|
+
*
|
|
8
15
|
* @module
|
|
9
16
|
*/
|
|
10
17
|
import type { ReactNode } from 'react';
|
|
11
18
|
import type { WorkspaceBrowserProps } from '../contract/slots.ts';
|
|
12
|
-
import type {
|
|
19
|
+
import type { GroupNode } from '../tree.ts';
|
|
13
20
|
import type { ResolvedBadgeSettings } from '../badge-settings.ts';
|
|
21
|
+
export { facetCountTotal, facetGlyph, facetPulseClass, groupLiveLabel, hoverStatusLines } from '../badge-labels.ts';
|
|
14
22
|
/** The standard locale seat, prop-passed from the browser root. */
|
|
15
23
|
type RowTranslate = WorkspaceBrowserProps['t'];
|
|
16
|
-
/**
|
|
17
|
-
* Accessible label for a folded group's aggregated status, reusing the
|
|
18
|
-
* session-row locale keys so both surfaces read identically.
|
|
19
|
-
*
|
|
20
|
-
* 按设置过滤:关掉的来源不出现在标签里(aria-label 与徽标视觉一致)。
|
|
21
|
-
*/
|
|
22
|
-
export declare function groupLiveLabel(s: GroupLiveStatus, t: RowTranslate, settings: ResolvedBadgeSettings): string;
|
|
23
24
|
/**
|
|
24
25
|
* Aggregated live-status badge for a folded folder row. Dots reuse StateDot so
|
|
25
26
|
* colors match session rows (warning = pending, ongoing = running, done = completed).
|
|
26
|
-
* Renders nothing while expanded or when nothing is pending/active/completed
|
|
27
|
-
*
|
|
28
|
-
* Count matches the dots: pending + active + completed + waiting-review + scheduled sessions.
|
|
27
|
+
* Renders nothing while expanded or when nothing is pending/active/completed or any
|
|
28
|
+
* status source reports a contribution.
|
|
29
29
|
*
|
|
30
|
-
*
|
|
31
|
-
* 的判断。会话行自身的状态不受影响:那是行级状态,不是分组提示。
|
|
32
|
-
*/
|
|
33
|
-
export declare function groupLiveBadge(group: GroupNode, t: RowTranslate, settings: ResolvedBadgeSettings): ReactNode;
|
|
34
|
-
/**
|
|
35
|
-
* Build the status detail lines for the workspace hover card.
|
|
30
|
+
* Count matches the dots: host-side sessions plus every registered facet's own count.
|
|
36
31
|
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
32
|
+
* `settings` 按来源过滤:关掉的来源不画点、不计数、不进 aria-label、不参与「是否显示
|
|
33
|
+
* 徽标」的判断。会话行自身的状态点不受影响:那是行级状态,不是分组提示。**外部**来源的
|
|
34
|
+
* 过滤发生在折叠之前(`WorkspaceBrowser` 按 `facet.settingKey` 筛登记面),所以到这里
|
|
35
|
+
* 的折果已经是"该显示的",label 与视觉不可能各说一套。
|
|
39
36
|
*
|
|
40
|
-
*
|
|
37
|
+
* `now` 缺省取渲染时刻(与 `WorkspaceBrowser` 为相对时间读的时钟同一姿态):文案里的
|
|
38
|
+
* 剩余时长以此计算,只在提供方 store 通知时随渲染更新。
|
|
41
39
|
*/
|
|
42
|
-
export declare function
|
|
43
|
-
state: 'warning' | 'ongoing' | 'done';
|
|
44
|
-
text: string;
|
|
45
|
-
}[];
|
|
46
|
-
export {};
|
|
40
|
+
export declare function groupLiveBadge(group: GroupNode, t: RowTranslate, settings: ResolvedBadgeSettings, now?: number): ReactNode;
|
|
47
41
|
//# sourceMappingURL=GroupBadge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupBadge.d.ts","sourceRoot":"","sources":["../../../../src/client/rows/GroupBadge.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"GroupBadge.d.ts","sourceRoot":"","sources":["../../../../src/client/rows/GroupBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAIjE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAEnH,mEAAmE;AACnE,KAAK,YAAY,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAA;AAI9C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,EAChB,CAAC,EAAE,YAAY,EACf,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,GAAE,MAAmB,GACvB,SAAS,CA+CX"}
|
|
@@ -1,132 +1,71 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { StateDot } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
3
|
+
import { facetCountTotal, facetGlyph, facetPulseClass, groupLiveLabel } from "../badge-labels.js";
|
|
3
4
|
import css from './Rows.module.css';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Accessible label for a folded group's aggregated status, reusing the
|
|
7
|
-
* session-row locale keys so both surfaces read identically.
|
|
8
|
-
*
|
|
9
|
-
* 按设置过滤:关掉的来源不出现在标签里(aria-label 与徽标视觉一致)。
|
|
10
|
-
*/
|
|
11
|
-
export function groupLiveLabel(s, t, settings) {
|
|
12
|
-
const parts = [];
|
|
13
|
-
if (settings.showPendingInBadge) {
|
|
14
|
-
if (s.approval > 0)
|
|
15
|
-
parts.push(`${s.approval} ${t('status.waitingApproval')}`);
|
|
16
|
-
if (s.planReview > 0)
|
|
17
|
-
parts.push(`${s.planReview} ${t('status.planReview')}`);
|
|
18
|
-
if (s.question > 0)
|
|
19
|
-
parts.push(`${s.question} ${t('status.waitingAnswer')}`);
|
|
20
|
-
}
|
|
21
|
-
if (settings.showRunningInBadge) {
|
|
22
|
-
if (s.running > 0)
|
|
23
|
-
parts.push(`${s.running} ${t('status.running')}`);
|
|
24
|
-
if (s.subagents > 0) {
|
|
25
|
-
parts.push(t(s.subagents === 1 ? 'status.subagentsRunning.one' : 'status.subagentsRunning.other', { n: s.subagents }));
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
if (settings.showWaitingReviewInBadge && s.waitingReviewCount > 0)
|
|
29
|
-
parts.push(`${s.waitingReviewCount} ${t('status.waitingReview')}`);
|
|
30
|
-
if (settings.showScheduledInBadge && s.scheduledSessions > 0)
|
|
31
|
-
parts.push(`${s.scheduledSessions} ${t('status.scheduled')}`);
|
|
32
|
-
if (settings.showCompletedInBadge && s.done > 0)
|
|
33
|
-
parts.push(`${s.done} ${t('status.completed')}`);
|
|
34
|
-
return parts.join(' · ');
|
|
35
|
-
}
|
|
5
|
+
export { facetCountTotal, facetGlyph, facetPulseClass, groupLiveLabel, hoverStatusLines } from "../badge-labels.js";
|
|
36
6
|
// ── Badge ──
|
|
37
7
|
/**
|
|
38
8
|
* Aggregated live-status badge for a folded folder row. Dots reuse StateDot so
|
|
39
9
|
* colors match session rows (warning = pending, ongoing = running, done = completed).
|
|
40
|
-
* Renders nothing while expanded or when nothing is pending/active/completed
|
|
10
|
+
* Renders nothing while expanded or when nothing is pending/active/completed or any
|
|
11
|
+
* status source reports a contribution.
|
|
12
|
+
*
|
|
13
|
+
* Count matches the dots: host-side sessions plus every registered facet's own count.
|
|
41
14
|
*
|
|
42
|
-
*
|
|
15
|
+
* `settings` 按来源过滤:关掉的来源不画点、不计数、不进 aria-label、不参与「是否显示
|
|
16
|
+
* 徽标」的判断。会话行自身的状态点不受影响:那是行级状态,不是分组提示。**外部**来源的
|
|
17
|
+
* 过滤发生在折叠之前(`WorkspaceBrowser` 按 `facet.settingKey` 筛登记面),所以到这里
|
|
18
|
+
* 的折果已经是"该显示的",label 与视觉不可能各说一套。
|
|
43
19
|
*
|
|
44
|
-
* `
|
|
45
|
-
*
|
|
20
|
+
* `now` 缺省取渲染时刻(与 `WorkspaceBrowser` 为相对时间读的时钟同一姿态):文案里的
|
|
21
|
+
* 剩余时长以此计算,只在提供方 store 通知时随渲染更新。
|
|
46
22
|
*/
|
|
47
|
-
export function groupLiveBadge(group, t, settings) {
|
|
23
|
+
export function groupLiveBadge(group, t, settings, now = Date.now()) {
|
|
48
24
|
const s = group.liveStatus;
|
|
49
25
|
if (group.expanded || s === undefined)
|
|
50
26
|
return null;
|
|
51
27
|
const pending = settings.showPendingInBadge ? s.approval + s.planReview + s.question : 0;
|
|
52
28
|
const active = settings.showRunningInBadge ? s.running + s.subagents : 0;
|
|
53
|
-
const scheduled = settings.showScheduledInBadge ? s.scheduledSessions : 0;
|
|
54
|
-
const hasWaitingReview = settings.showWaitingReviewInBadge && s.waitingReviewCount > 0;
|
|
55
29
|
const completed = settings.showCompletedInBadge ? s.done : 0;
|
|
56
|
-
|
|
57
|
-
|
|
30
|
+
const facetTotal = facetCountTotal(s);
|
|
31
|
+
// 只在有 pending / active / 已完成 / 任一外部来源有贡献时显示徽标
|
|
32
|
+
if (pending === 0 && active === 0 && completed === 0 && facetTotal === 0)
|
|
58
33
|
return null;
|
|
59
|
-
const label = groupLiveLabel(s, t, settings);
|
|
34
|
+
const label = groupLiveLabel(s, t, settings, now);
|
|
60
35
|
const dots = [];
|
|
61
36
|
if (pending > 0)
|
|
62
37
|
dots.push(_jsx(StateDot, { state: "warning" }, "warn"));
|
|
63
38
|
if (active > 0)
|
|
64
39
|
dots.push(_jsx(StateDot, { state: "ongoing" }, "run"));
|
|
40
|
+
// #25①:点行顺序此前是 pending → active → **done** → facet,而明细(`hoverStatusLines`)
|
|
41
|
+
// 是 pending → active → **facet** → done,两处相反;而 `badge-labels.ts` 的注释声称两者
|
|
42
|
+
// 「完全一致」,括号里写的还正是明细那一种。此处按明细对齐(facet 排在 done 之前),
|
|
43
|
+
// 注释与实现从此同一条来源。
|
|
44
|
+
// 外部来源的相对次序由 facet.order 决定(谁更该被看见,来源自己排)。
|
|
45
|
+
// CSS module 的类型把 class 声明为可能 undefined,这里只在真的闪时才求值。
|
|
46
|
+
const urgentClass = css.groupBadgeUrgent ?? '';
|
|
47
|
+
for (const entry of s.facets.values()) {
|
|
48
|
+
const glyph = facetGlyph(entry, t, now);
|
|
49
|
+
const pulseClass = facetPulseClass(entry, urgentClass) || undefined;
|
|
50
|
+
dots.push(glyph === undefined
|
|
51
|
+
// provider 没画图标时退回通用点:陌生来源仍然可见,只是朴素。宿主只有三档状态点,
|
|
52
|
+
// 没有 error 档,所以 info 之外的色档都落到 warning 点上。
|
|
53
|
+
? _jsx(StateDot, { state: entry.fold.tone === 'info' ? 'ongoing' : 'warning' }, entry.facet.id)
|
|
54
|
+
// #22:脉冲 class 加在**这一枚元素**上,不是整只徽标。同组里别家开闪不该让
|
|
55
|
+
// `pulse: false` 的来源跟着呼吸——那条约定不能依赖邻居的开关。
|
|
56
|
+
: _jsx("span", { className: pulseClass, children: glyph }, entry.facet.id));
|
|
57
|
+
}
|
|
65
58
|
if (completed > 0)
|
|
66
59
|
dots.push(_jsx(StateDot, { state: "done" }, "done"));
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
// 等待评审图标(琥珀色;超时转红)。数据来自 dsh-gitea-dispatch 的
|
|
75
|
-
// useWaitingSummary()——本插件不自己轮询该端点(其 store 是唯一轮询方)。
|
|
76
|
-
if (hasWaitingReview) {
|
|
77
|
-
const stateColor = s.waitingReviewState === 'overdue' ? 'var(--dsw-alias-state-error-primary)' : 'var(--dsw-alias-state-warn-secondary)';
|
|
78
|
-
dots.push(_jsx("span", { style: { color: stateColor, display: 'inline-flex', alignItems: 'center' }, children: _jsx(IconListPenOutlineRegular, { size: 14 }) }, "waiting-review"));
|
|
79
|
-
}
|
|
80
|
-
// 数字统计 pending + active + 已完成 + 定时任务会话 + 等待评审会话(与 dot 一致)
|
|
81
|
-
// P2-3: 数字上限 99+,避免大项目组徽标过宽。
|
|
82
|
-
// P3-3: count < countThreshold 时省略数字(点已表达"有东西");设置项 countThreshold 可调。
|
|
83
|
-
const count = pending + active + completed + scheduled + (hasWaitingReview ? s.waitingReviewCount : 0);
|
|
60
|
+
// 数字 = 待审批 + 进行中(含子智能体)+ 已完成 + 各外部来源自己报的条数。
|
|
61
|
+
// #25②:「含子智能体」此前是**空头承诺**——`summarizeGroupStatus` 在 pending 分支里
|
|
62
|
+
// `continue` 掉了 `subagents += n.runningSubagentCount`,行内却给两个点。计数判据已
|
|
63
|
+
// 改成与 `Rows.tsx` 的 `sessionStatuses()` 同一套规则,这条注释现在才成立。
|
|
64
|
+
// P2-3: 上限 99+,避免大项目组徽标过宽。
|
|
65
|
+
// P3-3: 低于 countThreshold 时省略数字(点已表达"有东西");设置项可调。
|
|
66
|
+
const count = pending + active + completed + facetTotal;
|
|
84
67
|
const countLabel = count > 99 ? '99+' : count >= settings.countThreshold ? String(count) : '';
|
|
85
|
-
//
|
|
86
|
-
|
|
87
|
-
|| s.waitingReviewState === 'overdue';
|
|
88
|
-
const badgeClass = isUrgent ? `${css.groupBadge} ${css.groupBadgeUrgent}` : css.groupBadge;
|
|
89
|
-
return (_jsxs("span", { className: badgeClass, role: "img", "aria-label": label, title: label, children: [dots, countLabel && _jsx("span", { className: css.groupBadgeCount, children: countLabel })] }));
|
|
90
|
-
}
|
|
91
|
-
// ── Hover-card status lines ──
|
|
92
|
-
/**
|
|
93
|
-
* Build the status detail lines for the workspace hover card.
|
|
94
|
-
*
|
|
95
|
-
* Extracted so `WorkspaceHoverContent` in `Rows.tsx` only needs to map the
|
|
96
|
-
* returned array — the fork-specific status→line logic lives here.
|
|
97
|
-
*
|
|
98
|
-
* 按设置过滤:关掉的来源不出现在明细行里;`showHoverDetails=false` 时整段返回空。
|
|
99
|
-
*/
|
|
100
|
-
export function hoverStatusLines(status, t, settings) {
|
|
101
|
-
const lines = [];
|
|
102
|
-
if (status === undefined || !settings.showHoverDetails)
|
|
103
|
-
return lines;
|
|
104
|
-
if (settings.showPendingInBadge) {
|
|
105
|
-
if (status.approval > 0)
|
|
106
|
-
lines.push({ state: 'warning', text: `${status.approval} ${t('status.waitingApproval')}` });
|
|
107
|
-
if (status.planReview > 0)
|
|
108
|
-
lines.push({ state: 'warning', text: `${status.planReview} ${t('status.planReview')}` });
|
|
109
|
-
if (status.question > 0)
|
|
110
|
-
lines.push({ state: 'warning', text: `${status.question} ${t('status.waitingAnswer')}` });
|
|
111
|
-
}
|
|
112
|
-
if (settings.showRunningInBadge) {
|
|
113
|
-
if (status.running > 0)
|
|
114
|
-
lines.push({ state: 'ongoing', text: `${status.running} ${t('status.running')}` });
|
|
115
|
-
if (status.subagents > 0) {
|
|
116
|
-
lines.push({
|
|
117
|
-
state: 'ongoing',
|
|
118
|
-
text: t(status.subagents === 1 ? 'status.subagentsRunning.one' : 'status.subagentsRunning.other', { n: status.subagents }),
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
if (settings.showWaitingReviewInBadge && status.waitingReviewCount > 0) {
|
|
123
|
-
lines.push({ state: 'warning', text: `${status.waitingReviewCount} ${t('status.waitingReview')}` });
|
|
124
|
-
}
|
|
125
|
-
if (settings.showScheduledInBadge && status.scheduledSessions > 0) {
|
|
126
|
-
lines.push({ state: 'warning', text: `${status.scheduledSessions} ${t('status.scheduled')}` });
|
|
127
|
-
}
|
|
128
|
-
if (settings.showCompletedInBadge && status.done > 0)
|
|
129
|
-
lines.push({ state: 'done', text: `${status.done} ${t('status.completed')}` });
|
|
130
|
-
return lines;
|
|
68
|
+
// #22:徽标**容器**不再带脉冲 class——脉冲是"某个来源的元素该闪",不是整只徽标该闪。
|
|
69
|
+
return (_jsxs("span", { className: css.groupBadge, role: "img", "aria-label": label, title: label, children: [dots, countLabel && _jsx("span", { className: css.groupBadgeCount, children: countLabel })] }));
|
|
131
70
|
}
|
|
132
71
|
//# sourceMappingURL=GroupBadge.js.map
|