@corenel/web-ui 0.9.0 → 0.11.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.
Files changed (106) hide show
  1. package/dist/AskUser.d.ts.map +1 -1
  2. package/dist/AskUser.js +3 -1
  3. package/dist/AskUser.js.map +1 -1
  4. package/dist/CommandTray.d.ts.map +1 -1
  5. package/dist/CommandTray.js +2 -1
  6. package/dist/CommandTray.js.map +1 -1
  7. package/dist/Composer.d.ts +30 -9
  8. package/dist/Composer.d.ts.map +1 -1
  9. package/dist/Composer.js +297 -231
  10. package/dist/Composer.js.map +1 -1
  11. package/dist/ContextBar.d.ts +4 -1
  12. package/dist/ContextBar.d.ts.map +1 -1
  13. package/dist/ContextBar.js +38 -2
  14. package/dist/ContextBar.js.map +1 -1
  15. package/dist/ContextManager.d.ts +10 -1
  16. package/dist/ContextManager.d.ts.map +1 -1
  17. package/dist/ContextManager.js +63 -26
  18. package/dist/ContextManager.js.map +1 -1
  19. package/dist/ContextStrip.d.ts +5 -1
  20. package/dist/ContextStrip.d.ts.map +1 -1
  21. package/dist/ContextStrip.js +4 -1
  22. package/dist/ContextStrip.js.map +1 -1
  23. package/dist/DictateButton.d.ts +26 -1
  24. package/dist/DictateButton.d.ts.map +1 -1
  25. package/dist/DictateButton.js +26 -10
  26. package/dist/DictateButton.js.map +1 -1
  27. package/dist/DockStatus.d.ts +11 -0
  28. package/dist/DockStatus.d.ts.map +1 -0
  29. package/dist/DockStatus.js +41 -0
  30. package/dist/DockStatus.js.map +1 -0
  31. package/dist/ExclusionsModal.d.ts +3 -0
  32. package/dist/ExclusionsModal.d.ts.map +1 -1
  33. package/dist/ExclusionsModal.js +28 -7
  34. package/dist/ExclusionsModal.js.map +1 -1
  35. package/dist/RichContent.d.ts.map +1 -1
  36. package/dist/RichContent.js +3 -1
  37. package/dist/RichContent.js.map +1 -1
  38. package/dist/StarterCards.d.ts +20 -0
  39. package/dist/StarterCards.d.ts.map +1 -0
  40. package/dist/StarterCards.js +30 -0
  41. package/dist/StarterCards.js.map +1 -0
  42. package/dist/SummaryTranscript.d.ts.map +1 -1
  43. package/dist/SummaryTranscript.js +4 -3
  44. package/dist/SummaryTranscript.js.map +1 -1
  45. package/dist/TodoBar.d.ts.map +1 -1
  46. package/dist/TodoBar.js +12 -6
  47. package/dist/TodoBar.js.map +1 -1
  48. package/dist/ToolFold.d.ts.map +1 -1
  49. package/dist/ToolFold.js +2 -1
  50. package/dist/ToolFold.js.map +1 -1
  51. package/dist/Transcript.d.ts +9 -1
  52. package/dist/Transcript.d.ts.map +1 -1
  53. package/dist/Transcript.js +41 -22
  54. package/dist/Transcript.js.map +1 -1
  55. package/dist/agentChat/AgentChat.d.ts +43 -7
  56. package/dist/agentChat/AgentChat.d.ts.map +1 -1
  57. package/dist/agentChat/AgentChat.js +282 -96
  58. package/dist/agentChat/AgentChat.js.map +1 -1
  59. package/dist/agentChat/OptionsDrawer.d.ts.map +1 -1
  60. package/dist/agentChat/OptionsDrawer.js +6 -3
  61. package/dist/agentChat/OptionsDrawer.js.map +1 -1
  62. package/dist/agentChat/PlanReview.d.ts.map +1 -1
  63. package/dist/agentChat/PlanReview.js +5 -3
  64. package/dist/agentChat/PlanReview.js.map +1 -1
  65. package/dist/agentChat/controller.d.ts +17 -0
  66. package/dist/agentChat/controller.d.ts.map +1 -1
  67. package/dist/agentChat/controller.js.map +1 -1
  68. package/dist/chatSkin.d.ts +20 -0
  69. package/dist/chatSkin.d.ts.map +1 -0
  70. package/dist/chatSkin.js +220 -0
  71. package/dist/chatSkin.js.map +1 -0
  72. package/dist/chatSkinContext.d.ts +55 -0
  73. package/dist/chatSkinContext.d.ts.map +1 -0
  74. package/dist/chatSkinContext.js +16 -0
  75. package/dist/chatSkinContext.js.map +1 -0
  76. package/dist/chatSkinCss.d.ts +3 -0
  77. package/dist/chatSkinCss.d.ts.map +1 -0
  78. package/dist/chatSkinCss.js +202 -0
  79. package/dist/chatSkinCss.js.map +1 -0
  80. package/dist/commandTurn.d.ts +4 -1
  81. package/dist/commandTurn.d.ts.map +1 -1
  82. package/dist/commandTurn.js +13 -1
  83. package/dist/commandTurn.js.map +1 -1
  84. package/dist/contextCopy.d.ts +13 -0
  85. package/dist/contextCopy.d.ts.map +1 -0
  86. package/dist/contextCopy.js +20 -0
  87. package/dist/contextCopy.js.map +1 -0
  88. package/dist/credentialLines.d.ts +10 -0
  89. package/dist/credentialLines.d.ts.map +1 -0
  90. package/dist/credentialLines.js +46 -0
  91. package/dist/credentialLines.js.map +1 -0
  92. package/dist/sendLater/SendLater.d.ts +8 -1
  93. package/dist/sendLater/SendLater.d.ts.map +1 -1
  94. package/dist/sendLater/SendLater.js +16 -8
  95. package/dist/sendLater/SendLater.js.map +1 -1
  96. package/dist/toolRender.d.ts.map +1 -1
  97. package/dist/toolRender.js +14 -8
  98. package/dist/toolRender.js.map +1 -1
  99. package/dist/transcriptSkin.d.ts +23 -1
  100. package/dist/transcriptSkin.d.ts.map +1 -1
  101. package/dist/transcriptSkin.js +134 -9
  102. package/dist/transcriptSkin.js.map +1 -1
  103. package/dist/transcriptSkinCss.d.ts.map +1 -1
  104. package/dist/transcriptSkinCss.js +17 -10
  105. package/dist/transcriptSkinCss.js.map +1 -1
  106. package/package.json +5 -5
