@ycodium-ai/plugin-teams 0.1.1 → 0.2.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/README.md +1 -1
- package/assets/ui.js +823 -0
- package/dist/index.js +13732 -410
- package/locales/en.json +300 -0
- package/locales/zh-CN.json +295 -0
- package/package.json +66 -6
package/locales/en.json
ADDED
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Teams",
|
|
3
|
+
"plugin": {
|
|
4
|
+
"checking": "Checking whether the Teams plugin is enabled...",
|
|
5
|
+
"loadingTeam": "Loading the selected team. Your draft stays here until it is ready.",
|
|
6
|
+
"unavailable": "Enable or install the Teams plugin in Settings > Plugins to start or resume team work. Your draft and existing team history are kept."
|
|
7
|
+
},
|
|
8
|
+
"description": "A team is a named roster of roles. Start a run and each role gets its own thread, working the shared task board.",
|
|
9
|
+
"board": {
|
|
10
|
+
"title": "Team board",
|
|
11
|
+
"runsTitle": "Runs",
|
|
12
|
+
"runsDescription": "Every run of every team on this machine, newest first.",
|
|
13
|
+
"empty": "No runs yet. Start one from a team, from a chat, or by asking an agent.",
|
|
14
|
+
"notFound": "That run is no longer on this machine.",
|
|
15
|
+
"back": "All runs",
|
|
16
|
+
"openMemberThread": "Open thread",
|
|
17
|
+
"noMemberThread": "No thread yet",
|
|
18
|
+
"unassigned": "Unassigned",
|
|
19
|
+
"elapsed": "{{duration}} elapsed",
|
|
20
|
+
"taskCount_one": "{{count}} task",
|
|
21
|
+
"taskCount_other": "{{count}} tasks",
|
|
22
|
+
"emptyColumn": "Nothing here",
|
|
23
|
+
"dropHint": "Drop a task here to move it",
|
|
24
|
+
"openTaskCount_one": "{{count}} task left",
|
|
25
|
+
"openTaskCount_other": "{{count}} tasks left",
|
|
26
|
+
"panelEmpty": "This thread is not part of a team run.",
|
|
27
|
+
"panelRunPicker": "Run",
|
|
28
|
+
"panelStartedHere": "Started here",
|
|
29
|
+
"panelMemberHere": "This thread's role: {{role}}",
|
|
30
|
+
"panelElsewhere": "Running elsewhere on this machine",
|
|
31
|
+
"budget": "{{used}}/{{budget}} turns",
|
|
32
|
+
"blockedBy_one": "Blocked by {{count}} task",
|
|
33
|
+
"blockedBy_other": "Blocked by {{count}} tasks",
|
|
34
|
+
"openSuccessor": "Reworked as a new task",
|
|
35
|
+
"reworkOf": "Rework of an earlier attempt",
|
|
36
|
+
"executorChange": "Taken over by {{role}}",
|
|
37
|
+
"attempts_one": "{{count}} attempt",
|
|
38
|
+
"attempts_other": "{{count}} attempts",
|
|
39
|
+
"attemptLabel": "Attempt {{index}}",
|
|
40
|
+
"completionUnknown": "source unknown",
|
|
41
|
+
"completionByMember": "confirmed by the member",
|
|
42
|
+
"openAttemptThread": "Open this attempt's thread",
|
|
43
|
+
"stripCollapse": "Collapse board",
|
|
44
|
+
"stripExpand": "Expand board",
|
|
45
|
+
"elapsedSegmented": "{{execution}} work · {{acceptance}} acceptance"
|
|
46
|
+
},
|
|
47
|
+
"attention": {
|
|
48
|
+
"title": "This run needs a human",
|
|
49
|
+
"previousTitle": "Previous attention",
|
|
50
|
+
"historyDescription": "This run has ended. This is a historical record; no action is required.",
|
|
51
|
+
"relatedTask": "Related task: {{title}}",
|
|
52
|
+
"relatedRole": "Related role: {{role}}",
|
|
53
|
+
"previousSuggestion": "Previous suggestion: {{text}}",
|
|
54
|
+
"stuckTask": "Stuck on “{{title}}”",
|
|
55
|
+
"stuckRole": "Stuck on role {{role}}",
|
|
56
|
+
"primaryFailed": "Primary: {{detail}}",
|
|
57
|
+
"backupsFailed": "Backups: {{detail}}",
|
|
58
|
+
"suggestion": "Suggestion: {{text}}"
|
|
59
|
+
},
|
|
60
|
+
"run": {
|
|
61
|
+
"goal": "Goal",
|
|
62
|
+
"startTitle": "Start a run",
|
|
63
|
+
"startDescription": "Give the team a goal. Each role gets a thread and the first task is handed to the first role in the handoff order.",
|
|
64
|
+
"goalPlaceholder": "What should this team get done?",
|
|
65
|
+
"start": "Start run",
|
|
66
|
+
"starting": "Starting…",
|
|
67
|
+
"pause": "Pause",
|
|
68
|
+
"resume": "Resume",
|
|
69
|
+
"stop": "Stop",
|
|
70
|
+
"stopConfirm": "Stop this run? Members keep their threads, but no further tasks are handed out.",
|
|
71
|
+
"progress": "{{done}} of {{total}} done",
|
|
72
|
+
"budgetAmend": "Add turns",
|
|
73
|
+
"budgetAmendTitle": "Add turn budget",
|
|
74
|
+
"budgetAmendDescription": "Raises this run's turn budget. The amendment is recorded.",
|
|
75
|
+
"budgetAmendTurns": "Turns to add",
|
|
76
|
+
"budgetAmendSubmit": "Add turns",
|
|
77
|
+
"budgetAmendFailed": "Could not add turns",
|
|
78
|
+
"budgetPresets": "Add turns:",
|
|
79
|
+
"budgetAmendPreset": "+{{count}} turns",
|
|
80
|
+
"faultClear": "Fault handled — continue",
|
|
81
|
+
"faultClearFailed": "Could not clear the fault",
|
|
82
|
+
"commandNotYetEnabled": "This action isn't wired up on the server yet — it unlocks with an upcoming update.",
|
|
83
|
+
"state": {
|
|
84
|
+
"running": "Running",
|
|
85
|
+
"paused": "Paused",
|
|
86
|
+
"settled": "Finished",
|
|
87
|
+
"failed": "Failed",
|
|
88
|
+
"stopped": "Stopped"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
"task": {
|
|
92
|
+
"state": {
|
|
93
|
+
"pending": "Pending",
|
|
94
|
+
"ready": "Ready",
|
|
95
|
+
"in-progress": "In progress",
|
|
96
|
+
"awaiting-acceptance": "Awaiting acceptance",
|
|
97
|
+
"blocked": "Blocked",
|
|
98
|
+
"done": "Done",
|
|
99
|
+
"failed": "Failed",
|
|
100
|
+
"cancelled": "Cancelled"
|
|
101
|
+
},
|
|
102
|
+
"moveTo": "Move to {{state}}",
|
|
103
|
+
"staleRevision": "Someone else changed this task. It has been refreshed.",
|
|
104
|
+
"detail": "Detail",
|
|
105
|
+
"dismissStale": "Dismiss",
|
|
106
|
+
"addTitle": "Add a task",
|
|
107
|
+
"addPlaceholder": "What needs doing?",
|
|
108
|
+
"add": "Add",
|
|
109
|
+
"adding": "Adding…",
|
|
110
|
+
"assignee": "Assignee",
|
|
111
|
+
"createFailed": "Could not add the task",
|
|
112
|
+
"cancel": "Cancel task",
|
|
113
|
+
"rework": "Rework",
|
|
114
|
+
"reworkTitle": "Rework this task",
|
|
115
|
+
"reworkDescription": "Opens a new task that inherits this one's title and detail; dependencies rebind to it. This attempt stays in history as {{state}}.",
|
|
116
|
+
"reworkExecutor": "Assign to",
|
|
117
|
+
"reworkSubmit": "Rework task",
|
|
118
|
+
"reworkFailed": "Could not rework the task",
|
|
119
|
+
"reworkPickExecutor": "Rework “{{title}}” with:",
|
|
120
|
+
"skipAcceptance": "Exempt from acceptance",
|
|
121
|
+
"acceptor": "Acceptor: {{acceptor}}",
|
|
122
|
+
"acceptorYou": "you",
|
|
123
|
+
"rejectionRounds_one": "Rejected {{count}} time — latest findings:",
|
|
124
|
+
"rejectionRounds_other": "Rejected {{count}} times — latest findings:",
|
|
125
|
+
"deliver": "Deliver",
|
|
126
|
+
"delivering": "Delivering…",
|
|
127
|
+
"deliverFailed": "Could not deliver the task",
|
|
128
|
+
"accept": "Accept",
|
|
129
|
+
"accepting": "Accepting…",
|
|
130
|
+
"acceptFailed": "Could not accept the task",
|
|
131
|
+
"reject": "Reject",
|
|
132
|
+
"rejecting": "Rejecting…",
|
|
133
|
+
"rejectFailed": "Could not reject the task",
|
|
134
|
+
"rejectTitle": "Reject this delivery",
|
|
135
|
+
"rejectDescription": "The same card goes back to the same role with your findings attached. Write down what still needs fixing — a rejection without findings is refused.",
|
|
136
|
+
"rejectFindings": "Findings",
|
|
137
|
+
"rejectFindingsPlaceholder": "What still needs fixing?",
|
|
138
|
+
"rejectSubmit": "Reject with findings",
|
|
139
|
+
"undeliver": "Take back delivery",
|
|
140
|
+
"undelivering": "Taking back…",
|
|
141
|
+
"undeliverFailed": "Could not take back the delivery"
|
|
142
|
+
},
|
|
143
|
+
"worktrees": {
|
|
144
|
+
"title": "Member worktrees",
|
|
145
|
+
"description": "Roles working in their own checkout. Gather brings a role's work into the starting tree; reclaim removes the checkout once you are done with it.",
|
|
146
|
+
"gather": "Gather",
|
|
147
|
+
"gatherOptions": "Gather options",
|
|
148
|
+
"gatherSquash": "Gather, squash",
|
|
149
|
+
"gatherMerge": "Gather, keep history",
|
|
150
|
+
"gathering": "Gathering…",
|
|
151
|
+
"gathered": "Gathered into the starting tree.",
|
|
152
|
+
"gatherFailed": "Gather failed",
|
|
153
|
+
"reclaim": "Reclaim",
|
|
154
|
+
"reclaimTitle": "Reclaim this worktree",
|
|
155
|
+
"reclaimConfirm": "Remove the checkout for {{role}} and delete its branch? Gather anything worth keeping first — this cannot be undone.",
|
|
156
|
+
"reclaiming": "Reclaiming…",
|
|
157
|
+
"reclaimed": "Worktree removed and branch deleted.",
|
|
158
|
+
"reclaimedBranchKept": "Worktree removed. The branch is still there.",
|
|
159
|
+
"reclaimFailed": "Reclaim failed",
|
|
160
|
+
"staleBehind_one": "origin is {{count}} commit ahead of this branch",
|
|
161
|
+
"staleBehind_other": "origin is {{count}} commits ahead of this branch",
|
|
162
|
+
"conflicts_one": "{{count}} file needs a decision",
|
|
163
|
+
"conflicts_other": "{{count}} files need a decision",
|
|
164
|
+
"dismiss": "Dismiss",
|
|
165
|
+
"abortGather": "Abort gather",
|
|
166
|
+
"aborting": "Aborting…",
|
|
167
|
+
"aborted": "Gather aborted — the origin worktree is back to its pre-gather state",
|
|
168
|
+
"abortFailed": "Could not abort the gather"
|
|
169
|
+
},
|
|
170
|
+
"coordinator": {
|
|
171
|
+
"label": "Coordinator model",
|
|
172
|
+
"description": "The provider and model for the thread that starts a run with this team. Leave unset to follow the project default.",
|
|
173
|
+
"modelPlaceholder": "Follow the project default"
|
|
174
|
+
},
|
|
175
|
+
"roster": {
|
|
176
|
+
"title": "Roster",
|
|
177
|
+
"description": "One role per member. A role is a lowercase slug and has to be unique inside the team.",
|
|
178
|
+
"addMember": "Add role",
|
|
179
|
+
"addFromTemplate": "Add from template",
|
|
180
|
+
"removeMember": "Remove role",
|
|
181
|
+
"role": "Role",
|
|
182
|
+
"rolePlaceholder": "reviewer",
|
|
183
|
+
"roleInvalid": "Use lowercase letters, digits and dashes.",
|
|
184
|
+
"roleDuplicate": "That role is already on this team.",
|
|
185
|
+
"displayName": "Display name",
|
|
186
|
+
"model": "Model",
|
|
187
|
+
"modelInherit": "Follow the project default",
|
|
188
|
+
"brief": "Brief",
|
|
189
|
+
"briefPlaceholder": "What this role is responsible for.",
|
|
190
|
+
"briefHint": "Sent to the member's thread before its first task.",
|
|
191
|
+
"placementLabel": "Worktree placement",
|
|
192
|
+
"placementHint": "Defaults to shared. Isolate a role only when it will edit the same files as others — separate tasks or parallelism alone are not reasons.",
|
|
193
|
+
"placementShared": "Share the starting thread's checkout",
|
|
194
|
+
"placementFollowRole": "Work in another role's worktree",
|
|
195
|
+
"placementIsolated": "Own isolated worktree",
|
|
196
|
+
"placementFollowRoleTarget": "Choose a role to follow",
|
|
197
|
+
"placementRoleDeleted": "{{role}} (role removed from the roster)",
|
|
198
|
+
"handoff": "Handoff order",
|
|
199
|
+
"handoffDescription": "Who picks up the work next when a role finishes. Drag to reorder.",
|
|
200
|
+
"handoffEmpty": "No order set. Tasks are only handed out from the board.",
|
|
201
|
+
"moveUp": "Move earlier",
|
|
202
|
+
"moveDown": "Move later",
|
|
203
|
+
"readOnlyOnMobile": "Roles, models and briefs are set on the web app. Long-press a member to edit backups.",
|
|
204
|
+
"backupsMenu": "Backups for {{role}}",
|
|
205
|
+
"backupsSaveFailed": "Could not save backups",
|
|
206
|
+
"routingKey": "Routing link",
|
|
207
|
+
"routingNone": "Pick model here",
|
|
208
|
+
"routingFollow": "Follow routing: {{key}}",
|
|
209
|
+
"routingKeyDeleted": "{{key}} (row deleted — falls back to the starting thread)",
|
|
210
|
+
"backups": "Backups: {{roles}}",
|
|
211
|
+
"noBackups": "No backup configured",
|
|
212
|
+
"backupsLabel": "Backups",
|
|
213
|
+
"backupsHint": "Who takes over when this role's provider dies. Tried in order. Required.",
|
|
214
|
+
"addBackup": "Add backup",
|
|
215
|
+
"removeBackup": "Remove backup",
|
|
216
|
+
"backupMissing": "Pick at least one backup — a role without one strands its tasks when its provider dies.",
|
|
217
|
+
"backupSelf": "A role can't be its own backup.",
|
|
218
|
+
"backupUnknown": "{{role}} is no longer on this team.",
|
|
219
|
+
"backupSameProvider": "{{role}} runs on the same provider — a provider-wide outage takes both down."
|
|
220
|
+
},
|
|
221
|
+
"list": {
|
|
222
|
+
"title": "Teams",
|
|
223
|
+
"empty": "No teams yet.",
|
|
224
|
+
"emptyDescription": "Create one here, or ask an agent to put a team together for you.",
|
|
225
|
+
"create": "New team",
|
|
226
|
+
"createTitle": "New team",
|
|
227
|
+
"teamTitle": "Name",
|
|
228
|
+
"teamTitlePlaceholder": "Release crew",
|
|
229
|
+
"teamDescription": "Description",
|
|
230
|
+
"project": "Project",
|
|
231
|
+
"projectAny": "Any project",
|
|
232
|
+
"save": "Save",
|
|
233
|
+
"cancel": "Cancel",
|
|
234
|
+
"edit": "Edit",
|
|
235
|
+
"archive": "Archive",
|
|
236
|
+
"unarchive": "Unarchive",
|
|
237
|
+
"delete": "Delete",
|
|
238
|
+
"deleteConfirm": "Delete this team? Its runs, board and mailbox go with it.",
|
|
239
|
+
"archived": "Archived",
|
|
240
|
+
"showArchived": "Show archived",
|
|
241
|
+
"memberCount_one": "{{count}} role",
|
|
242
|
+
"memberCount_other": "{{count}} roles",
|
|
243
|
+
"activeRun": "Run in progress",
|
|
244
|
+
"openBoard": "Open board",
|
|
245
|
+
"openThread": "Open thread"
|
|
246
|
+
},
|
|
247
|
+
"triggers": {
|
|
248
|
+
"title": "Triggers",
|
|
249
|
+
"description": "What starts a team without you asking. Off until you turn it on: one chat message can start several provider processes.",
|
|
250
|
+
"empty": "No triggers yet.",
|
|
251
|
+
"eventSource": "Event: {{event}}",
|
|
252
|
+
"threadTarget": "Open a thread",
|
|
253
|
+
"teamTarget": "Run {{team}}",
|
|
254
|
+
"workflowTarget": "Run workflow {{workflow}}",
|
|
255
|
+
"enable": "Enabled",
|
|
256
|
+
"remove": "Remove",
|
|
257
|
+
"eventReadOnly": "Event triggers arrive with plugins.",
|
|
258
|
+
"cost": "Each run starts one provider process per role."
|
|
259
|
+
},
|
|
260
|
+
"card": {
|
|
261
|
+
"title": "Team run",
|
|
262
|
+
"startedBy": "Started here",
|
|
263
|
+
"members": "Members",
|
|
264
|
+
"viewBoard": "Open board",
|
|
265
|
+
"memberState": {
|
|
266
|
+
"idle": "Idle",
|
|
267
|
+
"working": "Working",
|
|
268
|
+
"blocked": "Blocked",
|
|
269
|
+
"awaiting": "Awaiting acceptance",
|
|
270
|
+
"done": "Done",
|
|
271
|
+
"failed": "Failed"
|
|
272
|
+
},
|
|
273
|
+
"pillProgress": "{{done}}/{{total}}"
|
|
274
|
+
},
|
|
275
|
+
"messages": {
|
|
276
|
+
"title": "Messages",
|
|
277
|
+
"empty": "No messages yet. Members write here when they hand work over.",
|
|
278
|
+
"direction": "{{from}} → {{to}}",
|
|
279
|
+
"fromOrigin": "Origin thread",
|
|
280
|
+
"delivery": {
|
|
281
|
+
"wake": "Wake",
|
|
282
|
+
"quiet": "Quiet"
|
|
283
|
+
},
|
|
284
|
+
"deliveryHint": {
|
|
285
|
+
"wake": "Interrupted the member to read this",
|
|
286
|
+
"quiet": "Waits in the member's mailbox"
|
|
287
|
+
},
|
|
288
|
+
"delivered": "Delivered",
|
|
289
|
+
"queued": "Wake queued",
|
|
290
|
+
"accepted": "In mailbox",
|
|
291
|
+
"undelivered": "Not delivered yet"
|
|
292
|
+
},
|
|
293
|
+
"timeline": {
|
|
294
|
+
"taskTitle": "Task from {{role}}",
|
|
295
|
+
"taskGoal": "Team goal",
|
|
296
|
+
"messageTitle": "Message from {{role}}",
|
|
297
|
+
"openTask": "Open board",
|
|
298
|
+
"roleBriefTitle": "Role brief for {{role}}"
|
|
299
|
+
}
|
|
300
|
+
}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "团队",
|
|
3
|
+
"plugin": {
|
|
4
|
+
"checking": "正在检查 Teams 插件是否已启用...",
|
|
5
|
+
"loadingTeam": "正在加载所选团队。准备就绪前,您的草稿会保留在此处。",
|
|
6
|
+
"unavailable": "请在“设置 > 插件”中启用或安装 Teams 插件,以开始或继续团队工作。您的草稿和现有团队历史记录将会保留。"
|
|
7
|
+
},
|
|
8
|
+
"description": "团队是一个已命名的角色阵容。启动运行后,每个角色都会拥有自己的会话,共同处理共享任务看板。",
|
|
9
|
+
"board": {
|
|
10
|
+
"title": "团队看板",
|
|
11
|
+
"runsTitle": "运行",
|
|
12
|
+
"runsDescription": "这台机器上所有团队的所有运行,最新的排在前面。",
|
|
13
|
+
"empty": "尚无运行。可从团队、聊天中启动,或让智能体启动。",
|
|
14
|
+
"notFound": "这台机器上已不再有该运行。",
|
|
15
|
+
"back": "所有运行",
|
|
16
|
+
"openMemberThread": "打开会话",
|
|
17
|
+
"noMemberThread": "尚无会话",
|
|
18
|
+
"unassigned": "未分配",
|
|
19
|
+
"elapsed": "已用时 {{duration}}",
|
|
20
|
+
"taskCount_one": "{{count}} 个任务",
|
|
21
|
+
"taskCount_other": "{{count}} 个任务",
|
|
22
|
+
"emptyColumn": "此处暂无内容",
|
|
23
|
+
"dropHint": "将任务拖放到此处即可移动",
|
|
24
|
+
"openTaskCount_one": "还剩 {{count}} 个任务",
|
|
25
|
+
"openTaskCount_other": "还剩 {{count}} 个任务",
|
|
26
|
+
"panelEmpty": "此会话不属于任何团队运行。",
|
|
27
|
+
"panelRunPicker": "运行",
|
|
28
|
+
"panelStartedHere": "从这里开始",
|
|
29
|
+
"panelMemberHere": "此会话的角色:{{role}}",
|
|
30
|
+
"panelElsewhere": "在此机器的其他位置运行",
|
|
31
|
+
"budget": "{{used}}/{{budget}} 轮次",
|
|
32
|
+
"blockedBy_one": "被 {{count}} 个任务阻塞",
|
|
33
|
+
"blockedBy_other": "被 {{count}} 个任务阻塞",
|
|
34
|
+
"openSuccessor": "已作为新任务重做",
|
|
35
|
+
"reworkOf": "对先前尝试的重做",
|
|
36
|
+
"executorChange": "已由 {{role}} 接管",
|
|
37
|
+
"attempts_one": "{{count}} 次尝试",
|
|
38
|
+
"attempts_other": "{{count}} 次尝试",
|
|
39
|
+
"attemptLabel": "尝试 {{index}}",
|
|
40
|
+
"completionUnknown": "来源未知",
|
|
41
|
+
"completionByMember": "由成员确认",
|
|
42
|
+
"openAttemptThread": "打开此次尝试的会话",
|
|
43
|
+
"stripCollapse": "收起看板",
|
|
44
|
+
"stripExpand": "展开看板",
|
|
45
|
+
"elapsedSegmented": "{{execution}} 工作 · {{acceptance}} 验收"
|
|
46
|
+
},
|
|
47
|
+
"attention": {
|
|
48
|
+
"title": "此次运行需要人工介入",
|
|
49
|
+
"stuckTask": "卡在“{{title}}”上",
|
|
50
|
+
"stuckRole": "卡在角色 {{role}} 上",
|
|
51
|
+
"primaryFailed": "主选:{{detail}}",
|
|
52
|
+
"backupsFailed": "备用:{{detail}}",
|
|
53
|
+
"suggestion": "建议:{{text}}"
|
|
54
|
+
},
|
|
55
|
+
"run": {
|
|
56
|
+
"goal": "目标",
|
|
57
|
+
"startTitle": "启动运行",
|
|
58
|
+
"startDescription": "为团队设定目标。每个角色都会获得一个会话,第一个任务将交给交接顺序中的第一个角色。",
|
|
59
|
+
"goalPlaceholder": "这个团队需要完成什么?",
|
|
60
|
+
"start": "启动运行",
|
|
61
|
+
"starting": "正在启动…",
|
|
62
|
+
"pause": "暂停",
|
|
63
|
+
"resume": "继续",
|
|
64
|
+
"stop": "停止",
|
|
65
|
+
"stopConfirm": "停止此运行?成员会保留各自的会话,但不会再分配新任务。",
|
|
66
|
+
"progress": "已完成 {{done}} / {{total}}",
|
|
67
|
+
"budgetAmend": "增加轮次",
|
|
68
|
+
"budgetAmendTitle": "增加轮次预算",
|
|
69
|
+
"budgetAmendDescription": "提高此次运行的轮次预算。此次调整会被记录。",
|
|
70
|
+
"budgetAmendTurns": "增加的轮次",
|
|
71
|
+
"budgetAmendSubmit": "增加轮次",
|
|
72
|
+
"budgetAmendFailed": "无法增加轮次",
|
|
73
|
+
"budgetPresets": "增加轮次:",
|
|
74
|
+
"budgetAmendPreset": "+{{count}} 轮次",
|
|
75
|
+
"faultClear": "故障已处理 — 继续",
|
|
76
|
+
"faultClearFailed": "无法清除故障",
|
|
77
|
+
"commandNotYetEnabled": "此操作尚未在服务器端接入 — 将在后续更新中解锁。",
|
|
78
|
+
"state": {
|
|
79
|
+
"running": "运行中",
|
|
80
|
+
"paused": "已暂停",
|
|
81
|
+
"settled": "已完成",
|
|
82
|
+
"failed": "失败",
|
|
83
|
+
"stopped": "已停止"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"task": {
|
|
87
|
+
"state": {
|
|
88
|
+
"pending": "待处理",
|
|
89
|
+
"ready": "就绪",
|
|
90
|
+
"in-progress": "进行中",
|
|
91
|
+
"awaiting-acceptance": "等待验收",
|
|
92
|
+
"blocked": "已阻塞",
|
|
93
|
+
"done": "已完成",
|
|
94
|
+
"failed": "失败",
|
|
95
|
+
"cancelled": "已取消"
|
|
96
|
+
},
|
|
97
|
+
"moveTo": "移至{{state}}",
|
|
98
|
+
"staleRevision": "其他人已更改此任务,已刷新。",
|
|
99
|
+
"detail": "详情",
|
|
100
|
+
"dismissStale": "关闭",
|
|
101
|
+
"addTitle": "添加任务",
|
|
102
|
+
"addPlaceholder": "需要做什么?",
|
|
103
|
+
"add": "添加",
|
|
104
|
+
"adding": "添加中…",
|
|
105
|
+
"assignee": "负责人",
|
|
106
|
+
"createFailed": "无法添加任务",
|
|
107
|
+
"cancel": "取消任务",
|
|
108
|
+
"rework": "重做",
|
|
109
|
+
"reworkTitle": "重做此任务",
|
|
110
|
+
"reworkDescription": "创建一个继承此任务标题和详情的新任务;依赖关系将重新绑定到该任务。此次尝试将以 {{state}} 状态保留在历史记录中。",
|
|
111
|
+
"reworkExecutor": "分配给",
|
|
112
|
+
"reworkSubmit": "重做任务",
|
|
113
|
+
"reworkFailed": "无法重做任务",
|
|
114
|
+
"reworkPickExecutor": "使用以下对象重做“{{title}}”:",
|
|
115
|
+
"skipAcceptance": "免于验收",
|
|
116
|
+
"acceptor": "验收人:{{acceptor}}",
|
|
117
|
+
"acceptorYou": "你",
|
|
118
|
+
"rejectionRounds_one": "已驳回 {{count}} 次——最新问题:",
|
|
119
|
+
"rejectionRounds_other": "已驳回 {{count}} 次——最新问题:",
|
|
120
|
+
"deliver": "交付",
|
|
121
|
+
"delivering": "正在交付…",
|
|
122
|
+
"deliverFailed": "无法交付任务",
|
|
123
|
+
"accept": "验收",
|
|
124
|
+
"accepting": "正在验收…",
|
|
125
|
+
"acceptFailed": "无法验收任务",
|
|
126
|
+
"reject": "驳回",
|
|
127
|
+
"rejecting": "正在驳回…",
|
|
128
|
+
"rejectFailed": "无法驳回任务",
|
|
129
|
+
"rejectTitle": "驳回此交付",
|
|
130
|
+
"rejectDescription": "同一张卡片会退回给同一角色,并附上你的问题说明。请写下仍需修复的问题——没有问题说明的驳回将被拒绝。",
|
|
131
|
+
"rejectFindings": "问题说明",
|
|
132
|
+
"rejectFindingsPlaceholder": "还有哪些需要修复?",
|
|
133
|
+
"rejectSubmit": "附带问题说明驳回",
|
|
134
|
+
"undeliver": "撤回交付",
|
|
135
|
+
"undelivering": "正在撤回…",
|
|
136
|
+
"undeliverFailed": "无法撤回交付"
|
|
137
|
+
},
|
|
138
|
+
"worktrees": {
|
|
139
|
+
"title": "成员工作树",
|
|
140
|
+
"description": "角色在各自的检出目录中工作。汇集会将角色的工作并入起始树;回收会在完成后移除检出目录。",
|
|
141
|
+
"gather": "汇集",
|
|
142
|
+
"gatherOptions": "汇集选项",
|
|
143
|
+
"gatherSquash": "汇集,压缩提交",
|
|
144
|
+
"gatherMerge": "汇集,保留历史",
|
|
145
|
+
"gathering": "汇集中…",
|
|
146
|
+
"gathered": "已汇集到起始树。",
|
|
147
|
+
"gatherFailed": "汇集失败",
|
|
148
|
+
"reclaim": "回收",
|
|
149
|
+
"reclaimTitle": "回收此工作树",
|
|
150
|
+
"reclaimConfirm": "移除 {{role}} 的检出目录并删除其分支?请先汇集需要保留的内容——此操作无法撤销。",
|
|
151
|
+
"reclaiming": "回收中…",
|
|
152
|
+
"reclaimed": "工作树已移除,分支已删除。",
|
|
153
|
+
"reclaimedBranchKept": "工作树已移除。分支仍保留。",
|
|
154
|
+
"reclaimFailed": "回收失败",
|
|
155
|
+
"staleBehind_one": "origin 比此分支领先 {{count}} 个提交",
|
|
156
|
+
"staleBehind_other": "origin 比此分支领先 {{count}} 个提交",
|
|
157
|
+
"conflicts_one": "{{count}} 个文件需要作出决定",
|
|
158
|
+
"conflicts_other": "{{count}} 个文件需要作出决定",
|
|
159
|
+
"dismiss": "关闭",
|
|
160
|
+
"abortGather": "中止收集",
|
|
161
|
+
"aborting": "正在中止…",
|
|
162
|
+
"aborted": "收集已中止 — 源工作树已恢复到收集前的状态",
|
|
163
|
+
"abortFailed": "无法中止收集"
|
|
164
|
+
},
|
|
165
|
+
"coordinator": {
|
|
166
|
+
"label": "协调模型",
|
|
167
|
+
"description": "使用此团队启动运行的会话所用的 provider 和模型。留空以遵循项目默认设置。",
|
|
168
|
+
"modelPlaceholder": "遵循项目默认设置"
|
|
169
|
+
},
|
|
170
|
+
"roster": {
|
|
171
|
+
"title": "成员名单",
|
|
172
|
+
"description": "每位成员一个角色。角色是小写标识,且必须在团队内唯一。",
|
|
173
|
+
"addMember": "添加角色",
|
|
174
|
+
"addFromTemplate": "从模板添加",
|
|
175
|
+
"removeMember": "移除角色",
|
|
176
|
+
"role": "角色",
|
|
177
|
+
"rolePlaceholder": "reviewer",
|
|
178
|
+
"roleInvalid": "请使用小写字母、数字和连字符。",
|
|
179
|
+
"roleDuplicate": "该角色已在此团队中。",
|
|
180
|
+
"displayName": "显示名称",
|
|
181
|
+
"model": "模型",
|
|
182
|
+
"modelInherit": "遵循项目默认设置",
|
|
183
|
+
"brief": "职责简介",
|
|
184
|
+
"briefPlaceholder": "此角色负责的内容。",
|
|
185
|
+
"briefHint": "会在成员的首个任务前发送到其会话中。",
|
|
186
|
+
"placementLabel": "工作树放置",
|
|
187
|
+
"placementHint": "默认共享。仅当该角色会改动其他成员也在改的同一批文件时才需要隔离——单纯是独立任务或想并行,都不算隔离的理由。",
|
|
188
|
+
"placementShared": "共用发起会话的检出",
|
|
189
|
+
"placementFollowRole": "使用另一角色的工作树",
|
|
190
|
+
"placementIsolated": "独立工作树",
|
|
191
|
+
"placementFollowRoleTarget": "选择要跟随的角色",
|
|
192
|
+
"placementRoleDeleted": "{{role}}(已从名单移除)",
|
|
193
|
+
"handoff": "交接顺序",
|
|
194
|
+
"handoffDescription": "角色完成后由谁接手后续工作。拖动以重新排序。",
|
|
195
|
+
"handoffEmpty": "未设置顺序。任务仅从看板分配。",
|
|
196
|
+
"moveUp": "前移",
|
|
197
|
+
"moveDown": "后移",
|
|
198
|
+
"readOnlyOnMobile": "角色、模型和职责简介请在 Web 应用中设置。",
|
|
199
|
+
"backupsMenu": "{{role}} 的备用角色",
|
|
200
|
+
"backupsSaveFailed": "无法保存备用角色",
|
|
201
|
+
"routingKey": "路由链接",
|
|
202
|
+
"routingNone": "在此选择模型",
|
|
203
|
+
"routingFollow": "跟随路由:{{key}}",
|
|
204
|
+
"routingKeyDeleted": "{{key}}(条目已删除 — 回退到初始会话)",
|
|
205
|
+
"backups": "备用:{{roles}}",
|
|
206
|
+
"noBackups": "未配置备用角色",
|
|
207
|
+
"backupsLabel": "备用角色",
|
|
208
|
+
"backupsHint": "当此角色的 provider 故障时,由谁接管。按顺序尝试。必填。",
|
|
209
|
+
"addBackup": "添加备用角色",
|
|
210
|
+
"removeBackup": "移除备用角色",
|
|
211
|
+
"backupMissing": "至少选择一个备用角色——没有备用角色的角色在其 provider 故障时,任务将无人处理。",
|
|
212
|
+
"backupSelf": "角色不能将自己设为备用角色。",
|
|
213
|
+
"backupUnknown": "{{role}} 已不在此团队中。",
|
|
214
|
+
"backupSameProvider": "{{role}} 使用同一 provider——provider 级故障会导致两者都不可用。"
|
|
215
|
+
},
|
|
216
|
+
"list": {
|
|
217
|
+
"title": "团队",
|
|
218
|
+
"empty": "尚无团队。",
|
|
219
|
+
"emptyDescription": "在此创建团队,或让 agent 为你组建团队。",
|
|
220
|
+
"create": "新建团队",
|
|
221
|
+
"createTitle": "新建团队",
|
|
222
|
+
"teamTitle": "名称",
|
|
223
|
+
"teamTitlePlaceholder": "发布团队",
|
|
224
|
+
"teamDescription": "描述",
|
|
225
|
+
"project": "项目",
|
|
226
|
+
"projectAny": "任意项目",
|
|
227
|
+
"save": "保存",
|
|
228
|
+
"cancel": "取消",
|
|
229
|
+
"edit": "编辑",
|
|
230
|
+
"archive": "归档",
|
|
231
|
+
"unarchive": "取消归档",
|
|
232
|
+
"delete": "删除",
|
|
233
|
+
"deleteConfirm": "删除此团队?其运行记录、看板和邮箱也将一并删除。",
|
|
234
|
+
"archived": "已归档",
|
|
235
|
+
"showArchived": "显示已归档",
|
|
236
|
+
"memberCount_one": "{{count}} 个角色",
|
|
237
|
+
"memberCount_other": "{{count}} 个角色",
|
|
238
|
+
"activeRun": "运行中",
|
|
239
|
+
"openBoard": "打开看板",
|
|
240
|
+
"openThread": "打开会话"
|
|
241
|
+
},
|
|
242
|
+
"triggers": {
|
|
243
|
+
"title": "触发器",
|
|
244
|
+
"description": "无需你手动发起即可启动团队的方式。开启前不会生效:一条聊天消息可启动多个 provider 进程。",
|
|
245
|
+
"empty": "暂无触发器。",
|
|
246
|
+
"eventSource": "事件:{{event}}",
|
|
247
|
+
"threadTarget": "打开会话",
|
|
248
|
+
"teamTarget": "运行 {{team}}",
|
|
249
|
+
"workflowTarget": "运行工作流 {{workflow}}",
|
|
250
|
+
"enable": "已启用",
|
|
251
|
+
"remove": "移除",
|
|
252
|
+
"eventReadOnly": "事件触发器随插件提供。",
|
|
253
|
+
"cost": "每次运行会为每个角色启动一个 provider 进程。"
|
|
254
|
+
},
|
|
255
|
+
"card": {
|
|
256
|
+
"title": "团队运行",
|
|
257
|
+
"startedBy": "从此处启动",
|
|
258
|
+
"members": "成员",
|
|
259
|
+
"viewBoard": "打开看板",
|
|
260
|
+
"memberState": {
|
|
261
|
+
"idle": "空闲",
|
|
262
|
+
"working": "工作中",
|
|
263
|
+
"blocked": "受阻",
|
|
264
|
+
"awaiting": "等待验收",
|
|
265
|
+
"done": "已完成",
|
|
266
|
+
"failed": "失败"
|
|
267
|
+
},
|
|
268
|
+
"pillProgress": "{{done}}/{{total}}"
|
|
269
|
+
},
|
|
270
|
+
"messages": {
|
|
271
|
+
"title": "消息",
|
|
272
|
+
"empty": "暂无消息。成员交接工作时会在此留言。",
|
|
273
|
+
"direction": "{{from}} → {{to}}",
|
|
274
|
+
"fromOrigin": "源会话",
|
|
275
|
+
"delivery": {
|
|
276
|
+
"wake": "唤醒",
|
|
277
|
+
"quiet": "静默"
|
|
278
|
+
},
|
|
279
|
+
"deliveryHint": {
|
|
280
|
+
"wake": "已打断成员以阅读此消息",
|
|
281
|
+
"quiet": "等待在成员的邮箱中"
|
|
282
|
+
},
|
|
283
|
+
"delivered": "已送达",
|
|
284
|
+
"queued": "唤醒已排队",
|
|
285
|
+
"accepted": "已进入收件箱",
|
|
286
|
+
"undelivered": "尚未送达"
|
|
287
|
+
},
|
|
288
|
+
"timeline": {
|
|
289
|
+
"taskTitle": "来自 {{role}} 的任务",
|
|
290
|
+
"taskGoal": "团队目标",
|
|
291
|
+
"messageTitle": "来自 {{role}} 的消息",
|
|
292
|
+
"openTask": "打开看板",
|
|
293
|
+
"roleBriefTitle": "{{role}} 的角色简介"
|
|
294
|
+
}
|
|
295
|
+
}
|