@volter-ai-dev/supercode-ui 0.1.51 → 0.1.52

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/README.md CHANGED
@@ -43,6 +43,9 @@ const mounted = mountSupercodeMessenger(document.querySelector('#agent'), {
43
43
  async pickContext() {
44
44
  return host.pickFilesAndImages();
45
45
  },
46
+ openKeyboardShortcuts() {
47
+ panel.showKeyboardShortcuts();
48
+ },
46
49
  onClose() {
47
50
  panel.close();
48
51
  },
@@ -251,6 +254,9 @@ inventing fallback prompt text. The composer bounds images to four supported bro
251
254
  messages, retry, edit, and new-chat recovery. The host still chooses how explicit file selection
252
255
  is exposed and must revalidate every returned item.
253
256
 
257
+ `openKeyboardShortcuts` is also optional and host-owned. When present, the default conversation
258
+ overflow includes a Keyboard shortcuts item without consuming permanent header width.
259
+
254
260
  Transcript images with a browser-safe URL open in a keyboard-accessible, viewport-bounded viewer;
255
261
  remote images expose copy-link and open-original actions, while local data images can be downloaded.
256
262
  `createClientProjection` keeps large historical data URLs in a projection-scoped host registry and
package/components.mjs CHANGED
@@ -2655,7 +2655,8 @@ function ConversationActions({ state, adapter, actionPending, onNew, onSettings
2655
2655
  state.canDetach ? { key: "detach", label: "Detach to read-only", intent: { action: "detach" } } : null,
2656
2656
  state.canOpenTerminal ? { key: "terminal", label: "Prepare terminal handoff", intent: { action: "terminal" } } : null,
2657
2657
  state.canExport && state.exportBackTarget ? { key: "export", label: `Export back to ${harnessDisplayName(state.exportBackTarget)}`, intent: { action: "export", targetHarness: state.exportBackTarget } } : null,
2658
- state.interopSettings || state.interopSettingsError ? { key: "settings", label: "Interoperability settings", onSelect: onSettings } : null
2658
+ state.interopSettings || state.interopSettingsError ? { key: "settings", label: "Interoperability settings", onSelect: onSettings } : null,
2659
+ adapter.openKeyboardShortcuts ? { key: "shortcuts", label: "Keyboard shortcuts", onSelect: adapter.openKeyboardShortcuts } : null
2659
2660
  ].filter(Boolean)
2660
2661
  },
2661
2662
  {
package/embed.mjs CHANGED
@@ -2572,7 +2572,8 @@ function ConversationActions({ state, adapter, actionPending, onNew, onSettings
2572
2572
  state.canDetach ? { key: "detach", label: "Detach to read-only", intent: { action: "detach" } } : null,
2573
2573
  state.canOpenTerminal ? { key: "terminal", label: "Prepare terminal handoff", intent: { action: "terminal" } } : null,
2574
2574
  state.canExport && state.exportBackTarget ? { key: "export", label: `Export back to ${harnessDisplayName(state.exportBackTarget)}`, intent: { action: "export", targetHarness: state.exportBackTarget } } : null,
2575
- state.interopSettings || state.interopSettingsError ? { key: "settings", label: "Interoperability settings", onSelect: onSettings } : null
2575
+ state.interopSettings || state.interopSettingsError ? { key: "settings", label: "Interoperability settings", onSelect: onSettings } : null,
2576
+ adapter.openKeyboardShortcuts ? { key: "shortcuts", label: "Keyboard shortcuts", onSelect: adapter.openKeyboardShortcuts } : null
2576
2577
  ].filter(Boolean)
2577
2578
  },
2578
2579
  {
package/index.d.ts CHANGED
@@ -348,6 +348,8 @@ export interface UiAdapter {
348
348
  pickContext?(): TranscriptAttachment | TranscriptAttachment[] | null | Promise<TranscriptAttachment | TranscriptAttachment[] | null>;
349
349
  /** Resolve one projected historical image on demand. The UI owns and revokes its object URL. */
350
350
  resolveImage?(image: TranscriptImage): Blob | Promise<Blob>;
351
+ /** Open the embedding host's keyboard-shortcut reference from the standard overflow menu. */
352
+ openKeyboardShortcuts?(): void;
351
353
  onClose?(): void;
352
354
  onOpen?(): void;
353
355
  copyText?(value: string): void | Promise<void>;
package/messenger.mjs CHANGED
@@ -2569,7 +2569,8 @@ function ConversationActions({ state, adapter, actionPending, onNew, onSettings
2569
2569
  state.canDetach ? { key: "detach", label: "Detach to read-only", intent: { action: "detach" } } : null,
2570
2570
  state.canOpenTerminal ? { key: "terminal", label: "Prepare terminal handoff", intent: { action: "terminal" } } : null,
2571
2571
  state.canExport && state.exportBackTarget ? { key: "export", label: `Export back to ${harnessDisplayName(state.exportBackTarget)}`, intent: { action: "export", targetHarness: state.exportBackTarget } } : null,
2572
- state.interopSettings || state.interopSettingsError ? { key: "settings", label: "Interoperability settings", onSelect: onSettings } : null
2572
+ state.interopSettings || state.interopSettingsError ? { key: "settings", label: "Interoperability settings", onSelect: onSettings } : null,
2573
+ adapter.openKeyboardShortcuts ? { key: "shortcuts", label: "Keyboard shortcuts", onSelect: adapter.openKeyboardShortcuts } : null
2573
2574
  ].filter(Boolean)
2574
2575
  },
2575
2576
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter-ai-dev/supercode-ui",
3
- "version": "0.1.51",
3
+ "version": "0.1.52",
4
4
  "type": "module",
5
5
  "description": "Composable default UI kit for Supercode-powered coding-agent experiences",
6
6
  "exports": {
@@ -2655,7 +2655,8 @@ function ConversationActions({ state, adapter, actionPending, onNew, onSettings
2655
2655
  state.canDetach ? { key: "detach", label: "Detach to read-only", intent: { action: "detach" } } : null,
2656
2656
  state.canOpenTerminal ? { key: "terminal", label: "Prepare terminal handoff", intent: { action: "terminal" } } : null,
2657
2657
  state.canExport && state.exportBackTarget ? { key: "export", label: `Export back to ${harnessDisplayName(state.exportBackTarget)}`, intent: { action: "export", targetHarness: state.exportBackTarget } } : null,
2658
- state.interopSettings || state.interopSettingsError ? { key: "settings", label: "Interoperability settings", onSelect: onSettings } : null
2658
+ state.interopSettings || state.interopSettingsError ? { key: "settings", label: "Interoperability settings", onSelect: onSettings } : null,
2659
+ adapter.openKeyboardShortcuts ? { key: "shortcuts", label: "Keyboard shortcuts", onSelect: adapter.openKeyboardShortcuts } : null
2659
2660
  ].filter(Boolean)
2660
2661
  },
2661
2662
  {
@@ -2569,7 +2569,8 @@ function ConversationActions({ state, adapter, actionPending, onNew, onSettings
2569
2569
  state.canDetach ? { key: "detach", label: "Detach to read-only", intent: { action: "detach" } } : null,
2570
2570
  state.canOpenTerminal ? { key: "terminal", label: "Prepare terminal handoff", intent: { action: "terminal" } } : null,
2571
2571
  state.canExport && state.exportBackTarget ? { key: "export", label: `Export back to ${harnessDisplayName(state.exportBackTarget)}`, intent: { action: "export", targetHarness: state.exportBackTarget } } : null,
2572
- state.interopSettings || state.interopSettingsError ? { key: "settings", label: "Interoperability settings", onSelect: onSettings } : null
2572
+ state.interopSettings || state.interopSettingsError ? { key: "settings", label: "Interoperability settings", onSelect: onSettings } : null,
2573
+ adapter.openKeyboardShortcuts ? { key: "shortcuts", label: "Keyboard shortcuts", onSelect: adapter.openKeyboardShortcuts } : null
2573
2574
  ].filter(Boolean)
2574
2575
  },
2575
2576
  {