@qredence/fleet 0.10.3 → 0.10.4

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 (91) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/web/client/assets/{artifacts-panel-CfWH5cQn.js → artifacts-panel-CDuvwZXW.js} +1 -1
  3. package/dist/web/client/assets/{chat-command-palette-CKGrP-Ke.js → chat-command-palette-DSpwG3Ph.js} +1 -1
  4. package/dist/web/client/assets/{ipython-tool-bieUhw9K.js → cpython-tool-CcGMkNQ4.js} +1 -1
  5. package/dist/web/client/assets/globals-CR3boQb2.css +2 -0
  6. package/dist/web/client/assets/{index-DJDQWCGd.js → index-BpqhS0Xv.js} +2 -2
  7. package/dist/web/client/assets/prime-agent-artifacts-CuR1D_ch.js +5 -0
  8. package/dist/web/client/assets/reasoning-line-B79r9oqP.js +1 -0
  9. package/dist/web/client/assets/{repl-panel-5xgkDXO5.js → repl-panel-Dj0nX5A6.js} +1 -1
  10. package/dist/web/client/assets/right-panel-registry-HNH3niQ8.js +2 -0
  11. package/dist/web/client/assets/routes-CJRPrnVB.js +14 -0
  12. package/dist/web/client/assets/session-activity-panel-Dvy044_T.js +1 -0
  13. package/dist/web/client/assets/{session-insights-panel-BXEmuJKf.js → session-insights-panel-Bltz_o6C.js} +1 -1
  14. package/dist/web/client/assets/{session-tool-renderer-CGMatufW.js → session-tool-renderer-BLFqj28b.js} +7 -7
  15. package/dist/web/client/assets/{subagent-chat-panel-xm-zBsFL.js → subagent-chat-panel-Cr57arv9.js} +1 -1
  16. package/dist/web/client/assets/subagent-transcript-CqAEPEJp.js +1 -0
  17. package/dist/web/client/assets/subagents-panel-DCjSDcM4.js +1 -0
  18. package/dist/web/client/assets/tool-action-icon-vTW_L1Fj.js +1 -0
  19. package/dist/web/client/assets/tool-output-normalizer-DDoLNo4P.js +4 -0
  20. package/dist/web/client/assets/tool-part-normalizer-DdgmYc9z.js +4 -0
  21. package/dist/web/client/assets/{tool-result-C_RIixge.js → tool-result-DxWDQJSF.js} +3 -3
  22. package/dist/web/client/assets/tool-timeline-BoWCZg0K.js +2 -0
  23. package/dist/web/client/bundle-budget.json +5 -5
  24. package/dist/web/server/{_tanstack-start-manifest_v-Cs4JeecK-7Q7PABV3.js → _tanstack-start-manifest_v-BhSwNUm2-HUY424SL.js} +9 -9
  25. package/dist/web/server/{agents-DOgCHixY-TU7YLWS2.js → agents-DOgCHixY-U362NTZW.js} +1 -1
  26. package/dist/web/server/{agents-page-BdiR9H8w-UXB7T3LH.js → agents-page-BdiR9H8w-WK3UCXSA.js} +5 -5
  27. package/dist/web/server/{artifacts-panel-DjaLT-MS-DAPJTA2V.js → artifacts-panel-C9OUKEU0-N74QLS6E.js} +18 -18
  28. package/dist/web/server/{chat-command-palette-CGCsCr9E-U5PCLXNE.js → chat-command-palette-CnKy1Q4g-GJJGAVQ4.js} +12 -12
  29. package/dist/web/server/{chunk-GNXIDE26.js → chunk-2R5CY7DW.js} +2 -2
  30. package/dist/web/server/{chunk-MEAWBN4N.js → chunk-37MAYG3X.js} +15 -15
  31. package/dist/web/server/{chunk-3LAD2C43.js → chunk-3KHS4HHI.js} +13 -13
  32. package/dist/web/server/{chunk-BD7YKYWL.js → chunk-4ISLMQ2M.js} +3 -3
  33. package/dist/web/server/{chunk-FSQWWR2M.js → chunk-4ZKBYAHH.js} +1 -1
  34. package/dist/web/server/{chunk-BLGKLQJG.js → chunk-63IBRYZL.js} +6 -6
  35. package/dist/web/server/{chunk-TXZDDJCT.js → chunk-6OZY4XH7.js} +3 -3
  36. package/dist/web/server/{chunk-QWJE6ES6.js → chunk-A6LRK2MC.js} +142 -32
  37. package/dist/web/server/{chunk-PBNUO4IN.js → chunk-BG4DVGLL.js} +2 -2
  38. package/dist/web/server/{chunk-KSGGSGOA.js → chunk-BVSDXFQ6.js} +1 -1
  39. package/dist/web/server/{chunk-HAFELESQ.js → chunk-ETTLRHDY.js} +3 -3
  40. package/dist/web/server/{chunk-BZ2EAUZZ.js → chunk-F6P2FTIT.js} +3 -3
  41. package/dist/web/server/{chunk-CE7U5QB2.js → chunk-FGOT5FGH.js} +2 -2
  42. package/dist/web/server/{chunk-UULUKSQD.js → chunk-FSIRN7F7.js} +104 -94
  43. package/dist/web/server/{chunk-R4BS3KYI.js → chunk-FVTCXLYO.js} +12 -12
  44. package/dist/web/server/{chunk-2Y2543CV.js → chunk-IJZDCYFG.js} +15 -10
  45. package/dist/web/server/{chunk-FT7HNDR5.js → chunk-JR5TXTGV.js} +5 -5
  46. package/dist/web/server/{chunk-PQVTLG3E.js → chunk-NEMK2RTM.js} +4 -4
  47. package/dist/web/server/{chunk-AXN2OBPF.js → chunk-O5CPI2JH.js} +1 -1
  48. package/dist/web/server/{chunk-Q4ECIATK.js → chunk-ORO7KXHF.js} +4 -4
  49. package/dist/web/server/{chunk-VDEUVEWL.js → chunk-U26ZMWVI.js} +300 -300
  50. package/dist/web/server/{chunk-APOS34PW.js → chunk-U73UDYRF.js} +2 -2
  51. package/dist/web/server/{chunk-VBCFQNR3.js → chunk-USP4O3V7.js} +2 -2
  52. package/dist/web/server/{chunk-FNV3WZXL.js → chunk-VFW2KPLD.js} +2 -2
  53. package/dist/web/server/{chunk-5MOXRFX6.js → chunk-Y3YE73VQ.js} +45 -5
  54. package/dist/web/server/{chunk-UZ2KHDSW.js → chunk-ZRISZYHZ.js} +14 -14
  55. package/dist/web/server/{connectors-Dv_uPdv0-2TCNQ3TU.js → connectors-Dv_uPdv0-WIJGW5CQ.js} +1 -1
  56. package/dist/web/server/{connectors-page-DW75T-uH-BR36R6FT.js → connectors-page-DW75T-uH-3KBZRVAT.js} +8 -8
  57. package/dist/web/server/{create-project-dialog-aCD1v__i-37Y2AYF7.js → create-project-dialog-dwXNUwY--APUSOU5G.js} +13 -13
  58. package/dist/web/server/{fork-picker-dialog-DFpKOdAw-JPLJSYYU.js → fork-picker-dialog-DFpKOdAw-WJPMXHSE.js} +6 -6
  59. package/dist/web/server/{markdown-Cc8V9dOF-JTNTJKQU.js → markdown-Cc8V9dOF-MMI3ZBVZ.js} +4 -4
  60. package/dist/web/server/{markdown-code-gaRnbgNM-V5LIRYCD.js → markdown-code-gaRnbgNM-ND6VVJ7D.js} +4 -4
  61. package/dist/web/server/{message-queue-nQ2_kU82-KKSLYR4S.js → message-queue-nQ2_kU82-3PN7CKFG.js} +4 -4
  62. package/dist/web/server/{model-selector-list-q8bMnmhy-SPFJGUBT.js → model-selector-list-q8bMnmhy-W6JM2N7G.js} +8 -8
  63. package/dist/web/server/{openui-renderer-DNl7TU3v-LAP3OM5H.js → openui-renderer-Das3EemD-AODSN4I2.js} +14 -14
  64. package/dist/web/server/{prompt-suggestions-B67Uy5Rk-5SMTSIFQ.js → prompt-suggestions-B67Uy5Rk-6MV56U6N.js} +4 -4
  65. package/dist/web/server/{repl-panel-1kSS1UGd-POXRYDDJ.js → repl-panel-DfC-BCfn-4OZEKSFX.js} +8 -8
  66. package/dist/web/server/{resources-panel-Dtm8nlrt-PMS7NWKW.js → resources-panel-BL41dm3H-UWWMTOFL.js} +10 -10
  67. package/dist/web/server/{router-CFtn3QOM-3WK4R4UB.js → router-DJDog9kJ-IHEFPUCH.js} +5 -5
  68. package/dist/web/server/{routes-CpT-KFt7-F6WEPWF6.js → routes-BWk0YodE-CEPOI27O.js} +29 -31
  69. package/dist/web/server/server.js +2 -2
  70. package/dist/web/server/{session-activity-panel-Dr9Q0Wmd-2F7ZYCAY.js → session-activity-panel-B56ALLHr-6PDGEA2M.js} +83 -18
  71. package/dist/web/server/{session-insights-panel-BiVObm_6-AP4FITT7.js → session-insights-panel-cS12HsWt-YX7QOWIA.js} +2 -2
  72. package/dist/web/server/{session-reasoning-panel-BFyfdmnZ-AQBC4WAL.js → session-reasoning-panel-CtQUqSv9-JIXRXBH7.js} +9 -9
  73. package/dist/web/server/{session-tool-renderer-DHu5tv0A-YFP7I2UC.js → session-tool-renderer-Co466pSk-QUTYNAOE.js} +12 -12
  74. package/dist/web/server/{session-tree-panel-BkMTm2QF-K56UQR2K.js → session-tree-panel-B23gApxX-44NFOCFB.js} +9 -9
  75. package/dist/web/server/{settings-dialog-1Zr_EiEd-GDE4IXK2.js → settings-dialog-CdRjXyfc-IYMPCNR5.js} +16 -16
  76. package/dist/web/server/{subagent-chat-panel-BCm1x_mR-HY6QEHEF.js → subagent-chat-panel-DwvOMUnh-EPVZRTRM.js} +15 -15
  77. package/dist/web/server/{subagents-panel-3gfZLsTx-7D53UO7K.js → subagents-panel-DlFBFoX6-SAWYBVZJ.js} +31 -30
  78. package/dist/web/server/{workspace-panel-BeSOuvp7-7N3CAG2K.js → workspace-panel-CxUsWmIE-3BMZFN5O.js} +10 -10
  79. package/package.json +1 -1
  80. package/dist/web/client/assets/globals-C6h6fq-s.css +0 -2
  81. package/dist/web/client/assets/prime-agent-artifacts-C-g1VPiW.js +0 -5
  82. package/dist/web/client/assets/reasoning-line-DGdPUMwT.js +0 -1
  83. package/dist/web/client/assets/right-panel-registry-BkBAryPm.js +0 -2
  84. package/dist/web/client/assets/routes-C6C0y-oH.js +0 -14
  85. package/dist/web/client/assets/session-activity-panel-BloVPsLJ.js +0 -1
  86. package/dist/web/client/assets/subagent-transcript-BzToBVWk.js +0 -1
  87. package/dist/web/client/assets/subagents-panel-B5ooG4sS.js +0 -1
  88. package/dist/web/client/assets/tool-output-normalizer-DDU09Zc6.js +0 -4
  89. package/dist/web/client/assets/tool-part-normalizer-CJ2sY87r.js +0 -4
  90. package/dist/web/client/assets/tool-timeline-BVY5VQ3a.js +0 -2
  91. package/dist/web/client/assets/wrench-BXX_Ah2s.js +0 -1
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  ToolTimeline
3
- } from "./chunk-2Y2543CV.js";
3
+ } from "./chunk-IJZDCYFG.js";
4
4
  import {
5
5
  SessionToolRenderer
6
- } from "./chunk-UZ2KHDSW.js";
6
+ } from "./chunk-ZRISZYHZ.js";
7
7
  import {
8
8
  Message,
9
9
  MessageBubble,
@@ -27,13 +27,13 @@ import {
27
27
  orderedRlmChildren,
28
28
  rlmStatusIcon,
29
29
  transcriptStatus
30
- } from "./chunk-UULUKSQD.js";
30
+ } from "./chunk-FSIRN7F7.js";
31
31
  import {
32
32
  derivePrimeAgentArtifactRuns
33
- } from "./chunk-5MOXRFX6.js";
33
+ } from "./chunk-Y3YE73VQ.js";
34
34
  import {
35
35
  Button$1
36
- } from "./chunk-FSQWWR2M.js";
36
+ } from "./chunk-4ZKBYAHH.js";
37
37
  import {
38
38
  Bot,
39
39
  CircleAlert,
@@ -41,9 +41,9 @@ import {
41
41
  LoaderCircle,
42
42
  RefreshCw,
43
43
  cn
44
- } from "./chunk-VDEUVEWL.js";
44
+ } from "./chunk-U26ZMWVI.js";
45
45
 
