@flamingo-stack/openframe-frontend-core 0.0.207 → 0.0.208
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/{chunk-Z3GQGR5E.js → chunk-2HMZSCJY.js} +3158 -2074
- package/dist/chunk-2HMZSCJY.js.map +1 -0
- package/dist/chunk-4XLJWX2N.js +12 -0
- package/dist/chunk-4XLJWX2N.js.map +1 -0
- package/dist/{chunk-APM6KBPU.cjs → chunk-C5EC5AZM.cjs} +1644 -560
- package/dist/chunk-C5EC5AZM.cjs.map +1 -0
- package/dist/chunk-VFKQMAUF.cjs +12 -0
- package/dist/chunk-VFKQMAUF.cjs.map +1 -0
- package/dist/components/chat/embeddable-chat.d.ts +35 -2
- package/dist/components/chat/embeddable-chat.d.ts.map +1 -1
- package/dist/components/chat/hooks/index.d.ts +3 -0
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-embedded-chat.d.ts +10 -169
- package/dist/components/chat/hooks/use-embedded-chat.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts +85 -0
- package/dist/components/chat/hooks/use-nats-chat-adapter.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts +124 -0
- package/dist/components/chat/hooks/use-sse-chat-adapter.d.ts.map +1 -0
- package/dist/components/chat/hooks/use-unified-chat.d.ts +33 -0
- package/dist/components/chat/hooks/use-unified-chat.d.ts.map +1 -0
- package/dist/components/chat/index.cjs +8 -2
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +11 -5
- package/dist/components/chat/types/index.d.ts +1 -0
- package/dist/components/chat/types/index.d.ts.map +1 -1
- package/dist/components/chat/types/unified-chat-state.types.d.ts +185 -0
- package/dist/components/chat/types/unified-chat-state.types.d.ts.map +1 -0
- package/dist/components/features/index.cjs +3 -2
- package/dist/components/features/index.cjs.map +1 -1
- package/dist/components/features/index.js +2 -1
- package/dist/components/index.cjs +26 -2
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +27 -3
- package/dist/components/navigation/index.cjs +3 -2
- package/dist/components/navigation/index.cjs.map +1 -1
- package/dist/components/navigation/index.js +2 -1
- package/dist/components/shared/delivery/delivery-lists.d.ts +16 -0
- package/dist/components/shared/delivery/delivery-lists.d.ts.map +1 -0
- package/dist/components/shared/delivery/delivery-table.d.ts +12 -0
- package/dist/components/shared/delivery/delivery-table.d.ts.map +1 -0
- package/dist/components/shared/delivery/index.d.ts +3 -0
- package/dist/components/shared/delivery/index.d.ts.map +1 -0
- package/dist/components/shared/dev-section/dev-section-page.d.ts +31 -0
- package/dist/components/shared/dev-section/dev-section-page.d.ts.map +1 -0
- package/dist/components/shared/dev-section/dev-section-view.d.ts +34 -0
- package/dist/components/shared/dev-section/dev-section-view.d.ts.map +1 -0
- package/dist/components/shared/dev-section/index.d.ts +3 -0
- package/dist/components/shared/dev-section/index.d.ts.map +1 -0
- package/dist/components/shared/legal-document/index.d.ts +10 -0
- package/dist/components/shared/legal-document/index.d.ts.map +1 -0
- package/dist/components/shared/legal-document/legal-document-page.d.ts +66 -0
- package/dist/components/shared/legal-document/legal-document-page.d.ts.map +1 -0
- package/dist/components/shared/legal-document/use-legal-docs.d.ts +40 -0
- package/dist/components/shared/legal-document/use-legal-docs.d.ts.map +1 -0
- package/dist/components/shared/product-release/index.d.ts +2 -1
- package/dist/components/shared/product-release/index.d.ts.map +1 -1
- package/dist/components/shared/product-release/release-detail-page.d.ts +11 -7
- package/dist/components/shared/product-release/release-detail-page.d.ts.map +1 -1
- package/dist/components/shared/roadmap/index.d.ts +18 -0
- package/dist/components/shared/roadmap/index.d.ts.map +1 -0
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts +24 -0
- package/dist/components/shared/roadmap/roadmap-grid-skeleton.d.ts.map +1 -0
- package/dist/components/shared/roadmap/roadmap-grid.d.ts +18 -0
- package/dist/components/shared/roadmap/roadmap-grid.d.ts.map +1 -0
- package/dist/components/shared/roadmap/use-roadmap-voting.d.ts +25 -0
- package/dist/components/shared/roadmap/use-roadmap-voting.d.ts.map +1 -0
- package/dist/components/ui/index.cjs +8 -2
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +11 -5
- package/dist/components/ui/release-changelog-section.d.ts +13 -2
- package/dist/components/ui/release-changelog-section.d.ts.map +1 -1
- package/dist/embed-shims/index.cjs +1 -6
- package/dist/embed-shims/index.cjs.map +1 -1
- package/dist/embed-shims/index.js +1 -6
- package/dist/embed-shims/index.js.map +1 -1
- package/dist/index.cjs +18 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +19 -3
- package/dist/types/delivery.d.ts +49 -0
- package/dist/types/delivery.d.ts.map +1 -0
- package/dist/types/index.cjs +13 -0
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +12 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/dev-sections/index.d.ts +11 -0
- package/dist/utils/dev-sections/index.d.ts.map +1 -0
- package/dist/utils/dev-sections/openframe-dev-sections.d.ts +209 -0
- package/dist/utils/dev-sections/openframe-dev-sections.d.ts.map +1 -0
- package/dist/utils/index.cjs +82 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +81 -2
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/chat/embeddable-chat.tsx +123 -8
- package/src/components/chat/hooks/index.ts +9 -2
- package/src/components/chat/hooks/use-embedded-chat.ts +18 -1016
- package/src/components/chat/hooks/use-nats-chat-adapter.ts +372 -0
- package/src/components/chat/hooks/use-sse-chat-adapter.ts +1058 -0
- package/src/components/chat/hooks/use-unified-chat.ts +171 -0
- package/src/components/chat/types/index.ts +1 -0
- package/src/components/chat/types/unified-chat-state.types.ts +215 -0
- package/src/components/index.ts +8 -0
- package/src/components/shared/delivery/delivery-lists.tsx +199 -0
- package/src/components/shared/delivery/delivery-table.tsx +174 -0
- package/src/components/shared/delivery/index.ts +9 -0
- package/src/components/shared/dev-section/dev-section-page.tsx +72 -0
- package/src/components/shared/dev-section/dev-section-view.tsx +129 -0
- package/src/components/shared/dev-section/index.ts +2 -0
- package/src/components/shared/legal-document/index.ts +19 -0
- package/src/components/shared/legal-document/legal-document-page.tsx +178 -0
- package/src/components/shared/legal-document/use-legal-docs.ts +123 -0
- package/src/components/shared/product-release/index.ts +14 -3
- package/src/components/shared/product-release/release-detail-page.tsx +45 -7
- package/src/components/shared/roadmap/index.ts +23 -0
- package/src/components/shared/roadmap/roadmap-grid-skeleton.tsx +74 -0
- package/src/components/shared/roadmap/roadmap-grid.tsx +106 -0
- package/src/components/shared/roadmap/use-roadmap-voting.ts +163 -0
- package/src/components/ui/release-changelog-section.tsx +113 -32
- package/src/stories/EmbeddableChat.stories.tsx +186 -0
- package/src/types/delivery.ts +54 -0
- package/src/types/index.ts +1 -0
- package/src/utils/dev-sections/index.ts +17 -0
- package/src/utils/dev-sections/openframe-dev-sections.ts +148 -0
- package/src/utils/index.ts +6 -1
- package/dist/chunk-APM6KBPU.cjs.map +0 -1
- package/dist/chunk-Z3GQGR5E.js.map +0 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkG7UE6RKVcjs = require('./chunk-G7UE6RKV.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkWBR7H6E3cjs = require('./chunk-WBR7H6E3.cjs');
|
|
8
|
+
|
|
9
|
+
// src/embed-shims/index.ts
|
|
10
|
+
_chunkWBR7H6E3cjs.init_next_link.call(void 0, );
|
|
11
|
+
_chunkG7UE6RKVcjs.init_next_navigation.call(void 0, );
|
|
12
|
+
//# sourceMappingURL=chunk-VFKQMAUF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-VFKQMAUF.cjs","../src/embed-shims/index.ts"],"names":[],"mappings":"AAAA,yBAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACmBA,8CAAA,CAAA;AAEA,oDAAA,CAAA","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-VFKQMAUF.cjs","sourcesContent":[null,"/**\n * Barrel for the `embed-shims/` shims.\n *\n * Each shim is environment-aware: by default it renders a plain HTML\n * equivalent so non-Next hosts (Vite, CRA, esbuild) work out of the\n * box. Next.js hosts opt into the REAL Next primitives by calling the\n * `register*` functions ONCE at app init — see each shim's docblock\n * for the host wiring snippet. After registration, every lib component\n * that renders through these shims delegates to the real Next impl\n * (Image Optimization, client-router prefetching, full app-router\n * navigation, etc.) without further config.\n *\n * Lib internals import each shim directly via its relative path\n * (`../embed-shims/next-link`). Hub and external consumers import\n * through this barrel:\n *\n * import { Link, Image, dynamic, useRouter, usePathname } from\n * '@flamingo-stack/openframe-frontend-core/embed-shims'\n *\n * Or per-shim:\n *\n * import Link from '@flamingo-stack/openframe-frontend-core/embed-shims/next-link'\n * import Image from '@flamingo-stack/openframe-frontend-core/embed-shims/next-image'\n *\n * Companion to the docblocks on each individual shim file.\n */\nexport { default as Image, registerImage } from './next-image'\nexport { default as Link, registerLink } from './next-link'\nexport { default as dynamic, registerDynamic } from './next-dynamic'\nexport {\n useRouter,\n usePathname,\n useSearchParams,\n useParams,\n redirect,\n permanentRedirect,\n notFound,\n RedirectType,\n ServerInsertedHTMLContext,\n registerNavigation,\n type NavigationImpl,\n} from './next-navigation'\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ChatCardDispatchExtras } from './entity-cards/dispatch';
|
|
2
|
+
import { type ChatMode, type UseUnifiedChatModes } from './hooks/use-unified-chat';
|
|
2
3
|
export interface EmbeddableChatProps {
|
|
3
4
|
/** Base route for in-app doc chip nav (e.g. `/knowledge-base`). When
|
|
4
5
|
* omitted, defaults are derived from `runtime.source`. */
|
|
@@ -29,10 +30,42 @@ export interface EmbeddableChatProps {
|
|
|
29
30
|
* (programs + product_release). Forwarded straight to
|
|
30
31
|
* `renderChatInlineEntityCard`. */
|
|
31
32
|
extras?: ChatCardDispatchExtras;
|
|
32
|
-
/** Optional callback used by `
|
|
33
|
+
/** Optional callback used by `useSseChatAdapter`'s `displayRef` /
|
|
33
34
|
* `discussRef` flow to translate an LLM document type into the
|
|
34
|
-
* registry table id for entity-id-filtered retrieval.
|
|
35
|
+
* registry table id for entity-id-filtered retrieval.
|
|
36
|
+
*
|
|
37
|
+
* Legacy top-level form. The new shape is `modes.guide.tableIdForDocumentType`.
|
|
38
|
+
* When both are present, `modes` wins. */
|
|
35
39
|
tableIdForDocumentType?: (documentType: string) => string | null;
|
|
40
|
+
/**
|
|
41
|
+
* Per-mode transport configuration. When omitted, the component
|
|
42
|
+
* falls back to legacy guide-only behaviour synthesised from the
|
|
43
|
+
* top-level `tableIdForDocumentType` prop — multi-platform-hub and
|
|
44
|
+
* any other existing consumer keep working with zero changes.
|
|
45
|
+
*
|
|
46
|
+
* When provided, this is the canonical way to wire chat transports:
|
|
47
|
+
*
|
|
48
|
+
* - `modes.guide` → SSE/Guide adapter options (RAG retrieval, hub).
|
|
49
|
+
* - `modes.mingo` → NATS/Mingo adapter config (agent, openframe).
|
|
50
|
+
*
|
|
51
|
+
* Configuring both modes makes the in-panel mode toggle appear so
|
|
52
|
+
* the user can flip between Guide and Mingo without losing either
|
|
53
|
+
* history (each mode keeps its own local thread).
|
|
54
|
+
*/
|
|
55
|
+
modes?: UseUnifiedChatModes;
|
|
56
|
+
/**
|
|
57
|
+
* Controlled active-mode. When provided, `onActiveModeChange` MUST
|
|
58
|
+
* also be provided. For uncontrolled use see `defaultActiveMode`.
|
|
59
|
+
*/
|
|
60
|
+
activeMode?: ChatMode;
|
|
61
|
+
/** Controlled active-mode change handler. Required when `activeMode` is set. */
|
|
62
|
+
onActiveModeChange?: (mode: ChatMode) => void;
|
|
63
|
+
/**
|
|
64
|
+
* Initial active mode for uncontrolled mode. Ignored when `activeMode`
|
|
65
|
+
* is set. Defaults to `'guide'` when `modes.guide` is configured,
|
|
66
|
+
* else `'mingo'`.
|
|
67
|
+
*/
|
|
68
|
+
defaultActiveMode?: ChatMode;
|
|
36
69
|
}
|
|
37
70
|
/**
|
|
38
71
|
* EmbeddableChat — the floating "Ask AI" button + Mingo chat panel.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddable-chat.d.ts","sourceRoot":"","sources":["../../../src/components/chat/embeddable-chat.tsx"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"embeddable-chat.d.ts","sourceRoot":"","sources":["../../../src/components/chat/embeddable-chat.tsx"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAIrE,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAA;AAkCjC,MAAM,WAAW,mBAAmB;IAClC;+DAC2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;4DAGwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;oCAEgC;IAChC,kBAAkB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IACjD,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAC/C;yDACqD;IACrD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;wCAEoC;IACpC,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B;;;;;+CAK2C;IAC3C,sBAAsB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;IAEhE;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAE3B;;;OAGG;IACH,UAAU,CAAC,EAAE,QAAQ,CAAA;IAErB,gFAAgF;IAChF,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;IAE7C;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,QAAQ,CAAA;CAC7B;AA6VD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAExD"}
|
|
@@ -11,6 +11,9 @@ export * from './use-chat-card-item';
|
|
|
11
11
|
export * from './use-close-on-navigation';
|
|
12
12
|
export * from './use-chat';
|
|
13
13
|
export * from './use-sse';
|
|
14
|
+
export * from './use-sse-chat-adapter';
|
|
15
|
+
export * from './use-nats-chat-adapter';
|
|
16
|
+
export * from './use-unified-chat';
|
|
14
17
|
export * from './use-embedded-chat';
|
|
15
18
|
export * from './use-proxied-image-url';
|
|
16
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/index.ts"],"names":[],"mappings":"AAEA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qCAAqC,CAAA;AACnD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAG9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qCAAqC,CAAA;AACnD,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/index.ts"],"names":[],"mappings":"AAEA,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qCAAqC,CAAA;AACnD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAG9C,cAAc,sBAAsB,CAAA;AACpC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qCAAqC,CAAA;AACnD,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AAKzC,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AAMzB,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AAMnC,cAAc,yBAAyB,CAAA"}
|
|
@@ -1,174 +1,15 @@
|
|
|
1
|
-
import { type StreamFnExtraOptions } from './use-chat';
|
|
2
|
-
import type { ChatRef } from '../chat-ref.types';
|
|
3
|
-
import type { MessageSegment } from '../types/message.types';
|
|
4
|
-
import { type ScrollAnchor } from '../utils/scroll-anchor';
|
|
5
|
-
/** Source identifier — opaque string ID (registry lookup happens in the
|
|
6
|
-
* hub-side platform-utils, not in lib). */
|
|
7
|
-
export type DocSource = string;
|
|
8
|
-
export interface ChatSource {
|
|
9
|
-
index: number;
|
|
10
|
-
name: string;
|
|
11
|
-
path: string;
|
|
12
|
-
documentType: string;
|
|
13
|
-
externalUrl?: string;
|
|
14
|
-
/** Platform that owns the destination at `externalUrl`. */
|
|
15
|
-
targetPlatform?: string | null;
|
|
16
|
-
/** Primary-key value for single-row chips. */
|
|
17
|
-
id?: string;
|
|
18
|
-
/** Per-row items for grouped chips. */
|
|
19
|
-
items?: Array<{
|
|
20
|
-
id: string;
|
|
21
|
-
documentType: string;
|
|
22
|
-
name: string;
|
|
23
|
-
externalUrl?: string;
|
|
24
|
-
targetPlatform?: string | null;
|
|
25
|
-
/** In-app doc-tree path for markdown / data-room-doc rows so the
|
|
26
|
-
* grouped chip's anchor can trigger an in-page doc-tree swap via
|
|
27
|
-
* `handleChatNavClick` (parity with single-row chips + cards). */
|
|
28
|
-
path?: string | null;
|
|
29
|
-
}>;
|
|
30
|
-
/** RagTableConfig.id for this source. */
|
|
31
|
-
sourceRepo?: string;
|
|
32
|
-
/** Optional display label override returned by the chat API. */
|
|
33
|
-
label?: string;
|
|
34
|
-
}
|
|
35
|
-
export interface DocChatMessage {
|
|
36
|
-
id: string;
|
|
37
|
-
role: 'user' | 'assistant';
|
|
38
|
-
/** String form for legacy callers that just want the answer text; structured
|
|
39
|
-
* segments include thinking blocks too, which the lib's
|
|
40
|
-
* ChatMessageEnhanced renders as <ThinkingDisplay> cards. */
|
|
41
|
-
content: string;
|
|
42
|
-
/** Structured segments. When set, callers should prefer this over `content`. */
|
|
43
|
-
segments?: MessageSegment[];
|
|
44
|
-
sources?: ChatSource[];
|
|
45
|
-
/** Per-row refs for inline object-card rendering. Keyed by
|
|
46
|
-
* `<documentType>:<primaryKey>`. Populated for assistant messages only. */
|
|
47
|
-
chatRefs?: Record<string, ChatRef>;
|
|
48
|
-
/** Per-message viewport-positioning hint emitted by the server. */
|
|
49
|
-
scrollAnchor?: ScrollAnchor;
|
|
50
|
-
/** When true the message is part of the conversation history but is
|
|
51
|
-
* NOT rendered in the chat UI. */
|
|
52
|
-
hidden?: boolean;
|
|
53
|
-
}
|
|
54
|
-
/** Streaming phase exposed to the chat shell so it can render a "Thinking with
|
|
55
|
-
* Sonnet 4.6 · 200K context window" status row above the input box.
|
|
56
|
-
* - 'idle' → no in-flight turn
|
|
57
|
-
* - 'thinking' → server emitted the leading {status:'thinking'} frame; no
|
|
58
|
-
* text token has arrived yet (adaptive-thinking phase)
|
|
59
|
-
* - 'streaming' → first text token has arrived; model is generating answer */
|
|
60
|
-
export type StreamingPhase = 'idle' | 'thinking' | 'streaming';
|
|
61
|
-
/** Per-turn metadata extracted from the streamed metadata frame. */
|
|
62
|
-
export interface ChatTurnMeta {
|
|
63
|
-
/** Provider key recognized by `<ModelDisplay>` for icon
|
|
64
|
-
* selection: 'anthropic' | 'openai' | 'google' (case-insensitive). */
|
|
65
|
-
provider: string | null;
|
|
66
|
-
modelLabel: string | null;
|
|
67
|
-
contextWindowMaxTokens: number | null;
|
|
68
|
-
/** Input tokens (from message_start). Includes cached tokens. */
|
|
69
|
-
inputTokens: number | null;
|
|
70
|
-
/** Output tokens (from message_delta). Only known after stream end. */
|
|
71
|
-
outputTokens: number | null;
|
|
72
|
-
/** Cache hit % (read / total-input × 100). Only known after stream end. */
|
|
73
|
-
cacheHitRatePct: number | null;
|
|
74
|
-
/** Cross-call usage breakdown extracted from the trailing usage frame. */
|
|
75
|
-
breakdown: {
|
|
76
|
-
haikuRewriter?: {
|
|
77
|
-
input: number;
|
|
78
|
-
output: number;
|
|
79
|
-
};
|
|
80
|
-
haikuClassifier?: {
|
|
81
|
-
input: number;
|
|
82
|
-
output: number;
|
|
83
|
-
};
|
|
84
|
-
haikuSummarizer?: {
|
|
85
|
-
input: number;
|
|
86
|
-
output: number;
|
|
87
|
-
};
|
|
88
|
-
routedAnswer?: {
|
|
89
|
-
model: string;
|
|
90
|
-
complexity: string;
|
|
91
|
-
thinkingBudget: number;
|
|
92
|
-
};
|
|
93
|
-
} | null;
|
|
94
|
-
/** Per-message viewport-positioning hint. */
|
|
95
|
-
scrollAnchor: ScrollAnchor | null;
|
|
96
|
-
/** Routing decision from the server's `decideRoute`. */
|
|
97
|
-
routedComplexity: string | null;
|
|
98
|
-
routedThinkingBudget: number | null;
|
|
99
|
-
}
|
|
100
1
|
/**
|
|
101
|
-
*
|
|
2
|
+
* Backward-compatibility shim.
|
|
102
3
|
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
4
|
+
* The canonical SSE/Guide-mode chat adapter has been renamed to
|
|
5
|
+
* `useSseChatAdapter` and moved to `./use-sse-chat-adapter`. This module
|
|
6
|
+
* re-exports it under the legacy `useEmbeddedChat` name plus the legacy
|
|
7
|
+
* options type, so external consumers and barrel imports keep working
|
|
8
|
+
* without churn.
|
|
106
9
|
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* This makes Ask / Display work out of the box in embedders without
|
|
111
|
-
* any callback wiring.
|
|
112
|
-
*
|
|
113
|
-
* Override only when you have polymorphic / per-tenant document
|
|
114
|
-
* types that map to a different tableId than the default
|
|
115
|
-
* (hub-canonical) registry — pass your own `(docType) => tableId`
|
|
116
|
-
* callback and it wins over the default.
|
|
117
|
-
*/
|
|
118
|
-
export interface UseEmbeddedChatOptions {
|
|
119
|
-
tableIdForDocumentType?: (documentType: string) => string | null;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Stream-driven AI chat hook. Returns the message list, send/stop/clear
|
|
123
|
-
* controls, and per-turn metadata (model name, token counts, routing
|
|
124
|
-
* decision) the lib's `<ChatContainer>` consumes.
|
|
125
|
-
*
|
|
126
|
-
* Source identity comes from `useRequiredChatRuntime().source` — no
|
|
127
|
-
* parameter. Throws if `runtime.source` is empty.
|
|
10
|
+
* Internal lib code should import directly from `./use-sse-chat-adapter`.
|
|
11
|
+
* This shim will be removed once all external consumers migrate to the
|
|
12
|
+
* unified `useChat({ mode })` entry point.
|
|
128
13
|
*/
|
|
129
|
-
export
|
|
130
|
-
messages: DocChatMessage[];
|
|
131
|
-
isLoading: boolean;
|
|
132
|
-
sendMessage: (text: string, options?: StreamFnExtraOptions, messageOptions?: {
|
|
133
|
-
hidden?: boolean;
|
|
134
|
-
}) => void;
|
|
135
|
-
/** "Discuss" affordance for ObjectCard. */
|
|
136
|
-
discussRef: (reference: ChatRef) => void;
|
|
137
|
-
/** "Display" counterpart of `discussRef`. */
|
|
138
|
-
displayRef: (reference: ChatRef) => void;
|
|
139
|
-
stopMessage: () => void;
|
|
140
|
-
clearMessages: () => void;
|
|
141
|
-
streamingPhase: StreamingPhase;
|
|
142
|
-
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
143
|
-
currentProvider: string | null;
|
|
144
|
-
currentModelLabel: string | null;
|
|
145
|
-
currentContextWindowMaxTokens: number | null;
|
|
146
|
-
/** Input tokens (known after server's message_start frame; null until). */
|
|
147
|
-
currentInputTokens: number | null;
|
|
148
|
-
/** Output tokens (known only after server's trailing usage frame). */
|
|
149
|
-
currentOutputTokens: number | null;
|
|
150
|
-
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
151
|
-
currentCacheHitRatePct: number | null;
|
|
152
|
-
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
153
|
-
* token counts). null until the trailing usage frame lands. */
|
|
154
|
-
currentUsageBreakdown: {
|
|
155
|
-
haikuRewriter?: {
|
|
156
|
-
input: number;
|
|
157
|
-
output: number;
|
|
158
|
-
};
|
|
159
|
-
haikuClassifier?: {
|
|
160
|
-
input: number;
|
|
161
|
-
output: number;
|
|
162
|
-
};
|
|
163
|
-
haikuSummarizer?: {
|
|
164
|
-
input: number;
|
|
165
|
-
output: number;
|
|
166
|
-
};
|
|
167
|
-
routedAnswer?: {
|
|
168
|
-
model: string;
|
|
169
|
-
complexity: string;
|
|
170
|
-
thinkingBudget: number;
|
|
171
|
-
};
|
|
172
|
-
} | null;
|
|
173
|
-
};
|
|
14
|
+
export { useSseChatAdapter as useEmbeddedChat, type UseSseChatAdapterOptions as UseEmbeddedChatOptions, type ChatSource, type DocChatMessage, type DocSource, type ChatTurnMeta, type StreamingPhase, } from './use-sse-chat-adapter';
|
|
174
15
|
//# sourceMappingURL=use-embedded-chat.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-embedded-chat.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/use-embedded-chat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-embedded-chat.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/use-embedded-chat.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,iBAAiB,IAAI,eAAe,EACpC,KAAK,wBAAwB,IAAI,sBAAsB,EACvD,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { FetchChunksFunction } from '../types';
|
|
2
|
+
import type { UnifiedChatState } from '../types/unified-chat-state.types';
|
|
3
|
+
/**
|
|
4
|
+
* Consumer-supplied configuration for the NATS chat adapter.
|
|
5
|
+
*
|
|
6
|
+
* Every field is consumer-owned — the lib does not assume a particular
|
|
7
|
+
* backend protocol or auth scheme. Hosts wire these up against their
|
|
8
|
+
* own OpenFrame deployment.
|
|
9
|
+
*/
|
|
10
|
+
export interface UseNatsChatAdapterConfig {
|
|
11
|
+
/**
|
|
12
|
+
* Active conversation/dialog id. When `null` the adapter stays
|
|
13
|
+
* subscription-idle (no NATS connection, no catchup fetch). Set this
|
|
14
|
+
* once the consumer's "open new conversation" flow has allocated an
|
|
15
|
+
* id from the backend.
|
|
16
|
+
*/
|
|
17
|
+
dialogId: string | null;
|
|
18
|
+
/**
|
|
19
|
+
* Build the NATS WebSocket URL. Returning `null` short-circuits the
|
|
20
|
+
* subscription — same contract as `useNatsDialogSubscription`.
|
|
21
|
+
*/
|
|
22
|
+
getNatsWsUrl: () => string | null;
|
|
23
|
+
/**
|
|
24
|
+
* Optional NATS client auth.
|
|
25
|
+
*/
|
|
26
|
+
clientConfig?: {
|
|
27
|
+
name?: string;
|
|
28
|
+
user?: string;
|
|
29
|
+
pass?: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Send a user message upstream. Consumer-owned: typically an
|
|
33
|
+
* authenticated HTTP POST to the OpenFrame chat endpoint, or a
|
|
34
|
+
* direct NATS publish to a dedicated subject.
|
|
35
|
+
*
|
|
36
|
+
* The adapter does NOT couple to the wire format — it only:
|
|
37
|
+
* 1. appends the user message to local state for immediate render
|
|
38
|
+
* 2. flips streamingPhase to 'thinking' so the input UI shows status
|
|
39
|
+
* 3. calls this callback
|
|
40
|
+
*
|
|
41
|
+
* Reply arrives asynchronously as NATS chunks via the live tail and
|
|
42
|
+
* is accumulated into the trailing assistant message.
|
|
43
|
+
*/
|
|
44
|
+
publishUserMessage: (text: string, options: {
|
|
45
|
+
hidden?: boolean;
|
|
46
|
+
dialogId: string | null;
|
|
47
|
+
}) => Promise<void> | void;
|
|
48
|
+
/**
|
|
49
|
+
* Historical-chunk fetcher used by `useChunkCatchup` to back-fill
|
|
50
|
+
* events that happened while the user was in another mode or before
|
|
51
|
+
* the websocket came online. Consumer-owned: typically a REST GET
|
|
52
|
+
* against the OpenFrame chat-history endpoint.
|
|
53
|
+
*
|
|
54
|
+
* When omitted, `useChunkCatchup` falls back to its own default
|
|
55
|
+
* fetch implementation — see hook docs for the contract.
|
|
56
|
+
*/
|
|
57
|
+
fetchChunks?: FetchChunksFunction;
|
|
58
|
+
/**
|
|
59
|
+
* Whether THINKING chunks are surfaced as segments. Default `false`
|
|
60
|
+
* (parity with the existing `useRealtimeChunkProcessor` default).
|
|
61
|
+
*/
|
|
62
|
+
enableThinking?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Mirrors `UseRealtimeChunkProcessorOptions.batchApprovalsEnabled`.
|
|
65
|
+
* Default `true` — single batch card per APPROVAL_REQUEST with
|
|
66
|
+
* `toolCalls[]`. Set `false` to fall back to legacy per-tool cards.
|
|
67
|
+
*/
|
|
68
|
+
batchApprovalsEnabled?: boolean;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Per-call options for `useNatsChatAdapter`. Carries only the
|
|
72
|
+
* activation gate — config travels through the config object so it
|
|
73
|
+
* survives mode swaps without re-mounting.
|
|
74
|
+
*/
|
|
75
|
+
export interface UseNatsChatAdapterOptions {
|
|
76
|
+
/**
|
|
77
|
+
* When `false` the adapter goes idle: no NATS subscription, no
|
|
78
|
+
* catchup fetch, no publish. Local message state is preserved so
|
|
79
|
+
* the user sees their history when the mode flips back to active.
|
|
80
|
+
* Default `true`.
|
|
81
|
+
*/
|
|
82
|
+
active?: boolean;
|
|
83
|
+
}
|
|
84
|
+
export declare function useNatsChatAdapter(config: UseNatsChatAdapterConfig, options?: UseNatsChatAdapterOptions): UnifiedChatState;
|
|
85
|
+
//# sourceMappingURL=use-nats-chat-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-nats-chat-adapter.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/use-nats-chat-adapter.ts"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAEV,mBAAmB,EAIpB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,mCAAmC,CAAA;AAO1C;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAEvB;;;OAGG;IACH,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAEjC;;OAEG;IACH,YAAY,CAAC,EAAE;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;IAED;;;;;;;;;;;;OAYG;IACH,kBAAkB,EAAE,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KACnD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAEzB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAA;IAEjC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AA6CD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,wBAAwB,EAChC,OAAO,GAAE,yBAA8B,GACtC,gBAAgB,CA0KlB"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { ChatRef } from '../chat-ref.types';
|
|
2
|
+
import type { MessageSegment } from '../types/message.types';
|
|
3
|
+
import { type ScrollAnchor } from '../utils/scroll-anchor';
|
|
4
|
+
import type { UnifiedChatState } from '../types/unified-chat-state.types';
|
|
5
|
+
/** Source identifier — opaque string ID (registry lookup happens in the
|
|
6
|
+
* hub-side platform-utils, not in lib). */
|
|
7
|
+
export type DocSource = string;
|
|
8
|
+
export interface ChatSource {
|
|
9
|
+
index: number;
|
|
10
|
+
name: string;
|
|
11
|
+
path: string;
|
|
12
|
+
documentType: string;
|
|
13
|
+
externalUrl?: string;
|
|
14
|
+
/** Platform that owns the destination at `externalUrl`. */
|
|
15
|
+
targetPlatform?: string | null;
|
|
16
|
+
/** Primary-key value for single-row chips. */
|
|
17
|
+
id?: string;
|
|
18
|
+
/** Per-row items for grouped chips. */
|
|
19
|
+
items?: Array<{
|
|
20
|
+
id: string;
|
|
21
|
+
documentType: string;
|
|
22
|
+
name: string;
|
|
23
|
+
externalUrl?: string;
|
|
24
|
+
targetPlatform?: string | null;
|
|
25
|
+
/** In-app doc-tree path for markdown / data-room-doc rows so the
|
|
26
|
+
* grouped chip's anchor can trigger an in-page doc-tree swap via
|
|
27
|
+
* `handleChatNavClick` (parity with single-row chips + cards). */
|
|
28
|
+
path?: string | null;
|
|
29
|
+
}>;
|
|
30
|
+
/** RagTableConfig.id for this source. */
|
|
31
|
+
sourceRepo?: string;
|
|
32
|
+
/** Optional display label override returned by the chat API. */
|
|
33
|
+
label?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface DocChatMessage {
|
|
36
|
+
id: string;
|
|
37
|
+
role: 'user' | 'assistant';
|
|
38
|
+
/** String form for legacy callers that just want the answer text; structured
|
|
39
|
+
* segments include thinking blocks too, which the lib's
|
|
40
|
+
* ChatMessageEnhanced renders as <ThinkingDisplay> cards. */
|
|
41
|
+
content: string;
|
|
42
|
+
/** Structured segments. When set, callers should prefer this over `content`. */
|
|
43
|
+
segments?: MessageSegment[];
|
|
44
|
+
sources?: ChatSource[];
|
|
45
|
+
/** Per-row refs for inline object-card rendering. Keyed by
|
|
46
|
+
* `<documentType>:<primaryKey>`. Populated for assistant messages only. */
|
|
47
|
+
chatRefs?: Record<string, ChatRef>;
|
|
48
|
+
/** Per-message viewport-positioning hint emitted by the server. */
|
|
49
|
+
scrollAnchor?: ScrollAnchor;
|
|
50
|
+
/** When true the message is part of the conversation history but is
|
|
51
|
+
* NOT rendered in the chat UI. */
|
|
52
|
+
hidden?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export type { StreamingPhase } from '../types/unified-chat-state.types';
|
|
55
|
+
/** Per-turn metadata extracted from the streamed metadata frame. */
|
|
56
|
+
export interface ChatTurnMeta {
|
|
57
|
+
/** Provider key recognized by `<ModelDisplay>` for icon
|
|
58
|
+
* selection: 'anthropic' | 'openai' | 'google' (case-insensitive). */
|
|
59
|
+
provider: string | null;
|
|
60
|
+
modelLabel: string | null;
|
|
61
|
+
contextWindowMaxTokens: number | null;
|
|
62
|
+
/** Input tokens (from message_start). Includes cached tokens. */
|
|
63
|
+
inputTokens: number | null;
|
|
64
|
+
/** Output tokens (from message_delta). Only known after stream end. */
|
|
65
|
+
outputTokens: number | null;
|
|
66
|
+
/** Cache hit % (read / total-input × 100). Only known after stream end. */
|
|
67
|
+
cacheHitRatePct: number | null;
|
|
68
|
+
/** Cross-call usage breakdown extracted from the trailing usage frame. */
|
|
69
|
+
breakdown: {
|
|
70
|
+
haikuRewriter?: {
|
|
71
|
+
input: number;
|
|
72
|
+
output: number;
|
|
73
|
+
};
|
|
74
|
+
haikuClassifier?: {
|
|
75
|
+
input: number;
|
|
76
|
+
output: number;
|
|
77
|
+
};
|
|
78
|
+
haikuSummarizer?: {
|
|
79
|
+
input: number;
|
|
80
|
+
output: number;
|
|
81
|
+
};
|
|
82
|
+
routedAnswer?: {
|
|
83
|
+
model: string;
|
|
84
|
+
complexity: string;
|
|
85
|
+
thinkingBudget: number;
|
|
86
|
+
};
|
|
87
|
+
} | null;
|
|
88
|
+
/** Per-message viewport-positioning hint. */
|
|
89
|
+
scrollAnchor: ScrollAnchor | null;
|
|
90
|
+
/** Routing decision from the server's `decideRoute`. */
|
|
91
|
+
routedComplexity: string | null;
|
|
92
|
+
routedThinkingBudget: number | null;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Optional dependency-injection options for `useSseChatAdapter`.
|
|
96
|
+
*
|
|
97
|
+
* - `tableIdForDocumentType` — looks up the RagTableConfig.id for an
|
|
98
|
+
* LLM document type. Used by `displayRef` + `discussRef` to translate
|
|
99
|
+
* an inline-card click into a server-side entity-id filter.
|
|
100
|
+
*
|
|
101
|
+
* **Defaults to `defaultTableIdForDocumentType` from
|
|
102
|
+
* `src/utils/source-icons.ts`** — a lib-baked map covering every
|
|
103
|
+
* documentType currently registered in the hub's RAG_TABLE_CONFIGS.
|
|
104
|
+
* This makes Ask / Display work out of the box in embedders without
|
|
105
|
+
* any callback wiring.
|
|
106
|
+
*
|
|
107
|
+
* Override only when you have polymorphic / per-tenant document
|
|
108
|
+
* types that map to a different tableId than the default
|
|
109
|
+
* (hub-canonical) registry — pass your own `(docType) => tableId`
|
|
110
|
+
* callback and it wins over the default.
|
|
111
|
+
*/
|
|
112
|
+
export interface UseSseChatAdapterOptions {
|
|
113
|
+
tableIdForDocumentType?: (documentType: string) => string | null;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Stream-driven AI chat hook. Returns the message list, send/stop/clear
|
|
117
|
+
* controls, and per-turn metadata (model name, token counts, routing
|
|
118
|
+
* decision) the lib's `<ChatContainer>` consumes.
|
|
119
|
+
*
|
|
120
|
+
* Source identity comes from `useRequiredChatRuntime().source` — no
|
|
121
|
+
* parameter. Throws if `runtime.source` is empty.
|
|
122
|
+
*/
|
|
123
|
+
export declare function useSseChatAdapter(options?: UseSseChatAdapterOptions): UnifiedChatState;
|
|
124
|
+
//# sourceMappingURL=use-sse-chat-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-sse-chat-adapter.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/use-sse-chat-adapter.ts"],"names":[],"mappings":"AA2CA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAI5D,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAK7E,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,mCAAmC,CAAA;AAM1C;4CAC4C;AAC5C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAA;AAE9B,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,8CAA8C;IAC9C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,uCAAuC;IACvC,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAA;QACV,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE,MAAM,CAAA;QACZ,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QAC9B;;2EAEmE;QACnE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KACrB,CAAC,CAAA;IACF,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B;;kEAE8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,gFAAgF;IAChF,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAA;IAC3B,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;IACtB;gFAC4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,mEAAmE;IACnE,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B;uCACmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAKD,YAAY,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAEvE,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B;2EACuE;IACvE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC,iEAAiE;IACjE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,uEAAuE;IACvE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,2EAA2E;IAC3E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,0EAA0E;IAC1E,SAAS,EAAE;QACT,aAAa,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;QACjD,eAAe,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;QACnD,eAAe,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;QACnD,YAAY,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAA;KAC7E,GAAG,IAAI,CAAA;IACR,6CAA6C;IAC7C,YAAY,EAAE,YAAY,GAAG,IAAI,CAAA;IACjC,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,wBAAwB;IACvC,sBAAsB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;CACjE;AA+eD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,CAAC,EAAE,wBAAwB,GACjC,gBAAgB,CAgYlB"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type UseSseChatAdapterOptions } from './use-sse-chat-adapter';
|
|
2
|
+
import { type UseNatsChatAdapterConfig } from './use-nats-chat-adapter';
|
|
3
|
+
import type { UnifiedChatState } from '../types/unified-chat-state.types';
|
|
4
|
+
/** Discriminator for the active transport mode. */
|
|
5
|
+
export type ChatMode = 'guide' | 'mingo';
|
|
6
|
+
/**
|
|
7
|
+
* Per-mode configuration. Each slot is optional — consumers that only
|
|
8
|
+
* need one mode leave the other undefined. The active mode MUST have
|
|
9
|
+
* its config populated; passing `activeMode: 'mingo'` while `modes.mingo`
|
|
10
|
+
* is undefined is a programming error and surfaces as a thrown
|
|
11
|
+
* `sendMessage`.
|
|
12
|
+
*/
|
|
13
|
+
export interface UseUnifiedChatModes {
|
|
14
|
+
/**
|
|
15
|
+
* Guide mode (SSE → hub). Currently `useSseChatAdapter` reads its
|
|
16
|
+
* config from the ambient `ChatRuntimeContext` rather than props,
|
|
17
|
+
* so this slot is just an opt-in flag plus its adapter options.
|
|
18
|
+
* The presence of the key signals "guide mode is configured".
|
|
19
|
+
*/
|
|
20
|
+
guide?: UseSseChatAdapterOptions;
|
|
21
|
+
/**
|
|
22
|
+
* Mingo mode (NATS → openframe). All wiring is explicit: dialog id,
|
|
23
|
+
* NATS URL builder, publish callback, optional catchup fetcher.
|
|
24
|
+
* See `UseNatsChatAdapterConfig` for the field-by-field contract.
|
|
25
|
+
*/
|
|
26
|
+
mingo?: UseNatsChatAdapterConfig;
|
|
27
|
+
}
|
|
28
|
+
export interface UseUnifiedChatOptions {
|
|
29
|
+
modes: UseUnifiedChatModes;
|
|
30
|
+
activeMode: ChatMode;
|
|
31
|
+
}
|
|
32
|
+
export declare function useUnifiedChat(options: UseUnifiedChatOptions): UnifiedChatState;
|
|
33
|
+
//# sourceMappingURL=use-unified-chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-unified-chat.d.ts","sourceRoot":"","sources":["../../../../src/components/chat/hooks/use-unified-chat.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACzF,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AAMzE,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAA;AAExC;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,KAAK,CAAC,EAAE,wBAAwB,CAAA;IAEhC;;;;OAIG;IACH,KAAK,CAAC,EAAE,wBAAwB,CAAA;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,mBAAmB,CAAA;IAC1B,UAAU,EAAE,QAAQ,CAAA;CACrB;AAyBD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,qBAAqB,GAC7B,gBAAgB,CAiFlB"}
|
|
@@ -187,11 +187,14 @@
|
|
|
187
187
|
|
|
188
188
|
|
|
189
189
|
|
|
190
|
-
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
var _chunkC5EC5AZMcjs = require('../../chunk-C5EC5AZM.cjs');
|
|
191
193
|
require('../../chunk-JUZGUQMX.cjs');
|
|
192
194
|
require('../../chunk-VJTFBYVG.cjs');
|
|
193
195
|
require('../../chunk-6RZYJICV.cjs');
|
|
194
196
|
require('../../chunk-27APPAJN.cjs');
|
|
197
|
+
require('../../chunk-VFKQMAUF.cjs');
|
|
195
198
|
require('../../chunk-G7UE6RKV.cjs');
|
|
196
199
|
require('../../chunk-XL4V2PYG.cjs');
|
|
197
200
|
require('../../chunk-BZFW3FOF.cjs');
|
|
@@ -389,5 +392,8 @@ require('../../chunk-VRHGVLSL.cjs');
|
|
|
389
392
|
|
|
390
393
|
|
|
391
394
|
|
|
392
|
-
exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = _chunkAPM6KBPUcjs.ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.APPROVAL_STATUS = _chunkAPM6KBPUcjs.APPROVAL_STATUS; exports.ASSISTANT_TYPE = _chunkAPM6KBPUcjs.ASSISTANT_TYPE; exports.AUTHOR_TYPE = _chunkAPM6KBPUcjs.AUTHOR_TYPE; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = _chunkAPM6KBPUcjs.AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.AdminContentCard = _chunkAPM6KBPUcjs.AdminContentCard; exports.ApprovalBatchMessage = _chunkAPM6KBPUcjs.ApprovalBatchMessage; exports.ApprovalRequestMessage = _chunkAPM6KBPUcjs.ApprovalRequestMessage; exports.ArgRow = _chunkAPM6KBPUcjs.ArgRow; exports.BlockCard = _chunkAPM6KBPUcjs.BlockCard; exports.BlogCard = _chunkAPM6KBPUcjs.BlogCard; exports.BlogCardSkeleton = _chunkAPM6KBPUcjs.BlogCardSkeleton; exports.BlogImagePlaceholder = _chunkAPM6KBPUcjs.BlogImagePlaceholder; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = _chunkAPM6KBPUcjs.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = _chunkAPM6KBPUcjs.CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.CHAT_ATTACHMENT_MIME_TYPES = _chunkAPM6KBPUcjs.CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = _chunkAPM6KBPUcjs.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = _chunkAPM6KBPUcjs.CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = _chunkAPM6KBPUcjs.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_TYPE = _chunkAPM6KBPUcjs.CHAT_TYPE; exports.CHIP_ACTION_BUTTON_CLASS = _chunkAPM6KBPUcjs.CHIP_ACTION_BUTTON_CLASS; exports.COMPACT_CARD_ICON_SLOT = _chunkAPM6KBPUcjs.COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_IMAGE_SLOT = _chunkAPM6KBPUcjs.COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_META_ROW = _chunkAPM6KBPUcjs.COMPACT_CARD_META_ROW; exports.COMPACT_CARD_META_ROW_BOX = _chunkAPM6KBPUcjs.COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_OUTER = _chunkAPM6KBPUcjs.COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = _chunkAPM6KBPUcjs.COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_ROW_FILLER = _chunkAPM6KBPUcjs.COMPACT_CARD_ROW_FILLER; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = _chunkAPM6KBPUcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_OUTER = _chunkAPM6KBPUcjs.COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_SUBTITLE = _chunkAPM6KBPUcjs.COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = _chunkAPM6KBPUcjs.COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_TEXT_COL = _chunkAPM6KBPUcjs.COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE = _chunkAPM6KBPUcjs.COMPACT_CARD_TITLE; exports.COMPACT_CARD_TITLE_ROW = _chunkAPM6KBPUcjs.COMPACT_CARD_TITLE_ROW; exports.CONNECTION_STATUS = _chunkAPM6KBPUcjs.CONNECTION_STATUS; exports.CUSTOM_ITEM_ID = _chunkAPM6KBPUcjs.CUSTOM_ITEM_ID; exports.CampaignCardAdmin = _chunkAPM6KBPUcjs.CampaignCardAdmin; exports.CampaignCardAdminSkeleton = _chunkAPM6KBPUcjs.CampaignCardAdminSkeleton; exports.CaseStudyCard = _chunkAPM6KBPUcjs.CaseStudyCard; exports.CaseStudyCardSkeleton = _chunkAPM6KBPUcjs.CaseStudyCardSkeleton; exports.ChatAttachmentAddButton = _chunkAPM6KBPUcjs.ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = _chunkAPM6KBPUcjs.ChatAttachmentChipStrip; exports.ChatCardLoader = _chunkAPM6KBPUcjs.ChatCardLoader; exports.ChatContainer = _chunkAPM6KBPUcjs.ChatContainer; exports.ChatContent = _chunkAPM6KBPUcjs.ChatContent; exports.ChatFooter = _chunkAPM6KBPUcjs.ChatFooter; exports.ChatHeader = _chunkAPM6KBPUcjs.ChatHeader; exports.ChatInput = _chunkAPM6KBPUcjs.ChatInput; exports.ChatMessageEnhanced = _chunkAPM6KBPUcjs.MemoizedChatMessageEnhanced; exports.ChatMessageList = _chunkAPM6KBPUcjs.ChatMessageList; exports.ChatQuickAction = _chunkAPM6KBPUcjs.ChatQuickAction; exports.ChatSidebar = _chunkAPM6KBPUcjs.ChatSidebar; exports.ChatTicketItem = _chunkAPM6KBPUcjs.ChatTicketItem; exports.ChatTicketList = _chunkAPM6KBPUcjs.ChatTicketList; exports.ChatTypingIndicator = _chunkAPM6KBPUcjs.ChatTypingIndicator; exports.ChatVideoEntityCard = _chunkAPM6KBPUcjs.ChatVideoEntityCard; exports.ContextCompactionDisplay = _chunkAPM6KBPUcjs.ContextCompactionDisplay; exports.CustomerInterviewCard = _chunkAPM6KBPUcjs.CustomerInterviewCard; exports.CustomerInterviewCardSkeleton = _chunkAPM6KBPUcjs.CustomerInterviewCardSkeleton; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = _chunkAPM6KBPUcjs.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.DataRoomDocCard = _chunkAPM6KBPUcjs.DataRoomDocCard; exports.DataRoomDocCardSkeleton = _chunkAPM6KBPUcjs.DataRoomDocCardSkeleton; exports.DialogListItem = _chunkAPM6KBPUcjs.DialogListItem; exports.EMPTY_AUTHOR_PLACEHOLDER = _chunkAPM6KBPUcjs.EMPTY_AUTHOR_PLACEHOLDER; exports.EmbeddableChat = _chunkAPM6KBPUcjs.EmbeddableChat; exports.EntityAuthorCard = _chunkAPM6KBPUcjs.EntityAuthorCard; exports.EntityMetadataAuthorCell = _chunkAPM6KBPUcjs.EntityMetadataAuthorCell; exports.EntityMetadataValueCell = _chunkAPM6KBPUcjs.EntityMetadataValueCell; exports.ErrorMessageDisplay = _chunkAPM6KBPUcjs.ErrorMessageDisplay; exports.ExpandChevron = _chunkAPM6KBPUcjs.ExpandChevron; exports.GenericEntityCard = _chunkAPM6KBPUcjs.GenericEntityCard; exports.GenericEntityCardSkeleton = _chunkAPM6KBPUcjs.GenericEntityCardSkeleton; exports.GitHubActivityCard = _chunkAPM6KBPUcjs.GitHubActivityCard; exports.GitHubActivityCardSkeleton = _chunkAPM6KBPUcjs.GitHubActivityCardSkeleton; exports.HubspotTicketCard = _chunkAPM6KBPUcjs.HubspotTicketCard; exports.HubspotTicketCardSkeleton = _chunkAPM6KBPUcjs.HubspotTicketCardSkeleton; exports.ICON_REGISTRY = _chunkAPM6KBPUcjs.ICON_REGISTRY; exports.InvestorUpdateCard = _chunkAPM6KBPUcjs.InvestorUpdateCard; exports.InvestorUpdateCardSkeleton = _chunkAPM6KBPUcjs.InvestorUpdateCardSkeleton; exports.MESSAGE_ROLE = _chunkAPM6KBPUcjs.MESSAGE_ROLE; exports.MESSAGE_TYPE = _chunkAPM6KBPUcjs.MESSAGE_TYPE; exports.MessageSegmentAccumulator = _chunkAPM6KBPUcjs.MessageSegmentAccumulator; exports.ModelDisplay = _chunkAPM6KBPUcjs.ModelDisplay; exports.NETWORK_CONFIG = _chunkAPM6KBPUcjs.NETWORK_CONFIG; exports.NEW_TAB_FEATURES = _chunkAPM6KBPUcjs.NEW_TAB_FEATURES; exports.NavLinkAnchorViaRuntime = _chunkAPM6KBPUcjs.NavLinkAnchorViaRuntime; exports.OWNER_TYPE = _chunkAPM6KBPUcjs.OWNER_TYPE; exports.OnboardingGuideCard = _chunkAPM6KBPUcjs.OnboardingGuideCard; exports.OnboardingGuideCardSkeleton = _chunkAPM6KBPUcjs.OnboardingGuideCardSkeleton; exports.ProductReleaseCard = _chunkAPM6KBPUcjs.ProductReleaseCard; exports.ProductReleaseCardSkeleton = _chunkAPM6KBPUcjs.ProductReleaseCardSkeleton; exports.ProgramCard = _chunkAPM6KBPUcjs.ProgramCard; exports.ProgramCardSkeleton = _chunkAPM6KBPUcjs.ProgramCardSkeleton; exports.ResultBlock = _chunkAPM6KBPUcjs.ResultBlock; exports.RoadmapCard = _chunkAPM6KBPUcjs.RoadmapCard; exports.RoadmapCardSkeleton = _chunkAPM6KBPUcjs.RoadmapCardSkeleton; exports.RoadmapVoteButton = _chunkAPM6KBPUcjs.RoadmapVoteButton; exports.SCROLL_ANCHOR = _chunkAPM6KBPUcjs.SCROLL_ANCHOR; exports.SCROLL_ANCHOR_WIRE_KEY = _chunkAPM6KBPUcjs.SCROLL_ANCHOR_WIRE_KEY; exports.SOURCE_ICON_NAMES = _chunkAPM6KBPUcjs.SOURCE_ICON_NAMES; exports.SOURCE_LABELS_BY_TABLE = _chunkAPM6KBPUcjs.SOURCE_LABELS_BY_TABLE; exports.SlackMessageCard = _chunkAPM6KBPUcjs.SlackMessageCard; exports.SlackMessageCardSkeleton = _chunkAPM6KBPUcjs.SlackMessageCardSkeleton; exports.SlashCommandSuggestions = _chunkAPM6KBPUcjs.SlashCommandSuggestions; exports.SourceActionButton = _chunkAPM6KBPUcjs.SourceActionButton; exports.TaskTypeIcon = _chunkAPM6KBPUcjs.TaskTypeIcon; exports.ThinkingDisplay = _chunkAPM6KBPUcjs.ThinkingDisplay; exports.ToolExecutionDisplay = _chunkAPM6KBPUcjs.ToolExecutionDisplay; exports.applyProxyAuth = _chunkAPM6KBPUcjs.applyProxyAuth; exports.buildAnchorProps = _chunkAPM6KBPUcjs.buildAnchorProps; exports.buildAutoContinuationDirective = _chunkAPM6KBPUcjs.buildAutoContinuationDirective; exports.buildChatAttachmentViewUrl = _chunkAPM6KBPUcjs.buildChatAttachmentViewUrl; exports.buildChatRefKey = _chunkAPM6KBPUcjs.buildChatRefKey; exports.buildDiscussAddendum = _chunkAPM6KBPUcjs.buildDiscussAddendum; exports.buildNatsWsUrl = _chunkAPM6KBPUcjs.buildNatsWsUrl; exports.chatAuthedFetch = _chunkAPM6KBPUcjs.chatAuthedFetch; exports.chatChipClass = _chunkAPM6KBPUcjs.chatChipClass; exports.clearChatProxyAuth = _chunkAPM6KBPUcjs.clearChatProxyAuth; exports.clickupTaskUrl = _chunkAPM6KBPUcjs.clickupTaskUrl; exports.computeIsNewTab = _chunkAPM6KBPUcjs.computeIsNewTab; exports.createMessageSegmentAccumulator = _chunkAPM6KBPUcjs.createMessageSegmentAccumulator; exports.decideNewTab = _chunkAPM6KBPUcjs.decideNewTab; exports.defaultTableIdForDocumentType = _chunkAPM6KBPUcjs.defaultTableIdForDocumentType; exports.escapeMarkdownInline = _chunkAPM6KBPUcjs.escapeMarkdownInline; exports.extractEntityIdFilter = _chunkAPM6KBPUcjs.extractEntityIdFilter; exports.extractErrorMessages = _chunkAPM6KBPUcjs.extractErrorMessages; exports.extractIncompleteMessageState = _chunkAPM6KBPUcjs.extractIncompleteMessageState; exports.extractTextFromChunk = _chunkAPM6KBPUcjs.extractTextFromChunk; exports.fetchSlashCommands = _chunkAPM6KBPUcjs.fetchSlashCommands; exports.flattenAssistantContent = _chunkAPM6KBPUcjs.flattenAssistantContent; exports.formatChatAttachmentMarkdownForBubble = _chunkAPM6KBPUcjs.formatChatAttachmentMarkdownForBubble; exports.formatInvestorUpdatePeriod = _chunkAPM6KBPUcjs.formatInvestorUpdatePeriod; exports.formatSingularLookupInvocation = _chunkAPM6KBPUcjs.formatSingularLookupInvocation; exports.getChatProxyAuth = _chunkAPM6KBPUcjs.getChatProxyAuth; exports.getCommandText = _chunkAPM6KBPUcjs.getCommandText; exports.getDynamicIcon = _chunkAPM6KBPUcjs.getDynamicIcon; exports.getIconComponent = _chunkAPM6KBPUcjs.getIconComponent; exports.getPersistedProxyEmail = _chunkAPM6KBPUcjs.getPersistedProxyEmail; exports.getSourceIconName = _chunkAPM6KBPUcjs.getSourceIconName; exports.getSourceLabel = _chunkAPM6KBPUcjs.getSourceLabel; exports.getStatusColorScheme = _chunkAPM6KBPUcjs.getStatusColorScheme; exports.getTaskTypeLabel = _chunkAPM6KBPUcjs.getTaskTypeLabel; exports.handleChatNavClick = _chunkAPM6KBPUcjs.handleChatNavClick; exports.isControlChunk = _chunkAPM6KBPUcjs.isControlChunk; exports.isCrossOriginUrl = _chunkAPM6KBPUcjs.isCrossOriginUrl; exports.isErrorChunk = _chunkAPM6KBPUcjs.isErrorChunk; exports.isMetadataChunk = _chunkAPM6KBPUcjs.isMetadataChunk; exports.isModifierClick = _chunkAPM6KBPUcjs.isModifierClick; exports.isStructuredContent = _chunkAPM6KBPUcjs.isStructuredContent; exports.newTabAnchorAttrs = _chunkAPM6KBPUcjs.newTabAnchorAttrs; exports.normalizeContent = _chunkAPM6KBPUcjs.normalizeContent; exports.normalizeIconKey = _chunkAPM6KBPUcjs.normalizeIconKey; exports.parseChunkToAction = _chunkAPM6KBPUcjs.parseChunkToAction; exports.parseScrollAnchor = _chunkAPM6KBPUcjs.parseScrollAnchor; exports.parseWireCommandOverride = _chunkAPM6KBPUcjs.parseWireCommandOverride; exports.processHistoricalMessages = _chunkAPM6KBPUcjs.processHistoricalMessages; exports.processHistoricalMessagesWithErrors = _chunkAPM6KBPUcjs.processHistoricalMessagesWithErrors; exports.remarkCardLinks = _chunkAPM6KBPUcjs.remarkCardLinks; exports.renderChatInlineEntityCard = _chunkAPM6KBPUcjs.renderChatInlineEntityCard; exports.resolveExternalNavigation = _chunkAPM6KBPUcjs.resolveExternalNavigation; exports.resolveSourceIcon = _chunkAPM6KBPUcjs.resolveSourceIcon; exports.resolveSourceRowCTA = _chunkAPM6KBPUcjs.resolveSourceRowCTA; exports.safeHref = _chunkAPM6KBPUcjs.safeHref; exports.sanitizeTitleForChat = _chunkAPM6KBPUcjs.sanitizeTitleForChat; exports.setChatProxyAuth = _chunkAPM6KBPUcjs.setChatProxyAuth; exports.stripChatAttachmentMarkdown = _chunkAPM6KBPUcjs.stripChatAttachmentMarkdown; exports.stripSameOriginToPath = _chunkAPM6KBPUcjs.stripSameOriginToPath; exports.transformEventToProgram = _chunkAPM6KBPUcjs.transformEventToProgram; exports.transformPodcastToProgram = _chunkAPM6KBPUcjs.transformPodcastToProgram; exports.transformWebinarToProgram = _chunkAPM6KBPUcjs.transformWebinarToProgram; exports.useChat = _chunkAPM6KBPUcjs.useChat; exports.useChatAttachmentImageGallery = _chunkAPM6KBPUcjs.useChatAttachmentImageGallery; exports.useChatAttachments = _chunkAPM6KBPUcjs.useChatAttachments; exports.useChatCardItem = _chunkAPM6KBPUcjs.useChatCardItem; exports.useChatIdentity = _chunkAPM6KBPUcjs.useChatIdentity; exports.useChunkCatchup = _chunkAPM6KBPUcjs.useChunkCatchup; exports.useCloseOnNavigation = _chunkAPM6KBPUcjs.useCloseOnNavigation; exports.useCollapsible = _chunkAPM6KBPUcjs.useCollapsible; exports.useEmbeddedChat = _chunkAPM6KBPUcjs.useEmbeddedChat; exports.useJetStreamDialogSubscription = _chunkAPM6KBPUcjs.useJetStreamDialogSubscription; exports.useNatsDialogSubscription = _chunkAPM6KBPUcjs.useNatsDialogSubscription; exports.useProxiedImageUrl = _chunkAPM6KBPUcjs.useProxiedImageUrl; exports.useRealtimeChunkProcessor = _chunkAPM6KBPUcjs.useRealtimeChunkProcessor; exports.useSSE = _chunkAPM6KBPUcjs.useSSE; exports.useSlashCommands = _chunkAPM6KBPUcjs.useSlashCommands;
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = _chunkC5EC5AZMcjs.ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.APPROVAL_STATUS = _chunkC5EC5AZMcjs.APPROVAL_STATUS; exports.ASSISTANT_TYPE = _chunkC5EC5AZMcjs.ASSISTANT_TYPE; exports.AUTHOR_TYPE = _chunkC5EC5AZMcjs.AUTHOR_TYPE; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = _chunkC5EC5AZMcjs.AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.AdminContentCard = _chunkC5EC5AZMcjs.AdminContentCard; exports.ApprovalBatchMessage = _chunkC5EC5AZMcjs.ApprovalBatchMessage; exports.ApprovalRequestMessage = _chunkC5EC5AZMcjs.ApprovalRequestMessage; exports.ArgRow = _chunkC5EC5AZMcjs.ArgRow; exports.BlockCard = _chunkC5EC5AZMcjs.BlockCard; exports.BlogCard = _chunkC5EC5AZMcjs.BlogCard; exports.BlogCardSkeleton = _chunkC5EC5AZMcjs.BlogCardSkeleton; exports.BlogImagePlaceholder = _chunkC5EC5AZMcjs.BlogImagePlaceholder; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = _chunkC5EC5AZMcjs.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = _chunkC5EC5AZMcjs.CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.CHAT_ATTACHMENT_MIME_TYPES = _chunkC5EC5AZMcjs.CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = _chunkC5EC5AZMcjs.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = _chunkC5EC5AZMcjs.CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = _chunkC5EC5AZMcjs.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_TYPE = _chunkC5EC5AZMcjs.CHAT_TYPE; exports.CHIP_ACTION_BUTTON_CLASS = _chunkC5EC5AZMcjs.CHIP_ACTION_BUTTON_CLASS; exports.COMPACT_CARD_ICON_SLOT = _chunkC5EC5AZMcjs.COMPACT_CARD_ICON_SLOT; exports.COMPACT_CARD_IMAGE_SLOT = _chunkC5EC5AZMcjs.COMPACT_CARD_IMAGE_SLOT; exports.COMPACT_CARD_META_ROW = _chunkC5EC5AZMcjs.COMPACT_CARD_META_ROW; exports.COMPACT_CARD_META_ROW_BOX = _chunkC5EC5AZMcjs.COMPACT_CARD_META_ROW_BOX; exports.COMPACT_CARD_OUTER = _chunkC5EC5AZMcjs.COMPACT_CARD_OUTER; exports.COMPACT_CARD_OUTER_STATIC = _chunkC5EC5AZMcjs.COMPACT_CARD_OUTER_STATIC; exports.COMPACT_CARD_ROW_FILLER = _chunkC5EC5AZMcjs.COMPACT_CARD_ROW_FILLER; exports.COMPACT_CARD_SKELETON_IMAGE_SLOT = _chunkC5EC5AZMcjs.COMPACT_CARD_SKELETON_IMAGE_SLOT; exports.COMPACT_CARD_SKELETON_OUTER = _chunkC5EC5AZMcjs.COMPACT_CARD_SKELETON_OUTER; exports.COMPACT_CARD_SUBTITLE = _chunkC5EC5AZMcjs.COMPACT_CARD_SUBTITLE; exports.COMPACT_CARD_SUMMARY = _chunkC5EC5AZMcjs.COMPACT_CARD_SUMMARY; exports.COMPACT_CARD_TEXT_COL = _chunkC5EC5AZMcjs.COMPACT_CARD_TEXT_COL; exports.COMPACT_CARD_TITLE = _chunkC5EC5AZMcjs.COMPACT_CARD_TITLE; exports.COMPACT_CARD_TITLE_ROW = _chunkC5EC5AZMcjs.COMPACT_CARD_TITLE_ROW; exports.CONNECTION_STATUS = _chunkC5EC5AZMcjs.CONNECTION_STATUS; exports.CUSTOM_ITEM_ID = _chunkC5EC5AZMcjs.CUSTOM_ITEM_ID; exports.CampaignCardAdmin = _chunkC5EC5AZMcjs.CampaignCardAdmin; exports.CampaignCardAdminSkeleton = _chunkC5EC5AZMcjs.CampaignCardAdminSkeleton; exports.CaseStudyCard = _chunkC5EC5AZMcjs.CaseStudyCard; exports.CaseStudyCardSkeleton = _chunkC5EC5AZMcjs.CaseStudyCardSkeleton; exports.ChatAttachmentAddButton = _chunkC5EC5AZMcjs.ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = _chunkC5EC5AZMcjs.ChatAttachmentChipStrip; exports.ChatCardLoader = _chunkC5EC5AZMcjs.ChatCardLoader; exports.ChatContainer = _chunkC5EC5AZMcjs.ChatContainer; exports.ChatContent = _chunkC5EC5AZMcjs.ChatContent; exports.ChatFooter = _chunkC5EC5AZMcjs.ChatFooter; exports.ChatHeader = _chunkC5EC5AZMcjs.ChatHeader; exports.ChatInput = _chunkC5EC5AZMcjs.ChatInput; exports.ChatMessageEnhanced = _chunkC5EC5AZMcjs.MemoizedChatMessageEnhanced; exports.ChatMessageList = _chunkC5EC5AZMcjs.ChatMessageList; exports.ChatQuickAction = _chunkC5EC5AZMcjs.ChatQuickAction; exports.ChatSidebar = _chunkC5EC5AZMcjs.ChatSidebar; exports.ChatTicketItem = _chunkC5EC5AZMcjs.ChatTicketItem; exports.ChatTicketList = _chunkC5EC5AZMcjs.ChatTicketList; exports.ChatTypingIndicator = _chunkC5EC5AZMcjs.ChatTypingIndicator; exports.ChatVideoEntityCard = _chunkC5EC5AZMcjs.ChatVideoEntityCard; exports.ContextCompactionDisplay = _chunkC5EC5AZMcjs.ContextCompactionDisplay; exports.CustomerInterviewCard = _chunkC5EC5AZMcjs.CustomerInterviewCard; exports.CustomerInterviewCardSkeleton = _chunkC5EC5AZMcjs.CustomerInterviewCardSkeleton; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = _chunkC5EC5AZMcjs.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.DataRoomDocCard = _chunkC5EC5AZMcjs.DataRoomDocCard; exports.DataRoomDocCardSkeleton = _chunkC5EC5AZMcjs.DataRoomDocCardSkeleton; exports.DialogListItem = _chunkC5EC5AZMcjs.DialogListItem; exports.EMPTY_AUTHOR_PLACEHOLDER = _chunkC5EC5AZMcjs.EMPTY_AUTHOR_PLACEHOLDER; exports.EmbeddableChat = _chunkC5EC5AZMcjs.EmbeddableChat; exports.EntityAuthorCard = _chunkC5EC5AZMcjs.EntityAuthorCard; exports.EntityMetadataAuthorCell = _chunkC5EC5AZMcjs.EntityMetadataAuthorCell; exports.EntityMetadataValueCell = _chunkC5EC5AZMcjs.EntityMetadataValueCell; exports.ErrorMessageDisplay = _chunkC5EC5AZMcjs.ErrorMessageDisplay; exports.ExpandChevron = _chunkC5EC5AZMcjs.ExpandChevron; exports.GenericEntityCard = _chunkC5EC5AZMcjs.GenericEntityCard; exports.GenericEntityCardSkeleton = _chunkC5EC5AZMcjs.GenericEntityCardSkeleton; exports.GitHubActivityCard = _chunkC5EC5AZMcjs.GitHubActivityCard; exports.GitHubActivityCardSkeleton = _chunkC5EC5AZMcjs.GitHubActivityCardSkeleton; exports.HubspotTicketCard = _chunkC5EC5AZMcjs.HubspotTicketCard; exports.HubspotTicketCardSkeleton = _chunkC5EC5AZMcjs.HubspotTicketCardSkeleton; exports.ICON_REGISTRY = _chunkC5EC5AZMcjs.ICON_REGISTRY; exports.InvestorUpdateCard = _chunkC5EC5AZMcjs.InvestorUpdateCard; exports.InvestorUpdateCardSkeleton = _chunkC5EC5AZMcjs.InvestorUpdateCardSkeleton; exports.MESSAGE_ROLE = _chunkC5EC5AZMcjs.MESSAGE_ROLE; exports.MESSAGE_TYPE = _chunkC5EC5AZMcjs.MESSAGE_TYPE; exports.MessageSegmentAccumulator = _chunkC5EC5AZMcjs.MessageSegmentAccumulator; exports.ModelDisplay = _chunkC5EC5AZMcjs.ModelDisplay; exports.NETWORK_CONFIG = _chunkC5EC5AZMcjs.NETWORK_CONFIG; exports.NEW_TAB_FEATURES = _chunkC5EC5AZMcjs.NEW_TAB_FEATURES; exports.NavLinkAnchorViaRuntime = _chunkC5EC5AZMcjs.NavLinkAnchorViaRuntime; exports.OWNER_TYPE = _chunkC5EC5AZMcjs.OWNER_TYPE; exports.OnboardingGuideCard = _chunkC5EC5AZMcjs.OnboardingGuideCard; exports.OnboardingGuideCardSkeleton = _chunkC5EC5AZMcjs.OnboardingGuideCardSkeleton; exports.ProductReleaseCard = _chunkC5EC5AZMcjs.ProductReleaseCard; exports.ProductReleaseCardSkeleton = _chunkC5EC5AZMcjs.ProductReleaseCardSkeleton; exports.ProgramCard = _chunkC5EC5AZMcjs.ProgramCard; exports.ProgramCardSkeleton = _chunkC5EC5AZMcjs.ProgramCardSkeleton; exports.ResultBlock = _chunkC5EC5AZMcjs.ResultBlock; exports.RoadmapCard = _chunkC5EC5AZMcjs.RoadmapCard; exports.RoadmapCardSkeleton = _chunkC5EC5AZMcjs.RoadmapCardSkeleton; exports.RoadmapVoteButton = _chunkC5EC5AZMcjs.RoadmapVoteButton; exports.SCROLL_ANCHOR = _chunkC5EC5AZMcjs.SCROLL_ANCHOR; exports.SCROLL_ANCHOR_WIRE_KEY = _chunkC5EC5AZMcjs.SCROLL_ANCHOR_WIRE_KEY; exports.SOURCE_ICON_NAMES = _chunkC5EC5AZMcjs.SOURCE_ICON_NAMES; exports.SOURCE_LABELS_BY_TABLE = _chunkC5EC5AZMcjs.SOURCE_LABELS_BY_TABLE; exports.SlackMessageCard = _chunkC5EC5AZMcjs.SlackMessageCard; exports.SlackMessageCardSkeleton = _chunkC5EC5AZMcjs.SlackMessageCardSkeleton; exports.SlashCommandSuggestions = _chunkC5EC5AZMcjs.SlashCommandSuggestions; exports.SourceActionButton = _chunkC5EC5AZMcjs.SourceActionButton; exports.TaskTypeIcon = _chunkC5EC5AZMcjs.TaskTypeIcon; exports.ThinkingDisplay = _chunkC5EC5AZMcjs.ThinkingDisplay; exports.ToolExecutionDisplay = _chunkC5EC5AZMcjs.ToolExecutionDisplay; exports.applyProxyAuth = _chunkC5EC5AZMcjs.applyProxyAuth; exports.buildAnchorProps = _chunkC5EC5AZMcjs.buildAnchorProps; exports.buildAutoContinuationDirective = _chunkC5EC5AZMcjs.buildAutoContinuationDirective; exports.buildChatAttachmentViewUrl = _chunkC5EC5AZMcjs.buildChatAttachmentViewUrl; exports.buildChatRefKey = _chunkC5EC5AZMcjs.buildChatRefKey; exports.buildDiscussAddendum = _chunkC5EC5AZMcjs.buildDiscussAddendum; exports.buildNatsWsUrl = _chunkC5EC5AZMcjs.buildNatsWsUrl; exports.chatAuthedFetch = _chunkC5EC5AZMcjs.chatAuthedFetch; exports.chatChipClass = _chunkC5EC5AZMcjs.chatChipClass; exports.clearChatProxyAuth = _chunkC5EC5AZMcjs.clearChatProxyAuth; exports.clickupTaskUrl = _chunkC5EC5AZMcjs.clickupTaskUrl; exports.computeIsNewTab = _chunkC5EC5AZMcjs.computeIsNewTab; exports.createMessageSegmentAccumulator = _chunkC5EC5AZMcjs.createMessageSegmentAccumulator; exports.decideNewTab = _chunkC5EC5AZMcjs.decideNewTab; exports.defaultTableIdForDocumentType = _chunkC5EC5AZMcjs.defaultTableIdForDocumentType; exports.escapeMarkdownInline = _chunkC5EC5AZMcjs.escapeMarkdownInline; exports.extractEntityIdFilter = _chunkC5EC5AZMcjs.extractEntityIdFilter; exports.extractErrorMessages = _chunkC5EC5AZMcjs.extractErrorMessages; exports.extractIncompleteMessageState = _chunkC5EC5AZMcjs.extractIncompleteMessageState; exports.extractTextFromChunk = _chunkC5EC5AZMcjs.extractTextFromChunk; exports.fetchSlashCommands = _chunkC5EC5AZMcjs.fetchSlashCommands; exports.flattenAssistantContent = _chunkC5EC5AZMcjs.flattenAssistantContent; exports.formatChatAttachmentMarkdownForBubble = _chunkC5EC5AZMcjs.formatChatAttachmentMarkdownForBubble; exports.formatInvestorUpdatePeriod = _chunkC5EC5AZMcjs.formatInvestorUpdatePeriod; exports.formatSingularLookupInvocation = _chunkC5EC5AZMcjs.formatSingularLookupInvocation; exports.getChatProxyAuth = _chunkC5EC5AZMcjs.getChatProxyAuth; exports.getCommandText = _chunkC5EC5AZMcjs.getCommandText; exports.getDynamicIcon = _chunkC5EC5AZMcjs.getDynamicIcon; exports.getIconComponent = _chunkC5EC5AZMcjs.getIconComponent; exports.getPersistedProxyEmail = _chunkC5EC5AZMcjs.getPersistedProxyEmail; exports.getSourceIconName = _chunkC5EC5AZMcjs.getSourceIconName; exports.getSourceLabel = _chunkC5EC5AZMcjs.getSourceLabel; exports.getStatusColorScheme = _chunkC5EC5AZMcjs.getStatusColorScheme; exports.getTaskTypeLabel = _chunkC5EC5AZMcjs.getTaskTypeLabel; exports.handleChatNavClick = _chunkC5EC5AZMcjs.handleChatNavClick; exports.isControlChunk = _chunkC5EC5AZMcjs.isControlChunk; exports.isCrossOriginUrl = _chunkC5EC5AZMcjs.isCrossOriginUrl; exports.isErrorChunk = _chunkC5EC5AZMcjs.isErrorChunk; exports.isMetadataChunk = _chunkC5EC5AZMcjs.isMetadataChunk; exports.isModifierClick = _chunkC5EC5AZMcjs.isModifierClick; exports.isStructuredContent = _chunkC5EC5AZMcjs.isStructuredContent; exports.newTabAnchorAttrs = _chunkC5EC5AZMcjs.newTabAnchorAttrs; exports.normalizeContent = _chunkC5EC5AZMcjs.normalizeContent; exports.normalizeIconKey = _chunkC5EC5AZMcjs.normalizeIconKey; exports.parseChunkToAction = _chunkC5EC5AZMcjs.parseChunkToAction; exports.parseScrollAnchor = _chunkC5EC5AZMcjs.parseScrollAnchor; exports.parseWireCommandOverride = _chunkC5EC5AZMcjs.parseWireCommandOverride; exports.processHistoricalMessages = _chunkC5EC5AZMcjs.processHistoricalMessages; exports.processHistoricalMessagesWithErrors = _chunkC5EC5AZMcjs.processHistoricalMessagesWithErrors; exports.remarkCardLinks = _chunkC5EC5AZMcjs.remarkCardLinks; exports.renderChatInlineEntityCard = _chunkC5EC5AZMcjs.renderChatInlineEntityCard; exports.resolveExternalNavigation = _chunkC5EC5AZMcjs.resolveExternalNavigation; exports.resolveSourceIcon = _chunkC5EC5AZMcjs.resolveSourceIcon; exports.resolveSourceRowCTA = _chunkC5EC5AZMcjs.resolveSourceRowCTA; exports.safeHref = _chunkC5EC5AZMcjs.safeHref; exports.sanitizeTitleForChat = _chunkC5EC5AZMcjs.sanitizeTitleForChat; exports.setChatProxyAuth = _chunkC5EC5AZMcjs.setChatProxyAuth; exports.stripChatAttachmentMarkdown = _chunkC5EC5AZMcjs.stripChatAttachmentMarkdown; exports.stripSameOriginToPath = _chunkC5EC5AZMcjs.stripSameOriginToPath; exports.transformEventToProgram = _chunkC5EC5AZMcjs.transformEventToProgram; exports.transformPodcastToProgram = _chunkC5EC5AZMcjs.transformPodcastToProgram; exports.transformWebinarToProgram = _chunkC5EC5AZMcjs.transformWebinarToProgram; exports.useChat = _chunkC5EC5AZMcjs.useChat; exports.useChatAttachmentImageGallery = _chunkC5EC5AZMcjs.useChatAttachmentImageGallery; exports.useChatAttachments = _chunkC5EC5AZMcjs.useChatAttachments; exports.useChatCardItem = _chunkC5EC5AZMcjs.useChatCardItem; exports.useChatIdentity = _chunkC5EC5AZMcjs.useChatIdentity; exports.useChunkCatchup = _chunkC5EC5AZMcjs.useChunkCatchup; exports.useCloseOnNavigation = _chunkC5EC5AZMcjs.useCloseOnNavigation; exports.useCollapsible = _chunkC5EC5AZMcjs.useCollapsible; exports.useEmbeddedChat = _chunkC5EC5AZMcjs.useSseChatAdapter; exports.useJetStreamDialogSubscription = _chunkC5EC5AZMcjs.useJetStreamDialogSubscription; exports.useNatsChatAdapter = _chunkC5EC5AZMcjs.useNatsChatAdapter; exports.useNatsDialogSubscription = _chunkC5EC5AZMcjs.useNatsDialogSubscription; exports.useProxiedImageUrl = _chunkC5EC5AZMcjs.useProxiedImageUrl; exports.useRealtimeChunkProcessor = _chunkC5EC5AZMcjs.useRealtimeChunkProcessor; exports.useSSE = _chunkC5EC5AZMcjs.useSSE; exports.useSlashCommands = _chunkC5EC5AZMcjs.useSlashCommands; exports.useSseChatAdapter = _chunkC5EC5AZMcjs.useSseChatAdapter; exports.useUnifiedChat = _chunkC5EC5AZMcjs.useUnifiedChat;
|
|
393
399
|
//# sourceMappingURL=index.cjs.map
|