@@ -0,0 +1,202 @@
1
+ const C = (skin) => `[data-chat-skin="${skin}"]`;
2
+ const P = (skin, part) => `${C(skin)} [data-chat-part="${part}"]`;
3
+ const M = 'mission';
4
+ /* The header's status reads from data-chat-running, which AgentChat sets only
5
+ * while a run is live: LIVE is never shown for an idle chat. The transcript's
6
+ * own log heading says LIVE unconditionally, so under the chat skin it drops
7
+ * the word and leaves live state to the header. Buttons do not inherit the
8
+ * font by default; inside the chat's own parts they take the skin's (not in
9
+ * the header, where a host's buttons live). */
10
+ const mission = `
11
+ ${C(M)} [data-chat-part]:not([data-chat-part="header"]) button { font-family: inherit; }
12
+ ${C(M)} [data-tx-skin] [data-tx-part="list"]::before { content: "MISSION LOG"; color: #7890a5; }
13
+ ${P(M, 'header')} { background: #0f1821; text-transform: uppercase; letter-spacing: 0.06em; }
14
+ ${P(M, 'header')}::before { content: "\\25CB STANDBY"; color: #7890a5; font-size: 10.5px; letter-spacing: 0.14em; white-space: nowrap; }
15
+ ${P(M, 'header')}[data-chat-running]::before { content: "\\25CF LIVE"; color: #3ddc84; }
16
+ ${P(M, 'ctx')} { --accent: #3ddc84; --surface-3: #16222d; --surface-1: #0f1821; }
17
+ ${P(M, 'ctx-fill')} { -webkit-mask: repeating-linear-gradient(90deg, #000 0 6px, transparent 6px 8px); mask: repeating-linear-gradient(90deg, #000 0 6px, transparent 6px 8px); }
18
+ ${P(M, 'ctx-label')} { color: #7890a5; font-size: 10.5px; letter-spacing: 0.14em; }
19
+ ${P(M, 'perm')} { --grad-brand: #3ddc84; --text-on-accent: #0b1117; --warning-soft: #1a1409; }
20
+ ${P(M, 'perm-head')} { text-transform: uppercase; letter-spacing: 0.12em; --text-primary: #ffb454; }
21
+ ${P(M, 'perm-head')}::before { content: ""; display: inline-block; width: 8px; height: 8px; background: #ffb454; animation: chat-mc-blink 1s steps(1) infinite; }
22
+ ${P(M, 'perm-session')} { --text-secondary: #3ddc84; --border-default: #3ddc84; letter-spacing: 0.1em; }
23
+ ${P(M, 'perm-deny')} { --text-secondary: #ff5d5d; --border-default: #ff5d5d; letter-spacing: 0.1em; }
24
+ ${P(M, 'perm-go')} { letter-spacing: 0.1em; }
25
+ ${P(M, 'tray')} > :first-child::before { content: "CONSOLE"; margin-right: 8px; color: #7890a5; font-size: 10.5px; letter-spacing: 0.14em; }
26
+ ${P(M, 'send')}, ${P(M, 'stop')}, ${P(M, 'queue')} { letter-spacing: 0.12em; }
27
+ ${P(M, 'tasks')} { text-transform: uppercase; letter-spacing: 0.08em; }
28
+ @keyframes chat-mc-blink { 50% { opacity: 0; } }
29
+ @media (prefers-reduced-motion: reduce) {
30
+ ${P(M, 'perm-head')}::before { animation: none; }
31
+ }
32
+ `;
33
+ const T = 'terminal';
34
+ /* A shell under a rule: no cards. The permission prompt is a line with a left
35
+ * rule; its choices are bare words. The header's status is a bracketed job
36
+ * state, read from data-chat-running like Mission control's. */
37
+ const terminal = `
38
+ ${C(T)} [data-chat-part]:not([data-chat-part="header"]) button { font-family: inherit; }
39
+ ${P(T, 'header')} { background: #0d1014; }
40
+ ${P(T, 'header')}::before { content: "[idle]"; color: #7d8a9a; font-size: 11.5px; white-space: nowrap; }
41
+ ${P(T, 'header')}[data-chat-running]::before { content: "[running]"; color: #7ee787; }
42
+ ${P(T, 'ctx')} { --surface-1: #0d1014; --accent: #7ee787; }
43
+ ${P(T, 'ctx-fill')} { -webkit-mask: repeating-linear-gradient(90deg, #000 0 7px, transparent 7px 9px); mask: repeating-linear-gradient(90deg, #000 0 7px, transparent 7px 9px); }
44
+ ${P(T, 'ctx-label')} { color: #5fb3f9; font-size: 11.5px; }
45
+ ${P(T, 'perm')} { --warning: transparent; --warning-soft: transparent; box-shadow: inset 2px 0 0 #f2c46d; }
46
+ ${P(T, 'perm-head')} { --text-primary: #f2c46d; }
47
+ ${P(T, 'perm-go')} { --grad-brand: transparent; --text-on-accent: #7ee787; }
48
+ ${P(T, 'perm-session')} { --surface-1: transparent; --border-default: #26303b; --text-secondary: #a3afbe; }
49
+ ${P(T, 'perm-deny')} { --surface-1: transparent; --border-default: #26303b; --text-secondary: #ff7b72; }
50
+ `;
51
+ const PA = 'paper';
52
+ /* A memo in a serif reading column: small capitals for headings, a double
53
+ * rule over the approval, italic asides. Paper shows no idle status; while a
54
+ * run is live the header says "Working", which is what the agent is doing. */
55
+ const paper = `
56
+ ${C(PA)} [data-chat-part]:not([data-chat-part="header"]) button { font-family: inherit; }
57
+ ${P(PA, 'header')} { background: #f7f3ea; font-variant: small-caps; letter-spacing: 0.03em; }
58
+ ${P(PA, 'header')}[data-chat-running]::before { content: "Working"; font-style: italic; font-variant: normal; color: #72685b; white-space: nowrap; }
59
+ ${P(PA, 'ctx')} { --surface-1: #f7f3ea; --accent: #8a5a2b; font-style: italic; }
60
+ ${P(PA, 'ctx-label')} { color: #72685b; }
61
+ ${P(PA, 'perm')} { --warning: #cfc3ae; --warning-soft: #fffdf7; box-shadow: inset 0 3px 0 #8a5a2b, 0 1px 2px rgba(60,40,20,0.12); }
62
+ ${P(PA, 'perm-head')} { --text-primary: #2a2621; font-variant: small-caps; letter-spacing: 0.04em; }
63
+ ${P(PA, 'perm-go')} { --grad-brand: #8a5a2b; --text-on-accent: #fffdf7; }
64
+ ${P(PA, 'perm-deny')} { --text-secondary: #a8412f; }
65
+ ${P(PA, 'tasks')}, ${P(PA, 'followups')} { font-style: italic; }
66
+ `;
67
+ const CR = 'crt';
68
+ /* Amber phosphor over the whole chat: one scanline layer and one glow on the
69
+ * root (the transcript's own layer is switched off so lines do not double).
70
+ * The chat's own parts read the mono face for code too (--font-mono is VT323
71
+ * in the transcript, unreadable at the chrome's 11px); the transcript is not a
72
+ * chat part, so it keeps its own.
73
+ * Terminal's grammar otherwise: a ruled permission line, bare choices. */
74
+ const crt = `
75
+ ${C(CR)} { text-shadow: 0 0 4px rgba(255,170,60,0.45), 0 0 12px rgba(255,140,20,0.2); }
76
+ ${C(CR)}::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 60;
77
+ background: repeating-linear-gradient(to bottom, rgba(0,0,0,0.28) 0 1px, transparent 1px 3px);
78
+ box-shadow: inset 0 0 90px rgba(0,0,0,0.85); }
79
+ ${C(CR)} [data-tx-skin="crt"]::after { content: none; }
80
+ ${C(CR)} [data-chat-part] { --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Consolas, monospace; }
81
+ ${C(CR)} [data-chat-part]:not([data-chat-part="header"]) button { font-family: inherit; }
82
+ ${P(CR, 'header')} { background: #120c05; }
83
+ ${P(CR, 'header')}::before { content: "[IDLE]"; color: #b8843a; font-size: 11.5px; white-space: nowrap; }
84
+ ${P(CR, 'header')}[data-chat-running]::before { content: "[BUSY]"; color: #ffd08a; }
85
+ ${P(CR, 'ctx')} { --surface-1: #120c05; --accent: #ffb347; }
86
+ ${P(CR, 'ctx-fill')} { -webkit-mask: repeating-linear-gradient(90deg, #000 0 7px, transparent 7px 9px); mask: repeating-linear-gradient(90deg, #000 0 7px, transparent 7px 9px); }
87
+ ${P(CR, 'ctx-label')} { color: #ffd08a; font-size: 11.5px; }
88
+ ${P(CR, 'perm')} { --warning: transparent; --warning-soft: transparent; box-shadow: inset 2px 0 0 #ffd08a; }
89
+ ${P(CR, 'perm-head')} { --text-primary: #ffd08a; }
90
+ ${P(CR, 'perm-go')} { --grad-brand: transparent; --text-on-accent: #ffd08a; }
91
+ ${P(CR, 'perm-session')} { --surface-1: transparent; --border-default: #3a2a12; --text-secondary: #d99a3f; }
92
+ ${P(CR, 'perm-deny')} { --surface-1: transparent; --border-default: #3a2a12; --text-secondary: #ff6a3d; }
93
+ `;
94
+ const IR = 'irc';
95
+ /* A chat client: the header and the task line are blue status bars, the
96
+ * context reading is the channel topic, the permission request a notice. */
97
+ const irc = `
98
+ ${C(IR)} [data-chat-part]:not([data-chat-part="header"]) button { font-family: inherit; }
99
+ ${P(IR, 'header')} { background: #1c2b3a; }
100
+ ${P(IR, 'header')}::before { content: "-!- idle"; color: #8b949e; font-size: 11.5px; white-space: nowrap; }
101
+ ${P(IR, 'header')}[data-chat-running]::before { content: "-!- busy"; color: #3fb950; }
102
+ ${P(IR, 'ctx')} { --surface-1: #151b21; --accent: #79c0ff; }
103
+ ${P(IR, 'ctx-label')} { color: #e6edf3; }
104
+ ${P(IR, 'perm')} { --warning: transparent; --warning-soft: transparent; }
105
+ ${P(IR, 'perm-head')} { --text-primary: #e3b341; }
106
+ ${P(IR, 'perm-go')} { --grad-brand: transparent; --text-on-accent: #3fb950; }
107
+ ${P(IR, 'perm-session')} { --surface-1: transparent; --border-default: #262e36; --text-secondary: #79c0ff; }
108
+ ${P(IR, 'perm-deny')} { --surface-1: transparent; --border-default: #262e36; --text-secondary: #ff7b72; }
109
+ ${P(IR, 'tasks')} { --surface-2: #1c2b3a; --border-subtle: #1c2b3a; }
110
+ `;
111
+ const BP = 'blueprint';
112
+ /* A drafting sheet: uppercase labels with tracking, the approval a dashed
113
+ * callout, the composer a title block. "IN PROGRESS" shows only while a run is
114
+ * live; an idle sheet shows no status. */
115
+ const blueprint = `
116
+ ${C(BP)} [data-chat-part]:not([data-chat-part="header"]) button { font-family: inherit; }
117
+ ${P(BP, 'header')} { background: rgba(14,58,107,0.94); text-transform: uppercase; letter-spacing: 0.08em; }
118
+ ${P(BP, 'header')}[data-chat-running]::before { content: "IN PROGRESS"; color: #ffe28a; font-size: 10.5px; letter-spacing: 0.12em; white-space: nowrap; }
119
+ ${P(BP, 'ctx')} { --surface-1: rgba(14,58,107,0.94); --accent: #9fd0ff; }
120
+ ${P(BP, 'ctx-label')} { color: #7fc4ff; font-size: 10.5px; letter-spacing: 0.12em; }
121
+ ${P(BP, 'perm')} { --warning: transparent; outline: 1px dashed #ffe28a; outline-offset: -1px; }
122
+ ${P(BP, 'perm-head')} { --text-primary: #ffe28a; text-transform: uppercase; letter-spacing: 0.1em; }
123
+ ${P(BP, 'perm-go')} { --grad-brand: #9fd0ff; --text-on-accent: #0e3a6b; letter-spacing: 0.08em; }
124
+ ${P(BP, 'perm-session')} { --border-default: #9fd0ff; letter-spacing: 0.08em; }
125
+ ${P(BP, 'perm-deny')} { --text-secondary: #ff9f7a; --border-default: #ff9f7a; letter-spacing: 0.08em; }
126
+ ${P(BP, 'send')}, ${P(BP, 'stop')}, ${P(BP, 'queue')}, ${P(BP, 'tasks')} { letter-spacing: 0.1em; }
127
+ `;
128
+ const MI = 'minimal';
129
+ /* Quiet: no cards. The permission prompt is a line with a warm left rule. */
130
+ const minimal = `
131
+ ${C(MI)} [data-chat-part]:not([data-chat-part="header"]) button { font-family: inherit; }
132
+ ${P(MI, 'ctx')} { --accent: #8a857e; --surface-3: #262422; }
133
+ ${P(MI, 'perm')} { --warning: transparent; box-shadow: inset 2px 0 0 #d9b36c; }
134
+ ${P(MI, 'perm-go')} { --grad-brand: #e9e6e1; --text-on-accent: #191817; }
135
+ `;
136
+ const HH = 'handheld';
137
+ /* Four greens. The permission prompt is a dialogue box with a double border;
138
+ * the header shows "RUNNING" only while a run is live. */
139
+ const handheld = `
140
+ ${C(HH)} [data-chat-part] { --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Consolas, monospace; }
141
+ ${C(HH)} [data-chat-part]:not([data-chat-part="header"]) button { font-family: inherit; }
142
+ ${P(HH, 'header')} { background: #8bac0f; }
143
+ ${P(HH, 'header')}[data-chat-running]::before { content: "RUNNING"; color: #0f380f; font-size: 11.5px; white-space: nowrap; }
144
+ ${P(HH, 'ctx')} { --surface-1: #8bac0f; --surface-3: #9bbc0f; --accent: #0f380f; }
145
+ ${P(HH, 'ctx-fill')} { -webkit-mask: repeating-linear-gradient(90deg, #000 0 7px, transparent 7px 9px); mask: repeating-linear-gradient(90deg, #000 0 7px, transparent 7px 9px); }
146
+ ${P(HH, 'ctx-label')} { color: #0f380f; font-size: 11.5px; }
147
+ ${P(HH, 'perm')} { --warning: #0f380f; box-shadow: inset 0 0 0 2px #9bbc0f, inset 0 0 0 4px #306230; }
148
+ ${P(HH, 'perm-head')} { --text-primary: #0f380f; }
149
+ ${P(HH, 'perm-go')} { --grad-brand: #0f380f; --text-on-accent: #9bbc0f; }
150
+ ${P(HH, 'perm-session')} { --surface-1: #9bbc0f; --border-default: #306230; --text-secondary: #0f380f; }
151
+ ${P(HH, 'perm-deny')} { --surface-1: #9bbc0f; --border-default: #306230; --text-secondary: #0f380f; }
152
+ `;
153
+ const RC = 'receipt';
154
+ /* A thermal slip: the approval is a dashed authorization block, the header
155
+ * says "PRINTING" only while a run is live (the reply is being printed). */
156
+ const receipt = `
157
+ ${C(RC)} [data-chat-part]:not([data-chat-part="header"]) button { font-family: inherit; }
158
+ ${P(RC, 'header')} { background: #fbfaf6; text-transform: uppercase; letter-spacing: 0.06em; }
159
+ ${P(RC, 'header')}[data-chat-running]::before { content: "PRINTING"; color: #444444; font-size: 11px; white-space: nowrap; }
160
+ ${P(RC, 'ctx')} { --surface-1: #fbfaf6; --surface-3: #e7e2d8; --accent: #222222; text-transform: uppercase; }
161
+ ${P(RC, 'ctx-fill')} { -webkit-mask: repeating-linear-gradient(90deg, #000 0 2px, transparent 2px 3px); mask: repeating-linear-gradient(90deg, #000 0 2px, transparent 2px 3px); }
162
+ ${P(RC, 'perm')} { --warning: transparent; outline: 1px dashed #999999; outline-offset: -1px; }
163
+ ${P(RC, 'perm-head')} { --text-primary: #222222; letter-spacing: 0.06em; }
164
+ ${P(RC, 'perm-go')} { --grad-brand: #222222; --text-on-accent: #fbfaf6; letter-spacing: 0.06em; }
165
+ ${P(RC, 'perm-deny')} { --text-secondary: #a3261b; letter-spacing: 0.06em; }
166
+ ${P(RC, 'send')}, ${P(RC, 'stop')}, ${P(RC, 'queue')} { letter-spacing: 0.06em; }
167
+ `;
168
+ const RT = 'retro';
169
+ const BEVEL_OUT = 'inset -1px -1px #0a0a0a, inset 1px 1px #ffffff, inset -2px -2px #808080, inset 2px 2px #dfdfdf';
170
+ const BEVEL_IN = 'inset 1px 1px #808080, inset -1px -1px #ffffff, inset 2px 2px #0a0a0a, inset -2px -2px #dfdfdf';
171
+ /* Grey bevels on a teal desktop: the header is a navy title bar, buttons are
172
+ * raised, the composer's text field is sunken white. */
173
+ const retro = `
174
+ ${C(RT)} [data-chat-part]:not([data-chat-part="header"]) button { font-family: inherit; }
175
+ ${P(RT, 'header')} { background: linear-gradient(90deg, #000080, #1084d0); --text-primary: #ffffff; --text-secondary: #ffffff; --text-tertiary: #dfe6f5; --border-subtle: #000080; }
176
+ ${P(RT, 'header')}[data-chat-running]::before { content: "Busy"; color: #ffffff; font-size: 11px; white-space: nowrap; }
177
+ ${P(RT, 'ctx')} { --surface-1: #c0c0c0; --surface-3: #ffffff; --accent: #000080; --text-tertiary: #000000; }
178
+ ${P(RT, 'ctx-fill')} { -webkit-mask: repeating-linear-gradient(90deg, #000 0 8px, transparent 8px 10px); mask: repeating-linear-gradient(90deg, #000 0 8px, transparent 8px 10px); }
179
+ ${P(RT, 'perm')} { --warning: #808080; box-shadow: ${BEVEL_OUT}; }
180
+ ${P(RT, 'perm-head')} { --text-primary: #000000; }
181
+ ${P(RT, 'perm-go')}, ${P(RT, 'perm-session')}, ${P(RT, 'perm-deny')} { --grad-brand: #c0c0c0; --surface-1: #c0c0c0; --text-on-accent: #000000; --text-secondary: #000000; --border-default: #c0c0c0; box-shadow: ${BEVEL_OUT}; }
182
+ ${P(RT, 'perm-go')} { outline: 1px solid #000000; outline-offset: -1px; }
183
+ ${P(RT, 'composer')} { --surface-1: #c0c0c0; --border-subtle: #808080; }
184
+ ${P(RT, 'composer-box')} { --surface-2: #ffffff; box-shadow: ${BEVEL_IN}; }
185
+ ${P(RT, 'composer-title')} { background: linear-gradient(90deg, #000080, #1084d0); --text-tertiary: #ffffff; --success: #ffffff; }
186
+ ${P(RT, 'send')}, ${P(RT, 'stop')} { box-shadow: ${BEVEL_OUT}; }
187
+ ${P(RT, 'tasks')} { --surface-2: #c0c0c0; --text-primary: #000000; --text-secondary: #000000; }
188
+ `;
189
+ export const CHAT_CSS = {
190
+ default: '',
191
+ terminal,
192
+ crt,
193
+ minimal,
194
+ paper,
195
+ blueprint,
196
+ irc,
197
+ handheld,
198
+ receipt,
199
+ mission,
200
+ retro,
201
+ };
202
+ //# sourceMappingURL=chatSkinCss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatSkinCss.js","sourceRoot":"","sources":["../chatSkinCss.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ConversationTurn } from '@corenel/harness/conversation';
1
+ import { type ConversationTurn } from '@corenel/harness/conversation';
2
2
  /** The name recordCommand writes. Not a general tool: nothing else may claim it. */
