@qredence/fleet 0.5.1 → 0.5.7

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 (200) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/bin/fleet-prime.mjs +6 -0
  3. package/dist/web/client/assets/action-swap-roll-BB8DFMuf.js +1 -0
  4. package/dist/web/client/assets/agent-activity-CDcDNVC6.js +1 -0
  5. package/dist/web/client/assets/agent-disclosure-B8SnhQXL.js +1 -0
  6. package/dist/web/client/assets/analytics-stub-B8MIkiDB.js +1 -0
  7. package/dist/web/client/assets/{artifacts-panel-CX62LQ13.js → artifacts-panel-CmHYXfoo.js} +1 -1
  8. package/dist/web/client/assets/button-BV9NafmI.js +1 -0
  9. package/dist/web/client/assets/{chat-CsepBQwy.js → chat-W-yOMyG_.js} +1 -1
  10. package/dist/web/client/assets/chat-command-palette-DiG-i3uJ.js +1 -0
  11. package/dist/web/client/assets/check-JjHKAZas.js +1 -0
  12. package/dist/web/client/assets/chevron-up-CnSvySGH.js +1 -0
  13. package/dist/web/client/assets/circle-alert-CONlFReH.js +1 -0
  14. package/dist/web/client/assets/circle-x-CkKCB__4.js +1 -0
  15. package/dist/web/client/assets/citations-CpTFUvx7.js +2 -0
  16. package/dist/web/client/assets/collapsible-BoXtZZWN.js +1 -0
  17. package/dist/web/client/assets/command-Cx-UYeQ9.js +1 -0
  18. package/dist/web/client/assets/createBaseUIEventDetails-DV0dQrBX.js +1 -0
  19. package/dist/web/client/assets/dialog-Dh7WpGIu.js +1 -0
  20. package/dist/web/client/assets/dist-BPaFisIZ.js +41 -0
  21. package/dist/web/client/assets/earth-DGZXAN5r.js +1 -0
  22. package/dist/web/client/assets/ease-u56MhKYS.js +1 -0
  23. package/dist/web/client/assets/file-text-T-NcAlZs.js +1 -0
  24. package/dist/web/client/assets/fleet-message-queue-B6zAK-hX.js +1 -0
  25. package/dist/web/client/assets/{fleet-pi-tool-renderer-BD_ZAjlG.js → fleet-pi-tool-renderer-Btq9mDUe.js} +29 -29
  26. package/dist/web/client/assets/fleet-reasoning-panel-MtbSdoCv.js +1 -0
  27. package/dist/web/client/assets/fleet-subagent-list-iszvrvy_.js +1 -0
  28. package/dist/web/client/assets/fleet-tool-timeline-COzPrwr8.js +1 -0
  29. package/dist/web/client/assets/{fork-picker-dialog-C2cVJUbf.js → fork-picker-dialog-CAhWx0G5.js} +1 -1
  30. package/dist/web/client/assets/gauge-DNpstbBn.js +1 -0
  31. package/dist/web/client/assets/generative-text-renderer-C1JrmYfx.js +6 -0
  32. package/dist/web/client/assets/globals-Bfr0jrPq.css +2 -0
  33. package/dist/web/client/assets/horizontal-resize-Bl3AyBJg.js +1 -0
  34. package/dist/web/client/assets/image-BbPmlw-n.js +1 -0
  35. package/dist/web/client/assets/index-QgUwd4m8.js +12 -0
  36. package/dist/web/client/assets/input-Bol3TP4v.js +1 -0
  37. package/dist/web/client/assets/input-group-D5gi9zBK.js +1 -0
  38. package/dist/web/client/assets/{ipython-tool-BfeIa0nK.js → ipython-tool-BrMePqD-.js} +1 -1
  39. package/dist/web/client/assets/{markdown-DG7pUdsX.js → markdown-RD_ydkyD.js} +2 -2
  40. package/dist/web/client/assets/{markdown-code-BgMzpy7O.js → markdown-code-ETqXqY8E.js} +1 -1
  41. package/dist/web/client/assets/message-square-hbDao-A1.js +1 -0
  42. package/dist/web/client/assets/model-selector-list-CJY9pyt2.js +1 -0
  43. package/dist/web/client/assets/notify-DKTqXChG.js +1 -0
  44. package/dist/web/client/assets/{openui-renderer-DlUo6ehT.js → openui-renderer-BZMghkzQ.js} +8 -8
  45. package/dist/web/client/assets/{prime-agent-artifacts-CHGb5V_j.js → prime-agent-artifacts-C-g1VPiW.js} +1 -1
  46. package/dist/web/client/assets/prompt-suggestions-CXM6knMK.js +1 -0
  47. package/dist/web/client/assets/provider-catalog-CHKFGwHr.js +1 -0
  48. package/dist/web/client/assets/provider-label-KkqVX1CI.js +1 -0
  49. package/dist/web/client/assets/range-BWOHiLNe.js +1 -0
  50. package/dist/web/client/assets/refresh-cw-IThTJ3j-.js +1 -0
  51. package/dist/web/client/assets/repl-panel-CCh4ly7J.js +1 -0
  52. package/dist/web/client/assets/{resource-helpers-ULlyU8qK.js → resource-helpers-Q2T0YCMO.js} +1 -1
  53. package/dist/web/client/assets/resources-panel-Bo8dfUdm.js +1 -0
  54. package/dist/web/client/assets/right-panel-context-B2VAZ2p4.js +1 -0
  55. package/dist/web/client/assets/right-panel-registry-C5fQcBKw.js +2 -0
  56. package/dist/web/client/assets/routes-C1hRkRkv.js +16 -0
  57. package/dist/web/client/assets/safe-external-url-D3PJJIcM.js +1 -0
  58. package/dist/web/client/assets/session-insights-panel-CQdT90Op.js +1 -0
  59. package/dist/web/client/assets/settings-dialog-CvvM6T0m.js +1 -0
  60. package/dist/web/client/assets/{sparkles-C5H3Jtgf.js → shield-check-CkA2viVW.js} +1 -1
  61. package/dist/web/client/assets/{skeleton-loaders-fStjEeRP.js → skeleton-loaders-DjGv9LLA.js} +1 -1
  62. package/dist/web/client/assets/sparkles-DuclzqlE.js +1 -0
  63. package/dist/web/client/assets/subagent-chat-panel-tGCg6gcn.js +1 -0
  64. package/dist/web/client/assets/subagent-transcript-NO0PR8RU.js +1 -0
  65. package/dist/web/client/assets/subagent-utils-CQbaJ1g-.js +1 -0
  66. package/dist/web/client/assets/subagents-panel-BkFLsQQY.js +1 -0
  67. package/dist/web/client/assets/surfaces-cW-gp56p.js +1 -0
  68. package/dist/web/client/assets/switch-CcOFiQBK.js +1 -0
  69. package/dist/web/client/assets/terminal-DOS1s1gm.js +1 -0
  70. package/dist/web/client/assets/toast-ATq44uAL.js +1 -0
  71. package/dist/web/client/assets/tool-result-pklnrxSW.js +4 -0
  72. package/dist/web/client/assets/use-reduced-motion-eORd7fqW.js +9 -0
  73. package/dist/web/client/assets/useBaseUiId-CHqXB2UQ.js +1 -0
  74. package/dist/web/client/assets/useControlled-CJJ9BOQB.js +1 -0
  75. package/dist/web/client/assets/workspace-panel-BmMW7h7b.js +1 -0
  76. package/dist/web/client/assets/wrench-BJNNe07k.js +1 -0
  77. package/dist/web/client/assets/x-CsRC_tCI.js +1 -0
  78. package/dist/web/client/bundle-budget.json +10 -0
  79. package/dist/web/server/_tanstack-start-manifest_v-B4BnRTa_-DR7WQTT5.js +90 -0
  80. package/dist/web/server/agent-activity-Dx6AlDhN-JXOL2EXK.js +514 -0
  81. package/dist/web/server/{artifacts-panel-D9w1DHAN-FGRDCYU2.js → artifacts-panel-CloS3-ij-XWYXKL6A.js} +30 -22
  82. package/dist/web/server/{chat-command-palette-BaenPkCN-BHSOPGU4.js → chat-command-palette-Cc0uGvNm-GKENKTO7.js} +48 -22
  83. package/dist/web/server/{chunk-KPNGZR2R.js → chunk-3B6M63AO.js} +206 -209
  84. package/dist/web/server/chunk-3D4Z32XA.js +22 -0
  85. package/dist/web/server/chunk-3SSHBMDS.js +196 -0
  86. package/dist/web/server/chunk-4PQ6OD6J.js +22 -0
  87. package/dist/web/server/{chunk-5AVQZ4AZ.js → chunk-4UBOIY2S.js} +2 -1
  88. package/dist/web/server/chunk-56SEDI5N.js +19 -0
  89. package/dist/web/server/chunk-6QNW66XR.js +19 -0
  90. package/dist/web/server/chunk-744IIIDL.js +19 -0
  91. package/dist/web/server/{chunk-52SJQXO4.js → chunk-7PQTPSEE.js} +568 -568
  92. package/dist/web/server/{chunk-XYYNYFFD.js → chunk-7SR6WDM2.js} +2 -2
  93. package/dist/web/server/chunk-ANL4B775.js +60 -0
  94. package/dist/web/server/chunk-BNQWMQHD.js +35 -0
  95. package/dist/web/server/{chunk-X2TUFLTP.js → chunk-C5X6G26O.js} +436 -454
  96. package/dist/web/server/chunk-C66BSNA6.js +42 -0
  97. package/dist/web/server/{chunk-3GSFXWL5.js → chunk-DEUBJJZN.js} +4 -59
  98. package/dist/web/server/chunk-E365EOXJ.js +35 -0
  99. package/dist/web/server/{chunk-5WZFFNFY.js → chunk-EFAGCVZ3.js} +2 -23
  100. package/dist/web/server/{chunk-Y6LJ4WBI.js → chunk-EGQ6ZX4D.js} +563 -830
  101. package/dist/web/server/{chunk-DO3TVNGA.js → chunk-EKBKGAWX.js} +12 -10
  102. package/dist/web/server/{chunk-RPROZ2JC.js → chunk-F6MGAW3L.js} +133 -133
  103. package/dist/web/server/chunk-GABXCOY3.js +37 -0
  104. package/dist/web/server/chunk-GV7DJIHY.js +36 -0
  105. package/dist/web/server/{chunk-PWK2HJIV.js → chunk-HSJMLO36.js} +5 -252
  106. package/dist/web/server/{chunk-46VQY7SG.js → chunk-HU4AIJV3.js} +4 -4
  107. package/dist/web/server/{chunk-H64JLONZ.js → chunk-HZY3LBGP.js} +146 -2
  108. package/dist/web/server/{chunk-3IKSPTYI.js → chunk-J6MRJXUH.js} +22 -15
  109. package/dist/web/server/{chunk-FE4KN6T2.js → chunk-JOSTE7WK.js} +7 -5
  110. package/dist/web/server/{chunk-QJBEWT4E.js → chunk-K3BXQG3N.js} +27 -292
  111. package/dist/web/server/chunk-K4ESBQ3R.js +20 -0
  112. package/dist/web/server/chunk-KOIPYBJF.js +3773 -0
  113. package/dist/web/server/{chunk-44IVTHDV.js → chunk-KZSM3BHO.js} +28 -119
  114. package/dist/web/server/chunk-L46H6IDX.js +13 -0
  115. package/dist/web/server/chunk-LNGWHEE6.js +206 -0
  116. package/dist/web/server/{chunk-2U7PWSJX.js → chunk-MOSVTKH5.js} +262 -3661
  117. package/dist/web/server/{chunk-MDYA4NXK.js → chunk-NJRYX4A2.js} +4 -4
  118. package/dist/web/server/chunk-NNMZQN7Q.js +296 -0
  119. package/dist/web/server/{chunk-VHCAD46L.js → chunk-NPPG2GTW.js} +7 -7
  120. package/dist/web/server/{chunk-AZZHUVJR.js → chunk-PJNYH5SR.js} +7 -303
  121. package/dist/web/server/{chunk-7APYEQIO.js → chunk-QAE5SXDK.js} +1 -24
  122. package/dist/web/server/chunk-QTFCJGOY.js +189 -0
  123. package/dist/web/server/{chunk-FBOO3G67.js → chunk-RANJ6OJ3.js} +9 -9
  124. package/dist/web/server/chunk-RPBSDXJ4.js +62 -0
  125. package/dist/web/server/{chunk-PCJ5EKFE.js → chunk-RYHIJMFD.js} +63 -34
  126. package/dist/web/server/{chunk-NLIUTTKL.js → chunk-S3PQ6HKH.js} +1 -16
  127. package/dist/web/server/chunk-SG4W4SPQ.js +31 -0
  128. package/dist/web/server/{chunk-LESNF5O4.js → chunk-T23OO4SC.js} +2 -11
  129. package/dist/web/server/{chunk-FVWDJNXR.js → chunk-UNZJQ7CY.js} +6 -4
  130. package/dist/web/server/chunk-V3S6BVXO.js +22 -0
  131. package/dist/web/server/{chunk-M2FGGPNA.js → chunk-VGDP4YDU.js} +70 -45
  132. package/dist/web/server/{chunk-WK7CQS2N.js → chunk-W5GRNHV5.js} +51 -49
  133. package/dist/web/server/{chunk-HBZ6YKRB.js → chunk-WN77JNYY.js} +2 -2
  134. package/dist/web/server/{chunk-B2F6MLVZ.js → chunk-XFVL5ITL.js} +2246 -2228
  135. package/dist/web/server/{chunk-EIVNRYP3.js → chunk-XKYEXPLQ.js} +2 -17
  136. package/dist/web/server/{chunk-6GMKRR3C.js → chunk-XNYQSCB2.js} +2 -2
  137. package/dist/web/server/chunk-YHXAXJ6I.js +22 -0
  138. package/dist/web/server/chunk-YLMXYMLG.js +86 -0
  139. package/dist/web/server/chunk-YNGDUWCF.js +56 -0
  140. package/dist/web/server/chunk-ZJFA4F5X.js +280 -0
  141. package/dist/web/server/fleet-message-queue-Bn0_3Efe-G4BZR2EU.js +74 -0
  142. package/dist/web/server/fleet-pi-tool-renderer-C52SZmPx-CIAH3IV7.js +51 -0
  143. package/dist/web/server/fleet-reasoning-panel-C_e7wzVm-SDHEWDQT.js +199 -0
  144. package/dist/web/server/fleet-subagent-list-CQltKswG-EKCMQHDI.js +18 -0
  145. package/dist/web/server/fleet-tool-timeline-KENErMKg-HTN7SW3D.js +16 -0
  146. package/dist/web/server/{fork-picker-dialog-BZzfxdQd-Y725VJ7G.js → fork-picker-dialog-DK9YGQuB-4QEFWRU4.js} +6 -5
  147. package/dist/web/server/{markdown-Boni3lHk-AZGKDNAR.js → markdown-QcSUaLyd-6DJUK5NC.js} +1 -1
  148. package/dist/web/server/{markdown-code-BrWukbg3-D2GN4Y77.js → markdown-code-Dyo1_13a-52ZQZSPE.js} +2 -2
  149. package/dist/web/server/model-selector-list-CEfWjRc--GBW2GUO6.js +289 -0
  150. package/dist/web/server/{openui-renderer-Cg4RSE9k-7BTJIYZJ.js → openui-renderer-Dk0Ak9cW-MUJQHDAS.js} +19 -16
  151. package/dist/web/server/prompt-suggestions-BOmHi4-J-C563CHFU.js +30 -0
  152. package/dist/web/server/{repl-panel-BEQrC2ef-V3YEZ7EO.js → repl-panel-D9E8nkQy-L45ZNG2V.js} +4 -3
  153. package/dist/web/server/{resources-panel-CwKh4U9f-D3VDEMDW.js → resources-panel-B03M8bEp-SZG726N5.js} +7 -6
  154. package/dist/web/server/{router-CEahIUpn-SRG7XKIH.js → router-BE9HcX2W-JMQ3JWE5.js} +1756 -1374
  155. package/dist/web/server/{routes-BznemByz-F4DJAYIM.js → routes-CJTRGB1Z-WJKXJFFT.js} +3748 -3955
  156. package/dist/web/server/server.js +3 -3
  157. package/dist/web/server/{session-insights-panel-JfeTHE0d-3HZB3ZWI.js → session-insights-panel-BHZyKDTo-LRMAMA3O.js} +4 -2
  158. package/dist/web/server/{settings-dialog-DgeBMORv-7SRSENPM.js → settings-dialog-yDibpbBH-TCLJ7NRJ.js} +172 -161
  159. package/dist/web/server/{start-CLAD7RcD-56S4BWMM.js → start-BYVnok_H-IA6TWGA3.js} +1 -1
  160. package/dist/web/server/subagent-chat-panel-B1YoZIKO-DFRUDQJ2.js +82 -0
  161. package/dist/web/server/subagents-panel-dJJwpsEL-FTWWCHND.js +200 -0
  162. package/dist/web/server/{workspace-panel-y54P79_B-VPIYUXF6.js → workspace-panel-BC_H8Jri-5MHAEQQS.js} +22 -18
  163. package/package.json +5 -5
  164. package/dist/web/client/assets/analytics-stub-Jh3lkb8P.js +0 -1
  165. package/dist/web/client/assets/button-0At5xSyU.js +0 -1
  166. package/dist/web/client/assets/chat-command-palette-C4sSf8Kg.js +0 -1
  167. package/dist/web/client/assets/collapsible-DmyYcezk.js +0 -1
  168. package/dist/web/client/assets/command-CB6emP8m.js +0 -2
  169. package/dist/web/client/assets/conversation-turns-ByFoWPXe.js +0 -6
  170. package/dist/web/client/assets/dialog-DZ44tBtH.js +0 -1
  171. package/dist/web/client/assets/dist-MNgIFxqY.js +0 -41
  172. package/dist/web/client/assets/ease-vFBiNFNK.js +0 -9
  173. package/dist/web/client/assets/file-text-BhQ0ZnoU.js +0 -1
  174. package/dist/web/client/assets/globals-CqqQdk2S.css +0 -2
  175. package/dist/web/client/assets/horizontal-resize-C1TpRLNC.js +0 -1
  176. package/dist/web/client/assets/index-DweoFRMs.js +0 -12
  177. package/dist/web/client/assets/input-CqC82Agz.js +0 -1
  178. package/dist/web/client/assets/input-group-H0TG-mkU.js +0 -1
  179. package/dist/web/client/assets/notify-Duj26eeZ.js +0 -1
  180. package/dist/web/client/assets/provider-catalog-BZhZuKSz.js +0 -1
  181. package/dist/web/client/assets/provider-label-jKm8v18u.js +0 -1
  182. package/dist/web/client/assets/range-vSJ7Ux_5.js +0 -2
  183. package/dist/web/client/assets/repl-panel-DiGS6uCw.js +0 -1
  184. package/dist/web/client/assets/resources-panel-DSU7VGX2.js +0 -1
  185. package/dist/web/client/assets/routes-CxlNCi_v.js +0 -16
  186. package/dist/web/client/assets/safe-external-url-Bl_78dpZ.js +0 -1
  187. package/dist/web/client/assets/session-insights-panel-DwmwiikS.js +0 -1
  188. package/dist/web/client/assets/settings-dialog-CkfpTKfM.js +0 -1
  189. package/dist/web/client/assets/subagents-panel-DGnsK6Nx.js +0 -1
  190. package/dist/web/client/assets/switch-BFEBpUEU.js +0 -1
  191. package/dist/web/client/assets/toast-C4s7FYYa.js +0 -1
  192. package/dist/web/client/assets/tool-result-CBzwwUE9.js +0 -4
  193. package/dist/web/client/assets/useBaseUiId-B9f7fokB.js +0 -1
  194. package/dist/web/client/assets/useControlled-CoY1jSuL.js +0 -1
  195. package/dist/web/client/assets/workspace-panel-CjdXlEvd.js +0 -1
  196. package/dist/web/client/assets/x-BgciQ7_C.js +0 -1
  197. package/dist/web/server/_tanstack-start-manifest_v-bDUlyKY0-KFW35JRO.js +0 -82
  198. package/dist/web/server/chunk-ZEVZFLIY.js +0 -334
  199. package/dist/web/server/fleet-pi-tool-renderer-lJvZWmBJ-4M5YI6VS.js +0 -35
  200. package/dist/web/server/subagents-panel-CzZe3co7-2VZ5JTWF.js +0 -332
