@personaai/react 0.7.4 → 0.7.6
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/index.cjs +14 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +17 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +14 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -284,6 +284,13 @@ interface SendMessageOverride {
|
|
|
284
284
|
threadId?: string | Promise<string | undefined>;
|
|
285
285
|
/** Answers/approves a paused interrupt from a previous turn instead of starting a fresh one. */
|
|
286
286
|
resume?: PersonaResumeValue;
|
|
287
|
+
/**
|
|
288
|
+
* Caller-supplied context (e.g. a live end-user profile snapshot) appended to this turn's
|
|
289
|
+
* system prompt only — never persisted, never visible to later turns. Capped at 4000
|
|
290
|
+
* characters server-side (rejected with a 400, not truncated). Mirrors
|
|
291
|
+
* `@personaai/sdk`'s `SendMessageOptions.contextOverride`.
|
|
292
|
+
*/
|
|
293
|
+
contextOverride?: string;
|
|
287
294
|
}
|
|
288
295
|
/**
|
|
289
296
|
* `useVoice`'s call state, driven by `voice_activity` events from the
|
|
@@ -318,6 +325,16 @@ interface UseVoiceOptions {
|
|
|
318
325
|
* leave undefined) to start a fresh conversation.
|
|
319
326
|
*/
|
|
320
327
|
threadId?: string;
|
|
328
|
+
/**
|
|
329
|
+
* Caller-supplied context appended to the Agent's system instruction for
|
|
330
|
+
* this call — same field/cap/contract as `useChat`'s `sendMessage(text, {
|
|
331
|
+
* contextOverride })`. Unlike text chat, this is a **one-time append at
|
|
332
|
+
* connect**, not re-applied per turn: Gemini Live's system instruction is
|
|
333
|
+
* fixed for the whole call, so changing it means ending this call and
|
|
334
|
+
* starting a new `start()`. Capped at 4000 characters server-side
|
|
335
|
+
* (rejected with a 400, not truncated).
|
|
336
|
+
*/
|
|
337
|
+
contextOverride?: string;
|
|
321
338
|
}
|
|
322
339
|
interface UseVoiceResult {
|
|
323
340
|
state: PersonaVoiceState;
|
package/dist/index.d.ts
CHANGED
|
@@ -284,6 +284,13 @@ interface SendMessageOverride {
|
|
|
284
284
|
threadId?: string | Promise<string | undefined>;
|
|
285
285
|
/** Answers/approves a paused interrupt from a previous turn instead of starting a fresh one. */
|
|
286
286
|
resume?: PersonaResumeValue;
|
|
287
|
+
/**
|
|
288
|
+
* Caller-supplied context (e.g. a live end-user profile snapshot) appended to this turn's
|
|
289
|
+
* system prompt only — never persisted, never visible to later turns. Capped at 4000
|
|
290
|
+
* characters server-side (rejected with a 400, not truncated). Mirrors
|
|
291
|
+
* `@personaai/sdk`'s `SendMessageOptions.contextOverride`.
|
|
292
|
+
*/
|
|
293
|
+
contextOverride?: string;
|
|
287
294
|
}
|
|
288
295
|
/**
|
|
289
296
|
* `useVoice`'s call state, driven by `voice_activity` events from the
|
|
@@ -318,6 +325,16 @@ interface UseVoiceOptions {
|
|
|
318
325
|
* leave undefined) to start a fresh conversation.
|
|
319
326
|
*/
|
|
320
327
|
threadId?: string;
|
|
328
|
+
/**
|
|
329
|
+
* Caller-supplied context appended to the Agent's system instruction for
|
|
330
|
+
* this call — same field/cap/contract as `useChat`'s `sendMessage(text, {
|
|
331
|
+
* contextOverride })`. Unlike text chat, this is a **one-time append at
|
|
332
|
+
* connect**, not re-applied per turn: Gemini Live's system instruction is
|
|
333
|
+
* fixed for the whole call, so changing it means ending this call and
|
|
334
|
+
* starting a new `start()`. Capped at 4000 characters server-side
|
|
335
|
+
* (rejected with a 400, not truncated).
|
|
336
|
+
*/
|
|
337
|
+
contextOverride?: string;
|
|
321
338
|
}
|
|
322
339
|
interface UseVoiceResult {
|
|
323
340
|
state: PersonaVoiceState;
|
package/dist/index.js
CHANGED
|
@@ -595,12 +595,14 @@ function useChat(options = {}) {
|
|
|
595
595
|
agentId: targetAgentId,
|
|
596
596
|
threadId: threadId ?? overrideOptions?.threadId,
|
|
597
597
|
hasResume: !!overrideOptions?.resume,
|
|
598
|
+
hasContextOverride: !!overrideOptions?.contextOverride,
|
|
598
599
|
messageCount: messages.length
|
|
599
600
|
});
|
|
600
601
|
chatLogger.trace("sendMessage details", {
|
|
601
602
|
agentId: targetAgentId,
|
|
602
603
|
promptPreview: prompt.slice(0, 200),
|
|
603
|
-
hasResume: !!overrideOptions?.resume
|
|
604
|
+
hasResume: !!overrideOptions?.resume,
|
|
605
|
+
hasContextOverride: !!overrideOptions?.contextOverride
|
|
604
606
|
});
|
|
605
607
|
const userMessage = {
|
|
606
608
|
id: `user-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`,
|
|
@@ -655,7 +657,8 @@ function useChat(options = {}) {
|
|
|
655
657
|
agentId: targetAgentId,
|
|
656
658
|
messages: payloadMessages,
|
|
657
659
|
threadId: resolvedThreadId,
|
|
658
|
-
resume: overrideOptions?.resume
|
|
660
|
+
resume: overrideOptions?.resume,
|
|
661
|
+
contextOverride: overrideOptions?.contextOverride
|
|
659
662
|
}),
|
|
660
663
|
signal: controller.signal
|
|
661
664
|
});
|
|
@@ -1389,6 +1392,7 @@ function useVoice(options = {}) {
|
|
|
1389
1392
|
const voiceLogger = useMemo3(() => logger.child("voice"), [logger]);
|
|
1390
1393
|
const agentId = options.agentId || defaultAgentId;
|
|
1391
1394
|
const threadId = options.threadId;
|
|
1395
|
+
const contextOverride = options.contextOverride;
|
|
1392
1396
|
const [state, setState] = useState4("idle");
|
|
1393
1397
|
const [isMuted, setIsMuted] = useState4(false);
|
|
1394
1398
|
const [transcript, setTranscript] = useState4(
|
|
@@ -1658,14 +1662,19 @@ function useVoice(options = {}) {
|
|
|
1658
1662
|
setToolCalls([]);
|
|
1659
1663
|
acceptedTurnSeqRef.current = 0;
|
|
1660
1664
|
setState("connecting");
|
|
1661
|
-
voiceLogger.debug("start() called", {
|
|
1665
|
+
voiceLogger.debug("start() called", {
|
|
1666
|
+
agentId,
|
|
1667
|
+
threadId,
|
|
1668
|
+
hasContextOverride: !!contextOverride
|
|
1669
|
+
});
|
|
1662
1670
|
try {
|
|
1663
1671
|
const res = await fetchWithAuth("/voice/sessions", {
|
|
1664
1672
|
method: "POST",
|
|
1665
1673
|
headers: { "Content-Type": "application/json" },
|
|
1666
1674
|
body: JSON.stringify({
|
|
1667
1675
|
agentId,
|
|
1668
|
-
...threadId ? { threadId } : {}
|
|
1676
|
+
...threadId ? { threadId } : {},
|
|
1677
|
+
...contextOverride ? { contextOverride } : {}
|
|
1669
1678
|
})
|
|
1670
1679
|
});
|
|
1671
1680
|
if (!res.ok) {
|
|
@@ -1701,7 +1710,7 @@ function useVoice(options = {}) {
|
|
|
1701
1710
|
}
|
|
1702
1711
|
teardownAudio();
|
|
1703
1712
|
}
|
|
1704
|
-
}, [agentId, threadId, fetchWithAuth, handleMessage, teardownAudio, voiceLogger]);
|
|
1713
|
+
}, [agentId, threadId, contextOverride, fetchWithAuth, handleMessage, teardownAudio, voiceLogger]);
|
|
1705
1714
|
const mute = useCallback4((muted) => {
|
|
1706
1715
|
setIsMuted(muted);
|
|
1707
1716
|
streamRef.current?.getAudioTracks().forEach((track) => {
|