3
3
  export declare const COMMAND_TOOL = "console_command";
4
4
  export interface CommandTurnInfo {
@@ -13,6 +13,9 @@ export interface CommandTurnInfo {
13
13
  * card — and showing both put three stacked boxes on screen for one
14
14
  * keystroke. */
15
15
  shell: boolean;
16
+ /** Set by trayCommand: the turn is at or before the fold point, so Keep
17
+ * would be refused (the folded view is what is sent). */
18
+ folded?: boolean;
16
19
  }
17
20
  /**
18
21
  * The command a turn records, or null when it is an ordinary turn.
@@ -1 +1 @@
1
- {"version":3,"file":"commandTurn.d.ts","sourceRoot":"","sources":["../commandTurn.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,oFAAoF;AACpF,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;IACZ,yEAAyE;IACzE,IAAI,EAAE,OAAO,CAAC;IACd;;;oBAGgB;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB;AAQD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,eAAe,GAAG,IAAI,CAmB9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,eAAe,GAAG,IAAI,CAO7E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAE7E"}
1
+ {"version":3,"file":"commandTurn.d.ts","sourceRoot":"","sources":["../commandTurn.ts"],"names":[],"mappings":"AASA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEpF,oFAAoF;AACpF,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,OAAO,CAAC;IACZ,yEAAyE;IACzE,IAAI,EAAE,OAAO,CAAC;IACd;;;oBAGgB;IAChB,KAAK,EAAE,OAAO,CAAC;IACf;6DACyD;IACzD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAQD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,eAAe,GAAG,IAAI,CAmB9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,eAAe,GAAG,IAAI,CAQ7E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAE7E"}
@@ -1,3 +1,13 @@
1
+ /* Reading back a console command recorded into a session.
2
+ *
3
+ * `>pd ls` is stored as a synthetic tool call + result (AgentRuntime.recordCommand)
4
+ * so it persists, replays, and the model understands it. Two places need to
5
+ * recognise that shape again: the tray that offers to keep it, and the transcript
6
+ * filter that hides it until you do. If those two disagreed about what counts as
7
+ * a command turn, output would either show up twice or vanish entirely — so the
8
+ * recognition lives here, once, and both callers use it.
9
+ */
10
+ import { isFoldedTurn } from '@corenel/harness/conversation';
1
11
  /** The name recordCommand writes. Not a general tool: nothing else may claim it. */
2
12
  export const COMMAND_TOOL = 'console_command';
3
13
  /** The marker that makes a recorded command line a shell line. Kept in step with
@@ -49,7 +59,9 @@ export function trayCommand(turns) {
49
59
  const info = readCommandTurn(turns[i]);
50
60
  if (!info || info.shell)
51
61
  continue;
52
- return info.kept ? null : info;
62
+ if (info.kept)
63
+ return null;
64
+ return isFoldedTurn(turns, i) ? { ...info, folded: true } : info;
53
65
  }
54
66
  return null;
55
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commandTurn.js","sourceRoot":"","sources":["../commandTurn.ts"],"names":[],"mappings":"AAWA,oFAAoF;AACpF,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAgB9C;wCACwC;AACxC,MAAM,UAAU,GAAG,GAAG,CAAC;AAIvB;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,MAAM,IAAI,GAAc,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAA+C,CAAC;IACpE,MAAM,IAAI,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAEvD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,EAAE,GAAG,IAAI,CAAC;IACd,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAuC,CAAC;QAC/F,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,wEAAwE;QACxE,2EAA2E;QAC3E,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC,CAAC,mDAAmD,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAsC,CAAC;IAC5D,MAAM,MAAM,GAAG,OAAO,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;AAC9G,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,KAAyB;IACnD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,SAAS;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAyB;IACvD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"commandTurn.js","sourceRoot":"","sources":["../commandTurn.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,YAAY,EAAyB,MAAM,+BAA+B,CAAC;AAEpF,oFAAoF;AACpF,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAmB9C;wCACwC;AACxC,MAAM,UAAU,GAAG,GAAG,CAAC;AAIvB;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,MAAM,IAAI,GAAc,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAA+C,CAAC;IACpE,MAAM,IAAI,GAAG,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAEvD,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,EAAE,GAAG,IAAI,CAAC;IACd,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI,CAAuC,CAAC;QAC/F,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,wEAAwE;QACxE,2EAA2E;QAC3E,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,KAAK,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC,CAAC,mDAAmD,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAsC,CAAC;IAC5D,MAAM,MAAM,GAAG,OAAO,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACzE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;AAC9G,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,WAAW,CAAC,KAAyB;IACnD,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK;YAAE,SAAS;QAClC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3B,OAAO,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,KAAyB;IACvD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /** An INCLUDED turn at or before the fold: the folded view stands for it. */
2
+ export declare const FOLDED_TITLE = "Folded into the summary. It is no longer sent on its own and cannot be included or dropped.";
3
+ /** An EXCLUDED turn at or before the fold: the folding run never saw it, and
4
+ * the runtime refuses to include it now. */
5
+ export declare const NOT_SENT_BEFORE_FOLD_TITLE = "Not sent before the fold. It cannot be included now.";
6
+ /** Tooltip suffix on a control that changes one turn mid-conversation. Text
7
+ * only: a title attribute cannot render the warning icon the visible lines use. */
8
+ export declare const CACHE_WARNING_TITLE = "Warning: changes what the model sees from this turn on. Everything cached after it is discarded, so the next request is billed at full price for that part.";
9
+ /** The visible line under the drawer's per-turn actions, drawn after an alert icon. */
10
+ export declare const CACHE_WARNING_TURN = "Dropping or restoring a turn discards the prompt cache from that turn on.";
11
+ /** The visible line beside the bulk modal's apply buttons, drawn after an alert icon. */
12
+ export declare const CACHE_WARNING_BULK = "Changing turns discards the prompt cache from the earliest changed turn on, so the next request costs more.";
13
+ //# sourceMappingURL=contextCopy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextCopy.d.ts","sourceRoot":"","sources":["../contextCopy.ts"],"names":[],"mappings":"AAQA,6EAA6E;AAC7E,eAAO,MAAM,YAAY,gGAAgG,CAAC;AAE1H;4CAC4C;AAC5C,eAAO,MAAM,0BAA0B,yDAAyD,CAAC;AAEjG;mFACmF;AACnF,eAAO,MAAM,mBAAmB,gKAAgK,CAAC;AAEjM,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,8EAA8E,CAAC;AAE9G,yFAAyF;AACzF,eAAO,MAAM,kBAAkB,gHAAgH,CAAC"}
@@ -0,0 +1,20 @@
1
+ /* The words every context control uses, written once.
2
+ *
3
+ * The transcript's per-turn toggle, the drawer's Drop and Restore, the bulk
4
+ * exclusions modal and the command tray all describe the same two facts: a turn
5
+ * at or before the fold cannot be changed, and changing a turn mid-conversation
6
+ * throws away the provider's prompt cache from that turn on. Four copies of a
7
+ * sentence is how four surfaces end up saying four slightly different things. */
8
+ /** An INCLUDED turn at or before the fold: the folded view stands for it. */
9
+ export const FOLDED_TITLE = 'Folded into the summary. It is no longer sent on its own and cannot be included or dropped.';
10
+ /** An EXCLUDED turn at or before the fold: the folding run never saw it, and
11
+ * the runtime refuses to include it now. */
12
+ export const NOT_SENT_BEFORE_FOLD_TITLE = 'Not sent before the fold. It cannot be included now.';
13
+ /** Tooltip suffix on a control that changes one turn mid-conversation. Text
14
+ * only: a title attribute cannot render the warning icon the visible lines use. */
15
+ export const CACHE_WARNING_TITLE = 'Warning: changes what the model sees from this turn on. Everything cached after it is discarded, so the next request is billed at full price for that part.';
16
+ /** The visible line under the drawer's per-turn actions, drawn after an alert icon. */
17
+ export const CACHE_WARNING_TURN = 'Dropping or restoring a turn discards the prompt cache from that turn on.';
18
+ /** The visible line beside the bulk modal's apply buttons, drawn after an alert icon. */
19
+ export const CACHE_WARNING_BULK = 'Changing turns discards the prompt cache from the earliest changed turn on, so the next request costs more.';
20
+ //# sourceMappingURL=contextCopy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextCopy.js","sourceRoot":"","sources":["../contextCopy.ts"],"names":[],"mappings":"AAAA;;;;;;iFAMiF;AAEjF,6EAA6E;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAG,6FAA6F,CAAC;AAE1H;4CAC4C;AAC5C,MAAM,CAAC,MAAM,0BAA0B,GAAG,sDAAsD,CAAC;AAEjG;mFACmF;AACnF,MAAM,CAAC,MAAM,mBAAmB,GAAG,6JAA6J,CAAC;AAEjM,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAAG,2EAA2E,CAAC;AAE9G,yFAAyF;AACzF,MAAM,CAAC,MAAM,kBAAkB,GAAG,6GAA6G,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { AGENT_CREDENTIAL_MISSING, ASKER_DAEMON_UNAVAILABLE, PEER_OUTCOME_UNKNOWN, PEER_POLICY_DENIED } from '@corenel/protocol';
2
+ export type McpRunErrorCode = typeof ASKER_DAEMON_UNAVAILABLE | typeof AGENT_CREDENTIAL_MISSING | typeof PEER_POLICY_DENIED | typeof PEER_OUTCOME_UNKNOWN;
3
+ export declare const MCP_RUN_ERROR_CODES: readonly McpRunErrorCode[];
4
+ /** The label of whoever decides for the agent, set by a surface that knows it. */
5
+ export declare const ToolOwnerLabel: import("react").Context<string | null>;
6
+ /** The code at the head of a failed MCP tool result, or null. Matched as a
7
+ * whole word in the first line, so a longer identifier never matches. */
8
+ export declare function mcpRunErrorOf(result: string): McpRunErrorCode | null;
9
+ export declare function credentialProblemLine(toolName: string, result: string, ownerLabel: string | null): string | null;
10
+ //# sourceMappingURL=credentialLines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentialLines.d.ts","sourceRoot":"","sources":["../credentialLines.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,wBAAwB,EAAE,wBAAwB,EAAuB,oBAAoB,EAC7F,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,eAAe,GACvB,OAAO,wBAAwB,GAAG,OAAO,wBAAwB,GACjE,OAAO,kBAAkB,GAAG,OAAO,oBAAoB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,EAAE,SAAS,eAAe,EAEzD,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,cAAc,wCAAqC,CAAC;AAIjE;yEACyE;AACzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CASpE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAgBhH"}
@@ -0,0 +1,46 @@
1
+ /* One plain line per MCP run error a tool result carries (spec 2026-10-01
2
+ * E5.4). Part D answers a team run's MCP failure as a tool result that starts
3
+ * with one of four codes; this turns the code into words a person can act on.
4
+ * The owner's label comes from the surface (ToolOwnerLabel); without one the
5
+ * line says "its owner". */
6
+ import { createContext } from 'react';
7
+ import { AGENT_CREDENTIAL_MISSING, ASKER_DAEMON_UNAVAILABLE, NO_REQUESTER_REASON, PEER_OUTCOME_UNKNOWN, PEER_POLICY_DENIED, parseMcpToolAddress, parseMcpWireName, } from '@corenel/protocol';
8
+ export const MCP_RUN_ERROR_CODES = [
9
+ ASKER_DAEMON_UNAVAILABLE, AGENT_CREDENTIAL_MISSING, PEER_POLICY_DENIED, PEER_OUTCOME_UNKNOWN,
10
+ ];
11
+ /** The label of whoever decides for the agent, set by a surface that knows it. */
12
+ export const ToolOwnerLabel = createContext(null);
13
+ const isCodeChar = (c) => c !== undefined && /[A-Z_]/.test(c);
14
+ /** The code at the head of a failed MCP tool result, or null. Matched as a
15
+ * whole word in the first line, so a longer identifier never matches. */
16
+ export function mcpRunErrorOf(result) {
17
+ const first = result.split('\n', 1)[0] ?? '';
18
+ for (const code of MCP_RUN_ERROR_CODES) {
19
+ const at = first.indexOf(code);
20
+ if (at < 0)
21
+ continue;
22
+ if (isCodeChar(first[at - 1]) || isCodeChar(first[at + code.length]))
23
+ continue;
24
+ return code;
25
+ }
26
+ return null;
27
+ }
28
+ export function credentialProblemLine(toolName, result, ownerLabel) {
29
+ const code = mcpRunErrorOf(result);
30
+ if (!code)
31
+ return null;
32
+ const parsed = parseMcpWireName(toolName) ?? parseMcpToolAddress(toolName);
33
+ const server = parsed?.server ?? toolName;
34
+ const tool = parsed?.tool ?? toolName;
35
+ switch (code) {
36
+ case ASKER_DAEMON_UNAVAILABLE:
37
+ return result.includes(NO_REQUESTER_REASON)
38
+ ? `No one asked for this run, so no member's daemon can serve ${server}`
39
+ : "Your daemon isn't linked to this team daemon";
40
+ case AGENT_CREDENTIAL_MISSING: return `This agent has no credential for ${server}; ask ${ownerLabel ?? 'its owner'}`;
41
+ case PEER_POLICY_DENIED: return `Your daemon didn't allow ${tool}`;
42
+ case PEER_OUTCOME_UNKNOWN: return `${tool} may or may not have run; it was not retried.`;
43
+ default: return null;
44
+ }
45
+ }
46
+ //# sourceMappingURL=credentialLines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentialLines.js","sourceRoot":"","sources":["../credentialLines.ts"],"names":[],"mappings":"AAAA;;;;4BAI4B;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EACL,wBAAwB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,oBAAoB,EAC7F,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,GAC1D,MAAM,mBAAmB,CAAC;AAM3B,MAAM,CAAC,MAAM,mBAAmB,GAA+B;IAC7D,wBAAwB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,oBAAoB;CAC7F,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAgB,IAAI,CAAC,CAAC;AAEjE,MAAM,UAAU,GAAG,CAAC,CAAqB,EAAW,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE3F;yEACyE;AACzE,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,EAAE,GAAG,CAAC;YAAE,SAAS;QACrB,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAAE,SAAS;QAC/E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,MAAc,EAAE,UAAyB;IAC/F,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,QAAQ,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,QAAQ,CAAC;IACtC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,wBAAwB;YAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC;gBACzC,CAAC,CAAC,8DAA8D,MAAM,EAAE;gBACxE,CAAC,CAAC,8CAA8C,CAAC;QACrD,KAAK,wBAAwB,CAAC,CAAC,OAAO,oCAAoC,MAAM,SAAS,UAAU,IAAI,WAAW,EAAE,CAAC;QACrH,KAAK,kBAAkB,CAAC,CAAC,OAAO,4BAA4B,IAAI,EAAE,CAAC;QACnE,KAAK,oBAAoB,CAAC,CAAC,OAAO,GAAG,IAAI,+CAA+C,CAAC;QACzF,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -26,6 +26,13 @@ export interface SendLaterProps {
26
26
  /** The live queue + clock from useSendLater. */
27
27
  items: QueuedSend[];
28
28
  now: number;
29
+ /** Folded into the composer's "+" menu: no clock button at rest. While
30
+ * messages are queued the button returns as an "N scheduled" chip (warning
31
+ * style when one was missed), so what is waiting stays visible. */
32
+ collapsed?: boolean;
33
+ /** Controlled open state, for a menu that opens the list from outside. */
34
+ open?: boolean;
35
+ onOpenChange?: (open: boolean) => void;
29
36
  }
