@tutti-os/agent-gui 0.0.211 → 0.0.213
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 +19 -11
- package/dist/{AgentRichTextReadonly-GEGDM5UJ.js → AgentRichTextReadonly-TASIMIK4.js} +5 -5
- package/dist/agent-conversation/index.d.ts +1 -1
- package/dist/agent-conversation/index.js +9 -9
- package/dist/agent-conversation/interactive-answer.d.ts +34 -0
- package/dist/agent-conversation/interactive-answer.js +11 -0
- package/dist/agent-conversation/interactive-answer.js.map +1 -0
- package/dist/agent-env/index.d.ts +1 -8
- package/dist/agent-env/index.js +1 -1
- package/dist/agent-gui.d.ts +21 -48
- package/dist/agent-gui.js +17 -16
- package/dist/agent-message-center/index.js +8 -7
- package/dist/agent-message-center/index.js.map +1 -1
- package/dist/{agentFileMentionContracts-B0yQizXB.d.ts → agentFileMentionContracts-BeBex-Sf.d.ts} +5 -0
- package/dist/{agentGuiNodeTypes-DTeerTzS.d.ts → agentGuiNodeTypes-BMcpfKTn.d.ts} +5 -1
- package/dist/app/renderer/agentactivity.css +45 -30
- package/dist/{chunk-7CJEFNHW.js → chunk-2HYADTQP.js} +7 -2
- package/dist/chunk-2HYADTQP.js.map +1 -0
- package/dist/{chunk-4VXUWPPZ.js → chunk-7SSORDQY.js} +18 -32
- package/dist/chunk-7SSORDQY.js.map +1 -0
- package/dist/{chunk-3MMKYY6R.js → chunk-AD2RTSMS.js} +2 -2
- package/dist/{chunk-X2LSVRRX.js → chunk-BYHNJQYH.js} +2 -2
- package/dist/{chunk-SXZJ3MDI.js → chunk-FEUU4YMY.js} +31 -32
- package/dist/chunk-FEUU4YMY.js.map +1 -0
- package/dist/chunk-FMTWYOHM.js +25 -0
- package/dist/chunk-FMTWYOHM.js.map +1 -0
- package/dist/{chunk-CVGUT36H.js → chunk-G2QO6HPB.js} +2 -2
- package/dist/{chunk-PLAOIDNY.js → chunk-ISC67YBJ.js} +171 -36
- package/dist/chunk-ISC67YBJ.js.map +1 -0
- package/dist/{chunk-U5NVLMW2.js → chunk-L4E2Y52A.js} +2 -2
- package/dist/{chunk-Z23HCYYR.js → chunk-LQKLBDBK.js} +3 -3
- package/dist/{chunk-JZ6KUUDY.js → chunk-N4HLBSMJ.js} +2 -32
- package/dist/chunk-N4HLBSMJ.js.map +1 -0
- package/dist/{chunk-Y2VQMPUR.js → chunk-QVLEP54U.js} +4 -56
- package/dist/chunk-QVLEP54U.js.map +1 -0
- package/dist/{chunk-AT4DII34.js → chunk-RLFO3NJV.js} +1692 -2046
- package/dist/chunk-RLFO3NJV.js.map +1 -0
- package/dist/{chunk-KY2IYJXK.js → chunk-XERDRMSF.js} +11 -5
- package/dist/chunk-XERDRMSF.js.map +1 -0
- package/dist/{chunk-HH5EWBH2.js → chunk-YBIT37P5.js} +2 -2
- package/dist/{chunk-P4LVBSFC.js → chunk-ZNHMWCO4.js} +8 -8
- package/dist/context-mention-palette/index.d.ts +1 -1
- package/dist/context-mention-palette/index.js +8 -8
- package/dist/i18n/index.d.ts +3 -55
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +46 -624
- package/dist/index.js +18 -25
- package/dist/index.js.map +1 -1
- package/dist/mention-search.d.ts +2 -2
- package/dist/mention-search.js +6 -6
- package/dist/workbench/contribution.js +3 -3
- package/dist/workbench/index.js +6 -6
- package/dist/workbench/sessionTitle.js +2 -2
- package/package.json +22 -15
- package/dist/app/renderer/assets/commercial/registration-credits-bg.png +0 -0
- package/dist/chunk-4VXUWPPZ.js.map +0 -1
- package/dist/chunk-7CJEFNHW.js.map +0 -1
- package/dist/chunk-AT4DII34.js.map +0 -1
- package/dist/chunk-JZ6KUUDY.js.map +0 -1
- package/dist/chunk-KY2IYJXK.js.map +0 -1
- package/dist/chunk-PLAOIDNY.js.map +0 -1
- package/dist/chunk-SXZJ3MDI.js.map +0 -1
- package/dist/chunk-Y2VQMPUR.js.map +0 -1
- /package/dist/{AgentRichTextReadonly-GEGDM5UJ.js.map → AgentRichTextReadonly-TASIMIK4.js.map} +0 -0
- /package/dist/{chunk-3MMKYY6R.js.map → chunk-AD2RTSMS.js.map} +0 -0
- /package/dist/{chunk-X2LSVRRX.js.map → chunk-BYHNJQYH.js.map} +0 -0
- /package/dist/{chunk-CVGUT36H.js.map → chunk-G2QO6HPB.js.map} +0 -0
- /package/dist/{chunk-U5NVLMW2.js.map → chunk-L4E2Y52A.js.map} +0 -0
- /package/dist/{chunk-Z23HCYYR.js.map → chunk-LQKLBDBK.js.map} +0 -0
- /package/dist/{chunk-HH5EWBH2.js.map → chunk-YBIT37P5.js.map} +0 -0
- /package/dist/{chunk-P4LVBSFC.js.map → chunk-ZNHMWCO4.js.map} +0 -0
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
agentMentionFilterLabel,
|
|
6
6
|
agentMentionGroupLabel,
|
|
7
7
|
mentionGroupExpandCount
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-ISC67YBJ.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveAgentMentionFileThumbnailUrl,
|
|
11
11
|
resolveAgentMentionFileVisualKind
|
|
@@ -13,13 +13,13 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
userAvatarPlaceholderUrl,
|
|
15
15
|
workspaceAgentActivityStatusLabel
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-AD2RTSMS.js";
|
|
17
17
|
import {
|
|
18
18
|
managedAgentRoundedIconUrl
|
|
19
19
|
} from "./chunk-M6HTOCQK.js";
|
|
20
20
|
import {
|
|
21
21
|
translate
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-BYHNJQYH.js";
|
|
23
23
|
|
|
24
24
|
// agent-gui/agentGuiNode/AgentFileMentionPalette.tsx
|
|
25
25
|
import {
|
|
@@ -335,9 +335,15 @@ function agentMentionItemToRowItem(item) {
|
|
|
335
335
|
}
|
|
336
336
|
if (item.kind === "session") {
|
|
337
337
|
const isMySession = item.scope === "my_sessions";
|
|
338
|
+
const participant = isMySession ? item.agentName : `${item.initiatorName} & ${item.agentName}`;
|
|
339
|
+
const participantTruncatableSegments = item.agentOwnerLabel && item.agentLabel ? isMySession ? [item.agentOwnerLabel] : [item.initiatorName, item.agentOwnerLabel] : null;
|
|
340
|
+
const participantFixedSuffix = participantTruncatableSegments && item.agentLabel ? ` \xB7 ${item.agentLabel}` : null;
|
|
338
341
|
return {
|
|
339
342
|
kind: "session",
|
|
340
|
-
participant
|
|
343
|
+
participant,
|
|
344
|
+
participantTruncatableSegments,
|
|
345
|
+
participantSegmentSeparator: " & ",
|
|
346
|
+
participantFixedSuffix,
|
|
341
347
|
summary: item.title,
|
|
342
348
|
userAvatarUrl: isMySession ? null : item.initiatorAvatarUrl ?? null,
|
|
343
349
|
userAvatarPlaceholderUrl,
|
|
@@ -517,4 +523,4 @@ export {
|
|
|
517
523
|
AgentFileMentionPalette,
|
|
518
524
|
AgentContextMentionPalette
|
|
519
525
|
};
|
|
520
|
-
//# sourceMappingURL=chunk-
|
|
526
|
+
//# sourceMappingURL=chunk-XERDRMSF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../agent-gui/agentGuiNode/AgentFileMentionPalette.tsx","../shared/roomIssueStatusLabel.ts"],"sourcesContent":["import {\n normalizeAgentActivityDisplayStatus,\n type AgentActivityDisplayStatus\n} from \"@tutti-os/agent-activity-core\";\nimport {\n MentionPaletteFromState,\n flattenMentionPaletteEntries,\n renderMentionRow,\n type MentionPaletteEntry,\n type MentionPaletteState,\n type MentionPaletteTheme,\n type MentionRowClassNames,\n type MentionRowItem,\n type MentionRowStatusTag,\n type MentionRowStatusTone\n} from \"@tutti-os/ui-rich-text/at-panel\";\nimport { resolveIssueManagerStatusPresentation } from \"@tutti-os/workspace-issue-manager/ui\";\nimport { userAvatarPlaceholderUrl } from \"../../shared/userAvatarPlaceholder\";\nimport { translate } from \"../../i18n/index\";\nimport { managedAgentRoundedIconUrl } from \"../../shared/managedAgentIcons\";\nimport { workspaceAgentActivityStatusLabel } from \"../../shared/workspaceAgentActivityStatusLabel\";\nimport { roomIssueStatusLabel } from \"../../shared/roomIssueStatusLabel\";\nimport {\n resolveAgentMentionFileThumbnailUrl,\n resolveAgentMentionFileVisualKind\n} from \"../shared/mentionFilePresentation\";\nimport {\n agentMentionEmptyGroupLabel,\n agentMentionFilterLabel,\n agentMentionGroupLabel\n} from \"./AgentMentionLabels\";\nimport {\n AGENT_MENTION_FILTER_TAB_ORDER,\n mentionGroupExpandCount\n} from \"./agentMentionSearchHelpers\";\nimport {\n type AgentMentionGroup,\n type AgentMentionBrowseCategory,\n type AgentMentionFilterId,\n type AgentMentionGroupId,\n type AgentMentionSearchState\n} from \"./AgentMentionSearchController\";\nimport { agentGeneratedMentionItemKey } from \"./agentMentionAgentGeneratedFilesPresentation\";\nimport type { AgentContextMentionItem } from \"./agentRichText/agentFileMentionExtension\";\nimport type { ReactNode } from \"react\";\n\nexport interface AgentMentionPaletteEntry {\n key: string;\n type: \"category\" | \"item\" | \"expand\";\n categoryId?: AgentMentionBrowseCategory[\"id\"];\n groupId?: AgentMentionGroupId;\n item?: AgentContextMentionItem;\n}\n\nexport interface AgentFileMentionPaletteProps {\n state: AgentMentionSearchState;\n highlightedKey: string | null;\n label: string;\n loadingLabel: string;\n emptyLabel: string;\n errorLabel: string;\n tabHintLabel: string;\n maxHeightPx: number;\n shouldCenterHighlightedItem?: boolean;\n onHighlightChange: (key: string) => void;\n onSelectItem: (entry: AgentContextMentionItem) => void;\n onSelectCategory: (categoryId: AgentMentionBrowseCategory[\"id\"]) => void;\n onSelectFilter: (filter: AgentMentionFilterId) => void;\n onExpandGroup: (groupId: AgentMentionGroupId) => void;\n onNavigateHierarchy?: (delta: 1 | -1) => void;\n onNavigateIntoItem?: (item: AgentContextMentionItem) => void;\n /**\n * 可选:点击 issue / app 行末尾的「查看产物」入口时回调(打开引用 picker 并定位)。\n * 仅 workspace-issue / workspace-app 行渲染该入口。\n */\n onOpenReferences?: (item: AgentContextMentionItem) => void;\n /** Controlled provenance filter supplied by the AgentGUI orchestration layer. */\n provenanceFilterControl?: ReactNode;\n}\n\nconst AGENT_MENTION_PALETTE_THEME: MentionPaletteTheme = {\n classNames: {\n palette: \"agent-gui-node__mention-palette\",\n header: \"agent-gui-node__mention-palette-header\",\n footer: \"agent-gui-node__mention-palette-footer\",\n tabs: \"agent-gui-node__mention-palette-tabs\",\n scrollRegion: \"agent-gui-node__mention-palette-scroll-region\",\n scrollbar:\n \"workspace-agents-status-panel__scrollbar agent-gui-node__mention-palette-scrollbar\",\n scrollbarThumb: \"workspace-agents-status-panel__scrollbar-thumb\",\n hint: \"agent-gui-node__mention-palette-hint\",\n hintItem: \"agent-gui-node__mention-palette-hint-item\",\n hintButton: \"agent-gui-node__mention-palette-hint-button\",\n hintSeparator: \"agent-gui-node__mention-palette-hint-separator\",\n shortcut: \"agent-gui-node__mention-palette-shortcut\",\n shortcutArrow: \"agent-gui-node__mention-palette-shortcut--arrow\",\n shortcutButton: \"agent-gui-node__mention-palette-shortcut-button\",\n shortcutGroup: \"agent-gui-node__mention-palette-shortcut-group\"\n },\n testIds: {\n emptyState: \"agent-gui-mention-palette-empty-state\",\n hint: \"agent-gui-mention-palette-hint\",\n scrollbar: \"agent-gui-mention-palette-scrollbar\",\n loadingSpinner: \"agent-mention-loading-spinner\"\n },\n groupDividerAttribute: \"data-agent-mention-group-divider\"\n};\n\n/**\n * The agent composer's existing structural row class names. Passing these to\n * {@link renderMentionRow} keeps the rendered DOM byte-identical to the\n * pre-refactor markup (the agent stylesheet `agentactivity.css` owns these\n * rules and the agent spec greps them), while the shared component defaults to\n * package-owned `rich-text-at-mention-*` names for other surfaces.\n */\nconst AGENT_MENTION_ROW_CLASS_NAMES: MentionRowClassNames = {\n fileIcon: \"agent-gui-node__mention-file-icon\",\n fileThumb: \"agent-gui-node__mention-file-thumb\",\n kindIcon: \"tsh-agent-object-token__kind-icon\",\n avatarImgUserPlaceholder:\n \"workspace-agents-status-panel__avatar-img--user-placeholder\"\n};\n\n/**\n * Stable per-item key suffix. The shared shell composes the full entry key as\n * `${group.id}:${agentMentionItemKey(item)}`, matching the agent's historical\n * `${group.id}:${item.kind}:${...}` format so highlight keys stay compatible.\n */\nexport function agentMentionItemKey(item: AgentContextMentionItem): string {\n return `${item.kind}:${\n item.kind === \"file\" ? agentGeneratedMentionItemKey(item) : item.targetId\n }`;\n}\n\nexport function isAgentMentionItemDisabled(\n item: AgentContextMentionItem\n): boolean {\n return (\n item.kind === \"agent-target\" &&\n item.availabilityStatus !== undefined &&\n item.availabilityStatus !== \"ready\" &&\n item.availabilityStatus !== \"available\"\n );\n}\n\nexport function flattenAgentMentionPaletteEntries(\n state: AgentMentionSearchState\n): AgentMentionPaletteEntry[] {\n return flattenMentionPaletteEntries(\n state,\n (item) => agentMentionItemKey(item),\n isAgentMentionItemDisabled\n ).map((entry: MentionPaletteEntry): AgentMentionPaletteEntry => {\n if (entry.type === \"item\") {\n const item =\n entry.groupId !== undefined && entry.itemIndex !== undefined\n ? state.groups.find((group) => group.id === entry.groupId)?.items[\n entry.itemIndex\n ]\n : undefined;\n return {\n key: entry.key,\n type: \"item\",\n groupId: entry.groupId as AgentMentionGroupId | undefined,\n item\n };\n }\n return {\n key: entry.key,\n type: entry.type,\n categoryId: entry.categoryId as AgentMentionFilterId | undefined,\n groupId: entry.groupId as AgentMentionGroupId | undefined\n };\n });\n}\n\nexport function groupStartKeys(state: AgentMentionSearchState): string[] {\n if (state.mode === \"browse\") {\n return state.categories.map((category) => `category:${category.id}`);\n }\n return state.groups\n .map((group) => {\n const firstItem = group.items.find(\n (item) => !isAgentMentionItemDisabled(item)\n );\n if (firstItem) {\n return `${group.id}:${agentMentionItemKey(firstItem)}`;\n }\n if (group.hasMore) {\n return `expand:${group.id}`;\n }\n return null;\n })\n .filter((key): key is string => key !== null);\n}\n\nexport function AgentFileMentionPalette({\n state,\n highlightedKey,\n label,\n loadingLabel,\n emptyLabel,\n errorLabel,\n tabHintLabel,\n maxHeightPx,\n shouldCenterHighlightedItem = false,\n onHighlightChange,\n onSelectItem,\n onSelectCategory,\n onSelectFilter,\n onExpandGroup,\n onNavigateHierarchy,\n onNavigateIntoItem,\n onOpenReferences,\n provenanceFilterControl\n}: AgentFileMentionPaletteProps): React.JSX.Element {\n \"use memo\";\n const openReferencesLabel = translate(\n \"agentHost.agentGui.mentionOpenReferences\"\n );\n const navigateIntoLabel = translate(\n \"agentHost.agentGui.fileMentionEnterFolder\"\n );\n const filter = state.filter as AgentMentionFilterId;\n const highlightedBrowseCategory = highlightedKey?.startsWith(\"category:\")\n ? highlightedKey.slice(\"category:\".length)\n : null;\n const showBrowseHint = shouldShowBrowseSearchHint({\n browseFilter: filter,\n groups: state.groups,\n highlightedBrowseCategory,\n mode: state.mode\n });\n\n // Browse mode carries its own category list (with labels); results mode tabs\n // are the fixed agent filter order. The shared shell renders a single tab\n // source, so resolve the right one here.\n const categories =\n state.mode === \"browse\"\n ? state.categories\n : AGENT_MENTION_FILTER_TAB_ORDER.map((id) => ({\n id,\n label: agentMentionFilterLabel(id)\n }));\n\n // When the agent wants the single keyboard browse hint we hand the shell an\n // empty group list so it renders its (keyboard-icon) empty state with our\n // computed hint copy. Otherwise we map the real groups, decorating each with\n // the agent-specific label / empty / expand / spacing chrome.\n const shellState: MentionPaletteState<AgentContextMentionItem> =\n showBrowseHint\n ? { ...state, categories, groups: [] }\n : {\n ...state,\n categories,\n groups: state.groups.map((group, index) =>\n decorateMentionGroup(\n group,\n index,\n state.groups,\n filter,\n state.query\n )\n )\n };\n\n const emptyLabelForShell = showBrowseHint\n ? browseHintForFilter(filter)\n : resolveMentionPaletteEmptyLabel({\n emptyLabel,\n filter,\n mode: state.mode,\n query: state.query\n });\n\n return (\n <MentionPaletteFromState<AgentContextMentionItem>\n state={shellState}\n highlightedKey={highlightedKey}\n getItemKey={agentMentionItemKey}\n isItemDisabled={isAgentMentionItemDisabled}\n renderItem={(item) =>\n renderMentionRow(agentMentionItemToRowItem(item), {\n classNames: AGENT_MENTION_ROW_CLASS_NAMES,\n dataAttributeMode: \"agent\",\n ...(onNavigateIntoItem && canNavigateIntoMentionItem(item)\n ? {\n onNavigateInto: () => onNavigateIntoItem(item),\n navigateIntoLabel\n }\n : {}),\n ...(onOpenReferences && isReferenceableMentionItem(item)\n ? {\n onOpenReferences: () => onOpenReferences(item),\n openReferencesLabel\n }\n : {})\n })\n }\n labels={{\n loading: loadingLabel,\n empty: emptyLabelForShell,\n error: errorLabel,\n tabHint: tabHintLabel,\n listbox: label\n }}\n hintLabels={{\n cycleFilter: translate(\"agentHost.agentGui.fileMentionSwitchCategory\"),\n moveSelection: translate(\n \"agentHost.agentGui.fileMentionSwitchSelection\"\n ),\n navigateHierarchy: translate(\n \"agentHost.agentGui.fileMentionNavigateHierarchy\"\n )\n }}\n maxHeightPx={maxHeightPx}\n headerActions={\n filter === \"session\" || filter === \"file\" || filter === \"issue\"\n ? provenanceFilterControl\n : undefined\n }\n scrollHighlightedIntoViewCentered={shouldCenterHighlightedItem}\n theme={AGENT_MENTION_PALETTE_THEME}\n callbacks={{\n onHighlightChange,\n onActiveCategoryIdChange: (categoryId) => {\n onSelectCategory(categoryId as AgentMentionBrowseCategory[\"id\"]);\n onSelectFilter(categoryId as AgentMentionFilterId);\n },\n onExpandGroup: (groupId) =>\n onExpandGroup(groupId as AgentMentionGroupId),\n onSelectItem\n }}\n onNavigateHierarchy={onNavigateHierarchy}\n />\n );\n}\n\nexport const AgentContextMentionPalette = AgentFileMentionPalette;\nexport type AgentContextMentionPaletteProps = AgentFileMentionPaletteProps;\n\n/**\n * Map a controller group onto the shared shell group, layering in the\n * agent-specific chrome the generic shell intentionally omits: translated\n * group / empty / expand labels, file-search chrome suppression, and the extra\n * top margin between the \"my sessions\" and \"collab sessions\" groups.\n */\nfunction decorateMentionGroup(\n group: AgentMentionGroup,\n index: number,\n groups: ReadonlyArray<AgentMentionGroup>,\n filter: AgentMentionFilterId,\n query: string\n): AgentMentionGroup {\n const groupId = group.id as AgentMentionGroupId;\n const suppressChrome = shouldSuppressFileSearchGroupChrome(filter, query);\n const followsMySessions =\n groupId === \"collab_sessions\" &&\n (groups[index - 1]?.id as AgentMentionGroupId) === \"my_sessions\";\n const showLabel = shouldRenderMentionGroupLabel({\n filter,\n groupCount: groups.length,\n groupId,\n groupLabel: group.label,\n query\n });\n const groupLabel = group.label ?? agentMentionGroupLabel(groupId);\n return {\n ...group,\n label: showLabel ? groupLabel : undefined,\n emptyLabel: suppressChrome\n ? undefined\n : (group.emptyLabel ?? agentMentionEmptyGroupLabel(groupId, query)),\n expandLabel: group.hasMore\n ? translate(\"agentHost.agentGui.contextPickerExpandMore\", {\n count: mentionGroupExpandCount(group, filter)\n })\n : undefined,\n expandLoadingLabel: translate(\n \"agentHost.agentGui.contextPickerLoadMoreLoading\"\n ),\n expandErrorLabel: translate(\n \"agentHost.agentGui.contextPickerLoadMoreRetry\"\n ),\n sectionClassName: followsMySessions ? \"mt-2\" : undefined,\n hideTopDivider: suppressChrome\n };\n}\n\nfunction shouldSuppressFileSearchGroupChrome(\n filter: AgentMentionFilterId,\n query: string\n): boolean {\n return filter === \"file\" && query.trim().length > 0;\n}\n\nfunction resolveMentionPaletteEmptyLabel(input: {\n emptyLabel: string;\n filter: AgentMentionFilterId;\n mode: AgentMentionSearchState[\"mode\"];\n query: string;\n}): string {\n if (\n input.mode === \"results\" &&\n input.filter === \"file\" &&\n input.query.trim().length > 0\n ) {\n return translate(\"agentHost.agentGui.mentionNoMatchingFiles\");\n }\n if (input.filter === \"session\") {\n return agentMentionEmptyGroupLabel(\"my_sessions\", input.query);\n }\n if (input.filter === \"app\") {\n return agentMentionEmptyGroupLabel(\"apps\", input.query);\n }\n if (input.filter === \"agent\") {\n return agentMentionEmptyGroupLabel(\"agents\", input.query);\n }\n if (input.filter === \"issue\") {\n return agentMentionEmptyGroupLabel(\"issues\", input.query);\n }\n return input.emptyLabel;\n}\n\nfunction shouldRenderMentionGroupLabel(input: {\n filter: AgentMentionFilterId;\n groupCount: number;\n groupId: AgentMentionGroupId;\n groupLabel?: string;\n query: string;\n}): boolean {\n if (shouldSuppressFileSearchGroupChrome(input.filter, input.query)) {\n return false;\n }\n if (input.groupCount !== 1) {\n return true;\n }\n if (input.groupId.startsWith(\"agent:\")) {\n return true;\n }\n return (\n (input.groupLabel ?? agentMentionGroupLabel(input.groupId)) !==\n agentMentionFilterLabel(input.filter)\n );\n}\n\n/**\n * Resolve an agent mention item into the shared, display-ready\n * {@link MentionRowItem} view-model the generic {@link renderMentionRow}\n * consumes. All agent-specific bits — i18n via {@link translate}, the user\n * avatar placeholder asset, the managed-agent rounded icon, and the activity /\n * issue status labels — are resolved here so the shared renderer stays pure.\n */\nfunction agentMentionItemToRowItem(\n item: AgentContextMentionItem\n): MentionRowItem {\n if (item.kind === \"file\") {\n const visualKind = resolveAgentMentionFileVisualKind({\n entryKind: item.entryKind,\n href: item.href,\n mentionNavigation: item.mentionNavigation,\n name: item.name,\n path: item.path\n });\n const isNavigableFolder =\n item.mentionNavigation === \"agent-generated-folder\" ||\n item.mentionNavigation === \"workspace-folder\";\n const childCountLabel =\n isNavigableFolder && typeof item.childCount === \"number\"\n ? translate(\"agentHost.agentGui.mentionFolderChildCount\", {\n count: item.childCount\n })\n : null;\n return {\n kind: \"file\",\n name: item.name,\n visualKind,\n thumbnailUrl: resolveAgentMentionFileThumbnailUrl(item) ?? null,\n childCountLabel,\n entryKind: item.entryKind,\n mentionNavigation: item.mentionNavigation\n };\n }\n\n if (item.kind === \"session\") {\n const isMySession = item.scope === \"my_sessions\";\n const participant = isMySession\n ? item.agentName\n : `${item.initiatorName} & ${item.agentName}`;\n const participantTruncatableSegments =\n item.agentOwnerLabel && item.agentLabel\n ? isMySession\n ? [item.agentOwnerLabel]\n : [item.initiatorName, item.agentOwnerLabel]\n : null;\n const participantFixedSuffix =\n participantTruncatableSegments && item.agentLabel\n ? ` · ${item.agentLabel}`\n : null;\n return {\n kind: \"session\",\n participant,\n participantTruncatableSegments,\n participantSegmentSeparator: \" & \",\n participantFixedSuffix,\n summary: item.title,\n userAvatarUrl: isMySession ? null : (item.initiatorAvatarUrl ?? null),\n userAvatarPlaceholderUrl,\n agentIconUrl:\n item.agentIconUrl?.trim() ||\n managedAgentRoundedIconUrl(\n mentionSessionAgentProvider(item) ?? item.agentName\n ),\n showUserAvatar: !isMySession,\n statusTag: agentSessionStatusTag(item.status)\n };\n }\n\n if (item.kind === \"workspace-app\") {\n return {\n kind: \"app\",\n name: item.name,\n description: mentionDescriptionWithoutTerminalPeriod(item.description),\n iconUrl: item.iconUrl ?? null\n };\n }\n\n if (item.kind === \"agent-target\") {\n return {\n kind: \"app\",\n name: item.name,\n description: mentionDescriptionWithoutTerminalPeriod(item.description),\n iconUrl: item.iconUrl ?? managedAgentRoundedIconUrl(item.agentProviderId),\n statusTag: agentTargetAvailabilityStatusTag(item.availabilityStatus)\n };\n }\n\n if (item.kind === \"workspace-reference\") {\n return {\n kind: \"app\",\n name: item.name,\n description: null,\n iconUrl: item.iconUrl ?? null\n };\n }\n\n if (item.kind === \"workspace-app-factory\") {\n return {\n kind: \"app-factory\",\n name: item.name\n };\n }\n\n if (item.kind === \"custom\") {\n // 自定义 mention 只经 draftPrompt prefill 进入 composer,不出现在 @ 面板候选;\n // 兜底按通用条目展示(label 即注册方给的 name)。\n return {\n kind: \"issue\",\n title: item.name,\n creatorName: null,\n statusTag: null\n };\n }\n\n return {\n kind: \"issue\",\n title: item.title,\n creatorName: item.creatorName ?? null,\n statusTag: agentIssueStatusTag(item.status)\n };\n}\n\nfunction mentionDescriptionWithoutTerminalPeriod(\n description: string | null | undefined\n): string | null {\n const normalizedDescription = description?.trimEnd();\n return normalizedDescription\n ? normalizedDescription.replace(/[。.]+$/u, \"\")\n : null;\n}\n\n/**\n * 仅 workspace-issue 行,以及声明了能够提供产物文件(reference)的 workspace-app 行,\n * 才在行末尾展示「查看产物」入口。应用是否能提供产物文件由其 manifest 的\n * references 能力决定(`referencesListSupported`),而非硬编码应用名单。\n */\nfunction isReferenceableMentionItem(item: AgentContextMentionItem): boolean {\n if (item.kind === \"workspace-issue\") {\n return true;\n }\n if (item.kind === \"workspace-app\") {\n return item.referencesListSupported === true;\n }\n return false;\n}\n\nfunction canNavigateIntoMentionItem(item: AgentContextMentionItem): boolean {\n return (\n item.kind === \"file\" &&\n (item.mentionNavigation === \"agent-generated-folder\" ||\n item.mentionNavigation === \"workspace-folder\")\n );\n}\n\nfunction mentionSessionAgentProvider(\n item: Extract<AgentContextMentionItem, { kind: \"session\" }>\n): string | null {\n const queryStart = item.href.indexOf(\"?\");\n if (queryStart < 0) {\n return null;\n }\n return new URLSearchParams(item.href.slice(queryStart + 1)).get(\"provider\");\n}\n\nfunction agentSessionStatusTag(\n status: string | undefined\n): MentionRowStatusTag | null {\n if (!status) {\n return null;\n }\n const activityStatus = normalizeAgentActivityDisplayStatus(status);\n return {\n label: workspaceAgentActivityStatusLabel(activityStatus),\n tone: mentionStatusTone(activityStatus),\n pulse: activityStatus === \"working\" || activityStatus === \"waiting\",\n variant: \"activity\",\n dataStatus: activityStatus\n };\n}\n\n/**\n * Shared agent targets remain discoverable while their owner is offline. Their\n * availability badge communicates whether the target can currently be invoked.\n */\nfunction agentTargetAvailabilityStatusTag(\n availabilityStatus: string | undefined\n): MentionRowStatusTag {\n const available =\n availabilityStatus === undefined ||\n availabilityStatus === \"ready\" ||\n availabilityStatus === \"available\";\n return {\n label: translate(\n available\n ? \"agentHost.agentGui.mentionAgentTargetAvailable\"\n : \"agentHost.agentGui.mentionAgentTargetUnavailable\"\n ),\n tone: available ? \"green\" : \"neutral\",\n variant: \"activity\",\n dataStatus: available ? \"available\" : \"unavailable\"\n };\n}\n\nfunction agentIssueStatusTag(\n status: string | undefined\n): MentionRowStatusTag | null {\n if (!status) {\n return null;\n }\n const presentation = resolveIssueManagerStatusPresentation(status);\n return {\n label: roomIssueStatusLabel(status),\n tone: presentation.mentionTone,\n variant: \"issue\",\n dataStatus: presentation.dataStatus\n };\n}\n\nfunction mentionStatusTone(\n status: AgentActivityDisplayStatus\n): MentionRowStatusTone {\n if (status === \"working\") {\n return \"blue\";\n }\n if (status === \"waiting\" || status === \"canceled\") {\n return \"amber\";\n }\n if (status === \"completed\" || status === \"idle\") {\n return \"green\";\n }\n if (status === \"failed\") {\n return \"red\";\n }\n return \"neutral\";\n}\n\nfunction browseHintForFilter(filter: AgentMentionFilterId): string {\n switch (filter) {\n case \"agent\":\n return translate(\"agentHost.agentGui.contextPickerBrowseAgentHint\");\n case \"app\":\n return translate(\"agentHost.agentGui.contextPickerBrowseAppHint\");\n case \"file\":\n return translate(\"agentHost.agentGui.contextPickerBrowseFileHint\");\n case \"session\":\n return translate(\"agentHost.agentGui.contextPickerBrowseSessionHint\");\n case \"issue\":\n return translate(\"agentHost.agentGui.contextPickerBrowseIssueHint\");\n }\n}\n\nfunction hasInteractiveGroupEntries(\n groups: ReadonlyArray<AgentMentionGroup>\n): boolean {\n return groups.some((group) => group.items.length > 0 || group.hasMore);\n}\n\nfunction isFileBrowseGroupsOnlyEmpty(\n groups: ReadonlyArray<AgentMentionGroup>\n): boolean {\n const fileGroups = groups.filter(\n (group) =>\n group.id === \"opened_files\" || group.id === \"agent_generated_files\"\n );\n if (fileGroups.length === 0) {\n return false;\n }\n return fileGroups.every(\n (group) => group.items.length === 0 && !group.hasMore\n );\n}\n\nfunction shouldShowBrowseSearchHint(input: {\n browseFilter: AgentMentionFilterId;\n groups: ReadonlyArray<AgentMentionGroup>;\n highlightedBrowseCategory: string | null;\n mode: AgentMentionSearchState[\"mode\"];\n}): boolean {\n if (input.mode !== \"browse\" || hasInteractiveGroupEntries(input.groups)) {\n return false;\n }\n if (input.groups.length === 0) {\n return true;\n }\n if (\n input.highlightedBrowseCategory !== null &&\n input.highlightedBrowseCategory !== input.browseFilter\n ) {\n return true;\n }\n return (\n input.browseFilter === \"file\" && isFileBrowseGroupsOnlyEmpty(input.groups)\n );\n}\n","import { translate, type TranslateFn } from \"../i18n/index\";\n\nexport function roomIssueStatusLabel(status: string, t?: TranslateFn): string {\n const translateFn = t ?? translate;\n switch (status) {\n case \"not_started\":\n return translateFn(\"agentHost.roomIssueNode.issueStatusNotStarted\");\n case \"running\":\n return translateFn(\"agentHost.roomIssueNode.issueStatusRunning\");\n case \"in_progress\":\n return translateFn(\"agentHost.roomIssueNode.issueStatusInProgress\");\n case \"pending_acceptance\":\n return translateFn(\n \"agentHost.roomIssueNode.issueStatusPendingAcceptance\"\n );\n case \"completed\":\n return translateFn(\"agentHost.roomIssueNode.issueStatusCompleted\");\n case \"failed\":\n return translateFn(\"agentHost.roomIssueNode.issueStatusFailed\");\n case \"canceled\":\n return translateFn(\"agentHost.roomIssueNode.issueStatusCanceled\");\n default:\n return (\n status || translateFn(\"agentHost.roomIssueNode.issueStatusUnknown\")\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAQK;AACP,SAAS,6CAA6C;;;ACd/C,SAAS,qBAAqB,QAAgB,GAAyB;AAC5E,QAAM,cAAc,KAAK;AACzB,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,aAAO,YAAY,+CAA+C;AAAA,IACpE,KAAK;AACH,aAAO,YAAY,4CAA4C;AAAA,IACjE,KAAK;AACH,aAAO,YAAY,+CAA+C;AAAA,IACpE,KAAK;AACH,aAAO;AAAA,QACL;AAAA,MACF;AAAA,IACF,KAAK;AACH,aAAO,YAAY,8CAA8C;AAAA,IACnE,KAAK;AACH,aAAO,YAAY,2CAA2C;AAAA,IAChE,KAAK;AACH,aAAO,YAAY,6CAA6C;AAAA,IAClE;AACE,aACE,UAAU,YAAY,4CAA4C;AAAA,EAExE;AACF;;;AD0PI;AApMJ,IAAM,8BAAmD;AAAA,EACvD,YAAY;AAAA,IACV,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,cAAc;AAAA,IACd,WACE;AAAA,IACF,gBAAgB;AAAA,IAChB,MAAM;AAAA,IACN,UAAU;AAAA,IACV,YAAY;AAAA,IACZ,eAAe;AAAA,IACf,UAAU;AAAA,IACV,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,eAAe;AAAA,EACjB;AAAA,EACA,SAAS;AAAA,IACP,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB;AAAA,EACA,uBAAuB;AACzB;AASA,IAAM,gCAAsD;AAAA,EAC1D,UAAU;AAAA,EACV,WAAW;AAAA,EACX,UAAU;AAAA,EACV,0BACE;AACJ;AAOO,SAAS,oBAAoB,MAAuC;AACzE,SAAO,GAAG,KAAK,IAAI,IACjB,KAAK,SAAS,SAAS,6BAA6B,IAAI,IAAI,KAAK,QACnE;AACF;AAEO,SAAS,2BACd,MACS;AACT,SACE,KAAK,SAAS,kBACd,KAAK,uBAAuB,UAC5B,KAAK,uBAAuB,WAC5B,KAAK,uBAAuB;AAEhC;AAEO,SAAS,kCACd,OAC4B;AAC5B,SAAO;AAAA,IACL;AAAA,IACA,CAAC,SAAS,oBAAoB,IAAI;AAAA,IAClC;AAAA,EACF,EAAE,IAAI,CAAC,UAAyD;AAC9D,QAAI,MAAM,SAAS,QAAQ;AACzB,YAAM,OACJ,MAAM,YAAY,UAAa,MAAM,cAAc,SAC/C,MAAM,OAAO,KAAK,CAAC,UAAU,MAAM,OAAO,MAAM,OAAO,GAAG,MACxD,MAAM,SACR,IACA;AACN,aAAO;AAAA,QACL,KAAK,MAAM;AAAA,QACX,MAAM;AAAA,QACN,SAAS,MAAM;AAAA,QACf;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,MACL,KAAK,MAAM;AAAA,MACX,MAAM,MAAM;AAAA,MACZ,YAAY,MAAM;AAAA,MAClB,SAAS,MAAM;AAAA,IACjB;AAAA,EACF,CAAC;AACH;AAEO,SAAS,eAAe,OAA0C;AACvE,MAAI,MAAM,SAAS,UAAU;AAC3B,WAAO,MAAM,WAAW,IAAI,CAAC,aAAa,YAAY,SAAS,EAAE,EAAE;AAAA,EACrE;AACA,SAAO,MAAM,OACV,IAAI,CAAC,UAAU;AACd,UAAM,YAAY,MAAM,MAAM;AAAA,MAC5B,CAAC,SAAS,CAAC,2BAA2B,IAAI;AAAA,IAC5C;AACA,QAAI,WAAW;AACb,aAAO,GAAG,MAAM,EAAE,IAAI,oBAAoB,SAAS,CAAC;AAAA,IACtD;AACA,QAAI,MAAM,SAAS;AACjB,aAAO,UAAU,MAAM,EAAE;AAAA,IAC3B;AACA,WAAO;AAAA,EACT,CAAC,EACA,OAAO,CAAC,QAAuB,QAAQ,IAAI;AAChD;AAEO,SAAS,wBAAwB;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,8BAA8B;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAoD;AAClD;AACA,QAAM,sBAAsB;AAAA,IAC1B;AAAA,EACF;AACA,QAAM,oBAAoB;AAAA,IACxB;AAAA,EACF;AACA,QAAM,SAAS,MAAM;AACrB,QAAM,4BAA4B,gBAAgB,WAAW,WAAW,IACpE,eAAe,MAAM,YAAY,MAAM,IACvC;AACJ,QAAM,iBAAiB,2BAA2B;AAAA,IAChD,cAAc;AAAA,IACd,QAAQ,MAAM;AAAA,IACd;AAAA,IACA,MAAM,MAAM;AAAA,EACd,CAAC;AAKD,QAAM,aACJ,MAAM,SAAS,WACX,MAAM,aACN,+BAA+B,IAAI,CAAC,QAAQ;AAAA,IAC1C;AAAA,IACA,OAAO,wBAAwB,EAAE;AAAA,EACnC,EAAE;AAMR,QAAM,aACJ,iBACI,EAAE,GAAG,OAAO,YAAY,QAAQ,CAAC,EAAE,IACnC;AAAA,IACE,GAAG;AAAA,IACH;AAAA,IACA,QAAQ,MAAM,OAAO;AAAA,MAAI,CAAC,OAAO,UAC/B;AAAA,QACE;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN;AAAA,QACA,MAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEN,QAAM,qBAAqB,iBACvB,oBAAoB,MAAM,IAC1B,gCAAgC;AAAA,IAC9B;AAAA,IACA;AAAA,IACA,MAAM,MAAM;AAAA,IACZ,OAAO,MAAM;AAAA,EACf,CAAC;AAEL,SACE;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP;AAAA,MACA,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,YAAY,CAAC,SACX,iBAAiB,0BAA0B,IAAI,GAAG;AAAA,QAChD,YAAY;AAAA,QACZ,mBAAmB;AAAA,QACnB,GAAI,sBAAsB,2BAA2B,IAAI,IACrD;AAAA,UACE,gBAAgB,MAAM,mBAAmB,IAAI;AAAA,UAC7C;AAAA,QACF,IACA,CAAC;AAAA,QACL,GAAI,oBAAoB,2BAA2B,IAAI,IACnD;AAAA,UACE,kBAAkB,MAAM,iBAAiB,IAAI;AAAA,UAC7C;AAAA,QACF,IACA,CAAC;AAAA,MACP,CAAC;AAAA,MAEH,QAAQ;AAAA,QACN,SAAS;AAAA,QACT,OAAO;AAAA,QACP,OAAO;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,MACA,YAAY;AAAA,QACV,aAAa,UAAU,8CAA8C;AAAA,QACrE,eAAe;AAAA,UACb;AAAA,QACF;AAAA,QACA,mBAAmB;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,MACA,eACE,WAAW,aAAa,WAAW,UAAU,WAAW,UACpD,0BACA;AAAA,MAEN,mCAAmC;AAAA,MACnC,OAAO;AAAA,MACP,WAAW;AAAA,QACT;AAAA,QACA,0BAA0B,CAAC,eAAe;AACxC,2BAAiB,UAA8C;AAC/D,yBAAe,UAAkC;AAAA,QACnD;AAAA,QACA,eAAe,CAAC,YACd,cAAc,OAA8B;AAAA,QAC9C;AAAA,MACF;AAAA,MACA;AAAA;AAAA,EACF;AAEJ;AAEO,IAAM,6BAA6B;AAS1C,SAAS,qBACP,OACA,OACA,QACA,QACA,OACmB;AACnB,QAAM,UAAU,MAAM;AACtB,QAAM,iBAAiB,oCAAoC,QAAQ,KAAK;AACxE,QAAM,oBACJ,YAAY,qBACX,OAAO,QAAQ,CAAC,GAAG,OAA+B;AACrD,QAAM,YAAY,8BAA8B;AAAA,IAC9C;AAAA,IACA,YAAY,OAAO;AAAA,IACnB;AAAA,IACA,YAAY,MAAM;AAAA,IAClB;AAAA,EACF,CAAC;AACD,QAAM,aAAa,MAAM,SAAS,uBAAuB,OAAO;AAChE,SAAO;AAAA,IACL,GAAG;AAAA,IACH,OAAO,YAAY,aAAa;AAAA,IAChC,YAAY,iBACR,SACC,MAAM,cAAc,4BAA4B,SAAS,KAAK;AAAA,IACnE,aAAa,MAAM,UACf,UAAU,8CAA8C;AAAA,MACtD,OAAO,wBAAwB,OAAO,MAAM;AAAA,IAC9C,CAAC,IACD;AAAA,IACJ,oBAAoB;AAAA,MAClB;AAAA,IACF;AAAA,IACA,kBAAkB;AAAA,MAChB;AAAA,IACF;AAAA,IACA,kBAAkB,oBAAoB,SAAS;AAAA,IAC/C,gBAAgB;AAAA,EAClB;AACF;AAEA,SAAS,oCACP,QACA,OACS;AACT,SAAO,WAAW,UAAU,MAAM,KAAK,EAAE,SAAS;AACpD;AAEA,SAAS,gCAAgC,OAK9B;AACT,MACE,MAAM,SAAS,aACf,MAAM,WAAW,UACjB,MAAM,MAAM,KAAK,EAAE,SAAS,GAC5B;AACA,WAAO,UAAU,2CAA2C;AAAA,EAC9D;AACA,MAAI,MAAM,WAAW,WAAW;AAC9B,WAAO,4BAA4B,eAAe,MAAM,KAAK;AAAA,EAC/D;AACA,MAAI,MAAM,WAAW,OAAO;AAC1B,WAAO,4BAA4B,QAAQ,MAAM,KAAK;AAAA,EACxD;AACA,MAAI,MAAM,WAAW,SAAS;AAC5B,WAAO,4BAA4B,UAAU,MAAM,KAAK;AAAA,EAC1D;AACA,MAAI,MAAM,WAAW,SAAS;AAC5B,WAAO,4BAA4B,UAAU,MAAM,KAAK;AAAA,EAC1D;AACA,SAAO,MAAM;AACf;AAEA,SAAS,8BAA8B,OAM3B;AACV,MAAI,oCAAoC,MAAM,QAAQ,MAAM,KAAK,GAAG;AAClE,WAAO;AAAA,EACT;AACA,MAAI,MAAM,eAAe,GAAG;AAC1B,WAAO;AAAA,EACT;AACA,MAAI,MAAM,QAAQ,WAAW,QAAQ,GAAG;AACtC,WAAO;AAAA,EACT;AACA,UACG,MAAM,cAAc,uBAAuB,MAAM,OAAO,OACzD,wBAAwB,MAAM,MAAM;AAExC;AASA,SAAS,0BACP,MACgB;AAChB,MAAI,KAAK,SAAS,QAAQ;AACxB,UAAM,aAAa,kCAAkC;AAAA,MACnD,WAAW,KAAK;AAAA,MAChB,MAAM,KAAK;AAAA,MACX,mBAAmB,KAAK;AAAA,MACxB,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,IACb,CAAC;AACD,UAAM,oBACJ,KAAK,sBAAsB,4BAC3B,KAAK,sBAAsB;AAC7B,UAAM,kBACJ,qBAAqB,OAAO,KAAK,eAAe,WAC5C,UAAU,8CAA8C;AAAA,MACtD,OAAO,KAAK;AAAA,IACd,CAAC,IACD;AACN,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,MACX;AAAA,MACA,cAAc,oCAAoC,IAAI,KAAK;AAAA,MAC3D;AAAA,MACA,WAAW,KAAK;AAAA,MAChB,mBAAmB,KAAK;AAAA,IAC1B;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,WAAW;AAC3B,UAAM,cAAc,KAAK,UAAU;AACnC,UAAM,cAAc,cAChB,KAAK,YACL,GAAG,KAAK,aAAa,MAAM,KAAK,SAAS;AAC7C,UAAM,iCACJ,KAAK,mBAAmB,KAAK,aACzB,cACE,CAAC,KAAK,eAAe,IACrB,CAAC,KAAK,eAAe,KAAK,eAAe,IAC3C;AACN,UAAM,yBACJ,kCAAkC,KAAK,aACnC,SAAM,KAAK,UAAU,KACrB;AACN,WAAO;AAAA,MACL,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,6BAA6B;AAAA,MAC7B;AAAA,MACA,SAAS,KAAK;AAAA,MACd,eAAe,cAAc,OAAQ,KAAK,sBAAsB;AAAA,MAChE;AAAA,MACA,cACE,KAAK,cAAc,KAAK,KACxB;AAAA,QACE,4BAA4B,IAAI,KAAK,KAAK;AAAA,MAC5C;AAAA,MACF,gBAAgB,CAAC;AAAA,MACjB,WAAW,sBAAsB,KAAK,MAAM;AAAA,IAC9C;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,iBAAiB;AACjC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,MACX,aAAa,wCAAwC,KAAK,WAAW;AAAA,MACrE,SAAS,KAAK,WAAW;AAAA,IAC3B;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,gBAAgB;AAChC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,MACX,aAAa,wCAAwC,KAAK,WAAW;AAAA,MACrE,SAAS,KAAK,WAAW,2BAA2B,KAAK,eAAe;AAAA,MACxE,WAAW,iCAAiC,KAAK,kBAAkB;AAAA,IACrE;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,uBAAuB;AACvC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,MACX,aAAa;AAAA,MACb,SAAS,KAAK,WAAW;AAAA,IAC3B;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,yBAAyB;AACzC,WAAO;AAAA,MACL,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,IACb;AAAA,EACF;AAEA,MAAI,KAAK,SAAS,UAAU;AAG1B,WAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO,KAAK;AAAA,MACZ,aAAa;AAAA,MACb,WAAW;AAAA,IACb;AAAA,EACF;AAEA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO,KAAK;AAAA,IACZ,aAAa,KAAK,eAAe;AAAA,IACjC,WAAW,oBAAoB,KAAK,MAAM;AAAA,EAC5C;AACF;AAEA,SAAS,wCACP,aACe;AACf,QAAM,wBAAwB,aAAa,QAAQ;AACnD,SAAO,wBACH,sBAAsB,QAAQ,WAAW,EAAE,IAC3C;AACN;AAOA,SAAS,2BAA2B,MAAwC;AAC1E,MAAI,KAAK,SAAS,mBAAmB;AACnC,WAAO;AAAA,EACT;AACA,MAAI,KAAK,SAAS,iBAAiB;AACjC,WAAO,KAAK,4BAA4B;AAAA,EAC1C;AACA,SAAO;AACT;AAEA,SAAS,2BAA2B,MAAwC;AAC1E,SACE,KAAK,SAAS,WACb,KAAK,sBAAsB,4BAC1B,KAAK,sBAAsB;AAEjC;AAEA,SAAS,4BACP,MACe;AACf,QAAM,aAAa,KAAK,KAAK,QAAQ,GAAG;AACxC,MAAI,aAAa,GAAG;AAClB,WAAO;AAAA,EACT;AACA,SAAO,IAAI,gBAAgB,KAAK,KAAK,MAAM,aAAa,CAAC,CAAC,EAAE,IAAI,UAAU;AAC5E;AAEA,SAAS,sBACP,QAC4B;AAC5B,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,QAAM,iBAAiB,oCAAoC,MAAM;AACjE,SAAO;AAAA,IACL,OAAO,kCAAkC,cAAc;AAAA,IACvD,MAAM,kBAAkB,cAAc;AAAA,IACtC,OAAO,mBAAmB,aAAa,mBAAmB;AAAA,IAC1D,SAAS;AAAA,IACT,YAAY;AAAA,EACd;AACF;AAMA,SAAS,iCACP,oBACqB;AACrB,QAAM,YACJ,uBAAuB,UACvB,uBAAuB,WACvB,uBAAuB;AACzB,SAAO;AAAA,IACL,OAAO;AAAA,MACL,YACI,mDACA;AAAA,IACN;AAAA,IACA,MAAM,YAAY,UAAU;AAAA,IAC5B,SAAS;AAAA,IACT,YAAY,YAAY,cAAc;AAAA,EACxC;AACF;AAEA,SAAS,oBACP,QAC4B;AAC5B,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,QAAM,eAAe,sCAAsC,MAAM;AACjE,SAAO;AAAA,IACL,OAAO,qBAAqB,MAAM;AAAA,IAClC,MAAM,aAAa;AAAA,IACnB,SAAS;AAAA,IACT,YAAY,aAAa;AAAA,EAC3B;AACF;AAEA,SAAS,kBACP,QACsB;AACtB,MAAI,WAAW,WAAW;AACxB,WAAO;AAAA,EACT;AACA,MAAI,WAAW,aAAa,WAAW,YAAY;AACjD,WAAO;AAAA,EACT;AACA,MAAI,WAAW,eAAe,WAAW,QAAQ;AAC/C,WAAO;AAAA,EACT;AACA,MAAI,WAAW,UAAU;AACvB,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAAS,oBAAoB,QAAsC;AACjE,UAAQ,QAAQ;AAAA,IACd,KAAK;AACH,aAAO,UAAU,iDAAiD;AAAA,IACpE,KAAK;AACH,aAAO,UAAU,+CAA+C;AAAA,IAClE,KAAK;AACH,aAAO,UAAU,gDAAgD;AAAA,IACnE,KAAK;AACH,aAAO,UAAU,mDAAmD;AAAA,IACtE,KAAK;AACH,aAAO,UAAU,iDAAiD;AAAA,EACtE;AACF;AAEA,SAAS,2BACP,QACS;AACT,SAAO,OAAO,KAAK,CAAC,UAAU,MAAM,MAAM,SAAS,KAAK,MAAM,OAAO;AACvE;AAEA,SAAS,4BACP,QACS;AACT,QAAM,aAAa,OAAO;AAAA,IACxB,CAAC,UACC,MAAM,OAAO,kBAAkB,MAAM,OAAO;AAAA,EAChD;AACA,MAAI,WAAW,WAAW,GAAG;AAC3B,WAAO;AAAA,EACT;AACA,SAAO,WAAW;AAAA,IAChB,CAAC,UAAU,MAAM,MAAM,WAAW,KAAK,CAAC,MAAM;AAAA,EAChD;AACF;AAEA,SAAS,2BAA2B,OAKxB;AACV,MAAI,MAAM,SAAS,YAAY,2BAA2B,MAAM,MAAM,GAAG;AACvE,WAAO;AAAA,EACT;AACA,MAAI,MAAM,OAAO,WAAW,GAAG;AAC7B,WAAO;AAAA,EACT;AACA,MACE,MAAM,8BAA8B,QACpC,MAAM,8BAA8B,MAAM,cAC1C;AACA,WAAO;AAAA,EACT;AACA,SACE,MAAM,iBAAiB,UAAU,4BAA4B,MAAM,MAAM;AAE7E;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
translate
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-BYHNJQYH.js";
|
|
4
4
|
import {
|
|
5
5
|
agentGUIProviderIdentityDisplayName,
|
|
6
6
|
resolveMigratedAgentGUIProviderIdentity
|
|
@@ -213,4 +213,4 @@ export {
|
|
|
213
213
|
getOptionalAgentHostApi,
|
|
214
214
|
workspaceAgentProviderLabel
|
|
215
215
|
};
|
|
216
|
-
//# sourceMappingURL=chunk-
|
|
216
|
+
//# sourceMappingURL=chunk-YBIT37P5.js.map
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resolveAgentGUIConversationBrowserFreeTitle,
|
|
3
|
+
resolveAgentGUIConversationTitleDisplayPrompt,
|
|
4
|
+
resolveAgentGuiWorkbenchHeaderTitle,
|
|
5
|
+
resolveAgentGuiWorkbenchSessionTitle
|
|
6
|
+
} from "./chunk-L4E2Y52A.js";
|
|
1
7
|
import {
|
|
2
8
|
createAgentGuiWorkbenchNodeStateSource,
|
|
3
9
|
migrateLegacyAgentGuiWorkbenchState,
|
|
@@ -15,12 +21,6 @@ import {
|
|
|
15
21
|
isAgentGuiWorkbenchProvider,
|
|
16
22
|
resolveAgentGuiWorkbenchProviderLabel
|
|
17
23
|
} from "./chunk-MGSRWYRN.js";
|
|
18
|
-
import {
|
|
19
|
-
resolveAgentGUIConversationBrowserFreeTitle,
|
|
20
|
-
resolveAgentGUIConversationTitleDisplayPrompt,
|
|
21
|
-
resolveAgentGuiWorkbenchHeaderTitle,
|
|
22
|
-
resolveAgentGuiWorkbenchSessionTitle
|
|
23
|
-
} from "./chunk-U5NVLMW2.js";
|
|
24
24
|
import {
|
|
25
25
|
normalizeAgentGUIAgents,
|
|
26
26
|
projectAgentGUIAgentsToTargets
|
|
@@ -400,7 +400,7 @@ function stopPointerPropagation(event) {
|
|
|
400
400
|
|
|
401
401
|
// workbench/header.ts
|
|
402
402
|
var LazyAgentRichTextReadonly = lazy(
|
|
403
|
-
() => import("./AgentRichTextReadonly-
|
|
403
|
+
() => import("./AgentRichTextReadonly-TASIMIK4.js").then((module) => ({
|
|
404
404
|
default: module.AgentRichTextReadonly
|
|
405
405
|
}))
|
|
406
406
|
);
|
|
@@ -1669,4 +1669,4 @@ export {
|
|
|
1669
1669
|
AGENT_GUI_WORKBENCH_OPEN_EXTERNAL_IMPORT_EVENT,
|
|
1670
1670
|
createAgentGuiWorkbenchContribution
|
|
1671
1671
|
};
|
|
1672
|
-
//# sourceMappingURL=chunk-
|
|
1672
|
+
//# sourceMappingURL=chunk-ZNHMWCO4.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as AgentContextMentionItem } from '../agentFileMentionContracts-
|
|
1
|
+
import { A as AgentContextMentionItem } from '../agentFileMentionContracts-BeBex-Sf.js';
|
|
2
2
|
import { AgentMentionSearchState, AgentMentionBrowseCategory, AgentMentionFilterId, AgentMentionGroupId } from '../mention-search.js';
|
|
3
3
|
export { AgentMentionGroup, AgentMentionSearchController } from '../mention-search.js';
|
|
4
4
|
import { ReactNode } from 'react';
|
|
@@ -3,28 +3,28 @@ import {
|
|
|
3
3
|
AgentFileMentionPalette,
|
|
4
4
|
flattenAgentMentionPaletteEntries,
|
|
5
5
|
groupStartKeys
|
|
6
|
-
} from "../chunk-
|
|
6
|
+
} from "../chunk-XERDRMSF.js";
|
|
7
7
|
import {
|
|
8
8
|
AgentMentionSearchController
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-ISC67YBJ.js";
|
|
10
10
|
import "../chunk-VMPA46ET.js";
|
|
11
11
|
import "../chunk-XJ34OIEQ.js";
|
|
12
|
+
import "../chunk-2HYADTQP.js";
|
|
12
13
|
import "../chunk-JDVP33S5.js";
|
|
13
|
-
import "../chunk-7CJEFNHW.js";
|
|
14
14
|
import "../chunk-3V5OCA2M.js";
|
|
15
15
|
import {
|
|
16
16
|
AGENT_CONTEXT_MENTION_PROVIDER_IDS
|
|
17
17
|
} from "../chunk-RMQREVJY.js";
|
|
18
18
|
import "../chunk-FGLQZ6I4.js";
|
|
19
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-AD2RTSMS.js";
|
|
20
20
|
import "../chunk-YMXYBG7U.js";
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-F5UR6EJG.js";
|
|
21
|
+
import "../chunk-YBIT37P5.js";
|
|
23
22
|
import "../chunk-M6HTOCQK.js";
|
|
24
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-F5UR6EJG.js";
|
|
24
|
+
import "../chunk-BYHNJQYH.js";
|
|
25
25
|
import "../chunk-5BJYO6X3.js";
|
|
26
26
|
import "../chunk-AFUVWWQY.js";
|
|
27
|
-
import "../chunk-
|
|
27
|
+
import "../chunk-QVLEP54U.js";
|
|
28
28
|
import "../chunk-MIJXEELH.js";
|
|
29
29
|
import "../chunk-D2JUDUYY.js";
|
|
30
30
|
import "../chunk-QNE2ZPPV.js";
|
package/dist/i18n/index.d.ts
CHANGED
|
@@ -714,17 +714,12 @@ declare const agentGuiI18nResources: {
|
|
|
714
714
|
readonly visibleErrorConfigTimeout: "{{provider}} couldn't apply session settings before the request timed out. Try again in a moment.";
|
|
715
715
|
readonly visibleErrorStreamDisconnected: "{{provider}}'s response was interrupted before it completed. Try again in a moment.";
|
|
716
716
|
readonly visibleErrorConcurrencyLimit: "{{provider}} is handling too many requests right now. Try again after another task finishes.";
|
|
717
|
-
readonly visibleErrorInsufficientCreditsFree: "Your available credits are exhausted. Upgrade your membership for more credits";
|
|
718
|
-
readonly visibleErrorInsufficientCreditsActive: "Your Tutti credits are insufficient. Recharge credits to continue";
|
|
719
717
|
readonly visibleErrorInsufficientCreditsUnknown: "Your Tutti credits are insufficient. Review credit options to continue";
|
|
720
718
|
readonly visibleErrorActionInstall: "Connect";
|
|
721
719
|
readonly visibleErrorActionUpgrade: "Upgrade";
|
|
722
720
|
readonly visibleErrorActionRelogin: "Sign in";
|
|
723
721
|
readonly visibleErrorActionCheckNetwork: "Check network";
|
|
724
722
|
readonly visibleErrorActionDetect: "Open setup";
|
|
725
|
-
readonly visibleErrorActionUpgradeMembership: "Upgrade membership";
|
|
726
|
-
readonly visibleErrorActionRechargeCredits: "Recharge credits";
|
|
727
|
-
readonly visibleErrorActionViewCreditPlans: "View credit options";
|
|
728
723
|
readonly systemNoticeTransportRetry: "Agent connection interrupted. Reconnecting...";
|
|
729
724
|
readonly systemNoticeTransportFallback: "Agent switched to HTTPS transport";
|
|
730
725
|
readonly systemNoticePlanImplementationPendingConfirmation: "Plan implementation is awaiting confirmation";
|
|
@@ -957,25 +952,6 @@ declare const agentGuiI18nResources: {
|
|
|
957
952
|
};
|
|
958
953
|
readonly conversations: "Sessions";
|
|
959
954
|
readonly newConversation: "New session";
|
|
960
|
-
readonly accountMenuTitle: "Tutti Agent";
|
|
961
|
-
readonly accountMenuMember: "Membership";
|
|
962
|
-
readonly accountMenuUpgrade: "Upgrade";
|
|
963
|
-
readonly accountMenuRecharge: "Recharge credits";
|
|
964
|
-
readonly accountMenuViewPlans: "View credit options";
|
|
965
|
-
readonly accountMenuCreditsBalance: "Credits";
|
|
966
|
-
readonly accountMenuAccountCenter: "Account center";
|
|
967
|
-
readonly accountMenuSettings: "Settings";
|
|
968
|
-
readonly accountMenuFree: "Free";
|
|
969
|
-
readonly accountMenuSignIn: "Sign in";
|
|
970
|
-
readonly accountMenuSignOut: "Sign out";
|
|
971
|
-
readonly accountMenuCopyUserId: "Copy user ID";
|
|
972
|
-
readonly accountMenuLoading: "Loading";
|
|
973
|
-
readonly accountMenuUnavailable: "--";
|
|
974
|
-
readonly accountMenuDataUnavailable: "Some account data is unavailable";
|
|
975
|
-
readonly accountRewardToastTitle: "New user credits";
|
|
976
|
-
readonly accountRewardToastCreditsUnit: "credits";
|
|
977
|
-
readonly accountRewardToastDescription: "Added to account balance";
|
|
978
|
-
readonly accountRewardToastClose: "Close credits reward notification";
|
|
979
955
|
readonly agentConfig: "Check & Settings";
|
|
980
956
|
readonly agentSettingsMenu: "Settings";
|
|
981
957
|
readonly agentEnvSetup: "Environment Check";
|
|
@@ -1029,19 +1005,17 @@ declare const agentGuiI18nResources: {
|
|
|
1029
1005
|
readonly tuttiBudgetIntensityLabel: "Intensity";
|
|
1030
1006
|
readonly tuttiBudgetPreviewTitle: "Planner tendency";
|
|
1031
1007
|
readonly tuttiBudgetPreviewHint: "The exact model, total task count, and safe parallelism are inferred from the request and selected Skills.";
|
|
1032
|
-
readonly tuttiBudgetPreviewCost: "
|
|
1033
|
-
readonly tuttiBudgetPreviewBalance: "
|
|
1008
|
+
readonly tuttiBudgetPreviewCost: "Economical";
|
|
1009
|
+
readonly tuttiBudgetPreviewBalance: "Balanced";
|
|
1034
1010
|
readonly tuttiBudgetPreviewPowerful: "Powerful";
|
|
1035
1011
|
readonly tuttiBudgetModelStrengthLabel: "Model strength";
|
|
1036
1012
|
readonly tuttiBudgetModelStrengthCost: "Economical";
|
|
1037
1013
|
readonly tuttiBudgetModelStrengthBalance: "Balanced";
|
|
1038
|
-
readonly tuttiBudgetModelStrengthPowerful: "
|
|
1014
|
+
readonly tuttiBudgetModelStrengthPowerful: "Powerful";
|
|
1039
1015
|
readonly tuttiBudgetAgentCountLabel: "Parallel Agents";
|
|
1040
1016
|
readonly tuttiBudgetAgentCountCost: "1";
|
|
1041
1017
|
readonly tuttiBudgetAgentCountBalance: "2–3";
|
|
1042
1018
|
readonly tuttiBudgetAgentCountPowerful: "Up to 4";
|
|
1043
|
-
readonly tuttiBudgetConfirm: "Confirm";
|
|
1044
|
-
readonly tuttiBudgetCancel: "Cancel";
|
|
1045
1019
|
readonly tuttiModeUpdateFailed: "Tutti mode couldn't be updated. Try again.";
|
|
1046
1020
|
readonly tuttiModeUpdateUncertain: "Tutti mode is still being reconciled. Try again after it finishes.";
|
|
1047
1021
|
readonly tuttiModePlan: {
|
|
@@ -3526,17 +3500,12 @@ declare const agentGuiI18nResources: {
|
|
|
3526
3500
|
readonly visibleErrorConfigTimeout: "{{provider}} 在请求超时前未能应用会话设置。请稍后重试。";
|
|
3527
3501
|
readonly visibleErrorStreamDisconnected: "{{provider}} 的响应在完成前被中断。请稍后重试。";
|
|
3528
3502
|
readonly visibleErrorConcurrencyLimit: "{{provider}} 当前处理的请求过多。请在其他任务完成后再试。";
|
|
3529
|
-
readonly visibleErrorInsufficientCreditsFree: "您账户下可用的积分额度已耗尽,升级会员获取更多额度";
|
|
3530
|
-
readonly visibleErrorInsufficientCreditsActive: "Tutti 积分不足,充值积分后可继续使用";
|
|
3531
3503
|
readonly visibleErrorInsufficientCreditsUnknown: "Tutti 积分不足,请查看积分方案后继续";
|
|
3532
3504
|
readonly visibleErrorActionInstall: "去连接";
|
|
3533
3505
|
readonly visibleErrorActionUpgrade: "去升级";
|
|
3534
3506
|
readonly visibleErrorActionRelogin: "登录";
|
|
3535
3507
|
readonly visibleErrorActionCheckNetwork: "检测网络";
|
|
3536
3508
|
readonly visibleErrorActionDetect: "打开检测";
|
|
3537
|
-
readonly visibleErrorActionUpgradeMembership: "升级会员";
|
|
3538
|
-
readonly visibleErrorActionRechargeCredits: "充值积分";
|
|
3539
|
-
readonly visibleErrorActionViewCreditPlans: "查看积分方案";
|
|
3540
3509
|
readonly systemNoticeTransportRetry: "Agent 连接中断,正在重连";
|
|
3541
3510
|
readonly systemNoticeTransportFallback: "Agent 已切换到 HTTPS 传输";
|
|
3542
3511
|
readonly systemNoticePlanImplementationPendingConfirmation: "计划实现正在等待确认";
|
|
@@ -3921,8 +3890,6 @@ declare const agentGuiI18nResources: {
|
|
|
3921
3890
|
readonly tuttiBudgetAgentCountCost: "1 个";
|
|
3922
3891
|
readonly tuttiBudgetAgentCountBalance: "2–3 个";
|
|
3923
3892
|
readonly tuttiBudgetAgentCountPowerful: "最多 4 个";
|
|
3924
|
-
readonly tuttiBudgetConfirm: "确认";
|
|
3925
|
-
readonly tuttiBudgetCancel: "取消";
|
|
3926
3893
|
readonly tuttiModeUpdateFailed: "Tutti 模式更新失败,请重试";
|
|
3927
3894
|
readonly tuttiModeUpdateUncertain: "Tutti 模式状态仍在确认中,请稍后重试";
|
|
3928
3895
|
readonly tuttiModePlan: {
|
|
@@ -4107,25 +4074,6 @@ declare const agentGuiI18nResources: {
|
|
|
4107
4074
|
};
|
|
4108
4075
|
readonly conversations: "会话";
|
|
4109
4076
|
readonly newConversation: "新建会话";
|
|
4110
|
-
readonly accountMenuTitle: "Tutti Agent";
|
|
4111
|
-
readonly accountMenuMember: "会员";
|
|
4112
|
-
readonly accountMenuUpgrade: "升级会员";
|
|
4113
|
-
readonly accountMenuRecharge: "充值积分";
|
|
4114
|
-
readonly accountMenuViewPlans: "查看积分方案";
|
|
4115
|
-
readonly accountMenuCreditsBalance: "积分余额";
|
|
4116
|
-
readonly accountMenuAccountCenter: "账号中心";
|
|
4117
|
-
readonly accountMenuSettings: "设置";
|
|
4118
|
-
readonly accountMenuFree: "Free";
|
|
4119
|
-
readonly accountMenuSignIn: "登录";
|
|
4120
|
-
readonly accountMenuSignOut: "退出登录";
|
|
4121
|
-
readonly accountMenuCopyUserId: "复制用户 ID";
|
|
4122
|
-
readonly accountMenuLoading: "加载中";
|
|
4123
|
-
readonly accountMenuUnavailable: "--";
|
|
4124
|
-
readonly accountMenuDataUnavailable: "部分账号数据暂不可用";
|
|
4125
|
-
readonly accountRewardToastTitle: "新用户积分到账";
|
|
4126
|
-
readonly accountRewardToastCreditsUnit: "积分";
|
|
4127
|
-
readonly accountRewardToastDescription: "已加入账户余额";
|
|
4128
|
-
readonly accountRewardToastClose: "关闭积分到账提示";
|
|
4129
4077
|
readonly agentConfig: "检测与设置";
|
|
4130
4078
|
readonly agentSettingsMenu: "设置";
|
|
4131
4079
|
readonly agentEnvSetup: "环境检测";
|
package/dist/i18n/index.js
CHANGED