@qredence/fleet 0.10.2 → 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 (95) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/runtime-manifest.json +14 -14
  3. package/dist/web/client/assets/{artifacts-panel-CfWH5cQn.js → artifacts-panel-CDuvwZXW.js} +1 -1
  4. package/dist/web/client/assets/{chat-command-palette-CKGrP-Ke.js → chat-command-palette-DSpwG3Ph.js} +1 -1
  5. package/dist/web/client/assets/{ipython-tool-bieUhw9K.js → cpython-tool-CcGMkNQ4.js} +1 -1
  6. package/dist/web/client/assets/globals-CR3boQb2.css +2 -0
  7. package/dist/web/client/assets/index-BpqhS0Xv.js +12 -0
  8. package/dist/web/client/assets/prime-agent-artifacts-CuR1D_ch.js +5 -0
  9. package/dist/web/client/assets/reasoning-line-B79r9oqP.js +1 -0
  10. package/dist/web/client/assets/{repl-panel-5xgkDXO5.js → repl-panel-Dj0nX5A6.js} +1 -1
  11. package/dist/web/client/assets/right-panel-registry-HNH3niQ8.js +2 -0
  12. package/dist/web/client/assets/routes-CJRPrnVB.js +14 -0
  13. package/dist/web/client/assets/session-activity-panel-Dvy044_T.js +1 -0
  14. package/dist/web/client/assets/{session-insights-panel-BXEmuJKf.js → session-insights-panel-Bltz_o6C.js} +1 -1
  15. package/dist/web/client/assets/{session-tool-renderer-CGMatufW.js → session-tool-renderer-BLFqj28b.js} +7 -7
  16. package/dist/web/client/assets/{subagent-chat-panel-xm-zBsFL.js → subagent-chat-panel-Cr57arv9.js} +1 -1
  17. package/dist/web/client/assets/subagent-transcript-CqAEPEJp.js +1 -0
  18. package/dist/web/client/assets/subagents-panel-DCjSDcM4.js +1 -0
  19. package/dist/web/client/assets/tool-action-icon-vTW_L1Fj.js +1 -0
  20. package/dist/web/client/assets/tool-output-normalizer-DDoLNo4P.js +4 -0
  21. package/dist/web/client/assets/tool-part-normalizer-DdgmYc9z.js +4 -0
  22. package/dist/web/client/assets/{tool-result-C_RIixge.js → tool-result-DxWDQJSF.js} +3 -3
  23. package/dist/web/client/assets/tool-timeline-BoWCZg0K.js +2 -0
  24. package/dist/web/client/bundle-budget.json +5 -5
  25. package/dist/web/server/{_tanstack-start-manifest_v-CGHXgy5L-KSOQEPW7.js → _tanstack-start-manifest_v-BhSwNUm2-HUY424SL.js} +9 -9
  26. package/dist/web/server/{agents-DOgCHixY-KUZP2VDO.js → agents-DOgCHixY-U362NTZW.js} +1 -1
  27. package/dist/web/server/{agents-page-BdiR9H8w-M6X6SXMF.js → agents-page-BdiR9H8w-WK3UCXSA.js} +7 -7
  28. package/dist/web/server/{artifacts-panel-CHPMYc6C-OWIYGSRM.js → artifacts-panel-C9OUKEU0-N74QLS6E.js} +19 -19
  29. package/dist/web/server/{chat-command-palette-VF4C0ttN-GY52QBFP.js → chat-command-palette-CnKy1Q4g-GJJGAVQ4.js} +13 -13
  30. package/dist/web/server/{chunk-GNXIDE26.js → chunk-2R5CY7DW.js} +2 -2
  31. package/dist/web/server/{chunk-W72ZBCJ5.js → chunk-37MAYG3X.js} +15 -15
  32. package/dist/web/server/{chunk-MDGXRDJM.js → chunk-3KHS4HHI.js} +13 -13
  33. package/dist/web/server/{chunk-BD7YKYWL.js → chunk-4ISLMQ2M.js} +3 -3
  34. package/dist/web/server/{chunk-FSQWWR2M.js → chunk-4ZKBYAHH.js} +1 -1
  35. package/dist/web/server/{chunk-BLGKLQJG.js → chunk-63IBRYZL.js} +6 -6
  36. package/dist/web/server/{chunk-TXZDDJCT.js → chunk-6OZY4XH7.js} +3 -3
  37. package/dist/web/server/{chunk-7DUB7HGF.js → chunk-A6LRK2MC.js} +174 -51
  38. package/dist/web/server/{chunk-PBNUO4IN.js → chunk-BG4DVGLL.js} +2 -2
  39. package/dist/web/server/{chunk-KSGGSGOA.js → chunk-BVSDXFQ6.js} +1 -1
  40. package/dist/web/server/{chunk-35RIM6VP.js → chunk-CPB76YQU.js} +1251 -740
  41. package/dist/web/server/{chunk-HAFELESQ.js → chunk-ETTLRHDY.js} +3 -3
  42. package/dist/web/server/{chunk-2ETDIMNM.js → chunk-ETVLY2KE.js} +1 -1
  43. package/dist/web/server/{chunk-BZ2EAUZZ.js → chunk-F6P2FTIT.js} +3 -3
  44. package/dist/web/server/{chunk-CE7U5QB2.js → chunk-FGOT5FGH.js} +2 -2
  45. package/dist/web/server/{chunk-GW7HYECO.js → chunk-FSIRN7F7.js} +105 -95
  46. package/dist/web/server/{chunk-R4BS3KYI.js → chunk-FVTCXLYO.js} +12 -12
  47. package/dist/web/server/{chunk-NDU4LK5M.js → chunk-IJZDCYFG.js} +15 -10
  48. package/dist/web/server/{chunk-FT7HNDR5.js → chunk-JR5TXTGV.js} +5 -5
  49. package/dist/web/server/{chunk-PQVTLG3E.js → chunk-NEMK2RTM.js} +4 -4
  50. package/dist/web/server/{chunk-AXN2OBPF.js → chunk-O5CPI2JH.js} +1 -1
  51. package/dist/web/server/{chunk-Q4ECIATK.js → chunk-ORO7KXHF.js} +4 -4
  52. package/dist/web/server/{chunk-VDEUVEWL.js → chunk-U26ZMWVI.js} +300 -300
  53. package/dist/web/server/{chunk-APOS34PW.js → chunk-U73UDYRF.js} +2 -2
  54. package/dist/web/server/{chunk-P3ZJ6L7V.js → chunk-USP4O3V7.js} +2 -2
  55. package/dist/web/server/{chunk-FNV3WZXL.js → chunk-VFW2KPLD.js} +2 -2
  56. package/dist/web/server/{chunk-5MOXRFX6.js → chunk-Y3YE73VQ.js} +45 -5
  57. package/dist/web/server/{chunk-LYJ3XDEZ.js → chunk-ZRISZYHZ.js} +14 -14
  58. package/dist/web/server/{connectors-Dv_uPdv0-2X5VWQXK.js → connectors-Dv_uPdv0-WIJGW5CQ.js} +1 -1
  59. package/dist/web/server/{connectors-page-DW75T-uH-EKRHUZ6K.js → connectors-page-DW75T-uH-3KBZRVAT.js} +10 -10
  60. package/dist/web/server/{create-project-dialog-CSZHeLNg-EEW3DRTY.js → create-project-dialog-dwXNUwY--APUSOU5G.js} +14 -14
  61. package/dist/web/server/{fork-picker-dialog-DFpKOdAw-JPLJSYYU.js → fork-picker-dialog-DFpKOdAw-WJPMXHSE.js} +6 -6
  62. package/dist/web/server/{markdown-Cc8V9dOF-JTNTJKQU.js → markdown-Cc8V9dOF-MMI3ZBVZ.js} +4 -4
  63. package/dist/web/server/{markdown-code-gaRnbgNM-V5LIRYCD.js → markdown-code-gaRnbgNM-ND6VVJ7D.js} +4 -4
  64. package/dist/web/server/{message-queue-nQ2_kU82-KKSLYR4S.js → message-queue-nQ2_kU82-3PN7CKFG.js} +4 -4
  65. package/dist/web/server/{model-selector-list-q8bMnmhy-SPFJGUBT.js → model-selector-list-q8bMnmhy-W6JM2N7G.js} +8 -8
  66. package/dist/web/server/{openui-renderer-BkDeIpwC-S5BOLH5L.js → openui-renderer-Das3EemD-AODSN4I2.js} +15 -15
  67. package/dist/web/server/{prompt-suggestions-B67Uy5Rk-5SMTSIFQ.js → prompt-suggestions-B67Uy5Rk-6MV56U6N.js} +4 -4
  68. package/dist/web/server/{repl-panel-1kSS1UGd-POXRYDDJ.js → repl-panel-DfC-BCfn-4OZEKSFX.js} +8 -8
  69. package/dist/web/server/{resources-panel-tCQCqEQv-NJO5FRHW.js → resources-panel-BL41dm3H-UWWMTOFL.js} +11 -11
  70. package/dist/web/server/{router-DBc-HYGW-CC6DTCFR.js → router-DJDog9kJ-IHEFPUCH.js} +6 -6
  71. package/dist/web/server/{routes-CcRh_tDy-M7ZRBLVA.js → routes-BWk0YodE-CEPOI27O.js} +30 -32
  72. package/dist/web/server/server.js +1415 -1004
  73. package/dist/web/server/{session-activity-panel-CS56rTyW-J4GAZSTC.js → session-activity-panel-B56ALLHr-6PDGEA2M.js} +84 -19
  74. package/dist/web/server/{session-insights-panel-BiVObm_6-AP4FITT7.js → session-insights-panel-cS12HsWt-YX7QOWIA.js} +2 -2
  75. package/dist/web/server/{session-reasoning-panel-DlqaQNE2-RMOBVYVD.js → session-reasoning-panel-CtQUqSv9-JIXRXBH7.js} +10 -10
  76. package/dist/web/server/{session-tool-renderer-CHYJwJej-Z3K5TRIZ.js → session-tool-renderer-Co466pSk-QUTYNAOE.js} +13 -13
  77. package/dist/web/server/{session-tree-panel-B2GT3Hf_-WGHVVRRR.js → session-tree-panel-B23gApxX-44NFOCFB.js} +10 -10
  78. package/dist/web/server/{settings-dialog-7V9x-CPC-6IEB2DFH.js → settings-dialog-CdRjXyfc-IYMPCNR5.js} +17 -17
  79. package/dist/web/server/{subagent-chat-panel-Cjg1oOFO-PNWSFYNA.js → subagent-chat-panel-DwvOMUnh-EPVZRTRM.js} +16 -16
  80. package/dist/web/server/{subagents-panel-DPfqOHdw-B74PSAMP.js → subagents-panel-DlFBFoX6-SAWYBVZJ.js} +32 -31
  81. package/dist/web/server/{workspace-panel-DRaU8AWD-7AYOEM55.js → workspace-panel-CxUsWmIE-3BMZFN5O.js} +11 -11
  82. package/package.json +1 -1
  83. package/dist/web/client/assets/globals-C6h6fq-s.css +0 -2
  84. package/dist/web/client/assets/index-D3OD2pV7.js +0 -13
  85. package/dist/web/client/assets/prime-agent-artifacts-C-g1VPiW.js +0 -5
  86. package/dist/web/client/assets/reasoning-line-DGdPUMwT.js +0 -1
  87. package/dist/web/client/assets/right-panel-registry-BkBAryPm.js +0 -2
  88. package/dist/web/client/assets/routes-DgbWbQOu.js +0 -14
  89. package/dist/web/client/assets/session-activity-panel-BloVPsLJ.js +0 -1
  90. package/dist/web/client/assets/subagent-transcript-BzToBVWk.js +0 -1
  91. package/dist/web/client/assets/subagents-panel-B5ooG4sS.js +0 -1
  92. package/dist/web/client/assets/tool-output-normalizer-DDU09Zc6.js +0 -4
  93. package/dist/web/client/assets/tool-part-normalizer-CJ2sY87r.js +0 -4
  94. package/dist/web/client/assets/tool-timeline-BVY5VQ3a.js +0 -2
  95. package/dist/web/client/assets/wrench-BXX_Ah2s.js +0 -1
