@tutti-os/agent-gui 0.0.64 → 0.0.66

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.
Files changed (89) hide show
  1. package/LICENSE +1 -2
  2. package/README.md +1 -1
  3. package/dist/agent-conversation/index.d.ts +2 -2
  4. package/dist/agent-conversation/index.js +6 -6
  5. package/dist/agent-message-center/index.js +8 -8
  6. package/dist/{agentGuiNodeTypes-CCjzXdTe.d.ts → agentGuiNodeTypes-B9Aq3UEU.d.ts} +3 -1
  7. package/dist/app/renderer/agentactivity.css +46 -3
  8. package/dist/{chunk-IIXCU2UU.js → chunk-6ULTMCKP.js} +2 -2
  9. package/dist/{chunk-52VZ54WH.js → chunk-CTJQTUQ3.js} +6 -6
  10. package/dist/{chunk-52VZ54WH.js.map → chunk-CTJQTUQ3.js.map} +1 -1
  11. package/dist/{chunk-PVVM7MZZ.js → chunk-DL6BMEHI.js} +2 -2
  12. package/dist/{chunk-TFPKI4XJ.js → chunk-DXVMRZHH.js} +2 -6
  13. package/dist/chunk-DXVMRZHH.js.map +1 -0
  14. package/dist/{chunk-76GTKO4Q.js → chunk-HNODQVG2.js} +2 -2
  15. package/dist/{chunk-RDRKIMAC.js → chunk-JTFWT6DK.js} +7 -9
  16. package/dist/chunk-JTFWT6DK.js.map +1 -0
  17. package/dist/{chunk-MQ6RKXXW.js → chunk-KRJF7WLJ.js} +15 -3
  18. package/dist/chunk-KRJF7WLJ.js.map +1 -0
  19. package/dist/{chunk-FUJ73PTH.js → chunk-LJE2W4EM.js} +3 -5
  20. package/dist/chunk-LJE2W4EM.js.map +1 -0
  21. package/dist/{chunk-YFTQK2G4.js → chunk-LQHYHF36.js} +7 -7
  22. package/dist/chunk-LQHYHF36.js.map +1 -0
  23. package/dist/{chunk-TG3ZXLPM.js → chunk-MYD37I32.js} +27 -3
  24. package/dist/chunk-MYD37I32.js.map +1 -0
  25. package/dist/{chunk-ERWDRI3F.js → chunk-N4I3TD4G.js} +2 -2
  26. package/dist/{chunk-ERWDRI3F.js.map → chunk-N4I3TD4G.js.map} +1 -1
  27. package/dist/{chunk-FLTLZGIN.js → chunk-NOTZW5WH.js} +3 -3
  28. package/dist/{chunk-YUMHFZ5A.js → chunk-P5C3ED3V.js} +3 -2
  29. package/dist/chunk-P5C3ED3V.js.map +1 -0
  30. package/dist/{chunk-TT2YJNEP.js → chunk-T3KGZV35.js} +50 -12
  31. package/dist/chunk-T3KGZV35.js.map +1 -0
  32. package/dist/{chunk-F6GDUU4X.js → chunk-UBBHWDMP.js} +13 -9
  33. package/dist/{chunk-F6GDUU4X.js.map → chunk-UBBHWDMP.js.map} +1 -1
  34. package/dist/{chunk-3NSUJ7OF.js → chunk-UI3YDJTC.js} +39 -5
  35. package/dist/chunk-UI3YDJTC.js.map +1 -0
  36. package/dist/{chunk-C465B7WK.js → chunk-VBTPXEFH.js} +2 -2
  37. package/dist/{chunk-ZTZ6STJZ.js → chunk-Z26P2QNT.js} +2 -2
  38. package/dist/context-mention-palette/index.js +7 -7
  39. package/dist/i18n/index.d.ts +14 -2
  40. package/dist/i18n/index.js +2 -2
  41. package/dist/index.d.ts +37 -5
  42. package/dist/index.js +750 -774
  43. package/dist/index.js.map +1 -1
  44. package/dist/queued-prompt-runtime.d.ts +22 -3
  45. package/dist/queued-prompt-runtime.js +1 -1
  46. package/dist/{types-BAPEle8b.d.ts → types-Bxn8bLEp.d.ts} +14 -1
  47. package/dist/workbench/contribution.d.ts +1 -1
  48. package/dist/workbench/contribution.js +5 -5
  49. package/dist/workbench/index.d.ts +1 -1
  50. package/dist/workbench/index.js +8 -8
  51. package/dist/workbench/launch.d.ts +3 -1
  52. package/dist/workbench/launch.js +1 -1
  53. package/dist/workbench/providerCatalog.d.ts +1 -1
  54. package/dist/workbench/sessionTitle.d.ts +1 -1
  55. package/dist/workbench/sessionTitle.js +3 -3
  56. package/dist/workbench/state.d.ts +1 -1
  57. package/dist/workbench/state.js +2 -2
  58. package/dist/workbench/types.d.ts +1 -1
  59. package/dist/workspace-agent-generated-files.js +3 -3
  60. package/package.json +12 -12
  61. package/dist/app/renderer/assets/icons/@-lined-14px.svg +0 -3
  62. package/dist/app/renderer/assets/icons/agents/manage-agent-claude-code.png +0 -0
  63. package/dist/app/renderer/assets/icons/agents/manage-agent-codex.png +0 -0
  64. package/dist/app/renderer/assets/icons/agents/manage-agent-gemini.png +0 -0
  65. package/dist/app/renderer/assets/icons/agents/manage-agent-hermes.png +0 -0
  66. package/dist/app/renderer/assets/icons/agents/manage-agent-openclaw.png +0 -0
  67. package/dist/app/renderer/assets/icons/agents/tutti-doc-rounded.png +0 -0
  68. package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-claude-code.png +0 -0
  69. package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-codex.png +0 -0
  70. package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-gemini.png +0 -0
  71. package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-nexight.png +0 -0
  72. package/dist/app/renderer/assets/icons/agents/workspace-dock-agent-openclaw.png +0 -0
  73. package/dist/app/renderer/assets/icons/arrow-left-filled.svg +0 -1
  74. package/dist/chunk-3NSUJ7OF.js.map +0 -1
  75. package/dist/chunk-FUJ73PTH.js.map +0 -1
  76. package/dist/chunk-MQ6RKXXW.js.map +0 -1
  77. package/dist/chunk-RDRKIMAC.js.map +0 -1
  78. package/dist/chunk-TFPKI4XJ.js.map +0 -1
  79. package/dist/chunk-TG3ZXLPM.js.map +0 -1
  80. package/dist/chunk-TT2YJNEP.js.map +0 -1
  81. package/dist/chunk-YFTQK2G4.js.map +0 -1
  82. package/dist/chunk-YUMHFZ5A.js.map +0 -1
  83. package/dist/cursor-flat-filled-CL7N3BTZ.svg +0 -3
  84. /package/dist/{chunk-IIXCU2UU.js.map → chunk-6ULTMCKP.js.map} +0 -0
  85. /package/dist/{chunk-PVVM7MZZ.js.map → chunk-DL6BMEHI.js.map} +0 -0
  86. /package/dist/{chunk-76GTKO4Q.js.map → chunk-HNODQVG2.js.map} +0 -0
  87. /package/dist/{chunk-FLTLZGIN.js.map → chunk-NOTZW5WH.js.map} +0 -0
  88. /package/dist/{chunk-C465B7WK.js.map → chunk-VBTPXEFH.js.map} +0 -0
  89. /package/dist/{chunk-ZTZ6STJZ.js.map → chunk-Z26P2QNT.js.map} +0 -0
