@wowyuarm/dsh-agent-team 0.1.6 → 0.1.7
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 +11 -5
- package/README.zh.md +11 -5
- package/package.json +44 -42
- package/packages/agent-team/README.md +2 -0
- package/packages/agent-team/README.zh.md +2 -0
- package/packages/agent-team/lib/index.js +82 -204
- package/packages/agent-team/lib/ledger.js +301 -13
- package/packages/agent-team/lib/member-context.js +5 -1
- package/packages/agent-team/lib/member-runtime.js +229 -0
- package/packages/agent-team/lib/preset-roster.js +1 -0
- package/packages/agent-team/lib/spec.js +30 -1
- package/packages/agent-team/lib/typert.host.js +253 -74
- package/packages/agent-team/lib/typert.remote-client.d.ts +5 -1
- package/packages/agent-team/lib/typert.remote-client.d.ts.map +1 -1
- package/packages/agent-team/lib/typert.remote-client.js +172 -43
- package/packages/agent-team/lib/types/entities.js +1 -0
- package/packages/agent-team/lib/types/index.d.ts +20 -44
- package/packages/agent-team/lib/types/index.d.ts.map +1 -1
- package/packages/agent-team/lib/types/ledger.d.ts +34 -1
- package/packages/agent-team/lib/types/ledger.d.ts.map +1 -1
- package/packages/agent-team/lib/types/member-context.d.ts.map +1 -1
- package/packages/agent-team/lib/types/member-runtime.d.ts +108 -0
- package/packages/agent-team/lib/types/member-runtime.d.ts.map +1 -0
- package/packages/agent-team/lib/types/operations.js +1 -0
- package/packages/agent-team/lib/types/preset-roster.d.ts.map +1 -1
- package/packages/agent-team/lib/types/requests-results.js +1 -0
- package/packages/agent-team/lib/types/spec.d.ts.map +1 -1
- package/packages/agent-team/lib/types/types/entities.d.ts +339 -0
- package/packages/agent-team/lib/types/types/entities.d.ts.map +1 -0
- package/packages/agent-team/lib/types/types/operations.d.ts +303 -0
- package/packages/agent-team/lib/types/types/operations.d.ts.map +1 -0
- package/packages/agent-team/lib/types/types/requests-results.d.ts +527 -0
- package/packages/agent-team/lib/types/types/requests-results.d.ts.map +1 -0
- package/packages/agent-team/lib/types/types.d.ts +10 -1070
- package/packages/agent-team/lib/types/types.d.ts.map +1 -1
- package/packages/agent-team/preset/team-member/agent.cordis.yml +4 -2
- package/packages/client-agent-team/README.md +3 -1
- package/packages/client-agent-team/README.zh.md +3 -1
- package/packages/client-agent-team/lib/client.js +444 -298
- package/packages/client-agent-team/lib/client.js.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts +3 -2
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.js +30 -7
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.js +2 -2
- package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.d.ts +2 -1
- package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.js +31 -5
- package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamComposer.js +2 -1
- package/packages/client-agent-team/lib/types/client/TeamMemberDock.d.ts +12 -0
- package/packages/client-agent-team/lib/types/client/TeamMemberDock.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamMemberDock.js +13 -0
- package/packages/client-agent-team/lib/types/client/TeamMessage.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamMessage.js +10 -3
- package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.js +2 -2
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceRow.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceRow.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/index.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/index.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/index.js +25 -28
- package/packages/client-agent-team/lib/types/client/locales.d.ts +28 -0
- package/packages/client-agent-team/lib/types/client/locales.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/locales.js +28 -0
- package/packages/client-agent-team/lib/types/client/member-session-input.d.ts +1 -3
- package/packages/client-agent-team/lib/types/client/member-session-input.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/member-session-input.js +18 -6
- package/packages/client-agent-team/lib/types/client/navigation.d.ts +2 -1
- package/packages/client-agent-team/lib/types/client/navigation.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/sidebar-order.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/sidebar-order.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/sidebar-sections.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/sidebar-sections.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/slots.d.ts +3 -1
- package/packages/client-agent-team/lib/types/client/slots.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/team-membership.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/team-membership.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamMemberSessionComposer.d.ts +0 -17
- package/packages/client-agent-team/lib/types/client/TeamMemberSessionComposer.d.ts.map +0 -1
- package/packages/client-agent-team/lib/types/client/TeamMemberSessionComposer.js +0 -135
|
@@ -6,13 +6,13 @@ import { TeamFooterAction } from "./TeamFooterAction.js";
|
|
|
6
6
|
import { TeamSettings } from "./TeamSettings.js";
|
|
7
7
|
import { TeamConversation } from "./TeamConversation.js";
|
|
8
8
|
import { TeamWorkspaceBrowser } from "./TeamWorkspaceBrowser.js";
|
|
9
|
-
import {
|
|
9
|
+
import { TeamMemberDock } from "./TeamMemberDock.js";
|
|
10
10
|
import { admitTeamCompact, createTeamMemberSessionSources } from "./member-session-input.js";
|
|
11
11
|
import { en, zh } from "./locales.js";
|
|
12
12
|
export { TeamNavigation } from "./navigation.js";
|
|
13
13
|
const NS = 'team';
|
|
14
14
|
export const inject = [
|
|
15
|
-
'slots', 'workspaces', 'locale', 'remote', 'sessions', 'connection', 'conversation', 'inputTriggers',
|
|
15
|
+
'slots', 'workspaces', 'locale', 'remote', 'remote.session', 'sessions', 'connection', 'conversation', 'inputTriggers',
|
|
16
16
|
];
|
|
17
17
|
function registerModeShadow(ctx, navigation, changes, drafts, name, component, extraInject) {
|
|
18
18
|
// Stay in Team mode: the conversation shadow stands down for Member Session
|
|
@@ -37,15 +37,13 @@ function registerModeShadow(ctx, navigation, changes, drafts, name, component, e
|
|
|
37
37
|
joinChannel: (request) => ctx.remote.agentTeam.joinChannel(request),
|
|
38
38
|
removeChannelMember: (request) => ctx.remote.agentTeam.removeChannelMember(request),
|
|
39
39
|
updateChannel: (request) => ctx.remote.agentTeam.updateChannel(request),
|
|
40
|
+
archiveChannel: (request) => ctx.remote.agentTeam.archiveChannel(request),
|
|
40
41
|
updateMember: (request) => ctx.remote.agentTeam.updateMember(request),
|
|
41
42
|
recoverMember: (request) => ctx.remote.agentTeam.recoverMember(request),
|
|
42
43
|
clearMemberContext: (request) => ctx.remote.agentTeam.clearMemberContext(request),
|
|
44
|
+
archiveMember: (request) => ctx.remote.agentTeam.archiveMember(request),
|
|
43
45
|
// The Host-scoped catalog needs no live Member, so suspended ones stay editable too.
|
|
44
|
-
loadModels:
|
|
45
|
-
const connection = ctx.get('connection');
|
|
46
|
-
const response = await connection.api.llm.models({});
|
|
47
|
-
return response.result;
|
|
48
|
-
},
|
|
46
|
+
loadModels: () => ctx.remote.session.modelCatalog(),
|
|
49
47
|
openMemberSession: openMemberSessionImpl,
|
|
50
48
|
};
|
|
51
49
|
ctx.slots.inject(name, () => {
|
|
@@ -98,8 +96,13 @@ function registerModeShadow(ctx, navigation, changes, drafts, name, component, e
|
|
|
98
96
|
};
|
|
99
97
|
});
|
|
100
98
|
}
|
|
101
|
-
function
|
|
102
|
-
|
|
99
|
+
function registerMemberSessionDock(ctx, navigation) {
|
|
100
|
+
// rc.1: the shipped InputBar owns `conversation.composer.bar` and with it
|
|
101
|
+
// the trigger-menu overlay; shadowing it stranded the menus inside a hidden
|
|
102
|
+
// subtree. The Team surface moves to the public input-dock list slot above
|
|
103
|
+
// the shipped bar — it renders in both the hero (blank session) and active
|
|
104
|
+
// composer forms, so the strip stays visible from the very first turn.
|
|
105
|
+
ctx.slots.inject('conversation.input.dock', () => {
|
|
103
106
|
let dispose;
|
|
104
107
|
let registeredSessionId;
|
|
105
108
|
const reconcile = () => {
|
|
@@ -112,25 +115,16 @@ function registerMemberSessionComposer(ctx, navigation) {
|
|
|
112
115
|
}
|
|
113
116
|
if (active && dispose === undefined) {
|
|
114
117
|
registeredSessionId = memberSessionId;
|
|
118
|
+
const sessions = ctx.sessions;
|
|
115
119
|
dispose = ctx.slots.register({
|
|
116
|
-
name: 'conversation.
|
|
117
|
-
|
|
120
|
+
name: 'conversation.input.dock',
|
|
121
|
+
id: 'agent-team-member',
|
|
122
|
+
locale: NS,
|
|
118
123
|
// The registration may remain live during a session transition, but
|
|
119
|
-
// it
|
|
120
|
-
// Member. This avoids
|
|
121
|
-
select: () =>
|
|
122
|
-
|
|
123
|
-
const actx = ctx.sessions.scope(sessionId);
|
|
124
|
-
if (actx === undefined)
|
|
125
|
-
throw new Error(`agent-team: Member session ${String(sessionId)} has no client scope`);
|
|
126
|
-
const sessions = ctx.sessions;
|
|
127
|
-
return {
|
|
128
|
-
controller: ctx.get('inputTriggers').sessionOf(actx),
|
|
129
|
-
stop: () => { void sessions.sessionOf(actx)?.cancel(); },
|
|
130
|
-
submitInput: (mode) => ctx.conversation.input.for(actx).submit(mode),
|
|
131
|
-
};
|
|
132
|
-
},
|
|
133
|
-
}, TeamMemberSessionComposer);
|
|
124
|
+
// it shows only when the shell's current Session is the embedded
|
|
125
|
+
// Member. This avoids stamping an ordinary Session if selection races.
|
|
126
|
+
select: () => sessions.list.getSnapshot().current === memberSessionId ? {} : null,
|
|
127
|
+
}, TeamMemberDock);
|
|
134
128
|
}
|
|
135
129
|
};
|
|
136
130
|
const offNavigation = navigation.subscribe(reconcile);
|
|
@@ -184,7 +178,10 @@ function applyUi(ctx) {
|
|
|
184
178
|
const result = await ctx.remote.agentTeam.members({ workspaceId: workspace.workspaceId });
|
|
185
179
|
if (!result.ok)
|
|
186
180
|
throw new Error(result.error.message);
|
|
187
|
-
|
|
181
|
+
// The members modal is a listing surface: archived Members are hidden
|
|
182
|
+
// everywhere, and removed (inactive) ones never belong in a roster.
|
|
183
|
+
const members = result.value.filter(status => status.member.state !== 'inactive' && status.member.state !== 'archived');
|
|
184
|
+
return { workspaceId: workspace.workspaceId, workspaceTitle: workspace.title, members };
|
|
188
185
|
}));
|
|
189
186
|
return groups.filter(group => group.members.length > 0);
|
|
190
187
|
};
|
|
@@ -216,7 +213,7 @@ function applyUi(ctx) {
|
|
|
216
213
|
}, TeamFooterAction));
|
|
217
214
|
registerModeShadow(ctx, navigation, changes, drafts, 'sidebar.workspaces', TeamWorkspaceBrowser);
|
|
218
215
|
registerModeShadow(ctx, navigation, changes, drafts, 'conversation', TeamConversation);
|
|
219
|
-
|
|
216
|
+
registerMemberSessionDock(ctx, navigation);
|
|
220
217
|
registerModeShadow(ctx, navigation, changes, drafts, 'sidebar.settings', TeamSettings, () => ({ loadMemberGroups }));
|
|
221
218
|
}
|
|
222
219
|
export async function apply(ctx) {
|
|
@@ -12,6 +12,10 @@ export declare const zh: {
|
|
|
12
12
|
readonly addAgent: "添加 Agent";
|
|
13
13
|
readonly cancel: "取消";
|
|
14
14
|
readonly close: "关闭";
|
|
15
|
+
readonly memberSessionHint: "成员会话:/compact 压缩上下文 · @成员 引用;普通消息直接发给该成员。";
|
|
16
|
+
readonly copyCode: "复制";
|
|
17
|
+
readonly copiedCode: "已复制";
|
|
18
|
+
readonly markdownFootnotes: "脚注";
|
|
15
19
|
readonly retry: "重试";
|
|
16
20
|
readonly agentName: "名称";
|
|
17
21
|
readonly agentDescription: "说明";
|
|
@@ -45,6 +49,16 @@ export declare const zh: {
|
|
|
45
49
|
readonly clearContextNotice: "将结束 {name} 当前的会话上下文并从空白开始:旧对话会归档保留在会话记录中。{name} 的身份、私有记忆与 notes、频道和会话绑定都保持不变,后续协作从新上下文继续累积。";
|
|
46
50
|
readonly clearContextConfirm: "开始全新上下文";
|
|
47
51
|
readonly clearContextFailed: "清空上下文失败:{message}";
|
|
52
|
+
readonly archiveAgent: "归档";
|
|
53
|
+
readonly archiveAgentTitle: "归档 Agent:{name}";
|
|
54
|
+
readonly archiveAgentNotice: "将把 {name} 从所有列表收起:会话与私有记忆保留在磁盘上、活跃 Claim 会释放,但暂无恢复入口。";
|
|
55
|
+
readonly archiveAgentConfirm: "归档";
|
|
56
|
+
readonly archiveAgentFailed: "归档失败:{message}";
|
|
57
|
+
readonly archiveChannel: "归档频道";
|
|
58
|
+
readonly archiveChannelTitle: "归档频道:{name}";
|
|
59
|
+
readonly archiveChannelNotice: "将把 {name} 及其全部讨论从所有列表收起:数据保留、所有成员在此频道的活跃 Claim 会释放,但暂无恢复入口。";
|
|
60
|
+
readonly archiveChannelConfirm: "归档频道";
|
|
61
|
+
readonly archiveChannelFailed: "归档频道失败:{message}";
|
|
48
62
|
readonly optionalSuffix: "(可选)";
|
|
49
63
|
readonly agentDescriptionPlaceholder: "留空则暂无描述";
|
|
50
64
|
readonly membersPickerEmpty: "选择初始成员";
|
|
@@ -154,6 +168,10 @@ export declare const en: {
|
|
|
154
168
|
readonly addAgent: "Add Agent";
|
|
155
169
|
readonly cancel: "Cancel";
|
|
156
170
|
readonly close: "Close";
|
|
171
|
+
readonly memberSessionHint: "Member session: /compact compresses context · @member inserts a reference; plain messages go straight to the member.";
|
|
172
|
+
readonly copyCode: "Copy";
|
|
173
|
+
readonly copiedCode: "Copied";
|
|
174
|
+
readonly markdownFootnotes: "Footnotes";
|
|
157
175
|
readonly retry: "Retry";
|
|
158
176
|
readonly agentName: "Name";
|
|
159
177
|
readonly agentDescription: "Description";
|
|
@@ -187,6 +205,16 @@ export declare const en: {
|
|
|
187
205
|
readonly clearContextNotice: "This ends {name}'s current session context and starts blank: the previous conversation is archived and stays in the session history. {name}'s identity, private memory and notes, channel and session bindings are untouched, and future collaboration accumulates from the new context.";
|
|
188
206
|
readonly clearContextConfirm: "Start from new context";
|
|
189
207
|
readonly clearContextFailed: "Failed to clear context: {message}";
|
|
208
|
+
readonly archiveAgent: "Archive";
|
|
209
|
+
readonly archiveAgentTitle: "Archive Agent: {name}";
|
|
210
|
+
readonly archiveAgentNotice: "This hides {name} from every list: the session log and private memory stay on disk and active Claims release, but there is no restore entry point yet.";
|
|
211
|
+
readonly archiveAgentConfirm: "Archive";
|
|
212
|
+
readonly archiveAgentFailed: "Failed to archive: {message}";
|
|
213
|
+
readonly archiveChannel: "Archive Channel";
|
|
214
|
+
readonly archiveChannelTitle: "Archive Channel: {name}";
|
|
215
|
+
readonly archiveChannelNotice: "This hides {name} and all of its discussions from every list: the data stays, every Member's active Claims in this Channel release, but there is no restore entry point yet.";
|
|
216
|
+
readonly archiveChannelConfirm: "Archive Channel";
|
|
217
|
+
readonly archiveChannelFailed: "Failed to archive Channel: {message}";
|
|
190
218
|
readonly optionalSuffix: " (optional)";
|
|
191
219
|
readonly agentDescriptionPlaceholder: "Leave empty if not needed";
|
|
192
220
|
readonly membersPickerEmpty: "Choose initial members";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2JL,CAAA;AAEV,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2JL,CAAA;AAEV,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,EAAE,CAAA"}
|
|
@@ -12,6 +12,10 @@ export const zh = {
|
|
|
12
12
|
addAgent: '添加 Agent',
|
|
13
13
|
cancel: '取消',
|
|
14
14
|
close: '关闭',
|
|
15
|
+
memberSessionHint: '成员会话:/compact 压缩上下文 · @成员 引用;普通消息直接发给该成员。',
|
|
16
|
+
copyCode: '复制',
|
|
17
|
+
copiedCode: '已复制',
|
|
18
|
+
markdownFootnotes: '脚注',
|
|
15
19
|
retry: '重试',
|
|
16
20
|
agentName: '名称',
|
|
17
21
|
agentDescription: '说明',
|
|
@@ -45,6 +49,16 @@ export const zh = {
|
|
|
45
49
|
clearContextNotice: '将结束 {name} 当前的会话上下文并从空白开始:旧对话会归档保留在会话记录中。{name} 的身份、私有记忆与 notes、频道和会话绑定都保持不变,后续协作从新上下文继续累积。',
|
|
46
50
|
clearContextConfirm: '开始全新上下文',
|
|
47
51
|
clearContextFailed: '清空上下文失败:{message}',
|
|
52
|
+
archiveAgent: '归档',
|
|
53
|
+
archiveAgentTitle: '归档 Agent:{name}',
|
|
54
|
+
archiveAgentNotice: '将把 {name} 从所有列表收起:会话与私有记忆保留在磁盘上、活跃 Claim 会释放,但暂无恢复入口。',
|
|
55
|
+
archiveAgentConfirm: '归档',
|
|
56
|
+
archiveAgentFailed: '归档失败:{message}',
|
|
57
|
+
archiveChannel: '归档频道',
|
|
58
|
+
archiveChannelTitle: '归档频道:{name}',
|
|
59
|
+
archiveChannelNotice: '将把 {name} 及其全部讨论从所有列表收起:数据保留、所有成员在此频道的活跃 Claim 会释放,但暂无恢复入口。',
|
|
60
|
+
archiveChannelConfirm: '归档频道',
|
|
61
|
+
archiveChannelFailed: '归档频道失败:{message}',
|
|
48
62
|
optionalSuffix: '(可选)',
|
|
49
63
|
agentDescriptionPlaceholder: '留空则暂无描述',
|
|
50
64
|
membersPickerEmpty: '选择初始成员',
|
|
@@ -154,6 +168,10 @@ export const en = {
|
|
|
154
168
|
addAgent: 'Add Agent',
|
|
155
169
|
cancel: 'Cancel',
|
|
156
170
|
close: 'Close',
|
|
171
|
+
memberSessionHint: 'Member session: /compact compresses context · @member inserts a reference; plain messages go straight to the member.',
|
|
172
|
+
copyCode: 'Copy',
|
|
173
|
+
copiedCode: 'Copied',
|
|
174
|
+
markdownFootnotes: 'Footnotes',
|
|
157
175
|
retry: 'Retry',
|
|
158
176
|
agentName: 'Name',
|
|
159
177
|
agentDescription: 'Description',
|
|
@@ -187,6 +205,16 @@ export const en = {
|
|
|
187
205
|
clearContextNotice: 'This ends {name}\'s current session context and starts blank: the previous conversation is archived and stays in the session history. {name}\'s identity, private memory and notes, channel and session bindings are untouched, and future collaboration accumulates from the new context.',
|
|
188
206
|
clearContextConfirm: 'Start from new context',
|
|
189
207
|
clearContextFailed: 'Failed to clear context: {message}',
|
|
208
|
+
archiveAgent: 'Archive',
|
|
209
|
+
archiveAgentTitle: 'Archive Agent: {name}',
|
|
210
|
+
archiveAgentNotice: 'This hides {name} from every list: the session log and private memory stay on disk and active Claims release, but there is no restore entry point yet.',
|
|
211
|
+
archiveAgentConfirm: 'Archive',
|
|
212
|
+
archiveAgentFailed: 'Failed to archive: {message}',
|
|
213
|
+
archiveChannel: 'Archive Channel',
|
|
214
|
+
archiveChannelTitle: 'Archive Channel: {name}',
|
|
215
|
+
archiveChannelNotice: 'This hides {name} and all of its discussions from every list: the data stays, every Member\'s active Claims in this Channel release, but there is no restore entry point yet.',
|
|
216
|
+
archiveChannelConfirm: 'Archive Channel',
|
|
217
|
+
archiveChannelFailed: 'Failed to archive Channel: {message}',
|
|
190
218
|
optionalSuffix: ' (optional)',
|
|
191
219
|
agentDescriptionPlaceholder: 'Leave empty if not needed',
|
|
192
220
|
membersPickerEmpty: 'Choose initial members',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AgentTeamClientMemberStatus } from '@wowyuarm/dsh-agent-team/types';
|
|
2
|
-
import type { ISession } from '@deepseek-ai/dsh-
|
|
2
|
+
import type { ISession } from '@deepseek-ai/dsh-api-session-controller/client';
|
|
3
3
|
import type { ClientSessionContext, InputTriggerSource, SubmitOutcome } from '@deepseek-ai/dsh-client-ui-input-trigger/client';
|
|
4
4
|
export declare const TEAM_COMMAND_SOURCE = "agent-team-command";
|
|
5
5
|
export declare const TEAM_MEMBER_SOURCE = "agent-team-member";
|
|
@@ -17,6 +17,4 @@ export declare function admitTeamCompact(session: Pick<ISession, 'command'>): Pr
|
|
|
17
17
|
* handle from plain text.
|
|
18
18
|
*/
|
|
19
19
|
export declare function createTeamMemberSessionSources(options: TeamMemberSessionInputOptions): readonly InputTriggerSource[];
|
|
20
|
-
/** Unknown leading slash must never fall into the shipped global palette. */
|
|
21
|
-
export declare function allowsMemberSessionSubmit(draft: string, claimToken: string | undefined): boolean;
|
|
22
20
|
//# sourceMappingURL=member-session-input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"member-session-input.d.ts","sourceRoot":"","sources":["../../../src/client/member-session-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAqB,MAAM,gCAAgC,CAAA;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"member-session-input.d.ts","sourceRoot":"","sources":["../../../src/client/member-session-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAqB,MAAM,gCAAgC,CAAA;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAA;AAC9E,OAAO,KAAK,EACV,oBAAoB,EAAgB,kBAAkB,EAAmB,aAAa,EACvF,MAAM,iDAAiD,CAAA;AAExD,eAAO,MAAM,mBAAmB,uBAAuB,CAAA;AACvD,eAAO,MAAM,kBAAkB,sBAAsB,CAAA;AAErD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,uBAAuB,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,KAAK,OAAO,CAAA;IAC3F,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAAA;IACvE,QAAQ,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;CAClG;AAED,mFAAmF;AACnF,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAIjG;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,6BAA6B,GAAG,SAAS,kBAAkB,EAAE,CAgFpH"}
|
|
@@ -33,6 +33,23 @@ export function createTeamMemberSessionSources(options) {
|
|
|
33
33
|
};
|
|
34
34
|
return { claim };
|
|
35
35
|
},
|
|
36
|
+
// Typing the full `/compact` line without picking from the menu still
|
|
37
|
+
// routes through the Team claim inside an embedded Member Session. The
|
|
38
|
+
// shipped command source answers first for its own vocabulary; unknown
|
|
39
|
+
// slash lines fall through here, where a Member Session claims only its
|
|
40
|
+
// one supported token and ordinary Sessions decline.
|
|
41
|
+
async matchEnter(session, line) {
|
|
42
|
+
if (!options.isEmbeddedMemberSession(session.sessionId))
|
|
43
|
+
return undefined;
|
|
44
|
+
const trimmed = line.trim();
|
|
45
|
+
if (trimmed !== '/compact')
|
|
46
|
+
return undefined;
|
|
47
|
+
const claim = {
|
|
48
|
+
token: '/compact',
|
|
49
|
+
submit: async () => options.executeCompact(session.sessionId),
|
|
50
|
+
};
|
|
51
|
+
return { claim };
|
|
52
|
+
},
|
|
36
53
|
};
|
|
37
54
|
const member = {
|
|
38
55
|
trigger: '@',
|
|
@@ -46,7 +63,7 @@ export function createTeamMemberSessionSources(options) {
|
|
|
46
63
|
if (signal.aborted)
|
|
47
64
|
return [];
|
|
48
65
|
return members
|
|
49
|
-
.filter(status => status.member.sessionId !== session.sessionId && status.member.state !== 'inactive')
|
|
66
|
+
.filter(status => status.member.sessionId !== session.sessionId && status.member.state !== 'inactive' && status.member.state !== 'archived')
|
|
50
67
|
.filter(status => status.member.handle.toLocaleLowerCase().startsWith(normalized))
|
|
51
68
|
.map(status => {
|
|
52
69
|
labels.set(status.member.memberId, `@${status.member.handle}`);
|
|
@@ -85,11 +102,6 @@ export function createTeamMemberSessionSources(options) {
|
|
|
85
102
|
};
|
|
86
103
|
return [command, member];
|
|
87
104
|
}
|
|
88
|
-
/** Unknown leading slash must never fall into the shipped global palette. */
|
|
89
|
-
export function allowsMemberSessionSubmit(draft, claimToken) {
|
|
90
|
-
const trimmed = draft.trimStart();
|
|
91
|
-
return !trimmed.startsWith('/') || claimToken === '/compact';
|
|
92
|
-
}
|
|
93
105
|
function escapeText(value) {
|
|
94
106
|
return value.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>');
|
|
95
107
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { SessionId
|
|
1
|
+
import type { SessionId } from '@deepseek-ai/dsh-session';
|
|
2
|
+
import type { WorkspaceId } from '@deepseek-ai/dsh-api-workspace-controller/client';
|
|
2
3
|
import type { AgentTeamChannelRef, AgentTeamTaskRef, AgentTeamThreadRef } from '@wowyuarm/dsh-agent-team/types';
|
|
3
4
|
export type TeamMode = 'conversation' | 'team';
|
|
4
5
|
export interface TeamNavigationSnapshot {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/client/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/client/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAE/G,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,MAAM,CAAA;AAE9C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,QAAQ,CAAA;IACd,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,UAAU,CAAC,EAAE,mBAAmB,CAAA;IAChC,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,sFAAsF;IACtF,eAAe,CAAC,EAAE,SAAS,CAAA;IAC3B,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,SAAS,CAAA;CAC9B;AAED,QAAA,MAAM,WAAW,8BAA8B,CAAA;AAuC/C,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,eAAe,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,IAAI,CAAA;IACnD,aAAa,EAAE,CAAC,UAAU,EAAE,mBAAmB,KAAK,IAAI,CAAA;IACxD,YAAY,EAAE,CAAC,SAAS,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,gBAAgB,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACxI,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,2FAA2F;IAC3F,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B;;;;OAIG;IACH,kBAAkB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,EAAE,SAAS,KAAK,IAAI,CAAA;IACjF,2EAA2E;IAC3E,iBAAiB,EAAE,MAAM,IAAI,CAAA;CAC9B;AAED,4EAA4E;AAC5E,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAElD,QAAQ,CAAC,WAAW,QAAO,sBAAsB,CAAiB;IAElE,QAAQ,CAAC,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAGxD;IAED,OAAO,IAAI,qBAAqB;IAchC,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,gBAAgB;IAaxB,6EAA6E;IAC7E,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,MAAM;CAKf;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WorkspaceId } from '@deepseek-ai/dsh-
|
|
1
|
+
import type { WorkspaceId } from '@deepseek-ai/dsh-api-workspace-controller/client';
|
|
2
2
|
/** Which sidebar list an order belongs to; the two ledgers are independent. */
|
|
3
3
|
export type TeamSidebarListKind = 'channels' | 'agents';
|
|
4
4
|
/** Insert side of a drop relative to the row under the pointer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar-order.d.ts","sourceRoot":"","sources":["../../../src/client/sidebar-order.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sidebar-order.d.ts","sourceRoot":"","sources":["../../../src/client/sidebar-order.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AAEnF,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,QAAQ,CAAA;AAEvD,mEAAmE;AACnE,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,OAAO,CAAA;AA2ElD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAerH;AAqCD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAQnJ;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,EACZ,MAAM,EAAE,iBAAiB,GACxB,SAAS,CAAC,EAAE,GAAG,SAAS,CAe1B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WorkspaceId } from '@deepseek-ai/dsh-
|
|
1
|
+
import type { WorkspaceId } from '@deepseek-ai/dsh-api-workspace-controller/client';
|
|
2
2
|
/** Which sidebar section a collapse state belongs to. */
|
|
3
3
|
export type TeamSidebarSectionKind = 'workspaces' | 'channels' | 'agents';
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar-sections.d.ts","sourceRoot":"","sources":["../../../src/client/sidebar-sections.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"sidebar-sections.d.ts","sourceRoot":"","sources":["../../../src/client/sidebar-sections.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AAEnF,yDAAyD;AACzD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAA;AA8DzE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,sBAAsB,GAAG,OAAO,CASjH;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAQ7H"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
-
import type { AgentTeamAddMemberRequest, AgentTeamChannelRef, AgentTeamClientMemberStatus, AgentTeamClearMemberContextRequest, AgentTeamClearMemberContextResult, AgentTeamCreateChannelRequest, AgentTeamCreateChannelResult, AgentTeamJoinChannelRequest, AgentTeamJoinChannelResult, AgentTeamGetAttachmentRequest, AgentTeamGetAttachmentResult, AgentTeamPutAttachmentRequest, AgentTeamPutAttachmentResult, AgentTeamMemberResult, AgentTeamRecoverMemberRequest, AgentTeamRecoverMemberResult, AgentTeamMembersRequest, AgentTeamRemoveChannelMemberRequest, AgentTeamRemoveChannelMemberResult, AgentTeamReplyRequest, AgentTeamResolveTaskRefsRequest, AgentTeamResolveTaskRefsResult, AgentTeamReplyResult, AgentTeamConfirmationRequired, AgentTeamThreadHistory, AgentTeamThreadHistoryRequest, AgentTeamThreadReadRequest, AgentTeamThreadReadResult, AgentTeamPromoteThreadRequest, AgentTeamPromoteThreadResult, AgentTeamTaskRequest, AgentTeamTaskResult, AgentTeamSendMessageRequest, AgentTeamSendMessageResult, AgentTeamUpdateChannelRequest, AgentTeamUpdateChannelResult, AgentTeamUpdateMemberRequest, AgentTeamView, AgentTeamViewRequest } from '@wowyuarm/dsh-agent-team/types';
|
|
2
|
+
import type { AgentTeamAddMemberRequest, AgentTeamArchiveChannelRequest, AgentTeamArchiveChannelResult, AgentTeamArchiveMemberRequest, AgentTeamArchiveMemberResult, AgentTeamChannelRef, AgentTeamClientMemberStatus, AgentTeamClearMemberContextRequest, AgentTeamClearMemberContextResult, AgentTeamCreateChannelRequest, AgentTeamCreateChannelResult, AgentTeamJoinChannelRequest, AgentTeamJoinChannelResult, AgentTeamGetAttachmentRequest, AgentTeamGetAttachmentResult, AgentTeamPutAttachmentRequest, AgentTeamPutAttachmentResult, AgentTeamMemberResult, AgentTeamRecoverMemberRequest, AgentTeamRecoverMemberResult, AgentTeamMembersRequest, AgentTeamRemoveChannelMemberRequest, AgentTeamRemoveChannelMemberResult, AgentTeamReplyRequest, AgentTeamResolveTaskRefsRequest, AgentTeamResolveTaskRefsResult, AgentTeamReplyResult, AgentTeamConfirmationRequired, AgentTeamThreadHistory, AgentTeamThreadHistoryRequest, AgentTeamThreadReadRequest, AgentTeamThreadReadResult, AgentTeamPromoteThreadRequest, AgentTeamPromoteThreadResult, AgentTeamTaskRequest, AgentTeamTaskResult, AgentTeamSendMessageRequest, AgentTeamSendMessageResult, AgentTeamUpdateChannelRequest, AgentTeamUpdateChannelResult, AgentTeamUpdateMemberRequest, AgentTeamView, AgentTeamViewRequest } from '@wowyuarm/dsh-agent-team/types';
|
|
3
3
|
import type { RemoteResult } from '@deepseek-ai/dsh-typert-protocol';
|
|
4
4
|
import type { TeamNavigationActions, TeamNavigationSnapshot } from './navigation.ts';
|
|
5
5
|
import type { TeamChangeListener, TeamChangeScope } from './team-changes.ts';
|
|
@@ -47,9 +47,11 @@ export type TeamSidebarProps = PropsRuntime<'sidebar.workspaces'> & PropsLocale<
|
|
|
47
47
|
loadChannels: (request: AgentTeamViewRequest) => Promise<RemoteResult<AgentTeamView>>;
|
|
48
48
|
createChannel: (request: AgentTeamCreateChannelRequest) => Promise<RemoteResult<AgentTeamCreateChannelResult>>;
|
|
49
49
|
updateChannel: (request: AgentTeamUpdateChannelRequest) => Promise<RemoteResult<AgentTeamUpdateChannelResult>>;
|
|
50
|
+
archiveChannel: (request: AgentTeamArchiveChannelRequest) => Promise<RemoteResult<AgentTeamArchiveChannelResult>>;
|
|
50
51
|
updateMember: (request: AgentTeamUpdateMemberRequest) => Promise<RemoteResult<AgentTeamMemberResult>>;
|
|
51
52
|
recoverMember: (request: AgentTeamRecoverMemberRequest) => Promise<RemoteResult<AgentTeamRecoverMemberResult>>;
|
|
52
53
|
clearMemberContext: (request: AgentTeamClearMemberContextRequest) => Promise<RemoteResult<AgentTeamClearMemberContextResult>>;
|
|
54
|
+
archiveMember: (request: AgentTeamArchiveMemberRequest) => Promise<RemoteResult<AgentTeamArchiveMemberResult>>;
|
|
53
55
|
joinChannel: (request: AgentTeamJoinChannelRequest) => Promise<RemoteResult<AgentTeamJoinChannelResult>>;
|
|
54
56
|
removeChannelMember: (request: AgentTeamRemoveChannelMemberRequest) => Promise<RemoteResult<AgentTeamRemoveChannelMemberResult>>;
|
|
55
57
|
/** Session-independent Host model catalog (`llm.models`); needs no live Member. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../../src/client/slots.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../../../src/client/slots.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentTeamChannelRef, AgentTeamJoinChannelRequest, AgentTeamJoinChannelResult, AgentTeamMemberId, AgentTeamRemoveChannelMemberRequest, AgentTeamRemoveChannelMemberResult } from '@wowyuarm/dsh-agent-team/types';
|
|
2
2
|
import type { RemoteResult } from '@deepseek-ai/dsh-typert-protocol';
|
|
3
|
-
import type { WorkspaceId } from '@deepseek-ai/dsh-
|
|
3
|
+
import type { WorkspaceId } from '@deepseek-ai/dsh-api-workspace-controller/client';
|
|
4
4
|
/** One idempotent membership intent: `joined` rows leave, others join. */
|
|
5
5
|
export interface ChannelMembershipChange {
|
|
6
6
|
readonly workspaceId: WorkspaceId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"team-membership.d.ts","sourceRoot":"","sources":["../../../src/client/team-membership.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,mCAAmC,EACnC,kCAAkC,EAEnC,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"team-membership.d.ts","sourceRoot":"","sources":["../../../src/client/team-membership.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,mBAAmB,EACnB,2BAA2B,EAC3B,0BAA0B,EAC1B,iBAAiB,EACjB,mCAAmC,EACnC,kCAAkC,EAEnC,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAA;AAEnF,0EAA0E;AAC1E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAA;IACxC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAA;IACpC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,2BAA2B,KAAK,OAAO,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC,CAAA;IACjH,QAAQ,CAAC,mBAAmB,EAAE,CAAC,OAAO,EAAE,mCAAmC,KAAK,OAAO,CAAC,YAAY,CAAC,kCAAkC,CAAC,CAAC,CAAA;CAC1I;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,0BAA0B,EACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,MAAM,EACrD,WAAW,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACrE;IACD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpE,CA6BA"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
-
import type { InputTriggerController } from '@deepseek-ai/dsh-client-ui-input-trigger/client';
|
|
3
|
-
/** Public composer-bar slot currency plus Team's scoped trigger controller. */
|
|
4
|
-
export type TeamMemberSessionComposerProps = PropsRuntime<'conversation.composer.bar'> & {
|
|
5
|
-
readonly controller: InputTriggerController;
|
|
6
|
-
/** Team inject provides public Session.cancel as the running stop action. */
|
|
7
|
-
readonly stop?: (() => void) | undefined;
|
|
8
|
-
/** Team inject keeps delivery inside the public InputMachine facade. */
|
|
9
|
-
readonly submitInput: (mode: 'queue' | 'steer') => void;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Narrow, Team-owned member-session composer. It deliberately uses the public
|
|
13
|
-
* input state/actions and trigger controller rather than the shipped InputBar;
|
|
14
|
-
* owner-provided overlay remains inside the card so the shared menu renders.
|
|
15
|
-
*/
|
|
16
|
-
export declare function TeamMemberSessionComposer({ controller, inputActions, overlay, placeholder, disabled, blocked, stop, submitInput, useInput, useSession }: TeamMemberSessionComposerProps): import("react").JSX.Element;
|
|
17
|
-
//# sourceMappingURL=TeamMemberSessionComposer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TeamMemberSessionComposer.d.ts","sourceRoot":"","sources":["../../../src/client/TeamMemberSessionComposer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAc,MAAM,iDAAiD,CAAA;AAIzG,+EAA+E;AAC/E,MAAM,MAAM,8BAA8B,GAAG,YAAY,CAAC,2BAA2B,CAAC,GAAG;IACvF,QAAQ,CAAC,UAAU,EAAE,sBAAsB,CAAA;IAC3C,6EAA6E;IAC7E,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;IACxC,wEAAwE;IACxE,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,KAAK,IAAI,CAAA;CACxD,CAAA;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,8BAA8B,+BA4HvL"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
3
|
-
import { IconSendOutline16, IconStopFill16 } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
|
-
import { allowsMemberSessionSubmit, TEAM_COMMAND_SOURCE, TEAM_MEMBER_SOURCE } from "./member-session-input.js";
|
|
5
|
-
import css from './composer.module.css';
|
|
6
|
-
/**
|
|
7
|
-
* Narrow, Team-owned member-session composer. It deliberately uses the public
|
|
8
|
-
* input state/actions and trigger controller rather than the shipped InputBar;
|
|
9
|
-
* owner-provided overlay remains inside the card so the shared menu renders.
|
|
10
|
-
*/
|
|
11
|
-
export function TeamMemberSessionComposer({ controller, inputActions, overlay, placeholder, disabled, blocked, stop, submitInput, useInput, useSession }) {
|
|
12
|
-
const input = useInput(state => state);
|
|
13
|
-
const session = useSession(state => state);
|
|
14
|
-
const textarea = useRef(null);
|
|
15
|
-
const editedByHuman = useRef(undefined);
|
|
16
|
-
const compactWasSubmitting = useRef(false);
|
|
17
|
-
const composing = useRef(false);
|
|
18
|
-
const [submissionNotice, setSubmissionNotice] = useState();
|
|
19
|
-
const draft = input?.draft ?? '';
|
|
20
|
-
const isLocked = disabled === true || blocked !== undefined || inputActions === undefined || input === undefined;
|
|
21
|
-
useEffect(() => {
|
|
22
|
-
if (isLocked)
|
|
23
|
-
return;
|
|
24
|
-
const active = document.activeElement;
|
|
25
|
-
if (active !== document.body && active?.closest('[aria-current="page"]') === null)
|
|
26
|
-
return;
|
|
27
|
-
textarea.current?.focus({ preventScroll: true });
|
|
28
|
-
}, [isLocked]);
|
|
29
|
-
useLayoutEffect(() => {
|
|
30
|
-
const element = textarea.current;
|
|
31
|
-
if (element === null)
|
|
32
|
-
return;
|
|
33
|
-
element.style.height = 'auto';
|
|
34
|
-
element.style.height = `${Math.min(element.scrollHeight, 336)}px`;
|
|
35
|
-
}, [draft]);
|
|
36
|
-
useEffect(() => {
|
|
37
|
-
if (input === undefined)
|
|
38
|
-
return;
|
|
39
|
-
if (input.phase === 'submitting' && input.claim?.token === '/compact') {
|
|
40
|
-
compactWasSubmitting.current = true;
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
if (input.phase === 'claimed' && input.claim?.token === '/compact' && compactWasSubmitting.current) {
|
|
44
|
-
compactWasSubmitting.current = false;
|
|
45
|
-
setSubmissionNotice('Compact 未执行,请重试。');
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (input.phase === 'plain') {
|
|
49
|
-
// Reaching plain after a compact flight means the InputMachine adopted
|
|
50
|
-
// the clear-on-success draft; a stale retry notice must not outlive it.
|
|
51
|
-
if (compactWasSubmitting.current)
|
|
52
|
-
setSubmissionNotice(undefined);
|
|
53
|
-
compactWasSubmitting.current = false;
|
|
54
|
-
}
|
|
55
|
-
}, [input?.claim?.token, input?.phase]);
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
if (input === undefined)
|
|
58
|
-
return;
|
|
59
|
-
const edit = editedByHuman.current;
|
|
60
|
-
if (edit === undefined || edit.draft !== input.draft)
|
|
61
|
-
return;
|
|
62
|
-
editedByHuman.current = undefined;
|
|
63
|
-
const hit = triggerHit(input.draft, edit.caret, input.draftRev);
|
|
64
|
-
// toggleSource intentionally closes its own already-open launcher; reset
|
|
65
|
-
// first so consecutive real DOM edits always refresh candidates, while a
|
|
66
|
-
// pick-driven machine draft update never reopens a menu.
|
|
67
|
-
controller.dismiss();
|
|
68
|
-
if (hit !== undefined)
|
|
69
|
-
controller.toggleSource(hit.trigger === '/' ? TEAM_COMMAND_SOURCE : TEAM_MEMBER_SOURCE, hit);
|
|
70
|
-
}, [controller, input?.draft, input?.draftRev]);
|
|
71
|
-
const onChange = (event) => {
|
|
72
|
-
const caret = event.currentTarget.selectionStart;
|
|
73
|
-
editedByHuman.current = { draft: event.currentTarget.value, caret };
|
|
74
|
-
setSubmissionNotice(undefined);
|
|
75
|
-
inputActions?.setDraft(event.currentTarget.value);
|
|
76
|
-
};
|
|
77
|
-
const submit = () => {
|
|
78
|
-
if (input === undefined || inputActions === undefined)
|
|
79
|
-
return;
|
|
80
|
-
if (!allowsMemberSessionSubmit(input.draft, input.claim?.token)) {
|
|
81
|
-
setSubmissionNotice('此 Member Session 仅支持 /compact 命令。');
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
setSubmissionNotice(undefined);
|
|
85
|
-
submitInput(running ? 'steer' : 'queue');
|
|
86
|
-
};
|
|
87
|
-
const onKeyDown = (event) => {
|
|
88
|
-
// Shift+Enter is always a native newline, even while a candidate menu is
|
|
89
|
-
// open. Keep this ahead of IME/menu handling to match the resident bar.
|
|
90
|
-
if (event.key === 'Enter' && event.shiftKey)
|
|
91
|
-
return;
|
|
92
|
-
if (event.repeat || composing.current || event.nativeEvent.isComposing || event.nativeEvent.keyCode === 229)
|
|
93
|
-
return;
|
|
94
|
-
// Tab accepts the highlighted candidate, mirroring the team-mode composer
|
|
95
|
-
// and the Channel/Thread bars; Shift+Tab keeps native focus reversal.
|
|
96
|
-
if (event.key === 'Tab' && !event.shiftKey) {
|
|
97
|
-
const highlight = controller.menu.getSnapshot().highlight;
|
|
98
|
-
if (highlight !== null) {
|
|
99
|
-
event.preventDefault();
|
|
100
|
-
controller.pick(highlight.source, highlight.index);
|
|
101
|
-
}
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
const key = event.key === 'ArrowUp' ? 'up' : event.key === 'ArrowDown' ? 'down' : event.key === 'Escape' ? 'escape' : event.key === 'Enter' ? 'enter' : undefined;
|
|
105
|
-
if (key !== undefined) {
|
|
106
|
-
const outcome = controller.arbitrate(key, false);
|
|
107
|
-
if (outcome !== 'pass') {
|
|
108
|
-
event.preventDefault();
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
if (event.key === 'Enter') {
|
|
113
|
-
event.preventDefault();
|
|
114
|
-
submit();
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
const running = session?.running ?? false;
|
|
118
|
-
const promptError = session?.promptError;
|
|
119
|
-
return _jsxs("div", { className: `${css.root} ${css.memberSessionRoot}`, "data-team-member-composer": "true", children: [(submissionNotice !== undefined || promptError !== null && promptError !== undefined) && (_jsx("p", { className: css.memberSessionStatus, role: "alert", children: submissionNotice ?? promptError?.error.message })), _jsxs("div", { className: `${css.card} ${css.memberSessionCard}`, "data-composer-card": "true", children: [_jsxs("div", { className: `${css.inputArea} ${css.memberSessionInputArea}`, children: [_jsx("textarea", { ref: textarea, value: draft, disabled: isLocked, placeholder: blocked?.reason ?? placeholder ?? '给成员发送直接消息', onChange: onChange, onKeyDown: onKeyDown, onCompositionStart: () => { composing.current = true; }, onCompositionEnd: () => { composing.current = false; } }), overlay] }), _jsx("div", { className: `${css.toolbar} ${css.memberSessionToolbar}`, children: _jsx("button", { className: `${css.sendButton} ${css.memberSessionPrimary}`, type: "button", "aria-label": running ? '停止生成' : '发送消息', disabled: isLocked || (!running && draft.trim() === ''), onClick: () => { if (running)
|
|
120
|
-
stop?.();
|
|
121
|
-
else
|
|
122
|
-
submit(); }, children: running ? _jsx(IconStopFill16, { size: 16 }) : _jsx(IconSendOutline16, { size: 16 }) }) })] })] });
|
|
123
|
-
}
|
|
124
|
-
function triggerHit(draft, caret, draftRev) {
|
|
125
|
-
const before = draft.slice(0, caret);
|
|
126
|
-
const leading = before.match(/^\s*\/([^\s]*)$/u);
|
|
127
|
-
if (leading !== null) {
|
|
128
|
-
const start = before.indexOf('/');
|
|
129
|
-
return { trigger: '/', query: leading[1], quoted: false, position: 'leading', span: { start, end: caret, draftRev } };
|
|
130
|
-
}
|
|
131
|
-
const at = before.lastIndexOf('@');
|
|
132
|
-
if (at < 0 || /[\p{L}\p{N}_]/u.test(before[at - 1] ?? '') || /\s/u.test(before.slice(at + 1)))
|
|
133
|
-
return undefined;
|
|
134
|
-
return { trigger: '@', query: before.slice(at + 1), quoted: false, position: 'inline', span: { start: at, end: caret, draftRev } };
|
|
135
|
-
}
|