@tutti-os/agent-gui 0.0.157 → 0.0.159
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/{AgentRichTextReadonly-J5GZIS7X.js → AgentRichTextReadonly-ZGW4IZ6O.js} +7 -7
- package/dist/agent-conversation/index.js +10 -10
- package/dist/agent-env/index.d.ts +6 -1
- package/dist/agent-env/index.js +1 -1
- package/dist/agent-gui.d.ts +1 -1
- package/dist/agent-gui.js +21 -21
- package/dist/agent-message-center/index.js +7 -7
- package/dist/{chunk-3VKRWAKQ.js → chunk-3PSYZ53C.js} +3 -3
- package/dist/{chunk-EFEOPMIV.js → chunk-55UKPTLG.js} +3 -3
- package/dist/{chunk-6CUELYIF.js → chunk-5CLSJWUN.js} +1 -28
- package/dist/chunk-5CLSJWUN.js.map +1 -0
- package/dist/{chunk-HBJJY2AC.js → chunk-6II57C72.js} +2 -2
- package/dist/{chunk-GBTKLNMX.js → chunk-ABUBJDTO.js} +6 -6
- package/dist/{chunk-7KVZPJ3O.js → chunk-AODSTIED.js} +2 -2
- package/dist/{chunk-XYKQJMVT.js → chunk-CBQMF744.js} +2 -2
- package/dist/{chunk-3EMKK6BN.js → chunk-GUFEHWUX.js} +5 -1
- package/dist/chunk-GUFEHWUX.js.map +1 -0
- package/dist/{chunk-ZCBP5VTT.js → chunk-J4QLQETO.js} +2 -2
- package/dist/{chunk-QMMWKQOT.js → chunk-LCFMJPNA.js} +1 -18
- package/dist/{chunk-QMMWKQOT.js.map → chunk-LCFMJPNA.js.map} +1 -1
- package/dist/{chunk-SFRFW3GC.js → chunk-PAVNEKRU.js} +3 -3
- package/dist/{chunk-AZQRB56U.js → chunk-PQPNDL4A.js} +3 -3
- package/dist/{chunk-R2ZADXRB.js → chunk-SZVHT57M.js} +23 -4
- package/dist/chunk-SZVHT57M.js.map +1 -0
- package/dist/{chunk-FM42UN2J.js → chunk-THBCAUBR.js} +9 -3
- package/dist/chunk-THBCAUBR.js.map +1 -0
- package/dist/{chunk-M66OSHIF.js → chunk-UMJIM225.js} +32 -33
- package/dist/chunk-UMJIM225.js.map +1 -0
- package/dist/{chunk-ESJWSRFD.js → chunk-VVB5N5ON.js} +2 -2
- package/dist/{chunk-BHB457ZP.js → chunk-YGBZKQ2S.js} +3 -4
- package/dist/chunk-YGBZKQ2S.js.map +1 -0
- package/dist/{chunk-IFOIUN2O.js → chunk-YRAKPTXS.js} +11 -12
- package/dist/{chunk-IFOIUN2O.js.map → chunk-YRAKPTXS.js.map} +1 -1
- package/dist/{chunk-TUWQV2MC.js → chunk-YSA4MXR5.js} +2 -2
- package/dist/{chunk-WNGTC3Y2.js → chunk-YUJY75WA.js} +3 -3
- package/dist/{chunk-UTJKC2LY.js → chunk-ZWLWT3TZ.js} +4 -4
- package/dist/context-mention-palette/index.js +8 -8
- package/dist/dock-icons.js +3 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.js +21 -21
- package/dist/mention-search.js +7 -7
- package/dist/provider-icons.js +1 -1
- package/dist/provider-identity.js +1 -1
- package/dist/workbench/contribution.js +9 -9
- package/dist/workbench/index.js +9 -9
- package/dist/workbench/launch.js +3 -3
- package/dist/workbench/providerCatalog.d.ts +12 -3
- package/dist/workbench/providerCatalog.js +14 -2
- package/dist/workbench/sessionTitle.js +2 -2
- package/dist/workbench/state.js +3 -3
- package/dist/workspace-settings-panel.d.ts +12 -0
- package/dist/workspace-settings-panel.js +1 -1
- package/package.json +13 -13
- package/dist/app/renderer/assets/icons/agent-vinyls/hermes-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agents/hermes-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/provider-rail-hermes-colorful.png +0 -0
- package/dist/chunk-3EMKK6BN.js.map +0 -1
- package/dist/chunk-6CUELYIF.js.map +0 -1
- package/dist/chunk-BHB457ZP.js.map +0 -1
- package/dist/chunk-FM42UN2J.js.map +0 -1
- package/dist/chunk-M66OSHIF.js.map +0 -1
- package/dist/chunk-R2ZADXRB.js.map +0 -1
- /package/dist/{AgentRichTextReadonly-J5GZIS7X.js.map → AgentRichTextReadonly-ZGW4IZ6O.js.map} +0 -0
- /package/dist/{chunk-3VKRWAKQ.js.map → chunk-3PSYZ53C.js.map} +0 -0
- /package/dist/{chunk-EFEOPMIV.js.map → chunk-55UKPTLG.js.map} +0 -0
- /package/dist/{chunk-HBJJY2AC.js.map → chunk-6II57C72.js.map} +0 -0
- /package/dist/{chunk-GBTKLNMX.js.map → chunk-ABUBJDTO.js.map} +0 -0
- /package/dist/{chunk-7KVZPJ3O.js.map → chunk-AODSTIED.js.map} +0 -0
- /package/dist/{chunk-XYKQJMVT.js.map → chunk-CBQMF744.js.map} +0 -0
- /package/dist/{chunk-ZCBP5VTT.js.map → chunk-J4QLQETO.js.map} +0 -0
- /package/dist/{chunk-SFRFW3GC.js.map → chunk-PAVNEKRU.js.map} +0 -0
- /package/dist/{chunk-AZQRB56U.js.map → chunk-PQPNDL4A.js.map} +0 -0
- /package/dist/{chunk-ESJWSRFD.js.map → chunk-VVB5N5ON.js.map} +0 -0
- /package/dist/{chunk-TUWQV2MC.js.map → chunk-YSA4MXR5.js.map} +0 -0
- /package/dist/{chunk-WNGTC3Y2.js.map → chunk-YUJY75WA.js.map} +0 -0
- /package/dist/{chunk-UTJKC2LY.js.map → chunk-ZWLWT3TZ.js.map} +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
agentGUIProviderIdentityDisplayName,
|
|
6
6
|
resolveMigratedAgentGUIProviderIdentity
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5CLSJWUN.js";
|
|
8
8
|
|
|
9
9
|
// agentActivityRuntime.tsx
|
|
10
10
|
import {
|
|
@@ -213,4 +213,4 @@ export {
|
|
|
213
213
|
getOptionalAgentHostApi,
|
|
214
214
|
workspaceAgentProviderLabel
|
|
215
215
|
};
|
|
216
|
-
//# sourceMappingURL=chunk-
|
|
216
|
+
//# sourceMappingURL=chunk-VVB5N5ON.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-MIJXEELH.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveAgentGUIProviderCatalogIdentity
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5CLSJWUN.js";
|
|
10
10
|
|
|
11
11
|
// contexts/settings/domain/agentSettings.providers.ts
|
|
12
12
|
var AGENT_PROVIDERS = [
|
|
@@ -16,8 +16,7 @@ var AGENT_PROVIDERS = [
|
|
|
16
16
|
"tutti-agent",
|
|
17
17
|
"nexight",
|
|
18
18
|
"opencode",
|
|
19
|
-
"openclaw"
|
|
20
|
-
"hermes"
|
|
19
|
+
"openclaw"
|
|
21
20
|
];
|
|
22
21
|
|
|
23
22
|
// contexts/settings/domain/agentSettings.providerMeta.ts
|
|
@@ -375,4 +374,4 @@ export {
|
|
|
375
374
|
resolveAgentGuiWorkbenchHeaderTitle,
|
|
376
375
|
resolveAgentGuiWorkbenchSessionTitle
|
|
377
376
|
};
|
|
378
|
-
//# sourceMappingURL=chunk-
|
|
377
|
+
//# sourceMappingURL=chunk-YGBZKQ2S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../contexts/settings/domain/agentSettings.providers.ts","../contexts/settings/domain/agentSettings.providerMeta.ts","../shared/agentConversationTitleProjection.ts","../workbench/sessionTitle.ts"],"sourcesContent":["export const AGENT_PROVIDERS = [\n \"claude-code\",\n \"codex\",\n \"cursor\",\n \"tutti-agent\",\n \"nexight\",\n \"opencode\",\n \"openclaw\"\n] as const;\nexport const EXPERIMENTAL_AGENT_PROVIDERS = [] as const;\n\nexport type AgentProvider = (typeof AGENT_PROVIDERS)[number];\n\nexport function isValidProvider(value: unknown): value is AgentProvider {\n return (\n typeof value === \"string\" &&\n AGENT_PROVIDERS.includes(value as AgentProvider)\n );\n}\n\nexport function normalizeAgentProviderOrder(value: unknown): AgentProvider[] {\n if (!Array.isArray(value)) {\n return [...AGENT_PROVIDERS];\n }\n\n const normalized: AgentProvider[] = [];\n const seen = new Set<AgentProvider>();\n\n for (const item of value) {\n if (!isValidProvider(item)) {\n continue;\n }\n\n if (seen.has(item)) {\n continue;\n }\n\n seen.add(item);\n normalized.push(item);\n }\n\n for (const provider of AGENT_PROVIDERS) {\n if (seen.has(provider)) {\n continue;\n }\n\n seen.add(provider);\n normalized.push(provider);\n }\n\n return normalized;\n}\n","import { resolveAgentGUIProviderCatalogIdentity } from \"../../../providerIdentityCatalog.ts\";\nimport {\n AGENT_PROVIDERS,\n type AgentProvider\n} from \"./agentSettings.providers.ts\";\n\nexport const AGENT_PROVIDER_LABEL = Object.fromEntries(\n AGENT_PROVIDERS.map((provider) => {\n const identity = resolveAgentGUIProviderCatalogIdentity(provider);\n if (!identity) {\n throw new Error(`Missing provider identity for ${provider}`);\n }\n return [provider, identity.displayName];\n })\n) as Record<AgentProvider, string>;\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 \"tutti-agent\": {\n runtimeObservation: \"provider-api\",\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 openclaw: {\n runtimeObservation: \"jsonl\",\n experimental: false\n }\n};\n","import { AGENT_PROVIDER_LABEL } from \"../contexts/settings/domain/agentSettings.providerMeta.ts\";\nimport {\n isPendingActivationViable,\n type PendingActivationStatus,\n type AgentActivityMessage,\n type AgentPromptContentBlock\n} from \"@tutti-os/agent-activity-core\";\nimport {\n extractRichTextLinksFromContent,\n extractRichTextMentionsFromContent,\n removeRichTextMentionFromContent,\n type RichTextMentionRef\n} from \"@tutti-os/ui-rich-text/core\";\nimport { translateInUiLanguage } from \"../i18n/runtime.ts\";\nimport { resolveAgentGUIProviderCatalogIdentity } from \"../providerIdentityCatalog.ts\";\nimport type { AgentGUIProvider } from \"../types.ts\";\nimport type { WorkspaceAgentActivityTimelineItem } from \"./workspaceAgentTimelineTypes.ts\";\nimport { normalizeAgentTitleText } from \"./utils/agentTitleText.ts\";\n\nexport type AgentGUIResolvedProvider = AgentGUIProvider | \"unknown\";\nexport type AgentGUIConversationTitleFallback = \"untitled-conversation\" | null;\nexport type AgentGUIConversationTitleLeadingMentionKind =\n | \"agent\"\n | \"app\"\n | \"file\"\n | \"session\"\n | \"task\";\nexport type AgentGUIConversationTitleIconMentionKind = Extract<\n AgentGUIConversationTitleLeadingMentionKind,\n \"file\" | \"task\"\n>;\n\nconst AGENT_GUI_UNRESOLVED_PROVIDER: AgentGUIResolvedProvider = \"unknown\";\nconst AGENT_GUI_MAX_OPTIMISTIC_TITLE_CODE_POINTS = 120;\nconst AGENT_GUI_TRUNCATED_TITLE_SUFFIX = \"...\";\n\nexport function isAgentGUIProviderUnresolved(\n value: AgentGUIResolvedProvider\n): value is \"unknown\" {\n return value === AGENT_GUI_UNRESOLVED_PROVIDER;\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 const normalized = provider?.trim().toLowerCase() ?? \"\";\n const catalogIdentity = resolveAgentGUIProviderCatalogIdentity(normalized);\n if (catalogIdentity) {\n return catalogIdentity.providerId as AgentGUIProvider;\n }\n if (!/^[a-z][a-z0-9._:-]{0,127}$/.test(normalized)) {\n return \"unknown\";\n }\n return normalized as AgentGUIProvider;\n}\n\nfunction providerLabel(provider: AgentGUIProvider): string {\n return (AGENT_PROVIDER_LABEL as Record<string, string>)[provider] ?? provider;\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): {\n title: string;\n titleFallback: AgentGUIConversationTitleFallback;\n} {\n const normalizedTitle = stripAgentGUITitleTrailingPeriod(title?.trim() ?? \"\");\n if (normalizedTitle) {\n return {\n title: normalizedTitle,\n titleFallback: null\n };\n }\n return {\n title: \"\",\n titleFallback: \"untitled-conversation\"\n };\n}\n\nexport function deriveAgentGUIOptimisticConversationTitle(\n visiblePrompt: string | null | undefined\n): string {\n const normalizedTitle = normalizeAgentTitleText(visiblePrompt);\n const codePoints = Array.from(normalizedTitle);\n if (codePoints.length <= AGENT_GUI_MAX_OPTIMISTIC_TITLE_CODE_POINTS) {\n return normalizedTitle;\n }\n return `${codePoints\n .slice(\n 0,\n AGENT_GUI_MAX_OPTIMISTIC_TITLE_CODE_POINTS -\n AGENT_GUI_TRUNCATED_TITLE_SUFFIX.length\n )\n .join(\"\")\n .trimEnd()}${AGENT_GUI_TRUNCATED_TITLE_SUFFIX}`;\n}\n\nexport function resolveAgentGUIConversationTitleDisplayPrompt(input: {\n activation?: {\n content: readonly AgentPromptContentBlock[];\n displayPrompt?: string;\n mode: \"existing\" | \"new\";\n status: PendingActivationStatus;\n } | null;\n allowEmptyTitle?: boolean;\n firstUserDisplayPrompt?: string | null;\n messages?: readonly AgentActivityMessage[];\n title: string | null;\n}): string | null {\n const prompt = resolveAgentGUIConversationTitlePrompt(input);\n if (\n !prompt ||\n !isAgentGUIConversationTitleDisplayPromptEligible(prompt) ||\n !agentGUITitleMatchesDerivedPrompt(\n input.title,\n prompt,\n input.allowEmptyTitle\n )\n ) {\n return null;\n }\n return prompt;\n}\n\nexport function resolveAgentGUIConversationBrowserFreeTitle(input: {\n activation?: {\n content: readonly AgentPromptContentBlock[];\n displayPrompt?: string;\n mode: \"existing\" | \"new\";\n status: PendingActivationStatus;\n } | null;\n allowEmptyTitle?: boolean;\n firstUserDisplayPrompt?: string | null;\n messages?: readonly AgentActivityMessage[];\n title: string | null;\n}): string | null {\n const prompt = resolveAgentGUIConversationTitlePrompt(input);\n if (\n !prompt ||\n !agentGUITitleMatchesDerivedPrompt(\n input.title,\n prompt,\n input.allowEmptyTitle\n )\n ) {\n return input.title;\n }\n const presentationPrompt = removeAgentGUIBrowserElementMentions(prompt);\n return presentationPrompt === prompt\n ? input.title\n : deriveAgentGUIOptimisticConversationTitle(presentationPrompt);\n}\n\nexport function resolveAgentGUIConversationTitleLeadingMentionKind(\n displayPrompt: string | null | undefined\n): AgentGUIConversationTitleLeadingMentionKind | null {\n const firstMention = extractRichTextMentionsFromContent(displayPrompt)[0];\n const mentionKind = firstMention\n ? agentGUIConversationTitleMentionKind(firstMention)\n : null;\n if (isAgentGUIConversationTitleIconMentionKind(mentionKind)) {\n return mentionKind;\n }\n if (firstMention) return null;\n return extractRichTextLinksFromContent(displayPrompt).length > 0\n ? \"file\"\n : null;\n}\n\nexport function isAgentGUIConversationTitleIconMentionKind(\n kind: AgentGUIConversationTitleLeadingMentionKind | null | undefined\n): kind is AgentGUIConversationTitleIconMentionKind {\n return kind === \"file\" || kind === \"task\";\n}\n\nfunction agentGUIConversationTitleMentionKind(\n mention: RichTextMentionRef\n): AgentGUIConversationTitleLeadingMentionKind | null {\n if (\n mention.providerId === \"agent-session\" ||\n mention.providerId === \"session\"\n ) {\n return \"session\";\n }\n if (\n mention.providerId === \"workspace-issue\" ||\n mention.providerId === \"issue\" ||\n mention.providerId === \"task\"\n ) {\n return \"task\";\n }\n if (mention.providerId === \"workspace-app\") return \"app\";\n if (mention.providerId === \"agent-target\") return \"agent\";\n if (mention.providerId === \"workspace-reference\") {\n return mention.scope?.source === \"task\"\n ? \"task\"\n : mention.scope?.source === \"app\"\n ? \"app\"\n : null;\n }\n return null;\n}\n\nfunction isAgentGUIConversationTitleDisplayPromptEligible(\n displayPrompt: string\n): boolean {\n const mentions = extractRichTextMentionsFromContent(displayPrompt);\n if (\n mentions.some(\n (mention) => {\n if (mention.providerId === \"browser-element\") {\n return false;\n }\n return !isAgentGUIConversationTitleIconMentionKind(\n agentGUIConversationTitleMentionKind(mention)\n );\n }\n )\n ) {\n return false;\n }\n return (\n mentions.length > 0 ||\n extractRichTextLinksFromContent(displayPrompt).length > 0\n );\n}\n\nfunction resolveAgentGUIConversationTitlePrompt(input: {\n activation?: {\n content: readonly AgentPromptContentBlock[];\n displayPrompt?: string;\n mode: \"existing\" | \"new\";\n status: PendingActivationStatus;\n } | null;\n firstUserDisplayPrompt?: string | null;\n messages?: readonly AgentActivityMessage[];\n}): string {\n const activationPrompt =\n input.activation?.mode === \"new\" &&\n isPendingActivationViable(input.activation)\n ? agentGUIActivationPromptText(\n input.activation.content,\n input.activation.displayPrompt ?? null\n )\n : \"\";\n return (\n activationPrompt ||\n input.firstUserDisplayPrompt?.trim() ||\n resolveAgentGUIFirstUserMessageDisplayPrompt(input.messages ?? [])\n );\n}\n\nfunction removeAgentGUIBrowserElementMentions(prompt: string): string {\n return extractRichTextMentionsFromContent(prompt)\n .filter((mention) => mention.providerId === \"browser-element\")\n .reduce(\n (content, mention) => removeRichTextMentionFromContent(content, mention),\n prompt\n );\n}\n\nexport function resolveAgentGUIFirstUserMessageDisplayPrompt(\n messages: readonly AgentActivityMessage[]\n): string {\n const message = messages.find(\n (candidate) =>\n candidate.role.trim().toLowerCase() === \"user\" &&\n candidate.kind.trim().toLowerCase() === \"text\"\n );\n if (!message) {\n return \"\";\n }\n return (\n agentGUIStringValue(message.payload.displayPrompt) ||\n agentGUIPromptTextFromUnknownContent(message.payload.content) ||\n agentGUIStringValue(message.payload.text) ||\n agentGUIStringValue(message.payload.content)\n );\n}\n\nfunction agentGUIPromptTextFromUnknownContent(content: unknown): string {\n if (!Array.isArray(content)) {\n return \"\";\n }\n return content\n .flatMap((value) => {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n return [];\n }\n const block = value as Record<string, unknown>;\n return block.type === \"text\" && typeof block.text === \"string\"\n ? [block.text.trim()]\n : [];\n })\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction agentGUIActivationPromptText(\n content: readonly AgentPromptContentBlock[],\n displayPrompt: string | null\n): string {\n const display = displayPrompt?.trim() ?? \"\";\n if (display) {\n return display;\n }\n return content\n .filter((block) => block.type === \"text\")\n .map((block) => block.text?.trim() ?? \"\")\n .filter(Boolean)\n .join(\"\\n\");\n}\n\nfunction agentGUITitleMatchesDerivedPrompt(\n title: string | null,\n prompt: string,\n allowEmptyTitle = false\n): boolean {\n const canonicalTitle = title?.trim() ?? \"\";\n if (!canonicalTitle) {\n return allowEmptyTitle;\n }\n const derivedTitle = normalizeAgentTitleText(prompt);\n if (canonicalTitle === derivedTitle) {\n return true;\n }\n const runes = Array.from(derivedTitle);\n const truncatedDerivedTitle =\n runes.length > AGENT_GUI_MAX_OPTIMISTIC_TITLE_CODE_POINTS\n ? `${runes\n .slice(\n 0,\n AGENT_GUI_MAX_OPTIMISTIC_TITLE_CODE_POINTS -\n AGENT_GUI_TRUNCATED_TITLE_SUFFIX.length\n )\n .join(\"\")\n .trim()}${AGENT_GUI_TRUNCATED_TITLE_SUFFIX}`\n : derivedTitle;\n return canonicalTitle === truncatedDerivedTitle;\n}\n\nfunction agentGUIStringValue(value: unknown): string {\n return typeof value === \"string\" ? value.trim() : \"\";\n}\n\nexport function resolveAgentGUIConversationDisplayTitle(\n input: {\n title: string;\n titleFallback?: AgentGUIConversationTitleFallback;\n },\n untitledConversationLabel: string\n): string {\n if (input.title) {\n return stripAgentGUITitleTrailingPeriod(input.title.trim());\n }\n if (input.titleFallback === \"untitled-conversation\") {\n return stripAgentGUITitleTrailingPeriod(untitledConversationLabel);\n }\n return \"\";\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(input.title.trim());\n if (!title) {\n return null;\n }\n if (isAgentGUIUntitledTaskTitle(title)) {\n return null;\n }\n\n if (input.provider !== \"unknown\" && title === providerLabel(input.provider)) {\n return null;\n }\n\n return title;\n}\n\nexport function resolveAgentGUIExplicitConversationTitleFromMessages(input: {\n messages: readonly AgentGUIConversationTitleMessage[];\n provider: AgentGUIResolvedProvider;\n title: string | null | undefined;\n}): string | null {\n const explicitTitle = resolveAgentGUIExplicitConversationTitle({\n provider: input.provider,\n title: input.title?.trim() ?? \"\"\n });\n if (explicitTitle) {\n return explicitTitle;\n }\n return resolveAgentGUIExplicitConversationTitle({\n provider: input.provider,\n title: firstAgentGUIUserMessageTitle(input.messages)\n });\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 providerLabel(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.workspaceAgentsUntitledConversation\"\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","import type { AgentActivitySession } from \"@tutti-os/agent-activity-core\";\nimport { resolveAgentGUIProviderDisplayLabel } from \"../shared/agentConversationTitleProjection.ts\";\n\nexport interface ResolveAgentGuiWorkbenchHeaderTitleInput {\n agentName?: string | null;\n conversationTitle?: string | null;\n provider?: string | null;\n}\n\nexport interface ResolveAgentGuiWorkbenchSessionTitleInput {\n agentSessionId?: string | null;\n fallbackTitle?: string | null;\n optimisticTitle?: string | null;\n session?: Pick<AgentActivitySession, \"title\"> | null;\n}\n\nexport interface AgentGuiWorkbenchSessionTitleResult {\n agentSessionId: string | null;\n source: \"snapshot\" | \"optimistic\" | \"fallback\" | \"none\";\n title: string | null;\n}\n\nexport function resolveAgentGuiWorkbenchHeaderTitle({\n agentName,\n conversationTitle,\n provider\n}: ResolveAgentGuiWorkbenchHeaderTitleInput): string | null {\n return (\n stripTitle(agentName) ||\n stripTitle(resolveAgentGUIProviderDisplayLabel(provider, \"\")) ||\n stripTitle(conversationTitle) ||\n null\n );\n}\n\nexport function resolveAgentGuiWorkbenchSessionTitle({\n agentSessionId,\n fallbackTitle,\n optimisticTitle,\n session = null\n}: ResolveAgentGuiWorkbenchSessionTitleInput): AgentGuiWorkbenchSessionTitleResult {\n const normalizedAgentSessionId = agentSessionId?.trim() ?? \"\";\n if (!normalizedAgentSessionId) {\n return { agentSessionId: null, source: \"none\", title: null };\n }\n\n const snapshotTitle = stripTitle(session?.title);\n if (snapshotTitle) {\n return {\n agentSessionId: normalizedAgentSessionId,\n source: \"snapshot\",\n title: snapshotTitle\n };\n }\n\n const projectedOptimisticTitle = stripTitle(optimisticTitle);\n if (projectedOptimisticTitle) {\n return {\n agentSessionId: normalizedAgentSessionId,\n source: \"optimistic\",\n title: projectedOptimisticTitle\n };\n }\n\n if (session) {\n return {\n agentSessionId: normalizedAgentSessionId,\n source: \"none\",\n title: null\n };\n }\n\n const fallbackDisplayTitle = stripTitle(fallbackTitle);\n return fallbackDisplayTitle\n ? {\n agentSessionId: normalizedAgentSessionId,\n source: \"fallback\",\n title: fallbackDisplayTitle\n }\n : {\n agentSessionId: normalizedAgentSessionId,\n source: \"none\",\n title: null\n };\n}\n\nfunction stripTitle(value: string | null | undefined): string {\n return value?.trim() ?? \"\";\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,43 +3,43 @@ import {
|
|
|
3
3
|
migrateLegacyAgentGuiWorkbenchState,
|
|
4
4
|
normalizeAgentGuiWorkbenchNodeState,
|
|
5
5
|
normalizeAgentGuiWorkbenchState
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-6II57C72.js";
|
|
7
7
|
import {
|
|
8
8
|
agentGuiWorkbenchDockIdentityFromIdentifier,
|
|
9
9
|
agentGuiWorkbenchTypeId,
|
|
10
10
|
agentGuiWorkbenchUnifiedDockEntryId,
|
|
11
11
|
createAgentGuiWorkbenchLaunchDescriptor
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YSA4MXR5.js";
|
|
13
13
|
import {
|
|
14
14
|
agentGuiWorkbenchDefaultDockProviders,
|
|
15
15
|
isAgentGuiWorkbenchProvider,
|
|
16
16
|
resolveAgentGuiWorkbenchProviderLabel
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-SZVHT57M.js";
|
|
18
18
|
import {
|
|
19
19
|
resolveAgentGUIConversationBrowserFreeTitle,
|
|
20
20
|
resolveAgentGUIConversationTitleDisplayPrompt,
|
|
21
21
|
resolveAgentGuiWorkbenchHeaderTitle,
|
|
22
22
|
resolveAgentGuiWorkbenchSessionTitle
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-YGBZKQ2S.js";
|
|
24
24
|
import {
|
|
25
25
|
normalizeAgentGUIAgents,
|
|
26
26
|
projectAgentGUIAgentsToTargets
|
|
27
27
|
} from "./chunk-66JZ7BQM.js";
|
|
28
28
|
import {
|
|
29
29
|
agentGuiDockIconUrls
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-PQPNDL4A.js";
|
|
31
31
|
import {
|
|
32
32
|
useEngineSelector
|
|
33
33
|
} from "./chunk-2RQM7PJN.js";
|
|
34
34
|
import {
|
|
35
35
|
normalizeManagedAgentProvider
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-AODSTIED.js";
|
|
37
37
|
import {
|
|
38
38
|
resolveProviderIconAsset
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-LCFMJPNA.js";
|
|
40
40
|
import {
|
|
41
41
|
resolveAgentGUIProviderCatalogIdentity
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-5CLSJWUN.js";
|
|
43
43
|
|
|
44
44
|
// workbench/contribution.ts
|
|
45
45
|
import { createElement as createElement3 } from "react";
|
|
@@ -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-ZGW4IZ6O.js").then((module) => ({
|
|
404
404
|
default: module.AgentRichTextReadonly
|
|
405
405
|
}))
|
|
406
406
|
);
|
|
@@ -927,8 +927,7 @@ var agentGuiWorkbenchProviderRailWidthPx = 52;
|
|
|
927
927
|
var agentGuiWorkbenchUnifiedDockTileProviders = [
|
|
928
928
|
"codex",
|
|
929
929
|
"claude-code",
|
|
930
|
-
"tutti-agent"
|
|
931
|
-
"hermes"
|
|
930
|
+
"tutti-agent"
|
|
932
931
|
];
|
|
933
932
|
var agentGuiWorkbenchDefaultCopy = {
|
|
934
933
|
collapseConversationRail: "Hide sidebar",
|
|
@@ -1646,4 +1645,4 @@ export {
|
|
|
1646
1645
|
AGENT_GUI_WORKBENCH_OPEN_EXTERNAL_IMPORT_EVENT,
|
|
1647
1646
|
createAgentGuiWorkbenchContribution
|
|
1648
1647
|
};
|
|
1649
|
-
//# sourceMappingURL=chunk-
|
|
1648
|
+
//# sourceMappingURL=chunk-YRAKPTXS.js.map
|