@@ -1,46 +1,112 @@
1
1
  import {
2
2
  ToolTimeline
3
- } from "./chunk-NDU4LK5M.js";
3
+ } from "./chunk-IJZDCYFG.js";
4
4
  import {
5
5
  ReasoningLine,
6
+ Trace,
7
+ TraceCollapsible,
8
+ TraceCollapsibleContent,
9
+ TraceCollapsibleTrigger,
10
+ TraceDescription,
11
+ TraceIcon,
12
+ TraceLine,
13
+ TraceTitle,
6
14
  groupMessages
7
- } from "./chunk-GW7HYECO.js";
15
+ } from "./chunk-FSIRN7F7.js";
8
16
  import "./chunk-QOZCYKMA.js";
9
- import "./chunk-5MOXRFX6.js";
17
+ import "./chunk-Y3YE73VQ.js";
10
18
  import "./chunk-4OLRCVML.js";
11
19
  import "./chunk-C5XHGLET.js";
12
- import "./chunk-CE7U5QB2.js";
20
+ import "./chunk-FGOT5FGH.js";
13
21
  import "./chunk-6GYLXDX3.js";
14
22
  import "./chunk-NZCEQWK2.js";
15
23
  import "./chunk-7DQQMT5V.js";
16
- import "./chunk-BD7YKYWL.js";
17
- import "./chunk-TXZDDJCT.js";
18
- import "./chunk-APOS34PW.js";
24
+ import "./chunk-4ISLMQ2M.js";
25
+ import "./chunk-6OZY4XH7.js";
26
+ import "./chunk-U73UDYRF.js";
19
27
  import "./chunk-OO7NBFQQ.js";
