@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
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// web/app/dist/server/assets/safe-external-url-Dd4WdO3j.js
|
|
2
|
-
function isSafeExternalUrl(value) {
|
|
3
|
-
try {
|
|
4
|
-
const url = new URL(value);
|
|
5
|
-
return url.protocol === "http:" || url.protocol === "https:";
|
|
6
|
-
} catch {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export {
|
|
12
|
-
isSafeExternalUrl
|
|
13
|
-
};
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AnimationFrame,
|
|
3
|
-
error,
|
|
4
|
-
useId,
|
|
5
|
-
useIsoLayoutEffect
|
|
6
|
-
} from "./chunk-GLSR4ZI2.js";
|
|
7
|
-
import {
|
|
8
|
-
cn
|
|
9
|
-
} from "./chunk-TMQ3MT3D.js";
|
|
10
|
-
|
|
11
|
-
// web/app/dist/server/assets/surfaces-De8PLN4C.js
|
|
12
|
-
import { createContext, useContext, useLayoutEffect, useRef, useState } from "react";
|
|
13
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
-
var SurfaceContext = createContext(1);
|
|
15
|
-
function useSurface() {
|
|
16
|
-
return useContext(SurfaceContext);
|
|
17
|
-
}
|
|
18
|
-
function SurfaceProvider({ value, children }) {
|
|
19
|
-
return /* @__PURE__ */ jsx(SurfaceContext.Provider, {
|
|
20
|
-
value: Math.max(1, Math.min(8, value)),
|
|
21
|
-
children
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
var SURFACE_BG = {
|
|
25
|
-
1: "bg-surface-1",
|
|
26
|
-
2: "bg-surface-2",
|
|
27
|
-
3: "bg-surface-3",
|
|
28
|
-
4: "bg-surface-4",
|
|
29
|
-
5: "bg-surface-5",
|
|
30
|
-
6: "bg-surface-6",
|
|
31
|
-
7: "bg-surface-7",
|
|
32
|
-
8: "bg-surface-8"
|
|
33
|
-
};
|
|
34
|
-
var SURFACE_SHADOW = {
|
|
35
|
-
1: "shadow-surface-1",
|
|
36
|
-
2: "shadow-surface-2",
|
|
37
|
-
3: "shadow-surface-3",
|
|
38
|
-
4: "shadow-surface-4",
|
|
39
|
-
5: "shadow-surface-5",
|
|
40
|
-
6: "shadow-surface-6",
|
|
41
|
-
7: "shadow-surface-7",
|
|
42
|
-
8: "shadow-surface-8"
|
|
43
|
-
};
|
|
44
|
-
function surfaceClasses(bgLevel, shadowLevel = bgLevel) {
|
|
45
|
-
const bg = Math.round(Math.max(1, Math.min(8, bgLevel)));
|
|
46
|
-
const shadow = Math.round(Math.max(1, Math.min(8, shadowLevel)));
|
|
47
|
-
return `${SURFACE_BG[bg]} ${SURFACE_SHADOW[shadow]}`;
|
|
48
|
-
}
|
|
49
|
-
var paper = "bg-background shadow-[0_1px_2px_rgba(0,0,0,0.04),0_12px_32px_-16px_rgba(0,0,0,0.12)] dark:bg-popover dark:shadow-none";
|
|
50
|
-
var elevatedMenu = "border border-border bg-popover text-popover-foreground shadow-lg";
|
|
51
|
-
var floating = "bg-background shadow-[0_2px_8px_rgba(0,0,0,0.05),0_20px_48px_-16px_rgba(0,0,0,0.18)] dark:bg-popover dark:shadow-[0_20px_48px_-16px_rgba(0,0,0,0.55)]";
|
|
52
|
-
var field = "bg-foreground/[0.04] dark:bg-foreground/[0.06]";
|
|
53
|
-
var labelSwap = "col-start-1 row-start-1 flex w-max items-center gap-1.5 leading-none transition-[opacity,filter] duration-300 ease-[cubic-bezier(0.23,1,0.32,1)] motion-reduce:transition-none";
|
|
54
|
-
var labelSwapIn = "opacity-100 blur-none";
|
|
55
|
-
var labelSwapOut = "pointer-events-none select-none opacity-0 blur-[2px]";
|
|
56
|
-
var collapsePanel = "h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-[cubic-bezier(0.32,0.72,0,1)] data-[ending-style]:h-0 data-[starting-style]:h-0 motion-reduce:transition-none";
|
|
57
|
-
var mono = "font-mono text-caption tracking-tight";
|
|
58
|
-
function ShimmerLabel({ active = true, className, ...props }) {
|
|
59
|
-
return /* @__PURE__ */ jsx("span", {
|
|
60
|
-
className: cn(active && "shimmer motion-reduce:animate-none", className),
|
|
61
|
-
...props
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
function SwapLabel({ active, children, className }) {
|
|
65
|
-
const firstLayerRef = useRef(null);
|
|
66
|
-
const secondLayerRef = useRef(null);
|
|
67
|
-
const [width, setWidth] = useState(null);
|
|
68
|
-
useLayoutEffect(() => {
|
|
69
|
-
const target = (active === 0 ? firstLayerRef : secondLayerRef).current;
|
|
70
|
-
if (!target) return void 0;
|
|
71
|
-
const measure = () => setWidth(Math.ceil(target.getBoundingClientRect().width));
|
|
72
|
-
measure();
|
|
73
|
-
const observer = new ResizeObserver(measure);
|
|
74
|
-
observer.observe(target);
|
|
75
|
-
return () => observer.disconnect();
|
|
76
|
-
}, [active]);
|
|
77
|
-
return /* @__PURE__ */ jsxs("span", {
|
|
78
|
-
style: width === null ? void 0 : { width },
|
|
79
|
-
className: cn("grid overflow-x-clip transition-[width] duration-300 ease-[cubic-bezier(0.23,1,0.32,1)] motion-reduce:transition-none", className),
|
|
80
|
-
children: [/* @__PURE__ */ jsx("span", {
|
|
81
|
-
ref: firstLayerRef,
|
|
82
|
-
"aria-hidden": active !== 0,
|
|
83
|
-
className: cn(labelSwap, active === 0 ? labelSwapIn : labelSwapOut),
|
|
84
|
-
children: children[0]
|
|
85
|
-
}), /* @__PURE__ */ jsx("span", {
|
|
86
|
-
ref: secondLayerRef,
|
|
87
|
-
"aria-hidden": active !== 1,
|
|
88
|
-
className: cn(labelSwap, active === 1 ? labelSwapIn : labelSwapOut),
|
|
89
|
-
children: children[1]
|
|
90
|
-
})]
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// node_modules/.pnpm/@base-ui+react@1.8.0_@date-fns+tz@1.5.0_@types+react@19.3.0_date-fns@4.4.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/internals/useBaseUiId.mjs
|
|
95
|
-
function useBaseUiId(idOverride) {
|
|
96
|
-
return useId(idOverride, "base-ui");
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// node_modules/.pnpm/@base-ui+utils@0.4.0_@types+react@19.3.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/utils/useControlled.mjs
|
|
100
|
-
import * as React from "react";
|
|
101
|
-
function useControlled({
|
|
102
|
-
controlled,
|
|
103
|
-
default: defaultProp,
|
|
104
|
-
name,
|
|
105
|
-
state = "value"
|
|
106
|
-
}) {
|
|
107
|
-
const {
|
|
108
|
-
current: isControlled
|
|
109
|
-
} = React.useRef(controlled !== void 0);
|
|
110
|
-
const [valueState, setValue] = React.useState(defaultProp);
|
|
111
|
-
const value = isControlled && controlled !== void 0 ? controlled : valueState;
|
|
112
|
-
if (process.env.NODE_ENV !== "production") {
|
|
113
|
-
React.useEffect(() => {
|
|
114
|
-
if (isControlled !== (controlled !== void 0)) {
|
|
115
|
-
error([`A component is changing the ${isControlled ? "" : "un"}controlled ${state} state of ${name} to be ${isControlled ? "un" : ""}controlled.`, "Elements should not switch from uncontrolled to controlled (or vice versa).", `Decide between using a controlled or uncontrolled ${name} element for the lifetime of the component.`, "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", "More info: https://fb.me/react-controlled-components"].join("\n"));
|
|
116
|
-
}
|
|
117
|
-
}, [state, name, controlled]);
|
|
118
|
-
const {
|
|
119
|
-
current: defaultValue
|
|
120
|
-
} = React.useRef(defaultProp);
|
|
121
|
-
React.useEffect(() => {
|
|
122
|
-
if (!isControlled && serializeToDevModeString(defaultValue) !== serializeToDevModeString(defaultProp)) {
|
|
123
|
-
error([`A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. To suppress this warning opt to use a controlled ${name}.`].join("\n"));
|
|
124
|
-
}
|
|
125
|
-
}, [defaultProp]);
|
|
126
|
-
}
|
|
127
|
-
const setValueIfUncontrolled = React.useCallback((newValue) => {
|
|
128
|
-
if (!isControlled) {
|
|
129
|
-
setValue(newValue);
|
|
130
|
-
}
|
|
131
|
-
}, []);
|
|
132
|
-
return [value, setValueIfUncontrolled];
|
|
133
|
-
}
|
|
134
|
-
function serializeToDevModeString(input) {
|
|
135
|
-
let nextId = 0;
|
|
136
|
-
const seen = /* @__PURE__ */ new WeakMap();
|
|
137
|
-
try {
|
|
138
|
-
const result = JSON.stringify(input, function replacer(key, value) {
|
|
139
|
-
if (key === "_owner" && this != null && typeof this === "object" && "$$typeof" in this) {
|
|
140
|
-
return void 0;
|
|
141
|
-
}
|
|
142
|
-
if (typeof value === "bigint") {
|
|
143
|
-
return `__bigint__:${value}`;
|
|
144
|
-
}
|
|
145
|
-
if (value !== null && typeof value === "object") {
|
|
146
|
-
const id = seen.get(value);
|
|
147
|
-
if (id !== void 0) {
|
|
148
|
-
return `__object__:${id}`;
|
|
149
|
-
}
|
|
150
|
-
seen.set(value, nextId);
|
|
151
|
-
nextId += 1;
|
|
152
|
-
}
|
|
153
|
-
return value;
|
|
154
|
-
});
|
|
155
|
-
return result ?? `__top__:${typeof input}`;
|
|
156
|
-
} catch {
|
|
157
|
-
return "__unserializable__";
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
// node_modules/.pnpm/@base-ui+react@1.8.0_@date-fns+tz@1.5.0_@types+react@19.3.0_date-fns@4.4.0_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@base-ui/react/internals/useTransitionStatus.mjs
|
|
162
|
-
import * as React2 from "react";
|
|
163
|
-
function useTransitionStatus(open, enableIdleState = false, deferEndingState = false, animateInitialOpen = false) {
|
|
164
|
-
const [transitionStatus, setTransitionStatus] = React2.useState(open && enableIdleState ? "idle" : void 0);
|
|
165
|
-
const [mounted, setMounted] = React2.useState(open && !animateInitialOpen);
|
|
166
|
-
if (open && !mounted) {
|
|
167
|
-
setMounted(true);
|
|
168
|
-
setTransitionStatus("starting");
|
|
169
|
-
}
|
|
170
|
-
if (!open && mounted && transitionStatus !== "ending" && !deferEndingState) {
|
|
171
|
-
setTransitionStatus("ending");
|
|
172
|
-
}
|
|
173
|
-
if (!open && !mounted && transitionStatus === "ending") {
|
|
174
|
-
setTransitionStatus(void 0);
|
|
175
|
-
}
|
|
176
|
-
useIsoLayoutEffect(() => {
|
|
177
|
-
if (!open && mounted && transitionStatus !== "ending" && deferEndingState) {
|
|
178
|
-
const frame = AnimationFrame.request(() => {
|
|
179
|
-
setTransitionStatus("ending");
|
|
180
|
-
});
|
|
181
|
-
return () => {
|
|
182
|
-
AnimationFrame.cancel(frame);
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
|
-
return void 0;
|
|
186
|
-
}, [open, mounted, transitionStatus, deferEndingState]);
|
|
187
|
-
useIsoLayoutEffect(() => {
|
|
188
|
-
if (!open || enableIdleState) {
|
|
189
|
-
return void 0;
|
|
190
|
-
}
|
|
191
|
-
const frame = AnimationFrame.request(() => {
|
|
192
|
-
setTransitionStatus(void 0);
|
|
193
|
-
});
|
|
194
|
-
return () => {
|
|
195
|
-
AnimationFrame.cancel(frame);
|
|
196
|
-
};
|
|
197
|
-
}, [enableIdleState, open]);
|
|
198
|
-
useIsoLayoutEffect(() => {
|
|
199
|
-
if (!open || !enableIdleState) {
|
|
200
|
-
return void 0;
|
|
201
|
-
}
|
|
202
|
-
if (open && mounted && transitionStatus !== "idle") {
|
|
203
|
-
setTransitionStatus("starting");
|
|
204
|
-
}
|
|
205
|
-
const frame = AnimationFrame.request(() => {
|
|
206
|
-
setTransitionStatus("idle");
|
|
207
|
-
});
|
|
208
|
-
return () => {
|
|
209
|
-
AnimationFrame.cancel(frame);
|
|
210
|
-
};
|
|
211
|
-
}, [enableIdleState, open, mounted, transitionStatus]);
|
|
212
|
-
return {
|
|
213
|
-
mounted,
|
|
214
|
-
setMounted,
|
|
215
|
-
transitionStatus
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
export {
|
|
220
|
-
useTransitionStatus,
|
|
221
|
-
useSurface,
|
|
222
|
-
SurfaceProvider,
|
|
223
|
-
surfaceClasses,
|
|
224
|
-
paper,
|
|
225
|
-
elevatedMenu,
|
|
226
|
-
floating,
|
|
227
|
-
field,
|
|
228
|
-
collapsePanel,
|
|
229
|
-
mono,
|
|
230
|
-
ShimmerLabel,
|
|
231
|
-
SwapLabel,
|
|
232
|
-
useBaseUiId,
|
|
233
|
-
useControlled
|
|
234
|
-
};
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ChevronDown,
|
|
3
|
-
FilePenLine,
|
|
4
|
-
FileSearch,
|
|
5
|
-
Terminal,
|
|
6
|
-
Wrench
|
|
7
|
-
} from "./chunk-GLH2GWMG.js";
|
|
8
|
-
import {
|
|
9
|
-
__exportAll
|
|
10
|
-
} from "./chunk-OO7NBFQQ.js";
|
|
11
|
-
import {
|
|
12
|
-
cn
|
|
13
|
-
} from "./chunk-TMQ3MT3D.js";
|
|
14
|
-
|
|
15
|
-
// web/app/dist/server/assets/tool-timeline-BKWsrZHK.js
|
|
16
|
-
import { useMemo, useState } from "react";
|
|
17
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
|
-
var tool_timeline_exports = /* @__PURE__ */ __exportAll({ ToolTimeline: () => ToolTimeline });
|
|
19
|
-
var NO_ARTIFACTS = [];
|
|
20
|
-
function artifactPanel(kind) {
|
|
21
|
-
return kind === "ipython" ? "repl" : "artifacts";
|
|
22
|
-
}
|
|
23
|
-
function withArtifact(step, artifact) {
|
|
24
|
-
if (!artifact) return step;
|
|
25
|
-
return {
|
|
26
|
-
...step,
|
|
27
|
-
artifactId: artifact.id,
|
|
28
|
-
artifactTitle: artifact.title,
|
|
29
|
-
artifactTarget: artifactPanel(artifact.kind)
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function record(value) {
|
|
33
|
-
return typeof value === "object" && value !== null && !Array.isArray(value) ? value : void 0;
|
|
34
|
-
}
|
|
35
|
-
function target(input, fallback) {
|
|
36
|
-
const source = record(input);
|
|
37
|
-
for (const key of [
|
|
38
|
-
"path",
|
|
39
|
-
"filePath",
|
|
40
|
-
"command",
|
|
41
|
-
"cmd",
|
|
42
|
-
"query",
|
|
43
|
-
"pattern",
|
|
44
|
-
"code"
|
|
45
|
-
]) if (typeof source?.[key] === "string" && source[key]) return source[key];
|
|
46
|
-
return fallback;
|
|
47
|
-
}
|
|
48
|
-
function status(part, streaming) {
|
|
49
|
-
const state = part.state;
|
|
50
|
-
if (state === "output-error" || state === "error") return "error";
|
|
51
|
-
if (state === "cancelled" || state === "canceled" || state === "aborted") return "cancelled";
|
|
52
|
-
if (state === "input-streaming" || state === "streaming") return streaming ? "running" : "cancelled";
|
|
53
|
-
return streaming && part.output === void 0 && part.result === void 0 ? "running" : "complete";
|
|
54
|
-
}
|
|
55
|
-
function toolStep(part, fallbackId, streaming) {
|
|
56
|
-
const type = part.type;
|
|
57
|
-
if (typeof type !== "string" || !type.startsWith("tool-") || type === "tool-FleetReasoning" || type === "tool-Thinking") return void 0;
|
|
58
|
-
const name = type.slice(5);
|
|
59
|
-
const lower = name.toLowerCase();
|
|
60
|
-
const icon = lower.includes("edit") || lower.includes("write") || lower.includes("patch") ? FilePenLine : lower.includes("read") || lower.includes("search") || lower.includes("grep") || lower.includes("glob") ? FileSearch : lower.includes("bash") || lower.includes("shell") || lower.includes("python") || lower.includes("ipython") ? Terminal : Wrench;
|
|
61
|
-
const verb = lower.includes("edit") || lower.includes("write") || lower.includes("patch") ? "Edited" : lower.includes("read") ? "Read" : lower.includes("search") || lower.includes("grep") || lower.includes("glob") ? "Searched" : lower.includes("bash") || lower.includes("shell") || lower.includes("python") || lower.includes("ipython") ? "Ran" : name;
|
|
62
|
-
return {
|
|
63
|
-
id: typeof part.toolCallId === "string" ? part.toolCallId : fallbackId,
|
|
64
|
-
icon,
|
|
65
|
-
verb,
|
|
66
|
-
target: target(part.input ?? part.args, name),
|
|
67
|
-
status: status(part, streaming)
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
function artifactStep(artifact) {
|
|
71
|
-
const icon = artifact.kind === "diff" ? FilePenLine : artifact.kind === "bash" || artifact.kind === "ipython" ? Terminal : Wrench;
|
|
72
|
-
return {
|
|
73
|
-
id: `artifact:${artifact.id}`,
|
|
74
|
-
icon,
|
|
75
|
-
verb: artifact.kind === "compaction" ? "Compacted" : artifact.kind === "refinement" ? "Refined" : artifact.kind === "recap" ? "Recapped" : artifact.kind === "rlm" ? "Delegated" : artifact.kind === "diff" ? "Edited" : "Completed",
|
|
76
|
-
target: artifact.title,
|
|
77
|
-
status: artifact.status === "success" ? "complete" : artifact.status
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
function statusClass(status2) {
|
|
81
|
-
if (status2 === "running") return "text-primary";
|
|
82
|
-
if (status2 === "error") return "text-destructive";
|
|
83
|
-
if (status2 === "cancelled") return "text-muted-foreground";
|
|
84
|
-
return "text-success";
|
|
85
|
-
}
|
|
86
|
-
function ToolTimeline({ messages, artifacts = NO_ARTIFACTS, streaming, className, onOpenArtifact }) {
|
|
87
|
-
const steps = useMemo(() => {
|
|
88
|
-
const seen = /* @__PURE__ */ new Set();
|
|
89
|
-
const artifactByToolCallId = new Map(artifacts.flatMap((artifact) => artifact.sourceToolCallId ? [[artifact.sourceToolCallId, artifact]] : []));
|
|
90
|
-
const fromMessages = messages.flatMap((message) => message.parts.flatMap((part, index) => {
|
|
91
|
-
const step = toolStep(record(part) ?? {}, `${message.id}:${index}`, streaming);
|
|
92
|
-
if (!step || seen.has(step.id)) return [];
|
|
93
|
-
seen.add(step.id);
|
|
94
|
-
return [withArtifact(step, artifactByToolCallId.get(step.id))];
|
|
95
|
-
}));
|
|
96
|
-
const fromArtifacts = artifacts.flatMap((artifact) => {
|
|
97
|
-
if (artifact.sourceToolCallId && seen.has(artifact.sourceToolCallId)) return [];
|
|
98
|
-
const step = withArtifact(artifactStep(artifact), artifact);
|
|
99
|
-
if (seen.has(step.id)) return [];
|
|
100
|
-
seen.add(step.id);
|
|
101
|
-
return [step];
|
|
102
|
-
});
|
|
103
|
-
return [...fromMessages, ...fromArtifacts];
|
|
104
|
-
}, [
|
|
105
|
-
artifacts,
|
|
106
|
-
messages,
|
|
107
|
-
streaming
|
|
108
|
-
]);
|
|
109
|
-
const [open, setOpen] = useState(true);
|
|
110
|
-
if (steps.length === 0) return null;
|
|
111
|
-
const active = steps.at(-1);
|
|
112
|
-
const ActiveIcon = active?.icon;
|
|
113
|
-
return /* @__PURE__ */ jsxs("section", {
|
|
114
|
-
className: cn("mb-2 rounded-xl border border-border/60 bg-muted/20", className),
|
|
115
|
-
children: [/* @__PURE__ */ jsxs("button", {
|
|
116
|
-
type: "button",
|
|
117
|
-
"aria-expanded": open,
|
|
118
|
-
onClick: () => setOpen((current) => !current),
|
|
119
|
-
className: "flex w-full items-center gap-2 px-3 py-2 text-left text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
120
|
-
children: [
|
|
121
|
-
active && ActiveIcon ? /* @__PURE__ */ jsx(ActiveIcon, { className: cn("size-3.5 shrink-0", statusClass(active.status), active.status === "running" && "animate-pulse") }) : null,
|
|
122
|
-
/* @__PURE__ */ jsx("span", {
|
|
123
|
-
className: "min-w-0 flex-1 truncate font-medium",
|
|
124
|
-
children: streaming && active ? `${active.verb} ${active.target}` : `${steps.length} tool ${steps.length === 1 ? "action" : "actions"}`
|
|
125
|
-
}),
|
|
126
|
-
/* @__PURE__ */ jsx(ChevronDown, { className: cn("size-3.5 text-muted-foreground transition-transform", open && "rotate-180") })
|
|
127
|
-
]
|
|
128
|
-
}), open ? /* @__PURE__ */ jsx("div", {
|
|
129
|
-
className: "space-y-1 border-t border-border/50 px-3 py-2",
|
|
130
|
-
children: steps.map((step) => {
|
|
131
|
-
const Icon = step.icon;
|
|
132
|
-
const artifactId = step.artifactId;
|
|
133
|
-
const openLabel = artifactId && step.artifactTitle ? step.artifactTarget === "repl" ? `Open ${step.artifactTitle} in REPL` : `Open ${step.artifactTitle} in artifacts` : void 0;
|
|
134
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
135
|
-
className: "flex min-w-0 items-center gap-2 text-xs",
|
|
136
|
-
children: [
|
|
137
|
-
/* @__PURE__ */ jsx(Icon, { className: cn("size-3.5 shrink-0", statusClass(step.status)) }),
|
|
138
|
-
/* @__PURE__ */ jsx("span", {
|
|
139
|
-
className: "shrink-0 text-muted-foreground",
|
|
140
|
-
children: step.verb
|
|
141
|
-
}),
|
|
142
|
-
/* @__PURE__ */ jsx("span", {
|
|
143
|
-
className: "min-w-0 flex-1 truncate font-mono text-foreground/75",
|
|
144
|
-
children: step.target
|
|
145
|
-
}),
|
|
146
|
-
openLabel && artifactId && onOpenArtifact ? /* @__PURE__ */ jsx("button", {
|
|
147
|
-
type: "button",
|
|
148
|
-
className: "shrink-0 text-micro text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
149
|
-
"aria-label": openLabel,
|
|
150
|
-
onClick: () => onOpenArtifact(artifactId, step.artifactTarget),
|
|
151
|
-
children: "Open"
|
|
152
|
-
}) : null
|
|
153
|
-
]
|
|
154
|
-
}, step.id);
|
|
155
|
-
})
|
|
156
|
-
}) : null]
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export {
|
|
161
|
-
tool_timeline_exports,
|
|
162
|
-
ToolTimeline
|
|
163
|
-
};
|