46
- // web/app/dist/server/assets/subagent-transcript-BmmpKQfc.js
46
+ // web/app/dist/server/assets/subagent-transcript-CUS8d4Yn.js
47
47
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
48
48
  import { jsx, jsxs } from "react/jsx-runtime";
49
49
  function SubagentList({ children, tree, className }) {
@@ -167,10 +167,10 @@ function SubagentTranscriptView({ child, parentSessionId, transcript, onRefresh,
167
167
  const viewportRef = useRef(null);
168
168
  return /* @__PURE__ */ jsxs("section", {
169
169
  "aria-label": `Subagent thread: ${child.label}`,
170
- className: cn(fullWidth ? "flex min-h-0 min-w-0 flex-1 flex-col" : "space-y-2", "min-w-0"),
170
+ className: "flex min-h-0 min-w-0 flex-1 flex-col gap-2",
171
171
  "data-testid": fullWidth ? "subagent-conversation-surface" : void 0,
172
172
  children: [/* @__PURE__ */ jsxs("div", {
173
- className: "flex min-w-0 items-start gap-2 rounded-md border border-border/60 bg-background px-2.5 py-2",
173
+ className: cn("flex shrink-0 min-w-0 items-start gap-2", fullWidth ? "rounded-md border border-border/60 bg-background px-2.5 py-2" : "border-b border-border/40 pb-2"),
174
174
  children: [
175
175
  /* @__PURE__ */ jsx(Bot, { className: "mt-0.5 size-3.5 shrink-0 text-foreground/45" }),
176
176
  /* @__PURE__ */ jsxs("div", {
@@ -200,7 +200,7 @@ function SubagentTranscriptView({ child, parentSessionId, transcript, onRefresh,
200
200
  children: ["Progress: ", child.progressNote]
201
201
  }) : null,
202
202
  child.answerPreview ? /* @__PURE__ */ jsx("p", {
203
- className: "mt-1 line-clamp-3 whitespace-pre-wrap text-caption leading-4 text-foreground/55",
203
+ className: cn("mt-1 whitespace-pre-wrap text-caption leading-4 text-foreground/55", fullWidth ? "line-clamp-3" : "line-clamp-2"),
204
204
  children: child.answerPreview
205
205
  }) : null
206
206
  ]
@@ -220,7 +220,7 @@ function SubagentTranscriptView({ child, parentSessionId, transcript, onRefresh,
220
220
  className: "rounded-md border border-dashed border-border/70 p-3 text-caption leading-4 text-foreground/45",
221
221
  children: "This subagent thread is unavailable until the parent session is active."
222
222
  }) : transcript?.status === "loading" ? /* @__PURE__ */ jsx("div", {
223
- className: cn("flex items-center justify-center rounded-md border border-dashed border-border/70 text-caption text-foreground/45", fullWidth ? "min-h-32 flex-1" : "min-h-32"),
223
+ className: "flex min-h-32 flex-1 items-center justify-center text-caption text-foreground/45",
224
224
  children: "Loading subagent thread\u2026"
225
225
  }) : transcript?.status === "error" && turns.length === 0 ? /* @__PURE__ */ jsxs("div", {
226
226
  role: "alert",
@@ -233,19 +233,19 @@ function SubagentTranscriptView({ child, parentSessionId, transcript, onRefresh,
233
233
  className: "flex min-h-0 flex-1 flex-col",
234
234
  children: [transcript?.error ? /* @__PURE__ */ jsxs("div", {
235
235
  role: "alert",
236
- className: "mx-4 mt-2 flex items-start gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-caption leading-4 text-destructive sm:mx-6",
236
+ className: cn("mb-2 flex shrink-0 items-start gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2 text-caption leading-4 text-destructive", fullWidth && "mx-4 mt-2 sm:mx-6"),
237
237
  children: [/* @__PURE__ */ jsx(CircleAlert, { className: "mt-0.5 size-3.5 shrink-0" }), /* @__PURE__ */ jsx("span", { children: transcript.error.message })]
238
238
  }) : null, /* @__PURE__ */ jsx("div", {
239
- className: cn("min-h-0 rounded-md border border-border/60 bg-background", fullWidth ? "flex min-h-0 flex-1 flex-col border-x-0 rounded-none border-b-0" : "h-96 max-h-[calc(100svh-18rem)]"),
239
+ className: cn("flex min-h-0 flex-1 flex-col bg-background", fullWidth ? "rounded-none border-x-0 border-b-0 border-t border-border/60" : "rounded-md border border-border/60"),
240
240
  children: /* @__PURE__ */ jsx(MessageScroller, {
241
241
  busy: childStatus === "streaming",
242
- className: fullWidth ? "min-h-0 flex-1" : void 0,
242
+ className: "min-h-0 flex-1",
243
243
  followOutput: childStatus === "streaming",
244
244
  label: `Transcript for ${child.label}`,
245
245
  smooth: childStatus !== "streaming",
246
246
  viewportRef,
247
247
  viewportClassName: fullWidth ? "px-0" : void 0,
248
- contentClassName: cn("flex flex-col gap-4", fullWidth ? "mx-auto w-full max-w-3xl px-4 py-6 sm:px-6" : "px-2.5 py-3"),
248
+ contentClassName: cn("flex flex-col gap-4", fullWidth ? "mx-auto w-full max-w-3xl px-4 py-6 sm:px-6" : "px-0.5 py-2"),
249
249
  children: /* @__PURE__ */ jsx(VirtualizedTurnList, {
250
250
  estimateSize: 320,
251
251
  getItemKey: getSubagentTurnKey,
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  validateAndNormalizeOpenUIHtmlArtifact
3
- } from "./chunk-QWJE6ES6.js";
3
+ } from "./chunk-A6LRK2MC.js";
4
4
  import {
5
5
  Card,
6
6
  CardContent,
7
7
  CardDescription,
8
8
  CardHeader,
9
9
  CardTitle
10
- } from "./chunk-KSGGSGOA.js";
10
+ } from "./chunk-BVSDXFQ6.js";
11
11
  import {
12
12
  Field,
13
13
  FieldLabel,
14
14
  Switch$1
15
- } from "./chunk-Q4ECIATK.js";
15
+ } from "./chunk-ORO7KXHF.js";
16
16
  import {
17
17
  Alert,
18
18
  AlertDescription,
19
19
  AlertTitle
20
- } from "./chunk-GNXIDE26.js";
20
+ } from "./chunk-2R5CY7DW.js";
21
21
  import {
22
22
  Combination_default,
23
23
  Dialog,
@@ -51,7 +51,7 @@ import {
51
51
  DialogContent,
52
52
  DialogHeader,
53
53
  DialogTitle
54
- } from "./chunk-FT7HNDR5.js";
54
+ } from "./chunk-JR5TXTGV.js";
55
55
  import {
56
56
  refractor
57
57
  } from "./chunk-3L5VHELG.js";
@@ -63,7 +63,7 @@ import {
63
63
  } from "./chunk-C5XHGLET.js";
64
64
  import {
65
65
  Badge
66
- } from "./chunk-CE7U5QB2.js";
66
+ } from "./chunk-FGOT5FGH.js";
67
67
  import {
68
68
  OpenPanelActionSchema,
69
69
  RightPanelIdSchema,
@@ -74,7 +74,7 @@ import {
74
74
  Input$1,
75
75
  Select$1,
76
76
  useRegisteredLabelId
77
- } from "./chunk-TXZDDJCT.js";
77
+ } from "./chunk-6OZY4XH7.js";
78
78
  import {
79
79
  arrow,
80
80
  autoUpdate,
@@ -87,7 +87,7 @@ import {
87
87
  size,
88
88
  useFloating,
89
89
  visuallyHidden
90
- } from "./chunk-APOS34PW.js";
90
+ } from "./chunk-U73UDYRF.js";
91
91
  import {
92
92
  X
93
93
  } from "./chunk-QNIQRU7H.js";
@@ -189,17 +189,17 @@ import {
189
189
  } from "./chunk-LABI53FQ.js";
190
190
  import {
191
191
  Markdown
192
- } from "./chunk-PQVTLG3E.js";
192
+ } from "./chunk-NEMK2RTM.js";
193
193
  import {
194
194
  Button$1,
195
195
  formatErrorMessage_default,
196
196
  useRenderElement
197
- } from "./chunk-FSQWWR2M.js";
197
+ } from "./chunk-4ZKBYAHH.js";
198
198
  import {
199
199
  ChevronDown,
200
200
  ChevronUp,
201
201
  cn
202
- } from "./chunk-VDEUVEWL.js";
202
+ } from "./chunk-U26ZMWVI.js";
203
203
  import {
204
204
  ACTION_STEPS,
205
205
  BuiltinActionType,
@@ -10894,7 +10894,7 @@ var require_react_is = __commonJS({
10894
10894
  }
10895
10895
  });
10896
10896
 
10897
- // web/app/dist/server/assets/openui-renderer-DNl7TU3v.js
10897
+ // web/app/dist/server/assets/openui-renderer-Das3EemD.js
10898
10898
  import * as React$1 from "react";
10899
10899
  import { createContext as createContext21, useCallback as useCallback24, useContext as useContext21, useEffect as useEffect40, useId as useId5, useMemo as useMemo25, useRef as useRef45, useState as useState35 } from "react";
10900
10900
  import { Fragment as Fragment$12, jsx as jsx25, jsxs as jsxs9 } from "react/jsx-runtime";
@@ -79924,7 +79924,7 @@ var Separator4 = /* @__PURE__ */ React114.forwardRef(function SeparatorComponent
79924
79924
  });
79925
79925
  if (process.env.NODE_ENV !== "production") Separator4.displayName = "Separator";
79926
79926
 
79927
- // web/app/dist/server/assets/openui-renderer-DNl7TU3v.js
79927
+ // web/app/dist/server/assets/openui-renderer-Das3EemD.js
79928
79928
  var OpenUIArtifactContext = createContext21({ artifactIndex: 0 });
79929
79929
  function OpenUIArtifactProvider({ children, value }) {
79930
79930
  return /* @__PURE__ */ jsx25(OpenUIArtifactContext.Provider, {
@@ -14,7 +14,7 @@ import {
14
14
  usePopupRootSync,
15
15
  useScrollLock,
16
16
  useTriggerDataForwarding
17
- } from "./chunk-TXZDDJCT.js";
17
+ } from "./chunk-6OZY4XH7.js";
18
18
  import {
19
19
  AnimationFrame,
20
20
  CLICK_TRIGGER_IDENTIFIER,
@@ -37,7 +37,7 @@ import {
37
37
  useClick,
38
38
  useDismiss,
39
39
  useOpenChangeComplete
40
- } from "./chunk-APOS34PW.js";
40
+ } from "./chunk-U73UDYRF.js";
41
41
  import {
42
42
  EMPTY_OBJECT,
43
43
  NOOP,
@@ -45,7 +45,7 @@ import {
45
45
  useButton,
46
46
  useIsoLayoutEffect,
47
47
  useRenderElement
48
- } from "./chunk-FSQWWR2M.js";
48
+ } from "./chunk-4ZKBYAHH.js";
49
49
 
50
50
  // 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/dialog/backdrop/DialogBackdrop.mjs
51
51
  import * as React2 from "react";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cn
3
- } from "./chunk-VDEUVEWL.js";
3
+ } from "./chunk-U26ZMWVI.js";
4
4
  import {
5
5
  clsx
6
6
  } from "./chunk-NXAVRSI5.js";
@@ -1,26 +1,26 @@
1
1
  import {
2
2
  Spinner
3
- } from "./chunk-AXN2OBPF.js";
3
+ } from "./chunk-O5CPI2JH.js";
4
4
  import {
5
5
  Field,
6
6
  FieldDescription,
7
7
  FieldLabel,
8
8
  Switch$1
9
- } from "./chunk-Q4ECIATK.js";
9
+ } from "./chunk-ORO7KXHF.js";
10
10
  import {
11
11
  Alert,
12
12
  AlertDescription
13
- } from "./chunk-GNXIDE26.js";
13
+ } from "./chunk-2R5CY7DW.js";
14
14
  import {
15
15
  COMPACT_ACTION_BUTTON_CLASS,
16
16
  Input$1,
17
17
  Select$1,
18
18
  notify,
19
19
  rowSurface
20
- } from "./chunk-TXZDDJCT.js";
20
+ } from "./chunk-6OZY4XH7.js";
21
21
  import {
22
22
  Button$1
23
- } from "./chunk-FSQWWR2M.js";
23
+ } from "./chunk-4ZKBYAHH.js";
24
24
  import {
25
25
  LoaderCircle,
26
26
  Plug,
@@ -29,7 +29,7 @@ import {
29
29
  Save,
30
30
  Trash,
31
31
  cn
32
- } from "./chunk-VDEUVEWL.js";
32
+ } from "./chunk-U26ZMWVI.js";
33
33
 
34
34
  // web/app/dist/server/assets/mcp-connections-section-BSzomlDa.js
35
35
  import { useState } from "react";
@@ -44,7 +44,7 @@ import {
44
44
  useValueAsRef,
45
45
  visuallyHidden,
46
46
  visuallyHiddenInput
47
- } from "./chunk-APOS34PW.js";
47
+ } from "./chunk-U73UDYRF.js";
48
48
  import {
49
49
  EMPTY_ARRAY,
50
50
  EMPTY_OBJECT,
@@ -64,12 +64,12 @@ import {
64
64
  useRefWithInit,
65
65
  useRenderElement,
66
66
  useStableCallback
67
- } from "./chunk-FSQWWR2M.js";
67
+ } from "./chunk-4ZKBYAHH.js";
68
68
  import {
69
69
  Check,
70
70
  ChevronDown,
71
71
  cn
72
- } from "./chunk-VDEUVEWL.js";
72
+ } from "./chunk-U26ZMWVI.js";
73
73
  import {
74
74
  __export
75
75
  } from "./chunk-CZ7CSFO4.js";
@@ -4,7 +4,7 @@ import {
4
4
  CardDescription,
5
5
  CardHeader,
6
6
  CardTitle
7
- } from "./chunk-KSGGSGOA.js";
7
+ } from "./chunk-BVSDXFQ6.js";
8
8
  import {
9
9
  isModelPatternEnabled
10
10
  } from "./chunk-TAPQMXA7.js";
@@ -86,7 +86,7 @@ import {
86
86
  } from "./chunk-7DQQMT5V.js";
87
87
  import {
88
88
  Toaster
89
- } from "./chunk-APOS34PW.js";
89
+ } from "./chunk-U73UDYRF.js";
90
90
  import {
91
91
  __exportAll
92
92
  } from "./chunk-OO7NBFQQ.js";
@@ -123,7 +123,7 @@ import {
123
123
  lazyRouteComponent
124
124
  } from "./chunk-CPB76YQU.js";
125
125
 
126
- // web/app/dist/server/assets/router-CFtn3QOM.js
126
+ // web/app/dist/server/assets/router-DJDog9kJ.js
127
127
  import { useEffect, useLayoutEffect, useState } from "react";
128
128
  import { jsx, jsxs } from "react/jsx-runtime";
129
129
  import { chmod, mkdir, mkdtemp, open, readFile, readdir, realpath, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
@@ -2194,7 +2194,7 @@ function getQueryClient() {
2194
2194
  if (!browserQueryClient) browserQueryClient = makeQueryClient();
2195
2195
  return browserQueryClient;
2196
2196
  }
2197
- var globals_default = "/assets/globals-C6h6fq-s.css";
2197
+ var globals_default = "/assets/globals-CR3boQb2.css";
2198
2198
  var Route$32 = createRootRoute({
2199
2199
  head: () => ({
2200
2200
  meta: [
@@ -2266,11 +2266,11 @@ function RootDocument({ children }) {
2266
2266
  })]
2267
2267
  });
2268
2268
  }
2269
- var $$splitComponentImporter$2 = () => import("./routes-CpT-KFt7-F6WEPWF6.js").then((n) => n.t);
2269
+ var $$splitComponentImporter$2 = () => import("./routes-BWk0YodE-CEPOI27O.js").then((n) => n.t);
2270
2270
  var Route$31 = createFileRoute("/")({ component: lazyRouteComponent($$splitComponentImporter$2, "component") });
2271
- var $$splitComponentImporter$1 = () => import("./agents-DOgCHixY-TU7YLWS2.js");
2271
+ var $$splitComponentImporter$1 = () => import("./agents-DOgCHixY-U362NTZW.js");
2272
2272
  var Route$30 = createFileRoute("/agents")({ component: lazyRouteComponent($$splitComponentImporter$1, "component") });
2273
- var $$splitComponentImporter = () => import("./connectors-Dv_uPdv0-2TCNQ3TU.js");
2273
+ var $$splitComponentImporter = () => import("./connectors-Dv_uPdv0-WIJGW5CQ.js");
2274
2274
  var Route$29 = createFileRoute("/connectors")({ component: lazyRouteComponent($$splitComponentImporter, "component") });
2275
2275
  var ManagedAttachmentValidationError = class extends Error {
2276
2276
  status;
@@ -3046,7 +3046,7 @@ function createFleetErrorEnvelope(err, fallbackMessage = "An unexpected error oc
3046
3046
  isTerminal: false,
3047
3047
  remediation: {
3048
3048
  action: "restart_kernel",
3049
- label: "Restart IPython Kernel"
3049
+ label: "Restart CPython Kernel"
3050
3050
  }
3051
3051
  };
3052
3052
  if (lower.includes("timeout") || lower.includes("timed out")) return {
@@ -5876,6 +5876,10 @@ function createEventMapperState(init) {
5876
5876
  currentMessageId: void 0,
5877
5877
  currentText: "",
5878
5878
  reasoningTextByContentIndex: /* @__PURE__ */ new Map(),
5879
+ claimedReasoningIndexes: /* @__PURE__ */ new Set(),
5880
+ reasoningEpisodeSeq: 0,
5881
+ activeReasoningByRuntimeIndex: /* @__PURE__ */ new Map(),
5882
+ reasoningFleetIndexByRuntime: /* @__PURE__ */ new Map(),
5879
5883
  currentAssistantMessage: void 0,
5880
5884
  currentAssistantImages: [],
5881
5885
  currentAssistantErrors: [],
@@ -5918,6 +5922,10 @@ function resetRun(state) {
5918
5922
  state.currentMessageId = void 0;
5919
5923
  state.currentText = "";
5920
5924
  state.reasoningTextByContentIndex.clear();
5925
+ state.claimedReasoningIndexes.clear();
5926
+ state.reasoningEpisodeSeq = 0;
5927
+ state.activeReasoningByRuntimeIndex.clear();
5928
+ state.reasoningFleetIndexByRuntime.clear();
5921
5929
  state.currentAssistantMessage = void 0;
5922
5930
  state.currentAssistantImages = [];
5923
5931
  state.currentAssistantErrors = [];
@@ -6264,6 +6272,14 @@ function rememberAssistantMessage(state, message) {
6264
6272
  state.currentAssistantMessage = message;
6265
6273
  if (!state.currentMessageId) state.currentMessageId = `${state.runId}-a${state.messageSeq++}`;
6266
6274
  const chatMessage = toChatMessageFromAssistant(message, state.currentMessageId);
6275
+ for (const part of chatMessage.parts) {
6276
+ if (part.type !== "reasoning") continue;
6277
+ const fleetIndex = state.reasoningFleetIndexByRuntime.get(part.contentIndex) ?? part.contentIndex;
6278
+ part.contentIndex = fleetIndex;
6279
+ const streamed = state.reasoningTextByContentIndex.get(fleetIndex);
6280
+ if (streamed !== void 0) part.text = streamed;
6281
+ part.state = "complete";
6282
+ }
6267
6283
  for (const [contentIndex, text] of state.reasoningTextByContentIndex) {
6268
6284
  const existing = chatMessage.parts.find((part) => part.type === "reasoning" && part.contentIndex === contentIndex);
6269
6285
  if (existing?.type === "reasoning") {
@@ -6403,6 +6419,7 @@ function mapCoreAgentEvent(state, event) {
6403
6419
  }
6404
6420
  return [];
6405
6421
  case "tool_execution_start": {
6422
+ const closed = closeActiveReasoningEpisodes(state);
6406
6423
  const startToolName = typeof event.toolName === "string" ? event.toolName : void 0;
6407
6424
  if (startToolName) state.toolCallStarts.set(event.toolCallId, {
6408
6425
  toolName: startToolName,
@@ -6415,11 +6432,15 @@ function mapCoreAgentEvent(state, event) {
6415
6432
  state: "input-streaming",
6416
6433
  input: event.args
6417
6434
  });
6418
- return [reasoningFrame(state, "executing", true), {
6419
- type: "tool",
6420
- part,
6421
- messageId: state.currentMessageId
6422
- }];
6435
+ return [
6436
+ ...closed,
6437
+ reasoningFrame(state, "executing", true),
6438
+ {
6439
+ type: "tool",
6440
+ part,
6441
+ messageId: state.currentMessageId
6442
+ }
6443
+ ];
6423
6444
  }
6424
6445
  case "tool_execution_update": {
6425
6446
  const frame = event;
@@ -6478,59 +6499,128 @@ function reasoningContentIndex(state, event) {
6478
6499
  if (partial && Array.isArray(partial.content)) {
6479
6500
  for (let index2 = partial.content.length - 1; index2 >= 0; index2--) if (partial.content[index2]?.type === "thinking") return index2;
6480
6501
  }
6481
- return [...state.reasoningTextByContentIndex.keys()].at(-1) ?? 0;
6502
+ return [...state.activeReasoningByRuntimeIndex.keys()].at(-1) ?? 0;
6503
+ }
6504
+ function beginReasoningEpisode(state, runtimeIndex) {
6505
+ let fleetIndex = runtimeIndex;
6506
+ if (state.claimedReasoningIndexes.has(fleetIndex)) {
6507
+ fleetIndex = Math.max(state.reasoningEpisodeSeq, runtimeIndex + 1);
6508
+ while (state.claimedReasoningIndexes.has(fleetIndex)) fleetIndex++;
6509
+ }
6510
+ state.claimedReasoningIndexes.add(fleetIndex);
6511
+ state.reasoningEpisodeSeq = Math.max(state.reasoningEpisodeSeq, fleetIndex + 1);
6512
+ state.activeReasoningByRuntimeIndex.set(runtimeIndex, fleetIndex);
6513
+ state.reasoningFleetIndexByRuntime.set(runtimeIndex, fleetIndex);
6514
+ return fleetIndex;
6515
+ }
6516
+ function resolveActiveReasoningEpisode(state, runtimeIndex) {
6517
+ const active = state.activeReasoningByRuntimeIndex.get(runtimeIndex);
6518
+ if (active !== void 0) return active;
6519
+ return beginReasoningEpisode(state, runtimeIndex);
6520
+ }
6521
+ function closeActiveReasoningEpisodes(state) {
6522
+ if (state.activeReasoningByRuntimeIndex.size === 0) return [];
6523
+ if (!state.currentMessageId) state.currentMessageId = `${state.runId}-a${state.messageSeq++}`;
6524
+ const frames = [];
6525
+ for (const [runtimeIndex, contentIndex] of [...state.activeReasoningByRuntimeIndex]) {
6526
+ frames.push({
6527
+ type: "reasoning_text",
6528
+ phase: "end",
6529
+ contentIndex,
6530
+ text: state.reasoningTextByContentIndex.get(contentIndex) ?? "",
6531
+ messageId: state.currentMessageId
6532
+ });
6533
+ state.activeReasoningByRuntimeIndex.delete(runtimeIndex);
6534
+ }
6535
+ return frames;
6482
6536
  }
6483
6537
  function mapAssistantStreamEvent(state, event) {
6484
6538
  switch (event.type) {
6485
6539
  case "start":
6486
6540
  if (!state.currentMessageId) state.currentMessageId = `${state.runId}-a${state.messageSeq++}`;
6487
6541
  state.reasoningTextByContentIndex.clear();
6542
+ state.activeReasoningByRuntimeIndex.clear();
6543
+ state.reasoningFleetIndexByRuntime.clear();
6488
6544
  return [];
6489
- case "text_delta":
6545
+ case "text_delta": {
6546
+ const closed = closeActiveReasoningEpisodes(state);
6490
6547
  if (!state.currentMessageId) state.currentMessageId = `${state.runId}-a${state.messageSeq++}`;
6491
6548
  state.currentText += event.delta;
6492
- return [reasoningFrame(state, "responding", true), {
6493
- type: "delta",
6494
- text: event.delta,
6495
- messageId: state.currentMessageId
6496
- }];
6549
+ return [
6550
+ ...closed,
6551
+ reasoningFrame(state, "responding", true),
6552
+ {
6553
+ type: "delta",
6554
+ text: event.delta,
6555
+ messageId: state.currentMessageId
6556
+ }
6557
+ ];
6558
+ }
6497
6559
  case "thinking_delta": {
6498
- const contentIndex = reasoningContentIndex(state, event);
6560
+ const runtimeIndex = reasoningContentIndex(state, event);
6561
+ const hadActive = state.activeReasoningByRuntimeIndex.has(runtimeIndex);
6562
+ const contentIndex = resolveActiveReasoningEpisode(state, runtimeIndex);
6499
6563
  if (!state.currentMessageId) state.currentMessageId = `${state.runId}-a${state.messageSeq++}`;
6500
6564
  state.reasoningTextByContentIndex.set(contentIndex, (state.reasoningTextByContentIndex.get(contentIndex) ?? "") + event.delta);
6501
- return [reasoningFrame(state, "planning", true), {
6565
+ const frames = [reasoningFrame(state, "planning", true)];
6566
+ if (!hadActive) frames.push({
6567
+ type: "reasoning_text",
6568
+ phase: "start",
6569
+ contentIndex,
6570
+ text: "",
6571
+ messageId: state.currentMessageId
6572
+ });
6573
+ frames.push({
6502
6574
  type: "reasoning_text",
6503
6575
  phase: "delta",
6504
6576
  contentIndex,
6505
6577
  text: event.delta,
6506
6578
  messageId: state.currentMessageId
6507
- }];
6579
+ });
6580
+ return frames;
6508
6581
  }
6509
6582
  case "text_start":
6510
- case "text_end":
6511
6583
  case "toolcall_start":
6584
+ return closeActiveReasoningEpisodes(state);
6585
+ case "text_end":
6512
6586
  case "toolcall_delta":
6513
6587
  case "toolcall_end":
6514
6588
  case "error":
6515
6589
  return [];
6516
6590
  case "thinking_start": {
6517
- const contentIndex = reasoningContentIndex(state, event);
6591
+ const runtimeIndex = reasoningContentIndex(state, event);
6518
6592
  if (!state.currentMessageId) state.currentMessageId = `${state.runId}-a${state.messageSeq++}`;
6593
+ const frames = [];
6594
+ const previous = state.activeReasoningByRuntimeIndex.get(runtimeIndex);
6595
+ if (previous !== void 0) {
6596
+ frames.push({
6597
+ type: "reasoning_text",
6598
+ phase: "end",
6599
+ contentIndex: previous,
6600
+ text: state.reasoningTextByContentIndex.get(previous) ?? "",
6601
+ messageId: state.currentMessageId
6602
+ });
6603
+ state.activeReasoningByRuntimeIndex.delete(runtimeIndex);
6604
+ }
6605
+ const contentIndex = beginReasoningEpisode(state, runtimeIndex);
6519
6606
  state.reasoningTextByContentIndex.set(contentIndex, "");
6520
- return [reasoningFrame(state, "planning", true), {
6607
+ frames.push(reasoningFrame(state, "planning", true), {
6521
6608
  type: "reasoning_text",
6522
6609
  phase: "start",
6523
6610
  contentIndex,
6524
6611
  text: "",
6525
6612
  messageId: state.currentMessageId
6526
- }];
6613
+ });
6614
+ return frames;
6527
6615
  }
6528
6616
  case "thinking_end": {
6529
- const contentIndex = reasoningContentIndex(state, event);
6617
+ const runtimeIndex = reasoningContentIndex(state, event);
6618
+ const contentIndex = resolveActiveReasoningEpisode(state, runtimeIndex);
6530
6619
  const endedEvent = event;
6531
- const block = endedEvent.partial?.content?.[contentIndex];
6620
+ const block = endedEvent.partial?.content?.[runtimeIndex];
6532
6621
  const finalText = typeof endedEvent.content === "string" ? endedEvent.content : block?.type === "thinking" && typeof block.thinking === "string" ? block.thinking : void 0;
6533
6622
  if (finalText !== void 0) state.reasoningTextByContentIndex.set(contentIndex, finalText);
6623
+ state.activeReasoningByRuntimeIndex.delete(runtimeIndex);
6534
6624
  return [{
6535
6625
  type: "reasoning_text",
6536
6626
  phase: "end",
@@ -6785,10 +6875,30 @@ function finalizeAssistantMessage(state) {
6785
6875
  text: state.currentText || value.text
6786
6876
  });
6787
6877
  } else if (value.type === "thinking") {
6788
- const text = state.reasoningTextByContentIndex.get(contentIndex) ?? value.thinking;
6789
- if (typeof text === "string") parts.push({
6878
+ let fleetIndex = state.reasoningFleetIndexByRuntime.get(contentIndex);
6879
+ if (fleetIndex === void 0) {
6880
+ fleetIndex = contentIndex;
6881
+ if (state.claimedReasoningIndexes.has(fleetIndex)) {
6882
+ fleetIndex = Math.max(state.reasoningEpisodeSeq, contentIndex + 1);
6883
+ while (state.claimedReasoningIndexes.has(fleetIndex)) fleetIndex++;
6884
+ }
6885
+ state.claimedReasoningIndexes.add(fleetIndex);
6886
+ state.reasoningEpisodeSeq = Math.max(state.reasoningEpisodeSeq, fleetIndex + 1);
6887
+ state.reasoningFleetIndexByRuntime.set(contentIndex, fleetIndex);
6888
+ }
6889
+ for (const [pendingIndex, pendingText] of [...state.reasoningTextByContentIndex].sort(([left], [right]) => left - right)) {
6890
+ if (pendingIndex >= fleetIndex) break;
6891
+ if (!parts.some((part) => part.type === "reasoning" && part.contentIndex === pendingIndex)) parts.push({
6892
+ type: "reasoning",
6893
+ contentIndex: pendingIndex,
6894
+ text: pendingText,
6895
+ state: "complete"
6896
+ });
6897
+ }
6898
+ const text = state.reasoningTextByContentIndex.get(fleetIndex) ?? (typeof value.thinking === "string" ? value.thinking : void 0);
6899
+ if (typeof text === "string" && !parts.some((part) => part.type === "reasoning" && part.contentIndex === fleetIndex)) parts.push({
6790
6900
  type: "reasoning",
6791
- contentIndex,
6901
+ contentIndex: fleetIndex,
6792
6902
  text,
6793
6903
  state: "complete"
6794
6904
  });
@@ -16,7 +16,7 @@ import {
16
16
  CodeBlockCopyButton,
17
17
  CodeBlockHeader,
18
18
  CodeBlockTitle
19
- } from "./chunk-FNV3WZXL.js";
19
+ } from "./chunk-VFW2KPLD.js";
20
20
  import {
21
21
  Ban,
22
22
  Braces,
@@ -30,7 +30,7 @@ import {
30
30
  SquareTerminal,
31
31
  Wrench,
32
32
  cn
33
- } from "./chunk-VDEUVEWL.js";
33
+ } from "./chunk-U26ZMWVI.js";
34
34
 
35
35
  // web/app/dist/server/assets/tool-result-BcSxAK-P.js
36
36
  import { useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  cn
3
- } from "./chunk-VDEUVEWL.js";
3
+ } from "./chunk-U26ZMWVI.js";
4
4
 
5
5
  // web/app/dist/server/assets/card-Dux-30ss.js
6
6
  import { jsx } from "react/jsx-runtime";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  Input$1
3
- } from "./chunk-TXZDDJCT.js";
3
+ } from "./chunk-6OZY4XH7.js";
4
4
  import {
5
5
  Button$1,
6
6
  cva
7
- } from "./chunk-FSQWWR2M.js";
7
+ } from "./chunk-4ZKBYAHH.js";
8
8
  import {
9
9
  cn
10
- } from "./chunk-VDEUVEWL.js";
10
+ } from "./chunk-U26ZMWVI.js";
11
11
 
12
12
  // web/app/dist/server/assets/input-group-BOTHelje.js
13
13
  import { jsx } from "react/jsx-runtime";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  InputGroup,
3
3
  InputGroupAddon
4
- } from "./chunk-HAFELESQ.js";
4
+ } from "./chunk-ETTLRHDY.js";
5
5
  import {
6
6
  Dialog,
7
7
  DialogContent as DialogContent2,
@@ -17,12 +17,12 @@ import {
17
17
  DialogDescription,
18
18
  DialogHeader,
19
19
  DialogTitle
20
- } from "./chunk-FT7HNDR5.js";
20
+ } from "./chunk-JR5TXTGV.js";
21
21
  import {
22
22
  Check,
23
23
  Search,
24
24
  cn
25
- } from "./chunk-VDEUVEWL.js";
25
+ } from "./chunk-U26ZMWVI.js";
26
26
 
27
27
  // web/app/dist/server/assets/command-Ds-1cBIq.js
28
28
  import { jsx, jsxs } from "react/jsx-runtime";