@corenel/web-ui 0.1.0 → 0.3.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 (79) hide show
  1. package/dist/AskUser.d.ts.map +1 -1
  2. package/dist/AskUser.js +49 -13
  3. package/dist/AskUser.js.map +1 -1
  4. package/dist/CommandTray.d.ts +21 -0
  5. package/dist/CommandTray.d.ts.map +1 -0
  6. package/dist/CommandTray.js +102 -0
  7. package/dist/CommandTray.js.map +1 -0
  8. package/dist/Composer.d.ts +17 -1
  9. package/dist/Composer.d.ts.map +1 -1
  10. package/dist/Composer.js +93 -6
  11. package/dist/Composer.js.map +1 -1
  12. package/dist/ContextBar.d.ts +9 -1
  13. package/dist/ContextBar.d.ts.map +1 -1
  14. package/dist/ContextBar.js +9 -3
  15. package/dist/ContextBar.js.map +1 -1
  16. package/dist/ContextManager.d.ts +78 -2
  17. package/dist/ContextManager.d.ts.map +1 -1
  18. package/dist/ContextManager.js +175 -51
  19. package/dist/ContextManager.js.map +1 -1
  20. package/dist/Lightbox.d.ts.map +1 -1
  21. package/dist/Lightbox.js +2 -10
  22. package/dist/Lightbox.js.map +1 -1
  23. package/dist/ProcessDock.d.ts +45 -0
  24. package/dist/ProcessDock.d.ts.map +1 -0
  25. package/dist/ProcessDock.js +150 -0
  26. package/dist/ProcessDock.js.map +1 -0
  27. package/dist/RichContent.d.ts +4 -2
  28. package/dist/RichContent.d.ts.map +1 -1
  29. package/dist/RichContent.js +12 -7
  30. package/dist/RichContent.js.map +1 -1
  31. package/dist/TodoBar.d.ts +3 -0
  32. package/dist/TodoBar.d.ts.map +1 -0
  33. package/dist/TodoBar.js +163 -0
  34. package/dist/TodoBar.js.map +1 -0
  35. package/dist/Transcript.d.ts +2 -1
  36. package/dist/Transcript.d.ts.map +1 -1
  37. package/dist/Transcript.js +7 -7
  38. package/dist/Transcript.js.map +1 -1
  39. package/dist/agentChat/AgentChat.d.ts +132 -0
  40. package/dist/agentChat/AgentChat.d.ts.map +1 -0
  41. package/dist/agentChat/AgentChat.js +588 -0
  42. package/dist/agentChat/AgentChat.js.map +1 -0
  43. package/dist/agentChat/OptionsDrawer.d.ts +81 -0
  44. package/dist/agentChat/OptionsDrawer.d.ts.map +1 -0
  45. package/dist/agentChat/OptionsDrawer.js +321 -0
  46. package/dist/agentChat/OptionsDrawer.js.map +1 -0
  47. package/dist/agentChat/SkillsSection.d.ts +3 -0
  48. package/dist/agentChat/SkillsSection.d.ts.map +1 -0
  49. package/dist/agentChat/SkillsSection.js +86 -0
  50. package/dist/agentChat/SkillsSection.js.map +1 -0
  51. package/dist/agentChat/controller.d.ts +116 -0
  52. package/dist/agentChat/controller.d.ts.map +1 -0
  53. package/dist/agentChat/controller.js +25 -0
  54. package/dist/agentChat/controller.js.map +1 -0
  55. package/dist/agentChat/skillRunner.d.ts +14 -0
  56. package/dist/agentChat/skillRunner.d.ts.map +1 -0
  57. package/dist/agentChat/skillRunner.js +4 -0
  58. package/dist/agentChat/skillRunner.js.map +1 -0
  59. package/dist/commandTurn.d.ts +47 -0
  60. package/dist/commandTurn.d.ts.map +1 -0
  61. package/dist/commandTurn.js +64 -0
  62. package/dist/commandTurn.js.map +1 -0
  63. package/dist/composerHistory.d.ts +10 -0
  64. package/dist/composerHistory.d.ts.map +1 -0
  65. package/dist/composerHistory.js +44 -0
  66. package/dist/composerHistory.js.map +1 -0
  67. package/dist/sendLater/SendLater.d.ts +31 -0
  68. package/dist/sendLater/SendLater.d.ts.map +1 -0
  69. package/dist/sendLater/SendLater.js +145 -0
  70. package/dist/sendLater/SendLater.js.map +1 -0
  71. package/dist/sendLater/queue.d.ts +69 -0
  72. package/dist/sendLater/queue.d.ts.map +1 -0
  73. package/dist/sendLater/queue.js +216 -0
  74. package/dist/sendLater/queue.js.map +1 -0
  75. package/dist/toolRender.d.ts +8 -0
  76. package/dist/toolRender.d.ts.map +1 -1
  77. package/dist/toolRender.js +7 -1
  78. package/dist/toolRender.js.map +1 -1
  79. package/package.json +16 -21
@@ -1,23 +1,12 @@
1
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useEffect, useMemo, useState } from 'react';
3
- import { useConversation } from '@corenel/harness/conversation';
4
- import { listRecall, clearRecall } from '@corenel/tools-web/tools/result-store';
5
3
  import { effectiveThreshold } from '@corenel/harness/compression';
6
4
  import { getCompression, setCompression } from '@corenel/ui-kit/theme';
7
5
  import { getSystemParts, setSystemParts } from '@corenel/harness/systemParts';
8
6
  import { allTools } from '@corenel/harness/tools/builtins';
9
7
  import { useUsage, fmtTok } from '@corenel/ui-kit/usage';
