@corenel/web-ui 0.2.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.
- package/dist/AskUser.js +1 -1
- package/dist/AskUser.js.map +1 -1
- package/dist/CommandTray.d.ts +21 -0
- package/dist/CommandTray.d.ts.map +1 -0
- package/dist/CommandTray.js +102 -0
- package/dist/CommandTray.js.map +1 -0
- package/dist/Composer.d.ts +11 -1
- package/dist/Composer.d.ts.map +1 -1
- package/dist/Composer.js +76 -3
- package/dist/Composer.js.map +1 -1
- package/dist/ContextBar.d.ts.map +1 -1
- package/dist/ContextBar.js +7 -1
- package/dist/ContextBar.js.map +1 -1
- package/dist/ProcessDock.d.ts +45 -0
- package/dist/ProcessDock.d.ts.map +1 -0
- package/dist/ProcessDock.js +150 -0
- package/dist/ProcessDock.js.map +1 -0
- package/dist/TodoBar.d.ts +3 -0
- package/dist/TodoBar.d.ts.map +1 -0
- package/dist/TodoBar.js +163 -0
- package/dist/TodoBar.js.map +1 -0
- package/dist/Transcript.js +1 -1
- package/dist/Transcript.js.map +1 -1
- package/dist/agentChat/AgentChat.d.ts +10 -0
- package/dist/agentChat/AgentChat.d.ts.map +1 -1
- package/dist/agentChat/AgentChat.js +69 -8
- package/dist/agentChat/AgentChat.js.map +1 -1
- package/dist/agentChat/OptionsDrawer.js +5 -5
- package/dist/agentChat/OptionsDrawer.js.map +1 -1
- package/dist/agentChat/controller.d.ts +23 -0
- package/dist/agentChat/controller.d.ts.map +1 -1
- package/dist/agentChat/controller.js.map +1 -1
- package/dist/commandTurn.d.ts +47 -0
- package/dist/commandTurn.d.ts.map +1 -0
- package/dist/commandTurn.js +64 -0
- package/dist/commandTurn.js.map +1 -0
- package/dist/composerHistory.d.ts +10 -0
- package/dist/composerHistory.d.ts.map +1 -0
- package/dist/composerHistory.js +44 -0
- package/dist/composerHistory.js.map +1 -0
- package/dist/sendLater/SendLater.d.ts +31 -0
- package/dist/sendLater/SendLater.d.ts.map +1 -0
- package/dist/sendLater/SendLater.js +145 -0
- package/dist/sendLater/SendLater.js.map +1 -0
- package/dist/sendLater/queue.d.ts +69 -0
- package/dist/sendLater/queue.d.ts.map +1 -0
- package/dist/sendLater/queue.js +216 -0
- package/dist/sendLater/queue.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/* Send this message later.
|
|
2
|
+
*
|
|
3
|
+
* NOT a scheduled task. There is no cron, no trigger, no run record and no
|
|
4
|
+
* daemon -- the crew scheduler already exists for that and this is deliberately
|
|
5
|
+
* not it. This is one message, typed now, delivered to the chat later exactly as
|
|
6
|
+
* if it had been typed at that moment. The motivating case is hitting a
|
|
7
|
+
* provider's usage limit: park the prompt, let the window pass, have it go on
|
|
8
|
+
* its own.
|
|
9
|
+
*
|
|
10
|
+
* BROWSER-ONLY, and honest about it. The timer is a setInterval in this tab.
|
|
11
|
+
*
|
|
12
|
+
* A message only ever sends ITSELF while you are here to see it. If its moment
|
|
13
|
+
* passed while the tab was closed -- or while the machine was asleep -- it is
|
|
14
|
+
* marked MISSED and waits for you: an hours-old prompt firing the instant a tab
|
|
15
|
+
* reopens is a surprise, and surprising sends are the one thing a feature like
|
|
16
|
+
* this must not do. A missed message keeps its text, can be edited, sent with
|
|
17
|
+
* one click, re-queued for a new time, or dropped.
|
|
18
|
+
*/
|
|
19
|
+
const KEY = 'corenel.sendLater.v1';
|
|
20
|
+
/** Presets, in minutes. The dropdown adds longer waits in whole hours. */
|
|
21
|
+
export const PRESETS = [
|
|
22
|
+
{ label: '5m', minutes: 5 },
|
|
23
|
+
{ label: '10m', minutes: 10 },
|
|
24
|
+
{ label: '20m', minutes: 20 },
|
|
25
|
+
{ label: '30m', minutes: 30 },
|
|
26
|
+
{ label: '1h', minutes: 60 },
|
|
27
|
+
];
|
|
28
|
+
/** Longer waits offered in the dropdown, in hours. */
|
|
29
|
+
export const HOUR_OPTIONS = [2, 3, 4, 5, 6, 8, 12, 24];
|
|
30
|
+
let items = load();
|
|
31
|
+
const listeners = new Set();
|
|
32
|
+
function load() {
|
|
33
|
+
try {
|
|
34
|
+
const raw = localStorage.getItem(KEY);
|
|
35
|
+
if (!raw)
|
|
36
|
+
return [];
|
|
37
|
+
const parsed = JSON.parse(raw);
|
|
38
|
+
if (!Array.isArray(parsed))
|
|
39
|
+
return [];
|
|
40
|
+
/* Validated rather than trusted: this is user-editable storage, and a
|
|
41
|
+
* malformed entry would otherwise fire as `undefined` into the chat. */
|
|
42
|
+
const valid = parsed.filter((v) => !!v && typeof v === 'object'
|
|
43
|
+
&& typeof v.id === 'string'
|
|
44
|
+
&& typeof v.text === 'string'
|
|
45
|
+
&& typeof v.dueAt === 'number'
|
|
46
|
+
&& Number.isFinite(v.dueAt));
|
|
47
|
+
/* Anything already due at load came due while this tab was not running.
|
|
48
|
+
* Marked, not sent. */
|
|
49
|
+
const now = Date.now();
|
|
50
|
+
return valid.map((v) => (v.dueAt <= now ? { ...v, missed: true } : v));
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function persist() {
|
|
57
|
+
try {
|
|
58
|
+
localStorage.setItem(KEY, JSON.stringify(items));
|
|
59
|
+
}
|
|
60
|
+
catch { /* quota: the queue still works in memory */ }
|
|
61
|
+
}
|
|
62
|
+
function emit() {
|
|
63
|
+
persist();
|
|
64
|
+
for (const l of listeners)
|
|
65
|
+
l();
|
|
66
|
+
}
|
|
67
|
+
/** Subscribe to queue changes. Returns an unsubscribe. */
|
|
68
|
+
export function onQueueChange(l) {
|
|
69
|
+
listeners.add(l);
|
|
70
|
+
return () => { listeners.delete(l); };
|
|
71
|
+
}
|
|
72
|
+
/** Everything parked, soonest first. */
|
|
73
|
+
export function queued() {
|
|
74
|
+
return [...items].sort((a, b) => a.dueAt - b.dueAt);
|
|
75
|
+
}
|
|
76
|
+
/** Park `text` to be sent in `minutes`. Returns the new entry. */
|
|
77
|
+
export function queueSend(text, minutes, now) {
|
|
78
|
+
const body = text.trim();
|
|
79
|
+
if (!body)
|
|
80
|
+
return null;
|
|
81
|
+
const entry = {
|
|
82
|
+
// Not Math.random: two queues added in the same millisecond still differ,
|
|
83
|
+
// and the id never has to survive a reload as anything but a key.
|
|
84
|
+
id: `sl-${now.toString(36)}-${(items.length + 1).toString(36)}-${body.length.toString(36)}`,
|
|
85
|
+
text: body,
|
|
86
|
+
dueAt: now + minutes * 60000,
|
|
87
|
+
createdAt: now,
|
|
88
|
+
};
|
|
89
|
+
items = [...items, entry];
|
|
90
|
+
emit();
|
|
91
|
+
return entry;
|
|
92
|
+
}
|
|
93
|
+
/** Change a parked message's text and/or when it goes. */
|
|
94
|
+
export function editQueued(id, patch) {
|
|
95
|
+
let changed = false;
|
|
96
|
+
items = items.map((it) => {
|
|
97
|
+
if (it.id !== id)
|
|
98
|
+
return it;
|
|
99
|
+
const text = patch.text !== undefined ? patch.text.trim() : it.text;
|
|
100
|
+
// An empty edit would fire a blank message; treat it as "leave it alone" and
|
|
101
|
+
// let the caller cancel explicitly if that is what they meant.
|
|
102
|
+
if (patch.text !== undefined && !text)
|
|
103
|
+
return it;
|
|
104
|
+
changed = true;
|
|
105
|
+
// Giving it a new future moment un-misses it: the user has re-armed it.
|
|
106
|
+
const dueAt = patch.dueAt ?? it.dueAt;
|
|
107
|
+
const missed = patch.dueAt !== undefined ? dueAt <= Date.now() : it.missed;
|
|
108
|
+
return { ...it, text, dueAt, ...(missed ? { missed: true } : {}) };
|
|
109
|
+
});
|
|
110
|
+
if (changed)
|
|
111
|
+
emit();
|
|
112
|
+
}
|
|
113
|
+
/** Drop a parked message. */
|
|
114
|
+
export function cancelQueued(id) {
|
|
115
|
+
const next = items.filter((it) => it.id !== id);
|
|
116
|
+
if (next.length !== items.length) {
|
|
117
|
+
items = next;
|
|
118
|
+
emit();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/** Drop everything (used by tests and a "clear all" affordance). */
|
|
122
|
+
export function clearQueue() {
|
|
123
|
+
if (items.length) {
|
|
124
|
+
items = [];
|
|
125
|
+
emit();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Take everything due at `now` off the queue and return it, soonest first.
|
|
130
|
+
*
|
|
131
|
+
* Removing before sending is deliberate: a message that fires must not be able
|
|
132
|
+
* to fire twice if the send throws, because the user asked for it to be sent
|
|
133
|
+
* once. A failed send surfaces in the transcript like any other failed send.
|
|
134
|
+
*/
|
|
135
|
+
export function takeDue(now) {
|
|
136
|
+
const due = items.filter((it) => !it.missed && it.dueAt <= now).sort((a, b) => a.dueAt - b.dueAt);
|
|
137
|
+
if (!due.length)
|
|
138
|
+
return [];
|
|
139
|
+
const ids = new Set(due.map((d) => d.id));
|
|
140
|
+
items = items.filter((it) => !ids.has(it.id));
|
|
141
|
+
emit();
|
|
142
|
+
return due;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Mark everything that became due during a gap as missed, and return how many.
|
|
146
|
+
*
|
|
147
|
+
* The tab being closed is not the only way a moment passes unwatched -- a
|
|
148
|
+
* sleeping laptop leaves the interval un-run for hours with the page still
|
|
149
|
+
* mounted. Both are the same thing to the person who parked the message, so
|
|
150
|
+
* both get the same answer.
|
|
151
|
+
*/
|
|
152
|
+
export function missDuringGap(now) {
|
|
153
|
+
let n = 0;
|
|
154
|
+
items = items.map((it) => {
|
|
155
|
+
if (it.missed || it.dueAt > now)
|
|
156
|
+
return it;
|
|
157
|
+
n += 1;
|
|
158
|
+
return { ...it, missed: true };
|
|
159
|
+
});
|
|
160
|
+
if (n)
|
|
161
|
+
emit();
|
|
162
|
+
return n;
|
|
163
|
+
}
|
|
164
|
+
/** Take one entry off the queue by id and return it -- the "send it now" path
|
|
165
|
+
* for a missed message. Removed before sending, like takeDue, so one click
|
|
166
|
+
* cannot become two sends. */
|
|
167
|
+
export function takeOne(id) {
|
|
168
|
+
const found = items.find((it) => it.id === id) ?? null;
|
|
169
|
+
if (found) {
|
|
170
|
+
items = items.filter((it) => it.id !== id);
|
|
171
|
+
emit();
|
|
172
|
+
}
|
|
173
|
+
return found;
|
|
174
|
+
}
|
|
175
|
+
/** Re-arm a missed message for `minutes` from now. */
|
|
176
|
+
export function requeue(id, minutes, now) {
|
|
177
|
+
let changed = false;
|
|
178
|
+
items = items.map((it) => {
|
|
179
|
+
if (it.id !== id)
|
|
180
|
+
return it;
|
|
181
|
+
changed = true;
|
|
182
|
+
const { missed: _drop, ...rest } = it;
|
|
183
|
+
return { ...rest, dueAt: now + minutes * 60000 };
|
|
184
|
+
});
|
|
185
|
+
if (changed)
|
|
186
|
+
emit();
|
|
187
|
+
}
|
|
188
|
+
/** ms until this entry is due; <= 0 means overdue. */
|
|
189
|
+
export function remainingMs(entry, now) {
|
|
190
|
+
return entry.dueAt - now;
|
|
191
|
+
}
|
|
192
|
+
/** "5m", "1h 20m", "now" — the countdown shown on a parked message. */
|
|
193
|
+
export function formatRemaining(ms) {
|
|
194
|
+
if (ms <= 0)
|
|
195
|
+
return 'now';
|
|
196
|
+
const totalMin = Math.ceil(ms / 60000);
|
|
197
|
+
if (totalMin < 60)
|
|
198
|
+
return `${totalMin}m`;
|
|
199
|
+
const h = Math.floor(totalMin / 60);
|
|
200
|
+
const m = totalMin % 60;
|
|
201
|
+
return m ? `${h}h ${m}m` : `${h}h`;
|
|
202
|
+
}
|
|
203
|
+
/** Test hook: reset module state so each test starts empty. */
|
|
204
|
+
export function resetQueueForTest() {
|
|
205
|
+
items = [];
|
|
206
|
+
listeners.clear();
|
|
207
|
+
try {
|
|
208
|
+
localStorage.removeItem(KEY);
|
|
209
|
+
}
|
|
210
|
+
catch { /* ignore */ }
|
|
211
|
+
}
|
|
212
|
+
/** Test hook: reload from storage (proves persistence across a "reload"). */
|
|
213
|
+
export function reloadQueueForTest() {
|
|
214
|
+
items = load();
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../sendLater/queue.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@corenel/web-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Corenel browser dock/agent UI — the presentational components (transcript, composer, rich content, tool render, context manager, etc.). The prompd app's AgentPanel/PolicyEditor compose these on top.",
|
|
6
6
|
"exports": {
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@corenel/
|
|
18
|
-
"@corenel/
|
|
19
|
-
"@corenel/
|
|
20
|
-
"@corenel/
|
|
17
|
+
"@corenel/ui-kit": "0.3.0",
|
|
18
|
+
"@corenel/protocol": "0.4.0",
|
|
19
|
+
"@corenel/harness": "0.4.0",
|
|
20
|
+
"@corenel/tools-web": "0.3.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"react": "^18.3.1"
|