@tutti-os/agent-gui 0.0.53 → 0.0.54

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 (79) hide show
  1. package/dist/{AgentMentionSearchController-CExFPobz.d.ts → AgentMentionSearchController-DzhWr0PN.d.ts} +13 -3
  2. package/dist/agent-conversation/index.d.ts +2 -2
  3. package/dist/agent-conversation/index.js +7 -6
  4. package/dist/agent-conversation/index.js.map +1 -1
  5. package/dist/agent-message-center/index.js +15 -12
  6. package/dist/agent-message-center/index.js.map +1 -1
  7. package/dist/{agentGuiNodeTypes-wzOITHRW.d.ts → agentGuiNodeTypes-DCnsaqJr.d.ts} +16 -2
  8. package/dist/app/renderer/agentactivity.css +136 -2
  9. package/dist/{chunk-ZTSS2NU2.js → chunk-2XVECUTU.js} +25 -1
  10. package/dist/chunk-2XVECUTU.js.map +1 -0
  11. package/dist/{chunk-OBFDA7RG.js → chunk-4PSDYKZQ.js} +20 -3
  12. package/dist/chunk-4PSDYKZQ.js.map +1 -0
  13. package/dist/{chunk-BFIYBPFD.js → chunk-6AXH2BOD.js} +5 -5
  14. package/dist/{chunk-4K22O34C.js → chunk-7GM7UQXD.js} +29 -3
  15. package/dist/chunk-7GM7UQXD.js.map +1 -0
  16. package/dist/{chunk-2OLYX32K.js → chunk-7ZDLFTVL.js} +76 -7
  17. package/dist/chunk-7ZDLFTVL.js.map +1 -0
  18. package/dist/{chunk-FYVVHRLZ.js → chunk-BGZ2OSDQ.js} +2 -2
  19. package/dist/{chunk-DPG2J7N5.js → chunk-CMOGPJ23.js} +2 -2
  20. package/dist/{chunk-3ZVVFQH5.js → chunk-EXZH66UE.js} +180 -88
  21. package/dist/chunk-EXZH66UE.js.map +1 -0
  22. package/dist/{chunk-66EQ6EQO.js → chunk-GL54NRMB.js} +59 -2
  23. package/dist/chunk-GL54NRMB.js.map +1 -0
  24. package/dist/{chunk-Y7ZVTWMZ.js → chunk-H2YWXFYX.js} +2 -2
  25. package/dist/{chunk-UKDC63WG.js → chunk-JRA44NYI.js} +78 -4
  26. package/dist/chunk-JRA44NYI.js.map +1 -0
  27. package/dist/{chunk-EFDGMXTB.js → chunk-OQJSZSYB.js} +48 -48
  28. package/dist/chunk-OQJSZSYB.js.map +1 -0
  29. package/dist/{chunk-GWHPTB4L.js → chunk-PBHTLI3E.js} +2 -2
  30. package/dist/{chunk-GWHPTB4L.js.map → chunk-PBHTLI3E.js.map} +1 -1
  31. package/dist/{chunk-5Y3PC7HP.js → chunk-VOXUYDQF.js} +238 -25
  32. package/dist/chunk-VOXUYDQF.js.map +1 -0
  33. package/dist/{chunk-HDBKB5RA.js → chunk-WMQN7SZC.js} +2 -58
  34. package/dist/chunk-WMQN7SZC.js.map +1 -0
  35. package/dist/{chunk-F5DYXCY3.js → chunk-Z2BTIAOC.js} +1 -1
  36. package/dist/chunk-Z2BTIAOC.js.map +1 -0
  37. package/dist/{chunk-PIKG746A.js → chunk-ZFDO72FE.js} +132 -67
  38. package/dist/chunk-ZFDO72FE.js.map +1 -0
  39. package/dist/context-mention-palette/index.d.ts +2 -2
  40. package/dist/context-mention-palette/index.js +8 -8
  41. package/dist/context-mention-provider.d.ts +1 -0
  42. package/dist/i18n/index.d.ts +24 -0
  43. package/dist/i18n/index.js +2 -2
  44. package/dist/index.d.ts +21 -53
  45. package/dist/index.js +832 -607
  46. package/dist/index.js.map +1 -1
  47. package/dist/queued-prompt-runtime.d.ts +2 -2
  48. package/dist/{types-xMz0lJWt.d.ts → types-B2m7UcBb.d.ts} +8 -0
  49. package/dist/workbench/contribution.d.ts +43 -4
  50. package/dist/workbench/contribution.js +9 -5
  51. package/dist/workbench/index.d.ts +3 -3
  52. package/dist/workbench/index.js +18 -8
  53. package/dist/workbench/launch.d.ts +2 -1
  54. package/dist/workbench/launch.js +2 -2
  55. package/dist/workbench/providerCatalog.d.ts +1 -1
  56. package/dist/workbench/sessionTitle.d.ts +1 -1
  57. package/dist/workbench/sessionTitle.js +3 -3
  58. package/dist/workbench/state.d.ts +1 -1
  59. package/dist/workbench/state.js +2 -2
  60. package/dist/workbench/types.d.ts +8 -8
  61. package/dist/workbench/types.js +1 -1
  62. package/dist/workspace-agent-generated-files.js +3 -3
  63. package/package.json +12 -12
  64. package/dist/chunk-2OLYX32K.js.map +0 -1
  65. package/dist/chunk-3ZVVFQH5.js.map +0 -1
  66. package/dist/chunk-4K22O34C.js.map +0 -1
  67. package/dist/chunk-5Y3PC7HP.js.map +0 -1
  68. package/dist/chunk-66EQ6EQO.js.map +0 -1
  69. package/dist/chunk-EFDGMXTB.js.map +0 -1
  70. package/dist/chunk-F5DYXCY3.js.map +0 -1
  71. package/dist/chunk-HDBKB5RA.js.map +0 -1
  72. package/dist/chunk-OBFDA7RG.js.map +0 -1
  73. package/dist/chunk-PIKG746A.js.map +0 -1
  74. package/dist/chunk-UKDC63WG.js.map +0 -1
  75. package/dist/chunk-ZTSS2NU2.js.map +0 -1
  76. /package/dist/{chunk-BFIYBPFD.js.map → chunk-6AXH2BOD.js.map} +0 -0
  77. /package/dist/{chunk-FYVVHRLZ.js.map → chunk-BGZ2OSDQ.js.map} +0 -0
  78. /package/dist/{chunk-DPG2J7N5.js.map → chunk-CMOGPJ23.js.map} +0 -0
  79. /package/dist/{chunk-Y7ZVTWMZ.js.map → chunk-H2YWXFYX.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  agentGuiWorkbenchOpenSessionActivationType,
3
3
  agentGuiWorkbenchPrefillPromptActivationType
4
- } from "./chunk-F5DYXCY3.js";
4
+ } from "./chunk-Z2BTIAOC.js";
5
5
  import {
6
6
  isAgentGuiWorkbenchProvider,
7
7
  normalizeAgentGuiWorkbenchProvider
@@ -32,6 +32,12 @@ function createAgentGuiWorkbenchInstanceId(input) {
32
32
  agentSessionId
33
33
  )}`;
34
34
  }
35
+ const agentTargetId = input.agentTargetId?.trim();
36
+ if (agentTargetId) {
37
+ return `${prefix}:target:${encodeAgentGuiWorkbenchInstanceSegment(
38
+ agentTargetId
39
+ )}`;
40
+ }
35
41
  agentGuiWorkbenchInstanceSequence += 1;
36
42
  return [
37
43
  prefix,
@@ -111,7 +117,10 @@ function createAgentGuiWorkbenchLaunchDescriptor(request) {
111
117
  type: agentGuiWorkbenchPrefillPromptActivationType
112
118
  },
113
119
  dockEntryId,
114
- instanceId: createAgentGuiWorkbenchInstanceId({ provider }),
120
+ instanceId: createAgentGuiWorkbenchInstanceId({
121
+ agentTargetId: agentTargetIdFromLaunchPayload(request.payload),
122
+ provider
123
+ }),
115
124
  openInNewWindow: false,
116
125
  provider,
117
126
  reuseDockEntryNode: shouldReuseAgentGuiWorkbenchDockEntryNode({
@@ -126,6 +135,7 @@ function createAgentGuiWorkbenchLaunchDescriptor(request) {
126
135
  const openInNewWindow = openInNewWindowFromLaunchPayload(request.payload);
127
136
  const instanceId = createAgentGuiWorkbenchInstanceId({
128
137
  agentSessionId: openInNewWindow ? null : targetAgentSessionId,
138
+ agentTargetId: openInNewWindow ? null : agentTargetIdFromLaunchPayload(request.payload),
129
139
  provider
130
140
  });
131
141
  return {
@@ -193,6 +203,13 @@ function agentSessionIdFromLaunchPayload(payload) {
193
203
  const agentSessionId = payload.agentSessionId;
194
204
  return typeof agentSessionId === "string" && agentSessionId.trim() ? agentSessionId.trim() : null;
195
205
  }
206
+ function agentTargetIdFromLaunchPayload(payload) {
207
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
208
+ return null;
209
+ }
210
+ const agentTargetId = payload.agentTargetId;
211
+ return typeof agentTargetId === "string" && agentTargetId.trim() ? agentTargetId.trim() : null;
212
+ }
196
213
  function openInNewWindowFromLaunchPayload(payload) {
197
214
  if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
198
215
  return false;
@@ -216,4 +233,4 @@ export {
216
233
  resolveAgentGuiWorkbenchLaunchDockEntryId,
217
234
  shouldReuseAgentGuiWorkbenchDockEntryNode
218
235
  };
219
- //# sourceMappingURL=chunk-OBFDA7RG.js.map
236
+ //# sourceMappingURL=chunk-4PSDYKZQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../workbench/launch.ts"],"sourcesContent":["import type { WorkbenchHostLaunchRequest } from \"@tutti-os/workbench-surface\";\nimport {\n isAgentGuiWorkbenchProvider,\n normalizeAgentGuiWorkbenchProvider\n} from \"./providerCatalog.ts\";\nimport {\n agentGuiWorkbenchOpenSessionActivationType,\n agentGuiWorkbenchPrefillPromptActivationType,\n type AgentGuiWorkbenchPrefillPromptPayload,\n type AgentGuiWorkbenchProvider\n} from \"./types.ts\";\n\nexport { agentGuiWorkbenchPrefillPromptActivationType } from \"./types.ts\";\n\ntype AgentGuiWorkbenchLaunchRequestInput = Pick<\n WorkbenchHostLaunchRequest,\n \"payload\" | \"typeId\"\n> & {\n dockEntryId?: string | null;\n};\n\nexport const agentGuiWorkbenchTypeId = \"agent-gui\";\n\nconst agentGuiWorkbenchDockEntryPrefix = \"agent-gui:\";\nconst agentGuiWorkbenchUnifiedDockEntryIdValue = \"agent-gui:unified\";\nlet agentGuiWorkbenchInstanceSequence = 0;\n\nexport type AgentGuiWorkbenchDockLayout = \"legacySplit\" | \"unified\";\n\nexport type AgentGuiWorkbenchDockIdentity =\n | {\n kind: \"legacyProvider\";\n provider: AgentGuiWorkbenchProvider;\n }\n | {\n kind: \"unifiedAggregate\";\n };\n\nexport function agentGuiWorkbenchDockEntryId(\n provider: AgentGuiWorkbenchProvider\n): string {\n return provider === \"codex\"\n ? agentGuiWorkbenchTypeId\n : `${agentGuiWorkbenchDockEntryPrefix}${provider}`;\n}\n\nexport function agentGuiWorkbenchUnifiedDockEntryId(): string {\n return agentGuiWorkbenchUnifiedDockEntryIdValue;\n}\n\nexport function agentGuiWorkbenchDockEntryIdForLayout(input: {\n dockLayout: AgentGuiWorkbenchDockLayout;\n provider: AgentGuiWorkbenchProvider;\n}): string {\n return input.dockLayout === \"unified\"\n ? agentGuiWorkbenchUnifiedDockEntryId()\n : agentGuiWorkbenchDockEntryId(input.provider);\n}\n\nexport function agentGuiWorkbenchInstanceId(\n provider: AgentGuiWorkbenchProvider\n): string {\n return `${agentGuiWorkbenchDockEntryPrefix}${provider}`;\n}\n\nexport function createAgentGuiWorkbenchInstanceId(input: {\n agentSessionId?: string | null;\n agentTargetId?: string | null;\n provider: AgentGuiWorkbenchProvider;\n}): string {\n const prefix = agentGuiWorkbenchInstanceId(input.provider);\n const agentSessionId = input.agentSessionId?.trim();\n if (agentSessionId) {\n return `${prefix}:session:${encodeAgentGuiWorkbenchInstanceSegment(\n agentSessionId\n )}`;\n }\n const agentTargetId = input.agentTargetId?.trim();\n if (agentTargetId) {\n return `${prefix}:target:${encodeAgentGuiWorkbenchInstanceSegment(\n agentTargetId\n )}`;\n }\n\n agentGuiWorkbenchInstanceSequence += 1;\n return [\n prefix,\n \"panel\",\n `${Date.now().toString(36)}-${agentGuiWorkbenchInstanceSequence.toString(36)}`\n ].join(\":\");\n}\n\nexport function agentGuiWorkbenchProviderFromIdentifier(\n value: string | null | undefined\n): AgentGuiWorkbenchProvider | null {\n const identity = agentGuiWorkbenchDockIdentityFromIdentifier(value);\n return identity?.kind === \"legacyProvider\" ? identity.provider : null;\n}\n\nexport function agentGuiWorkbenchDockIdentityFromIdentifier(\n value: string | null | undefined\n): AgentGuiWorkbenchDockIdentity | null {\n const normalized = value?.trim();\n if (!normalized) {\n return null;\n }\n if (normalized === agentGuiWorkbenchUnifiedDockEntryId()) {\n return { kind: \"unifiedAggregate\" };\n }\n if (normalized === agentGuiWorkbenchTypeId) {\n return { kind: \"legacyProvider\", provider: \"codex\" };\n }\n if (!normalized.startsWith(agentGuiWorkbenchDockEntryPrefix)) {\n return null;\n }\n const provider = normalized\n .slice(agentGuiWorkbenchDockEntryPrefix.length)\n .split(\":\", 1)[0];\n return isAgentGuiWorkbenchProvider(provider)\n ? { kind: \"legacyProvider\", provider }\n : null;\n}\n\nexport function agentGuiWorkbenchProviderFromLaunchRequest(\n request: AgentGuiWorkbenchLaunchRequestInput\n): AgentGuiWorkbenchProvider {\n const payloadProvider =\n request.payload &&\n typeof request.payload === \"object\" &&\n !Array.isArray(request.payload)\n ? (request.payload as { provider?: unknown }).provider\n : null;\n if (isAgentGuiWorkbenchProvider(payloadProvider)) {\n return payloadProvider;\n }\n return (\n agentGuiWorkbenchProviderFromIdentifier(request.dockEntryId) ??\n agentGuiWorkbenchProviderFromIdentifier(request.typeId) ??\n \"codex\"\n );\n}\n\nexport function createAgentGuiWorkbenchSessionLaunchRequest(input: {\n agentSessionId?: string;\n openInNewWindow?: boolean;\n provider: unknown;\n}) {\n const provider = normalizeAgentGuiWorkbenchProvider(input.provider);\n return {\n dockEntryId: agentGuiWorkbenchDockEntryId(provider),\n payload: {\n ...(input.agentSessionId ? { agentSessionId: input.agentSessionId } : {}),\n ...(input.openInNewWindow ? { openInNewWindow: true } : {}),\n provider\n },\n reason: \"host\" as const,\n typeId: agentGuiWorkbenchTypeId\n };\n}\n\nexport function createAgentGuiWorkbenchDraftLaunchRequest(input: {\n autoSubmit?: boolean;\n draftPrompt: string;\n provider: unknown;\n userProjectPath?: string | null;\n}) {\n const provider = normalizeAgentGuiWorkbenchProvider(input.provider);\n const userProjectPath = normalizeAgentGuiWorkbenchUserProjectPath(\n input.userProjectPath\n );\n return {\n dockEntryId: agentGuiWorkbenchDockEntryId(provider),\n payload: {\n draftPrompt: input.draftPrompt,\n provider,\n ...(input.autoSubmit ? { autoSubmit: true } : {}),\n ...(userProjectPath ? { userProjectPath } : {})\n },\n reason: \"host\" as const,\n typeId: agentGuiWorkbenchTypeId\n };\n}\n\nexport interface AgentGuiWorkbenchLaunchDescriptor {\n activation:\n | {\n payload: {\n agentSessionId: string;\n };\n type: typeof agentGuiWorkbenchOpenSessionActivationType;\n }\n | {\n payload: AgentGuiWorkbenchPrefillPromptPayload;\n type: typeof agentGuiWorkbenchPrefillPromptActivationType;\n }\n | null;\n dockEntryId: string;\n instanceId: string;\n openInNewWindow: boolean;\n provider: AgentGuiWorkbenchProvider;\n reuseDockEntryNode: boolean;\n reuseExistingSessionNode: boolean;\n targetAgentSessionId: string | null;\n}\n\nexport function createAgentGuiWorkbenchLaunchDescriptor(\n request: AgentGuiWorkbenchLaunchRequestInput\n): AgentGuiWorkbenchLaunchDescriptor {\n const provider = agentGuiWorkbenchProviderFromLaunchRequest(request);\n const dockEntryId = resolveAgentGuiWorkbenchLaunchDockEntryId({\n provider,\n requestedDockEntryId: request.dockEntryId\n });\n const prefillPrompt = prefillPromptFromLaunchPayload(request.payload);\n if (prefillPrompt) {\n return {\n activation: {\n payload: prefillPrompt,\n type: agentGuiWorkbenchPrefillPromptActivationType\n },\n dockEntryId,\n instanceId: createAgentGuiWorkbenchInstanceId({\n agentTargetId: agentTargetIdFromLaunchPayload(request.payload),\n provider\n }),\n openInNewWindow: false,\n provider,\n reuseDockEntryNode: shouldReuseAgentGuiWorkbenchDockEntryNode({\n dockEntryId,\n launchKind: \"prefill\"\n }),\n reuseExistingSessionNode: true,\n targetAgentSessionId: null\n };\n }\n\n const targetAgentSessionId = agentSessionIdFromLaunchPayload(request.payload);\n const openInNewWindow = openInNewWindowFromLaunchPayload(request.payload);\n const instanceId = createAgentGuiWorkbenchInstanceId({\n agentSessionId: openInNewWindow ? null : targetAgentSessionId,\n agentTargetId: openInNewWindow\n ? null\n : agentTargetIdFromLaunchPayload(request.payload),\n provider\n });\n\n return {\n activation: targetAgentSessionId\n ? {\n payload: {\n agentSessionId: targetAgentSessionId\n },\n type: agentGuiWorkbenchOpenSessionActivationType\n }\n : null,\n dockEntryId,\n instanceId,\n openInNewWindow,\n provider,\n reuseDockEntryNode: shouldReuseAgentGuiWorkbenchDockEntryNode({\n dockEntryId,\n launchKind: targetAgentSessionId ? \"session\" : \"empty\"\n }),\n reuseExistingSessionNode: !openInNewWindow,\n targetAgentSessionId\n };\n}\n\nexport function resolveAgentGuiWorkbenchLaunchDockEntryId(input: {\n provider: AgentGuiWorkbenchProvider;\n requestedDockEntryId?: string | null;\n}): string {\n const requestedIdentity = agentGuiWorkbenchDockIdentityFromIdentifier(\n input.requestedDockEntryId\n );\n if (requestedIdentity?.kind === \"unifiedAggregate\") {\n return agentGuiWorkbenchUnifiedDockEntryId();\n }\n return agentGuiWorkbenchDockEntryId(input.provider);\n}\n\nexport function shouldReuseAgentGuiWorkbenchDockEntryNode(input: {\n dockEntryId: string;\n launchKind: \"empty\" | \"prefill\" | \"session\";\n}): boolean {\n if (input.launchKind !== \"prefill\") {\n return false;\n }\n return (\n agentGuiWorkbenchDockIdentityFromIdentifier(input.dockEntryId)?.kind !==\n \"unifiedAggregate\"\n );\n}\n\nfunction encodeAgentGuiWorkbenchInstanceSegment(value: string): string {\n return encodeURIComponent(value.trim());\n}\n\nfunction prefillPromptFromLaunchPayload(\n payload: unknown\n): AgentGuiWorkbenchPrefillPromptPayload | null {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return null;\n }\n const draftPrompt = (payload as { draftPrompt?: unknown }).draftPrompt;\n if (typeof draftPrompt !== \"string\" || !draftPrompt.trim()) {\n return null;\n }\n const autoSubmit = (payload as { autoSubmit?: unknown }).autoSubmit === true;\n const userProjectPath = (payload as { userProjectPath?: unknown })\n .userProjectPath;\n const normalizedUserProjectPath =\n typeof userProjectPath === \"string\"\n ? normalizeAgentGuiWorkbenchUserProjectPath(userProjectPath)\n : null;\n return {\n draftPrompt,\n ...(autoSubmit ? { autoSubmit: true } : {}),\n ...(normalizedUserProjectPath\n ? { userProjectPath: normalizedUserProjectPath }\n : {})\n };\n}\n\nfunction normalizeAgentGuiWorkbenchUserProjectPath(\n value: string | null | undefined\n): string | null {\n const normalized = value?.trim().replaceAll(\"\\\\\", \"/\").replace(/\\/+$/, \"\");\n return normalized ? normalized : null;\n}\n\nfunction agentSessionIdFromLaunchPayload(payload: unknown): string | null {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return null;\n }\n const agentSessionId = (payload as { agentSessionId?: unknown })\n .agentSessionId;\n return typeof agentSessionId === \"string\" && agentSessionId.trim()\n ? agentSessionId.trim()\n : null;\n}\n\nfunction agentTargetIdFromLaunchPayload(payload: unknown): string | null {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return null;\n }\n const agentTargetId = (payload as { agentTargetId?: unknown }).agentTargetId;\n return typeof agentTargetId === \"string\" && agentTargetId.trim()\n ? agentTargetId.trim()\n : null;\n}\n\nfunction openInNewWindowFromLaunchPayload(payload: unknown): boolean {\n if (!payload || typeof payload !== \"object\" || Array.isArray(payload)) {\n return false;\n }\n return (payload as { openInNewWindow?: unknown }).openInNewWindow === true;\n}\n"],"mappings":";;;;;;;;;;AAqBO,IAAM,0BAA0B;AAEvC,IAAM,mCAAmC;AACzC,IAAM,2CAA2C;AACjD,IAAI,oCAAoC;AAajC,SAAS,6BACd,UACQ;AACR,SAAO,aAAa,UAChB,0BACA,GAAG,gCAAgC,GAAG,QAAQ;AACpD;AAEO,SAAS,sCAA8C;AAC5D,SAAO;AACT;AAEO,SAAS,sCAAsC,OAG3C;AACT,SAAO,MAAM,eAAe,YACxB,oCAAoC,IACpC,6BAA6B,MAAM,QAAQ;AACjD;AAEO,SAAS,4BACd,UACQ;AACR,SAAO,GAAG,gCAAgC,GAAG,QAAQ;AACvD;AAEO,SAAS,kCAAkC,OAIvC;AACT,QAAM,SAAS,4BAA4B,MAAM,QAAQ;AACzD,QAAM,iBAAiB,MAAM,gBAAgB,KAAK;AAClD,MAAI,gBAAgB;AAClB,WAAO,GAAG,MAAM,YAAY;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AACA,QAAM,gBAAgB,MAAM,eAAe,KAAK;AAChD,MAAI,eAAe;AACjB,WAAO,GAAG,MAAM,WAAW;AAAA,MACzB;AAAA,IACF,CAAC;AAAA,EACH;AAEA,uCAAqC;AACrC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,GAAG,KAAK,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,kCAAkC,SAAS,EAAE,CAAC;AAAA,EAC9E,EAAE,KAAK,GAAG;AACZ;AAEO,SAAS,wCACd,OACkC;AAClC,QAAM,WAAW,4CAA4C,KAAK;AAClE,SAAO,UAAU,SAAS,mBAAmB,SAAS,WAAW;AACnE;AAEO,SAAS,4CACd,OACsC;AACtC,QAAM,aAAa,OAAO,KAAK;AAC/B,MAAI,CAAC,YAAY;AACf,WAAO;AAAA,EACT;AACA,MAAI,eAAe,oCAAoC,GAAG;AACxD,WAAO,EAAE,MAAM,mBAAmB;AAAA,EACpC;AACA,MAAI,eAAe,yBAAyB;AAC1C,WAAO,EAAE,MAAM,kBAAkB,UAAU,QAAQ;AAAA,EACrD;AACA,MAAI,CAAC,WAAW,WAAW,gCAAgC,GAAG;AAC5D,WAAO;AAAA,EACT;AACA,QAAM,WAAW,WACd,MAAM,iCAAiC,MAAM,EAC7C,MAAM,KAAK,CAAC,EAAE,CAAC;AAClB,SAAO,4BAA4B,QAAQ,IACvC,EAAE,MAAM,kBAAkB,SAAS,IACnC;AACN;AAEO,SAAS,2CACd,SAC2B;AAC3B,QAAM,kBACJ,QAAQ,WACR,OAAO,QAAQ,YAAY,YAC3B,CAAC,MAAM,QAAQ,QAAQ,OAAO,IACzB,QAAQ,QAAmC,WAC5C;AACN,MAAI,4BAA4B,eAAe,GAAG;AAChD,WAAO;AAAA,EACT;AACA,SACE,wCAAwC,QAAQ,WAAW,KAC3D,wCAAwC,QAAQ,MAAM,KACtD;AAEJ;AAEO,SAAS,4CAA4C,OAIzD;AACD,QAAM,WAAW,mCAAmC,MAAM,QAAQ;AAClE,SAAO;AAAA,IACL,aAAa,6BAA6B,QAAQ;AAAA,IAClD,SAAS;AAAA,MACP,GAAI,MAAM,iBAAiB,EAAE,gBAAgB,MAAM,eAAe,IAAI,CAAC;AAAA,MACvE,GAAI,MAAM,kBAAkB,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAAA,MACzD;AAAA,IACF;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAEO,SAAS,0CAA0C,OAKvD;AACD,QAAM,WAAW,mCAAmC,MAAM,QAAQ;AAClE,QAAM,kBAAkB;AAAA,IACtB,MAAM;AAAA,EACR;AACA,SAAO;AAAA,IACL,aAAa,6BAA6B,QAAQ;AAAA,IAClD,SAAS;AAAA,MACP,aAAa,MAAM;AAAA,MACnB;AAAA,MACA,GAAI,MAAM,aAAa,EAAE,YAAY,KAAK,IAAI,CAAC;AAAA,MAC/C,GAAI,kBAAkB,EAAE,gBAAgB,IAAI,CAAC;AAAA,IAC/C;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,EACV;AACF;AAwBO,SAAS,wCACd,SACmC;AACnC,QAAM,WAAW,2CAA2C,OAAO;AACnE,QAAM,cAAc,0CAA0C;AAAA,IAC5D;AAAA,IACA,sBAAsB,QAAQ;AAAA,EAChC,CAAC;AACD,QAAM,gBAAgB,+BAA+B,QAAQ,OAAO;AACpE,MAAI,eAAe;AACjB,WAAO;AAAA,MACL,YAAY;AAAA,QACV,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,MACA;AAAA,MACA,YAAY,kCAAkC;AAAA,QAC5C,eAAe,+BAA+B,QAAQ,OAAO;AAAA,QAC7D;AAAA,MACF,CAAC;AAAA,MACD,iBAAiB;AAAA,MACjB;AAAA,MACA,oBAAoB,0CAA0C;AAAA,QAC5D;AAAA,QACA,YAAY;AAAA,MACd,CAAC;AAAA,MACD,0BAA0B;AAAA,MAC1B,sBAAsB;AAAA,IACxB;AAAA,EACF;AAEA,QAAM,uBAAuB,gCAAgC,QAAQ,OAAO;AAC5E,QAAM,kBAAkB,iCAAiC,QAAQ,OAAO;AACxE,QAAM,aAAa,kCAAkC;AAAA,IACnD,gBAAgB,kBAAkB,OAAO;AAAA,IACzC,eAAe,kBACX,OACA,+BAA+B,QAAQ,OAAO;AAAA,IAClD;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL,YAAY,uBACR;AAAA,MACE,SAAS;AAAA,QACP,gBAAgB;AAAA,MAClB;AAAA,MACA,MAAM;AAAA,IACR,IACA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB,0CAA0C;AAAA,MAC5D;AAAA,MACA,YAAY,uBAAuB,YAAY;AAAA,IACjD,CAAC;AAAA,IACD,0BAA0B,CAAC;AAAA,IAC3B;AAAA,EACF;AACF;AAEO,SAAS,0CAA0C,OAG/C;AACT,QAAM,oBAAoB;AAAA,IACxB,MAAM;AAAA,EACR;AACA,MAAI,mBAAmB,SAAS,oBAAoB;AAClD,WAAO,oCAAoC;AAAA,EAC7C;AACA,SAAO,6BAA6B,MAAM,QAAQ;AACpD;AAEO,SAAS,0CAA0C,OAG9C;AACV,MAAI,MAAM,eAAe,WAAW;AAClC,WAAO;AAAA,EACT;AACA,SACE,4CAA4C,MAAM,WAAW,GAAG,SAChE;AAEJ;AAEA,SAAS,uCAAuC,OAAuB;AACrE,SAAO,mBAAmB,MAAM,KAAK,CAAC;AACxC;AAEA,SAAS,+BACP,SAC8C;AAC9C,MAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACrE,WAAO;AAAA,EACT;AACA,QAAM,cAAe,QAAsC;AAC3D,MAAI,OAAO,gBAAgB,YAAY,CAAC,YAAY,KAAK,GAAG;AAC1D,WAAO;AAAA,EACT;AACA,QAAM,aAAc,QAAqC,eAAe;AACxE,QAAM,kBAAmB,QACtB;AACH,QAAM,4BACJ,OAAO,oBAAoB,WACvB,0CAA0C,eAAe,IACzD;AACN,SAAO;AAAA,IACL;AAAA,IACA,GAAI,aAAa,EAAE,YAAY,KAAK,IAAI,CAAC;AAAA,IACzC,GAAI,4BACA,EAAE,iBAAiB,0BAA0B,IAC7C,CAAC;AAAA,EACP;AACF;AAEA,SAAS,0CACP,OACe;AACf,QAAM,aAAa,OAAO,KAAK,EAAE,WAAW,MAAM,GAAG,EAAE,QAAQ,QAAQ,EAAE;AACzE,SAAO,aAAa,aAAa;AACnC;AAEA,SAAS,gCAAgC,SAAiC;AACxE,MAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACrE,WAAO;AAAA,EACT;AACA,QAAM,iBAAkB,QACrB;AACH,SAAO,OAAO,mBAAmB,YAAY,eAAe,KAAK,IAC7D,eAAe,KAAK,IACpB;AACN;AAEA,SAAS,+BAA+B,SAAiC;AACvE,MAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACrE,WAAO;AAAA,EACT;AACA,QAAM,gBAAiB,QAAwC;AAC/D,SAAO,OAAO,kBAAkB,YAAY,cAAc,KAAK,IAC3D,cAAc,KAAK,IACnB;AACN;AAEA,SAAS,iCAAiC,SAA2B;AACnE,MAAI,CAAC,WAAW,OAAO,YAAY,YAAY,MAAM,QAAQ,OAAO,GAAG;AACrE,WAAO;AAAA,EACT;AACA,SAAQ,QAA0C,oBAAoB;AACxE;","names":[]}
@@ -7,17 +7,17 @@ import {
7
7
  AgentGUIConversation_styles_default,
8
8
  MessageSquareMoreIcon,
9
9
  extractAgentMcpToolTarget
10
- } from "./chunk-PIKG746A.js";
10
+ } from "./chunk-ZFDO72FE.js";
11
11
  import {
12
12
  Spinner
13
- } from "./chunk-HDBKB5RA.js";
13
+ } from "./chunk-WMQN7SZC.js";
14
14
  import {
15
15
  getOptionalAgentHostApi,
16
16
  useOptionalAgentHostApi
17
- } from "./chunk-66EQ6EQO.js";
17
+ } from "./chunk-GL54NRMB.js";
18
18
  import {
19
19
  translate
20
- } from "./chunk-Y7ZVTWMZ.js";
20
+ } from "./chunk-H2YWXFYX.js";
21
21
 
22
22
  // shared/agentConversation/approvalOptionPresentation.ts
23
23
  function approvalOptionDisplayLabel(option, intent = {}) {
@@ -1150,4 +1150,4 @@ export {
1150
1150
  isPromptRequestIdTitle,
1151
1151
  AgentInteractivePromptSurface
1152
1152
  };
1153
- //# sourceMappingURL=chunk-BFIYBPFD.js.map
1153
+ //# sourceMappingURL=chunk-6AXH2BOD.js.map
@@ -16,8 +16,11 @@ var agentGUIDefaultTargetProviders = [
16
16
  "openclaw"
17
17
  ];
18
18
  function createLocalAgentGUIProviderTarget(provider) {
19
+ const targetId = localAgentGUIProviderTargetId(provider);
20
+ const agentTargetId = localAgentGUIAgentTargetId(provider);
19
21
  return {
20
- targetId: localAgentGUIProviderTargetId(provider),
22
+ targetId,
23
+ ...agentTargetId ? { agentTargetId } : {},
21
24
  provider,
22
25
  ref: {
23
26
  kind: "local",
@@ -34,6 +37,16 @@ function createLocalAgentGUIProviderTargets(providers = agentGUIDefaultTargetPro
34
37
  function localAgentGUIProviderTargetId(provider) {
35
38
  return `local:${provider}`;
36
39
  }
40
+ function localAgentGUIAgentTargetId(provider) {
41
+ switch (provider) {
42
+ case "codex":
43
+ return "local:codex";
44
+ case "claude-code":
45
+ return "local:claude-code";
46
+ default:
47
+ return null;
48
+ }
49
+ }
37
50
  function normalizeAgentGUIProviderTargets(targets, options) {
38
51
  const fallbackToLocal = options?.fallbackToLocal !== false;
39
52
  const source = targets && targets.length > 0 ? targets : [];
@@ -54,13 +67,24 @@ function normalizeAgentGUIProviderTargets(targets, options) {
54
67
  return normalizedTargets.length > 0 || !fallbackToLocal ? normalizedTargets : createLocalAgentGUIProviderTargets();
55
68
  }
56
69
  function resolveAgentGUIProviderTarget(input) {
70
+ const targetByAgentTargetId = new Map(
71
+ input.providerTargets.flatMap(
72
+ (target) => target.agentTargetId ? [[target.agentTargetId, target]] : []
73
+ )
74
+ );
75
+ const agentTarget = targetByAgentTargetId.get(
76
+ input.agentTargetId?.trim() ?? ""
77
+ );
78
+ if (agentTarget) {
79
+ return agentTarget;
80
+ }
57
81
  const providerTargets = input.providerTargets.filter(
58
82
  (target) => target.provider === input.provider
59
83
  );
60
84
  const targetById = new Map(
61
85
  providerTargets.map((target) => [target.targetId, target])
62
86
  );
63
- return targetById.get(input.providerTargetId?.trim() ?? "") ?? targetById.get(input.defaultProviderTargetId?.trim() ?? "") ?? targetById.get(localAgentGUIProviderTargetId(input.provider)) ?? providerTargets.find((target) => target.disabled !== true) ?? providerTargets[0] ?? createLocalAgentGUIProviderTarget(input.provider);
87
+ return targetById.get(input.providerTargetId?.trim() ?? "") ?? targetById.get(input.defaultProviderTargetId?.trim() ?? "") ?? targetById.get(localAgentGUIProviderTargetId(input.provider)) ?? providerTargets.find((target) => target.disabled !== true) ?? providerTargets[0] ?? (input.fallbackToLocal === false ? null : createLocalAgentGUIProviderTarget(input.provider));
64
88
  }
65
89
  function agentGUIProviderTargetRefsEqual(left, right) {
66
90
  if (left === right) {
@@ -76,6 +100,7 @@ function agentGUIProviderTargetRefsEqual(left, right) {
76
100
  }
77
101
  function normalizeAgentGUIProviderTarget(target) {
78
102
  const targetId = target.targetId.trim();
103
+ const agentTargetId = target.agentTargetId?.trim();
79
104
  const label = target.label.trim();
80
105
  const kind = typeof target.ref.kind === "string" ? target.ref.kind.trim() : "";
81
106
  if (!targetId || !label || !kind || target.ref.provider !== target.provider) {
@@ -84,6 +109,7 @@ function normalizeAgentGUIProviderTarget(target) {
84
109
  return {
85
110
  ...target,
86
111
  targetId,
112
+ ...agentTargetId ? { agentTargetId } : {},
87
113
  provider: target.provider,
88
114
  ref: {
89
115
  ...target.ref,
@@ -120,4 +146,4 @@ export {
120
146
  resolveAgentGUIProviderTarget,
121
147
  agentGUIProviderTargetRefsEqual
122
148
  };
123
- //# sourceMappingURL=chunk-4K22O34C.js.map
149
+ //# sourceMappingURL=chunk-7GM7UQXD.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 agentGUIProviderTargetFallbackLabels: Record<AgentGUIProvider, string> = {\n \"claude-code\": \"Claude Code\",\n codex: \"Codex\",\n gemini: \"Gemini\",\n hermes: \"Hermes\",\n nexight: \"Nexight\",\n openclaw: \"OpenClaw\"\n};\n\nexport const agentGUIDefaultTargetProviders = [\n \"codex\",\n \"claude-code\",\n \"nexight\",\n \"hermes\",\n \"gemini\",\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: agentGUIProviderTargetFallbackLabels[provider] ?? provider\n };\n}\n\nexport function createLocalAgentGUIProviderTargets(\n providers: readonly AgentGUIProvider[] = agentGUIDefaultTargetProviders\n): AgentGUIProviderTarget[] {\n return providers.map((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 default:\n return null;\n }\n}\n\nexport function normalizeAgentGUIProviderTargets(\n targets: readonly AgentGUIProviderTarget[] | null | undefined,\n options?: { fallbackToLocal?: boolean }\n): AgentGUIProviderTarget[] {\n const fallbackToLocal = options?.fallbackToLocal !== false;\n const source = targets && targets.length > 0 ? targets : [];\n const normalizedTargets: AgentGUIProviderTarget[] = [];\n const seenTargetKeys = new Set<string>();\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 normalizedTargets.push(normalized);\n }\n return normalizedTargets.length > 0 || !fallbackToLocal\n ? normalizedTargets\n : createLocalAgentGUIProviderTargets();\n}\n\nexport function resolveAgentGUIProviderTarget(input: {\n agentTargetId?: string | null;\n defaultProviderTargetId?: string | null;\n fallbackToLocal?: boolean;\n provider: AgentGUIProvider;\n providerTargetId?: string | null;\n providerTargets: readonly AgentGUIProviderTarget[];\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.fallbackToLocal === 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 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 ...target,\n targetId,\n ...(agentTargetId ? { agentTargetId } : {}),\n provider: target.provider,\n ref: {\n ...target.ref,\n kind,\n provider: target.provider\n },\n label,\n ...(target.description?.trim()\n ? { description: target.description.trim() }\n : {}),\n ...(target.ownerLabel?.trim()\n ? { ownerLabel: target.ownerLabel.trim() }\n : {}),\n ...(target.unavailableReason?.trim()\n ? { unavailableReason: target.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":[]}
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  Spinner,
3
- managedAgentRoundedIconUrl,
4
3
  userAvatarPlaceholderUrl,
5
4
  workspaceAgentActivityStatusLabel
6
- } from "./chunk-HDBKB5RA.js";
5
+ } from "./chunk-WMQN7SZC.js";
7
6
  import {
8
7
  normalizeAgentSessionMentionTitle
9
- } from "./chunk-UKDC63WG.js";
8
+ } from "./chunk-JRA44NYI.js";
10
9
  import {
11
10
  resolveAgentMentionFileThumbnailUrl,
12
11
  resolveAgentMentionFileVisualKind
13
12
  } from "./chunk-LUGELG5V.js";
14
13
  import {
15
- getOptionalAgentHostApi
16
- } from "./chunk-66EQ6EQO.js";
14
+ getOptionalAgentHostApi,
15
+ managedAgentRoundedIconUrl
16
+ } from "./chunk-GL54NRMB.js";
17
17
  import {
18
18
  AGENT_CONTEXT_MENTION_PROVIDER_IDS
19
19
  } from "./chunk-JM24HADP.js";
20
20
  import {
21
21
  translate
22
- } from "./chunk-Y7ZVTWMZ.js";
22
+ } from "./chunk-H2YWXFYX.js";
23
23
 
24
24
  // agent-gui/agentGuiNode/agentMentionAgentGeneratedFilesPresentation.ts
25
25
  var AGENT_GENERATED_FOLDER_MIN_FILES = 2;
@@ -288,6 +288,8 @@ function agentMentionGroupLabel(groupId) {
288
288
  switch (groupId) {
289
289
  case "apps":
290
290
  return translate("agentHost.agentGui.mentionGroupApps");
291
+ case "agents":
292
+ return translate("agentHost.agentGui.mentionGroupAgents");
291
293
  case "files":
292
294
  return translate("agentHost.agentGui.mentionGroupFiles");
293
295
  case "opened_files":
@@ -306,6 +308,8 @@ function agentMentionFilterLabel(filter) {
306
308
  switch (filter) {
307
309
  case "app":
308
310
  return translate("agentHost.agentGui.mentionFilterApp");
311
+ case "agent":
312
+ return translate("agentHost.agentGui.mentionFilterAgent");
309
313
  case "file":
310
314
  return translate("agentHost.agentGui.mentionFilterFile");
311
315
  case "session":
@@ -324,6 +328,9 @@ function agentMentionEmptyGroupLabel(groupId, query) {
324
328
  if (groupId === "apps") {
325
329
  return translate("agentHost.agentGui.mentionEmptyApps");
326
330
  }
331
+ if (groupId === "agents") {
332
+ return translate("agentHost.agentGui.mentionEmptyAgents");
333
+ }
327
334
  if (groupId === "my_sessions") {
328
335
  return translate("agentHost.agentGui.mentionEmptyMySessions");
329
336
  }
@@ -342,6 +349,7 @@ var AGENT_MENTION_FILTER_TAB_ORDER = [
342
349
  "session",
343
350
  "file",
344
351
  "issue",
352
+ "agent",
345
353
  "app"
346
354
  ];
347
355
  var DEFAULT_AGENT_MENTION_FILTER = "session";
@@ -359,6 +367,8 @@ function mentionGroupExpandCount(group, filter) {
359
367
  }
360
368
  function groupIdsForFilter(filter) {
361
369
  switch (filter) {
370
+ case "agent":
371
+ return ["agents"];
362
372
  case "app":
363
373
  return ["apps"];
364
374
  case "file":
@@ -380,6 +390,9 @@ function shouldShowEmptyGroup(groupId, filter, query) {
380
390
  if (groupId === "apps") {
381
391
  return filter === "app";
382
392
  }
393
+ if (groupId === "agents") {
394
+ return filter === "agent";
395
+ }
383
396
  if (groupId === "my_sessions") {
384
397
  return filter === "session";
385
398
  }
@@ -470,6 +483,7 @@ function buildBrowseCategories() {
470
483
  var {
471
484
  agentGeneratedFile: AGENT_GENERATED_FILE_PROVIDER_ID2,
472
485
  agentSession: AGENT_SESSION_PROVIDER_ID2,
486
+ agentTarget: AGENT_TARGET_PROVIDER_ID,
473
487
  file: FILE_PROVIDER_ID2,
474
488
  workspaceApp: WORKSPACE_APP_PROVIDER_ID2,
475
489
  workspaceIssue: WORKSPACE_ISSUE_PROVIDER_ID2
@@ -1178,6 +1192,25 @@ var AgentMentionSearchController = class {
1178
1192
  totalCounts: totalCountsFromRawGroups(rawGroups)
1179
1193
  };
1180
1194
  }
1195
+ case "agent": {
1196
+ const agentItems = await this.queryProviderMentionItemsById({
1197
+ providerId: AGENT_TARGET_PROVIDER_ID,
1198
+ workspaceId: input.workspaceId,
1199
+ currentUserId: input.currentUserId,
1200
+ query: input.query,
1201
+ sessionCwd: input.sessionCwd,
1202
+ diagnostics: providerDiagnostics
1203
+ });
1204
+ const rawGroups = emptyAgentMentionRawGroups();
1205
+ rawGroups.agents = agentItems.filter(
1206
+ (item) => item.kind === "agent-target"
1207
+ );
1208
+ return {
1209
+ providerDiagnostics,
1210
+ rawGroups,
1211
+ totalCounts: totalCountsFromRawGroups(rawGroups)
1212
+ };
1213
+ }
1181
1214
  case "app": {
1182
1215
  const appItems = await this.queryProviderMentionItemsById({
1183
1216
  providerId: WORKSPACE_APP_PROVIDER_ID2,
@@ -1400,6 +1433,7 @@ var AgentMentionSearchController = class {
1400
1433
  "agent_generated_files",
1401
1434
  "my_sessions",
1402
1435
  "collab_sessions",
1436
+ "agents",
1403
1437
  "apps",
1404
1438
  "issues"
1405
1439
  ]) {
@@ -1427,6 +1461,7 @@ var AgentMentionSearchController = class {
1427
1461
  "agent_generated_files",
1428
1462
  "my_sessions",
1429
1463
  "collab_sessions",
1464
+ "agents",
1430
1465
  "apps",
1431
1466
  "issues"
1432
1467
  ]) {
@@ -1454,6 +1489,7 @@ function preloadAgentMentionBrowse(input) {
1454
1489
  function emptyAgentMentionRawGroups() {
1455
1490
  return {
1456
1491
  apps: [],
1492
+ agents: [],
1457
1493
  opened_files: [],
1458
1494
  agent_generated_files: [],
1459
1495
  my_sessions: [],
@@ -1464,6 +1500,7 @@ function emptyAgentMentionRawGroups() {
1464
1500
  function cloneAgentMentionRawGroups(rawGroups) {
1465
1501
  return {
1466
1502
  apps: [...rawGroups.apps],
1503
+ agents: [...rawGroups.agents],
1467
1504
  opened_files: [...rawGroups.opened_files],
1468
1505
  agent_generated_files: [...rawGroups.agent_generated_files],
1469
1506
  my_sessions: [...rawGroups.my_sessions],
@@ -1474,6 +1511,7 @@ function cloneAgentMentionRawGroups(rawGroups) {
1474
1511
  function totalCountsFromRawGroups(rawGroups) {
1475
1512
  return {
1476
1513
  apps: rawGroups.apps.length,
1514
+ agents: rawGroups.agents.length,
1477
1515
  opened_files: rawGroups.opened_files.length,
1478
1516
  agent_generated_files: rawGroups.agent_generated_files.length,
1479
1517
  my_sessions: rawGroups.my_sessions.length,
@@ -1612,6 +1650,24 @@ function providerItemToAgentMentionItem(input) {
1612
1650
  referencesListSupported: presentation.referencesListSupported === "true"
1613
1651
  };
1614
1652
  }
1653
+ if (input.providerId === AGENT_TARGET_PROVIDER_ID) {
1654
+ const agentProviderId = presentation.agentProviderId?.trim() || void 0;
1655
+ return {
1656
+ kind: "agent-target",
1657
+ href: createRichTextMentionHref2({
1658
+ providerId: "agent-target",
1659
+ entityId: targetId,
1660
+ label,
1661
+ scope: { workspaceId }
1662
+ }),
1663
+ workspaceId,
1664
+ targetId,
1665
+ name: label,
1666
+ description: compactText(presentation.description) || compactText(presentation.subtitle) || compactText(input.subtitle) || void 0,
1667
+ agentProviderId,
1668
+ iconUrl: presentation.iconUrl?.trim() || void 0
1669
+ };
1670
+ }
1615
1671
  if (input.providerId === AGENT_SESSION_PROVIDER_ID2) {
1616
1672
  const agentName = presentation.subtitle?.trim() || "";
1617
1673
  const title = normalizeAgentSessionMentionTitle(label) || label;
@@ -1945,6 +2001,9 @@ function resolveMentionPaletteEmptyLabel(input) {
1945
2001
  if (input.filter === "app") {
1946
2002
  return agentMentionEmptyGroupLabel("apps", input.query);
1947
2003
  }
2004
+ if (input.filter === "agent") {
2005
+ return agentMentionEmptyGroupLabel("agents", input.query);
2006
+ }
1948
2007
  if (input.filter === "issue") {
1949
2008
  return agentMentionEmptyGroupLabel("issues", input.query);
1950
2009
  }
@@ -2004,6 +2063,14 @@ function agentMentionItemToRowItem(item) {
2004
2063
  iconUrl: item.iconUrl ?? null
2005
2064
  };
2006
2065
  }
2066
+ if (item.kind === "agent-target") {
2067
+ return {
2068
+ kind: "app",
2069
+ name: item.name,
2070
+ description: item.description ?? null,
2071
+ iconUrl: item.iconUrl ?? managedAgentRoundedIconUrl(item.agentProviderId)
2072
+ };
2073
+ }
2007
2074
  if (item.kind === "workspace-reference") {
2008
2075
  return {
2009
2076
  kind: "app",
@@ -2086,6 +2153,8 @@ function mentionStatusTone(status) {
2086
2153
  }
2087
2154
  function browseHintForFilter(filter) {
2088
2155
  switch (filter) {
2156
+ case "agent":
2157
+ return translate("agentHost.agentGui.contextPickerBrowseAgentHint");
2089
2158
  case "app":
2090
2159
  return translate("agentHost.agentGui.contextPickerBrowseAppHint");
2091
2160
  case "file":
@@ -2134,4 +2203,4 @@ export {
2134
2203
  AgentFileMentionPalette,
2135
2204
  AgentContextMentionPalette
2136
2205
  };
2137
- //# sourceMappingURL=chunk-2OLYX32K.js.map
2206
+ //# sourceMappingURL=chunk-7ZDLFTVL.js.map