@wowyuarm/dsh-agent-team 0.1.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/LICENSE +21 -0
- package/README.md +103 -0
- package/README.zh.md +103 -0
- package/cordis.patch.yml +36 -0
- package/package.json +152 -0
- package/packages/agent-team/README.md +58 -0
- package/packages/agent-team/README.zh.md +57 -0
- package/packages/agent-team/lib/index.js +841 -0
- package/packages/agent-team/lib/invariant.js +24 -0
- package/packages/agent-team/lib/ledger.js +2161 -0
- package/packages/agent-team/lib/member-context.js +69 -0
- package/packages/agent-team/lib/preset-roster.js +14 -0
- package/packages/agent-team/lib/spec.js +347 -0
- package/packages/agent-team/lib/typert.host.d.ts +3 -0
- package/packages/agent-team/lib/typert.host.js +2084 -0
- package/packages/agent-team/lib/typert.remote-client.d.ts +54 -0
- package/packages/agent-team/lib/typert.remote-client.d.ts.map +1 -0
- package/packages/agent-team/lib/typert.remote-client.js +1218 -0
- package/packages/agent-team/lib/types/index.d.ts +156 -0
- package/packages/agent-team/lib/types/index.d.ts.map +1 -0
- package/packages/agent-team/lib/types/invariant.d.ts +13 -0
- package/packages/agent-team/lib/types/invariant.d.ts.map +1 -0
- package/packages/agent-team/lib/types/ledger.d.ts +271 -0
- package/packages/agent-team/lib/types/ledger.d.ts.map +1 -0
- package/packages/agent-team/lib/types/member-context.d.ts +7 -0
- package/packages/agent-team/lib/types/member-context.d.ts.map +1 -0
- package/packages/agent-team/lib/types/preset-roster.d.ts +5 -0
- package/packages/agent-team/lib/types/preset-roster.d.ts.map +1 -0
- package/packages/agent-team/lib/types/spec.d.ts +13 -0
- package/packages/agent-team/lib/types/spec.d.ts.map +1 -0
- package/packages/agent-team/lib/types/types.d.ts +818 -0
- package/packages/agent-team/lib/types/types.d.ts.map +1 -0
- package/packages/agent-team/lib/types.js +1 -0
- package/packages/agent-team/preset/team-member/agent.cordis.yml +89 -0
- package/packages/client-agent-team/README.md +39 -0
- package/packages/client-agent-team/README.zh.md +39 -0
- package/packages/client-agent-team/lib/client.js +9633 -0
- package/packages/client-agent-team/lib/client.js.map +1 -0
- package/packages/client-agent-team/lib/index.js +5 -0
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts +20 -0
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.js +274 -0
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts +19 -0
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.js +243 -0
- package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.d.ts +21 -0
- package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.js +196 -0
- package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts +15 -0
- package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamComposer.js +144 -0
- package/packages/client-agent-team/lib/types/client/TeamConversation.d.ts +3 -0
- package/packages/client-agent-team/lib/types/client/TeamConversation.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamConversation.js +20 -0
- package/packages/client-agent-team/lib/types/client/TeamFooterAction.d.ts +3 -0
- package/packages/client-agent-team/lib/types/client/TeamFooterAction.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamFooterAction.js +19 -0
- package/packages/client-agent-team/lib/types/client/TeamInboxPanel.d.ts +13 -0
- package/packages/client-agent-team/lib/types/client/TeamInboxPanel.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamInboxPanel.js +90 -0
- package/packages/client-agent-team/lib/types/client/TeamMemberAvatar.d.ts +12 -0
- package/packages/client-agent-team/lib/types/client/TeamMemberAvatar.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamMemberAvatar.js +15 -0
- package/packages/client-agent-team/lib/types/client/TeamMembersAction.d.ts +5 -0
- package/packages/client-agent-team/lib/types/client/TeamMembersAction.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamMembersAction.js +32 -0
- package/packages/client-agent-team/lib/types/client/TeamMessage.d.ts +19 -0
- package/packages/client-agent-team/lib/types/client/TeamMessage.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamMessage.js +24 -0
- package/packages/client-agent-team/lib/types/client/TeamPresenceDot.d.ts +11 -0
- package/packages/client-agent-team/lib/types/client/TeamPresenceDot.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamPresenceDot.js +20 -0
- package/packages/client-agent-team/lib/types/client/TeamRowMenu.d.ts +15 -0
- package/packages/client-agent-team/lib/types/client/TeamRowMenu.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamRowMenu.js +23 -0
- package/packages/client-agent-team/lib/types/client/TeamSettings.d.ts +3 -0
- package/packages/client-agent-team/lib/types/client/TeamSettings.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamSettings.js +5 -0
- package/packages/client-agent-team/lib/types/client/TeamSidebarSection.d.ts +9 -0
- package/packages/client-agent-team/lib/types/client/TeamSidebarSection.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamSidebarSection.js +9 -0
- package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts +22 -0
- package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamThreadPage.js +464 -0
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts +3 -0
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.js +39 -0
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceRow.d.ts +11 -0
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceRow.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceRow.js +6 -0
- package/packages/client-agent-team/lib/types/client/index.d.ts +19 -0
- package/packages/client-agent-team/lib/types/client/index.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/index.js +113 -0
- package/packages/client-agent-team/lib/types/client/locales.d.ts +224 -0
- package/packages/client-agent-team/lib/types/client/locales.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/locales.js +222 -0
- package/packages/client-agent-team/lib/types/client/navigation.d.ts +39 -0
- package/packages/client-agent-team/lib/types/client/navigation.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/navigation.js +96 -0
- package/packages/client-agent-team/lib/types/client/slots.d.ts +74 -0
- package/packages/client-agent-team/lib/types/client/slots.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/slots.js +1 -0
- package/packages/client-agent-team/lib/types/client/team-changes.d.ts +28 -0
- package/packages/client-agent-team/lib/types/client/team-changes.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/team-changes.js +70 -0
- package/packages/client-agent-team/lib/types/client/team-formatters.d.ts +53 -0
- package/packages/client-agent-team/lib/types/client/team-formatters.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/team-formatters.js +128 -0
- package/packages/client-agent-team/lib/types/client/team-membership.d.ts +25 -0
- package/packages/client-agent-team/lib/types/client/team-membership.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/team-membership.js +39 -0
- package/packages/client-agent-team/lib/types/client/team-separators.d.ts +23 -0
- package/packages/client-agent-team/lib/types/client/team-separators.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/team-separators.js +52 -0
- package/packages/client-agent-team/lib/types/client/timeline-scroll.d.ts +18 -0
- package/packages/client-agent-team/lib/types/client/timeline-scroll.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/timeline-scroll.js +54 -0
- package/packages/client-agent-team/lib/types/index.d.ts +3 -0
- package/packages/client-agent-team/lib/types/index.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/index.js +2 -0
- package/packages/tool-agent-team/README.md +23 -0
- package/packages/tool-agent-team/README.zh.md +23 -0
- package/packages/tool-agent-team/lib/index.js +294 -0
- package/packages/tool-agent-team/lib/types/index.d.ts +5 -0
- package/packages/tool-agent-team/lib/types/index.d.ts.map +1 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import agentTeamRemote from '../../../agent-team/lib/typert.remote-client.js';
|
|
2
|
+
import { TeamNavigation } from "./navigation.js";
|
|
3
|
+
import { TeamChangeStream } from "./team-changes.js";
|
|
4
|
+
import { TeamFooterAction } from "./TeamFooterAction.js";
|
|
5
|
+
import { TeamSettings } from "./TeamSettings.js";
|
|
6
|
+
import { TeamConversation } from "./TeamConversation.js";
|
|
7
|
+
import { TeamWorkspaceBrowser } from "./TeamWorkspaceBrowser.js";
|
|
8
|
+
import { en, zh } from "./locales.js";
|
|
9
|
+
export { TeamNavigation } from "./navigation.js";
|
|
10
|
+
const NS = 'team';
|
|
11
|
+
export const inject = [
|
|
12
|
+
'slots', 'workspaces', 'locale', 'remote', 'sessions', 'connection',
|
|
13
|
+
];
|
|
14
|
+
function registerModeShadow(ctx, navigation, changes, name, component, extraInject) {
|
|
15
|
+
// Remote bindings shared by every Team slot; surface-specific entries extend it below.
|
|
16
|
+
const sharedRemotes = {
|
|
17
|
+
loadChannels: (request) => ctx.remote.agentTeam.view(request),
|
|
18
|
+
subscribeChanges: (scope, listener) => changes.subscribe(scope, listener),
|
|
19
|
+
loadMembers: (request) => ctx.remote.agentTeam.members(request),
|
|
20
|
+
joinChannel: (request) => ctx.remote.agentTeam.joinChannel(request),
|
|
21
|
+
removeChannelMember: (request) => ctx.remote.agentTeam.removeChannelMember(request),
|
|
22
|
+
updateChannel: (request) => ctx.remote.agentTeam.updateChannel(request),
|
|
23
|
+
updateMember: (request) => ctx.remote.agentTeam.updateMember(request),
|
|
24
|
+
// The Host-scoped catalog needs no live Member, so suspended ones stay editable too.
|
|
25
|
+
loadModels: async () => {
|
|
26
|
+
const connection = ctx.get('connection');
|
|
27
|
+
const response = await connection.api.llm.models({});
|
|
28
|
+
return response.result;
|
|
29
|
+
},
|
|
30
|
+
openMemberSession: (sessionId) => {
|
|
31
|
+
// Leave Team mode first so every Team shadow deregisters and the
|
|
32
|
+
// ordinary shell actually renders the Member Session selected below.
|
|
33
|
+
navigation.actions().leaveTeam();
|
|
34
|
+
ctx.sessions.open(sessionId);
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
ctx.slots.inject(name, () => {
|
|
38
|
+
let dispose;
|
|
39
|
+
const reconcile = () => {
|
|
40
|
+
const active = navigation.getSnapshot().mode === 'team';
|
|
41
|
+
if (active && dispose === undefined) {
|
|
42
|
+
dispose = ctx.slots.register({
|
|
43
|
+
name,
|
|
44
|
+
priority: -100,
|
|
45
|
+
locale: NS,
|
|
46
|
+
inject: () => ({
|
|
47
|
+
navigation,
|
|
48
|
+
...extraInject?.(),
|
|
49
|
+
...navigation.actions(),
|
|
50
|
+
...sharedRemotes,
|
|
51
|
+
...(name === 'conversation' ? {
|
|
52
|
+
readThread: (request) => ctx.remote.agentTeam.readThread(request),
|
|
53
|
+
loadThreadHistory: (request) => ctx.remote.agentTeam.threadHistory(request),
|
|
54
|
+
sendMessage: (request) => ctx.remote.agentTeam.sendMessage(request),
|
|
55
|
+
reply: (request) => ctx.remote.agentTeam.reply(request),
|
|
56
|
+
changeTask: (request) => ctx.remote.agentTeam.changeTask(request),
|
|
57
|
+
} : {}),
|
|
58
|
+
...(name === 'sidebar.workspaces' ? {
|
|
59
|
+
addMember: (request) => ctx.remote.agentTeam.addMember(request),
|
|
60
|
+
createChannel: (request) => ctx.remote.agentTeam.createChannel(request),
|
|
61
|
+
} : {}),
|
|
62
|
+
}),
|
|
63
|
+
}, component);
|
|
64
|
+
}
|
|
65
|
+
else if (!active && dispose !== undefined) {
|
|
66
|
+
dispose();
|
|
67
|
+
dispose = undefined;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const unsubscribe = navigation.subscribe(reconcile);
|
|
71
|
+
reconcile();
|
|
72
|
+
return () => {
|
|
73
|
+
unsubscribe();
|
|
74
|
+
dispose?.();
|
|
75
|
+
dispose = undefined;
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function applyUi(ctx) {
|
|
80
|
+
ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'agent-team: dictionaries');
|
|
81
|
+
const navigation = new TeamNavigation();
|
|
82
|
+
const disposeNavigation = ctx.reflect.provide('teamNavigation', navigation);
|
|
83
|
+
ctx.effect(() => () => {
|
|
84
|
+
navigation.dispose();
|
|
85
|
+
void disposeNavigation();
|
|
86
|
+
}, 'agent-team: navigation service');
|
|
87
|
+
const changes = new TeamChangeStream((request, signal) => ctx.remote.agentTeam.changes(request, signal));
|
|
88
|
+
const loadMemberGroups = async () => {
|
|
89
|
+
const workspaces = ctx.workspaces.list.getSnapshot().items;
|
|
90
|
+
const groups = await Promise.all(workspaces.map(async (workspace) => {
|
|
91
|
+
const result = await ctx.remote.agentTeam.members({ workspaceId: workspace.workspaceId });
|
|
92
|
+
if (!result.ok)
|
|
93
|
+
throw new Error(result.error.message);
|
|
94
|
+
return { workspaceId: workspace.workspaceId, workspaceTitle: workspace.title, members: result.value };
|
|
95
|
+
}));
|
|
96
|
+
return groups.filter(group => group.members.length > 0);
|
|
97
|
+
};
|
|
98
|
+
ctx.slots.inject('sidebar.footer.action', () => ctx.slots.register({
|
|
99
|
+
name: 'sidebar.footer.action',
|
|
100
|
+
id: 'agent-team',
|
|
101
|
+
order: 100,
|
|
102
|
+
locale: NS,
|
|
103
|
+
inject: () => ({ navigation, ...navigation.actions(), loadMemberGroups }),
|
|
104
|
+
}, TeamFooterAction));
|
|
105
|
+
registerModeShadow(ctx, navigation, changes, 'sidebar.workspaces', TeamWorkspaceBrowser);
|
|
106
|
+
registerModeShadow(ctx, navigation, changes, 'conversation', TeamConversation);
|
|
107
|
+
registerModeShadow(ctx, navigation, changes, 'sidebar.settings', TeamSettings, () => ({ loadMemberGroups }));
|
|
108
|
+
}
|
|
109
|
+
export async function apply(ctx) {
|
|
110
|
+
const disposeRemote = await ctx.remote.$mount(agentTeamRemote);
|
|
111
|
+
ctx.effect(() => () => { void disposeRemote(); }, 'agent-team: remote');
|
|
112
|
+
ctx.inject(['remote.agentTeam'], ready => { applyUi(ready); });
|
|
113
|
+
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
export declare const zh: {
|
|
2
|
+
readonly team: "团队";
|
|
3
|
+
readonly backToConversations: "对话";
|
|
4
|
+
readonly workspaces: "工作区";
|
|
5
|
+
readonly channels: "频道";
|
|
6
|
+
readonly agents: "Agents";
|
|
7
|
+
readonly members: "成员";
|
|
8
|
+
readonly selectChannelHint: "从左侧选择一个频道开始协作";
|
|
9
|
+
readonly empty: "选择一个工作区开始团队协作";
|
|
10
|
+
readonly teamMode: "团队模式";
|
|
11
|
+
readonly workspaceSections: "工作区内容";
|
|
12
|
+
readonly addAgent: "添加 Agent";
|
|
13
|
+
readonly cancel: "取消";
|
|
14
|
+
readonly close: "关闭";
|
|
15
|
+
readonly retry: "重试";
|
|
16
|
+
readonly agentName: "名称";
|
|
17
|
+
readonly agentDescription: "说明";
|
|
18
|
+
readonly initialChannels: "初始频道";
|
|
19
|
+
readonly noChannelsForAgent: "请先创建至少一个频道";
|
|
20
|
+
readonly createAgent: "创建 Agent";
|
|
21
|
+
readonly creatingAgent: "正在创建…";
|
|
22
|
+
readonly loadingAgents: "正在加载 Agents…";
|
|
23
|
+
readonly emptyAgents: "还没有 Agent";
|
|
24
|
+
readonly statusAvailable: "可用";
|
|
25
|
+
readonly statusWorking: "工作中";
|
|
26
|
+
readonly statusError: "错误";
|
|
27
|
+
readonly statusUnavailable: "不可用";
|
|
28
|
+
readonly addChannel: "新建频道";
|
|
29
|
+
readonly channelName: "名称";
|
|
30
|
+
readonly channelDescription: "说明";
|
|
31
|
+
readonly initialMembers: "初始成员";
|
|
32
|
+
readonly createChannel: "创建频道";
|
|
33
|
+
readonly creatingChannel: "正在创建…";
|
|
34
|
+
readonly loadingChannels: "正在加载频道…";
|
|
35
|
+
readonly emptyChannels: "还没有频道";
|
|
36
|
+
readonly manageMembers: "管理成员";
|
|
37
|
+
readonly editChannel: "编辑频道";
|
|
38
|
+
readonly editAgent: "编辑 Agent";
|
|
39
|
+
readonly actionsChannel: "{name} 的操作";
|
|
40
|
+
readonly actionsAgent: "{name} 的操作";
|
|
41
|
+
readonly editSave: "保存";
|
|
42
|
+
readonly editSaving: "保存中…";
|
|
43
|
+
readonly channelMembersSection: "频道成员";
|
|
44
|
+
readonly memberModel: "模型";
|
|
45
|
+
readonly modelFollowDefault: "跟随全局默认";
|
|
46
|
+
readonly modelsLoading: "正在加载模型目录…";
|
|
47
|
+
readonly modelsLoadFailed: "模型目录加载失败:{message}";
|
|
48
|
+
readonly openAgentSession: "打开 {name} 的会话";
|
|
49
|
+
readonly channelMembers: "频道成员";
|
|
50
|
+
readonly memberCount: "{count} 位成员";
|
|
51
|
+
readonly onlineCount: "{count} 位在线";
|
|
52
|
+
readonly addToChannel: "添加";
|
|
53
|
+
readonly removeFromChannel: "移除";
|
|
54
|
+
readonly membershipUpdating: "更新中…";
|
|
55
|
+
readonly memberUnavailableReason: "当前不可用,不能加入频道";
|
|
56
|
+
readonly memberCreatingReason: "正在创建,完成前不能加入频道";
|
|
57
|
+
readonly emptyMessages: "还没有消息";
|
|
58
|
+
readonly emptyMessagesHint: "发送第一条消息,开始这次协作";
|
|
59
|
+
readonly timelineLabel: "消息时间线";
|
|
60
|
+
readonly taskClosedNotice: "任务已关闭,重新打开后可继续讨论";
|
|
61
|
+
readonly human: "Human";
|
|
62
|
+
readonly taskStatusTodo: "待处理";
|
|
63
|
+
readonly taskStatusInProgress: "进行中";
|
|
64
|
+
readonly taskStatusInReview: "待验收";
|
|
65
|
+
readonly taskStatusDone: "已完成";
|
|
66
|
+
readonly taskStatusClosed: "已关闭";
|
|
67
|
+
readonly taskMessageCount: "{count} 条消息";
|
|
68
|
+
readonly taskLabel: "Task #{number}";
|
|
69
|
+
readonly taskPending: "Task …";
|
|
70
|
+
readonly openTask: "打开 Task #{number}";
|
|
71
|
+
readonly mentionSuggestions: "提及成员建议";
|
|
72
|
+
readonly messageDraft: "消息内容";
|
|
73
|
+
readonly composerNotify: "将通知:{ids}";
|
|
74
|
+
readonly messagePlaceholder: "写一条消息…";
|
|
75
|
+
readonly sendMessage: "发送";
|
|
76
|
+
readonly sendingMessage: "发送中…";
|
|
77
|
+
readonly loadOlder: "加载更早消息";
|
|
78
|
+
readonly backToChannel: "返回频道";
|
|
79
|
+
readonly backToChannels: "返回频道列表";
|
|
80
|
+
readonly backToWorkspace: "返回工作区";
|
|
81
|
+
readonly loadingThread: "正在加载 Thread…";
|
|
82
|
+
readonly unreadBoundary: "以下是本次打开收到的更新";
|
|
83
|
+
readonly readNewUpdates: "读取 {count} 条新更新";
|
|
84
|
+
readonly markRead: "标记为已读";
|
|
85
|
+
readonly remainingUnread: "还有 {count} 条未读更新";
|
|
86
|
+
readonly continueReading: "继续阅读";
|
|
87
|
+
readonly olderHistory: "更早历史";
|
|
88
|
+
readonly runtimeRisk: "当前运行风险";
|
|
89
|
+
readonly runtimeRiskDetail: "@{member} 当前不可用:{diagnostic}";
|
|
90
|
+
readonly acceptTask: "验收";
|
|
91
|
+
readonly closeTask: "关闭任务";
|
|
92
|
+
readonly reopenTask: "重新打开";
|
|
93
|
+
readonly claims: "Claims";
|
|
94
|
+
readonly noClaims: "还没有 Claim";
|
|
95
|
+
readonly claimStateActive: "进行中";
|
|
96
|
+
readonly claimStateDone: "已完成";
|
|
97
|
+
readonly claimStateReleased: "已释放";
|
|
98
|
+
readonly memberUnknown: "成员";
|
|
99
|
+
readonly activityClaimed: "{actor} 认领了「{direction}」";
|
|
100
|
+
readonly activityClaimDone: "{actor} 完成了「{direction}」";
|
|
101
|
+
readonly activityClaimReleased: "{actor} 释放了「{direction}」";
|
|
102
|
+
readonly activityClaimsReleased: "{actor} 因成员权限变化释放了 {count} 个 Claim";
|
|
103
|
+
readonly activityAccepted: "{actor} 验收了此 Task";
|
|
104
|
+
readonly activityClosed: "{actor} 关闭了此 Task";
|
|
105
|
+
readonly activityReopened: "{actor} 重新打开了此 Task";
|
|
106
|
+
readonly mentionConfirmation: "提及未关注成员需要确认,再次发送以继续";
|
|
107
|
+
readonly memberNotFollowing: "这些成员还未关注此 Thread:{ids}";
|
|
108
|
+
readonly sendFailedKind: "无法发送消息({kind})";
|
|
109
|
+
readonly unreadRequired: "请先读取 {count} 条未读更新,再继续修改。";
|
|
110
|
+
readonly staleRevision: "Thread 已发生变化,请按最新状态重试。";
|
|
111
|
+
};
|
|
112
|
+
export declare const en: {
|
|
113
|
+
readonly team: "Team";
|
|
114
|
+
readonly backToConversations: "Conversations";
|
|
115
|
+
readonly workspaces: "Workspaces";
|
|
116
|
+
readonly channels: "Channels";
|
|
117
|
+
readonly agents: "Agents";
|
|
118
|
+
readonly members: "Members";
|
|
119
|
+
readonly selectChannelHint: "Select a Channel on the left to start collaborating";
|
|
120
|
+
readonly empty: "Select a workspace to start team work";
|
|
121
|
+
readonly teamMode: "Team mode";
|
|
122
|
+
readonly workspaceSections: "Workspace sections";
|
|
123
|
+
readonly addAgent: "Add Agent";
|
|
124
|
+
readonly cancel: "Cancel";
|
|
125
|
+
readonly close: "Close";
|
|
126
|
+
readonly retry: "Retry";
|
|
127
|
+
readonly agentName: "Name";
|
|
128
|
+
readonly agentDescription: "Description";
|
|
129
|
+
readonly initialChannels: "Initial Channels";
|
|
130
|
+
readonly noChannelsForAgent: "Create at least one Channel first";
|
|
131
|
+
readonly createAgent: "Create Agent";
|
|
132
|
+
readonly creatingAgent: "Creating…";
|
|
133
|
+
readonly loadingAgents: "Loading Agents…";
|
|
134
|
+
readonly emptyAgents: "No Agents yet";
|
|
135
|
+
readonly statusAvailable: "Available";
|
|
136
|
+
readonly statusWorking: "Working";
|
|
137
|
+
readonly statusError: "Error";
|
|
138
|
+
readonly statusUnavailable: "Unavailable";
|
|
139
|
+
readonly addChannel: "New Channel";
|
|
140
|
+
readonly channelName: "Name";
|
|
141
|
+
readonly channelDescription: "Description";
|
|
142
|
+
readonly initialMembers: "Initial members";
|
|
143
|
+
readonly createChannel: "Create Channel";
|
|
144
|
+
readonly creatingChannel: "Creating…";
|
|
145
|
+
readonly loadingChannels: "Loading Channels…";
|
|
146
|
+
readonly emptyChannels: "No Channels yet";
|
|
147
|
+
readonly manageMembers: "Manage members";
|
|
148
|
+
readonly editChannel: "Edit Channel";
|
|
149
|
+
readonly editAgent: "Edit Agent";
|
|
150
|
+
readonly actionsChannel: "{name} actions";
|
|
151
|
+
readonly actionsAgent: "{name} actions";
|
|
152
|
+
readonly editSave: "Save";
|
|
153
|
+
readonly editSaving: "Saving…";
|
|
154
|
+
readonly channelMembersSection: "Channel members";
|
|
155
|
+
readonly memberModel: "Model";
|
|
156
|
+
readonly modelFollowDefault: "Follow global default";
|
|
157
|
+
readonly modelsLoading: "Loading model catalog…";
|
|
158
|
+
readonly modelsLoadFailed: "Failed to load the model catalog: {message}";
|
|
159
|
+
readonly openAgentSession: "Open {name} session";
|
|
160
|
+
readonly channelMembers: "Channel members";
|
|
161
|
+
readonly memberCount: "{count} members";
|
|
162
|
+
readonly onlineCount: "{count} online";
|
|
163
|
+
readonly addToChannel: "Add";
|
|
164
|
+
readonly removeFromChannel: "Remove";
|
|
165
|
+
readonly membershipUpdating: "Updating…";
|
|
166
|
+
readonly memberUnavailableReason: "Unavailable members cannot join a Channel";
|
|
167
|
+
readonly memberCreatingReason: "Creating; cannot join a Channel until complete";
|
|
168
|
+
readonly emptyMessages: "No messages yet";
|
|
169
|
+
readonly emptyMessagesHint: "Send the first message to start this collaboration";
|
|
170
|
+
readonly timelineLabel: "Message timeline";
|
|
171
|
+
readonly taskClosedNotice: "This task is closed; reopen it to continue the discussion";
|
|
172
|
+
readonly human: "Human";
|
|
173
|
+
readonly taskStatusTodo: "To do";
|
|
174
|
+
readonly taskStatusInProgress: "In progress";
|
|
175
|
+
readonly taskStatusInReview: "In review";
|
|
176
|
+
readonly taskStatusDone: "Done";
|
|
177
|
+
readonly taskStatusClosed: "Closed";
|
|
178
|
+
readonly taskMessageCount: "{count} messages";
|
|
179
|
+
readonly taskLabel: "Task #{number}";
|
|
180
|
+
readonly taskPending: "Task …";
|
|
181
|
+
readonly openTask: "Open Task #{number}";
|
|
182
|
+
readonly mentionSuggestions: "Mention suggestions";
|
|
183
|
+
readonly messageDraft: "Message";
|
|
184
|
+
readonly composerNotify: "Will notify: {ids}";
|
|
185
|
+
readonly messagePlaceholder: "Write a message…";
|
|
186
|
+
readonly sendMessage: "Send";
|
|
187
|
+
readonly sendingMessage: "Sending…";
|
|
188
|
+
readonly loadOlder: "Load older messages";
|
|
189
|
+
readonly backToChannel: "Back to Channel";
|
|
190
|
+
readonly backToChannels: "All channels";
|
|
191
|
+
readonly backToWorkspace: "Back to Workspace";
|
|
192
|
+
readonly loadingThread: "Loading Thread…";
|
|
193
|
+
readonly unreadBoundary: "Updates received when you opened this Thread";
|
|
194
|
+
readonly readNewUpdates: "Read {count} new update(s)";
|
|
195
|
+
readonly markRead: "Mark read";
|
|
196
|
+
readonly remainingUnread: "{count} unread update(s) remain";
|
|
197
|
+
readonly continueReading: "Continue reading";
|
|
198
|
+
readonly olderHistory: "Older history";
|
|
199
|
+
readonly runtimeRisk: "Current runtime risk";
|
|
200
|
+
readonly runtimeRiskDetail: "@{member} is unavailable: {diagnostic}";
|
|
201
|
+
readonly acceptTask: "Accept";
|
|
202
|
+
readonly closeTask: "Close task";
|
|
203
|
+
readonly reopenTask: "Reopen";
|
|
204
|
+
readonly claims: "Claims";
|
|
205
|
+
readonly noClaims: "No Claims yet";
|
|
206
|
+
readonly claimStateActive: "Active";
|
|
207
|
+
readonly claimStateDone: "Done";
|
|
208
|
+
readonly claimStateReleased: "Released";
|
|
209
|
+
readonly memberUnknown: "Member";
|
|
210
|
+
readonly activityClaimed: "{actor} claimed “{direction}”";
|
|
211
|
+
readonly activityClaimDone: "{actor} completed “{direction}”";
|
|
212
|
+
readonly activityClaimReleased: "{actor} released “{direction}”";
|
|
213
|
+
readonly activityClaimsReleased: "{actor} released {count} Claim(s) after a membership change";
|
|
214
|
+
readonly activityAccepted: "{actor} accepted this Task";
|
|
215
|
+
readonly activityClosed: "{actor} closed this Task";
|
|
216
|
+
readonly activityReopened: "{actor} reopened this Task";
|
|
217
|
+
readonly mentionConfirmation: "Mentioning an unfollowed member requires confirmation; send again to continue";
|
|
218
|
+
readonly memberNotFollowing: "These Members do not follow this Thread yet: {ids}";
|
|
219
|
+
readonly sendFailedKind: "Unable to send message ({kind})";
|
|
220
|
+
readonly unreadRequired: "Read {count} unread update(s) before changing this Thread.";
|
|
221
|
+
readonly staleRevision: "This Thread changed; retry using the current state.";
|
|
222
|
+
};
|
|
223
|
+
export type TeamKey = keyof typeof zh;
|
|
224
|
+
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GL,CAAA;AAEV,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GL,CAAA;AAEV,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,EAAE,CAAA"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
export const zh = {
|
|
2
|
+
team: '团队',
|
|
3
|
+
backToConversations: '对话',
|
|
4
|
+
workspaces: '工作区',
|
|
5
|
+
channels: '频道',
|
|
6
|
+
agents: 'Agents',
|
|
7
|
+
members: '成员',
|
|
8
|
+
selectChannelHint: '从左侧选择一个频道开始协作',
|
|
9
|
+
empty: '选择一个工作区开始团队协作',
|
|
10
|
+
teamMode: '团队模式',
|
|
11
|
+
workspaceSections: '工作区内容',
|
|
12
|
+
addAgent: '添加 Agent',
|
|
13
|
+
cancel: '取消',
|
|
14
|
+
close: '关闭',
|
|
15
|
+
retry: '重试',
|
|
16
|
+
agentName: '名称',
|
|
17
|
+
agentDescription: '说明',
|
|
18
|
+
initialChannels: '初始频道',
|
|
19
|
+
noChannelsForAgent: '请先创建至少一个频道',
|
|
20
|
+
createAgent: '创建 Agent',
|
|
21
|
+
creatingAgent: '正在创建…',
|
|
22
|
+
loadingAgents: '正在加载 Agents…',
|
|
23
|
+
emptyAgents: '还没有 Agent',
|
|
24
|
+
statusAvailable: '可用',
|
|
25
|
+
statusWorking: '工作中',
|
|
26
|
+
statusError: '错误',
|
|
27
|
+
statusUnavailable: '不可用',
|
|
28
|
+
addChannel: '新建频道',
|
|
29
|
+
channelName: '名称',
|
|
30
|
+
channelDescription: '说明',
|
|
31
|
+
initialMembers: '初始成员',
|
|
32
|
+
createChannel: '创建频道',
|
|
33
|
+
creatingChannel: '正在创建…',
|
|
34
|
+
loadingChannels: '正在加载频道…',
|
|
35
|
+
emptyChannels: '还没有频道',
|
|
36
|
+
manageMembers: '管理成员',
|
|
37
|
+
editChannel: '编辑频道',
|
|
38
|
+
editAgent: '编辑 Agent',
|
|
39
|
+
actionsChannel: '{name} 的操作',
|
|
40
|
+
actionsAgent: '{name} 的操作',
|
|
41
|
+
editSave: '保存',
|
|
42
|
+
editSaving: '保存中…',
|
|
43
|
+
channelMembersSection: '频道成员',
|
|
44
|
+
memberModel: '模型',
|
|
45
|
+
modelFollowDefault: '跟随全局默认',
|
|
46
|
+
modelsLoading: '正在加载模型目录…',
|
|
47
|
+
modelsLoadFailed: '模型目录加载失败:{message}',
|
|
48
|
+
openAgentSession: '打开 {name} 的会话',
|
|
49
|
+
channelMembers: '频道成员',
|
|
50
|
+
memberCount: '{count} 位成员',
|
|
51
|
+
onlineCount: '{count} 位在线',
|
|
52
|
+
addToChannel: '添加',
|
|
53
|
+
removeFromChannel: '移除',
|
|
54
|
+
membershipUpdating: '更新中…',
|
|
55
|
+
memberUnavailableReason: '当前不可用,不能加入频道',
|
|
56
|
+
memberCreatingReason: '正在创建,完成前不能加入频道',
|
|
57
|
+
emptyMessages: '还没有消息',
|
|
58
|
+
emptyMessagesHint: '发送第一条消息,开始这次协作',
|
|
59
|
+
timelineLabel: '消息时间线',
|
|
60
|
+
taskClosedNotice: '任务已关闭,重新打开后可继续讨论',
|
|
61
|
+
human: 'Human',
|
|
62
|
+
taskStatusTodo: '待处理',
|
|
63
|
+
taskStatusInProgress: '进行中',
|
|
64
|
+
taskStatusInReview: '待验收',
|
|
65
|
+
taskStatusDone: '已完成',
|
|
66
|
+
taskStatusClosed: '已关闭',
|
|
67
|
+
taskMessageCount: '{count} 条消息',
|
|
68
|
+
taskLabel: 'Task #{number}',
|
|
69
|
+
taskPending: 'Task …',
|
|
70
|
+
openTask: '打开 Task #{number}',
|
|
71
|
+
mentionSuggestions: '提及成员建议',
|
|
72
|
+
messageDraft: '消息内容',
|
|
73
|
+
composerNotify: '将通知:{ids}',
|
|
74
|
+
messagePlaceholder: '写一条消息…',
|
|
75
|
+
sendMessage: '发送',
|
|
76
|
+
sendingMessage: '发送中…',
|
|
77
|
+
loadOlder: '加载更早消息',
|
|
78
|
+
backToChannel: '返回频道',
|
|
79
|
+
backToChannels: '返回频道列表',
|
|
80
|
+
backToWorkspace: '返回工作区',
|
|
81
|
+
loadingThread: '正在加载 Thread…',
|
|
82
|
+
unreadBoundary: '以下是本次打开收到的更新',
|
|
83
|
+
readNewUpdates: '读取 {count} 条新更新',
|
|
84
|
+
markRead: '标记为已读',
|
|
85
|
+
remainingUnread: '还有 {count} 条未读更新',
|
|
86
|
+
continueReading: '继续阅读',
|
|
87
|
+
olderHistory: '更早历史',
|
|
88
|
+
runtimeRisk: '当前运行风险',
|
|
89
|
+
runtimeRiskDetail: '@{member} 当前不可用:{diagnostic}',
|
|
90
|
+
acceptTask: '验收',
|
|
91
|
+
closeTask: '关闭任务',
|
|
92
|
+
reopenTask: '重新打开',
|
|
93
|
+
claims: 'Claims',
|
|
94
|
+
noClaims: '还没有 Claim',
|
|
95
|
+
claimStateActive: '进行中',
|
|
96
|
+
claimStateDone: '已完成',
|
|
97
|
+
claimStateReleased: '已释放',
|
|
98
|
+
memberUnknown: '成员',
|
|
99
|
+
activityClaimed: '{actor} 认领了「{direction}」',
|
|
100
|
+
activityClaimDone: '{actor} 完成了「{direction}」',
|
|
101
|
+
activityClaimReleased: '{actor} 释放了「{direction}」',
|
|
102
|
+
activityClaimsReleased: '{actor} 因成员权限变化释放了 {count} 个 Claim',
|
|
103
|
+
activityAccepted: '{actor} 验收了此 Task',
|
|
104
|
+
activityClosed: '{actor} 关闭了此 Task',
|
|
105
|
+
activityReopened: '{actor} 重新打开了此 Task',
|
|
106
|
+
mentionConfirmation: '提及未关注成员需要确认,再次发送以继续',
|
|
107
|
+
memberNotFollowing: '这些成员还未关注此 Thread:{ids}',
|
|
108
|
+
sendFailedKind: '无法发送消息({kind})',
|
|
109
|
+
unreadRequired: '请先读取 {count} 条未读更新,再继续修改。',
|
|
110
|
+
staleRevision: 'Thread 已发生变化,请按最新状态重试。',
|
|
111
|
+
};
|
|
112
|
+
export const en = {
|
|
113
|
+
team: 'Team',
|
|
114
|
+
backToConversations: 'Conversations',
|
|
115
|
+
workspaces: 'Workspaces',
|
|
116
|
+
channels: 'Channels',
|
|
117
|
+
agents: 'Agents',
|
|
118
|
+
members: 'Members',
|
|
119
|
+
selectChannelHint: 'Select a Channel on the left to start collaborating',
|
|
120
|
+
empty: 'Select a workspace to start team work',
|
|
121
|
+
teamMode: 'Team mode',
|
|
122
|
+
workspaceSections: 'Workspace sections',
|
|
123
|
+
addAgent: 'Add Agent',
|
|
124
|
+
cancel: 'Cancel',
|
|
125
|
+
close: 'Close',
|
|
126
|
+
retry: 'Retry',
|
|
127
|
+
agentName: 'Name',
|
|
128
|
+
agentDescription: 'Description',
|
|
129
|
+
initialChannels: 'Initial Channels',
|
|
130
|
+
noChannelsForAgent: 'Create at least one Channel first',
|
|
131
|
+
createAgent: 'Create Agent',
|
|
132
|
+
creatingAgent: 'Creating…',
|
|
133
|
+
loadingAgents: 'Loading Agents…',
|
|
134
|
+
emptyAgents: 'No Agents yet',
|
|
135
|
+
statusAvailable: 'Available',
|
|
136
|
+
statusWorking: 'Working',
|
|
137
|
+
statusError: 'Error',
|
|
138
|
+
statusUnavailable: 'Unavailable',
|
|
139
|
+
addChannel: 'New Channel',
|
|
140
|
+
channelName: 'Name',
|
|
141
|
+
channelDescription: 'Description',
|
|
142
|
+
initialMembers: 'Initial members',
|
|
143
|
+
createChannel: 'Create Channel',
|
|
144
|
+
creatingChannel: 'Creating…',
|
|
145
|
+
loadingChannels: 'Loading Channels…',
|
|
146
|
+
emptyChannels: 'No Channels yet',
|
|
147
|
+
manageMembers: 'Manage members',
|
|
148
|
+
editChannel: 'Edit Channel',
|
|
149
|
+
editAgent: 'Edit Agent',
|
|
150
|
+
actionsChannel: '{name} actions',
|
|
151
|
+
actionsAgent: '{name} actions',
|
|
152
|
+
editSave: 'Save',
|
|
153
|
+
editSaving: 'Saving…',
|
|
154
|
+
channelMembersSection: 'Channel members',
|
|
155
|
+
memberModel: 'Model',
|
|
156
|
+
modelFollowDefault: 'Follow global default',
|
|
157
|
+
modelsLoading: 'Loading model catalog…',
|
|
158
|
+
modelsLoadFailed: 'Failed to load the model catalog: {message}',
|
|
159
|
+
openAgentSession: 'Open {name} session',
|
|
160
|
+
channelMembers: 'Channel members',
|
|
161
|
+
memberCount: '{count} members',
|
|
162
|
+
onlineCount: '{count} online',
|
|
163
|
+
addToChannel: 'Add',
|
|
164
|
+
removeFromChannel: 'Remove',
|
|
165
|
+
membershipUpdating: 'Updating…',
|
|
166
|
+
memberUnavailableReason: 'Unavailable members cannot join a Channel',
|
|
167
|
+
memberCreatingReason: 'Creating; cannot join a Channel until complete',
|
|
168
|
+
emptyMessages: 'No messages yet',
|
|
169
|
+
emptyMessagesHint: 'Send the first message to start this collaboration',
|
|
170
|
+
timelineLabel: 'Message timeline',
|
|
171
|
+
taskClosedNotice: 'This task is closed; reopen it to continue the discussion',
|
|
172
|
+
human: 'Human',
|
|
173
|
+
taskStatusTodo: 'To do',
|
|
174
|
+
taskStatusInProgress: 'In progress',
|
|
175
|
+
taskStatusInReview: 'In review',
|
|
176
|
+
taskStatusDone: 'Done',
|
|
177
|
+
taskStatusClosed: 'Closed',
|
|
178
|
+
taskMessageCount: '{count} messages',
|
|
179
|
+
taskLabel: 'Task #{number}',
|
|
180
|
+
taskPending: 'Task …',
|
|
181
|
+
openTask: 'Open Task #{number}',
|
|
182
|
+
mentionSuggestions: 'Mention suggestions',
|
|
183
|
+
messageDraft: 'Message',
|
|
184
|
+
composerNotify: 'Will notify: {ids}',
|
|
185
|
+
messagePlaceholder: 'Write a message…',
|
|
186
|
+
sendMessage: 'Send',
|
|
187
|
+
sendingMessage: 'Sending…',
|
|
188
|
+
loadOlder: 'Load older messages',
|
|
189
|
+
backToChannel: 'Back to Channel',
|
|
190
|
+
backToChannels: 'All channels',
|
|
191
|
+
backToWorkspace: 'Back to Workspace',
|
|
192
|
+
loadingThread: 'Loading Thread…',
|
|
193
|
+
unreadBoundary: 'Updates received when you opened this Thread',
|
|
194
|
+
readNewUpdates: 'Read {count} new update(s)',
|
|
195
|
+
markRead: 'Mark read',
|
|
196
|
+
remainingUnread: '{count} unread update(s) remain',
|
|
197
|
+
continueReading: 'Continue reading',
|
|
198
|
+
olderHistory: 'Older history',
|
|
199
|
+
runtimeRisk: 'Current runtime risk',
|
|
200
|
+
runtimeRiskDetail: '@{member} is unavailable: {diagnostic}',
|
|
201
|
+
acceptTask: 'Accept',
|
|
202
|
+
closeTask: 'Close task',
|
|
203
|
+
reopenTask: 'Reopen',
|
|
204
|
+
claims: 'Claims',
|
|
205
|
+
noClaims: 'No Claims yet',
|
|
206
|
+
claimStateActive: 'Active',
|
|
207
|
+
claimStateDone: 'Done',
|
|
208
|
+
claimStateReleased: 'Released',
|
|
209
|
+
memberUnknown: 'Member',
|
|
210
|
+
activityClaimed: '{actor} claimed “{direction}”',
|
|
211
|
+
activityClaimDone: '{actor} completed “{direction}”',
|
|
212
|
+
activityClaimReleased: '{actor} released “{direction}”',
|
|
213
|
+
activityClaimsReleased: '{actor} released {count} Claim(s) after a membership change',
|
|
214
|
+
activityAccepted: '{actor} accepted this Task',
|
|
215
|
+
activityClosed: '{actor} closed this Task',
|
|
216
|
+
activityReopened: '{actor} reopened this Task',
|
|
217
|
+
mentionConfirmation: 'Mentioning an unfollowed member requires confirmation; send again to continue',
|
|
218
|
+
memberNotFollowing: 'These Members do not follow this Thread yet: {ids}',
|
|
219
|
+
sendFailedKind: 'Unable to send message ({kind})',
|
|
220
|
+
unreadRequired: 'Read {count} unread update(s) before changing this Thread.',
|
|
221
|
+
staleRevision: 'This Thread changed; retry using the current state.',
|
|
222
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { WorkspaceId } from '@deepseek-ai/dsh-client-runtime/client';
|
|
2
|
+
import type { AgentTeamChannelRef, AgentTeamTaskRef, AgentTeamThreadRef } from '@wowyuarm/dsh-agent-team/types';
|
|
3
|
+
export type TeamMode = 'conversation' | 'team';
|
|
4
|
+
export interface TeamNavigationSnapshot {
|
|
5
|
+
mode: TeamMode;
|
|
6
|
+
workspaceId?: WorkspaceId;
|
|
7
|
+
channelRef?: AgentTeamChannelRef;
|
|
8
|
+
taskRef?: AgentTeamTaskRef;
|
|
9
|
+
threadRef?: AgentTeamThreadRef;
|
|
10
|
+
taskNumber?: number;
|
|
11
|
+
}
|
|
12
|
+
declare const STORAGE_KEY = "dsh.agent-team.navigation";
|
|
13
|
+
export interface TeamNavigationActions {
|
|
14
|
+
enterTeam: () => void;
|
|
15
|
+
leaveTeam: () => void;
|
|
16
|
+
selectWorkspace: (workspaceId: WorkspaceId) => void;
|
|
17
|
+
selectChannel: (channelRef: AgentTeamChannelRef) => void;
|
|
18
|
+
selectThread: (taskRef: AgentTeamTaskRef, threadRef: AgentTeamThreadRef, channelRef?: AgentTeamChannelRef, taskNumber?: number) => void;
|
|
19
|
+
backToWorkspace: () => void;
|
|
20
|
+
/** Leave the selected Channel for the workspace Channel list; keeps mode and Workspace. */
|
|
21
|
+
backToChannels: () => void;
|
|
22
|
+
}
|
|
23
|
+
/** Root-scoped Team mode state. Slot lifetimes subscribe to this source. */
|
|
24
|
+
export declare class TeamNavigation {
|
|
25
|
+
private snapshot;
|
|
26
|
+
private readonly listeners;
|
|
27
|
+
readonly getSnapshot: () => TeamNavigationSnapshot;
|
|
28
|
+
readonly subscribe: (listener: () => void) => (() => void);
|
|
29
|
+
actions(): TeamNavigationActions;
|
|
30
|
+
dispose(): void;
|
|
31
|
+
private setMode;
|
|
32
|
+
private setWorkspace;
|
|
33
|
+
private setChannel;
|
|
34
|
+
private clearChannel;
|
|
35
|
+
private setThread;
|
|
36
|
+
private commit;
|
|
37
|
+
}
|
|
38
|
+
export { STORAGE_KEY };
|
|
39
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/client/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAA;AACzE,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;CACpB;AAED,QAAA,MAAM,WAAW,8BAA8B,CAAA;AAyB/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,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,mBAAmB,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACvI,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,2FAA2F;IAC3F,cAAc,EAAE,MAAM,IAAI,CAAA;CAC3B;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;IAYhC,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,MAAM;CAKf;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|