@@ -1,332 +0,0 @@
1
- import {
2
- FleetGenerativeTextRenderer,
3
- FleetSubagentList,
4
- FleetToolTimeline,
5
- Message,
6
- MessageBubble,
7
- MessageBubbleContent,
8
- MessageContent,
9
- MessageScroller,
10
- UserMessage,
11
- buildAssistantElements,
12
- groupMessages,
13
- normalizeAssistantToolParts,
14
- orderedRlmChildren,
15
- rlmStatusIcon
16
- } from "./chunk-Y6LJ4WBI.js";
17
- import {
18
- FleetPiToolRenderer
19
- } from "./chunk-PCJ5EKFE.js";
20
- import {
21
- PI_TOOL_RENDERERS
22
- } from "./chunk-44IVTHDV.js";
23
- import "./chunk-P66QQWUM.js";
24
- import {
25
- RefreshCw
26
- } from "./chunk-EIVNRYP3.js";
27
- import "./chunk-WK7CQS2N.js";
28
- import "./chunk-DBXYBYBP.js";
29
- import "./chunk-5WZFFNFY.js";
30
- import {
31
- Bot
32
- } from "./chunk-74QOI457.js";
33
- import "./chunk-2H6A6Z7F.js";
34
- import "./chunk-YRWVQ7BW.js";
35
- import {
36
- derivePrimeAgentArtifactRuns
37
- } from "./chunk-5AVQZ4AZ.js";
38
- import "./chunk-3IKSPTYI.js";
39
- import "./chunk-PWK2HJIV.js";
40
- import "./chunk-QJBEWT4E.js";
41
- import "./chunk-FAGDMGLK.js";
42
- import "./chunk-6RJYXDSD.js";
43
- import "./chunk-PKCTG7EW.js";
44
- import {
45
- ChevronRight
46
- } from "./chunk-7QCDOBZ3.js";
47
- import "./chunk-NFRJDPB3.js";
48
- import "./chunk-LESNF5O4.js";
49
- import "./chunk-QLY3L4A2.js";
50
- import "./chunk-NLIUTTKL.js";
51
- import {
52
- Button
53
- } from "./chunk-RPROZ2JC.js";
54
- import "./chunk-XYYNYFFD.js";
55
- import "./chunk-X2TUFLTP.js";
56
- import "./chunk-ST5I2PLN.js";
57
- import {
58
- CircleAlert
59
- } from "./chunk-7APYEQIO.js";
60
- import "./chunk-M2FGGPNA.js";
61
- import "./chunk-G5BCQQ5N.js";
62
- import "./chunk-BYXBJQAS.js";
63
- import "./chunk-E26EAQIM.js";
64
- import {
65
- cn
66
- } from "./chunk-DJMHPJBP.js";
67
- import "./chunk-UQVZJSZZ.js";
68
- import "./chunk-JDCCC7A7.js";
69
- import "./chunk-L547YHC4.js";
70
- import "./chunk-MLKGABMK.js";
71
-
72
- // web/app/dist/server/assets/subagents-panel-CzZe3co7.js
73
- import { useCallback, useEffect, useMemo, useRef, useState } from "react";
74
- import { jsx, jsxs } from "react/jsx-runtime";
75
- function transcriptStatus(child) {
76
- if (child.status === "running") return "streaming";
77
- if (child.status === "error") return "error";
78
- return "ready";
79
- }
80
- function SubagentTurnView({ turn, isLast, isStreaming, artifacts, presentation }) {
81
- const assistantElements = useMemo(() => turn.assistants.flatMap((message, index) => buildAssistantElements(normalizeAssistantToolParts(message.parts ?? []), {
82
- messageId: message.id,
83
- isLast: isLast && index === turn.assistants.length - 1,
84
- isStreaming,
85
- suppressQuestionTool: true,
86
- ToolRendererComponent: FleetPiToolRenderer,
87
- TextRendererComponent: FleetGenerativeTextRenderer,
88
- toolRenderers: PI_TOOL_RENDERERS
89
- })), [
90
- isLast,
91
- isStreaming,
92
- turn.assistants
93
- ]);
94
- return /* @__PURE__ */ jsxs("div", {
95
- className: "flex flex-col gap-3",
96
- children: [turn.user ? /* @__PURE__ */ jsx(Message, {
97
- from: "user",
98
- children: /* @__PURE__ */ jsx(MessageContent, { children: /* @__PURE__ */ jsx(UserMessage, {
99
- message: turn.user,
100
- enableImagePreview: false
101
- }) })
102
- }) : null, turn.assistants.length > 0 ? /* @__PURE__ */ jsx(Message, {
103
- from: "assistant",
104
- children: /* @__PURE__ */ jsx(MessageContent, { children: /* @__PURE__ */ jsx(MessageBubble, {
105
- variant: "ghost",
106
- children: /* @__PURE__ */ jsxs(MessageBubbleContent, { children: [
107
- isLast ? /* @__PURE__ */ jsx(FleetToolTimeline, {
108
- messages: turn.assistants,
109
- artifacts,
110
- streaming: isStreaming
111
- }) : null,
112
- /* @__PURE__ */ jsx("div", {
113
- className: "flex flex-col gap-3",
114
- children: assistantElements
115
- }),
116
- isLast && presentation ? /* @__PURE__ */ jsx(FleetSubagentList, {
117
- children: presentation.rlmChildren,
118
- tree: presentation.rlmTree
119
- }) : null
120
- ] })
121
- }) })
122
- }) : null]
123
- });
124
- }
125
- function ChildTranscript({ child, parentSessionId, transcript, onRefresh }) {
126
- const turns = useMemo(() => transcript?.status === "ready" ? groupMessages(transcript.messages) : [], [transcript]);
127
- const childStatus = transcriptStatus(child);
128
- const artifactRuns = useMemo(() => transcript?.status === "ready" ? derivePrimeAgentArtifactRuns(transcript.messages, transcript.presentation, childStatus) : [], [childStatus, transcript]);
129
- const artifacts = useMemo(() => artifactRuns.flatMap((run) => run.artifacts), [artifactRuns]);
130
- return /* @__PURE__ */ jsxs("section", {
131
- "aria-label": `Subagent thread: ${child.label}`,
132
- className: "space-y-2",
133
- children: [/* @__PURE__ */ jsxs("div", {
134
- className: "flex min-w-0 items-start gap-2 rounded-md border border-border/60 bg-background px-2.5 py-2",
135
- children: [
136
- /* @__PURE__ */ jsx(Bot, { className: "mt-0.5 size-3.5 shrink-0 text-foreground/45" }),
137
- /* @__PURE__ */ jsxs("div", {
138
- className: "min-w-0 flex-1",
139
- children: [
140
- /* @__PURE__ */ jsxs("div", {
141
- className: "flex min-w-0 items-center gap-2",
142
- children: [/* @__PURE__ */ jsx("span", {
143
- className: "min-w-0 flex-1 truncate text-xs font-medium text-foreground/80",
144
- children: child.sessionName || child.label
145
- }), /* @__PURE__ */ jsx("span", {
146
- className: "shrink-0 text-[10px] capitalize text-foreground/45",
147
- children: child.status
148
- })]
149
- }),
150
- child.model ? /* @__PURE__ */ jsx("p", {
151
- className: "truncate font-mono text-[10px] text-foreground/40",
152
- children: child.model
153
- }) : null,
154
- child.answerPreview || child.recap ? /* @__PURE__ */ jsx("p", {
155
- className: "mt-1 line-clamp-3 whitespace-pre-wrap text-[11px] leading-4 text-foreground/55",
156
- children: child.answerPreview ?? child.recap
157
- }) : null
158
- ]
159
- }),
160
- /* @__PURE__ */ jsx(Button, {
161
- type: "button",
162
- variant: "ghost",
163
- size: "icon-sm",
164
- className: "shrink-0 text-foreground/40 hover:text-foreground/70",
165
- "aria-label": `Refresh ${child.label} thread`,
166
- title: `Refresh ${child.label} thread`,
167
- onClick: onRefresh,
168
- children: /* @__PURE__ */ jsx(RefreshCw, { className: cn("size-3.5", transcript?.status === "loading" && "animate-spin") })
169
- })
170
- ]
171
- }), !parentSessionId ? /* @__PURE__ */ jsx("p", {
172
- className: "rounded-md border border-dashed border-border/70 px-3 py-3 text-[11px] leading-4 text-foreground/45",
173
- children: "This subagent thread is unavailable until the parent session is active."
174
- }) : transcript?.status === "loading" ? /* @__PURE__ */ jsx("div", {
175
- className: "flex min-h-32 items-center justify-center rounded-md border border-dashed border-border/70 text-[11px] text-foreground/45",
176
- children: "Loading subagent thread\u2026"
177
- }) : transcript?.status === "error" ? /* @__PURE__ */ jsxs("div", {
178
- role: "alert",
179
- className: "flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-[11px] leading-4 text-destructive",
180
- children: [/* @__PURE__ */ jsx(CircleAlert, { className: "mt-0.5 size-3.5 shrink-0" }), /* @__PURE__ */ jsx("span", { children: transcript?.error?.message ?? "Unable to load this subagent thread." })]
181
- }) : turns.length === 0 ? /* @__PURE__ */ jsx("p", {
182
- className: "rounded-md border border-dashed border-border/70 px-3 py-3 text-[11px] leading-4 text-foreground/45",
183
- children: "This subagent thread has no messages yet."
184
- }) : /* @__PURE__ */ jsx("div", {
185
- className: "h-96 min-h-64 max-h-[calc(100svh-18rem)] rounded-md border border-border/60 bg-background",
186
- children: /* @__PURE__ */ jsx(MessageScroller, {
187
- label: `Transcript for ${child.label}`,
188
- followOutput: false,
189
- smooth: false,
190
- contentClassName: "flex flex-col gap-4 px-2.5 py-3",
191
- children: turns.map((turn, index) => {
192
- const isLast = index === turns.length - 1;
193
- return /* @__PURE__ */ jsx(SubagentTurnView, {
194
- turn,
195
- isLast,
196
- isStreaming: isLast && childStatus === "streaming",
197
- artifacts: isLast ? artifacts : [],
198
- presentation: isLast ? transcript?.presentation : void 0
199
- }, turn.user?.id ?? `subagent-turn-${index}`);
200
- })
201
- })
202
- })]
203
- });
204
- }
205
- function SubagentsPanelContent({ agents, loadSession, parentSessionId, tree }) {
206
- const ordered = useMemo(() => orderedRlmChildren(agents, tree), [agents, tree]);
207
- const [selectedAgentId, setSelectedAgentId] = useState(null);
208
- const [transcripts, setTranscripts] = useState({});
209
- const requestVersions = useRef(/* @__PURE__ */ new Map());
210
- const selectedAgent = ordered.find((agent) => agent.id === selectedAgentId) ?? ordered[0];
211
- useEffect(() => {
212
- if (selectedAgentId && ordered.some((agent) => agent.id === selectedAgentId)) return;
213
- setSelectedAgentId(ordered[0]?.id ?? null);
214
- }, [ordered, selectedAgentId]);
215
- const loadTranscript = useCallback(async (agent, force = false) => {
216
- if (!parentSessionId) return;
217
- const requestKey = `${parentSessionId}:${agent.id}:${agent.status}:${agent.timestamp}`;
218
- const current = transcripts[agent.id];
219
- if (!force && current?.requestKey === requestKey) return;
220
- const version = (requestVersions.current.get(agent.id) ?? 0) + 1;
221
- requestVersions.current.set(agent.id, version);
222
- setTranscripts((previous) => ({
223
- ...previous,
224
- [agent.id]: {
225
- requestKey,
226
- status: "loading",
227
- messages: []
228
- }
229
- }));
230
- try {
231
- const response = await loadSession(parentSessionId, agent.id);
232
- if (requestVersions.current.get(agent.id) !== version) return;
233
- setTranscripts((previous) => ({
234
- ...previous,
235
- [agent.id]: {
236
- requestKey,
237
- status: "ready",
238
- messages: response.messages,
239
- presentation: response.presentation
240
- }
241
- }));
242
- } catch (error) {
243
- if (requestVersions.current.get(agent.id) !== version) return;
244
- setTranscripts((previous) => ({
245
- ...previous,
246
- [agent.id]: {
247
- requestKey,
248
- status: "error",
249
- messages: [],
250
- error: error instanceof Error ? error : new Error(String(error))
251
- }
252
- }));
253
- }
254
- }, [
255
- loadSession,
256
- parentSessionId,
257
- transcripts
258
- ]);
259
- useEffect(() => {
260
- if (selectedAgent) loadTranscript(selectedAgent);
261
- }, [
262
- loadTranscript,
263
- selectedAgent?.id,
264
- selectedAgent?.status,
265
- selectedAgent?.timestamp
266
- ]);
267
- if (ordered.length === 0) return /* @__PURE__ */ jsx("section", {
268
- "aria-label": "Subagents",
269
- className: "flex min-h-36 items-center rounded-md border border-dashed border-border/70 px-4 text-center text-[12px] leading-5 text-foreground/45",
270
- children: "Subagent threads will appear here when Prime delegates work."
271
- });
272
- return /* @__PURE__ */ jsxs("section", {
273
- "aria-label": "Subagents",
274
- className: "space-y-2 pb-1",
275
- children: [
276
- /* @__PURE__ */ jsxs("div", {
277
- className: "flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5",
278
- children: [
279
- /* @__PURE__ */ jsx(Bot, { className: "size-3.5 shrink-0 text-foreground/45" }),
280
- /* @__PURE__ */ jsx("span", {
281
- className: "min-w-0 flex-1 truncate text-label font-medium text-foreground/70",
282
- children: "Invoked subagents"
283
- }),
284
- /* @__PURE__ */ jsx("span", {
285
- className: "shrink-0 text-[10px] text-foreground/40",
286
- children: ordered.length
287
- })
288
- ]
289
- }),
290
- /* @__PURE__ */ jsx("div", {
291
- className: "space-y-0.5",
292
- "data-testid": "subagent-thread-list",
293
- children: ordered.map((agent) => {
294
- const selected = agent.id === selectedAgent?.id;
295
- return /* @__PURE__ */ jsxs(Button, {
296
- type: "button",
297
- variant: "ghost",
298
- size: "sm",
299
- "aria-pressed": selected,
300
- className: cn("flex w-full min-w-0 items-center gap-2 rounded-md px-2 py-1.5 text-left transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", selected && "bg-foreground/8"),
301
- style: { paddingLeft: `${8 + Math.max(0, agent.depth ?? 0) * 12}px` },
302
- onClick: () => setSelectedAgentId(agent.id),
303
- children: [
304
- /* @__PURE__ */ jsx("span", {
305
- className: "shrink-0",
306
- children: rlmStatusIcon(agent.status)
307
- }),
308
- /* @__PURE__ */ jsx("span", {
309
- className: "min-w-0 flex-1 truncate text-xs text-foreground/80",
310
- children: agent.label
311
- }),
312
- /* @__PURE__ */ jsx(ChevronRight, { className: "size-3 shrink-0 text-foreground/30" }),
313
- /* @__PURE__ */ jsx("span", {
314
- className: "shrink-0 text-[10px] capitalize text-foreground/45",
315
- children: agent.status
316
- })
317
- ]
318
- }, agent.id);
319
- })
320
- }),
321
- selectedAgent ? /* @__PURE__ */ jsx(ChildTranscript, {
322
- child: selectedAgent,
323
- parentSessionId,
324
- transcript: transcripts[selectedAgent.id],
325
- onRefresh: () => void loadTranscript(selectedAgent, true)
326
- }) : null
327
- ]
328
- });
329
- }
330
- export {
331
- SubagentsPanelContent
332
- };