30
- export declare function SendLater({ text, onQueued, onSendNow, items, now }: SendLaterProps): React.ReactElement;
37
+ export declare function SendLater({ text, onQueued, onSendNow, items, now, collapsed, open: openProp, onOpenChange }: SendLaterProps): React.ReactElement;
31
38
  //# sourceMappingURL=SendLater.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SendLater.d.ts","sourceRoot":"","sources":["../../sendLater/SendLater.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,EAGyB,KAAK,UAAU,EAC9C,MAAM,SAAS,CAAC;AAajB;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,IAAI,EAAE,OAAO;;;EA4BvE;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;wDACoD;IACpD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gDAAgD;IAChD,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CAoIvG"}
1
+ {"version":3,"file":"SendLater.d.ts","sourceRoot":"","sources":["../../sendLater/SendLater.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,OAAO,EAGyB,KAAK,UAAU,EAC9C,MAAM,SAAS,CAAC;AAajB;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,IAAI,EAAE,OAAO;;;EA4BvE;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;wDACoD;IACpD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,gDAAgD;IAChD,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ;;uEAEmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,SAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,CA2IxJ"}
@@ -63,8 +63,15 @@ export function useSendLater(send, busy) {
63
63
  }, []);
64
64
  return { items, now };
65
65
  }
66
- export function SendLater({ text, onQueued, onSendNow, items, now }) {
67
- const [open, setOpen] = useState(false);
66
+ export function SendLater({ text, onQueued, onSendNow, items, now, collapsed = false, open: openProp, onOpenChange }) {
67
+ const [openLocal, setOpenLocal] = useState(false);
68
+ const open = openProp ?? openLocal;
69
+ const setOpen = useCallback((next) => {
70
+ const value = typeof next === 'function' ? next(open) : next;
71
+ if (openProp === undefined)
72
+ setOpenLocal(value);
73
+ onOpenChange?.(value);
74
+ }, [open, openProp, onOpenChange]);
68
75
  const [editing, setEditing] = useState(null);
69
76
  const [draft, setDraft] = useState('');
70
77
  const [hours, setHours] = useState(HOUR_OPTIONS[0]);
@@ -81,7 +88,7 @@ export function SendLater({ text, onQueued, onSendNow, items, now }) {
81
88
  };
82
89
  document.addEventListener('mousedown', onDown, true);
83
90
  return () => document.removeEventListener('mousedown', onDown, true);
84
- }, [open]);
91
+ }, [open, setOpen]);
85
92
  const park = useCallback((minutes) => {
86
93
  if (queueSend(text, minutes, Date.now())) {
87
94
  onQueued();
@@ -94,8 +101,9 @@ export function SendLater({ text, onQueued, onSendNow, items, now }) {
94
101
  const sendNow = (id) => { const e = takeOne(id); if (e)
95
102
  onSendNow(e.text); };
96
103
  const missedCount = items.filter((i) => i.missed).length;
97
- const label = items.length ? String(items.length) : '';
98
- return (_jsxs("div", { ref: wrapRef, style: S.wrap, children: [_jsxs("button", { style: { ...S.btn, ...(missedCount ? S.btnMissed : items.length ? S.btnActive : null) }, onClick: () => setOpen((o) => !o), title: missedCount
104
+ const label = items.length ? (collapsed ? `${items.length} scheduled` : String(items.length)) : '';
105
+ const showButton = !collapsed || items.length > 0;
106
+ return (_jsxs("div", { ref: wrapRef, style: S.wrap, children: [showButton && _jsxs("button", { style: { ...S.btn, ...(missedCount ? S.btnMissed : items.length ? S.btnActive : null) }, onClick: () => setOpen((o) => !o), title: missedCount
99
107
  ? `${missedCount} missed message${missedCount === 1 ? '' : 's'} waiting for you`
100
108
  : items.length
101
109
  ? `${items.length} message${items.length === 1 ? '' : 's'} queued to send later`
@@ -114,9 +122,9 @@ export function SendLater({ text, onQueued, onSendNow, items, now }) {
114
122
  }
115
123
  const S = {
116
124
  wrap: { position: 'relative', display: 'inline-flex' },
117
- // 34px, matching the stance+Send control beside it -- the two controls sit on
118
- // the same row and a shorter button reads as an afterthought.
119
- btn: { display: 'inline-flex', alignItems: 'center', gap: 6, height: 34, padding: '0 12px', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-secondary)', fontSize: 12.5, fontWeight: 600, fontFamily: 'inherit', boxShadow: 'var(--shadow-1)', cursor: 'pointer' },
125
+ // 32px, matching the stance+Send control (Composer's S.stance) -- the two
126
+ // controls sit on the same row and a mismatched button reads as an afterthought.
127
+ btn: { display: 'inline-flex', alignItems: 'center', gap: 6, height: 32, padding: '0 12px', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-secondary)', fontSize: 12.5, fontWeight: 600, fontFamily: 'inherit', boxShadow: 'var(--shadow-1)', cursor: 'pointer' },
120
128
  // Full `border`, not `borderColor`: React warns (correctly) that removing a
121
129
  // longhand on rerender while a shorthand is set leads to real styling bugs.
122
130
  btnActive: { color: 'var(--accent)', border: '1px solid var(--accent)' },
@@ -1 +1 @@
1
- {"version":3,"file":"SendLater.js","sourceRoot":"","sources":["../../sendLater/SendLater.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SendLater.js","sourceRoot":"","sources":["../../sendLater/SendLater.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolRender.d.ts","sourceRoot":"","sources":["../toolRender.tsx"],"names":[],"mappings":"AAcA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAKnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOrD,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,KAAK,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAoEtD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,CAQvF;AA0BD;mFACmF;AACnF,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAe,EAAE,EAAE;IACtF,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAChH,oEAAoE;IACpE,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,qBA0BA;AAED;+EAC+E;AAC/E,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,WAAmB,EAAE,MAAe,EAAE,EAAE;IAAE,GAAG,EAAE,cAAc,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,aAAa,CAAA;CAAE,qBAcnJ;AAED;;wEAEwE;AACxE,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,qBAYnH"}
1
+ {"version":3,"file":"toolRender.d.ts","sourceRoot":"","sources":["../toolRender.tsx"],"names":[],"mappings":"AAcA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAK/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AASrD,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,KAAK,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAoEtD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,UAAU,CAQvF;AA0BD;mFACmF;AACnF,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAe,EAAE,EAAE;IACtF,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAChH,oEAAoE;IACpE,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,qBA8BA;AAED;+EAC+E;AAC/E,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,WAAmB,EAAE,MAAe,EAAE,EAAE;IAAE,GAAG,EAAE,cAAc,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,aAAa,CAAA;CAAE,qBAcnJ;AAED;;wEAEwE;AACxE,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,qBAYnH"}
@@ -13,11 +13,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  * - `ToolLine` — the dense status line the SUMMARY renderer uses on its own (and
14
14
  * the card header reuses), plus the live in-flight list in AgentPanel.
15
15
  */
16
- import { useEffect, useState } from 'react';
16
+ import { useContext, useEffect, useState } from 'react';
17
17
  import { isToolErrorResult } from '@corenel/harness/core/recovery';
18
18
  import { RichResult, RichArgs, CopyBtn } from './RichContent';
19
19
  import { FxText } from './fx/FxText';
20
20
  import { IcCheck, IcChevronRight, IcZap, IcGit, IcRefresh, IcAlert, IcCode, IcPackage, IcSave, IcSearch, IcFileText, IcFile, IcFilePlus, IcTrash, IcEdit, IcFolder, IcDownload, IcHelp, IcUser, IcEye, } from '@corenel/ui-kit/icons';
21
+ import { txMeta } from './transcriptSkin';
22
+ import { credentialProblemLine, ToolOwnerLabel } from './credentialLines';
21
23
  const TOOLS = {
22
24
  compile_prompd: { label: 'Compile', icon: IcCode },
23
25
  propose_edit: { label: 'Propose edit', icon: IcGit },
@@ -149,7 +151,11 @@ export function ToolLine({ name, args, result, isError, running, ms, nameFx = 'n
149
151
  const label = def?.label ?? name;
150
152
  const status = running ? 'running' : toolStatusOf(name, result || '', !!isError);
151
153
  const base = toolDetail(name, args);
152
- const detail = status === 'error' ? (truncate(firstLine(result || ''), 72) || base) : base;
154
+ const ownerLabel = useContext(ToolOwnerLabel);
155
+ // A team run's MCP failure names its cause in plain words (spec 2026-10-01
156
+ // E5.4); any other failure shows its first line, as before.
157
+ const problem = status === 'error' ? credentialProblemLine(name, result || '', ownerLabel) : null;
158
+ const detail = problem ?? (status === 'error' ? (truncate(firstLine(result || ''), 72) || base) : base);
153
159
  // A failure has no output to measure. toolMeta would happily size the
154
160
  // recovery hint instead -- 149 B of "Error from read_file: File not
155
161
  // found...", or 1 item / 1 note for the other metric-bearing tools.
@@ -187,12 +193,12 @@ const S = {
187
193
  toolHead: { display: 'flex', alignItems: 'center', width: '100%', padding: 'var(--tx-tool-pad, 6px 10px)', border: 0, background: 'transparent', cursor: 'pointer', fontFamily: 'inherit', textAlign: 'left' },
188
194
  toolLine: { display: 'flex', alignItems: 'center', gap: 8, flex: 1, minWidth: 0 },
189
195
  toolIcon: { display: 'inline-flex', color: 'var(--text-tertiary)', flexShrink: 0 },
190
- toolName: { fontSize: 12.5, fontWeight: 600, color: 'var(--text-primary)', flexShrink: 0 },
191
- toolDetail: { fontFamily: mono, fontSize: 11.5, color: 'var(--text-secondary)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', minWidth: 0 },
192
- toolDetailErr: { fontFamily: mono, fontSize: 11.5, color: 'var(--danger)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', minWidth: 0 },
196
+ toolName: { fontSize: txMeta(12.5), fontWeight: 600, color: 'var(--text-primary)', flexShrink: 0 },
197
+ toolDetail: { fontFamily: mono, fontSize: txMeta(11.5), color: 'var(--text-secondary)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', minWidth: 0 },
198
+ toolDetailErr: { fontFamily: mono, fontSize: txMeta(11.5), color: 'var(--danger)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', minWidth: 0 },
193
199
  toolRight: { marginLeft: 'auto', display: 'inline-flex', alignItems: 'center', gap: 8, flexShrink: 0, paddingLeft: 8 },
194
- toolMeta: { fontSize: 11, color: 'var(--text-tertiary)', fontVariantNumeric: 'tabular-nums', flexShrink: 0 },
195
- toolDur: { fontSize: 10.5, color: 'var(--text-disabled)', fontFamily: mono, fontVariantNumeric: 'tabular-nums', flexShrink: 0 },
200
+ toolMeta: { fontSize: txMeta(11), color: 'var(--text-tertiary)', fontVariantNumeric: 'tabular-nums', flexShrink: 0 },
201
+ toolDur: { fontSize: txMeta(10.5), color: 'var(--text-disabled)', fontFamily: mono, fontVariantNumeric: 'tabular-nums', flexShrink: 0 },
196
202
  resultHead: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', marginTop: 8 },
197
203
  glyph: (status) => ({
198
204
  display: 'var(--tx-glyph-display, inline-flex)', alignItems: 'center', justifyContent: 'center', width: 16, height: 16, borderRadius: 'var(--tx-glyph-radius, 999px)', flexShrink: 0,
@@ -203,6 +209,6 @@ const S = {
203
209
  }),
204
210
  chev: { display: 'inline-flex', color: 'var(--text-tertiary)', transition: 'transform var(--motion-fast)', flexShrink: 0 },
205
211
  toolBody: { padding: 'var(--tx-tool-body-pad, 0 10px 10px)', display: 'flex', flexDirection: 'column', gap: 4 },
206
- toolLabel: { fontSize: 10.5, textTransform: 'uppercase', letterSpacing: '0.06em', color: 'var(--text-disabled)', marginTop: 6 },
212
+ toolLabel: { fontSize: txMeta(10.5), textTransform: 'uppercase', letterSpacing: '0.06em', color: 'var(--text-disabled)', marginTop: 6 },
207
213
  };
208
214
  //# sourceMappingURL=toolRender.js.map