@@ -41,6 +41,26 @@ function createDisabledPlaceholderAgentGUIProviderTarget(provider) {
41
41
  disabled: true
42
42
  };
43
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
+ }
44
64
  function createLocalAgentGUIProviderTargets(providers = agentGUIDefaultTargetProviders) {
45
65
  return providers.map(
46
66
  (provider) => createLocalAgentGUIProviderTarget(provider)
@@ -142,6 +162,18 @@ function agentGUIProviderTargetRefsEqual(left, right) {
142
162
  return stableProviderTargetRefKey(left) === stableProviderTargetRefKey(right);
143
163
  }
144
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;
145
177
  const targetId = target.targetId.trim();
146
178
  const agentTargetId = target.agentTargetId?.trim();
147
179
  const label = target.label.trim();
@@ -150,7 +182,7 @@ function normalizeAgentGUIProviderTarget(target) {
150
182
  return null;
151
183
  }
152
184
  return {
153
- ...target,
185
+ ...rest,
154
186
  targetId,
155
187
  ...agentTargetId ? { agentTargetId } : {},
156
188
  provider: target.provider,
@@ -160,9 +192,10 @@ function normalizeAgentGUIProviderTarget(target) {
160
192
  provider: target.provider
161
193
  },
162
194
  label,
163
- ...target.description?.trim() ? { description: target.description.trim() } : {},
164
- ...target.ownerLabel?.trim() ? { ownerLabel: target.ownerLabel.trim() } : {},
165
- ...target.unavailableReason?.trim() ? { unavailableReason: target.unavailableReason.trim() } : {}
195
+ ...description?.trim() ? { description: description.trim() } : {},
196
+ ...iconUrl?.trim() ? { iconUrl: iconUrl.trim() } : {},
197
+ ...ownerLabel?.trim() ? { ownerLabel: ownerLabel.trim() } : {},
198
+ ...unavailableReason?.trim() ? { unavailableReason: unavailableReason.trim() } : {}
166
199
  };
167
200
  }
168
201
  function stableProviderTargetRefKey(ref) {
@@ -184,6 +217,7 @@ export {
184
217
  agentGUIDefaultTargetProviders,
185
218
  createLocalAgentGUIProviderTarget,
186
219
  createDisabledPlaceholderAgentGUIProviderTarget,
220
+ createSharedAgentGUIProviderTarget,
187
221
  createLocalAgentGUIProviderTargets,
188
222
  localAgentGUIProviderTargetId,
189
223
  localAgentGUIAgentTargetId,
@@ -191,4 +225,4 @@ export {
191
225
  resolveAgentGUIProviderTarget,
192
226
  agentGUIProviderTargetRefsEqual
193
227
  };
194
- //# sourceMappingURL=chunk-3NSUJ7OF.js.map
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":[]}
@@ -4,7 +4,7 @@ import {
4
4
  formatAgentSessionMentionText,
5
5
  normalizeAgentGUIProviderIdentity,
6
6
  resolveAgentGUIExplicitConversationTitle
7
- } from "./chunk-76GTKO4Q.js";
7
+ } from "./chunk-HNODQVG2.js";
8
8
 
9
9
  // workbench/sessionTitle.ts
10
10
  function formatAgentGuiSessionPlainTitle(title, options = {}) {
@@ -96,4 +96,4 @@ export {
96
96
  formatAgentGuiConversationPlainTitle,
97
97
  resolveAgentGuiWorkbenchSessionTitle
98
98
  };
99
- //# sourceMappingURL=chunk-C465B7WK.js.map
99
+ //# sourceMappingURL=chunk-VBTPXEFH.js.map
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  translate,
13
13
  translateInUiLanguage
14
- } from "./chunk-IIXCU2UU.js";
14
+ } from "./chunk-6ULTMCKP.js";
15
15
  import {
16
16
  normalizeAgentTitleText
17
17
  } from "./chunk-GCBDIQDX.js";
@@ -1007,4 +1007,4 @@ export {
1007
1007
  resolveWorkspaceAgentActivityStatus,
1008
1008
  resolveWorkspaceAgentActivityTitle
1009
1009
  };
1010
- //# sourceMappingURL=chunk-ZTZ6STJZ.js.map
1010
+ //# sourceMappingURL=chunk-Z26P2QNT.js.map
@@ -4,19 +4,19 @@ import {
4
4
  AgentMentionSearchController,
5
5
  flattenAgentMentionPaletteEntries,
6
6
  groupStartKeys
7
- } from "../chunk-52VZ54WH.js";
8
- import "../chunk-ZTZ6STJZ.js";
9
- import "../chunk-TFPKI4XJ.js";
7
+ } from "../chunk-CTJQTUQ3.js";
8
+ import "../chunk-Z26P2QNT.js";
9
+ import "../chunk-DXVMRZHH.js";
10
10
  import "../chunk-IBIMGLCD.js";
