anentrypoint-design 0.0.231 → 0.0.233
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "anentrypoint-design",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.233",
|
|
4
4
|
"description": "247420 design system SDK — webjsx + modified ripple-ui, single-file ESM bundle for reproducible use of the AnEntrypoint design.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/247420.js",
|
|
@@ -261,7 +261,15 @@ export function AgentChat(props = {}) {
|
|
|
261
261
|
if (!isStreaming && msgHasBody(m)) {
|
|
262
262
|
const built = [];
|
|
263
263
|
if (onCopyMessage) built.push({ label: 'copy', icon: 'copy', title: 'copy message', onClick: () => onCopyMessage(m) });
|
|
264
|
-
|
|
264
|
+
// Mid-thread retry: EVERY settled assistant turn gets a retry action,
|
|
265
|
+
// not only the trailing one - the host truncates from that turn's
|
|
266
|
+
// position and resends (the same mechanism edit-and-resend uses for
|
|
267
|
+
// user messages), so any assistant reply the user was unhappy with can
|
|
268
|
+
// be redone without discarding turns that came after a LATER one.
|
|
269
|
+
if (isAssistant && onRetryMessage) built.push({ label: 'retry', icon: 'refresh', title: 'retry this turn', onClick: () => onRetryMessage(m) });
|
|
270
|
+
// A dangling user message (send failed / no reply arrived) can only be
|
|
271
|
+
// the LAST message when it has no assistant reply - retry here means
|
|
272
|
+
// "resend as-is", not "redo a specific turn", so stays lastIdx-gated.
|
|
265
273
|
if (!isAssistant && onRetryMessage && i === lastIdx) built.push({ label: 'retry', icon: 'refresh', title: 'retry', onClick: () => onRetryMessage(m) });
|
|
266
274
|
// With confirmEdit the host arms its own confirm affordance (onArmEdit)
|
|
267
275
|
// instead of resending immediately; the kit stays stateless either way.
|
package/src/components/files.js
CHANGED
|
@@ -44,7 +44,7 @@ export function FileIcon({ type = 'other' } = {}) {
|
|
|
44
44
|
|
|
45
45
|
// Default action set for FileRow. A host without mutation endpoints passes a
|
|
46
46
|
// narrower `actions` list (e.g. ['download']) so the row renders no dead controls.
|
|
47
|
-
const FILE_ROW_ACTIONS = ['download', 'rename', 'delete'];
|
|
47
|
+
const FILE_ROW_ACTIONS = ['download', 'rename', 'move', 'delete'];
|
|
48
48
|
|
|
49
49
|
export function FileRow({ name, type = 'other', size, modified, code, onOpen, onAction, active, key, permissions, locked,
|
|
50
50
|
actions = FILE_ROW_ACTIONS, busy = false, selectable = false, marked = false, onMark } = {}) {
|
|
@@ -81,6 +81,11 @@ export function FileRow({ name, type = 'other', size, modified, code, onOpen, on
|
|
|
81
81
|
? actBtn('download', 'download', `download ${name}`, 'arrow-down', false) : null,
|
|
82
82
|
actions.indexOf('rename') !== -1
|
|
83
83
|
? actBtn('rename', 'rename', `rename ${name}`, 'pencil', false) : null,
|
|
84
|
+
// Single-file move used to require checkbox-select + BulkBar - a
|
|
85
|
+
// per-row affordance matches fsbrowse and the kit rename/delete rows
|
|
86
|
+
// already on this row (no reason move alone needed a select detour).
|
|
87
|
+
actions.indexOf('move') !== -1
|
|
88
|
+
? actBtn('move', 'move', `move ${name}`, 'arrow-right', false) : null,
|
|
84
89
|
actions.indexOf('delete') !== -1
|
|
85
90
|
? actBtn('delete', 'delete', `delete ${name}`, 'x', true) : null,
|
|
86
91
|
].filter(Boolean) : [];
|