@tutti-os/agent-gui 0.0.63 → 0.0.65
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/dist/agent-conversation/index.d.ts +2 -2
- package/dist/agent-conversation/index.js +7 -7
- package/dist/agent-env/index.js +2 -1
- package/dist/agent-env/index.js.map +1 -1
- package/dist/agent-message-center/index.js +9 -9
- package/dist/{agentGuiNodeTypes-CC52zXAV.d.ts → agentGuiNodeTypes-CCjzXdTe.d.ts} +4 -1
- package/dist/app/renderer/agentactivity.css +41 -7
- package/dist/app/renderer/assets/icons/agents/agent-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/cursor-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/cursor-flat-filled.svg +3 -0
- package/dist/app/renderer/assets/icons/agents/cursor-rounded.png +0 -0
- package/dist/{chunk-IIVHPXAB.js → chunk-2IMBPRKV.js} +1 -1
- package/dist/chunk-2IMBPRKV.js.map +1 -0
- package/dist/{chunk-6MUKWI6Z.js → chunk-6OYLLPPN.js} +167 -113
- package/dist/chunk-6OYLLPPN.js.map +1 -0
- package/dist/{chunk-22L4VWUR.js → chunk-CKCUEHBW.js} +3 -1
- package/dist/chunk-CKCUEHBW.js.map +1 -0
- package/dist/{chunk-NZN43XT5.js → chunk-DL6BMEHI.js} +8 -6
- package/dist/chunk-DL6BMEHI.js.map +1 -0
- package/dist/{chunk-G6UO6JVM.js → chunk-EIPQGFAE.js} +2 -2
- package/dist/{chunk-SGXYVGQT.js → chunk-HKKC2U6J.js} +5 -5
- package/dist/{chunk-SW6JCJCO.js → chunk-IDTB6OID.js} +3 -3
- package/dist/{chunk-5WB3NGIN.js → chunk-LJE2W4EM.js} +27 -2
- package/dist/chunk-LJE2W4EM.js.map +1 -0
- package/dist/{chunk-K4UUEG7X.js → chunk-LQHYHF36.js} +115 -36
- package/dist/chunk-LQHYHF36.js.map +1 -0
- package/dist/{chunk-FRCIPTUD.js → chunk-N4I3TD4G.js} +8 -18
- package/dist/chunk-N4I3TD4G.js.map +1 -0
- package/dist/{chunk-QC642RAG.js → chunk-N7BGNAA2.js} +15 -8
- package/dist/chunk-N7BGNAA2.js.map +1 -0
- package/dist/{chunk-3KS22CG2.js → chunk-P5C3ED3V.js} +5 -4
- package/dist/chunk-P5C3ED3V.js.map +1 -0
- package/dist/{chunk-7P6CUYQT.js → chunk-QULZNKPA.js} +2 -2
- package/dist/{chunk-V4JGVBUN.js → chunk-R2NGSPQS.js} +32 -1
- package/dist/chunk-R2NGSPQS.js.map +1 -0
- package/dist/{chunk-ZUVEBW5T.js → chunk-R7PSPKBD.js} +2 -2
- package/dist/{chunk-4UTWOSHP.js → chunk-UI3YDJTC.js} +43 -5
- package/dist/chunk-UI3YDJTC.js.map +1 -0
- package/dist/{chunk-RO6KQD3J.js → chunk-UWBX3DZK.js} +2 -2
- package/dist/{chunk-CVSCZ3CK.js → chunk-W3Q7B3DV.js} +7 -2
- package/dist/chunk-W3Q7B3DV.js.map +1 -0
- package/dist/{chunk-CA25GD5Q.js → chunk-XLBJHHDX.js} +38 -6
- package/dist/chunk-XLBJHHDX.js.map +1 -0
- package/dist/{chunk-FQQDBBNI.js → chunk-XZPAU7FC.js} +3 -3
- package/dist/context-mention-palette/index.js +8 -8
- package/dist/i18n/index.d.ts +37 -5
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +25 -6
- package/dist/index.js +1093 -425
- package/dist/index.js.map +1 -1
- package/dist/queued-prompt-runtime.d.ts +2 -2
- package/dist/{types-DSc2ta3s.d.ts → types-BAPEle8b.d.ts} +3 -3
- package/dist/workbench/contribution.d.ts +10 -3
- package/dist/workbench/contribution.js +10 -8
- package/dist/workbench/index.d.ts +4 -2
- package/dist/workbench/index.js +11 -11
- package/dist/workbench/launch.d.ts +3 -1
- package/dist/workbench/launch.js +3 -3
- package/dist/workbench/providerCatalog.d.ts +2 -2
- package/dist/workbench/providerCatalog.js +1 -1
- package/dist/workbench/sessionTitle.d.ts +1 -1
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.d.ts +1 -1
- package/dist/workbench/state.js +3 -3
- package/dist/workbench/types.d.ts +3 -2
- package/dist/workbench/types.js +1 -1
- package/dist/workspace-agent-generated-files.js +3 -3
- package/package.json +12 -12
- package/dist/chunk-22L4VWUR.js.map +0 -1
- package/dist/chunk-3KS22CG2.js.map +0 -1
- package/dist/chunk-4UTWOSHP.js.map +0 -1
- package/dist/chunk-5WB3NGIN.js.map +0 -1
- package/dist/chunk-6MUKWI6Z.js.map +0 -1
- package/dist/chunk-CA25GD5Q.js.map +0 -1
- package/dist/chunk-CVSCZ3CK.js.map +0 -1
- package/dist/chunk-FRCIPTUD.js.map +0 -1
- package/dist/chunk-IIVHPXAB.js.map +0 -1
- package/dist/chunk-K4UUEG7X.js.map +0 -1
- package/dist/chunk-NZN43XT5.js.map +0 -1
- package/dist/chunk-QC642RAG.js.map +0 -1
- package/dist/chunk-V4JGVBUN.js.map +0 -1
- /package/dist/{chunk-G6UO6JVM.js.map → chunk-EIPQGFAE.js.map} +0 -0
- /package/dist/{chunk-SGXYVGQT.js.map → chunk-HKKC2U6J.js.map} +0 -0
- /package/dist/{chunk-SW6JCJCO.js.map → chunk-IDTB6OID.js.map} +0 -0
- /package/dist/{chunk-7P6CUYQT.js.map → chunk-QULZNKPA.js.map} +0 -0
- /package/dist/{chunk-ZUVEBW5T.js.map → chunk-R7PSPKBD.js.map} +0 -0
- /package/dist/{chunk-RO6KQD3J.js.map → chunk-UWBX3DZK.js.map} +0 -0
- /package/dist/{chunk-FQQDBBNI.js.map → chunk-XZPAU7FC.js.map} +0 -0
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
var agentGUIProviderTargetStaticLabels = {
|
|
3
3
|
"claude-code": "Claude Code",
|
|
4
4
|
codex: "Codex",
|
|
5
|
+
cursor: "Cursor",
|
|
5
6
|
gemini: "Gemini",
|
|
6
7
|
hermes: "Hermes",
|
|
7
8
|
nexight: "Tutti Agent",
|
|
@@ -10,6 +11,7 @@ var agentGUIProviderTargetStaticLabels = {
|
|
|
10
11
|
var agentGUIDefaultTargetProviders = [
|
|
11
12
|
"codex",
|
|
12
13
|
"claude-code",
|
|
14
|
+
"cursor",
|
|
13
15
|
"nexight",
|
|
14
16
|
"hermes",
|
|
15
17
|
"openclaw"
|
|
@@ -39,6 +41,26 @@ function createDisabledPlaceholderAgentGUIProviderTarget(provider) {
|
|
|
39
41
|
disabled: true
|
|
40
42
|
};
|
|
41
43
|
}
|
|
44
|
+
function createSharedAgentGUIProviderTarget(input) {
|
|
45
|
+
const sharedAgentId = input.sharedAgentId.trim();
|
|
46
|
+
const targetId = `shared-agent:${sharedAgentId}`;
|
|
47
|
+
return {
|
|
48
|
+
targetId,
|
|
49
|
+
...input.agentTargetId?.trim() ? { agentTargetId: input.agentTargetId.trim() } : {},
|
|
50
|
+
provider: input.provider,
|
|
51
|
+
ref: {
|
|
52
|
+
...input.ref ?? {},
|
|
53
|
+
kind: "shared-agent",
|
|
54
|
+
provider: input.provider,
|
|
55
|
+
sharedAgentId
|
|
56
|
+
},
|
|
57
|
+
label: input.label,
|
|
58
|
+
...input.ownerLabel?.trim() ? { ownerLabel: input.ownerLabel.trim() } : {},
|
|
59
|
+
...input.iconUrl?.trim() ? { iconUrl: input.iconUrl.trim() } : {},
|
|
60
|
+
...input.unavailableReason?.trim() ? { unavailableReason: input.unavailableReason.trim() } : {},
|
|
61
|
+
...input.disabled === true ? { disabled: true } : {}
|
|
62
|
+
};
|
|
63
|
+
}
|
|
42
64
|
function createLocalAgentGUIProviderTargets(providers = agentGUIDefaultTargetProviders) {
|
|
43
65
|
return providers.map(
|
|
44
66
|
(provider) => createLocalAgentGUIProviderTarget(provider)
|
|
@@ -61,6 +83,8 @@ function localAgentGUIAgentTargetId(provider) {
|
|
|
61
83
|
return "local:codex";
|
|
62
84
|
case "claude-code":
|
|
63
85
|
return "local:claude-code";
|
|
86
|
+
case "cursor":
|
|
87
|
+
return "local:cursor";
|
|
64
88
|
case "hermes":
|
|
65
89
|
return "local:hermes";
|
|
66
90
|
case "nexight":
|
|
@@ -138,6 +162,18 @@ function agentGUIProviderTargetRefsEqual(left, right) {
|
|
|
138
162
|
return stableProviderTargetRefKey(left) === stableProviderTargetRefKey(right);
|
|
139
163
|
}
|
|
140
164
|
function normalizeAgentGUIProviderTarget(target) {
|
|
165
|
+
const {
|
|
166
|
+
targetId: _targetId,
|
|
167
|
+
agentTargetId: _agentTargetId,
|
|
168
|
+
provider: _provider,
|
|
169
|
+
ref: _ref,
|
|
170
|
+
label: _label,
|
|
171
|
+
description,
|
|
172
|
+
iconUrl,
|
|
173
|
+
ownerLabel,
|
|
174
|
+
unavailableReason,
|
|
175
|
+
...rest
|
|
176
|
+
} = target;
|
|
141
177
|
const targetId = target.targetId.trim();
|
|
142
178
|
const agentTargetId = target.agentTargetId?.trim();
|
|
143
179
|
const label = target.label.trim();
|
|
@@ -146,7 +182,7 @@ function normalizeAgentGUIProviderTarget(target) {
|
|
|
146
182
|
return null;
|
|
147
183
|
}
|
|
148
184
|
return {
|
|
149
|
-
...
|
|
185
|
+
...rest,
|
|
150
186
|
targetId,
|
|
151
187
|
...agentTargetId ? { agentTargetId } : {},
|
|
152
188
|
provider: target.provider,
|
|
@@ -156,9 +192,10 @@ function normalizeAgentGUIProviderTarget(target) {
|
|
|
156
192
|
provider: target.provider
|
|
157
193
|
},
|
|
158
194
|
label,
|
|
159
|
-
...
|
|
160
|
-
...
|
|
161
|
-
...
|
|
195
|
+
...description?.trim() ? { description: description.trim() } : {},
|
|
196
|
+
...iconUrl?.trim() ? { iconUrl: iconUrl.trim() } : {},
|
|
197
|
+
...ownerLabel?.trim() ? { ownerLabel: ownerLabel.trim() } : {},
|
|
198
|
+
...unavailableReason?.trim() ? { unavailableReason: unavailableReason.trim() } : {}
|
|
162
199
|
};
|
|
163
200
|
}
|
|
164
201
|
function stableProviderTargetRefKey(ref) {
|
|
@@ -180,6 +217,7 @@ export {
|
|
|
180
217
|
agentGUIDefaultTargetProviders,
|
|
181
218
|
createLocalAgentGUIProviderTarget,
|
|
182
219
|
createDisabledPlaceholderAgentGUIProviderTarget,
|
|
220
|
+
createSharedAgentGUIProviderTarget,
|
|
183
221
|
createLocalAgentGUIProviderTargets,
|
|
184
222
|
localAgentGUIProviderTargetId,
|
|
185
223
|
localAgentGUIAgentTargetId,
|
|
@@ -187,4 +225,4 @@ export {
|
|
|
187
225
|
resolveAgentGUIProviderTarget,
|
|
188
226
|
agentGUIProviderTargetRefsEqual
|
|
189
227
|
};
|
|
190
|
-
//# sourceMappingURL=chunk-
|
|
228
|
+
//# sourceMappingURL=chunk-UI3YDJTC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../providerTargets.ts"],"sourcesContent":["import type {\n AgentGUIProvider,\n AgentGUIProviderTarget,\n AgentGUIProviderTargetRef\n} from \"./types.ts\";\n\nconst agentGUIProviderTargetStaticLabels: Record<AgentGUIProvider, string> = {\n \"claude-code\": \"Claude Code\",\n codex: \"Codex\",\n cursor: \"Cursor\",\n gemini: \"Gemini\",\n hermes: \"Hermes\",\n nexight: \"Tutti Agent\",\n openclaw: \"OpenClaw\"\n};\n\nexport const agentGUIDefaultTargetProviders = [\n \"codex\",\n \"claude-code\",\n \"cursor\",\n \"nexight\",\n \"hermes\",\n \"openclaw\"\n] as const satisfies readonly AgentGUIProvider[];\n\nconst agentGUIDisabledPlaceholderProviders = [\n \"nexight\",\n \"hermes\",\n \"openclaw\"\n] as const satisfies readonly AgentGUIProvider[];\n\nexport function createLocalAgentGUIProviderTarget(\n provider: AgentGUIProvider\n): AgentGUIProviderTarget {\n const targetId = localAgentGUIProviderTargetId(provider);\n const agentTargetId = localAgentGUIAgentTargetId(provider);\n return {\n targetId,\n ...(agentTargetId ? { agentTargetId } : {}),\n provider,\n ref: {\n kind: \"local\",\n provider\n },\n label: agentGUIProviderTargetStaticLabels[provider] ?? provider\n };\n}\n\nexport function createDisabledPlaceholderAgentGUIProviderTarget(\n provider: AgentGUIProvider\n): AgentGUIProviderTarget {\n return {\n ...createLocalAgentGUIProviderTarget(provider),\n disabled: true\n };\n}\n\nexport function createSharedAgentGUIProviderTarget(input: {\n provider: AgentGUIProvider;\n sharedAgentId: string;\n label: string;\n agentTargetId?: string | null;\n ownerLabel?: string | null;\n iconUrl?: string | null;\n unavailableReason?: string | null;\n disabled?: boolean;\n ref?: Record<string, unknown> | null;\n}): AgentGUIProviderTarget {\n const sharedAgentId = input.sharedAgentId.trim();\n const targetId = `shared-agent:${sharedAgentId}`;\n return {\n targetId,\n ...(input.agentTargetId?.trim()\n ? { agentTargetId: input.agentTargetId.trim() }\n : {}),\n provider: input.provider,\n ref: {\n ...(input.ref ?? {}),\n kind: \"shared-agent\",\n provider: input.provider,\n sharedAgentId\n },\n label: input.label,\n ...(input.ownerLabel?.trim()\n ? { ownerLabel: input.ownerLabel.trim() }\n : {}),\n ...(input.iconUrl?.trim() ? { iconUrl: input.iconUrl.trim() } : {}),\n ...(input.unavailableReason?.trim()\n ? { unavailableReason: input.unavailableReason.trim() }\n : {}),\n ...(input.disabled === true ? { disabled: true } : {})\n };\n}\n\nexport function createLocalAgentGUIProviderTargets(\n providers: readonly AgentGUIProvider[] = agentGUIDefaultTargetProviders\n): AgentGUIProviderTarget[] {\n return providers.map((provider) =>\n createLocalAgentGUIProviderTarget(provider)\n );\n}\n\nfunction createStaticAgentGUIProviderTargets(\n providers: readonly AgentGUIProvider[] = agentGUIDefaultTargetProviders,\n options?: { includeDisabledPlaceholders?: boolean }\n): AgentGUIProviderTarget[] {\n const disabledProviders = new Set<AgentGUIProvider>(\n options?.includeDisabledPlaceholders === true\n ? agentGUIDisabledPlaceholderProviders\n : []\n );\n return providers.map((provider) =>\n disabledProviders.has(provider)\n ? createDisabledPlaceholderAgentGUIProviderTarget(provider)\n : createLocalAgentGUIProviderTarget(provider)\n );\n}\n\nexport function localAgentGUIProviderTargetId(\n provider: AgentGUIProvider\n): string {\n return `local:${provider}`;\n}\n\nexport function localAgentGUIAgentTargetId(\n provider: AgentGUIProvider\n): string | null {\n switch (provider) {\n case \"codex\":\n return \"local:codex\";\n case \"claude-code\":\n return \"local:claude-code\";\n case \"cursor\":\n return \"local:cursor\";\n case \"hermes\":\n return \"local:hermes\";\n case \"nexight\":\n return \"local:nexight\";\n case \"openclaw\":\n return \"local:openclaw\";\n default:\n return null;\n }\n}\n\nexport function normalizeAgentGUIProviderTargets(\n targets: readonly AgentGUIProviderTarget[] | null | undefined,\n options?: {\n includeDisabledPlaceholders?: boolean;\n useStaticCatalog?: boolean;\n }\n): AgentGUIProviderTarget[] {\n const includeDisabledPlaceholders =\n options?.includeDisabledPlaceholders === true;\n const useStaticCatalog = options?.useStaticCatalog !== false;\n const source = targets && targets.length > 0 ? targets : [];\n const normalizedTargets: AgentGUIProviderTarget[] = [];\n const seenTargetKeys = new Set<string>();\n const seenProviders = new Set<AgentGUIProvider>();\n for (const target of source) {\n const normalized = normalizeAgentGUIProviderTarget(target);\n if (!normalized) {\n continue;\n }\n const dedupeKey = `${normalized.provider}\\u0000${normalized.targetId}`;\n if (seenTargetKeys.has(dedupeKey)) {\n continue;\n }\n seenTargetKeys.add(dedupeKey);\n seenProviders.add(normalized.provider);\n normalizedTargets.push(normalized);\n }\n if (includeDisabledPlaceholders && normalizedTargets.length > 0) {\n for (const provider of agentGUIDisabledPlaceholderProviders) {\n if (seenProviders.has(provider)) {\n continue;\n }\n normalizedTargets.push(\n createDisabledPlaceholderAgentGUIProviderTarget(provider)\n );\n }\n }\n return normalizedTargets.length > 0 || !useStaticCatalog\n ? normalizedTargets\n : createStaticAgentGUIProviderTargets(undefined, {\n includeDisabledPlaceholders\n });\n}\n\nexport function resolveAgentGUIProviderTarget(input: {\n agentTargetId?: string | null;\n defaultProviderTargetId?: string | null;\n provider: AgentGUIProvider;\n providerTargetId?: string | null;\n providerTargets: readonly AgentGUIProviderTarget[];\n useStaticCatalog?: boolean;\n}): AgentGUIProviderTarget | null {\n const targetByAgentTargetId = new Map(\n input.providerTargets.flatMap((target) =>\n target.agentTargetId ? [[target.agentTargetId, target] as const] : []\n )\n );\n const agentTarget = targetByAgentTargetId.get(\n input.agentTargetId?.trim() ?? \"\"\n );\n if (agentTarget) {\n return agentTarget;\n }\n const providerTargets = input.providerTargets.filter(\n (target) => target.provider === input.provider\n );\n const targetById = new Map(\n providerTargets.map((target) => [target.targetId, target])\n );\n return (\n targetById.get(input.providerTargetId?.trim() ?? \"\") ??\n targetById.get(input.defaultProviderTargetId?.trim() ?? \"\") ??\n targetById.get(localAgentGUIProviderTargetId(input.provider)) ??\n providerTargets.find((target) => target.disabled !== true) ??\n providerTargets[0] ??\n (input.useStaticCatalog === false\n ? null\n : createLocalAgentGUIProviderTarget(input.provider))\n );\n}\n\nexport function agentGUIProviderTargetRefsEqual(\n left: AgentGUIProviderTargetRef | null | undefined,\n right: AgentGUIProviderTargetRef | null | undefined\n): boolean {\n if (left === right) {\n return true;\n }\n if (!left && !right) {\n return true;\n }\n if (!left || !right) {\n return false;\n }\n return stableProviderTargetRefKey(left) === stableProviderTargetRefKey(right);\n}\n\nfunction normalizeAgentGUIProviderTarget(\n target: AgentGUIProviderTarget\n): AgentGUIProviderTarget | null {\n const {\n targetId: _targetId,\n agentTargetId: _agentTargetId,\n provider: _provider,\n ref: _ref,\n label: _label,\n description,\n iconUrl,\n ownerLabel,\n unavailableReason,\n ...rest\n } = target;\n const targetId = target.targetId.trim();\n const agentTargetId = target.agentTargetId?.trim();\n const label = target.label.trim();\n const kind =\n typeof target.ref.kind === \"string\" ? target.ref.kind.trim() : \"\";\n if (!targetId || !label || !kind || target.ref.provider !== target.provider) {\n return null;\n }\n return {\n ...rest,\n targetId,\n ...(agentTargetId ? { agentTargetId } : {}),\n provider: target.provider,\n ref: {\n ...target.ref,\n kind,\n provider: target.provider\n },\n label,\n ...(description?.trim() ? { description: description.trim() } : {}),\n ...(iconUrl?.trim() ? { iconUrl: iconUrl.trim() } : {}),\n ...(ownerLabel?.trim() ? { ownerLabel: ownerLabel.trim() } : {}),\n ...(unavailableReason?.trim()\n ? { unavailableReason: unavailableReason.trim() }\n : {})\n };\n}\n\nfunction stableProviderTargetRefKey(ref: AgentGUIProviderTargetRef): string {\n return JSON.stringify(sortProviderTargetRefValue(ref));\n}\n\nfunction sortProviderTargetRefValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(sortProviderTargetRefValue);\n }\n if (!value || typeof value !== \"object\") {\n return value;\n }\n return Object.fromEntries(\n Object.entries(value)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, entryValue]) => [key, sortProviderTargetRefValue(entryValue)])\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
setCurrentAgentGuiI18nRuntime,
|
|
7
7
|
translate,
|
|
8
8
|
translateInUiLanguage
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XLBJHHDX.js";
|
|
10
10
|
|
|
11
11
|
// i18n/index.ts
|
|
12
12
|
import React, {
|
|
@@ -68,4 +68,4 @@ export {
|
|
|
68
68
|
AgentGuiI18nProvider,
|
|
69
69
|
useTranslation
|
|
70
70
|
};
|
|
71
|
-
//# sourceMappingURL=chunk-
|
|
71
|
+
//# sourceMappingURL=chunk-UWBX3DZK.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
translateInUiLanguage
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XLBJHHDX.js";
|
|
4
4
|
import {
|
|
5
5
|
normalizeAgentTitleText
|
|
6
6
|
} from "./chunk-GCBDIQDX.js";
|
|
@@ -98,6 +98,7 @@ function unescapeMarkdownLabel(label) {
|
|
|
98
98
|
var AGENT_PROVIDER_LABEL = {
|
|
99
99
|
"claude-code": "Claude Code",
|
|
100
100
|
codex: "Codex",
|
|
101
|
+
cursor: "Cursor",
|
|
101
102
|
nexight: "Nexight",
|
|
102
103
|
opencode: "OpenCode",
|
|
103
104
|
gemini: "Gemini CLI",
|
|
@@ -114,6 +115,10 @@ function normalizeAgentGUIProviderIdentity(provider) {
|
|
|
114
115
|
return "claude-code";
|
|
115
116
|
case "codex":
|
|
116
117
|
return "codex";
|
|
118
|
+
case "cursor":
|
|
119
|
+
case "cursor-agent":
|
|
120
|
+
case "cursor agent":
|
|
121
|
+
return "cursor";
|
|
117
122
|
case "nexight":
|
|
118
123
|
case "tutti":
|
|
119
124
|
return "nexight";
|
|
@@ -314,4 +319,4 @@ export {
|
|
|
314
319
|
resolveAgentGUIProviderDisplayLabel,
|
|
315
320
|
firstAgentGUIUserMessageTitle
|
|
316
321
|
};
|
|
317
|
-
//# sourceMappingURL=chunk-
|
|
322
|
+
//# sourceMappingURL=chunk-W3Q7B3DV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../shared/utils/agentSessionMentionText.ts","../contexts/settings/domain/agentSettings.providerMeta.ts","../shared/agentConversationTitleProjection.ts"],"sourcesContent":["import type { UiLanguage } from \"../../contexts/settings/domain/agentSettings\";\nimport { normalizeAgentTitleText } from \"./agentTitleText.ts\";\nimport {\n isRichTextMentionHref,\n parseRichTextMentionHref\n} from \"@tutti-os/ui-rich-text/core\";\n\nconst MARKDOWN_LINK_PATTERN = /\\[((?:\\\\.|[^\\]\\\\])*)\\]\\(([^)\\s]+)\\)/g;\nconst MARKDOWN_LABEL_ESCAPE_PATTERN = /\\\\([\\\\[\\]()])/g;\nconst SESSION_MENTION_DISPLAY_PREFIX_BY_LANGUAGE: Record<UiLanguage, string> = {\n \"zh-CN\": \"@会话 · \",\n en: \"@session · \"\n};\nconst PLAIN_SESSION_AGENT_LABELS = [\n \"Claude Code\",\n \"Gemini CLI\",\n \"Hermes Agent\",\n \"OpenClaw\",\n \"Nexight\",\n \"Gemini\",\n \"Hermes\",\n \"Codex\"\n] as const;\n\nexport interface FormatAgentSessionMentionTextOptions {\n language?: UiLanguage;\n}\n\nexport function formatAgentSessionMentionText(\n value: string | null | undefined,\n options: FormatAgentSessionMentionTextOptions = {}\n): string {\n const trimmed = value?.trim() ?? \"\";\n if (!trimmed) {\n return \"\";\n }\n const sessionMentionDisplayPrefix = sessionMentionDisplayPrefixForLanguage(\n options.language\n );\n\n const withSessionMentionsNormalized = trimmed.replace(\n MARKDOWN_LINK_PATTERN,\n (fullMatch, rawLabel: string, href: string) => {\n const label = unescapeMarkdownLabel(rawLabel);\n const mention = parseRichTextMentionHref(href, label);\n if (!mention) {\n return isRichTextMentionHref(href) ? label : fullMatch;\n }\n const providerId = mention.providerId.trim().toLowerCase();\n const displayLabel = label || mention.label;\n if (providerId === \"agent-session\") {\n return formatSessionLabel(displayLabel, sessionMentionDisplayPrefix);\n }\n if (providerId === \"workspace-issue\") {\n return formatIssueLabel(displayLabel);\n }\n return displayLabel;\n }\n );\n const normalized = normalizeAgentTitleText(withSessionMentionsNormalized);\n if (isPlainSessionMentionText(normalized, sessionMentionDisplayPrefix)) {\n return formatSessionLabel(normalized, sessionMentionDisplayPrefix);\n }\n return normalized;\n}\n\nfunction isPlainSessionMentionText(\n value: string,\n sessionMentionDisplayPrefix: string\n): boolean {\n const trimmed = value.trim();\n if (\n !trimmed.startsWith(\"@\") ||\n trimmed.startsWith(sessionMentionDisplayPrefix)\n ) {\n return false;\n }\n\n return PLAIN_SESSION_AGENT_LABELS.some((agentLabel) => {\n const ampersandSeparator = ` & ${agentLabel}`;\n const ampersandIndex = trimmed.indexOf(ampersandSeparator);\n if (ampersandIndex > 1) {\n const trailing = trimmed.slice(\n ampersandIndex + ampersandSeparator.length\n );\n if (trailing === \"\" || trailing.startsWith(\" \")) {\n return true;\n }\n }\n\n const dottedSeparator = ` · ${agentLabel} · `;\n return trimmed.indexOf(dottedSeparator) > 1;\n });\n}\n\nfunction sessionMentionDisplayPrefixForLanguage(\n language: UiLanguage | undefined\n): string {\n return SESSION_MENTION_DISPLAY_PREFIX_BY_LANGUAGE[language ?? \"en\"];\n}\n\nfunction formatSessionLabel(\n label: string,\n sessionMentionDisplayPrefix: string\n): string {\n const normalizedLabel = label.trim().replace(/^@+/, \"\").trim();\n return normalizedLabel\n ? `${sessionMentionDisplayPrefix}${normalizedLabel}`\n : label.trim();\n}\n\nfunction formatIssueLabel(label: string): string {\n const normalizedLabel = label.trim().replace(/^@+/, \"\").trim();\n return normalizedLabel ? `@Task · ${normalizedLabel}` : label.trim();\n}\n\nfunction unescapeMarkdownLabel(label: string): string {\n return label.replace(MARKDOWN_LABEL_ESCAPE_PATTERN, \"$1\");\n}\n","import type { AgentProvider } from \"./agentSettings\";\n\nexport const AGENT_PROVIDER_LABEL: Record<AgentProvider, string> = {\n \"claude-code\": \"Claude Code\",\n codex: \"Codex\",\n cursor: \"Cursor\",\n nexight: \"Nexight\",\n opencode: \"OpenCode\",\n gemini: \"Gemini CLI\",\n openclaw: \"OpenClaw\",\n hermes: \"Hermes Agent\"\n};\n\nexport interface AgentProviderCapabilities {\n runtimeObservation: \"jsonl\" | \"provider-api\" | \"none\";\n experimental: boolean;\n}\n\nexport const AGENT_PROVIDER_CAPABILITIES: Record<\n AgentProvider,\n AgentProviderCapabilities\n> = {\n \"claude-code\": {\n runtimeObservation: \"jsonl\",\n experimental: false\n },\n codex: {\n runtimeObservation: \"jsonl\",\n experimental: false\n },\n cursor: {\n runtimeObservation: \"jsonl\",\n experimental: false\n },\n nexight: {\n runtimeObservation: \"jsonl\",\n experimental: false\n },\n opencode: {\n runtimeObservation: \"provider-api\",\n experimental: false\n },\n gemini: {\n runtimeObservation: \"none\",\n experimental: false\n },\n openclaw: {\n runtimeObservation: \"jsonl\",\n experimental: false\n },\n hermes: {\n runtimeObservation: \"jsonl\",\n experimental: false\n }\n};\n","import { AGENT_PROVIDER_LABEL } from \"../contexts/settings/domain/agentSettings.providerMeta.ts\";\nimport type { UiLanguage } from \"../contexts/settings/domain/agentSettings.ts\";\nimport { translateInUiLanguage } from \"../i18n/runtime.ts\";\nimport type { AgentGUIProvider } from \"../types.ts\";\nimport type { WorkspaceAgentActivityTimelineItem } from \"./workspaceAgentActivityTypes.ts\";\nimport { formatAgentSessionMentionText } from \"./utils/agentSessionMentionText.ts\";\nimport { normalizeAgentTitleText } from \"./utils/agentTitleText.ts\";\n\nexport type AgentGUIResolvedProvider = AgentGUIProvider | \"unknown\";\nexport type AgentGUIConversationTitleFallback = \"generic-agent\" | null;\n\nexport interface AgentGUIConversationPlainTitleOptions {\n fallbackAgentLabel?: string;\n language?: UiLanguage;\n}\n\nexport interface AgentGUIConversationTitleMessage {\n id?: number | string | null;\n messageId?: string | null;\n version?: number | null;\n role?: string | null;\n kind?: string | null;\n payload?: {\n content?: unknown;\n displayPrompt?: unknown;\n text?: unknown;\n } | null;\n occurredAtUnixMs?: number | null;\n completedAtUnixMs?: number | null;\n startedAtUnixMs?: number | null;\n}\n\nexport function normalizeAgentGUIProviderIdentity(\n provider: string | null | undefined\n): AgentGUIResolvedProvider {\n switch (provider?.trim().toLowerCase() ?? \"\") {\n case \"claude-code\":\n case \"claude\":\n case \"claude code\":\n return \"claude-code\";\n case \"codex\":\n return \"codex\";\n case \"cursor\":\n case \"cursor-agent\":\n case \"cursor agent\":\n return \"cursor\";\n case \"nexight\":\n case \"tutti\":\n return \"nexight\";\n case \"gemini\":\n return \"gemini\";\n case \"hermes\":\n return \"hermes\";\n case \"openclaw\":\n return \"openclaw\";\n default:\n return \"unknown\";\n }\n}\n\nexport function resolveAgentGUIProviderIdentity(input: {\n sessionProvider?: string | null;\n workspaceSessionProvider?: string | null;\n conversationProvider?: string | null;\n timelineItems?: readonly WorkspaceAgentActivityTimelineItem[];\n}): AgentGUIResolvedProvider {\n const candidates = [\n input.sessionProvider,\n input.workspaceSessionProvider,\n input.conversationProvider,\n timelineProviderHint(input.timelineItems ?? [])\n ];\n for (const candidate of candidates) {\n const normalized = normalizeAgentGUIProviderIdentity(candidate);\n if (normalized !== \"unknown\") {\n return normalized;\n }\n }\n return \"unknown\";\n}\n\nexport function resolveAgentGUIConversationTitle(\n title: string | null | undefined,\n provider: AgentGUIResolvedProvider\n): {\n title: string;\n titleFallback: AgentGUIConversationTitleFallback;\n} {\n const normalizedTitle = stripAgentGUITitleTrailingPeriod(\n normalizeAgentTitleText(title)\n );\n if (normalizedTitle) {\n return {\n title: normalizedTitle,\n titleFallback: null\n };\n }\n if (provider === \"unknown\") {\n return {\n title: \"\",\n titleFallback: \"generic-agent\"\n };\n }\n return {\n title: AGENT_PROVIDER_LABEL[provider],\n titleFallback: null\n };\n}\n\nexport function resolveAgentGUIConversationDisplayTitle(\n input: {\n title: string;\n titleFallback?: AgentGUIConversationTitleFallback;\n },\n fallbackAgentLabel: string\n): string {\n if (input.title) {\n return stripAgentGUITitleTrailingPeriod(\n normalizeAgentTitleText(input.title)\n );\n }\n if (input.titleFallback === \"generic-agent\") {\n return stripAgentGUITitleTrailingPeriod(fallbackAgentLabel);\n }\n return \"\";\n}\n\nexport function formatAgentGUIConversationPlainTitle(\n input: {\n title: string;\n titleFallback?: AgentGUIConversationTitleFallback;\n },\n options: AgentGUIConversationPlainTitleOptions = {}\n): string {\n return formatAgentSessionMentionText(\n resolveAgentGUIConversationDisplayTitle(\n input,\n options.fallbackAgentLabel ?? \"Agent\"\n ),\n {\n language: options.language\n }\n );\n}\n\nexport function resolveAgentGUIDockConversationTitle(input: {\n provider: AgentGUIResolvedProvider;\n title: string;\n titleFallback?: AgentGUIConversationTitleFallback;\n}): string | null {\n return resolveAgentGUIExplicitConversationTitle(input);\n}\n\nexport function resolveAgentGUIExplicitConversationTitle(input: {\n provider: AgentGUIResolvedProvider;\n title: string;\n titleFallback?: AgentGUIConversationTitleFallback;\n}): string | null {\n if (input.titleFallback) {\n return null;\n }\n\n const title = stripAgentGUITitleTrailingPeriod(\n normalizeAgentTitleText(input.title)\n );\n if (!title) {\n return null;\n }\n if (isAgentGUIUntitledTaskTitle(title)) {\n return null;\n }\n\n if (\n input.provider !== \"unknown\" &&\n title === AGENT_PROVIDER_LABEL[input.provider]\n ) {\n return null;\n }\n\n return title;\n}\n\nexport function resolveAgentGUIProviderDisplayLabel(\n provider: string | null | undefined,\n fallbackAgentLabel: string\n): string {\n const resolvedProvider = normalizeAgentGUIProviderIdentity(provider);\n if (resolvedProvider === \"unknown\") {\n return fallbackAgentLabel;\n }\n return AGENT_PROVIDER_LABEL[resolvedProvider];\n}\n\nexport function firstAgentGUIUserMessageTitle(\n messages: readonly AgentGUIConversationTitleMessage[]\n): string {\n const userMessage = [...messages]\n .filter(\n (message) =>\n messageRole(message) === \"user\" && messageText(message).length > 0\n )\n .sort(compareMessagesAscending)[0];\n return userMessage ? messageText(userMessage) : \"\";\n}\n\nfunction messageRole(\n message: AgentGUIConversationTitleMessage\n): \"user\" | \"agent\" | null {\n const role = message.role?.trim().toLowerCase();\n if (role === \"user\") {\n return \"user\";\n }\n if (role === \"assistant\" || role === \"agent\") {\n return \"agent\";\n }\n const kind = message.kind?.trim().toLowerCase() ?? \"\";\n if (kind === \"message.user\") {\n return \"user\";\n }\n if (kind === \"message.assistant\" || kind === \"message.agent\") {\n return \"agent\";\n }\n return null;\n}\n\nfunction messageText(message: AgentGUIConversationTitleMessage): string {\n const payload = message.payload;\n const displayPrompt =\n typeof payload?.displayPrompt === \"string\" ? payload.displayPrompt : \"\";\n const text = typeof payload?.text === \"string\" ? payload.text : \"\";\n const content = typeof payload?.content === \"string\" ? payload.content : \"\";\n return normalizeAgentTitleText(displayPrompt || text || content);\n}\n\nfunction compareMessagesAscending(\n left: AgentGUIConversationTitleMessage,\n right: AgentGUIConversationTitleMessage\n): number {\n const leftTime =\n left.occurredAtUnixMs ??\n left.completedAtUnixMs ??\n left.startedAtUnixMs ??\n 0;\n const rightTime =\n right.occurredAtUnixMs ??\n right.completedAtUnixMs ??\n right.startedAtUnixMs ??\n 0;\n const timeDiff = leftTime - rightTime;\n if (timeDiff !== 0) {\n return timeDiff;\n }\n const sequenceDiff =\n messageSequence(left) - messageSequence(right) ||\n (left.messageId ?? \"\").localeCompare(right.messageId ?? \"\");\n return sequenceDiff;\n}\n\nfunction messageSequence(message: AgentGUIConversationTitleMessage): number {\n const numericId =\n typeof message.id === \"number\" && Number.isFinite(message.id)\n ? message.id\n : 0;\n return message.version ?? numericId;\n}\n\nfunction stripAgentGUITitleTrailingPeriod(title: string): string {\n return title\n .trimEnd()\n .replace(/[.。]+$/u, \"\")\n .trimEnd();\n}\n\nfunction isAgentGUIUntitledTaskTitle(title: string): boolean {\n return localizedAgentGUIUntitledTaskLabels().has(compactTitleText(title));\n}\n\nfunction localizedAgentGUIUntitledTaskLabels(): Set<string> {\n return new Set(\n ([\"en\", \"zh-CN\"] as const)\n .map((language) =>\n compactTitleText(\n translateInUiLanguage(\n language,\n \"agentHost.workspaceAgentsUntitledTask\"\n )\n )\n )\n .filter(Boolean)\n );\n}\n\nfunction timelineProviderHint(\n timelineItems: readonly WorkspaceAgentActivityTimelineItem[]\n): string | null {\n for (const item of timelineItems) {\n if (isUserTimelineItem(item)) {\n continue;\n }\n const normalized = normalizeAgentGUIProviderIdentity(item.actorId);\n if (normalized !== \"unknown\") {\n return normalized;\n }\n }\n return null;\n}\n\nfunction isUserTimelineItem(item: WorkspaceAgentActivityTimelineItem): boolean {\n const role = item.role?.trim().toLowerCase();\n if (role === \"user\") {\n return true;\n }\n const actorType = item.actorType.trim().toLowerCase();\n if (actorType === \"user\") {\n return true;\n }\n return item.itemType.trim().toLowerCase() === \"message.user\";\n}\n\nfunction compactTitleText(value: string): string {\n return value.trim().replace(/\\s+/g, \" \");\n}\n"],"mappings":"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","names":[]}
|
|
@@ -465,7 +465,7 @@ var en = {
|
|
|
465
465
|
providerGateLoginAction: "Connect",
|
|
466
466
|
providerGateComingSoonTitle: "{{provider}} is coming soon",
|
|
467
467
|
providerGateComingSoonDescription: "{{provider}} is not available yet. We will enable this agent when it is ready.",
|
|
468
|
-
providerGateComingSoonAction: "
|
|
468
|
+
providerGateComingSoonAction: "coming soon",
|
|
469
469
|
providerGateUnavailableTitle: "{{provider}} is not ready yet",
|
|
470
470
|
providerGateUnavailableDescription: "We could not confirm that {{provider}} is ready. Try checking again.",
|
|
471
471
|
providerGateRetryAction: "Check again",
|
|
@@ -538,6 +538,20 @@ var en = {
|
|
|
538
538
|
description: "Unrestricted access to the internet and any file on your computer"
|
|
539
539
|
}
|
|
540
540
|
},
|
|
541
|
+
cursor: {
|
|
542
|
+
"read-only": {
|
|
543
|
+
label: "Read-only",
|
|
544
|
+
description: "Cursor plans and reads only. Proposes changes without making them."
|
|
545
|
+
},
|
|
546
|
+
agent: {
|
|
547
|
+
label: "Ask for approval",
|
|
548
|
+
description: "Full tool access. Cursor asks before running commands or other risky actions."
|
|
549
|
+
},
|
|
550
|
+
"full-access": {
|
|
551
|
+
label: "Full access",
|
|
552
|
+
description: "Runs commands without asking, unless explicitly denied by your Cursor permission rules."
|
|
553
|
+
}
|
|
554
|
+
},
|
|
541
555
|
nexight: {
|
|
542
556
|
"read-only": {
|
|
543
557
|
label: "Ask for approval",
|
|
@@ -609,7 +623,7 @@ var en = {
|
|
|
609
623
|
slashStatusSession: "Session",
|
|
610
624
|
slashStatusBaseUrl: "Base URL",
|
|
611
625
|
slashStatusContext: "Context",
|
|
612
|
-
slashStatusLimits: "Limits",
|
|
626
|
+
slashStatusLimits: "Usage Limits",
|
|
613
627
|
slashStatusClose: "Close",
|
|
614
628
|
slashStatusFiveHourLimit: "5h limit",
|
|
615
629
|
slashStatusWeeklyLimit: "7d limit",
|
|
@@ -687,7 +701,8 @@ var en = {
|
|
|
687
701
|
empty: "What can {{provider}} help you with?",
|
|
688
702
|
conversations: "Sessions",
|
|
689
703
|
newConversation: "New session",
|
|
690
|
-
agentConfig: "
|
|
704
|
+
agentConfig: "Check & Settings",
|
|
705
|
+
agentSettingsMenu: "Settings",
|
|
691
706
|
agentEnvSetup: "Environment Check",
|
|
692
707
|
noConversations: "No sessions yet",
|
|
693
708
|
emptyProjectConversations: "No chats yet",
|
|
@@ -1407,6 +1422,7 @@ var en = {
|
|
|
1407
1422
|
subAgentProgress: "PROGRESS",
|
|
1408
1423
|
missingFailureDetails: "The provider reported failure without details.",
|
|
1409
1424
|
noMatches: "No matches",
|
|
1425
|
+
stepLabel: "Step {{index}}",
|
|
1410
1426
|
noMatchingTools: "No matching tools",
|
|
1411
1427
|
loadedAvailable: "{{loaded}} loaded \xB7 {{available}} available",
|
|
1412
1428
|
contentTruncated: "Content truncated",
|
|
@@ -2973,7 +2989,7 @@ var zhCN = {
|
|
|
2973
2989
|
providerGateLoginAction: "\u8FDE\u63A5",
|
|
2974
2990
|
providerGateComingSoonTitle: "{{provider}} \u5373\u5C06\u4E0A\u7EBF",
|
|
2975
2991
|
providerGateComingSoonDescription: "{{provider}} \u6682\u672A\u5F00\u653E\u3002\u51C6\u5907\u597D\u540E\u5373\u53EF\u5728\u8FD9\u91CC\u4F7F\u7528\u8FD9\u4E2A Agent\u3002",
|
|
2976
|
-
providerGateComingSoonAction: "
|
|
2992
|
+
providerGateComingSoonAction: "coming soon",
|
|
2977
2993
|
providerGateUnavailableTitle: "{{provider}} \u6682\u65F6\u8FD8\u4E0D\u53EF\u7528",
|
|
2978
2994
|
providerGateUnavailableDescription: "\u6211\u4EEC\u8FD8\u4E0D\u80FD\u786E\u8BA4 {{provider}} \u5DF2\u51C6\u5907\u597D\uFF0C\u53EF\u4EE5\u518D\u68C0\u6D4B\u4E00\u6B21\u3002",
|
|
2979
2995
|
providerGateRetryAction: "\u91CD\u65B0\u68C0\u6D4B",
|
|
@@ -3046,6 +3062,20 @@ var zhCN = {
|
|
|
3046
3062
|
description: "\u53EF\u4E0D\u53D7\u9650\u5236\u5730\u8BBF\u95EE\u4E92\u8054\u7F51\u548C\u60A8\u7535\u8111\u4E0A\u7684\u4EFB\u4F55\u6587\u4EF6"
|
|
3047
3063
|
}
|
|
3048
3064
|
},
|
|
3065
|
+
cursor: {
|
|
3066
|
+
"read-only": {
|
|
3067
|
+
label: "\u53EA\u8BFB",
|
|
3068
|
+
description: "Cursor \u53EA\u8BFB\u53D6\u548C\u89C4\u5212\uFF0C\u63D0\u51FA\u4FEE\u6539\u5EFA\u8BAE\u4F46\u4E0D\u505A\u4EFB\u4F55\u66F4\u6539\u3002"
|
|
3069
|
+
},
|
|
3070
|
+
agent: {
|
|
3071
|
+
label: "\u8BF7\u6C42\u6279\u51C6",
|
|
3072
|
+
description: "\u5B8C\u6574\u5DE5\u5177\u6743\u9650\uFF1BCursor \u5728\u8FD0\u884C\u547D\u4EE4\u7B49\u9AD8\u98CE\u9669\u64CD\u4F5C\u524D\u4F1A\u5148\u8BE2\u95EE\u4F60\u3002"
|
|
3073
|
+
},
|
|
3074
|
+
"full-access": {
|
|
3075
|
+
label: "\u5B8C\u5168\u8BBF\u95EE",
|
|
3076
|
+
description: "\u65E0\u9700\u8BE2\u95EE\u76F4\u63A5\u8FD0\u884C\u547D\u4EE4\uFF0C\u9664\u975E\u88AB\u4F60\u7684 Cursor \u6743\u9650\u89C4\u5219\u660E\u786E\u62D2\u7EDD\u3002"
|
|
3077
|
+
}
|
|
3078
|
+
},
|
|
3049
3079
|
nexight: {
|
|
3050
3080
|
"read-only": {
|
|
3051
3081
|
label: "\u8BF7\u6C42\u6279\u51C6",
|
|
@@ -3195,7 +3225,8 @@ var zhCN = {
|
|
|
3195
3225
|
empty: "\u9700\u8981 {{provider}} \u5E2E\u4F60\u505A\u4E9B\u4EC0\u4E48\uFF1F",
|
|
3196
3226
|
conversations: "\u4F1A\u8BDD",
|
|
3197
3227
|
newConversation: "\u65B0\u5EFA\u4F1A\u8BDD",
|
|
3198
|
-
agentConfig: "\
|
|
3228
|
+
agentConfig: "\u68C0\u6D4B\u4E0E\u8BBE\u7F6E",
|
|
3229
|
+
agentSettingsMenu: "\u8BBE\u7F6E",
|
|
3199
3230
|
agentEnvSetup: "\u73AF\u5883\u68C0\u6D4B",
|
|
3200
3231
|
noConversations: "\u8FD8\u6CA1\u6709\u4F1A\u8BDD",
|
|
3201
3232
|
emptyProjectConversations: "\u6682\u65E0\u5BF9\u8BDD",
|
|
@@ -3916,6 +3947,7 @@ var zhCN = {
|
|
|
3916
3947
|
subAgentProgress: "\u8FDB\u5C55",
|
|
3917
3948
|
missingFailureDetails: "Provider \u62A5\u544A\u5931\u8D25\uFF0C\u4F46\u6CA1\u6709\u8FD4\u56DE\u5931\u8D25\u8BE6\u60C5\u3002",
|
|
3918
3949
|
noMatches: "\u6CA1\u6709\u5339\u914D\u7ED3\u679C",
|
|
3950
|
+
stepLabel: "\u6B65\u9AA4 {{index}}",
|
|
3919
3951
|
noMatchingTools: "\u6CA1\u6709\u5339\u914D\u7684\u5DE5\u5177",
|
|
3920
3952
|
loadedAvailable: "\u5DF2\u52A0\u8F7D {{loaded}} \u4E2A \xB7 \u5171 {{available}} \u4E2A",
|
|
3921
3953
|
contentTruncated: "\u5185\u5BB9\u5DF2\u622A\u65AD",
|
|
@@ -5077,4 +5109,4 @@ export {
|
|
|
5077
5109
|
translateInUiLanguage,
|
|
5078
5110
|
getActiveUiLanguage
|
|
5079
5111
|
};
|
|
5080
|
-
//# sourceMappingURL=chunk-
|
|
5112
|
+
//# sourceMappingURL=chunk-XLBJHHDX.js.map
|