10
- import { estimateTokens } from '@corenel/ui-kit/ui-helpers';
11
- import { IcCheck, IcTrash, IcZap, IcChevron } from '@corenel/ui-kit/icons';
12
- /* Context Manager (dock panel body, and the drawer under the Assistant header).
13
- * Reframed around ONE question: what's in the model's window right now, and how do
14
- * I trim it. Shows a PROJECTED composition (system prompt + included warm turns)
15
- * that responds live to the toggles, plus offloaded/recoverable tool outputs and an
16
- * inline compression control.
17
- *
18
- * `parts` / `onToggle` let a host (AgentPanel) own the system-prompt parts so the
19
- * agent's next run stays in sync; without them the panel self-manages via
20
- * get/setSystemParts (the standalone dock panel). */
8
+ import { estimateTokens, tokenCountsVersion } from '@corenel/ui-kit/ui-helpers';
9
+ import { IcTrash, IcZap, IcChevron } from '@corenel/ui-kit/icons';
21
10
  const PARTS = [
22
11
  { key: 'persona', label: 'Persona', est: 300 },
23
12
  { key: 'mode', label: 'Mode', est: 200 },
@@ -26,16 +15,105 @@ const PARTS = [
26
15
  ];
27
16
  const SYS_BASE_EST = 600; // systems/system-base.md baseline (always included)
28
17
  const PRESETS = ['off', 'conservative', 'balanced', 'aggressive'];
29
- function turnTokens(t) {
18
+ /* With BPE enabled, a turn count is a full encode of the turn's text (including
19
+ * inline tool outputs — MBs on long sessions), and useContextProjection runs in
20
+ * BOTH the collapsed ContextBar and the drawer body, whose memos don't share.
21
+ * Cache per messages-array identity (turn message arrays are immutable once
22
+ * committed) so mounting the drawer never re-encodes the whole conversation;
23
+ * re-count when the counter itself upgrades (heuristic -> BPE). */
24
+ const turnTokCache = new WeakMap();
25
+ export function turnTokens(t) {
26
+ const ver = tokenCountsVersion();
27
+ const hit = turnTokCache.get(t.messages);
28
+ if (hit && hit.ver === ver)
29
+ return hit.tok;
30
30
  let s = '';
31
31
  for (const m of t.messages)
32
32
  s += typeof m.content === 'string' ? m.content : JSON.stringify(m.content ?? '');
33
- return estimateTokens(s);
33
+ const tok = estimateTokens(s);
34
+ turnTokCache.set(t.messages, { ver, tok });
35
+ return tok;
36
+ }
37
+ /** Pull readable text from a message's content, which may be a plain string or
38
+ * an array of parts (multimodal turns carry `[{type:'text',text},{type:'image'…}]`). */
39
+ function textOf(content) {
40
+ if (typeof content === 'string')
41
+ return content;
42
+ if (Array.isArray(content)) {
43
+ return content
44
+ .map((p) => (p && typeof p === 'object' && typeof p.text === 'string' ? p.text : ''))
45
+ .join(' ');
46
+ }
47
+ return '';
34
48
  }
35
49
  function turnLabel(t) {
36
- const u = t.messages.find((m) => m.role === 'user');
37
- const text = u && typeof u.content === 'string' ? u.content : '';
38
- return text.trim().slice(0, 80) || '(turn)';
50
+ const user = t.messages.find((m) => m.role === 'user');
51
+ const assistant = t.messages.find((m) => m.role === 'assistant');
52
+ const text = (textOf(user?.content) || textOf(assistant?.content)).trim();
53
+ return text.slice(0, 80) || 'Untitled turn';
54
+ }
55
+ /* ---- offload -> turn attribution ----
56
+ * Turn ids encode their creation time (`t${Date.now().toString(36)}`, both
57
+ * hosts), and every OffloadedRecord carries createdAt — so offloads bucket into the
58
+ * turn whose time window they fall in without any new plumbing. Unparseable ids
59
+ * or records older than the first turn land in `earlier` (prior sessions). */
60
+ /** Decode the start timestamp from a turn id; null when the id isn't time-encoded. */
61
+ export function turnStartMs(id) {
62
+ const m = /^t([0-9a-z]+)$/.exec(id);
63
+ if (!m)
64
+ return null;
65
+ const n = parseInt(m[1], 36);
66
+ return Number.isFinite(n) && n > 0 ? n : null;
67
+ }
68
+ const kb = (bytes) => `${(bytes / 1000).toFixed(1)} KB`;
69
+ // Offloads are measured in bytes; the window speaks tokens — show both at the
70
+ // same ~4 chars/token heuristic the budget projection uses.
71
+ const tokOf = (bytes) => `~${fmtTok(Math.ceil(bytes / 4))} tok`;
72
+ /** Bucket offloaded records under the turn whose time window they fall in
73
+ * (turn ids encode Date.now() base36; records carry createdAt). Records older
74
+ * than the first turn or under unparseable ids are `unattached`. */
75
+ export function bucketOffloads(records, turns) {
76
+ const starts = turns
77
+ .map((t) => ({ id: t.id, at: turnStartMs(t.id) }))
78
+ .filter((x) => x.at != null)
79
+ .sort((a, b) => a.at - b.at);
80
+ const byTurn = new Map();
81
+ const unattached = [];
82
+ for (const r of [...records].sort((a, b) => a.createdAt - b.createdAt)) {
83
+ let owner = null;
84
+ for (let i = 0; i < starts.length; i++) {
85
+ const next = starts[i + 1];
86
+ if (r.createdAt >= starts[i].at && (!next || r.createdAt < next.at)) {
87
+ owner = starts[i].id;
88
+ break;
89
+ }
90
+ }
91
+ if (owner == null) {
92
+ unattached.push(r);
93
+ continue;
94
+ }
95
+ if (!byTurn.has(owner))
96
+ byTurn.set(owner, []);
97
+ byTurn.get(owner).push(r);
98
+ }
99
+ return { byTurn, unattached };
100
+ }
101
+ /** One offloaded record under NOT SENT: zap + tool + size + source-turn
102
+ * attribution, an optional Restore action, and the expandable preview. */
103
+ export function OffloadRow({ record, fromLabel, sourceDropped, onRestore, note }) {
104
+ const [open, setOpen] = useState(false);
105
+ return (_jsxs("div", { style: S.offWrap, children: [_jsxs("div", { style: S.off, children: [_jsxs("button", { style: S.offMain, onClick: () => setOpen((o) => !o), title: `Show a preview of the frozen content (${tokOf(record.bytes)})`, children: [_jsx("span", { style: { ...S.chev, transform: open ? 'rotate(90deg)' : 'none' }, children: _jsx(IcChevron, { size: 12 }) }), _jsx("span", { style: S.zap, children: _jsx(IcZap, { size: 11 }) }), _jsx("span", { style: S.offName, children: record.toolName }), _jsx("span", { style: S.offMeta, children: kb(record.bytes) }), fromLabel && _jsxs("span", { style: S.offFrom, title: fromLabel, children: ["from \u201C", fromLabel.slice(0, 32), fromLabel.length > 32 ? '…' : '', "\u201D"] })] }), onRestore && (_jsx("button", { style: S.turnAction, onClick: onRestore, title: sourceDropped
106
+ ? 'Restore the full content into its turn (replaces the stub; removes this frozen copy). That turn is currently dropped — restore the turn too for the model to see it.'
107
+ : 'Restore the full content into its turn in the window (replaces the stub; removes this frozen copy)', children: "Restore" }))] }), note && _jsx("div", { style: S.offNote, children: note }), open && _jsxs("pre", { style: S.preview, children: [record.content.slice(0, 600), record.content.length > 600 ? '…' : ''] })] }));
108
+ }
109
+ /** A turn under SENT TO THE MODEL: clean card + an optional dimmed chip when
110
+ * this turn's large outputs were offloaded (pointer to Not sent, not a container). */
111
+ export function SentTurnCard({ turn, tok, frozenBytes, onDrop }) {
112
+ return (_jsxs("div", { style: S.turnCardHead, children: [_jsx("span", { style: S.turnText, children: turnLabel(turn) }), frozenBytes > 0 && (_jsxs("span", { style: S.frozenChip, title: "This turn's large outputs were offloaded \u2014 a stub is in the window; see Not sent.", children: [_jsx(IcZap, { size: 10 }), " ", kb(frozenBytes)] })), _jsx("span", { style: S.turnMeta, children: fmtTok(tok) }), _jsx("button", { style: S.turnAction, onClick: onDrop, title: "Drop this turn \u2014 it moves to Not sent and is not sent to the model", children: "Drop" })] }));
113
+ }
114
+ /** A dropped turn under NOT SENT. */
115
+ export function DroppedTurnRow({ turn, tok, onRestore }) {
116
+ return (_jsxs("div", { style: S.turnCardHead, children: [_jsx("span", { style: { ...S.turnText, color: 'var(--text-tertiary)' }, children: turnLabel(turn) }), _jsx("span", { style: S.turnMeta, children: fmtTok(tok) }), _jsx("button", { style: S.turnAction, onClick: onRestore, title: "Include this turn \u2014 it moves back into the window and is sent to the model", children: "Restore" })] }));
39
117
  }
40
118
  /**
41
119
  * Live projected context composition: system prompt (base + enabled parts) + the
@@ -44,8 +122,8 @@ function turnLabel(t) {
44
122
  * ContextBar and the expanded drawer so they always agree (the collapsed bar used
45
123
  * to read the last run's tokens, which only changed after a completed run).
46
124
  */
47
- export function useContextProjection(contextWindow, parts) {
48
- const { turns } = useConversation();
125
+ export function useContextProjection(contextWindow, parts, conversation) {
126
+ const turns = conversation.turns;
49
127
  const toolsTok = useMemo(() => estimateTokens(JSON.stringify(allTools().map((t) => ({ name: t.name, description: t.description, parameters: t.parameters })))), []);
50
128
  const partTok = (key) => (key === 'tools' ? toolsTok : (PARTS.find((p) => p.key === key)?.est ?? 0));
51
129
  const systemTok = SYS_BASE_EST + PARTS.reduce((n, p) => n + (parts[p.key] ? partTok(p.key) : 0), 0);
@@ -60,11 +138,12 @@ export function useContextProjection(contextWindow, parts) {
60
138
  includedCount: perTurn.filter((x) => x.t.included).length,
61
139
  };
62
140
  }
63
- export function ContextManagerBody({ contextWindow, parts: partsProp, onToggle, systemSource }) {
141
+ export function ContextManagerBody({ contextWindow, parts: partsProp, onToggle, systemSource, offloaded: offloadedSource, conversation, usageSurface = 'agent' }) {
64
142
  const { records } = useUsage();
65
- const { toggleInclude } = useConversation();
143
+ const { toggleInclude, restoreToolResult } = conversation;
66
144
  const [offloaded, setOffloaded] = useState([]);
67
- const [expanded, setExpanded] = useState(null);
145
+ const [restoreNotes, setRestoreNotes] = useState({});
146
+ const [sysOpen, setSysOpen] = useState(false);
68
147
  const [preset, setPresetState] = useState(getCompression);
69
148
  const [localParts, setLocalParts] = useState(getSystemParts);
70
149
  const parts = partsProp ?? localParts;
@@ -74,21 +153,53 @@ export function ContextManagerBody({ contextWindow, parts: partsProp, onToggle,
74
153
  else
75
154
  setLocalParts((p) => { const next = { ...p, [k]: !p[k] }; setSystemParts(next); return next; });
76
155
  };
77
- const refresh = () => { listRecall().then(setOffloaded).catch(() => setOffloaded([])); };
78
- useEffect(refresh, []);
79
- const lastAgent = records.find((r) => r.surface === 'agent');
156
+ const refresh = () => {
157
+ setRestoreNotes({}); // a fresh list supersedes any stale failed-restore note
158
+ (offloadedSource?.list() ?? Promise.resolve([])).then(setOffloaded).catch(() => setOffloaded([]));
159
+ };
160
+ useEffect(refresh, [offloadedSource]);
161
+ const lastAgent = records.find((r) => r.surface === usageSurface);
80
162
  // ---- projected composition (estimate) — shared with the collapsed ContextBar ----
81
- const { turns, partTok, systemTok, perTurn, turnsTok, projected, pct, over, includedCount } = useContextProjection(contextWindow, parts);
163
+ const { turns, partTok, systemTok, perTurn, turnsTok, projected, pct, over, includedCount } = useContextProjection(contextWindow, parts, conversation);
82
164
  const w = Math.max(1, contextWindow);
83
165
  const sysPct = Math.min(100, (systemTok / w) * 100);
84
166
  const turnPct = Math.min(100 - sysPct, (turnsTok / w) * 100);
85
167
  const reclaimedBytes = offloaded.reduce((n, o) => n + o.bytes, 0);
86
168
  const thr = effectiveThreshold(preset, projected / w);
169
+ const { byTurn, unattached } = useMemo(() => bucketOffloads(offloaded, turns), [offloaded, turns]);
170
+ const warmTurns = perTurn.filter((x) => x.t.included);
171
+ const coldTurns = perTurn.filter((x) => !x.t.included);
172
+ const offParts = PARTS.filter((p) => !parts[p.key]);
173
+ const attributed = [...byTurn.entries()].flatMap(([turnId, recs]) => {
174
+ const t = turns.find((x) => x.id === turnId);
175
+ const label = t ? turnLabel(t) : null;
176
+ const sourceDropped = t ? !t.included : false;
177
+ return recs.map((r) => ({ r, turnId, label, sourceDropped }));
178
+ });
179
+ const partsTok = offParts.reduce((n, p) => n + partTok(p.key), 0); // DISABLED SYSTEM PARTS estimate — not offloads
180
+ const droppedTok = coldTurns.reduce((n, x) => n + x.tok, 0);
181
+ const frozenBytesFor = (id) => (byTurn.get(id) ?? []).reduce((n, r) => n + r.bytes, 0);
182
+ const notSentEmpty = offParts.length === 0 && coldTurns.length === 0 && offloaded.length === 0;
183
+ const restore = async (turnId, r) => {
184
+ if (!offloadedSource)
185
+ return;
186
+ if (restoreToolResult(turnId, r.id, r.content)) {
187
+ // Optimistic: the stub in the turn is already gone, so a failed blob delete
188
+ // below can't resurrect a row whose stub no longer exists (which would show
189
+ // a misleading "stub not found" on retry).
190
+ setOffloaded((prev) => prev.filter((x) => x.id !== r.id));
191
+ await offloadedSource.remove(r.id).catch(() => { });
192
+ refresh();
193
+ }
194
+ else {
195
+ setRestoreNotes((n) => ({ ...n, [r.id]: 'stub not found in the turn — content kept here' }));
196
+ }
197
+ };
87
198
  const setAll = (inc) => perTurn.forEach((x) => { if (x.t.included !== inc)
88
199
  toggleInclude(x.t.id); });
89
- return (_jsx("div", { style: S.panel, children: _jsxs("div", { style: S.body, children: [_jsxs("div", { style: S.section, children: [_jsxs("div", { style: S.budgetHead, children: [_jsxs("span", { style: S.bigNum, title: "Estimated tokens if you run now", children: [fmtTok(projected), _jsxs("span", { style: S.bigDim, children: [" / ", fmtTok(contextWindow)] })] }), _jsxs("span", { style: { ...S.pctChip, ...(over ? S.pctOver : null) }, children: [pct, "%"] })] }), _jsxs("div", { style: S.barStack, children: [_jsx("div", { style: { ...S.seg, width: `${sysPct}%`, background: 'var(--accent)' }, title: `System ${fmtTok(systemTok)}` }), _jsx("div", { style: { ...S.seg, width: `${turnPct}%`, background: 'var(--brand-cyan, #3fb6d4)' }, title: `Warm turns ${fmtTok(turnsTok)}` })] }), _jsxs("div", { style: S.legend, children: [_jsx(Legend, { c: "var(--accent)", k: "System", v: fmtTok(systemTok) }), _jsx(Legend, { c: "var(--brand-cyan, #3fb6d4)", k: "Turns", v: fmtTok(turnsTok) }), _jsx(Legend, { c: "var(--surface-3)", k: "Free", v: fmtTok(Math.max(0, contextWindow - projected)) }), _jsx("span", { style: S.lastRun, children: lastAgent ? `last run ${fmtTok(lastAgent.inTok)}` : 'no runs yet' })] }), _jsx("div", { style: S.estNote, children: "Projected estimate \u2014 system-prompt size is approximate." })] }), _jsxs("div", { style: S.section, children: [_jsxs("div", { style: S.rowHead, children: [_jsx("span", { style: S.secLabel, children: "System prompt" }), _jsxs("span", { style: S.secMeta, children: ["~", fmtTok(systemTok)] })] }), systemSource && (_jsxs("div", { style: S.sourceLine, title: "The system prompt file used for the next run", children: [_jsx("span", { style: S.sourceDim, children: "prompt:" }), " ", _jsx("code", { style: S.sourceCode, children: systemSource })] })), _jsxs("div", { style: S.chips, children: [PARTS.map(({ key, label }) => (_jsxs("button", { style: S.chip(parts[key]), onClick: () => togglePart(key), title: parts[key] ? `Including ${label.toLowerCase()} (~${fmtTok(partTok(key))})` : `Excluded — ${label.toLowerCase()} dropped`, children: [_jsx("span", { style: S.chipDot(parts[key]) }), label] }, key))), _jsxs("button", { style: S.chip(parts.baseSystem), onClick: () => togglePart('baseSystem'), title: parts.baseSystem
90
- ? 'Using the base system prompt — the file-type prompt (.prmd / .pdflow format docs) is ignored'
91
- : 'Using the file-type system prompt when one matches the open file. Turn on to force the base prompt instead.', children: [_jsx("span", { style: S.chipDot(parts.baseSystem) }), "Use base prompt"] })] }), parts.baseSystem && _jsx("div", { style: S.estNote, children: "File-type prompt overridden \u2014 running on the base system prompt only." })] }), _jsxs("div", { style: S.section, children: [_jsxs("div", { style: S.rowHead, children: [_jsxs("span", { style: S.secLabel, children: ["Warm turns \u00B7 ", includedCount, "/", turns.length] }), _jsxs("span", { style: S.actions, children: [_jsx("span", { style: S.secMeta, children: fmtTok(turnsTok) }), turns.length > 0 && _jsxs(_Fragment, { children: [_jsx("button", { style: S.miniBtn, onClick: () => setAll(true), children: "All" }), _jsx("button", { style: S.miniBtn, onClick: () => setAll(false), children: "None" })] })] })] }), _jsxs("div", { style: S.list, children: [turns.length === 0 && _jsx("div", { style: S.empty, children: "No turns yet. As you chat, each exchange shows here \u2014 exclude old ones to free the window." }), perTurn.map(({ t, tok }) => (_jsxs("button", { style: S.turn(t.included), onClick: () => toggleInclude(t.id), title: t.included ? 'Excluded turns are not sent to the model' : 'Include this turn', children: [_jsx("span", { style: S.check(t.included), children: t.included && _jsx(IcCheck, { size: 11 }) }), _jsx("span", { style: S.turnText, children: turnLabel(t) }), _jsx("span", { style: S.turnMeta, children: fmtTok(tok) })] }, t.id)))] })] }), _jsxs("div", { style: S.section, children: [_jsxs("div", { style: S.rowHead, children: [_jsxs("span", { style: S.secLabel, children: ["Compressed \u00B7 ", offloaded.length] }), _jsxs("span", { style: S.actions, children: [_jsx("span", { style: S.secMeta, children: reclaimedBytes ? `${(reclaimedBytes / 1000).toFixed(1)} KB saved` : '—' }), offloaded.length > 0 && _jsxs("button", { style: S.miniBtn, onClick: () => { clearRecall().then(refresh); }, children: [_jsx(IcTrash, { size: 11 }), " Clear"] })] })] }), _jsxs("div", { style: S.list, children: [offloaded.length === 0 && _jsx("div", { style: S.empty, children: "Large tool outputs get offloaded here \u2014 frozen, and the assistant pulls them back on demand." }), offloaded.map((o) => (_jsxs("div", { style: S.frozenWrap, children: [_jsxs("button", { style: S.frozen, onClick: () => setExpanded((e) => (e === o.id ? null : o.id)), title: "Preview offloaded content", children: [_jsx("span", { style: { ...S.chev, transform: expanded === o.id ? 'rotate(90deg)' : 'none' }, children: _jsx(IcChevron, { size: 12 }) }), _jsx(IcZap, { size: 12 }), _jsx("span", { style: S.frozenName, children: o.toolName }), _jsxs("span", { style: S.frozenMeta, children: [(o.bytes / 1000).toFixed(1), " KB"] })] }), expanded === o.id && _jsxs("pre", { style: S.preview, children: [o.content.slice(0, 600), o.content.length > 600 ? '…' : ''] })] }, o.id)))] })] }), _jsxs("div", { style: S.section, children: [_jsx("div", { style: S.rowHead, children: _jsx("span", { style: S.secLabel, children: "Compression" }) }), _jsxs("div", { style: S.compRow, children: [_jsx("select", { style: S.select, value: preset, onChange: (e) => { const m = e.target.value; setCompression(m); setPresetState(m); }, children: PRESETS.map((m) => _jsx("option", { value: m, children: m }, m)) }), _jsx("span", { style: S.secMeta, children: preset === 'off' ? 'never offloads' : `offload > ${(thr / 1000).toFixed(1)} KB at this fill` })] })] })] }) }));
200
+ return (_jsx("div", { style: S.panel, children: _jsxs("div", { style: S.body, children: [_jsxs("div", { style: S.section, children: [_jsxs("div", { style: S.budgetHead, children: [_jsxs("span", { style: S.bigNum, title: "Estimated tokens if you run now", children: [fmtTok(projected), _jsxs("span", { style: S.bigDim, children: [" / ", fmtTok(contextWindow)] })] }), _jsxs("span", { style: { ...S.pctChip, ...(over ? S.pctOver : null) }, children: [pct, "%"] })] }), _jsxs("div", { style: S.barStack, children: [_jsx("div", { style: { ...S.seg, width: `${sysPct}%`, background: 'var(--accent)' }, title: `System ${fmtTok(systemTok)}` }), _jsx("div", { style: { ...S.seg, width: `${turnPct}%`, background: 'var(--brand-cyan, #3fb6d4)' }, title: `Warm turns ${fmtTok(turnsTok)}` })] }), _jsxs("div", { style: S.legend, children: [_jsx(Legend, { c: "var(--accent)", k: "System", v: fmtTok(systemTok) }), _jsx(Legend, { c: "var(--brand-cyan, #3fb6d4)", k: "Warm turns", v: fmtTok(turnsTok) }), _jsx(Legend, { c: "var(--surface-3)", k: "Free", v: fmtTok(Math.max(0, contextWindow - projected)) }), reclaimedBytes > 0 && (_jsxs("span", { style: S.savedChip, title: "Offloaded tool outputs \u2014 frozen out of the window, recoverable on demand", children: [_jsx("span", { style: S.zap, children: _jsx(IcZap, { size: 11 }) }), _jsx("b", { style: S.savedNum, children: kb(reclaimedBytes) }), "\u00A0\u00B7\u00A0", _jsx("b", { style: S.savedNum, children: tokOf(reclaimedBytes) }), "\u00A0offloaded", offloadedSource && (_jsx("button", { style: S.savedClear, onClick: () => { offloadedSource.clear().then(refresh); }, title: "Clear offloaded results", "aria-label": "Clear offloaded results", children: _jsx(IcTrash, { size: 11 }) }))] }))] }), _jsxs("div", { style: S.compRow, children: [_jsx("select", { style: S.select, value: preset, onChange: (e) => { const m = e.target.value; setCompression(m); setPresetState(m); }, children: PRESETS.map((m) => _jsx("option", { value: m, children: m }, m)) }), _jsx("span", { style: S.secMeta, children: preset === 'off' ? 'never offloads' : `offloads results > ${(thr / 1000).toFixed(1)} KB (${tokOf(thr)}) at this fill` })] }), _jsxs("div", { style: S.estNote, children: ["Projected estimate \u2014 system-prompt size is approximate.", lastAgent ? ` Last run ${fmtTok(lastAgent.inTok)}.` : ''] })] }), _jsxs("div", { style: S.section, children: [_jsxs("button", { style: S.sysRow, onClick: () => setSysOpen((o) => !o), title: "Show the system-prompt parts", children: [_jsx("span", { style: { ...S.chev, transform: sysOpen ? 'rotate(90deg)' : 'none' }, children: _jsx(IcChevron, { size: 12 }) }), _jsx("span", { style: S.sysLabel, children: "System prompt" }), systemSource && _jsx("code", { style: S.sourceCode, title: "The system prompt file used for the next run", children: systemSource }), _jsxs("span", { style: S.secMeta, children: ["~", fmtTok(systemTok)] })] }), sysOpen && (_jsxs(_Fragment, { children: [_jsxs("div", { style: S.chips, children: [PARTS.map(({ key, label }) => (_jsxs("button", { style: S.chip(parts[key]), onClick: () => togglePart(key), title: parts[key] ? `Including ${label.toLowerCase()} (~${fmtTok(partTok(key))})` : `Excluded — ${label.toLowerCase()} dropped`, children: [_jsx("span", { style: S.chipDot(parts[key]) }), label] }, key))), _jsxs("button", { style: S.chip(parts.baseSystem), onClick: () => togglePart('baseSystem'), title: parts.baseSystem
201
+ ? 'Using the base system prompt — the file-type prompt (.prmd / .pdflow format docs) is ignored'
202
+ : 'Using the file-type system prompt when one matches the open file. Turn on to force the base prompt instead.', children: [_jsx("span", { style: S.chipDot(parts.baseSystem) }), "Use base prompt"] })] }), parts.baseSystem && _jsx("div", { style: S.estNote, children: "File-type prompt overridden \u2014 running on the base system prompt only." })] }))] }), _jsxs("div", { style: S.section, children: [_jsxs("div", { style: S.rowHead, children: [_jsxs("span", { style: S.secLabel, title: "Exactly what the model receives on the next request: the system prompt plus these turns. A zap chip means a turn's large outputs were frozen \u2014 only a short stub of them is sent.", children: [_jsx("span", { style: { ...S.tempDot, background: 'var(--brand-cyan, #3fb6d4)' } }), "Sent to the model \u00B7 ", includedCount, "/", turns.length] }), _jsxs("span", { style: S.actions, children: [_jsx("span", { style: S.secMeta, children: fmtTok(turnsTok) }), turns.length > 0 && _jsxs(_Fragment, { children: [_jsx("button", { style: S.miniBtn, onClick: () => setAll(true), children: "All" }), _jsx("button", { style: S.miniBtn, onClick: () => setAll(false), children: "None" })] })] })] }), _jsxs("div", { style: S.list, children: [turns.length === 0 && _jsx("div", { style: S.empty, children: "No turns yet. As you chat, each exchange shows here; drop old ones to free the window." }), warmTurns.length === 0 && turns.length > 0 && _jsx("div", { style: S.empty, children: "Nothing in the window \u2014 every turn is dropped. The model only receives the system prompt." }), warmTurns.map(({ t, tok }) => (_jsx(SentTurnCard, { turn: t, tok: tok, frozenBytes: frozenBytesFor(t.id), onDrop: () => toggleInclude(t.id) }, t.id)))] })] }), !notSentEmpty && (_jsxs("div", { style: S.section, children: [_jsxs("div", { style: S.rowHead, children: [_jsxs("span", { style: S.secLabel, title: "Everything excluded from the next request \u2014 parts you disabled, turns you dropped, and large outputs compression froze.", children: [_jsx("span", { style: { ...S.tempDot, background: 'var(--surface-3)' } }), "Not sent"] }), _jsxs("span", { style: S.secMeta, children: [partsTok + droppedTok > 0 ? `~${fmtTok(partsTok + droppedTok)}` : '', reclaimedBytes > 0 ? `${partsTok + droppedTok > 0 ? ' · ' : ''}${kb(reclaimedBytes)} frozen` : ''] })] }), _jsxs("div", { style: S.list, children: [offParts.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "System-prompt parts you turned off \u2014 the next request's system prompt omits them.", children: ["System parts \u00B7 ", offParts.length, " \u00B7 ~", fmtTok(partsTok)] }), offParts.map((p) => (_jsxs("div", { style: S.turnCardHead, children: [_jsx("span", { style: { ...S.turnText, color: 'var(--text-tertiary)' }, children: p.label }), _jsxs("span", { style: S.turnMeta, children: ["~", fmtTok(partTok(p.key))] }), _jsx("button", { style: S.turnAction, onClick: () => togglePart(p.key), title: "Include this system-prompt part again", children: "Enable" })] }, p.key)))] })), coldTurns.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "Whole exchanges you excluded \u2014 the model does not see them. Restore puts one back in the window.", children: ["Dropped turns \u00B7 ", coldTurns.length, " \u00B7 ", fmtTok(droppedTok)] }), coldTurns.map(({ t, tok }) => (_jsx(DroppedTurnRow, { turn: t, tok: tok, onRestore: () => toggleInclude(t.id) }, t.id)))] })), offloaded.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "Large tool outputs the compression setting froze out of the window. For each, a short stub pointing at it stays in its turn, and the assistant can pull the content back itself with recall_result.", children: ["Offloaded outputs \u00B7 ", offloaded.length, " \u00B7 ", kb(reclaimedBytes)] }), attributed.map(({ r, turnId, label, sourceDropped }) => (_jsx(OffloadRow, { record: r, fromLabel: label, sourceDropped: sourceDropped, note: restoreNotes[r.id], onRestore: offloadedSource ? () => { void restore(turnId, r); } : undefined }, r.id))), unattached.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "Frozen outputs whose turn is no longer in this conversation \u2014 nothing in the window points at them. Preview here, or clear them with the trash button in the header above.", children: ["Unattached \u00B7 ", unattached.length, " \u00B7 ", kb(unattached.reduce((n, r) => n + r.bytes, 0))] }), unattached.map((r) => _jsx(OffloadRow, { record: r, fromLabel: null }, r.id))] }))] }))] })] }))] }) }));
92
203
  }