20
28
  import {
21
29
  Button$1
22
- } from "./chunk-FSQWWR2M.js";
30
+ } from "./chunk-4ZKBYAHH.js";
23
31
  import {
24
32
  ArrowUpRight,
25
33
  CircleCheck,
26
34
  CircleDashed,
27
- CircleX
28
- } from "./chunk-VDEUVEWL.js";
35
+ CircleX,
36
+ LoaderCircle
37
+ } from "./chunk-U26ZMWVI.js";
29
38
  import "./chunk-6JOAWERA.js";
30
- import "./chunk-35RIM6VP.js";
39
+ import "./chunk-CPB76YQU.js";
31
40
  import "./chunk-NXAVRSI5.js";
32
41
  import "./chunk-CZ7CSFO4.js";
33
42
 
34
- // web/app/dist/server/assets/session-activity-panel-CS56rTyW.js
43
+ // web/app/dist/server/assets/session-activity-panel-B56ALLHr.js
44
+ import { useState } from "react";
35
45
  import { jsx, jsxs } from "react/jsx-runtime";
36
46
  function messageText(message) {
37
47
  return message.parts.filter((part) => part.type === "text").map((part) => part.type === "text" ? part.text : "").join(" ").trim();
38
48
  }
49
+ function isReasoningPart(part) {
50
+ return part.type === "reasoning";
51
+ }
39
52
  function childStatusIcon(status) {
40
53
  if (status === "done") return CircleCheck;
41
54
  if (status === "error" || status === "failed" || status === "cancelled") return CircleX;
42
55
  return CircleDashed;
43
56
  }