11
- import "../chunk-FLTLZGIN.js";
11
+ import "../chunk-NOTZW5WH.js";
12
12
  import "../chunk-Y35GDLP2.js";
13
13
  import "../chunk-LUGELG5V.js";
14
- import "../chunk-ERWDRI3F.js";
14
+ import "../chunk-N4I3TD4G.js";
15
15
  import "../chunk-TYGL25EL.js";
16
- import "../chunk-IIXCU2UU.js";
16
+ import "../chunk-6ULTMCKP.js";
17
17
  import "../chunk-PJP5BUU6.js";
18
18
  import "../chunk-R2NGSPQS.js";
19
- import "../chunk-MQ6RKXXW.js";
19
+ import "../chunk-KRJF7WLJ.js";
20
20
  import {
21
21
  AGENT_CONTEXT_MENTION_PROVIDER_IDS
22
22
  } from "../chunk-JM24HADP.js";
@@ -523,6 +523,7 @@ declare const agentGuiI18nResources: {
523
523
  readonly usageCompactAction: "Compact";
524
524
  readonly planCardTitle: "Plan";
525
525
  readonly planCardCopy: "Copy plan";
526
+ readonly copyCode: "Copy code";
526
527
  readonly planCardExpand: "Expand plan";
527
528
  readonly planCardCollapse: "Collapse plan";
528
529
  readonly planImplementationLead: "Implement this plan?";
@@ -583,7 +584,8 @@ declare const agentGuiI18nResources: {
583
584
  readonly empty: "What can {{provider}} help you with?";
584
585
  readonly conversations: "Sessions";
585
586
  readonly newConversation: "New session";
586
- readonly agentConfig: "Usage & Environment Check";
587
+ readonly agentConfig: "Check & Settings";
588
+ readonly agentSettingsMenu: "Settings";
587
589
  readonly agentEnvSetup: "Environment Check";
588
590
  readonly noConversations: "No sessions yet";
589
591
  readonly emptyProjectConversations: "No chats yet";
@@ -1289,6 +1291,10 @@ declare const agentGuiI18nResources: {
1289
1291
  readonly todos: "Todos";
1290
1292
  readonly skill: "Skill";
1291
1293
  readonly mcp: "MCP";
1294
+ readonly mcpServer: "Server";
1295
+ readonly mcpTool: "Tool";
1296
+ readonly mcpItem: "Item {{index}}";
1297
+ readonly mcpDoc: "Doc {{index}}";
1292
1298
  readonly approvalOptions: "Approval options";
1293
1299
  readonly answerPrefix: "Answer: {{answer}}";
1294
1300
  readonly waitingForAnswer: "Waiting for answer…";
@@ -3032,6 +3038,7 @@ declare const agentGuiI18nResources: {
3032
3038
  readonly usageCompactAction: "压缩";
3033
3039
  readonly planCardTitle: "计划";
3034
3040
  readonly planCardCopy: "复制计划";
3041
+ readonly copyCode: "复制代码";
3035
3042
  readonly planCardExpand: "展开方案";
3036
3043
  readonly planCardCollapse: "收起方案";
3037
3044
  readonly planImplementationLead: "是否实作此方案?";
@@ -3092,7 +3099,8 @@ declare const agentGuiI18nResources: {
3092
3099
  readonly empty: "需要 {{provider}} 帮你做些什么?";
3093
3100
  readonly conversations: "会话";
3094
3101
  readonly newConversation: "新建会话";
3095
- readonly agentConfig: "用量&环境检测";
3102
+ readonly agentConfig: "检测与设置";
3103
+ readonly agentSettingsMenu: "设置";
3096
3104
  readonly agentEnvSetup: "环境检测";
3097
3105
  readonly noConversations: "还没有会话";
3098
3106
  readonly emptyProjectConversations: "暂无对话";
@@ -3799,6 +3807,10 @@ declare const agentGuiI18nResources: {
3799
3807
  readonly todos: "待办";
3800
3808
  readonly skill: "技能";
3801
3809
  readonly mcp: "MCP";
3810
+ readonly mcpServer: "服务器";
3811
+ readonly mcpTool: "工具";
3812
+ readonly mcpItem: "条目 {{index}}";
3813
+ readonly mcpDoc: "文档 {{index}}";
3802
3814
  readonly approvalOptions: "审批选项";
3803
3815
  readonly answerPrefix: "回答:{{answer}}";
3804
3816
  readonly waitingForAnswer: "等待用户回答…";
@@ -6,8 +6,8 @@ import {
6
6
  translate,
7
7
  translateInUiLanguage,
8
8
  useTranslation
9
- } from "../chunk-IIXCU2UU.js";
10
- import "../chunk-MQ6RKXXW.js";
9
+ } from "../chunk-6ULTMCKP.js";
10
+ import "../chunk-KRJF7WLJ.js";
11
11
  export {
12
12
  AgentGuiI18nProvider,
13
13
  agentGuiI18nModule,
package/dist/index.d.ts CHANGED
@@ -4,10 +4,10 @@ import { m as WorkspaceAgentActivityListViewModel, g as AgentHostWorkspaceAgentS
4
4
  import * as react from 'react';
5
5
  import { ReactNode, PropsWithChildren, JSX, HTMLAttributes } from 'react';
6
6
  import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
7
- import { q as AgentProvider, f as AgentGUIProviderTargetRef, i as AgentHostAgentSessionComposerSettings, g as AgentHostActivateAgentSessionResult, o as AgentHostUpdateAgentSessionSettingsResult, m as AgentHostAgentSessionState, n as AgentHostUnactivateAgentSessionResult, A as AgentGUINodeData, a as AgentGUIProvider, e as AgentGUIProviderTarget, p as AgentPromptContentBlock, P as Point, b as AgentGUIProviderReadinessGate, N as NodeFrame } from './types-BAPEle8b.js';
8
- export { c as AgentGUIProviderReadinessGateAction, d as AgentGUIProviderReadinessGateStatus } from './types-BAPEle8b.js';
9
- import { k as AgentProbeSnapshot, A as AgentComposerDraft, n as AgentSessionCommand, c as AgentGUIProviderSkillOption, a as AgentGUIComposerSettingsVM, d as AgentGUIQueuedPromptVM, b as AgentGUINodeViewModel, g as AgentHostInputApi } from './agentGuiNodeTypes-CCjzXdTe.js';
10
- export { e as AgentHostApi, f as AgentHostApplyWorkspaceGitPatchInput, h as AgentHostRuntimeApi, i as AgentHostSelectFilesInput, j as AgentProbeProvider, l as AgentProviderProbeListInput, m as AgentProviderProbeListResult, o as AgentUsageQuota, p as AgentUsageSnapshot, P as PersistWriteResult, R as ReadWorkspaceAgentReadStateInput, W as WorkspaceAgentReadStateSnapshot, q as WriteWorkspaceAgentReadStateInput } from './agentGuiNodeTypes-CCjzXdTe.js';
7
+ import { r as AgentProvider, g as AgentGUIProviderTargetRef, j as AgentHostAgentSessionComposerSettings, h as AgentHostActivateAgentSessionResult, p as AgentHostUpdateAgentSessionSettingsResult, n as AgentHostAgentSessionState, o as AgentHostUnactivateAgentSessionResult, A as AgentGUINodeData, a as AgentGUIProvider, f as AgentGUIProviderTarget, q as AgentPromptContentBlock, P as Point, b as AgentGUIProviderRailMode, c as AgentGUIProviderReadinessGate, N as NodeFrame } from './types-Bxn8bLEp.js';
8
+ export { d as AgentGUIProviderReadinessGateAction, e as AgentGUIProviderReadinessGateStatus } from './types-Bxn8bLEp.js';
9
+ import { k as AgentProbeSnapshot, A as AgentComposerDraft, n as AgentSessionCommand, c as AgentGUIProviderSkillOption, a as AgentGUIComposerSettingsVM, d as AgentGUIQueuedPromptVM, b as AgentGUINodeViewModel, g as AgentHostInputApi } from './agentGuiNodeTypes-B9Aq3UEU.js';
10
+ export { e as AgentHostApi, f as AgentHostApplyWorkspaceGitPatchInput, h as AgentHostRuntimeApi, i as AgentHostSelectFilesInput, j as AgentProbeProvider, l as AgentProviderProbeListInput, m as AgentProviderProbeListResult, o as AgentUsageQuota, p as AgentUsageSnapshot, P as PersistWriteResult, R as ReadWorkspaceAgentReadStateInput, W as WorkspaceAgentReadStateSnapshot, q as WriteWorkspaceAgentReadStateInput } from './agentGuiNodeTypes-B9Aq3UEU.js';
11
11
  import { WorkspaceFileEntry } from '@tutti-os/workspace-file-manager/services';
12
12
  import { WorkspaceFileReference, ReferenceLocateTarget, WorkspaceFileReferenceAdapter } from '@tutti-os/workspace-file-reference/contracts';
13
13
  import { ReferenceSourceAggregator } from '@tutti-os/workspace-file-reference/core';
@@ -819,6 +819,18 @@ interface AgentWorkspaceReferenceInitialTargetInput {
819
819
  userProjects: AgentGUINodeViewModel["userProjects"];
820
820
  }
821
821
  type AgentWorkspaceReferenceInitialTargetResolver = (input: AgentWorkspaceReferenceInitialTargetInput) => ReferenceLocateTarget | null;
822
+ interface AgentGUISidebarFooterContext {
823
+ currentUserId?: string | null;
824
+ activeConversation: AgentGUINodeViewModel["activeConversation"];
825
+ }
826
+ type AgentGUISidebarFooterRenderer = (ctx: AgentGUISidebarFooterContext) => ReactNode;
827
+ /**
828
+ * Renders the provider rail body when the rail is in "exact" mode and the
829
+ * host-provided target list is empty (and not loading). Lets the host fully own
830
+ * the empty state (e.g. a "no shared agents" message or a create-agent prompt)
831
+ * instead of the library falling back to the static local catalog.
832
+ */
833
+ type AgentGUIProviderRailEmptyRenderer = () => ReactNode;
822
834
 
823
835
  interface AgentGUINodeProps {
824
836
  nodeId: string;
@@ -854,6 +866,15 @@ interface AgentGUINodeProps {
854
866
  onAgentProviderLogin?: (provider: AgentProvider) => void;
855
867
  providerTargets?: readonly AgentGUIProviderTarget[];
856
868
  providerTargetsLoading?: boolean;
869
+ /**
870
+ * Controls how the provider rail composes its list. "catalog" (default) adds
871
+ * the static local catalog + placeholders + coming-soon; "exact" renders only
872
+ * the provided targets and shows `renderProviderRailEmpty` when empty.
873
+ */
874
+ providerRailMode?: AgentGUIProviderRailMode;
875
+ /** Host-owned empty state for the provider rail in "exact" mode. */
876
+ renderProviderRailEmpty?: AgentGUIProviderRailEmptyRenderer;
877
+ renderSidebarFooter?: (ctx: AgentGUISidebarFooterContext) => ReactNode;
857
878
  comingSoonProviders?: readonly AgentGUIProvider[];
858
879
  providerReadinessGates?: Partial<Record<AgentGUIProvider, AgentGUIProviderReadinessGate | null>> | null;
859
880
  defaultProviderTargetId?: string | null;
@@ -910,6 +931,17 @@ declare const AgentGUI: react.NamedExoticComponent<AgentGUIProps>;
910
931
 
911
932
  declare const agentGUIDefaultTargetProviders: readonly ["codex", "claude-code", "cursor", "nexight", "hermes", "openclaw"];
912
933
  declare function createLocalAgentGUIProviderTarget(provider: AgentGUIProvider): AgentGUIProviderTarget;
934
+ declare function createSharedAgentGUIProviderTarget(input: {
935
+ provider: AgentGUIProvider;
936
+ sharedAgentId: string;
937
+ label: string;
938
+ agentTargetId?: string | null;
939
+ ownerLabel?: string | null;
940
+ iconUrl?: string | null;
941
+ unavailableReason?: string | null;
942
+ disabled?: boolean;
943
+ ref?: Record<string, unknown> | null;
944
+ }): AgentGUIProviderTarget;
913
945
  declare function createLocalAgentGUIProviderTargets(providers?: readonly AgentGUIProvider[]): AgentGUIProviderTarget[];
914
946
  declare function localAgentGUIProviderTargetId(provider: AgentGUIProvider): string;
915
947
  declare function localAgentGUIAgentTargetId(provider: AgentGUIProvider): string | null;
@@ -968,4 +1000,4 @@ interface AgentActivityHostProviderProps extends PropsWithChildren {
968
1000
  }
969
1001
  declare function AgentActivityHostProvider({ agentActivityRuntime, agentHostApi, children }: AgentActivityHostProviderProps): JSX.Element;
970
1002
 
971
- export { AgentActivityHostProvider, type AgentActivityHostProviderProps, type AgentActivityRuntime, type AgentActivityRuntimeListSessionMessagesInput, type AgentActivityRuntimePromptContentBlock, AgentActivityRuntimeProvider, type AgentActivityRuntimeProviderProps, type AgentActivityRuntimeRetainSessionEventsInput, type AgentActivityRuntimeSetSessionPinnedInput, type AgentActivityRuntimeUpdateSessionSettingsInput, type AgentActivityRuntimeUploadPromptContentInput, type AgentActivityRuntimeUploadPromptContentResult, type AgentActivityRuntimeWarmupOpenclawGatewayInput, type AgentActivitySnapshotProjection, AgentContextMentionProvider, type AgentCustomMentionChipContext, type AgentCustomMentionIdentity, type AgentCustomMentionKindDefinition, type AgentCustomMentionPresentation, AgentGUI, type AgentGUIProps, AgentGUIProvider, AgentGUIProviderReadinessGate, AgentGUIProviderTarget, AgentGUIProviderTargetRef, AgentGuiI18nLocale, AgentHostInputApi, AgentProbeSnapshot, AgentQueuedPromptQueueSnapshot, AgentQueuedPromptRuntime, AgentQueuedPromptRuntimeProvider, type AgentQueuedPromptRuntimeProviderProps, agentGUIDefaultTargetProviders, agentGuiDockIconUrl, agentGuiDockIconUrls, agentHostSnapshotFromAgentActivitySnapshot, buildAgentActivitySnapshotProjection, createLocalAgentGUIProviderTarget, createLocalAgentGUIProviderTargets, getAgentActivityRuntime, getAgentCustomMentionKind, getOptionalAgentActivityRuntime, localAgentGUIAgentTargetId, localAgentGUIProviderTargetId, normalizeAgentGUIProviderTargets, projectCoreSessionStatus, registerAgentCustomMentionKind, resetAgentActivityRuntimeForTests, resetAgentCustomMentionKindsForTests, resetAgentQueuedPromptRuntimeForTests, resolveAgentGUIExpandedWindowFrame, resolveAgentGUIProviderTarget, setAgentActivityRuntimeForTests, setAgentQueuedPromptRuntimeForTests, shouldAutoCollapseAgentGUIConversationRail, useAgentActivityRuntime, useAgentActivitySnapshot, useAgentQueuedPromptRuntime, useAgentQueuedPromptSessionSnapshot, useOptionalAgentActivityRuntime };
1003
+ export { AgentActivityHostProvider, type AgentActivityHostProviderProps, type AgentActivityRuntime, type AgentActivityRuntimeListSessionMessagesInput, type AgentActivityRuntimePromptContentBlock, AgentActivityRuntimeProvider, type AgentActivityRuntimeProviderProps, type AgentActivityRuntimeRetainSessionEventsInput, type AgentActivityRuntimeSetSessionPinnedInput, type AgentActivityRuntimeUpdateSessionSettingsInput, type AgentActivityRuntimeUploadPromptContentInput, type AgentActivityRuntimeUploadPromptContentResult, type AgentActivityRuntimeWarmupOpenclawGatewayInput, type AgentActivitySnapshotProjection, AgentContextMentionProvider, type AgentCustomMentionChipContext, type AgentCustomMentionIdentity, type AgentCustomMentionKindDefinition, type AgentCustomMentionPresentation, AgentGUI, type AgentGUIProps, AgentGUIProvider, type AgentGUIProviderRailEmptyRenderer, AgentGUIProviderRailMode, AgentGUIProviderReadinessGate, AgentGUIProviderTarget, AgentGUIProviderTargetRef, type AgentGUISidebarFooterContext, type AgentGUISidebarFooterRenderer, AgentGuiI18nLocale, AgentHostInputApi, AgentProbeSnapshot, AgentQueuedPromptQueueSnapshot, AgentQueuedPromptRuntime, AgentQueuedPromptRuntimeProvider, type AgentQueuedPromptRuntimeProviderProps, agentGUIDefaultTargetProviders, agentGuiDockIconUrl, agentGuiDockIconUrls, agentHostSnapshotFromAgentActivitySnapshot, buildAgentActivitySnapshotProjection, createLocalAgentGUIProviderTarget, createLocalAgentGUIProviderTargets, createSharedAgentGUIProviderTarget, getAgentActivityRuntime, getAgentCustomMentionKind, getOptionalAgentActivityRuntime, localAgentGUIAgentTargetId, localAgentGUIProviderTargetId, normalizeAgentGUIProviderTargets, projectCoreSessionStatus, registerAgentCustomMentionKind, resetAgentActivityRuntimeForTests, resetAgentCustomMentionKindsForTests, resetAgentQueuedPromptRuntimeForTests, resolveAgentGUIExpandedWindowFrame, resolveAgentGUIProviderTarget, setAgentActivityRuntimeForTests, setAgentQueuedPromptRuntimeForTests, shouldAutoCollapseAgentGUIConversationRail, useAgentActivityRuntime, useAgentActivitySnapshot, useAgentQueuedPromptRuntime, useAgentQueuedPromptSessionSnapshot, useOptionalAgentActivityRuntime };