@qredence/fleet 0.7.4 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/README.md +5 -4
- package/bin/fleet-prime.mjs +33 -6
- package/bin/prime-runtime.mjs +79 -0
- package/dist/runtime-manifest.json +32 -0
- package/dist/web/client/assets/DialogTitle-BlVq-tcv.js +1 -0
- package/dist/web/client/assets/FloatingPortal-D8-EPDs2.js +1 -0
- package/dist/web/client/assets/activity-BPIKUzOU.js +1 -0
- package/dist/web/client/assets/agents-CGjUBYX7.js +2 -0
- package/dist/web/client/assets/agents-page-CTuFJL9H.js +1 -0
- package/dist/web/client/assets/alert-CzWGeumf.js +1 -0
- package/dist/web/client/assets/alert-dialog-D-e1Pr4q.js +1 -0
- package/dist/web/client/assets/arrow-up-right-CG9RNk4p.js +1 -0
- package/dist/web/client/assets/artifacts-panel-6JEdy6jU.js +1 -0
- package/dist/web/client/assets/badge-CzQFgmVK.js +1 -0
- package/dist/web/client/assets/button-CWYjn8Zk.js +1 -0
- package/dist/web/client/assets/{card-Hngi3HGC.js → card-Dj1SnGUU.js} +1 -1
- package/dist/web/client/assets/chat-command-palette-Bxr5EkO6.js +1 -0
- package/dist/web/client/assets/chat-hpzV6IA6.js +57 -0
- package/dist/web/client/assets/chat-queries-CfZiupub.js +3 -0
- package/dist/web/client/assets/clock-3-BwWCSCm_.js +1 -0
- package/dist/web/client/assets/code-block-pKKmFZ5w.js +3 -0
- package/dist/web/client/assets/collapsible-Bk6zCsRX.js +1 -0
- package/dist/web/client/assets/{command-CmtCIDdH.js → command-xo-NK4xO.js} +1 -1
- package/dist/web/client/assets/connectors-CFxLqG2x.js +2 -0
- package/dist/web/client/assets/connectors-page-DQJdoAnl.js +1 -0
- package/dist/web/client/assets/create-project-dialog-Db-WhUmP.js +1 -0
- package/dist/web/client/assets/createBaseUIEventDetails-DIxvaz-Y.js +1 -0
- package/dist/web/client/assets/dialog-CK8dym6z.js +1 -0
- package/dist/web/client/assets/eye-iNSvs0UA.js +1 -0
- package/dist/web/client/assets/file-code-corner-BkDULqko.js +1 -0
- package/dist/web/client/assets/{fork-picker-dialog-DfGlB17w.js → fork-picker-dialog-DSaFeUii.js} +1 -1
- package/dist/web/client/assets/globals-DJhWyayo.css +2 -0
- package/dist/web/client/assets/index-C9FHZDGw.js +13 -0
- package/dist/web/client/assets/input-CBoTMPC_.js +1 -0
- package/dist/web/client/assets/{input-group-EPMGh55u.js → input-group-BFubAtz9.js} +1 -1
- package/dist/web/client/assets/{ipython-tool-CMhnRVrC.js → ipython-tool-bieUhw9K.js} +1 -1
- package/dist/web/client/assets/markdown-CvBfbPCn.js +2 -0
- package/dist/web/client/assets/markdown-code-rFOkzN5N.js +4 -0
- package/dist/web/client/assets/mcp-connections-section-DEo6Kemv.js +2 -0
- package/dist/web/client/assets/message-queue-Btjt9wK2.js +1 -0
- package/dist/web/client/assets/{model-selector-list-BiU_7ivt.js → model-selector-list-CbDAT0Rw.js} +1 -1
- package/dist/web/client/assets/mutation-Da9zdeWr.js +1 -0
- package/dist/web/client/assets/notify-BIL0-CGy.js +1 -0
- package/dist/web/client/assets/open-panel-action-message-SdA1VU42.js +1 -0
- package/dist/web/client/assets/openui-renderer-DG-iML7M.js +291 -0
- package/dist/web/client/assets/pencil-Cbgq3ybX.js +1 -0
- package/dist/web/client/assets/plus-DUP2JPVG.js +1 -0
- package/dist/web/client/assets/product-page-header-Ck6I13CE.js +1 -0
- package/dist/web/client/assets/{prompt-input-Dy-DSPqF.js → prompt-input-CoV1gTUQ.js} +1 -1
- package/dist/web/client/assets/{prompt-suggestions-CrpAiKeB.js → prompt-suggestions-CAY5JI-C.js} +1 -1
- package/dist/web/client/assets/provider-catalog-CLEDlH_v.js +1 -0
- package/dist/web/client/assets/provider-label-BItazQ6H.js +1 -0
- package/dist/web/client/assets/reasoning-line-DGdPUMwT.js +1 -0
- package/dist/web/client/assets/rehype-katex-DITkIpVl.js +259 -0
- package/dist/web/client/assets/{repl-panel-DN5kZAcB.js → repl-panel-5xgkDXO5.js} +1 -1
- package/dist/web/client/assets/{resources-panel-DD6iWOF3.js → resources-panel-aJCKt9eF.js} +1 -1
- package/dist/web/client/assets/right-panel-context-CjX-HkDO.js +1 -0
- package/dist/web/client/assets/right-panel-registry-BAJ6TuEY.js +2 -0
- package/dist/web/client/assets/rotate-ccw-DLkfsmG9.js +1 -0
- package/dist/web/client/assets/routes-ja_liP8Z.js +14 -0
- package/dist/web/client/assets/select-DYh951qi.js +1 -0
- package/dist/web/client/assets/session-activity-panel-DwaXiSrS.js +1 -0
- package/dist/web/client/assets/{session-insights-panel-D0v_DKcb.js → session-insights-panel-BXEmuJKf.js} +1 -1
- package/dist/web/client/assets/session-reasoning-panel-CjJJK_bq.js +1 -0
- package/dist/web/client/assets/session-tool-renderer-DEABxZG3.js +166 -0
- package/dist/web/client/assets/{session-tree-panel-BBwP_EK2.js → session-tree-panel-5QgMvXoX.js} +1 -1
- package/dist/web/client/assets/settings-dialog-DiikSLhF.js +1 -0
- package/dist/web/client/assets/shield-check-7HDd-2Fn.js +1 -0
- package/dist/web/client/assets/{skeleton-DNAr5ULI.js → skeleton-B_Lq2XFl.js} +1 -1
- package/dist/web/client/assets/{skeleton-loaders-B28mF4tJ.js → skeleton-loaders-DWc1eDL3.js} +1 -1
- package/dist/web/client/assets/sparkles-CASAe1AI.js +1 -0
- package/dist/web/client/assets/{spinner-CSBXk3Lo.js → spinner-B5TaKP7k.js} +1 -1
- package/dist/web/client/assets/{subagent-chat-panel-DhvBO4dQ.js → subagent-chat-panel-R2RoX1Yt.js} +1 -1
- package/dist/web/client/assets/subagent-transcript-DVZhMo7a.js +1 -0
- package/dist/web/client/assets/{subagents-panel-DRo8Xs6j.js → subagents-panel-CMMRUP8F.js} +1 -1
- package/dist/web/client/assets/surfaces-BUjUJTyD.js +1 -0
- package/dist/web/client/assets/switch-BrxDfsX6.js +1 -0
- package/dist/web/client/assets/toast-BNWkgZ0u.js +1 -0
- package/dist/web/client/assets/tool-output-normalizer-DDU09Zc6.js +4 -0
- package/dist/web/client/assets/tool-part-normalizer-CF6bmJ0s.js +4 -0
- package/dist/web/client/assets/tool-result-7qREIVv_.js +5 -0
- package/dist/web/client/assets/tool-timeline-CGhwMeNl.js +2 -0
- package/dist/web/client/assets/trace-IsV5RRvM.js +1 -0
- package/dist/web/client/assets/trash-sm2UyOxe.js +1 -0
- package/dist/web/client/assets/types-gIgIxnnG.js +1 -0
- package/dist/web/client/assets/ui-preferences-B-PNDkyY.js +1 -0
- package/dist/web/client/assets/use-hover-capable-CLq8BADD.js +1 -0
- package/dist/web/client/assets/useBaseUiId-lKfDDIcw.js +1 -0
- package/dist/web/client/assets/useButton-CvcmqA2s.js +1 -0
- package/dist/web/client/assets/useNavigate-CVhM7pag.js +1 -0
- package/dist/web/client/assets/useRender-CzJUrRlB.js +1 -0
- package/dist/web/client/assets/useScrollLock-BcsteNzT.js +1 -0
- package/dist/web/client/assets/{utils-CFDGLzf6.js → utils-oBThwhjm.js} +1 -1
- package/dist/web/client/assets/with-selector-B_VDO56x.js +1 -0
- package/dist/web/client/assets/{workspace-panel-DdZutYnd.js → workspace-panel-Da5I4p_t.js} +1 -1
- package/dist/web/client/assets/workspace-path-nav-D-77sJ_A.js +2 -0
- package/dist/web/client/assets/wrench-BXX_Ah2s.js +1 -0
- package/dist/web/client/bundle-budget.json +6 -6
- package/dist/web/server/_tanstack-start-manifest_v-B6ne-00G-OFX7UD4K.js +119 -0
- package/dist/web/server/agents-BwzqhPjK-ANFHE5AG.js +22 -0
- package/dist/web/server/agents-page-DEqPV-eG-BR5MR74O.js +215 -0
- package/dist/web/server/{artifacts-panel-COSC8o7j-GKW2HH2G.js → artifacts-panel-DLO8OfXb-B2ZWCDFP.js} +35 -29
- package/dist/web/server/{chat-command-palette-CuOWdzkk-PKZQ5EZP.js → chat-command-palette-CaDQAMAu-KDH7BTDS.js} +22 -15
- package/dist/web/server/chunk-2ETDIMNM.js +40 -0
- package/dist/web/server/{chunk-2VKVSL6Y.js → chunk-35RIM6VP.js} +128 -127
- package/dist/web/server/chunk-5IE54MRG.js +207 -0
- package/dist/web/server/{chunk-VUBITQ5X.js → chunk-5MOXRFX6.js} +180 -7
- package/dist/web/server/{chunk-6GTTTYSE.js → chunk-6AFVCERK.js} +72 -79
- package/dist/web/server/chunk-6GYLXDX3.js +588 -0
- package/dist/web/server/chunk-7DQQMT5V.js +8993 -0
- package/dist/web/server/chunk-APOS34PW.js +8965 -0
- package/dist/web/server/{chunk-BUKOEXE7.js → chunk-AXN2OBPF.js} +2 -4
- package/dist/web/server/{chunk-WCKKN5BR.js → chunk-B5FKCW75.js} +357 -910
- package/dist/web/server/chunk-BD7YKYWL.js +1007 -0
- package/dist/web/server/{chunk-36CAMOVG.js → chunk-BZ2EAUZZ.js} +10 -12
- package/dist/web/server/chunk-CE7U5QB2.js +42 -0
- package/dist/web/server/chunk-FNV3WZXL.js +125 -0
- package/dist/web/server/{chunk-GLSR4ZI2.js → chunk-FSQWWR2M.js} +698 -832
- package/dist/web/server/chunk-FT7HNDR5.js +143 -0
- package/dist/web/server/chunk-GNXIDE26.js +44 -0
- package/dist/web/server/{chunk-ORCOCCER.js → chunk-HAFELESQ.js} +5 -7
- package/dist/web/server/{chunk-LLO4MNGE.js → chunk-HUHUPGHT.js} +53 -45
- package/dist/web/server/{chunk-QSM3BRMA.js → chunk-KBMRRJQN.js} +256 -157
- package/dist/web/server/chunk-KDCSEISZ.js +6890 -0
- package/dist/web/server/chunk-KSGGSGOA.js +50 -0
- package/dist/web/server/chunk-PQVTLG3E.js +270 -0
- package/dist/web/server/{chunk-YU6RHHK6.js → chunk-Q4ECIATK.js} +65 -53
- package/dist/web/server/{chunk-IN2ATSEG.js → chunk-R4BS3KYI.js} +2 -4
- package/dist/web/server/chunk-RX2ZJARF.js +73 -0
- package/dist/web/server/{chunk-AKSDWYJY.js → chunk-SYS5FDNA.js} +5 -5
- package/dist/web/server/chunk-TOJA3X5N.js +421 -0
- package/dist/web/server/chunk-TQ2RECTH.js +193 -0
- package/dist/web/server/{chunk-KHHXJZK7.js → chunk-TTNONWZZ.js} +16001 -14668
- package/dist/web/server/chunk-TXZDDJCT.js +5115 -0
- package/dist/web/server/{chunk-XA7EOCHM.js → chunk-UDUG3MYZ.js} +2 -2
- package/dist/web/server/{chunk-EBC7QORX.js → chunk-V2GCVTDP.js} +5056 -12556
- package/dist/web/server/{chunk-TMQ3MT3D.js → chunk-VDEUVEWL.js} +2255 -1
- package/dist/web/server/chunk-VM3U6PUU.js +769 -0
- package/dist/web/server/connectors-C0xm91Ss-DJVBGD73.js +22 -0
- package/dist/web/server/connectors-page-B6tJNZ6c-R5K4NSAT.js +66 -0
- package/dist/web/server/{create-project-dialog-0-arQpsX-ZELQKHS5.js → create-project-dialog-PFPHHWIV-GH7JR5IK.js} +27 -18
- package/dist/web/server/{dist-7G2NZPF4.js → dist-GQUZLXN5.js} +2 -2
- package/dist/web/server/{dist-E5637ZAY.js → dist-MN5NWCX6.js} +1 -1
- package/dist/web/server/{fork-picker-dialog-fj9p33Mq-I5SA3GLJ.js → fork-picker-dialog-DFpKOdAw-JPLJSYYU.js} +7 -12
- package/dist/web/server/{markdown-CShfYRVO-RBTK7TRB.js → markdown-Cc8V9dOF-JTNTJKQU.js} +7 -5
- package/dist/web/server/{markdown-code-BDV_2b2T-6JYA5FWZ.js → markdown-code-gaRnbgNM-V5LIRYCD.js} +46 -8
- package/dist/web/server/{message-queue-BBC843IU-GY4ZIMM4.js → message-queue-nQ2_kU82-KKSLYR4S.js} +7 -16
- package/dist/web/server/{model-selector-list-DE6aLNXt-LJZMCYOI.js → model-selector-list-By_G7_Hr-GXT27BZO.js} +12 -16
- package/dist/web/server/{openui-renderer-C3aqSKuS-PWLWJFYO.js → openui-renderer-B9D8-Av--LFZP4U5V.js} +20 -15
- package/dist/web/server/{prompt-suggestions-CpTK_fHV-UKJDTLVM.js → prompt-suggestions-B67Uy5Rk-5SMTSIFQ.js} +5 -4
- package/dist/web/server/{rehype-katex-IDPYWU6M.js → rehype-katex-CYHGKI6Q.js} +490 -843
- package/dist/web/server/{repl-panel-1kSS1UGd-U64BPA7X.js → repl-panel-1kSS1UGd-POXRYDDJ.js} +2 -3
- package/dist/web/server/{resources-panel-DWb0eGKa-K4EM3H7Y.js → resources-panel-CTzOOKPz-5G6RS2D6.js} +18 -12
- package/dist/web/server/router-CnBux_Ld-YTVBMJFL.js +23 -0
- package/dist/web/server/routes-BUGzvQoO-WW43X7W2.js +124 -0
- package/dist/web/server/server.js +3 -3
- package/dist/web/server/session-activity-panel-f0d3fCm7-I6L5IKFQ.js +181 -0
- package/dist/web/server/{session-insights-panel-CfMX2NRu-6HWZTTAC.js → session-insights-panel-BiVObm_6-AP4FITT7.js} +2 -12
- package/dist/web/server/session-reasoning-panel-QIt_xjP0-FKJWMNHO.js +70 -0
- package/dist/web/server/session-tool-renderer-Cg_ZPHxS-BNQKNJNZ.js +34 -0
- package/dist/web/server/{session-tree-panel-HNl6R9VZ-4JUF34M7.js → session-tree-panel-B--el8O5-NZOZJM5L.js} +18 -13
- package/dist/web/server/{settings-dialog-DGZBA5Z_-6HYFMPNZ.js → settings-dialog-D_eJN2ia-W47Y474K.js} +104 -795
- package/dist/web/server/{subagent-chat-panel-DuB4hqUk-LDCAJOCL.js → subagent-chat-panel-C9nWP21E-D5C2TTYD.js} +22 -17
- package/dist/web/server/{subagents-panel-wAvx3-Rs-L6UTDFUX.js → subagents-panel-fAKvBNRG-O7QHXNE2.js} +26 -22
- package/dist/web/server/{workspace-panel-CPzJZwgv-YS7PTI5C.js → workspace-panel-CZMNMU63-SYOSM3B7.js} +23 -17
- package/package.json +2 -2
- package/dist/web/client/assets/DialogTitle-D-zqaHvF.js +0 -1
- package/dist/web/client/assets/FloatingPortal-73ZRZeD9.js +0 -1
- package/dist/web/client/assets/action-swap-BcFwS6is.js +0 -1
- package/dist/web/client/assets/alert-dialog-DtXvVhsF.js +0 -1
- package/dist/web/client/assets/artifacts-panel-Bseg97yQ.js +0 -1
- package/dist/web/client/assets/badge-C--lf3bb.js +0 -57
- package/dist/web/client/assets/button-BJZe4vNJ.js +0 -1
- package/dist/web/client/assets/chat-command-palette-D_rm1r9d.js +0 -1
- package/dist/web/client/assets/chevron-up-CqeJYyZO.js +0 -1
- package/dist/web/client/assets/collapsible-DauSnbYp.js +0 -1
- package/dist/web/client/assets/create-project-dialog-m-9aoobN.js +0 -1
- package/dist/web/client/assets/createBaseUIEventDetails-DklXWq23.js +0 -1
- package/dist/web/client/assets/dialog-Ddouieuu.js +0 -1
- package/dist/web/client/assets/eye-Cs0lNChA.js +0 -1
- package/dist/web/client/assets/globals-C961mr-b.css +0 -2
- package/dist/web/client/assets/index-Bz5W4EOn.js +0 -13
- package/dist/web/client/assets/input-Def1xOZz.js +0 -1
- package/dist/web/client/assets/markdown-Big27m-v.js +0 -2
- package/dist/web/client/assets/markdown-code-7L4RiS50.js +0 -3
- package/dist/web/client/assets/message-queue-Bg2MiJHM.js +0 -1
- package/dist/web/client/assets/mutation-DOi2Qgfa.js +0 -1
- package/dist/web/client/assets/notify-DhtmUPfE.js +0 -1
- package/dist/web/client/assets/openui-renderer-MIB3JKYa.js +0 -291
- package/dist/web/client/assets/provider-label-B_vy60P0.js +0 -1
- package/dist/web/client/assets/rehype-katex-A4PtQgTX.js +0 -259
- package/dist/web/client/assets/right-panel-context-DHKWoetk.js +0 -1
- package/dist/web/client/assets/right-panel-registry-hKJN__3l.js +0 -2
- package/dist/web/client/assets/routes-C3h32Lj_.js +0 -16
- package/dist/web/client/assets/select-Buvv1tIo.js +0 -1
- package/dist/web/client/assets/session-reasoning-panel-DmEbXOrR.js +0 -1
- package/dist/web/client/assets/session-tool-renderer-Daol5fJw.js +0 -169
- package/dist/web/client/assets/settings-dialog-DYbx3xuq.js +0 -2
- package/dist/web/client/assets/sparkles-D_ANe-HY.js +0 -1
- package/dist/web/client/assets/subagent-transcript-Bx-rHni-.js +0 -1
- package/dist/web/client/assets/surfaces-B8xTOFeK.js +0 -1
- package/dist/web/client/assets/switch-CDfAwEvs.js +0 -1
- package/dist/web/client/assets/terminal-Ceucj7us.js +0 -1
- package/dist/web/client/assets/toast-9zXN-yVk.js +0 -1
- package/dist/web/client/assets/tool-part-normalizer-NbPs9kd1.js +0 -4
- package/dist/web/client/assets/tool-result-BccnO34D.js +0 -4
- package/dist/web/client/assets/tool-timeline-DlBZyd4j.js +0 -1
- package/dist/web/client/assets/types-D5hZ8IyV.js +0 -1
- package/dist/web/client/assets/ui-preferences-1YaENqef.js +0 -1
- package/dist/web/client/assets/use-hover-capable-MwFjBLZQ.js +0 -1
- package/dist/web/client/assets/workspace-path-nav-BRwuLsFl.js +0 -2
- package/dist/web/client/assets/wrench-BYnD147U.js +0 -1
- package/dist/web/server/_tanstack-start-manifest_v-YlngJGUa-YTWBGR7L.js +0 -93
- package/dist/web/server/chunk-2PAW6K4Q.js +0 -56
- package/dist/web/server/chunk-CHSKEU3V.js +0 -166
- package/dist/web/server/chunk-FB3UHLLN.js +0 -49
- package/dist/web/server/chunk-GLH2GWMG.js +0 -2182
- package/dist/web/server/chunk-OXEAXEWD.js +0 -13
- package/dist/web/server/chunk-SIJVVYQT.js +0 -234
- package/dist/web/server/chunk-UQV2NU63.js +0 -163
- package/dist/web/server/chunk-ZUZPJNLY.js +0 -25217
- package/dist/web/server/router-DZYr-9uT-AEXHEFXF.js +0 -31
- package/dist/web/server/routes-vYxWRhis-AAZ73SNP.js +0 -120
- package/dist/web/server/session-reasoning-panel-XXU2yIOW-XXCKHISS.js +0 -192
- package/dist/web/server/session-tool-renderer-Dtt74Mts-7YYNSWRV.js +0 -29
- package/dist/web/server/tool-timeline-BKWsrZHK-3LGCOTPH.js +0 -12
|
@@ -2,31 +2,202 @@ import {
|
|
|
2
2
|
useBaseUiId,
|
|
3
3
|
useControlled,
|
|
4
4
|
useTransitionStatus
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-TXZDDJCT.js";
|
|
6
6
|
import {
|
|
7
7
|
AnimationFrame,
|
|
8
8
|
TransitionStatusDataAttributes_exports,
|
|
9
9
|
addEventListener,
|
|
10
10
|
createChangeEventDetails,
|
|
11
|
-
formatErrorMessage_default,
|
|
12
|
-
getWindow,
|
|
13
11
|
reason_parts_exports,
|
|
14
|
-
resolveStyle,
|
|
15
12
|
transitionStatusMapping,
|
|
16
13
|
useAnimationsFinished,
|
|
14
|
+
useOpenChangeComplete,
|
|
15
|
+
useValueAsRef
|
|
16
|
+
} from "./chunk-APOS34PW.js";
|
|
17
|
+
import {
|
|
18
|
+
formatErrorMessage_default,
|
|
19
|
+
getWindow,
|
|
20
|
+
resolveStyle,
|
|
17
21
|
useButton,
|
|
18
22
|
useIsoLayoutEffect,
|
|
19
23
|
useMergedRefs,
|
|
20
|
-
useOpenChangeComplete,
|
|
21
24
|
useRenderElement,
|
|
22
25
|
useStableCallback,
|
|
23
|
-
useValueAsRef,
|
|
24
26
|
warn
|
|
25
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-FSQWWR2M.js";
|
|
26
28
|
import {
|
|
27
29
|
__export
|
|
28
30
|
} from "./chunk-CZ7CSFO4.js";
|
|
29
31
|
|
|
32
|
+
// web/app/dist/server/assets/prime-agent-artifacts-CJUvqPu2.js
|
|
33
|
+
function stablePresentationId(seed) {
|
|
34
|
+
let hash = 2166136261;
|
|
35
|
+
for (let index = 0; index < seed.length; index += 1) {
|
|
36
|
+
hash ^= seed.charCodeAt(index);
|
|
37
|
+
hash = Math.imul(hash, 16777619);
|
|
38
|
+
}
|
|
39
|
+
return `${seed.replace(/[^a-zA-Z0-9:_-]+/g, "-").slice(0, 96)}-${(hash >>> 0).toString(36)}`;
|
|
40
|
+
}
|
|
41
|
+
function timestampFor(message) {
|
|
42
|
+
if (typeof message.createdAt === "number") return message.createdAt;
|
|
43
|
+
if (message.createdAt instanceof Date) return message.createdAt.getTime();
|
|
44
|
+
if (typeof message.createdAt === "string") {
|
|
45
|
+
const parsed = Date.parse(message.createdAt);
|
|
46
|
+
if (Number.isFinite(parsed)) return parsed;
|
|
47
|
+
}
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
function record(value) {
|
|
51
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
52
|
+
}
|
|
53
|
+
function stringField(source, ...keys) {
|
|
54
|
+
for (const key of keys) if (typeof source?.[key] === "string") return source[key];
|
|
55
|
+
}
|
|
56
|
+
function textContent(value) {
|
|
57
|
+
if (typeof value === "string") return value;
|
|
58
|
+
if (!Array.isArray(value)) return void 0;
|
|
59
|
+
return value.flatMap((part) => {
|
|
60
|
+
const source = record(part);
|
|
61
|
+
return typeof source?.text === "string" ? [source.text] : [];
|
|
62
|
+
}).join("") || void 0;
|
|
63
|
+
}
|
|
64
|
+
function splitLines(artifactId, index, content, type) {
|
|
65
|
+
return content.split("\n").map((line, lineIndex) => ({
|
|
66
|
+
id: `${artifactId}-${index}-${type}-${lineIndex}`,
|
|
67
|
+
type,
|
|
68
|
+
content: line
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
function filePathFor(artifact) {
|
|
72
|
+
const input = record(artifact.input);
|
|
73
|
+
const output = record(artifact.output);
|
|
74
|
+
return stringField(input, "path", "file_path", "filePath") ?? stringField(output, "path", "file_path", "filePath") ?? artifact.title;
|
|
75
|
+
}
|
|
76
|
+
function unifiedDiffFor(artifact) {
|
|
77
|
+
const input = record(artifact.input);
|
|
78
|
+
const output = record(artifact.output);
|
|
79
|
+
const details = record(output?.details);
|
|
80
|
+
return stringField(output, "diff", "patch") ?? stringField(details, "diff", "patch") ?? stringField(input, "diff", "patch");
|
|
81
|
+
}
|
|
82
|
+
function editDiffFor(artifact) {
|
|
83
|
+
const input = record(artifact.input);
|
|
84
|
+
const output = record(artifact.output);
|
|
85
|
+
return (Array.isArray(input?.edits) ? input.edits : Array.isArray(output?.edits) ? output.edits : []).flatMap((edit, index) => {
|
|
86
|
+
const source = record(edit);
|
|
87
|
+
if (!source) return [];
|
|
88
|
+
const before = stringField(source, "oldText", "old_string", "before");
|
|
89
|
+
const after = stringField(source, "newText", "new_string", "after", "content");
|
|
90
|
+
return [...before === void 0 ? [] : splitLines(artifact.id, index, before, "removed"), ...after === void 0 ? [] : splitLines(artifact.id, index, after, "added")];
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function primeAgentArtifactDiff(artifact) {
|
|
94
|
+
const unifiedDiff = unifiedDiffFor(artifact);
|
|
95
|
+
if (unifiedDiff?.trim()) {
|
|
96
|
+
const lines2 = unifiedDiff.split("\n").map((content2, index) => ({
|
|
97
|
+
id: `${artifact.id}-${index}`,
|
|
98
|
+
type: content2.startsWith("+") && !content2.startsWith("+++") ? "added" : content2.startsWith("-") && !content2.startsWith("---") ? "removed" : "context",
|
|
99
|
+
content: content2
|
|
100
|
+
}));
|
|
101
|
+
return {
|
|
102
|
+
file: filePathFor(artifact),
|
|
103
|
+
lines: lines2,
|
|
104
|
+
copyText: unifiedDiff
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
const editLines = editDiffFor(artifact);
|
|
108
|
+
if (editLines.length > 0) return {
|
|
109
|
+
file: filePathFor(artifact),
|
|
110
|
+
lines: editLines,
|
|
111
|
+
copyText: editLines.map((line) => `${line.type === "added" ? "+" : line.type === "removed" ? "-" : " "}${line.content}`).join("\n")
|
|
112
|
+
};
|
|
113
|
+
const input = record(artifact.input);
|
|
114
|
+
const output = record(artifact.output);
|
|
115
|
+
if (!(artifact.title.toLowerCase().includes("write") || input?.content !== void 0)) return void 0;
|
|
116
|
+
const content = textContent(input?.content) ?? textContent(output?.content);
|
|
117
|
+
if (content === void 0) return void 0;
|
|
118
|
+
const lines = splitLines(artifact.id, 0, content, "added");
|
|
119
|
+
return {
|
|
120
|
+
file: filePathFor(artifact),
|
|
121
|
+
lines,
|
|
122
|
+
copyText: lines.map((line) => `+${line.content}`).join("\n")
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
function artifactKind(name) {
|
|
126
|
+
const lower = name.toLowerCase();
|
|
127
|
+
if (lower.includes("thinking") || lower.includes("reasoning") || lower.includes("question")) return void 0;
|
|
128
|
+
if (lower.includes("bash") || lower.includes("shell")) return "bash";
|
|
129
|
+
if (lower.includes("ipython") || lower.includes("python")) return "ipython";
|
|
130
|
+
if (lower.includes("mcp")) return "mcp";
|
|
131
|
+
if (lower.includes("edit") || lower.includes("write") || lower.includes("patch")) return "diff";
|
|
132
|
+
return "generic";
|
|
133
|
+
}
|
|
134
|
+
function statusFor(part, chatStatus) {
|
|
135
|
+
const state = typeof part.state === "string" ? part.state : void 0;
|
|
136
|
+
if (state === "output-error" || state === "error") return "error";
|
|
137
|
+
if (state === "output-available" || state === "complete" || state === "success") return "success";
|
|
138
|
+
if (state === "cancelled" || state === "canceled" || state === "aborted" || state === "interrupted") return "cancelled";
|
|
139
|
+
if (part.error !== void 0) return "error";
|
|
140
|
+
if (part.output !== void 0 || part.result !== void 0) return "success";
|
|
141
|
+
return chatStatus === "streaming" ? "running" : "cancelled";
|
|
142
|
+
}
|
|
143
|
+
function upsertRun(runs, artifact) {
|
|
144
|
+
const run = runs.find((candidate) => candidate.runId === artifact.runId);
|
|
145
|
+
if (!run) {
|
|
146
|
+
runs.push({
|
|
147
|
+
id: stablePresentationId(`artifact-run:${artifact.runId}`),
|
|
148
|
+
runId: artifact.runId,
|
|
149
|
+
artifacts: [artifact],
|
|
150
|
+
startedAt: artifact.timestamp,
|
|
151
|
+
...artifact.status !== "running" ? { endedAt: artifact.timestamp } : {}
|
|
152
|
+
});
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const existing = run.artifacts.findIndex((candidate) => candidate.id === artifact.id);
|
|
156
|
+
if (existing < 0) run.artifacts.push(artifact);
|
|
157
|
+
else run.artifacts[existing] = artifact;
|
|
158
|
+
if (artifact.status !== "running") run.endedAt = artifact.timestamp;
|
|
159
|
+
}
|
|
160
|
+
function artifactsFromMessages(messages, chatStatus) {
|
|
161
|
+
const runs = [];
|
|
162
|
+
for (const message of messages) for (const [partIndex, part] of message.parts.entries()) {
|
|
163
|
+
const source = record(part);
|
|
164
|
+
if (!source) continue;
|
|
165
|
+
const type = source?.type;
|
|
166
|
+
if (typeof type !== "string" || !type.startsWith("tool-")) continue;
|
|
167
|
+
const name = type.slice(5);
|
|
168
|
+
const kind = artifactKind(name);
|
|
169
|
+
if (!kind) continue;
|
|
170
|
+
const input = source.input ?? source.args;
|
|
171
|
+
const output = source.output ?? source.result;
|
|
172
|
+
if (input === void 0 && output === void 0) continue;
|
|
173
|
+
const sourceId = typeof source.toolCallId === "string" && source.toolCallId ? source.toolCallId : `${message.id}:${partIndex}`;
|
|
174
|
+
const runId = typeof source.runId === "string" && source.runId ? source.runId : message.id;
|
|
175
|
+
const timestamp = timestampFor(message);
|
|
176
|
+
upsertRun(runs, {
|
|
177
|
+
id: stablePresentationId(`${runId}:${sourceId}:${kind}`),
|
|
178
|
+
runId,
|
|
179
|
+
sourceMessageId: message.id,
|
|
180
|
+
...typeof source.toolCallId === "string" ? { sourceToolCallId: source.toolCallId } : {},
|
|
181
|
+
kind,
|
|
182
|
+
title: name,
|
|
183
|
+
status: statusFor(source, chatStatus),
|
|
184
|
+
...input !== void 0 ? { input } : {},
|
|
185
|
+
...output !== void 0 ? { output } : {},
|
|
186
|
+
...typeof source.backgroundOutput === "string" ? { backgroundOutput: source.backgroundOutput } : {},
|
|
187
|
+
timestamp
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
return runs;
|
|
191
|
+
}
|
|
192
|
+
function derivePrimeAgentArtifactRuns(messages, presentation, chatStatus) {
|
|
193
|
+
const runs = (presentation?.artifactRuns ?? []).map((run) => ({
|
|
194
|
+
...run,
|
|
195
|
+
artifacts: run.artifacts.map((artifact) => ({ ...artifact }))
|
|
196
|
+
}));
|
|
197
|
+
for (const run of artifactsFromMessages(messages, chatStatus)) for (const artifact of run.artifacts) upsertRun(runs, artifact);
|
|
198
|
+
return runs;
|
|
199
|
+
}
|
|
200
|
+
|
|
30
201
|
// web/app/dist/server/assets/collapsible-BJWsiuIc.js
|
|
31
202
|
import { jsx } from "react/jsx-runtime";
|
|
32
203
|
|
|
@@ -647,6 +818,8 @@ function CollapsibleContent({ ...props }) {
|
|
|
647
818
|
}
|
|
648
819
|
|
|
649
820
|
export {
|
|
821
|
+
primeAgentArtifactDiff,
|
|
822
|
+
derivePrimeAgentArtifactRuns,
|
|
650
823
|
Collapsible$1,
|
|
651
824
|
CollapsibleTrigger3 as CollapsibleTrigger,
|
|
652
825
|
CollapsibleContent
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
SessionToolRenderer
|
|
3
|
-
} from "./chunk-WCKKN5BR.js";
|
|
4
1
|
import {
|
|
5
2
|
ToolTimeline
|
|
6
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5IE54MRG.js";
|
|
4
|
+
import {
|
|
5
|
+
SessionToolRenderer
|
|
6
|
+
} from "./chunk-B5FKCW75.js";
|
|
7
7
|
import {
|
|
8
8
|
Message,
|
|
9
9
|
MessageBubble,
|
|
@@ -11,32 +11,39 @@ import {
|
|
|
11
11
|
MessageContent,
|
|
12
12
|
MessageScroller,
|
|
13
13
|
SessionGenerativeTextRenderer,
|
|
14
|
+
Trace,
|
|
15
|
+
TraceCollapsible,
|
|
16
|
+
TraceCollapsibleContent,
|
|
17
|
+
TraceCollapsibleTrigger,
|
|
18
|
+
TraceDescription,
|
|
19
|
+
TraceIcon,
|
|
20
|
+
TraceLine,
|
|
21
|
+
TraceTitle,
|
|
14
22
|
UserMessage,
|
|
15
23
|
VirtualizedTurnList,
|
|
16
24
|
buildAssistantElements,
|
|
17
|
-
derivePrimeAgentArtifactRuns,
|
|
18
25
|
groupMessages,
|
|
19
26
|
normalizeAssistantToolParts,
|
|
20
27
|
orderedRlmChildren,
|
|
21
28
|
rlmStatusIcon,
|
|
22
29
|
transcriptStatus
|
|
23
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-V2GCVTDP.js";
|
|
31
|
+
import {
|
|
32
|
+
derivePrimeAgentArtifactRuns
|
|
33
|
+
} from "./chunk-5MOXRFX6.js";
|
|
24
34
|
import {
|
|
25
35
|
Button$1
|
|
26
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-FSQWWR2M.js";
|
|
27
37
|
import {
|
|
28
38
|
Bot,
|
|
29
|
-
ChevronDown,
|
|
30
39
|
CircleAlert,
|
|
31
40
|
CircleCheck,
|
|
32
41
|
LoaderCircle,
|
|
33
|
-
RefreshCw
|
|
34
|
-
} from "./chunk-GLH2GWMG.js";
|
|
35
|
-
import {
|
|
42
|
+
RefreshCw,
|
|
36
43
|
cn
|
|
37
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-VDEUVEWL.js";
|
|
38
45
|
|
|
39
|
-
// web/app/dist/server/assets/subagent-transcript-
|
|
46
|
+
// web/app/dist/server/assets/subagent-transcript-DELYb-YR.js
|
|
40
47
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
41
48
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
42
49
|
function SubagentList({ children, tree, className }) {
|
|
@@ -44,66 +51,49 @@ function SubagentList({ children, tree, className }) {
|
|
|
44
51
|
const active = agents.some((child) => child.status === "queued" || child.status === "running" || child.status === "recovering");
|
|
45
52
|
const [open, setOpen] = useState(active);
|
|
46
53
|
if (agents.length === 0) return null;
|
|
47
|
-
return /* @__PURE__ */
|
|
48
|
-
className: cn("mt-2
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}), child.model ? /* @__PURE__ */ jsx("span", {
|
|
84
|
-
className: "truncate font-mono text-micro text-muted-foreground",
|
|
85
|
-
children: child.model
|
|
86
|
-
}) : null]
|
|
87
|
-
}), child.answerPreview || child.progressNote || child.activity?.toolName || child.error ? /* @__PURE__ */ jsx("p", {
|
|
88
|
-
className: "truncate text-xs text-muted-foreground",
|
|
89
|
-
children: child.error ?? child.answerPreview ?? child.progressNote ?? child.activity?.toolName
|
|
90
|
-
}) : null]
|
|
91
|
-
}),
|
|
92
|
-
/* @__PURE__ */ jsx("span", {
|
|
93
|
-
className: "shrink-0 text-micro capitalize text-muted-foreground",
|
|
94
|
-
children: child.status
|
|
95
|
-
})
|
|
96
|
-
]
|
|
97
|
-
}, child.id))
|
|
98
|
-
}) : null]
|
|
54
|
+
return /* @__PURE__ */ jsx(Trace, {
|
|
55
|
+
className: cn("mt-2", className),
|
|
56
|
+
"data-testid": "subagent-trace",
|
|
57
|
+
children: /* @__PURE__ */ jsxs(TraceCollapsible, {
|
|
58
|
+
open: open || active,
|
|
59
|
+
onOpenChange: setOpen,
|
|
60
|
+
children: [/* @__PURE__ */ jsx(TraceCollapsibleTrigger, {
|
|
61
|
+
"aria-label": active ? "Subagents working" : "Subagents completed",
|
|
62
|
+
children: /* @__PURE__ */ jsxs(TraceLine, {
|
|
63
|
+
status: active ? "running" : void 0,
|
|
64
|
+
children: [
|
|
65
|
+
/* @__PURE__ */ jsx(TraceIcon, { children: active ? /* @__PURE__ */ jsx(LoaderCircle, { className: "animate-spin" }) : /* @__PURE__ */ jsx(CircleCheck, {}) }),
|
|
66
|
+
/* @__PURE__ */ jsx(TraceTitle, { children: active ? "Subagents working" : "Subagents completed" }),
|
|
67
|
+
/* @__PURE__ */ jsx(TraceDescription, { children: agents.length })
|
|
68
|
+
]
|
|
69
|
+
})
|
|
70
|
+
}), /* @__PURE__ */ jsx(TraceCollapsibleContent, { children: /* @__PURE__ */ jsx(Trace, {
|
|
71
|
+
className: "gap-1",
|
|
72
|
+
children: agents.map((child) => /* @__PURE__ */ jsxs(TraceLine, {
|
|
73
|
+
style: { paddingLeft: `${Math.max(0, child.depth ?? 0) * 12}px` },
|
|
74
|
+
children: [
|
|
75
|
+
/* @__PURE__ */ jsx(TraceIcon, { children: rlmStatusIcon(child.status) }),
|
|
76
|
+
/* @__PURE__ */ jsx(TraceTitle, { children: child.label }),
|
|
77
|
+
child.model ? /* @__PURE__ */ jsx(TraceDescription, { children: child.model }) : null,
|
|
78
|
+
/* @__PURE__ */ jsx(TraceDescription, {
|
|
79
|
+
className: "capitalize",
|
|
80
|
+
children: child.status
|
|
81
|
+
}),
|
|
82
|
+
child.error || child.answerPreview || child.progressNote || child.activity?.toolName ? /* @__PURE__ */ jsx(TraceDescription, {
|
|
83
|
+
className: "max-w-56 truncate",
|
|
84
|
+
children: child.error || child.answerPreview || child.progressNote || child.activity?.toolName
|
|
85
|
+
}) : null
|
|
86
|
+
]
|
|
87
|
+
}, child.id))
|
|
88
|
+
}) })]
|
|
89
|
+
})
|
|
99
90
|
});
|
|
100
91
|
}
|
|
101
|
-
function SubagentTurnView({ turn, isLast, isStreaming,
|
|
102
|
-
const assistantElements = useMemo(() => turn.assistants.flatMap((message, index) => buildAssistantElements(normalizeAssistantToolParts(message.parts ?? []), {
|
|
92
|
+
function SubagentTurnView({ turn, isLast, isStreaming, presentation, artifacts }) {
|
|
93
|
+
const assistantElements = useMemo(() => turn.assistants.flatMap((message, index) => buildAssistantElements(normalizeAssistantToolParts((message.parts ?? []).filter((part) => part.type !== "tool-FleetReasoning" && part.type !== "tool-Thinking")), {
|
|
103
94
|
messageId: message.id,
|
|
104
95
|
isLast: isLast && index === turn.assistants.length - 1,
|
|
105
96
|
isStreaming,
|
|
106
|
-
suppressQuestionTool: true,
|
|
107
97
|
ToolRendererComponent: SessionToolRenderer,
|
|
108
98
|
TextRendererComponent: SessionGenerativeTextRenderer
|
|
109
99
|
})), [
|
|
@@ -124,15 +114,15 @@ function SubagentTurnView({ turn, isLast, isStreaming, artifacts, presentation }
|
|
|
124
114
|
children: /* @__PURE__ */ jsx(MessageContent, { children: /* @__PURE__ */ jsx(MessageBubble, {
|
|
125
115
|
variant: "ghost",
|
|
126
116
|
children: /* @__PURE__ */ jsxs(MessageBubbleContent, { children: [
|
|
127
|
-
isLast ? /* @__PURE__ */ jsx(ToolTimeline, {
|
|
128
|
-
messages: turn.assistants,
|
|
129
|
-
artifacts,
|
|
130
|
-
streaming: isStreaming
|
|
131
|
-
}) : null,
|
|
132
117
|
/* @__PURE__ */ jsx("div", {
|
|
133
118
|
className: "flex flex-col gap-3",
|
|
134
119
|
children: assistantElements
|
|
135
120
|
}),
|
|
121
|
+
isLast && artifacts.length > 0 ? /* @__PURE__ */ jsx(ToolTimeline, {
|
|
122
|
+
messages: [],
|
|
123
|
+
artifacts,
|
|
124
|
+
streaming: isStreaming
|
|
125
|
+
}) : null,
|
|
136
126
|
isLast && presentation ? /* @__PURE__ */ jsx(SubagentList, {
|
|
137
127
|
tree: presentation.rlmTree,
|
|
138
128
|
children: presentation.rlmChildren
|
|
@@ -149,7 +139,10 @@ function SubagentTranscriptView({ child, parentSessionId, transcript, onRefresh,
|
|
|
149
139
|
const turns = useMemo(() => transcript?.status !== "loading" ? groupMessages(transcript?.messages ?? []) : [], [transcript]);
|
|
150
140
|
const childStatus = statusOverride ?? transcriptStatus(child);
|
|
151
141
|
const artifactRuns = useMemo(() => transcript?.status !== "loading" ? derivePrimeAgentArtifactRuns(transcript?.messages ?? [], transcript?.presentation, childStatus) : [], [childStatus, transcript]);
|
|
152
|
-
const
|
|
142
|
+
const artifactOnlyEvents = useMemo(() => {
|
|
143
|
+
const toolIds = new Set((transcript?.messages ?? []).flatMap((message) => message.parts.flatMap((part) => "toolCallId" in part && part.toolCallId ? [part.toolCallId] : [])));
|
|
144
|
+
return artifactRuns.flatMap((run) => run.artifacts).filter((artifact) => !artifact.sourceToolCallId || !toolIds.has(artifact.sourceToolCallId));
|
|
145
|
+
}, [artifactRuns, transcript]);
|
|
153
146
|
const presentation = transcript?.presentation;
|
|
154
147
|
const renderSubagentTurn = useCallback((turn, index) => {
|
|
155
148
|
const isLast = index === turns.length - 1;
|
|
@@ -157,11 +150,11 @@ function SubagentTranscriptView({ child, parentSessionId, transcript, onRefresh,
|
|
|
157
150
|
turn,
|
|
158
151
|
isLast,
|
|
159
152
|
isStreaming: isLast && childStatus === "streaming",
|
|
160
|
-
|
|
161
|
-
|
|
153
|
+
presentation: isLast ? presentation : void 0,
|
|
154
|
+
artifacts: isLast ? artifactOnlyEvents : []
|
|
162
155
|
});
|
|
163
156
|
}, [
|
|
164
|
-
|
|
157
|
+
artifactOnlyEvents,
|
|
165
158
|
childStatus,
|
|
166
159
|
presentation,
|
|
167
160
|
turns.length
|
|
@@ -206,9 +199,9 @@ function SubagentTranscriptView({ child, parentSessionId, transcript, onRefresh,
|
|
|
206
199
|
title: child.progressNote,
|
|
207
200
|
children: ["Progress: ", child.progressNote]
|
|
208
201
|
}) : null,
|
|
209
|
-
child.answerPreview
|
|
202
|
+
child.answerPreview ? /* @__PURE__ */ jsx("p", {
|
|
210
203
|
className: "mt-1 line-clamp-3 whitespace-pre-wrap text-caption leading-4 text-foreground/55",
|
|
211
|
-
children: child.answerPreview
|
|
204
|
+
children: child.answerPreview
|
|
212
205
|
}) : null
|
|
213
206
|
]
|
|
214
207
|
}),
|