93
204
  function Legend({ c, k, v }) {
94
205
  return _jsxs("span", { style: S.legItem, children: [_jsx("span", { style: { ...S.legDot, background: c } }), k, " ", _jsx("span", { style: S.legVal, children: v })] });
@@ -97,9 +208,15 @@ const mono = 'var(--font-mono)';
97
208
  const S = {
98
209
  panel: { flex: 1, minHeight: 0, minWidth: 0, display: 'flex', flexDirection: 'column', background: 'var(--surface-1)' },
99
210
  body: { flex: 1, minHeight: 0, padding: 16, overflowY: 'auto', display: 'flex', flexDirection: 'column', gap: 16 },
100
- section: { display: 'flex', flexDirection: 'column', gap: 8 },
211
+ // flexShrink 0 is load-bearing: body is a flex column AND the scroll container,
212
+ // so shrinkable sections get CRUSHED toward min-content (tiny scrolly slivers)
213
+ // before the body ever scrolls. Fixed sections make the body scroll instead.
214
+ section: { display: 'flex', flexDirection: 'column', gap: 8, flexShrink: 0 },
101
215
  rowHead: { display: 'flex', alignItems: 'baseline', justifyContent: 'space-between', gap: 10 },
102
- secLabel: { fontSize: 'var(--fs-eyebrow)', fontWeight: 600, textTransform: 'uppercase', letterSpacing: '0.08em', color: 'var(--text-tertiary)' },
216
+ secLabel: { display: 'inline-flex', alignItems: 'center', gap: 6, fontSize: 'var(--fs-eyebrow)', fontWeight: 600, textTransform: 'uppercase', letterSpacing: '0.08em', color: 'var(--text-tertiary)' },
217
+ tempDot: { width: 8, height: 8, borderRadius: 999, flexShrink: 0 },
218
+ // secLabel as a disclosure button — same typography, plus the chevron affordance.
219
+ secToggle: { display: 'inline-flex', alignItems: 'center', gap: 6, padding: 0, border: 0, background: 'transparent', cursor: 'pointer', fontSize: 'var(--fs-eyebrow)', fontWeight: 600, textTransform: 'uppercase', letterSpacing: '0.08em', color: 'var(--text-tertiary)', fontFamily: 'inherit' },
103
220
  secMeta: { fontSize: 11.5, color: 'var(--text-tertiary)', fontFamily: mono, fontVariantNumeric: 'tabular-nums' },
104
221
  actions: { display: 'inline-flex', alignItems: 'center', gap: 8 },
105
222
  // budget
@@ -114,32 +231,39 @@ const S = {
114
231
  legItem: { display: 'inline-flex', alignItems: 'center', gap: 5, fontSize: 11.5, color: 'var(--text-secondary)' },
115
232
  legDot: { width: 8, height: 8, borderRadius: 2, flexShrink: 0 },
116
233
  legVal: { color: 'var(--text-tertiary)', fontFamily: mono, fontVariantNumeric: 'tabular-nums' },
117
- lastRun: { marginLeft: 'auto', fontSize: 11, color: 'var(--text-disabled)', fontFamily: mono },
118
234
  estNote: { fontSize: 10.5, color: 'var(--text-disabled)' },
119
- // system chips
120
- sourceLine: { fontSize: 11.5, color: 'var(--text-secondary)' },
121
- sourceDim: { color: 'var(--text-tertiary)' },
122
- sourceCode: { fontFamily: mono, fontSize: 11, color: 'var(--text-primary)', background: 'var(--surface-3, var(--surface-2))', borderRadius: 'var(--radius-xs, 3px)', padding: '1px 5px' },
235
+ savedChip: { marginLeft: 'auto', display: 'inline-flex', alignItems: 'center', gap: 5, padding: '2px 4px 2px 9px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-pill, 999px)', background: 'color-mix(in srgb, var(--brand-purple, #8b5cf6) 10%, transparent)', color: 'var(--text-secondary)', fontSize: 11.5, fontWeight: 600 },
236
+ savedNum: { fontFamily: mono, fontVariantNumeric: 'tabular-nums', fontWeight: 600, color: 'var(--text-primary)' },
237
+ savedClear: { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 20, height: 20, border: 0, borderRadius: 999, background: 'transparent', color: 'var(--text-tertiary)', cursor: 'pointer' },
238
+ zap: { display: 'inline-flex', color: 'var(--brand-purple, #8b5cf6)', flexShrink: 0 },
239
+ compRow: { display: 'flex', alignItems: 'center', gap: 10 },
240
+ select: { height: 26, padding: '0 8px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-primary)', fontSize: 11.5, fontFamily: 'inherit', fontWeight: 600, cursor: 'pointer', textTransform: 'capitalize' },
241
+ // system row
242
+ sysRow: { display: 'flex', alignItems: 'center', gap: 8, padding: '8px 10px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-secondary)', cursor: 'pointer', width: '100%', textAlign: 'left' },
243
+ sysLabel: { fontSize: 12.5, fontWeight: 600, color: 'var(--text-primary)' },
244
+ sourceCode: { fontFamily: mono, fontSize: 11, color: 'var(--text-primary)', background: 'var(--surface-3, var(--surface-2))', borderRadius: 'var(--radius-xs, 3px)', padding: '1px 5px', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', minWidth: 0, flex: 1, marginLeft: 2 },
123
245
  chips: { display: 'flex', flexWrap: 'wrap', gap: 7 },
124
246
  chip: (on) => ({ display: 'inline-flex', alignItems: 'center', gap: 6, padding: '5px 10px', borderRadius: 'var(--radius-sm)', border: `1px solid ${on ? 'var(--border-accent, var(--accent))' : 'var(--border-subtle)'}`, background: on ? 'var(--accent-soft)' : 'transparent', color: on ? 'var(--text-primary)' : 'var(--text-tertiary)', fontSize: 12.5, fontWeight: 600, cursor: 'pointer' }),
125
247
  chipDot: (on) => ({ width: 7, height: 7, borderRadius: 999, background: on ? 'var(--accent)' : 'var(--border-default)' }),
126
- // turns
248
+ // timeline
127
249
  miniBtn: { display: 'inline-flex', alignItems: 'center', gap: 4, height: 22, padding: '0 8px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-secondary)', fontSize: 11, fontWeight: 600, cursor: 'pointer' },
128
- list: { display: 'flex', flexDirection: 'column', gap: 4, maxHeight: 220, overflowY: 'auto' },
250
+ list: { display: 'flex', flexDirection: 'column', gap: 10 },
129
251
  empty: { fontSize: 12.5, color: 'var(--text-tertiary)', lineHeight: 1.5, padding: '4px 2px' },
130
- turn: (inc) => ({ display: 'flex', alignItems: 'center', gap: 9, textAlign: 'left', padding: '8px 10px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: inc ? 'var(--surface-2)' : 'transparent', color: inc ? 'var(--text-primary)' : 'var(--text-disabled)', cursor: 'pointer', opacity: inc ? 1 : 0.65 }),
131
- check: (inc) => ({ display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 16, height: 16, flexShrink: 0, borderRadius: 'var(--radius-xs)', border: `1px solid ${inc ? 'var(--accent)' : 'var(--border-default)'}`, background: inc ? 'var(--accent-soft)' : 'transparent', color: 'var(--accent)' }),
252
+ turnCardHead: { display: 'flex', alignItems: 'center', gap: 9, padding: '8px 10px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)' },
253
+ turnAction: { display: 'inline-flex', alignItems: 'center', gap: 4, height: 22, padding: '0 8px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-1)', color: 'var(--text-secondary)', fontSize: 11, fontWeight: 600, cursor: 'pointer', flexShrink: 0 },
132
254
  turnText: { flex: 1, fontSize: 12.5, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' },
133
255
  turnMeta: { fontSize: 11, color: 'var(--text-tertiary)', fontFamily: mono, fontVariantNumeric: 'tabular-nums', flexShrink: 0 },
134
- // compressed
135
- frozenWrap: { display: 'flex', flexDirection: 'column', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', overflow: 'hidden' },
136
- frozen: { display: 'flex', alignItems: 'center', gap: 7, padding: '7px 10px', border: 0, background: 'transparent', color: 'var(--text-secondary)', cursor: 'pointer', width: '100%', textAlign: 'left' },
256
+ frozenChip: { display: 'inline-flex', alignItems: 'center', gap: 3, fontSize: 10.5, fontFamily: mono, fontVariantNumeric: 'tabular-nums', color: 'var(--text-tertiary)', opacity: 0.8, flexShrink: 0 },
257
+ subLabel: { display: 'inline-flex', alignItems: 'baseline', gap: 6, fontSize: 10.5, fontWeight: 600, textTransform: 'uppercase', letterSpacing: '0.06em', color: 'var(--text-disabled)', padding: '2px 2px 0' },
258
+ // offloaded records (NOT SENT — flat rows, not nested under a turn)
259
+ offWrap: { display: 'flex', flexDirection: 'column', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', overflow: 'hidden' },
260
+ off: { display: 'flex', alignItems: 'center', gap: 4, paddingRight: 6 },
261
+ offMain: { display: 'flex', alignItems: 'center', gap: 7, padding: '6px 9px', border: 0, background: 'transparent', color: 'var(--text-secondary)', cursor: 'pointer', flex: 1, minWidth: 0, textAlign: 'left' },
262
+ offFrom: { fontSize: 11, color: 'var(--text-tertiary)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', minWidth: 0 },
263
+ offNote: { padding: '2px 9px 6px 28px', fontSize: 11, color: 'var(--warning, var(--text-tertiary))' },
137
264
  chev: { display: 'inline-flex', color: 'var(--text-tertiary)', transition: 'transform var(--motion-fast)', flexShrink: 0 },
138
- frozenName: { fontSize: 12.5, fontWeight: 600, color: 'var(--text-primary)', fontFamily: mono },
139
- frozenMeta: { marginLeft: 'auto', fontSize: 11, color: 'var(--text-tertiary)', fontFamily: mono, fontVariantNumeric: 'tabular-nums' },
140
- preview: { margin: 0, padding: '8px 10px', borderTop: '1px solid var(--border-subtle)', background: 'var(--surface-1)', color: 'var(--text-secondary)', fontFamily: mono, fontSize: 11, lineHeight: 1.5, whiteSpace: 'pre-wrap', wordBreak: 'break-word', maxHeight: 160, overflowY: 'auto' },
141
- // compression
142
- compRow: { display: 'flex', alignItems: 'center', gap: 10 },
143
- select: { height: 30, padding: '0 8px', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-primary)', fontSize: 12.5, fontFamily: 'inherit', fontWeight: 600, cursor: 'pointer', textTransform: 'capitalize' },
265
+ offName: { fontSize: 12, fontWeight: 600, color: 'var(--text-primary)', fontFamily: mono },
266
+ offMeta: { marginLeft: 'auto', fontSize: 11, color: 'var(--text-tertiary)', fontFamily: mono, fontVariantNumeric: 'tabular-nums', flexShrink: 0 },
267
+ preview: { margin: 0, padding: '8px 10px 8px 26px', borderTop: '1px solid var(--border-subtle)', background: 'var(--surface-1)', color: 'var(--text-secondary)', fontFamily: mono, fontSize: 11, lineHeight: 1.5, whiteSpace: 'pre-wrap', wordBreak: 'break-word', maxHeight: 160, overflowY: 'auto' },
144
268
  };
145
269
  //# sourceMappingURL=ContextManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextManager.js","sourceRoot":"","sources":["../ContextManager.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextManager.js","sourceRoot":"","sources":["../ContextManager.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../Lightbox.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoB,MAAM,OAAO,CAAC;AAGzC,wBAAgB,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,qBAa9E"}
1
+ {"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../Lightbox.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,wBAAgB,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,qBAS9E"}
package/dist/Lightbox.js CHANGED
@@ -1,16 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /* Full-screen image preview. Click a thumbnail anywhere in the chat (composer
3
- * attachment or a sent message) to expand here; close with the ✕, Escape, or by
4
- * clicking the backdrop. Overlay blur + fade per the design system. */
5
- import { useEffect } from 'react';
6
2
  import { IcX } from '@corenel/ui-kit/icons';
3
+ import { useEscape } from '@corenel/ui-kit/useEscape';
7
4
  export function Lightbox({ src, onClose }) {
8
- useEffect(() => {
9
- const onKey = (e) => { if (e.key === 'Escape')
10
- onClose(); };
11
- document.addEventListener('keydown', onKey);
12
- return () => document.removeEventListener('keydown', onKey);
13
- }, [onClose]);
5
+ useEscape(true, onClose);
14
6
  return (_jsxs("div", { style: S.backdrop, className: "lightbox", onMouseDown: (e) => { if (e.target === e.currentTarget)
15
7
  onClose(); }, children: [_jsx("button", { style: S.close, onClick: onClose, "aria-label": "Close preview", children: _jsx(IcX, { size: 20 }) }), _jsx("img", { src: src, alt: "Preview", style: S.img })] }));
16
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.js","sourceRoot":"","sources":["../Lightbox.tsx"],"names":[],"mappings":";AAAA;;uEAEuE;AACvE,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,UAAU,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAwC;IAC7E,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3E,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,eAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAC,UAAU,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC,CAAC,CAAC,aAC/G,iBAAQ,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,gBAAa,eAAe,YAAC,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,GAAI,GAAS,EAC/F,cAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC,SAAS,EAAC,KAAK,EAAE,CAAC,CAAC,GAAG,GAAI,IACzC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,GAAwC;IAC7C,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,4CAA4C,EAAE,cAAc,EAAE,WAAW,EAAE;IAC5N,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iCAAiC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAE;IAChT,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,8CAA8C,EAAE;CAChK,CAAC"}
1
+ {"version":3,"file":"Lightbox.js","sourceRoot":"","sources":["../Lightbox.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,MAAM,UAAU,QAAQ,CAAC,EAAE,GAAG,EAAE,OAAO,EAAwC;IAC7E,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEzB,OAAO,CACL,eAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAC,UAAU,EAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC,CAAC,CAAC,aAC/G,iBAAQ,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,gBAAa,eAAe,YAAC,KAAC,GAAG,IAAC,IAAI,EAAE,EAAE,GAAI,GAAS,EAC/F,cAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAC,SAAS,EAAC,KAAK,EAAE,CAAC,CAAC,GAAG,GAAI,IACzC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,GAAwC;IAC7C,QAAQ,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,4CAA4C,EAAE,cAAc,EAAE,WAAW,EAAE;IAC5N,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iCAAiC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS,EAAE;IAChT,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,8CAA8C,EAAE;CAChK,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { type ReactElement } from 'react';
2
+ export interface DockProcess {
3
+ procId: string;
4
+ command: string;
5
+ label?: string;
6
+ running: boolean;
7
+ /** Newest last. */
8
+ lines: {
9
+ seq: number;
10
+ stream: 'out' | 'err';
11
+ text: string;
12
+ }[];
13
+ /** The reader is looking at a tail, not the whole run. */
14
+ truncated: boolean;
15
+ ended?: {
16
+ code: number | null;
17
+ signal?: string;
18
+ };
19
+ }
20
+ export interface ProcessDockProps {
21
+ processes: DockProcess[];
22
+ onStop: (procId: string) => void;
23
+ /** Put this process's output into the conversation and the model's context. */
24
+ onKeep: (procId: string) => void;
25
+ /** Remove a FINISHED process's card. */
26
+ onDismiss: (procId: string) => void;
27
+ }
28
+ /** Which processes to show, oldest first.
29
+ *
30
+ * CHRONOLOGICAL, NEWEST LAST. This sits directly above the composer, where the
31
+ * thing you just did belongs nearest your hands — the same direction the
32
+ * transcript above it runs. An earlier version grouped running processes first,
33
+ * on the theory that "what is still going?" outranks "what happened last"; that
34
+ * put the command you typed a second ago at the TOP, reading backwards against
35
+ * every other list on the screen.
36
+ *
37
+ * When the cap bites, the OLDEST FINISHED go. Running ones are never dropped
38
+ * however old they are, because the card is the only place they can be stopped.
39
+ */
40
+ export declare function visibleProcesses(processes: DockProcess[], max?: number): {
41
+ shown: DockProcess[];
42
+ hidden: number;
43
+ };
44
+ export declare function ProcessDock({ processes, onStop, onKeep, onDismiss }: ProcessDockProps): ReactElement | null;
45
+ //# sourceMappingURL=ProcessDock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessDock.d.ts","sourceRoot":"","sources":["../ProcessDock.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvE,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,mBAAmB;IACnB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9D,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,+EAA+E;IAC/E,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,wCAAwC;IACxC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAkBD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE,GAAG,SAAY,GAAG;IAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAWpH;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAsC3G"}