57
+ function reasoningPreview(text) {
58
+ const compact = text.replace(/\s+/g, " ").trim();
59
+ if (compact.length <= 140) return compact;
60
+ return `${compact.slice(0, 137).trimEnd()}\u2026`;
61
+ }
62
+ function TurnReasoningSummary({ parts, streaming }) {
63
+ const [userOpen, setUserOpen] = useState();
64
+ if (parts.length === 0) return null;
65
+ if (parts.length === 1) {
66
+ const part = parts[0];
67
+ return /* @__PURE__ */ jsx(ReasoningLine, {
68
+ text: part.text,
69
+ streaming: streaming && part.state === "streaming",
70
+ durationMs: part.durationMs
71
+ });
72
+ }
73
+ const active = streaming && parts.some((part) => part.state === "streaming");
74
+ const durationMs = parts.reduce((total, part) => total + (typeof part.durationMs === "number" ? part.durationMs : 0), 0);
75
+ const previews = parts.flatMap((part, index) => {
76
+ const preview = reasoningPreview(part.text);
77
+ return preview ? [{
78
+ episode: index + 1,
79
+ preview
80
+ }] : [];
81
+ });
82
+ return /* @__PURE__ */ jsx(Trace, {
83
+ "data-testid": "reasoning-summary",
84
+ children: /* @__PURE__ */ jsxs(TraceCollapsible, {
85
+ open: userOpen ?? active,
86
+ onOpenChange: setUserOpen,
87
+ children: [/* @__PURE__ */ jsx(TraceCollapsibleTrigger, { children: /* @__PURE__ */ jsxs(TraceLine, {
88
+ status: active ? "running" : void 0,
89
+ children: [
90
+ /* @__PURE__ */ jsx(TraceIcon, { children: active ? /* @__PURE__ */ jsx(LoaderCircle, { className: "animate-spin motion-reduce:animate-none" }) : /* @__PURE__ */ jsx(CircleCheck, {}) }),
91
+ /* @__PURE__ */ jsx(TraceTitle, { children: active ? "Thinking" : "Thought" }),
92
+ /* @__PURE__ */ jsxs(TraceDescription, { children: [parts.length, durationMs > 0 ? ` \xB7 ${Math.max(0, Math.round(durationMs / 1e3))}s` : ""] })
93
+ ]
94
+ }) }), /* @__PURE__ */ jsxs(TraceCollapsibleContent, { children: [/* @__PURE__ */ jsxs("p", {
95
+ className: "mb-2 text-xs text-muted-foreground",
96
+ children: [parts.length, " reasoning steps in this turn. Full interleaved detail is on the Main agent transcript."]
97
+ }), previews.length > 0 ? /* @__PURE__ */ jsx("ol", {
98
+ className: "flex max-h-40 flex-col gap-1.5 overflow-y-auto overscroll-contain",
99
+ children: previews.map(({ episode, preview }) => /* @__PURE__ */ jsxs("li", {
100
+ className: "text-xs text-foreground/80",
101
+ children: [/* @__PURE__ */ jsxs("span", {
102
+ className: "font-medium text-muted-foreground",
103
+ children: [episode, ". "]
104
+ }), preview]
105
+ }, `reasoning-preview-${episode}`))
106
+ }) : null] })]
107
+ })
108
+ });
109
+ }
44
110
  function SessionActivityPanel({ artifactRuns, childAgents, messages, onOpenArtifact, onSelectChild, streaming }) {
45
111
  const artifacts = artifactRuns.flatMap((run) => run.artifacts);
46
112
  const turns = groupMessages(messages);
@@ -49,7 +115,7 @@ function SessionActivityPanel({ artifactRuns, childAgents, messages, onOpenArtif
49
115
  const text = messageText(message);
50
116
  if (!text) return null;
51
117
  return /* @__PURE__ */ jsxs("div", {
52
- className: "rounded-lg border border-border/60 bg-background/60 px-3 py-2",
118
+ className: "rounded-md border border-border/60 bg-background/60 px-3 py-2",
53
119
  children: [/* @__PURE__ */ jsx("div", {
54
120
  className: "mb-1 text-micro font-medium uppercase tracking-wide text-muted-foreground",
55
121
  children: message.role === "user" ? "You" : "Assistant"
@@ -85,11 +151,10 @@ function SessionActivityPanel({ artifactRuns, childAgents, messages, onOpenArtif
85
151
  className: "space-y-2 border-b border-border/50 pb-4 last:border-b-0",
86
152
  children: [
87
153
  turn.user ? renderMessage(turn.user) : null,
88
- turn.assistants.flatMap((message) => message.parts.flatMap((part) => part.type === "reasoning" ? [/* @__PURE__ */ jsx(ReasoningLine, {
89
- text: part.text,
90
- streaming: streaming && index === turns.length - 1 && part.state === "streaming",
91
- durationMs: part.durationMs
92
- }, `${message.id}-reasoning-${part.contentIndex}`)] : [])),
154
+ /* @__PURE__ */ jsx(TurnReasoningSummary, {
155
+ parts: turn.assistants.flatMap((message) => message.parts.filter(isReasoningPart)),
156
+ streaming: streaming && index === turns.length - 1
157
+ }),
93
158
  /* @__PURE__ */ jsx(ToolTimeline, {
94
159
  messages: turn.assistants,
95
160
  artifacts: turnArtifacts,
@@ -137,7 +202,7 @@ function SessionActivityPanel({ artifactRuns, childAgents, messages, onOpenArtif
137
202
  const StatusIcon = childStatusIcon(child.status);
138
203
  return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(Button$1, {
139
204
  "aria-label": `Open ${child.sessionName || child.label} agent tab`,
140
- className: "h-auto min-h-7 w-full min-w-0 justify-start gap-2 rounded-lg border border-border/60 bg-background/60 px-3 py-2 text-left text-foreground hover:bg-foreground/5 focus-visible:ring-2 focus-visible:ring-ring",
205
+ className: "h-auto min-h-7 w-full min-w-0 justify-start gap-2 rounded-full border border-border/60 bg-background/60 px-3 py-2 text-left text-foreground hover:bg-foreground/5 focus-visible:ring-2 focus-visible:ring-ring",
141
206
  onClick: () => onSelectChild(child.id),
142
207
  size: "compact",
143
208
  type: "button",
@@ -1,6 +1,6 @@
1
1
  import "./chunk-CZ7CSFO4.js";
2
2
 
3
- // web/app/dist/server/assets/session-insights-panel-BiVObm_6.js
3
+ // web/app/dist/server/assets/session-insights-panel-cS12HsWt.js
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  var RLM_CHILD_STATUSES = [
6
6
  "queued",
@@ -190,7 +190,7 @@ function SessionInsightsPanel({ activityLabel, artifactRuns, chatMode, transcrip
190
190
  value: insights.bashCommands
191
191
  }),
192
192
  /* @__PURE__ */ jsx(Detail, {
193
- label: "IPython cells",
193
+ label: "CPython cells",
194
194
  value: insights.ipythonCells
195
195
  }),
196
196
  /* @__PURE__ */ jsx(Detail, {
@@ -7,30 +7,30 @@ import {
7
7
  TraceIcon,
8
8
  TraceLine,
9
9
  TraceTitle
10
- } from "./chunk-GW7HYECO.js";
10
+ } from "./chunk-FSIRN7F7.js";
11
11
  import "./chunk-QOZCYKMA.js";
12
- import "./chunk-5MOXRFX6.js";
12
+ import "./chunk-Y3YE73VQ.js";
13
13
  import "./chunk-4OLRCVML.js";
14
14
  import "./chunk-C5XHGLET.js";
15
- import "./chunk-CE7U5QB2.js";
15
+ import "./chunk-FGOT5FGH.js";
16
16
  import "./chunk-6GYLXDX3.js";
17
17
  import "./chunk-NZCEQWK2.js";
18
18
  import "./chunk-7DQQMT5V.js";
19
- import "./chunk-BD7YKYWL.js";
20
- import "./chunk-TXZDDJCT.js";
21
- import "./chunk-APOS34PW.js";
19
+ import "./chunk-4ISLMQ2M.js";
20
+ import "./chunk-6OZY4XH7.js";
21
+ import "./chunk-U73UDYRF.js";
22
22
  import "./chunk-OO7NBFQQ.js";
23
- import "./chunk-FSQWWR2M.js";
23
+ import "./chunk-4ZKBYAHH.js";
24
24
  import {
25
25
  CircleCheck,
26
26
  LoaderCircle
27
- } from "./chunk-VDEUVEWL.js";
27
+ } from "./chunk-U26ZMWVI.js";
28
28
  import "./chunk-6JOAWERA.js";
29
- import "./chunk-35RIM6VP.js";
29
+ import "./chunk-CPB76YQU.js";
30
30
  import "./chunk-NXAVRSI5.js";
31
31
  import "./chunk-CZ7CSFO4.js";
32
32
 
33
- // web/app/dist/server/assets/session-reasoning-panel-DlqaQNE2.js
33
+ // web/app/dist/server/assets/session-reasoning-panel-CtQUqSv9.js
34
34
  import { useState } from "react";
35
35
  import { jsx, jsxs } from "react/jsx-runtime";
36
36
  function SessionReasoningPanel({ presentation, className, streamingOverride }) {
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  SessionToolRenderer,
3
3
  session_tool_renderer_exports
4
- } from "./chunk-LYJ3XDEZ.js";
5
- import "./chunk-R4BS3KYI.js";
6
- import "./chunk-PBNUO4IN.js";
7
- import "./chunk-GW7HYECO.js";
4
+ } from "./chunk-ZRISZYHZ.js";
5
+ import "./chunk-FVTCXLYO.js";
6
+ import "./chunk-BG4DVGLL.js";
7
+ import "./chunk-FSIRN7F7.js";
8
8
  import "./chunk-QOZCYKMA.js";
9
- import "./chunk-5MOXRFX6.js";
9
+ import "./chunk-Y3YE73VQ.js";
10
10
  import "./chunk-4OLRCVML.js";
11
11
  import "./chunk-C5XHGLET.js";
12
- import "./chunk-CE7U5QB2.js";
12
+ import "./chunk-FGOT5FGH.js";
13
13
  import "./chunk-6GYLXDX3.js";
14
14
  import "./chunk-NZCEQWK2.js";
15
15
  import "./chunk-7DQQMT5V.js";
16
- import "./chunk-BD7YKYWL.js";
17
- import "./chunk-TXZDDJCT.js";
18
- import "./chunk-APOS34PW.js";
16
+ import "./chunk-4ISLMQ2M.js";
17
+ import "./chunk-6OZY4XH7.js";
18
+ import "./chunk-U73UDYRF.js";
19
19
  import "./chunk-2UGQEBXG.js";
20
20
  import "./chunk-MPHREEUA.js";
21
- import "./chunk-FNV3WZXL.js";
21
+ import "./chunk-VFW2KPLD.js";
22
22
  import "./chunk-OO7NBFQQ.js";
23
- import "./chunk-FSQWWR2M.js";
24
- import "./chunk-VDEUVEWL.js";
23
+ import "./chunk-4ZKBYAHH.js";
24
+ import "./chunk-U26ZMWVI.js";
25
25
  import "./chunk-6JOAWERA.js";
26
- import "./chunk-35RIM6VP.js";
26
+ import "./chunk-CPB76YQU.js";
27
27
  import "./chunk-NXAVRSI5.js";
28
28
  import "./chunk-DP65WGRD.js";
29
29
  import "./chunk-IGN54DHU.js";
@@ -5,32 +5,32 @@ import {
5
5
  AlertDialogDescription,
6
6
  AlertDialogFooter,
7
7
  AlertDialogTitle
8
- } from "./chunk-GW7HYECO.js";
8
+ } from "./chunk-FSIRN7F7.js";
9
9
  import "./chunk-QOZCYKMA.js";
10
- import "./chunk-5MOXRFX6.js";
10
+ import "./chunk-Y3YE73VQ.js";
11
11
  import "./chunk-4OLRCVML.js";
12
12
  import "./chunk-C5XHGLET.js";
13
- import "./chunk-CE7U5QB2.js";
13
+ import "./chunk-FGOT5FGH.js";
14
14
  import "./chunk-6GYLXDX3.js";
15
15
  import "./chunk-NZCEQWK2.js";
16
16
  import "./chunk-7DQQMT5V.js";
17
- import "./chunk-BD7YKYWL.js";
18
- import "./chunk-TXZDDJCT.js";
19
- import "./chunk-APOS34PW.js";
17
+ import "./chunk-4ISLMQ2M.js";
18
+ import "./chunk-6OZY4XH7.js";
19
+ import "./chunk-U73UDYRF.js";
20
20
  import "./chunk-OO7NBFQQ.js";
21
21
  import {
22
22
  Button$1
23
- } from "./chunk-FSQWWR2M.js";
23
+ } from "./chunk-4ZKBYAHH.js";
24
24
  import {
25
25
  GitBranch,
26
26
  cn
27
- } from "./chunk-VDEUVEWL.js";
27
+ } from "./chunk-U26ZMWVI.js";
28
28
  import "./chunk-6JOAWERA.js";
29
- import "./chunk-35RIM6VP.js";
29
+ import "./chunk-CPB76YQU.js";
30
30
  import "./chunk-NXAVRSI5.js";
31
31
  import "./chunk-CZ7CSFO4.js";
32
32
 
33
- // web/app/dist/server/assets/session-tree-panel-B2GT3Hf_.js
33
+ // web/app/dist/server/assets/session-tree-panel-B23gApxX.js
34
34
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
35
35
  import { jsx, jsxs } from "react/jsx-runtime";
36
36
  function flattenVisibleNodes(nodes, depth = 0) {
@@ -4,27 +4,27 @@ import {
4
4
  RowSurface,
5
5
  SettingsCommitActions,
6
6
  SettingsPane
7
- } from "./chunk-BLGKLQJG.js";
7
+ } from "./chunk-63IBRYZL.js";
8
8
  import {
9
9
  Spinner
10
- } from "./chunk-AXN2OBPF.js";
10
+ } from "./chunk-O5CPI2JH.js";
11
11
  import {
12
12
  InputGroup,
13
13
  InputGroupAddon,
14
14
  InputGroupButton,
15
15
  InputGroupInput
16
- } from "./chunk-HAFELESQ.js";
16
+ } from "./chunk-ETTLRHDY.js";
17
17
  import {
18
18
  Field,
19
19
  FieldDescription,
20
20
  FieldGroup,
21
21
  FieldLabel,
22
22
  Switch$1
23
- } from "./chunk-Q4ECIATK.js";
23
+ } from "./chunk-ORO7KXHF.js";
24
24
  import {
25
25
  Alert,
26
26
  AlertDescription
27
- } from "./chunk-GNXIDE26.js";
27
+ } from "./chunk-2R5CY7DW.js";
28
28
  import {
29
29
  isModelPatternEnabled,
30
30
  modelMatchesPattern,
@@ -36,7 +36,7 @@ import {
36
36
  DialogDescription,
37
37
  DialogHeader,
38
38
  DialogTitle
39
- } from "./chunk-FT7HNDR5.js";
39
+ } from "./chunk-JR5TXTGV.js";
40
40
  import {
41
41
  AlertDialog$1,
42
42
  AlertDialogAction,
@@ -50,12 +50,12 @@ import {
50
50
  formatProviderLabel,
51
51
  useChatPanelDataContext,
52
52
  useSettingsActionsContext
53
- } from "./chunk-GW7HYECO.js";
53
+ } from "./chunk-FSIRN7F7.js";
54
54
  import "./chunk-QOZCYKMA.js";
55
- import "./chunk-5MOXRFX6.js";
55
+ import "./chunk-Y3YE73VQ.js";
56
56
  import "./chunk-4OLRCVML.js";
57
57
  import "./chunk-C5XHGLET.js";
58
- import "./chunk-CE7U5QB2.js";
58
+ import "./chunk-FGOT5FGH.js";
59
59
  import {
60
60
  applyUiPreferencesToDocument,
61
61
  isCustomProviderId,
@@ -66,7 +66,7 @@ import {
66
66
  } from "./chunk-6GYLXDX3.js";
67
67
  import "./chunk-NZCEQWK2.js";
68
68
  import "./chunk-7DQQMT5V.js";
69
- import "./chunk-BD7YKYWL.js";
69
+ import "./chunk-4ISLMQ2M.js";
70
70
  import {
71
71
  HIT_AREA_EXPAND_CLASS,
72
72
  HIT_AREA_EXPAND_DENSE_CLASS,
@@ -76,7 +76,7 @@ import {
76
76
  styleDisableScrollbar,
77
77
  useBaseUiId,
78
78
  useCSPContext
79
- } from "./chunk-TXZDDJCT.js";
79
+ } from "./chunk-6OZY4XH7.js";
80
80
  import {
81
81
  addEventListener,
82
82
  clamp,
@@ -85,7 +85,7 @@ import {
85
85
  parts_exports,
86
86
  useDirection,
87
87
  useTimeout
88
- } from "./chunk-APOS34PW.js";
88
+ } from "./chunk-U73UDYRF.js";
89
89
  import "./chunk-OO7NBFQQ.js";
90
90
  import {
91
91
  Button$1,
@@ -93,7 +93,7 @@ import {
93
93
  useIsoLayoutEffect,
94
94
  useRenderElement,
95
95
  useStableCallback
96
- } from "./chunk-FSQWWR2M.js";
96
+ } from "./chunk-4ZKBYAHH.js";
97
97
  import {
98
98
  ArrowLeft,
99
99
  Box,
@@ -125,15 +125,15 @@ import {
125
125
  Trash,
126
126
  Users,
127
127
  cn
128
- } from "./chunk-VDEUVEWL.js";
128
+ } from "./chunk-U26ZMWVI.js";
129
129
  import "./chunk-6JOAWERA.js";
130
- import "./chunk-35RIM6VP.js";
130
+ import "./chunk-CPB76YQU.js";
131
131
  import "./chunk-NXAVRSI5.js";
132
132
  import {
133
133
  __export
134
134
  } from "./chunk-CZ7CSFO4.js";
135
135
 
136
- // web/app/dist/server/assets/settings-dialog-7V9x-CPC.js
136
+ // web/app/dist/server/assets/settings-dialog-CdRjXyfc.js
137
137
  import { createContext as createContext4, forwardRef as forwardRef7, useCallback, useContext as useContext4, useEffect as useEffect2, useId, useMemo as useMemo3, useRef as useRef4, useState as useState2 } from "react";
138
138
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
139
139
 
@@ -1100,7 +1100,7 @@ var ScrollAreaCorner = /* @__PURE__ */ React9.forwardRef(function ScrollAreaCorn
1100
1100
  });
1101
1101
  if (process.env.NODE_ENV !== "production") ScrollAreaCorner.displayName = "ScrollAreaCorner";
1102
1102
 
1103
- // web/app/dist/server/assets/settings-dialog-7V9x-CPC.js
1103
+ // web/app/dist/server/assets/settings-dialog-CdRjXyfc.js
1104
1104
  function isFieldInvalid(value, attemptedSave, required = true) {
1105
1105
  return attemptedSave && required && value.trim().length === 0;
1106
1106
  }
@@ -1,38 +1,38 @@
1
1
  import {
2
2
  SubagentTranscriptView
3
- } from "./chunk-W72ZBCJ5.js";
4
- import "./chunk-NDU4LK5M.js";
5
- import "./chunk-LYJ3XDEZ.js";
6
- import "./chunk-R4BS3KYI.js";
7
- import "./chunk-PBNUO4IN.js";
3
+ } from "./chunk-37MAYG3X.js";
4
+ import "./chunk-IJZDCYFG.js";
5
+ import "./chunk-ZRISZYHZ.js";
6
+ import "./chunk-FVTCXLYO.js";
7
+ import "./chunk-BG4DVGLL.js";
8
8
  import {
9
9
  PromptInput
10
- } from "./chunk-GW7HYECO.js";
10
+ } from "./chunk-FSIRN7F7.js";
11
11
  import "./chunk-QOZCYKMA.js";
12
- import "./chunk-5MOXRFX6.js";
12
+ import "./chunk-Y3YE73VQ.js";
13
13
  import "./chunk-4OLRCVML.js";
14
14
  import "./chunk-C5XHGLET.js";
15
- import "./chunk-CE7U5QB2.js";
15
+ import "./chunk-FGOT5FGH.js";
16
16
  import "./chunk-6GYLXDX3.js";
17
17
  import "./chunk-NZCEQWK2.js";
18
18
  import "./chunk-7DQQMT5V.js";
19
- import "./chunk-BD7YKYWL.js";
20
- import "./chunk-TXZDDJCT.js";
21
- import "./chunk-APOS34PW.js";
19
+ import "./chunk-4ISLMQ2M.js";
20
+ import "./chunk-6OZY4XH7.js";
21
+ import "./chunk-U73UDYRF.js";
22
22
  import "./chunk-2UGQEBXG.js";
23
23
  import "./chunk-MPHREEUA.js";
24
- import "./chunk-FNV3WZXL.js";
24
+ import "./chunk-VFW2KPLD.js";
25
25
  import "./chunk-OO7NBFQQ.js";
26
- import "./chunk-FSQWWR2M.js";
27
- import "./chunk-VDEUVEWL.js";
26
+ import "./chunk-4ZKBYAHH.js";
27
+ import "./chunk-U26ZMWVI.js";
28
28
  import "./chunk-6JOAWERA.js";
29
- import "./chunk-35RIM6VP.js";
29
+ import "./chunk-CPB76YQU.js";
30
30
  import "./chunk-NXAVRSI5.js";
31
31
  import "./chunk-DP65WGRD.js";
32
32
  import "./chunk-IGN54DHU.js";
33
33
  import "./chunk-CZ7CSFO4.js";
34
34
 
35
- // web/app/dist/server/assets/subagent-chat-panel-Cjg1oOFO.js
35
+ // web/app/dist/server/assets/subagent-chat-panel-DwvOMUnh.js
36
36
  import { jsx, jsxs } from "react/jsx-runtime";
37
37
  function SubagentComposer({ disabled, sending, onSend, onStop, placeholder = "Message this subagent\u2026 (Enter to steer)" }) {
38
38
  return /* @__PURE__ */ jsx("div", {
@@ -1,45 +1,44 @@
1
1
  import {
2
2
  SubagentTranscriptView
3
- } from "./chunk-W72ZBCJ5.js";
4
- import "./chunk-NDU4LK5M.js";
5
- import "./chunk-LYJ3XDEZ.js";
6
- import "./chunk-R4BS3KYI.js";
7
- import "./chunk-PBNUO4IN.js";
3
+ } from "./chunk-37MAYG3X.js";
4
+ import "./chunk-IJZDCYFG.js";
5
+ import "./chunk-ZRISZYHZ.js";
6
+ import "./chunk-FVTCXLYO.js";
7
+ import "./chunk-BG4DVGLL.js";
8
8
  import {
9
9
  orderedRlmChildren,
10
10
  rlmStatusIcon
11
- } from "./chunk-GW7HYECO.js";
11
+ } from "./chunk-FSIRN7F7.js";
12
12
  import "./chunk-QOZCYKMA.js";
13
- import "./chunk-5MOXRFX6.js";
13
+ import "./chunk-Y3YE73VQ.js";
14
14
  import "./chunk-4OLRCVML.js";
15
15
  import "./chunk-C5XHGLET.js";
16
- import "./chunk-CE7U5QB2.js";
16
+ import "./chunk-FGOT5FGH.js";
17
17
  import "./chunk-6GYLXDX3.js";
18
18
  import "./chunk-NZCEQWK2.js";
19
19
  import "./chunk-7DQQMT5V.js";
20
- import "./chunk-BD7YKYWL.js";
21
- import "./chunk-TXZDDJCT.js";
22
- import "./chunk-APOS34PW.js";
20
+ import "./chunk-4ISLMQ2M.js";
21
+ import "./chunk-6OZY4XH7.js";
22
+ import "./chunk-U73UDYRF.js";
23
23
  import "./chunk-2UGQEBXG.js";
24
24
  import "./chunk-MPHREEUA.js";
25
- import "./chunk-FNV3WZXL.js";
25
+ import "./chunk-VFW2KPLD.js";
26
26
  import "./chunk-OO7NBFQQ.js";
27
27
  import {
28
28
  Button$1
29
- } from "./chunk-FSQWWR2M.js";
29
+ } from "./chunk-4ZKBYAHH.js";
30
30
  import {
31
31
  Bot,
32
- ChevronRight,
33
32
  cn
34
- } from "./chunk-VDEUVEWL.js";
33
+ } from "./chunk-U26ZMWVI.js";
35
34
  import "./chunk-6JOAWERA.js";
36
- import "./chunk-35RIM6VP.js";
35
+ import "./chunk-CPB76YQU.js";
37
36
  import "./chunk-NXAVRSI5.js";
38
37
  import "./chunk-DP65WGRD.js";
39
38
  import "./chunk-IGN54DHU.js";
40
39
  import "./chunk-CZ7CSFO4.js";
41
40
 
42
- // web/app/dist/server/assets/subagents-panel-DPfqOHdw.js
41
+ // web/app/dist/server/assets/subagents-panel-DlFBFoX6.js
43
42
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
44
43
  import { jsx, jsxs } from "react/jsx-runtime";
45
44
  function SubagentsPanelContent({ agents, loadSession, onOpenTab, parentSessionId, tree }) {
@@ -101,29 +100,29 @@ function SubagentsPanelContent({ agents, loadSession, onOpenTab, parentSessionId
101
100
  }, [loadTranscript, selectedAgent]);
102
101
  if (ordered.length === 0) return /* @__PURE__ */ jsx("section", {
103
102
  "aria-label": "Subagents",
104
- className: "flex min-h-36 items-center rounded-md border border-dashed border-border/70 px-4 text-center text-label leading-5 text-foreground/45",
103
+ className: "flex min-h-36 flex-1 items-center rounded-md border border-dashed border-border/70 px-4 text-center text-label leading-5 text-foreground/45",
105
104
  children: "Subagent threads will appear here when Prime delegates work."
106
105
  });
107
106
  return /* @__PURE__ */ jsxs("section", {
108
107
  "aria-label": "Subagents",
109
- className: "space-y-2 pb-1",
108
+ className: "flex h-full min-h-0 min-w-0 flex-1 flex-col gap-3",
110
109
  children: [
111
- /* @__PURE__ */ jsxs("div", {
112
- className: "flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5",
110
+ /* @__PURE__ */ jsxs("header", {
111
+ className: "flex shrink-0 items-center gap-2 px-0.5",
113
112
  children: [
114
113
  /* @__PURE__ */ jsx(Bot, { className: "size-3.5 shrink-0 text-foreground/45" }),
115
114
  /* @__PURE__ */ jsx("span", {
116
115
  className: "min-w-0 flex-1 truncate text-label font-medium text-foreground/70",
117
- children: "Invoked subagents"
116
+ children: "Invoked"
118
117
  }),
119
118
  /* @__PURE__ */ jsx("span", {
120
- className: "shrink-0 text-micro text-foreground/40",
119
+ className: "shrink-0 tabular-nums text-micro text-foreground/40",
121
120
  children: ordered.length
122
121
  })
123
122
  ]
124
123
  }),
125
124
  /* @__PURE__ */ jsx("div", {
126
- className: "space-y-0.5",
125
+ className: "max-h-[min(9.5rem,32%)] shrink-0 space-y-0.5 overflow-y-auto overscroll-contain",
127
126
  "data-testid": "subagent-thread-list",
128
127
  children: ordered.map((agent) => {
129
128
  const selected = agent.id === selectedAgent?.id;
@@ -132,7 +131,7 @@ function SubagentsPanelContent({ agents, loadSession, onOpenTab, parentSessionId
132
131
  variant: "ghost",
133
132
  size: "compact",
134
133
  "aria-pressed": selected,
135
- className: cn("flex w-full min-w-0 items-center gap-2 rounded-md px-2 py-1.5 text-left transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", selected && "bg-foreground/8"),
134
+ className: cn("flex h-auto w-full min-w-0 items-center gap-2 rounded-md px-2 py-1.5 text-left transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", selected && "bg-foreground/8"),
136
135
  style: { paddingLeft: `${8 + Math.max(0, agent.depth ?? 0) * 12}px` },
137
136
  onClick: () => {
138
137
  setSelectedAgentId(agent.id);
@@ -147,7 +146,6 @@ function SubagentsPanelContent({ agents, loadSession, onOpenTab, parentSessionId
147
146
  className: "min-w-0 flex-1 truncate text-xs text-foreground/80",
148
147
  children: agent.label
149
148
  }),
150
- /* @__PURE__ */ jsx(ChevronRight, { className: "size-3 shrink-0 text-foreground/30" }),
151
149
  /* @__PURE__ */ jsx("span", {
152
150
  className: "shrink-0 text-micro capitalize text-foreground/45",
153
151
  children: agent.status
@@ -156,11 +154,14 @@ function SubagentsPanelContent({ agents, loadSession, onOpenTab, parentSessionId
156
154
  }, agent.id);
157
155
  })
158
156
  }),
159
- selectedAgent ? /* @__PURE__ */ jsx(SubagentTranscriptView, {
160
- child: selectedAgent,
161
- parentSessionId,
162
- transcript: transcripts[selectedAgent.id],
163
- onRefresh: () => void loadTranscript(selectedAgent, true)
157
+ selectedAgent ? /* @__PURE__ */ jsx("div", {
158
+ className: "flex min-h-0 min-w-0 flex-1 flex-col border-t border-border/50 pt-3",
159
+ children: /* @__PURE__ */ jsx(SubagentTranscriptView, {
160
+ child: selectedAgent,
161
+ parentSessionId,
162
+ transcript: transcripts[selectedAgent.id],
163
+ onRefresh: () => void loadTranscript(selectedAgent, true)
164
+ })
164
165
  }) : null
165
166
  ]
166
167
  });