@newheap/platform-ai-chat 0.6.0 → 0.8.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/README.md CHANGED
@@ -111,8 +111,19 @@ inject(NhAssistantPanelService).open(conversationId);
111
111
  The drawer is 420 px wide on the right and fills the screen below 600 px. Escape
112
112
  closes it and focus returns to the element that opened it.
113
113
 
114
- The composer stays editable while a turn runs or waits for approval. Sending is
115
- temporarily blocked, so Enter preserves the draft; explicit send returns focus to the
114
+ The panel's composer stays editable while a turn runs or waits for approval. Enter
115
+ adds follow-ups to a visible FIFO queue; they send after the current turn finishes.
116
+ Queued messages can be edited or removed without replacing the current draft.
117
+ **Steer now** prioritizes one message, cancels the current turn and waits for confirmed
118
+ idle state before sending the correction in the same conversation. It does not modify
119
+ a running model request or approve tools. Stop pauses the queue; **Resume queue** is
120
+ explicit after Stop or failure. Failed sends stay queued for retry. Queues retain the
121
+ original conversation and page context, continue when the drawer closes or another
122
+ conversation opens, and live only in this tab's memory. They clear on account changes,
123
+ loss of access, deletion or leaving a conversation. Standalone composers preserve their
124
+ default behavior; opt into the extra send button with `[queueWhileBusy]="true"` and
125
+ connect it to `NhAssistantStore.submit` using `canSubmit`.
126
+ Explicit send returns focus to the
116
127
  editor. Automatic focus restoration happens only when a disappearing composer control
117
128
  owned focus, never after the user chose another control, and is skipped for coarse
118
129
  pointer devices to avoid opening a mobile keyboard unexpectedly.
@@ -125,13 +136,21 @@ authorization basis.
125
136
 
126
137
  `NhAssistantStore` exposes the state as signals (`enabled`, `agents`,
127
138
  `conversations`, `activeConversation`, `streaming`, `pendingApproval`, `error` and
128
- more) and the actions `send`, `decide`, `cancel`, `openConversation`,
139
+ more) and the actions `send`, `submit`, `pauseQueue`, `resumeQueue`,
140
+ `updateQueuedMessage`, `removeQueuedMessage`, `steerQueuedMessage`, `decide`, `cancel`, `openConversation`,
129
141
  `startNewConversation` and `selectAgent`. The building blocks
130
142
  `nh-assistant-thread`, `nh-assistant-composer`, `nh-assistant-conversation-list`,
131
143
  `nh-assistant-tool-call-card`, `nh-assistant-approval-card` and
132
144
  `nh-assistant-agent-picker` are exported for custom layouts. All components are
133
145
  standalone and use `OnPush`.
134
146
 
147
+ The panel selects the assistant in the prompt bar below the message field, alongside
148
+ the send/stop action. Custom composer layouts can project controls marked with
149
+ `nhAssistantComposerControls`; use `[compact]="true"` on `nh-assistant-agent-picker`
150
+ for the same appearance. Capability information stays available in its tooltip and
151
+ accessible description. Changing the agent keeps the draft and selects the agent for
152
+ the next new conversation.
153
+
135
154
  Assistant text is rendered as Markdown with `marked` and sanitized with DOMPurify
136
155
  against a small allow-list. Inline HTML in model text is shown as text, images
137
156
  render as their alt text, `javascript:` and `data:` links lose their target, and
@@ -159,8 +178,8 @@ The library validates and truncates the result: route at most 200 characters, ti
159
178
  and labels at most 120, at most five entities with a dash-case `type` and an `id` of
160
179
  at most 64 characters. Entities with an invalid type or id are dropped rather than
161
180
  truncated. An invalid shape, an exception or a rejected promise leaves the context out
162
- of that message; sending continues. A chip above the message box shows what is sent;
163
- its close button leaves the context out of the next message, which then sends
181
+ of that message; sending continues. The page icon beside the composer actions describes
182
+ the included context in its tooltip; clicking it leaves context out of the next message, which sends
164
183
  `clientContext: null`. Page context is untrusted data: the server treats entity ids as
165
184
  search hints and still authorizes every tool call.
166
185
 
@@ -174,6 +193,17 @@ Preferences steer the style only; the server keeps them below the application
174
193
  context and the agent instructions and never lets them change approvals or tool
175
194
  access.
176
195
 
196
+ The header bell turns desktop notifications on or off when the server, host and browser
197
+ support Web Push. Its tooltip explains the current browser state; an off bell has a slash
198
+ and a blocked permission uses the warning color. Updates disable the control while pending
199
+ and report failures in the panel's localized error bar. The preferences retain the detailed setting.
200
+
201
+ Separate link and people icons above the composer open the invitation-link and participant
202
+ views. They become usable after a conversation has been created. The owner can invite
203
+ colleagues when the server offers a directory; otherwise the participant view offers the
204
+ invitation link. Participants can view members and leave. Custom hosts using
205
+ `nh-assistant-share` can select `section="link"` or `section="members"`; the default shows both.
206
+
177
207
  ## Administration
178
208
 
179
209
  The administration page is a separate entry point, so it stays out of the initial