@nextpa/chat-core 0.1.0 → 0.1.2
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 +27 -4
- package/assets/audio-capture-worklet.js +28 -0
- package/dist/constants/defaults.d.ts +1 -1
- package/dist/core/chat-manager.d.ts +2 -2
- package/dist/core/chat-manager.js +1 -1
- package/dist/core/config-manager.d.ts +2 -2
- package/dist/core/config-manager.js +2 -2
- package/dist/core/connection-manager.d.ts +4 -4
- package/dist/core/connection-manager.js +7 -7
- package/dist/core/connection-retry-handler.js +1 -1
- package/dist/core/consent-manager.d.ts +1 -1
- package/dist/core/consent-manager.js +2 -2
- package/dist/core/conversation-persistence.d.ts +3 -3
- package/dist/core/conversation-persistence.js +3 -3
- package/dist/core/event-emitter.js +1 -1
- package/dist/core/index.d.ts +9 -9
- package/dist/core/index.js +7 -7
- package/dist/core/local-storage-persistence.d.ts +1 -1
- package/dist/core/local-storage-persistence.js +1 -1
- package/dist/core/navigation-manager.d.ts +1 -1
- package/dist/core/navigation-manager.js +3 -3
- package/dist/core/popover-manager.d.ts +1 -1
- package/dist/core/session-beacon.js +1 -1
- package/dist/core/text-connection-manager.d.ts +4 -4
- package/dist/core/text-connection-manager.js +5 -5
- package/dist/core/text-mode-manager.d.ts +7 -7
- package/dist/core/text-mode-manager.js +4 -4
- package/dist/core/text-types.d.ts +2 -2
- package/dist/core/text-widget-controller.d.ts +4 -4
- package/dist/core/text-widget-controller.js +9 -9
- package/dist/core/theme-manager.d.ts +1 -1
- package/dist/core/theme-manager.js +2 -2
- package/dist/core/types.d.ts +3 -3
- package/dist/core/voice-state-manager.d.ts +5 -5
- package/dist/core/voice-state-manager.js +3 -3
- package/dist/core/widget-controller.d.ts +3 -3
- package/dist/core/widget-controller.js +13 -13
- package/dist/core/widget-core.d.ts +11 -11
- package/dist/core/widget-core.js +9 -9
- package/dist/google.js +3 -3
- package/dist/index.d.ts +25 -25
- package/dist/index.js +22 -22
- package/dist/openai.js +2 -2
- package/dist/services/api.d.ts +1 -1
- package/dist/services/api.js +2 -2
- package/dist/services/index.d.ts +3 -3
- package/dist/services/index.js +3 -3
- package/dist/services/page-interaction/content-extractor.d.ts +1 -1
- package/dist/services/page-interaction/content-extractor.js +1 -1
- package/dist/services/page-interaction/dom-executor.d.ts +1 -1
- package/dist/services/page-interaction/dom-executor.js +1 -1
- package/dist/services/page-interaction/dom-extractor.d.ts +1 -1
- package/dist/services/page-interaction/dom-extractor.js +2 -2
- package/dist/services/page-interaction/extension-bridge.d.ts +1 -1
- package/dist/services/page-interaction/iframe-navigation-manager.js +2 -2
- package/dist/services/page-interaction/index.d.ts +5 -5
- package/dist/services/page-interaction/index.js +4 -4
- package/dist/services/page-interaction/page-interaction-handler.d.ts +1 -1
- package/dist/services/page-interaction/page-interaction-handler.js +4 -4
- package/dist/services/realtime/google/google-audio.js +1 -1
- package/dist/services/realtime/google/google-provider.d.ts +1 -1
- package/dist/services/realtime/google/google-provider.js +3 -3
- package/dist/services/realtime/google/google-tool-mapper.d.ts +1 -1
- package/dist/services/realtime/google/index.d.ts +1 -1
- package/dist/services/realtime/google/index.js +1 -1
- package/dist/services/realtime/openai/index.d.ts +1 -1
- package/dist/services/realtime/openai/index.js +1 -1
- package/dist/services/realtime/openai/openai-provider.d.ts +1 -1
- package/dist/services/realtime/openai/openai-provider.js +3 -3
- package/dist/services/realtime/openai/openai-tool-mapper.d.ts +1 -1
- package/dist/services/realtime/provider-factory.d.ts +1 -1
- package/dist/services/realtime/types.d.ts +1 -1
- package/dist/services/realtime/vertexai/index.d.ts +1 -1
- package/dist/services/realtime/vertexai/index.js +1 -1
- package/dist/services/realtime/vertexai/vertexai-provider.d.ts +1 -1
- package/dist/services/realtime/vertexai/vertexai-provider.js +3 -3
- package/dist/services/realtime/voice-session-tracker.d.ts +1 -1
- package/dist/services/realtime/voice-session-tracker.js +1 -1
- package/dist/services/signalr.js +1 -1
- package/dist/services/voice-health-watchdog.d.ts +1 -1
- package/dist/services/voice-health-watchdog.js +1 -1
- package/dist/services/webrtc-event-handler.d.ts +3 -3
- package/dist/services/webrtc-greeting.d.ts +2 -2
- package/dist/services/webrtc-greeting.js +1 -1
- package/dist/services/webrtc-microphone.d.ts +1 -1
- package/dist/services/webrtc-microphone.js +1 -1
- package/dist/services/webrtc.d.ts +2 -2
- package/dist/services/webrtc.js +6 -6
- package/dist/utils/connect-chime.js +2 -2
- package/dist/utils/language-detection.js +1 -1
- package/dist/utils/styles.d.ts +1 -1
- package/dist/utils/theme-detection.js +1 -1
- package/dist/utils/ui-sounds.js +2 -2
- package/package.json +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -10,28 +10,28 @@
|
|
|
10
10
|
* via the subpath entries ("@nextpa/chat-core/openai", "@nextpa/chat-core/google")
|
|
11
11
|
* which the consuming app imports for the providers it uses.
|
|
12
12
|
*/
|
|
13
|
-
export { WidgetController, TextWidgetController, ConfigManager, ChatManager, ConnectionManager, TextConnectionManager, EventEmitter, type WidgetState, type WidgetControllerOptions, type WidgetEvents, type TextWidgetState, } from './core';
|
|
14
|
-
export { resolveSameOriginTarget } from './core/link-target';
|
|
15
|
-
export { WidgetApiClient, type WidgetApiClientOptions, type WidgetTokenProvider, type WidgetTokenRequestContext, type WidgetTokenResult, } from './services/api';
|
|
16
|
-
export { WebRtcService } from './services/webrtc';
|
|
17
|
-
export type { SignalRService, SignalREvents } from './services/signalr';
|
|
18
|
-
export { VoiceSessionTracker } from './services/realtime/voice-session-tracker';
|
|
19
|
-
export { startThinkingAudio, stopThinkingAudio } from './services/thinking-audio-pulse';
|
|
20
|
-
export { PageInteractionHandler, type DocumentProvider, type ExternalExecutor, type WindowProvider, } from './services/page-interaction/page-interaction-handler';
|
|
21
|
-
export { initExtensionBridge, refreshExtensionContext, } from './services/page-interaction/extension-bridge';
|
|
22
|
-
export { IframeNavigationManager } from './services/page-interaction/iframe-navigation-manager';
|
|
23
|
-
export { generateSelector } from './services/page-interaction/selector-generator';
|
|
24
|
-
export { NEXTPA_IFRAME_NAME } from './services/page-interaction/constants';
|
|
25
|
-
export { createRealtimeProvider, registerRealtimeProvider, type RealtimeProviderLoader, } from './services/realtime/provider-factory';
|
|
26
|
-
export type * from './services/realtime/types';
|
|
27
|
-
export type * from './types';
|
|
28
|
-
export { getDemoConfig, isDemoMode, setDemoMode, DEFAULT_LOGO_DATA_URL, DEFAULT_DESIGN_TOKENS, } from './constants/defaults';
|
|
29
|
-
export { MicLevelAnalyser } from './utils/mic-level-analyser';
|
|
30
|
-
export { logger, type LogLevel } from './utils/logger';
|
|
31
|
-
export { primeAudioOnGesture } from './utils/audio-context';
|
|
32
|
-
export { detectHostLanguage } from './utils/language-detection';
|
|
33
|
-
export { isGerman } from './utils/tool-status';
|
|
34
|
-
export { getMessageBubbleClasses, getMinimizedWidthClasses, getPlacementClasses, } from './utils/styles';
|
|
35
|
-
export { PROACTIVE_OPEN_WIDGET_EVENT, type ProactiveOpenWidgetEvent, type ProactiveOpenWidgetEventDetail, } from './utils/proactive-events';
|
|
36
|
-
export { CONNECT_CHIME_VARIANTS, getActiveConnectChimeVariant, setActiveConnectChimeVariant, playConnectChimeVariant, type ConnectChimeVariantId, type ConnectChimeVariant, } from './utils/connect-chime';
|
|
37
|
-
export { playMuteSound, playUnmuteSound, playEndCallSound } from './utils/ui-sounds';
|
|
13
|
+
export { WidgetController, TextWidgetController, ConfigManager, ChatManager, ConnectionManager, TextConnectionManager, EventEmitter, type WidgetState, type WidgetControllerOptions, type WidgetEvents, type TextWidgetState, } from './core/index.js';
|
|
14
|
+
export { resolveSameOriginTarget } from './core/link-target.js';
|
|
15
|
+
export { WidgetApiClient, type WidgetApiClientOptions, type WidgetTokenProvider, type WidgetTokenRequestContext, type WidgetTokenResult, } from './services/api.js';
|
|
16
|
+
export { WebRtcService } from './services/webrtc.js';
|
|
17
|
+
export type { SignalRService, SignalREvents } from './services/signalr.js';
|
|
18
|
+
export { VoiceSessionTracker } from './services/realtime/voice-session-tracker.js';
|
|
19
|
+
export { startThinkingAudio, stopThinkingAudio } from './services/thinking-audio-pulse.js';
|
|
20
|
+
export { PageInteractionHandler, type DocumentProvider, type ExternalExecutor, type WindowProvider, } from './services/page-interaction/page-interaction-handler.js';
|
|
21
|
+
export { initExtensionBridge, refreshExtensionContext, } from './services/page-interaction/extension-bridge.js';
|
|
22
|
+
export { IframeNavigationManager } from './services/page-interaction/iframe-navigation-manager.js';
|
|
23
|
+
export { generateSelector } from './services/page-interaction/selector-generator.js';
|
|
24
|
+
export { NEXTPA_IFRAME_NAME } from './services/page-interaction/constants.js';
|
|
25
|
+
export { createRealtimeProvider, registerRealtimeProvider, type RealtimeProviderLoader, } from './services/realtime/provider-factory.js';
|
|
26
|
+
export type * from './services/realtime/types.js';
|
|
27
|
+
export type * from './types/index.js';
|
|
28
|
+
export { getDemoConfig, isDemoMode, setDemoMode, DEFAULT_LOGO_DATA_URL, DEFAULT_DESIGN_TOKENS, } from './constants/defaults.js';
|
|
29
|
+
export { MicLevelAnalyser } from './utils/mic-level-analyser.js';
|
|
30
|
+
export { logger, type LogLevel } from './utils/logger.js';
|
|
31
|
+
export { primeAudioOnGesture } from './utils/audio-context.js';
|
|
32
|
+
export { detectHostLanguage } from './utils/language-detection.js';
|
|
33
|
+
export { isGerman } from './utils/tool-status.js';
|
|
34
|
+
export { getMessageBubbleClasses, getMinimizedWidthClasses, getPlacementClasses, } from './utils/styles.js';
|
|
35
|
+
export { PROACTIVE_OPEN_WIDGET_EVENT, type ProactiveOpenWidgetEvent, type ProactiveOpenWidgetEventDetail, } from './utils/proactive-events.js';
|
|
36
|
+
export { CONNECT_CHIME_VARIANTS, getActiveConnectChimeVariant, setActiveConnectChimeVariant, playConnectChimeVariant, type ConnectChimeVariantId, type ConnectChimeVariant, } from './utils/connect-chime.js';
|
|
37
|
+
export { playMuteSound, playUnmuteSound, playEndCallSound } from './utils/ui-sounds.js';
|
package/dist/index.js
CHANGED
|
@@ -11,30 +11,30 @@
|
|
|
11
11
|
* which the consuming app imports for the providers it uses.
|
|
12
12
|
*/
|
|
13
13
|
// Controllers & core managers (voice + text orchestration)
|
|
14
|
-
export { WidgetController, TextWidgetController, ConfigManager, ChatManager, ConnectionManager, TextConnectionManager, EventEmitter, } from './core';
|
|
15
|
-
export { resolveSameOriginTarget } from './core/link-target';
|
|
14
|
+
export { WidgetController, TextWidgetController, ConfigManager, ChatManager, ConnectionManager, TextConnectionManager, EventEmitter, } from './core/index.js';
|
|
15
|
+
export { resolveSameOriginTarget } from './core/link-target.js';
|
|
16
16
|
// Backend API, SignalR, WebRTC services
|
|
17
|
-
export { WidgetApiClient, } from './services/api';
|
|
18
|
-
export { WebRtcService } from './services/webrtc';
|
|
19
|
-
export { VoiceSessionTracker } from './services/realtime/voice-session-tracker';
|
|
20
|
-
export { startThinkingAudio, stopThinkingAudio } from './services/thinking-audio-pulse';
|
|
17
|
+
export { WidgetApiClient, } from './services/api.js';
|
|
18
|
+
export { WebRtcService } from './services/webrtc.js';
|
|
19
|
+
export { VoiceSessionTracker } from './services/realtime/voice-session-tracker.js';
|
|
20
|
+
export { startThinkingAudio, stopThinkingAudio } from './services/thinking-audio-pulse.js';
|
|
21
21
|
// Page interaction (widget DOM bridge)
|
|
22
|
-
export { PageInteractionHandler, } from './services/page-interaction/page-interaction-handler';
|
|
23
|
-
export { initExtensionBridge, refreshExtensionContext, } from './services/page-interaction/extension-bridge';
|
|
24
|
-
export { IframeNavigationManager } from './services/page-interaction/iframe-navigation-manager';
|
|
25
|
-
export { generateSelector } from './services/page-interaction/selector-generator';
|
|
26
|
-
export { NEXTPA_IFRAME_NAME } from './services/page-interaction/constants';
|
|
22
|
+
export { PageInteractionHandler, } from './services/page-interaction/page-interaction-handler.js';
|
|
23
|
+
export { initExtensionBridge, refreshExtensionContext, } from './services/page-interaction/extension-bridge.js';
|
|
24
|
+
export { IframeNavigationManager } from './services/page-interaction/iframe-navigation-manager.js';
|
|
25
|
+
export { generateSelector } from './services/page-interaction/selector-generator.js';
|
|
26
|
+
export { NEXTPA_IFRAME_NAME } from './services/page-interaction/constants.js';
|
|
27
27
|
// Realtime provider abstraction
|
|
28
|
-
export { createRealtimeProvider, registerRealtimeProvider, } from './services/realtime/provider-factory';
|
|
28
|
+
export { createRealtimeProvider, registerRealtimeProvider, } from './services/realtime/provider-factory.js';
|
|
29
29
|
// Defaults / demo config
|
|
30
|
-
export { getDemoConfig, isDemoMode, setDemoMode, DEFAULT_LOGO_DATA_URL, DEFAULT_DESIGN_TOKENS, } from './constants/defaults';
|
|
30
|
+
export { getDemoConfig, isDemoMode, setDemoMode, DEFAULT_LOGO_DATA_URL, DEFAULT_DESIGN_TOKENS, } from './constants/defaults.js';
|
|
31
31
|
// Framework-neutral utilities
|
|
32
|
-
export { MicLevelAnalyser } from './utils/mic-level-analyser';
|
|
33
|
-
export { logger } from './utils/logger';
|
|
34
|
-
export { primeAudioOnGesture } from './utils/audio-context';
|
|
35
|
-
export { detectHostLanguage } from './utils/language-detection';
|
|
36
|
-
export { isGerman } from './utils/tool-status';
|
|
37
|
-
export { getMessageBubbleClasses, getMinimizedWidthClasses, getPlacementClasses, } from './utils/styles';
|
|
38
|
-
export { PROACTIVE_OPEN_WIDGET_EVENT, } from './utils/proactive-events';
|
|
39
|
-
export { CONNECT_CHIME_VARIANTS, getActiveConnectChimeVariant, setActiveConnectChimeVariant, playConnectChimeVariant, } from './utils/connect-chime';
|
|
40
|
-
export { playMuteSound, playUnmuteSound, playEndCallSound } from './utils/ui-sounds';
|
|
32
|
+
export { MicLevelAnalyser } from './utils/mic-level-analyser.js';
|
|
33
|
+
export { logger } from './utils/logger.js';
|
|
34
|
+
export { primeAudioOnGesture } from './utils/audio-context.js';
|
|
35
|
+
export { detectHostLanguage } from './utils/language-detection.js';
|
|
36
|
+
export { isGerman } from './utils/tool-status.js';
|
|
37
|
+
export { getMessageBubbleClasses, getMinimizedWidthClasses, getPlacementClasses, } from './utils/styles.js';
|
|
38
|
+
export { PROACTIVE_OPEN_WIDGET_EVENT, } from './utils/proactive-events.js';
|
|
39
|
+
export { CONNECT_CHIME_VARIANTS, getActiveConnectChimeVariant, setActiveConnectChimeVariant, playConnectChimeVariant, } from './utils/connect-chime.js';
|
|
40
|
+
export { playMuteSound, playUnmuteSound, playEndCallSound } from './utils/ui-sounds.js';
|
package/dist/openai.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { registerRealtimeProvider } from './services/realtime/provider-factory';
|
|
1
|
+
import { registerRealtimeProvider } from './services/realtime/provider-factory.js';
|
|
2
2
|
// Subpath entry (@nextpa/chat-core/openai): importing it registers the OpenAI
|
|
3
3
|
// provider as a lazy loader — the SDK stays in its own async chunk.
|
|
4
4
|
registerRealtimeProvider('openai', async () => {
|
|
5
|
-
const { OpenAiRealtimeProvider } = await import('./services/realtime/openai');
|
|
5
|
+
const { OpenAiRealtimeProvider } = await import('./services/realtime/openai/index.js');
|
|
6
6
|
return new OpenAiRealtimeProvider();
|
|
7
7
|
});
|
package/dist/services/api.d.ts
CHANGED
package/dist/services/api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { logger } from '../utils/logger';
|
|
2
|
-
import { detectHostLanguage } from '../utils/language-detection';
|
|
1
|
+
import { logger } from '../utils/logger.js';
|
|
2
|
+
import { detectHostLanguage } from '../utils/language-detection.js';
|
|
3
3
|
// Dev fallback only; the host app passes the real base URL to the constructor.
|
|
4
4
|
const API_BASE_URL = 'https://localhost:6101';
|
|
5
5
|
export class WidgetApiClient {
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { WidgetApiClient } from './api';
|
|
2
|
-
export { WebRtcService } from './webrtc';
|
|
3
|
-
export { SignalRService, type SignalREvents } from './signalr';
|
|
1
|
+
export { WidgetApiClient } from './api.js';
|
|
2
|
+
export { WebRtcService } from './webrtc.js';
|
|
3
|
+
export { SignalRService, type SignalREvents } from './signalr.js';
|
package/dist/services/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { WidgetApiClient } from './api';
|
|
2
|
-
export { WebRtcService } from './webrtc';
|
|
3
|
-
export { SignalRService } from './signalr';
|
|
1
|
+
export { WidgetApiClient } from './api.js';
|
|
2
|
+
export { WebRtcService } from './webrtc.js';
|
|
3
|
+
export { SignalRService } from './signalr.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { PageContent } from './types';
|
|
1
|
+
import type { PageContent } from './types.js';
|
|
2
2
|
export declare function extractPageContent(doc?: Document, win?: Window): PageContent;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { queryAllDeep } from './deep-query';
|
|
1
|
+
import { queryAllDeep } from './deep-query.js';
|
|
2
2
|
const CONTENT_ROOT_SELECTOR = 'main, [role="main"], article';
|
|
3
3
|
const SKIP_SELECTOR = 'nav, footer, aside, script, style, noscript, template, [aria-hidden="true"], [hidden]';
|
|
4
4
|
const CONTENT_SELECTOR = 'h1, h2, h3, h4, h5, h6, p, li, blockquote, pre, figcaption, dt, dd, td, th, summary';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ActionResult } from './types';
|
|
1
|
+
import type { ActionResult } from './types.js';
|
|
2
2
|
export declare function fillField(selector: string, value: string, doc?: Document): ActionResult;
|
|
3
3
|
export declare function fillFields(fields: Record<string, string>, doc?: Document): ActionResult;
|
|
4
4
|
export declare function clickElement(selector: string, doc?: Document): ActionResult;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ButtonElement, FormElement, InteractiveElement, LinkElement, PageSnapshot, ProductCardElement, TableElement } from './types';
|
|
1
|
+
import type { ButtonElement, FormElement, InteractiveElement, LinkElement, PageSnapshot, ProductCardElement, TableElement } from './types.js';
|
|
2
2
|
export declare function extractPageSnapshot(doc?: Document, win?: Window): PageSnapshot;
|
|
3
3
|
export declare function extractForms(doc?: Document, win?: Window): FormElement[];
|
|
4
4
|
export declare function extractButtons(doc?: Document, win?: Window): ButtonElement[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { queryAllDeep } from './deep-query';
|
|
2
|
-
import { generateSelector } from './selector-generator';
|
|
1
|
+
import { queryAllDeep } from './deep-query.js';
|
|
2
|
+
import { generateSelector } from './selector-generator.js';
|
|
3
3
|
const MAX_FORMS = 50;
|
|
4
4
|
const MAX_BUTTONS = 100;
|
|
5
5
|
const MAX_LINKS = 100;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { logger } from '../../utils/logger';
|
|
2
|
-
import { NEXTPA_IFRAME_NAME } from './constants';
|
|
1
|
+
import { logger } from '../../utils/logger.js';
|
|
2
|
+
import { NEXTPA_IFRAME_NAME } from './constants.js';
|
|
3
3
|
const IFRAME_Z_INDEX = '2147483640';
|
|
4
4
|
const WIDGET_Z_INDEX = '2147483641';
|
|
5
5
|
const BLOCK_DETECTION_TIMEOUT_MS = 3000;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { extractPageSnapshot, extractForms, extractButtons, extractLinks, extractTables, extractProductCards, extractInteractiveElements } from './dom-extractor';
|
|
2
|
-
export { extractPageContent } from './content-extractor';
|
|
3
|
-
export { fillField, fillFields, clickElement, scrollToElement, highlightElement, waitForElement } from './dom-executor';
|
|
4
|
-
export { generateSelector } from './selector-generator';
|
|
5
|
-
export type { PageSnapshot, FormElement, ButtonElement, LinkElement, TableElement, ProductCardElement, InteractiveElement, PageContent, PageInteractionRequest, PageInteractionResult, ActionResult } from './types';
|
|
1
|
+
export { extractPageSnapshot, extractForms, extractButtons, extractLinks, extractTables, extractProductCards, extractInteractiveElements } from './dom-extractor.js';
|
|
2
|
+
export { extractPageContent } from './content-extractor.js';
|
|
3
|
+
export { fillField, fillFields, clickElement, scrollToElement, highlightElement, waitForElement } from './dom-executor.js';
|
|
4
|
+
export { generateSelector } from './selector-generator.js';
|
|
5
|
+
export type { PageSnapshot, FormElement, ButtonElement, LinkElement, TableElement, ProductCardElement, InteractiveElement, PageContent, PageInteractionRequest, PageInteractionResult, ActionResult } from './types.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { extractPageSnapshot, extractForms, extractButtons, extractLinks, extractTables, extractProductCards, extractInteractiveElements } from './dom-extractor';
|
|
2
|
-
export { extractPageContent } from './content-extractor';
|
|
3
|
-
export { fillField, fillFields, clickElement, scrollToElement, highlightElement, waitForElement } from './dom-executor';
|
|
4
|
-
export { generateSelector } from './selector-generator';
|
|
1
|
+
export { extractPageSnapshot, extractForms, extractButtons, extractLinks, extractTables, extractProductCards, extractInteractiveElements } from './dom-extractor.js';
|
|
2
|
+
export { extractPageContent } from './content-extractor.js';
|
|
3
|
+
export { fillField, fillFields, clickElement, scrollToElement, highlightElement, waitForElement } from './dom-executor.js';
|
|
4
|
+
export { generateSelector } from './selector-generator.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as signalR from '@microsoft/signalr';
|
|
2
|
-
import type { PageInteractionRequest, PageInteractionResult } from './types';
|
|
2
|
+
import type { PageInteractionRequest, PageInteractionResult } from './types.js';
|
|
3
3
|
export type DocumentProvider = () => Document;
|
|
4
4
|
export type WindowProvider = () => Window;
|
|
5
5
|
export type ExternalExecutor = (request: PageInteractionRequest) => Promise<PageInteractionResult | string>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { logger } from '../../utils/logger';
|
|
2
|
-
import { extractPageSnapshot } from './dom-extractor';
|
|
3
|
-
import { extractPageContent } from './content-extractor';
|
|
4
|
-
import { clickElement, fillField, fillFields, highlightElement, scrollToElement, waitForElement } from './dom-executor';
|
|
1
|
+
import { logger } from '../../utils/logger.js';
|
|
2
|
+
import { extractPageSnapshot } from './dom-extractor.js';
|
|
3
|
+
import { extractPageContent } from './content-extractor.js';
|
|
4
|
+
import { clickElement, fillField, fillFields, highlightElement, scrollToElement, waitForElement } from './dom-executor.js';
|
|
5
5
|
const ALLOWED_ACTIONS = new Set(['read', 'read_content', 'fill', 'fill_multiple', 'click', 'scroll_to', 'highlight', 'wait_for']);
|
|
6
6
|
const MAX_REQUESTS_PER_SECOND = 10;
|
|
7
7
|
const DANGEROUS_SELECTOR_PATTERN = /javascript:|<script|on\w+\s*=/i;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RealtimeProviderClient, RealtimeProviderConnectConfig, ProviderEventMap } from '../types';
|
|
1
|
+
import type { RealtimeProviderClient, RealtimeProviderConnectConfig, ProviderEventMap } from '../types.js';
|
|
2
2
|
export declare class GoogleRealtimeProvider implements RealtimeProviderClient {
|
|
3
3
|
private session;
|
|
4
4
|
private readonly audioHandler;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GoogleGenAI, MediaModality, Modality, VoiceActivityType } from '@google/genai';
|
|
2
|
-
import { mapToolsForGoogle } from './google-tool-mapper';
|
|
3
|
-
import { GoogleAudioHandler } from './google-audio';
|
|
4
|
-
import { logger } from '../../../utils/logger';
|
|
2
|
+
import { mapToolsForGoogle } from './google-tool-mapper.js';
|
|
3
|
+
import { GoogleAudioHandler } from './google-audio.js';
|
|
4
|
+
import { logger } from '../../../utils/logger.js';
|
|
5
5
|
const AUDIO_MIME_TYPE = 'audio/pcm;rate=16000';
|
|
6
6
|
const DEFAULT_VOICE = 'Kore';
|
|
7
7
|
const MAX_TOOL_CALL_HISTORY = 5;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { GoogleRealtimeProvider } from './google-provider';
|
|
1
|
+
export { GoogleRealtimeProvider } from './google-provider.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { GoogleRealtimeProvider } from './google-provider';
|
|
1
|
+
export { GoogleRealtimeProvider } from './google-provider.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { OpenAiRealtimeProvider } from './openai-provider';
|
|
1
|
+
export { OpenAiRealtimeProvider } from './openai-provider.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { OpenAiRealtimeProvider } from './openai-provider';
|
|
1
|
+
export { OpenAiRealtimeProvider } from './openai-provider.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RealtimeProviderClient, RealtimeProviderConnectConfig, ProviderEventMap } from '../types';
|
|
1
|
+
import type { RealtimeProviderClient, RealtimeProviderConnectConfig, ProviderEventMap } from '../types.js';
|
|
2
2
|
export declare class OpenAiRealtimeProvider implements RealtimeProviderClient {
|
|
3
3
|
private readonly client;
|
|
4
4
|
private readonly eventHandlers;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OpenAIRealtimeWebRTC } from '@openai/agents-realtime';
|
|
2
|
-
import { mapToolsForOpenAI } from './openai-tool-mapper';
|
|
3
|
-
import { waitForAudioPlaybackEnd } from './openai-audio-monitor';
|
|
4
|
-
import { logger } from '../../../utils/logger';
|
|
2
|
+
import { mapToolsForOpenAI } from './openai-tool-mapper.js';
|
|
3
|
+
import { waitForAudioPlaybackEnd } from './openai-audio-monitor.js';
|
|
4
|
+
import { logger } from '../../../utils/logger.js';
|
|
5
5
|
function unwrapTranscript(text) {
|
|
6
6
|
try {
|
|
7
7
|
const parsed = JSON.parse(text);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RealtimeProviderClient, RealtimeProviderType } from './types';
|
|
1
|
+
import type { RealtimeProviderClient, RealtimeProviderType } from './types.js';
|
|
2
2
|
export type RealtimeProviderLoader = () => Promise<RealtimeProviderClient> | RealtimeProviderClient;
|
|
3
3
|
export declare function registerRealtimeProvider(providerType: RealtimeProviderType, loader: RealtimeProviderLoader): void;
|
|
4
4
|
export declare function createRealtimeProvider(providerType: RealtimeProviderType): Promise<RealtimeProviderClient>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { VertexAiRealtimeProvider } from './vertexai-provider';
|
|
1
|
+
export { VertexAiRealtimeProvider } from './vertexai-provider.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { VertexAiRealtimeProvider } from './vertexai-provider';
|
|
1
|
+
export { VertexAiRealtimeProvider } from './vertexai-provider.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RealtimeProviderClient, RealtimeProviderConnectConfig, ProviderEventMap } from '../types';
|
|
1
|
+
import type { RealtimeProviderClient, RealtimeProviderConnectConfig, ProviderEventMap } from '../types.js';
|
|
2
2
|
export declare class VertexAiRealtimeProvider implements RealtimeProviderClient {
|
|
3
3
|
private ws;
|
|
4
4
|
private readonly audioHandler;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { mapToolsForGoogle } from '../google/google-tool-mapper';
|
|
2
|
-
import { GoogleAudioHandler } from '../google/google-audio';
|
|
3
|
-
import { logger } from '../../../utils/logger';
|
|
1
|
+
import { mapToolsForGoogle } from '../google/google-tool-mapper.js';
|
|
2
|
+
import { GoogleAudioHandler } from '../google/google-audio.js';
|
|
3
|
+
import { logger } from '../../../utils/logger.js';
|
|
4
4
|
const AUDIO_MIME_TYPE = 'audio/pcm;rate=16000';
|
|
5
5
|
const DEFAULT_VOICE = 'Kore';
|
|
6
6
|
const MAX_TOOL_CALL_HISTORY = 5;
|
package/dist/services/signalr.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RealtimeProviderClient } from './realtime/types';
|
|
1
|
+
import type { RealtimeProviderClient } from './realtime/types.js';
|
|
2
2
|
export type VoiceUnhealthyReason = 'no-setup' | 'no-greeting-response';
|
|
3
3
|
/**
|
|
4
4
|
* Watches a freshly-connected realtime voice session and reports when it is
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RealtimeProviderClient, ProviderUsage } from './realtime/types';
|
|
2
|
-
import type { ConnectionState, ConversationEvents } from '../types';
|
|
3
|
-
import type { MicrophoneManager } from './webrtc-microphone';
|
|
1
|
+
import type { RealtimeProviderClient, ProviderUsage } from './realtime/types.js';
|
|
2
|
+
import type { ConnectionState, ConversationEvents } from '../types/index.js';
|
|
3
|
+
import type { MicrophoneManager } from './webrtc-microphone.js';
|
|
4
4
|
export declare function setupEventHandlers(client: RealtimeProviderClient, events: ConversationEvents, microphoneManager: MicrophoneManager, setConnectionState: (state: ConnectionState) => void, onUsageUpdated?: (usage: ProviderUsage) => void): void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { RealtimeProviderClient } from './realtime/types';
|
|
2
|
-
import type { MicrophoneManager } from './webrtc-microphone';
|
|
1
|
+
import type { RealtimeProviderClient } from './realtime/types.js';
|
|
2
|
+
import type { MicrophoneManager } from './webrtc-microphone.js';
|
|
3
3
|
export declare function startGreetingFlow(client: RealtimeProviderClient, microphoneManager: MicrophoneManager, onMicrophoneReady: (() => void) | undefined, skipGreeting?: boolean): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logger } from '../utils/logger';
|
|
1
|
+
import { logger } from '../utils/logger.js';
|
|
2
2
|
const GREETING_TIMEOUT_MS = 30000;
|
|
3
3
|
export function startGreetingFlow(client, microphoneManager, onMicrophoneReady, skipGreeting = false) {
|
|
4
4
|
// Only bail when the connection genuinely failed. A successful connect can
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ConnectionState, ConversationEvents, ToolDefinition } from '../types';
|
|
2
|
-
import type { RealtimeProviderType } from './realtime/types';
|
|
1
|
+
import type { ConnectionState, ConversationEvents, ToolDefinition } from '../types/index.js';
|
|
2
|
+
import type { RealtimeProviderType } from './realtime/types.js';
|
|
3
3
|
export type TranscriptionMode = 'oob' | 'native';
|
|
4
4
|
export interface WebRtcConfig {
|
|
5
5
|
token: string;
|
package/dist/services/webrtc.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { createRealtimeProvider } from './realtime/provider-factory';
|
|
2
|
-
import { logger } from '../utils/logger';
|
|
3
|
-
import { MicrophoneManager } from './webrtc-microphone';
|
|
4
|
-
import { setupEventHandlers } from './webrtc-event-handler';
|
|
5
|
-
import { startGreetingFlow } from './webrtc-greeting';
|
|
6
|
-
import { VoiceHealthWatchdog } from './voice-health-watchdog';
|
|
1
|
+
import { createRealtimeProvider } from './realtime/provider-factory.js';
|
|
2
|
+
import { logger } from '../utils/logger.js';
|
|
3
|
+
import { MicrophoneManager } from './webrtc-microphone.js';
|
|
4
|
+
import { setupEventHandlers } from './webrtc-event-handler.js';
|
|
5
|
+
import { startGreetingFlow } from './webrtc-greeting.js';
|
|
6
|
+
import { VoiceHealthWatchdog } from './voice-health-watchdog.js';
|
|
7
7
|
export class WebRtcService {
|
|
8
8
|
client = null;
|
|
9
9
|
events = {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getSharedAudioContext, withResumedContext } from './audio-context';
|
|
2
|
-
import { logger } from './logger';
|
|
1
|
+
import { getSharedAudioContext, withResumedContext } from './audio-context.js';
|
|
2
|
+
import { logger } from './logger.js';
|
|
3
3
|
const MASTER_FILTER_Q = 0.5;
|
|
4
4
|
const REVERB_DECAY_POWER = 2.2;
|
|
5
5
|
const cachedImpulses = new Map();
|
package/dist/utils/styles.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WidgetConfig } from '../types';
|
|
1
|
+
import type { WidgetConfig } from '../types/index.js';
|
|
2
2
|
export declare function getPlacementClasses(placement: WidgetConfig['placement'] | undefined): string;
|
|
3
3
|
export declare function getMinimizedWidthClasses(size: WidgetConfig['size'] | undefined): string;
|
|
4
4
|
export declare function getMessageBubbleClasses(isUser: boolean, isDark: boolean): string;
|
package/dist/utils/ui-sounds.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getSharedAudioContext, withResumedContext } from './audio-context';
|
|
2
|
-
import { logger } from './logger';
|
|
1
|
+
import { getSharedAudioContext, withResumedContext } from './audio-context.js';
|
|
2
|
+
import { logger } from './logger.js';
|
|
3
3
|
const MUTE_PULSES = [
|
|
4
4
|
{ frequency: 523.25, durationSec: 0.06 },
|
|
5
5
|
{ frequency: 349.23, durationSec: 0.08 },
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextpa/chat-core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Framework-neutral voice & text chat engine for the NextPA platform.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
"./package.json": "./package.json"
|
|
39
39
|
},
|
|
40
40
|
"files": [
|
|
41
|
-
"dist"
|
|
41
|
+
"dist",
|
|
42
|
+
"assets"
|
|
42
43
|
],
|
|
43
44
|
"peerDependencies": {
|
|
44
45
|
"@google/genai": "^2.8.0",
|