@memberjunction/ng-conversations 6.1.2 → 6.2.0-edge.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/README.md +1 -1
  2. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  3. package/dist/lib/components/conversation/conversation-chat-area.component.js +9 -26
  4. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  5. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts +1 -1
  6. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.d.ts.map +1 -1
  7. package/dist/lib/components/realtime/channels/channel-onboarding-panel.component.js.map +1 -1
  8. package/dist/lib/components/realtime/channels/client-context-channel.d.ts +1 -1
  9. package/dist/lib/components/realtime/channels/client-context-channel.d.ts.map +1 -1
  10. package/dist/lib/components/realtime/channels/client-context-channel.js +1 -1
  11. package/dist/lib/components/realtime/channels/client-context-channel.js.map +1 -1
  12. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts +1 -1
  13. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.d.ts.map +1 -1
  14. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js +3 -0
  15. package/dist/lib/components/realtime/channels/realtime-channel-pane.component.js.map +1 -1
  16. package/dist/lib/components/realtime/media/media-channel.d.ts +2 -1
  17. package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -1
  18. package/dist/lib/components/realtime/media/media-channel.js +1 -1
  19. package/dist/lib/components/realtime/media/media-channel.js.map +1 -1
  20. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts +1 -1
  21. package/dist/lib/components/realtime/realtime-activity-rail.component.d.ts.map +1 -1
  22. package/dist/lib/components/realtime/realtime-activity-rail.component.js.map +1 -1
  23. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +1 -1
  24. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
  25. package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
  26. package/dist/lib/components/realtime/realtime-composer.component.d.ts +3 -1
  27. package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
  28. package/dist/lib/components/realtime/realtime-composer.component.js +26 -8
  29. package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
  30. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts +1 -1
  31. package/dist/lib/components/realtime/realtime-delegation-card.component.d.ts.map +1 -1
  32. package/dist/lib/components/realtime/realtime-delegation-card.component.js.map +1 -1
  33. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +2 -2
  34. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
  35. package/dist/lib/components/realtime/realtime-session-overlay.component.js +1 -1
  36. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  37. package/dist/lib/components/realtime/realtime-session-state.d.ts +2 -3
  38. package/dist/lib/components/realtime/realtime-session-state.d.ts.map +1 -1
  39. package/dist/lib/components/realtime/realtime-session-state.js +3 -2
  40. package/dist/lib/components/realtime/realtime-session-state.js.map +1 -1
  41. package/dist/lib/components/realtime/realtime-session-thread.component.d.ts +17 -1
  42. package/dist/lib/components/realtime/realtime-session-thread.component.d.ts.map +1 -1
  43. package/dist/lib/components/realtime/realtime-session-thread.component.js +122 -45
  44. package/dist/lib/components/realtime/realtime-session-thread.component.js.map +1 -1
  45. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts +1 -9
  46. package/dist/lib/components/realtime/realtime-session-timeline-card.component.d.ts.map +1 -1
  47. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js +13 -43
  48. package/dist/lib/components/realtime/realtime-session-timeline-card.component.js.map +1 -1
  49. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts +2 -2
  50. package/dist/lib/components/realtime/realtime-surface-tabs.component.d.ts.map +1 -1
  51. package/dist/lib/components/realtime/realtime-surface-tabs.component.js.map +1 -1
  52. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts +1 -1
  53. package/dist/lib/components/realtime/realtime-surface-tabs.model.d.ts.map +1 -1
  54. package/dist/lib/components/realtime/realtime-surface-tabs.model.js.map +1 -1
  55. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts +1 -1
  56. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -1
  57. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +1 -1
  58. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -1
  59. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +1 -1
  60. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
  61. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +1 -1
  62. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
  63. package/dist/lib/conversations.module.d.ts.map +1 -1
  64. package/dist/lib/conversations.module.js.map +1 -1
  65. package/dist/lib/services/browser-realtime-media-host.d.ts +24 -0
  66. package/dist/lib/services/browser-realtime-media-host.d.ts.map +1 -0
  67. package/dist/lib/services/browser-realtime-media-host.js +95 -0
  68. package/dist/lib/services/browser-realtime-media-host.js.map +1 -0
  69. package/dist/lib/services/conversation-attachment.service.d.ts +24 -2
  70. package/dist/lib/services/conversation-attachment.service.d.ts.map +1 -1
  71. package/dist/lib/services/conversation-attachment.service.js +43 -4
  72. package/dist/lib/services/conversation-attachment.service.js.map +1 -1
  73. package/dist/lib/services/graphql-attachment-blob-store.d.ts +44 -0
  74. package/dist/lib/services/graphql-attachment-blob-store.d.ts.map +1 -0
  75. package/dist/lib/services/graphql-attachment-blob-store.js +113 -0
  76. package/dist/lib/services/graphql-attachment-blob-store.js.map +1 -0
  77. package/dist/lib/services/mention-autocomplete.service.d.ts +17 -141
  78. package/dist/lib/services/mention-autocomplete.service.d.ts.map +1 -1
  79. package/dist/lib/services/mention-autocomplete.service.js +15 -460
  80. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  81. package/dist/lib/services/realtime-session-review.service.d.ts +1 -1
  82. package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
  83. package/dist/lib/services/realtime-session-review.service.js +1 -1
  84. package/dist/lib/services/realtime-session-review.service.js.map +1 -1
  85. package/dist/lib/services/realtime-session.service.d.ts +16 -1150
  86. package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
  87. package/dist/lib/services/realtime-session.service.js +28 -2430
  88. package/dist/lib/services/realtime-session.service.js.map +1 -1
  89. package/dist/lib/utils/realtime-session-timeline.d.ts +8 -79
  90. package/dist/lib/utils/realtime-session-timeline.d.ts.map +1 -1
  91. package/dist/lib/utils/realtime-session-timeline.js +8 -89
  92. package/dist/lib/utils/realtime-session-timeline.js.map +1 -1
  93. package/dist/public-api.d.ts +2 -2
  94. package/dist/public-api.d.ts.map +1 -1
  95. package/dist/public-api.js +6 -2
  96. package/dist/public-api.js.map +1 -1
  97. package/package.json +33 -32
  98. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts +0 -384
  99. package/dist/lib/components/realtime/channels/base-realtime-channel-client.d.ts.map +0 -1
  100. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js +0 -231
  101. package/dist/lib/components/realtime/channels/base-realtime-channel-client.js.map +0 -1
  102. package/dist/lib/services/delegation-result-parser.d.ts +0 -50
  103. package/dist/lib/services/delegation-result-parser.d.ts.map +0 -1
  104. package/dist/lib/services/delegation-result-parser.js +0 -60
  105. package/dist/lib/services/delegation-result-parser.js.map +0 -1
  106. package/dist/lib/services/narration-template.d.ts +0 -42
  107. package/dist/lib/services/narration-template.d.ts.map +0 -1
  108. package/dist/lib/services/narration-template.js +0 -73
  109. package/dist/lib/services/narration-template.js.map +0 -1
  110. package/dist/lib/services/skill-picker-narrowing.d.ts +0 -13
  111. package/dist/lib/services/skill-picker-narrowing.d.ts.map +0 -1
  112. package/dist/lib/services/skill-picker-narrowing.js +0 -13
  113. package/dist/lib/services/skill-picker-narrowing.js.map +0 -1
@@ -1,94 +1,13 @@
1
1
  /**
2
- * Realtime-session timeline grouping for the standard conversation message list.
2
+ * Realtime-session timeline grouping — re-exported from `@memberjunction/conversations-runtime`.
3
3
  *
4
- * `MJ: Conversation Details` rows persisted DURING a live realtime session are stamped
5
- * with `AgentSessionID` (the transcript relay stamps every caption turn; the artifact
6
- * junction-anchor rows are stamped too). Rendering those rows as the normal back/forth
7
- * chat bubbles is wrong — a 40-turn voice call would flood the timeline. Instead the
8
- * message list collapses each session's stamped rows into ONE distinct timeline element
9
- * (a session card) at the session's chronological position, from which the user can
10
- * reopen the existing SESSION REVIEW overlay.
4
+ * The grouping pass was always pure TypeScript, but purity is not the same as living in the right
5
+ * package: while the only implementation sat behind an Angular import, the React Native thread
6
+ * rendered every session-stamped row as an ordinary chat bubble — the exact thing the module's own
7
+ * header calls wrong. It now lives in the runtime every surface shares.
11
8
  *
12
- * This module is PURE (no Angular, no entities) so the grouping pass is unit-testable:
13
- * the source shape is a minimal structural interface that `MJConversationDetailEntity`
14
- * satisfies via its getters.
9
+ * This file stays so the eleven call sites in this library keep importing from where they always
10
+ * did. Import from `@memberjunction/conversations-runtime` in new code.
15
11
  */
16
- import { NormalizeUUID } from '@memberjunction/global';
17
- /**
18
- * Builds the renderable conversation timeline from the loaded detail rows (chronological,
19
- * as the engine returns them):
20
- * - rows WITHOUT an `AgentSessionID` pass through unchanged, in order;
21
- * - rows WITH one collapse into ONE session block per session id, positioned where the
22
- * session's FIRST stamped row sits. Later stamped rows of the same session (even when
23
- * interleaved with normal messages) fold into that same block — one element per
24
- * session, period.
25
- *
26
- * Session-id comparison is case-insensitive ({@link NormalizeUUID}) so SQL Server
27
- * (uppercase) and PostgreSQL (lowercase) ids group identically.
28
- */
29
- export function BuildConversationTimeline(details) {
30
- const items = [];
31
- const groupsBySessionKey = new Map();
32
- for (const detail of details) {
33
- const sessionId = normalizeSessionId(detail.AgentSessionID);
34
- if (!sessionId) {
35
- items.push({ Kind: 'message', Detail: detail });
36
- continue;
37
- }
38
- const key = NormalizeUUID(sessionId);
39
- let group = groupsBySessionKey.get(key);
40
- if (!group) {
41
- group = createGroup(sessionId);
42
- groupsBySessionKey.set(key, group);
43
- items.push({ Kind: 'session', Group: group });
44
- }
45
- foldDetailIntoGroup(group, detail);
46
- }
47
- return items;
48
- }
49
- /** Trims the stamped session id; empty/whitespace ids are treated as unstamped. */
50
- function normalizeSessionId(raw) {
51
- const trimmed = raw?.trim() ?? '';
52
- return trimmed.length > 0 ? trimmed : null;
53
- }
54
- /** A fresh, empty session block for the given session id. */
55
- function createGroup(sessionId) {
56
- return {
57
- SessionID: sessionId,
58
- StartedAt: null,
59
- EndedAt: null,
60
- TurnCount: 0,
61
- DetailCount: 0,
62
- LastTurnRole: null,
63
- LastTurnPreview: null
64
- };
65
- }
66
- /** Folds one stamped detail row into its session block (range, counts, last-turn preview). */
67
- function foldDetailIntoGroup(group, detail) {
68
- group.DetailCount++;
69
- const at = toDate(detail.__mj_CreatedAt);
70
- if (at) {
71
- if (!group.StartedAt || at.getTime() < group.StartedAt.getTime()) {
72
- group.StartedAt = at;
73
- }
74
- if (!group.EndedAt || at.getTime() > group.EndedAt.getTime()) {
75
- group.EndedAt = at;
76
- }
77
- }
78
- const text = detail.Message?.trim() ?? '';
79
- const isVisibleTurn = !detail.HiddenToUser && text.length > 0 && (detail.Role === 'User' || detail.Role === 'AI');
80
- if (isVisibleTurn) {
81
- group.TurnCount++;
82
- group.LastTurnRole = detail.Role === 'AI' ? 'Assistant' : 'User';
83
- group.LastTurnPreview = text;
84
- }
85
- }
86
- /** Tolerant date conversion — raw cache rows can carry ISO strings instead of Dates. */
87
- function toDate(value) {
88
- if (value == null) {
89
- return null;
90
- }
91
- const date = value instanceof Date ? value : new Date(value);
92
- return isNaN(date.getTime()) ? null : date;
93
- }
12
+ export { BuildConversationTimeline, CollectRealtimeSessionIDs, FindRealtimeSessionMeta, IsVisibleRealtimeTurn, MapRealtimeSessionMeta, REALTIME_SESSION_META_FIELDS, SessionCardIsSameDayRange, SessionCardStatusChip, SessionCardTitle, } from '@memberjunction/conversations-runtime';
94
13
  //# sourceMappingURL=realtime-session-timeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"realtime-session-timeline.js","sourceRoot":"","sources":["../../../src/lib/utils/realtime-session-timeline.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Realtime-session timeline grouping for the standard conversation message list.\n *\n * `MJ: Conversation Details` rows persisted DURING a live realtime session are stamped\n * with `AgentSessionID` (the transcript relay stamps every caption turn; the artifact\n * junction-anchor rows are stamped too). Rendering those rows as the normal back/forth\n * chat bubbles is wrong — a 40-turn voice call would flood the timeline. Instead the\n * message list collapses each session's stamped rows into ONE distinct timeline element\n * (a session card) at the session's chronological position, from which the user can\n * reopen the existing SESSION REVIEW overlay.\n *\n * This module is PURE (no Angular, no entities) so the grouping pass is unit-testable:\n * the source shape is a minimal structural interface that `MJConversationDetailEntity`\n * satisfies via its getters.\n */\n\nimport { NormalizeUUID } from '@memberjunction/global';\n\n/** The minimal detail-row shape the grouping pass reads (satisfied by `MJConversationDetailEntity`). */\nexport interface RealtimeTimelineSourceDetail {\n ID: string;\n /** Stamped session id for rows persisted during a live realtime session; null for normal chat rows. */\n AgentSessionID: string | null;\n /** `User` | `AI` | `Error` on the entity; widened to string for structural compatibility. */\n Role: string;\n Message: string | null;\n /** Hidden rows (system/junction-anchor details) never count as visible turns. */\n HiddenToUser: boolean;\n __mj_CreatedAt: Date | null;\n}\n\n/**\n * One realtime session's collapsed block: everything the timeline card renders that can\n * be computed from the conversation's already-loaded detail rows (no extra queries).\n */\nexport interface RealtimeSessionTimelineGroup {\n /** `MJ: AI Agent Sessions.ID` the block's rows are stamped with (original casing of the first row). */\n SessionID: string;\n /** Timestamp of the session's first stamped row (≈ when the session's transcript began). */\n StartedAt: Date | null;\n /** Timestamp of the session's last stamped row (≈ when the transcript ended). */\n EndedAt: Date | null;\n /** VISIBLE caption turns: non-hidden `User`/`AI` rows with text (mirrors review-mode's turn mapping). */\n TurnCount: number;\n /** ALL stamped rows folded into this block, hidden anchors included. */\n DetailCount: number;\n /** Who spoke the last visible turn (AI → `Assistant`), or null when no visible turn exists. */\n LastTurnRole: 'User' | 'Assistant' | null;\n /** The last visible turn's text (untruncated — the card ellipsizes), or null. */\n LastTurnPreview: string | null;\n}\n\n/**\n * Session-row metadata the card enriches itself with when the host has it (one batched\n * `MJ: AI Agent Sessions` lookup per conversation). All-optional by design: a missing\n * meta entry degrades the card to its generic label with no status chip.\n */\nexport interface RealtimeSessionTimelineMeta {\n /** `MJ: AI Agent Sessions.ID`. */\n SessionID: string;\n /** Denormalized agent display name from the session view (usually the co-agent). */\n AgentName: string | null;\n Status: 'Active' | 'Closed' | 'Idle' | null;\n /** Why the session closed (`Error` | `Explicit` | `Janitor` | `Shutdown`), when closed. */\n CloseReason: string | null;\n ClosedAt: Date | null;\n}\n\n/** One renderable timeline entry: a normal chat message OR a collapsed session block. */\nexport type ConversationTimelineItem<T extends RealtimeTimelineSourceDetail> =\n | { Kind: 'message'; Detail: T }\n | { Kind: 'session'; Group: RealtimeSessionTimelineGroup };\n\n/**\n * Builds the renderable conversation timeline from the loaded detail rows (chronological,\n * as the engine returns them):\n * - rows WITHOUT an `AgentSessionID` pass through unchanged, in order;\n * - rows WITH one collapse into ONE session block per session id, positioned where the\n * session's FIRST stamped row sits. Later stamped rows of the same session (even when\n * interleaved with normal messages) fold into that same block — one element per\n * session, period.\n *\n * Session-id comparison is case-insensitive ({@link NormalizeUUID}) so SQL Server\n * (uppercase) and PostgreSQL (lowercase) ids group identically.\n */\nexport function BuildConversationTimeline<T extends RealtimeTimelineSourceDetail>(\n details: readonly T[]\n): ConversationTimelineItem<T>[] {\n const items: ConversationTimelineItem<T>[] = [];\n const groupsBySessionKey = new Map<string, RealtimeSessionTimelineGroup>();\n\n for (const detail of details) {\n const sessionId = normalizeSessionId(detail.AgentSessionID);\n if (!sessionId) {\n items.push({ Kind: 'message', Detail: detail });\n continue;\n }\n const key = NormalizeUUID(sessionId);\n let group = groupsBySessionKey.get(key);\n if (!group) {\n group = createGroup(sessionId);\n groupsBySessionKey.set(key, group);\n items.push({ Kind: 'session', Group: group });\n }\n foldDetailIntoGroup(group, detail);\n }\n return items;\n}\n\n/** Trims the stamped session id; empty/whitespace ids are treated as unstamped. */\nfunction normalizeSessionId(raw: string | null): string | null {\n const trimmed = raw?.trim() ?? '';\n return trimmed.length > 0 ? trimmed : null;\n}\n\n/** A fresh, empty session block for the given session id. */\nfunction createGroup(sessionId: string): RealtimeSessionTimelineGroup {\n return {\n SessionID: sessionId,\n StartedAt: null,\n EndedAt: null,\n TurnCount: 0,\n DetailCount: 0,\n LastTurnRole: null,\n LastTurnPreview: null\n };\n}\n\n/** Folds one stamped detail row into its session block (range, counts, last-turn preview). */\nfunction foldDetailIntoGroup(group: RealtimeSessionTimelineGroup, detail: RealtimeTimelineSourceDetail): void {\n group.DetailCount++;\n\n const at = toDate(detail.__mj_CreatedAt);\n if (at) {\n if (!group.StartedAt || at.getTime() < group.StartedAt.getTime()) {\n group.StartedAt = at;\n }\n if (!group.EndedAt || at.getTime() > group.EndedAt.getTime()) {\n group.EndedAt = at;\n }\n }\n\n const text = detail.Message?.trim() ?? '';\n const isVisibleTurn = !detail.HiddenToUser && text.length > 0 && (detail.Role === 'User' || detail.Role === 'AI');\n if (isVisibleTurn) {\n group.TurnCount++;\n group.LastTurnRole = detail.Role === 'AI' ? 'Assistant' : 'User';\n group.LastTurnPreview = text;\n }\n}\n\n/** Tolerant date conversion — raw cache rows can carry ISO strings instead of Dates. */\nfunction toDate(value: Date | string | null | undefined): Date | null {\n if (value == null) {\n return null;\n }\n const date = value instanceof Date ? value : new Date(value);\n return isNaN(date.getTime()) ? null : date;\n}\n"]}
1
+ {"version":3,"file":"realtime-session-timeline.js","sourceRoot":"","sources":["../../../src/lib/utils/realtime-session-timeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,gBAAgB,GAOjB,MAAM,uCAAuC,CAAC","sourcesContent":["/**\n * Realtime-session timeline grouping — re-exported from `@memberjunction/conversations-runtime`.\n *\n * The grouping pass was always pure TypeScript, but purity is not the same as living in the right\n * package: while the only implementation sat behind an Angular import, the React Native thread\n * rendered every session-stamped row as an ordinary chat bubble — the exact thing the module's own\n * header calls wrong. It now lives in the runtime every surface shares.\n *\n * This file stays so the eleven call sites in this library keep importing from where they always\n * did. Import from `@memberjunction/conversations-runtime` in new code.\n */\nexport {\n BuildConversationTimeline,\n CollectRealtimeSessionIDs,\n FindRealtimeSessionMeta,\n IsVisibleRealtimeTurn,\n MapRealtimeSessionMeta,\n REALTIME_SESSION_META_FIELDS,\n SessionCardIsSameDayRange,\n SessionCardStatusChip,\n SessionCardTitle,\n type ConversationTimelineItem,\n type RealtimeSessionMetaRow,\n type RealtimeSessionStatusChip,\n type RealtimeSessionTimelineGroup,\n type RealtimeSessionTimelineMeta,\n type RealtimeTimelineSourceDetail,\n} from '@memberjunction/conversations-runtime';\n"]}
@@ -20,14 +20,15 @@ export * from './lib/services/artifact-permission.service';
20
20
  export * from './lib/services/artifact-use-tracking.service';
21
21
  export * from './lib/services/collection-state.service';
22
22
  export * from './lib/services/conversation-attachment.service';
23
+ export * from './lib/services/graphql-attachment-blob-store';
23
24
  export * from './lib/services/ui-command-handler.service';
24
25
  export * from './lib/services/conversation-bridge.service';
25
26
  export * from './lib/services/realtime-session.service';
27
+ export * from './lib/services/browser-realtime-media-host';
26
28
  export * from './lib/services/realtime-pairing';
27
29
  export * from './lib/services/user-authorization';
28
30
  export * from './lib/services/realtime-sessions-adapter';
29
31
  export * from './lib/services/realtime-session-review.service';
30
- export * from './lib/services/delegation-result-parser';
31
32
  export * from './lib/components/workspace/conversation-workspace.component';
32
33
  export * from './lib/components/navigation/conversation-navigation.component';
33
34
  export * from './lib/components/sidebar/conversation-sidebar.component';
@@ -109,7 +110,6 @@ export * from './lib/components/realtime/realtime-composer.component';
109
110
  export * from './lib/components/realtime/realtime-channel-strip.component';
110
111
  export * from './lib/components/realtime/realtime-session-timeline-card.component';
111
112
  export * from './lib/utils/realtime-session-timeline';
112
- export * from './lib/components/realtime/channels/base-realtime-channel-client';
113
113
  export * from './lib/components/realtime/channels/client-context-channel';
114
114
  export * from './lib/components/realtime/channels/realtime-channel-pane.component';
115
115
  export * from './lib/components/realtime/channels/channel-onboarding-panel.component';
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"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"}
@@ -29,14 +29,19 @@ export * from './lib/services/artifact-permission.service';
29
29
  export * from './lib/services/artifact-use-tracking.service';
30
30
  export * from './lib/services/collection-state.service';
31
31
  export * from './lib/services/conversation-attachment.service';
32
+ export * from './lib/services/graphql-attachment-blob-store';
32
33
  export * from './lib/services/ui-command-handler.service';
33
34
  export * from './lib/services/conversation-bridge.service';
34
35
  export * from './lib/services/realtime-session.service';
36
+ export * from './lib/services/browser-realtime-media-host';
37
+ // NOTE: the realtime session types (RealtimeCaption, RealtimeConnectionState,
38
+ // RealtimeSessionRunOptions, …), the channel plugin base class, and the delegation-result
39
+ // parser now live in `@memberjunction/realtime-runtime`. Import them from there directly —
40
+ // MJ does not re-export across package boundaries.
35
41
  export * from './lib/services/realtime-pairing';
36
42
  export * from './lib/services/user-authorization';
37
43
  export * from './lib/services/realtime-sessions-adapter';
38
44
  export * from './lib/services/realtime-session-review.service';
39
- export * from './lib/services/delegation-result-parser';
40
45
  // Components
41
46
  export * from './lib/components/workspace/conversation-workspace.component';
42
47
  export * from './lib/components/navigation/conversation-navigation.component';
@@ -136,7 +141,6 @@ export * from './lib/components/realtime/realtime-channel-strip.component';
136
141
  export * from './lib/components/realtime/realtime-session-timeline-card.component';
137
142
  export * from './lib/utils/realtime-session-timeline';
138
143
  // Pluggable interactive-channel contract (registry-resolved client plugins) + pane host
139
- export * from './lib/components/realtime/channels/base-realtime-channel-client';
140
144
  export * from './lib/components/realtime/channels/client-context-channel';
141
145
  export * from './lib/components/realtime/channels/realtime-channel-pane.component';
142
146
  export * from './lib/components/realtime/channels/channel-onboarding-panel.component';
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,cAAc,4BAA4B,CAAC;AAE3C,SAAS;AACT,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AAEtD,mBAAmB;AACnB,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,gGAAgG;AAChG,4FAA4F;AAC5F,wDAAwD;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AAExD,aAAa;AACb,cAAc,6DAA6D,CAAC;AAC5E,cAAc,+DAA+D,CAAC;AAC9E,cAAc,yDAAyD,CAAC;AACxE,cAAc,qDAAqD,CAAC;AACpE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,kEAAkE,CAAC;AACjF,cAAc,iDAAiD,CAAC;AAChE,cAAc,iDAAiD,CAAC;AAChE,cAAc,kDAAkD,CAAC;AACjE,0FAA0F;AAC1F,kFAAkF;AAClF,cAAc,iDAAiD,CAAC;AAChE,sFAAsF;AACtF,qDAAqD;AACrD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,oFAAoF;AACpF,6FAA6F;AAC7F,cAAc,gEAAgE,CAAC;AAC/E,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,wEAAwE,CAAC;AACvF,cAAc,8DAA8D,CAAC;AAC7E,cAAc,0DAA0D,CAAC;AACzE,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sDAAsD,CAAC;AACrE,cAAc,yDAAyD,CAAC;AACxE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,wCAAwC,CAAC;AACvD,cAAc,4DAA4D,CAAC;AAC3E,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC;AAEhE,iFAAiF;AACjF,+EAA+E;AAC/E,uEAAuE;AACvE,yEAAyE;AACzE,gFAAgF;AAChF,wEAAwE;AACxE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,mEAAmE,CAAC;AAClF,cAAc,kEAAkE,CAAC;AACjF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iDAAiD,CAAC;AAChE,cAAc,kDAAkD,CAAC;AACjE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sDAAsD,CAAC;AACrE,cAAc,kDAAkD,CAAC;AACjE,cAAc,wDAAwD,CAAC;AACvE,cAAc,uDAAuD,CAAC;AACtE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iDAAiD,CAAC;AAChE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAE3D,kEAAkE;AAClE,cAAc,wDAAwD,CAAC;AACvE,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,8DAA8D,CAAC;AAC7E,cAAc,iEAAiE,CAAC;AAChF,cAAc,yDAAyD,CAAC;AACxE,cAAc,gEAAgE,CAAC;AAC/E,cAAc,wEAAwE,CAAC;AACvF,cAAc,iEAAiE,CAAC;AAChF,cAAc,0BAA0B,CAAC;AAEzC,2DAA2D;AAC3D,cAAc,2DAA2D,CAAC;AAC1E,0DAA0D;AAC1D,cAAc,8DAA8D,CAAC;AAC7E,cAAc,kDAAkD,CAAC;AACjE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8DAA8D,CAAC;AAC7E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,uDAAuD,CAAC;AACtE,cAAc,wDAAwD,CAAC;AACvE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uDAAuD,CAAC;AACtE,cAAc,4DAA4D,CAAC;AAC3E,2GAA2G;AAC3G,cAAc,oEAAoE,CAAC;AACnF,cAAc,uCAAuC,CAAC;AACtD,wFAAwF;AACxF,cAAc,iEAAiE,CAAC;AAChF,cAAc,2DAA2D,CAAC;AAC1E,cAAc,oEAAoE,CAAC;AACnF,cAAc,uEAAuE,CAAC;AACtF,0FAA0F;AAC1F,oFAAoF;AACpF,qFAAqF;AACrF,cAAc,yDAAyD,CAAC;AACxE,cAAc,2EAA2E,CAAC;AAC1F,mGAAmG;AACnG,cAAc,iEAAiE,CAAC;AAChF,cAAc,2EAA2E,CAAC;AAC1F,cAAc,+DAA+D,CAAC;AAC9E,cAAc,sEAAsE,CAAC;AACrF,mGAAmG;AACnG,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,kEAAkE,CAAC;AACjF,8FAA8F;AAC9F,cAAc,kFAAkF,CAAC;AACjG,cAAc,qCAAqC,CAAC","sourcesContent":["/*\n * Public API Surface of @memberjunction/ng-conversations\n */\n\n// Module\nexport * from './lib/conversations.module';\n\n// Models\nexport * from './lib/models/conversation-state.model';\nexport * from './lib/models/notification.model';\nexport * from './lib/models/lazy-artifact-info';\nexport * from './lib/models/navigation-request.model';\n\n// Services - State\nexport * from './lib/services/data-cache.service';\nexport * from './lib/services/artifact-state.service';\nexport * from './lib/services/agent-state.service';\nexport * from './lib/services/conversation-agent.service';\nexport * from './lib/services/active-tasks.service';\nexport * from './lib/services/conversation-streaming.service';\nexport * from './lib/services/dialog.service';\nexport * from './lib/services/export.service';\nexport * from './lib/services/notification.service';\nexport * from './lib/services/toast.service';\nexport * from './lib/services/mention-parser.service';\n// AI-aware mention suggestion engine (BaseSingleton — use MentionAutocompleteService.Instance).\n// NOTE: the generic MentionSuggestion TYPE lives in @memberjunction/ng-composer — import it\n// from there directly (no re-exports between packages).\nexport * from './lib/services/mention-autocomplete.service';\nexport * from './lib/services/collection-permission.service';\nexport * from './lib/services/artifact-permission.service';\nexport * from './lib/services/artifact-use-tracking.service';\nexport * from './lib/services/collection-state.service';\nexport * from './lib/services/conversation-attachment.service';\nexport * from './lib/services/ui-command-handler.service';\nexport * from './lib/services/conversation-bridge.service';\nexport * from './lib/services/realtime-session.service';\nexport * from './lib/services/realtime-pairing';\nexport * from './lib/services/user-authorization';\nexport * from './lib/services/realtime-sessions-adapter';\nexport * from './lib/services/realtime-session-review.service';\nexport * from './lib/services/delegation-result-parser';\n\n// Components\nexport * from './lib/components/workspace/conversation-workspace.component';\nexport * from './lib/components/navigation/conversation-navigation.component';\nexport * from './lib/components/sidebar/conversation-sidebar.component';\nexport * from './lib/components/sidebar/routines-section.component';\nexport * from './lib/components/conversation/conversation-list.component';\nexport * from './lib/components/conversation/conversation-chat-area.component';\nexport * from './lib/components/conversation/conversation-empty-state.component';\nexport * from './lib/components/message/message-item.component';\nexport * from './lib/components/message/message-list.component';\nexport * from './lib/components/message/message-input.component';\n// AI-aware composer wrapper (mj-ai-composer): mj-message-input-box + the three AI trigger\n// plugins built in, proxying the input box's full inputs/outputs/methods surface.\nexport * from './lib/components/composer/ai-composer.component';\n// Composer trigger-provider plugins ('@' / '#' / '/') — ClassFactory-registered; also\n// directly instantiable for explicit provider lists.\nexport * from './lib/composer-plugins/base-conversation-mention.provider';\nexport * from './lib/composer-plugins/agent-mention.provider';\nexport * from './lib/composer-plugins/record-mention.provider';\nexport * from './lib/composer-plugins/skill-command.provider';\nexport * from './lib/composer-plugins/load-composer-plugins';\n// NOTE: MessageInputBoxComponent, MentionEditorComponent (+ PendingAttachment), and\n// MentionDropdownComponent live in @memberjunction/ng-composer — import from there directly.\nexport * from './lib/components/message/conversation-message-rating.component';\nexport * from './lib/components/collection/collection-tree.component';\nexport * from './lib/components/collection/collection-view.component';\nexport * from './lib/components/collection/collections-full-view.component';\nexport * from './lib/components/collection/collection-artifact-card.component';\nexport * from './lib/components/collection/artifact-collection-picker-modal.component';\nexport * from './lib/components/collection/collection-share-modal.component';\nexport * from './lib/components/artifact/artifact-share-modal.component';\nexport * from './lib/components/project/project-selector.component';\nexport * from './lib/components/project/project-form-modal.component';\nexport * from './lib/components/task/tasks-full-view.component';\nexport * from './lib/components/tasks/task-widget.component';\nexport * from './lib/components/agent/agent-process-panel.component';\nexport * from './lib/components/agent/active-agent-indicator.component';\nexport * from './lib/components/active-tasks/active-tasks-panel.component';\nexport * from './lib/components/share/share-modal.component';\nexport * from './lib/components/notification/notification-badge.component';\nexport * from './lib/components/notification/activity-indicator.component';\nexport * from './lib/components/toast/toast.component';\nexport * from './lib/components/global-tasks/global-tasks-panel.component';\nexport * from './lib/components/attachment/image-viewer.component';\nexport * from './lib/components/overlay/chat-overlay.component';\n\n// Components declared AND exported by ConversationsModule but previously missing\n// from public-api. They are used in the templates of exported components (e.g.\n// mj-conversation-chat-area), so a consumer app compiling in Angular's\n// local-compilation / HMR mode fails to build (NG3004: \"Unable to import\n// component … not exported from @memberjunction/ng-conversations\") unless every\n// module-exported component is importable from the package entry point.\nexport * from './lib/components/collection/artifact-create-modal.component';\nexport * from './lib/components/collection/collection-form-modal.component';\nexport * from './lib/components/conversation/conversation-agent-picker.component';\nexport * from './lib/components/conversation/conversation-mode-picker.component';\nexport * from './lib/components/conversation/pinned-messages-panel.component';\nexport * from './lib/components/dialogs/input-dialog.component';\nexport * from './lib/components/dialogs/rating-dialog.component';\nexport * from './lib/components/export/export-modal.component';\nexport * from './lib/components/library/library-full-view.component';\nexport * from './lib/components/members/members-modal.component';\nexport * from './lib/components/message/actionable-commands.component';\nexport * from './lib/components/message/workflow-plan-card.component';\nexport * from './lib/components/search/search-panel.component';\nexport * from './lib/components/shared/user-picker.component';\nexport * from './lib/components/tasks/tasks-dropdown.component';\nexport * from './lib/components/thread/thread-panel.component';\nexport * from './lib/directives/search-shortcut.directive';\n\n// PR 2c — Widget extension surface (slots, events, design tokens)\nexport * from './lib/services/conversations-runtime-bootstrap.service';\nexport * from './lib/directives/chat-slot.directive';\nexport * from './lib/components/slots/slot-interfaces';\nexport * from './lib/components/slots/mj-chat-empty-state-default.component';\nexport * from './lib/components/slots/mj-chat-agent-presence-default.component';\nexport * from './lib/components/slots/mj-chat-header-default.component';\nexport * from './lib/components/slots/mj-chat-message-extra-default.component';\nexport * from './lib/components/slots/mj-chat-demonstration-surface-default.component';\nexport * from './lib/components/slots/mj-chat-message-bubble-default.component';\nexport * from './lib/events/chat-events';\n\n// Realtime / voice (PR #2787 — co-agent realtime sessions)\nexport * from './lib/components/realtime/realtime-agent-picker.component';\n// Real-time \"call mode\" overlay + its componentized parts\nexport * from './lib/components/realtime/realtime-session-overlay.component';\nexport * from './lib/components/realtime/realtime-session-state';\nexport * from './lib/components/realtime/realtime-agent-banner.component';\nexport * from './lib/components/realtime/realtime-session-thread.component';\nexport * from './lib/components/realtime/realtime-delegation-card.component';\nexport * from './lib/components/realtime/realtime-activity-rail.component';\nexport * from './lib/components/realtime/realtime-surface-tabs.component';\nexport * from './lib/components/realtime/realtime-surface-tabs.model';\nexport * from './lib/components/realtime/realtime-surface-panel-prefs';\nexport * from './lib/components/realtime/realtime-disclosure';\nexport * from './lib/components/realtime/realtime-audio-visuals';\nexport * from './lib/components/realtime/realtime-composer.component';\nexport * from './lib/components/realtime/realtime-channel-strip.component';\n// Conversation-timeline collapse of past realtime sessions (one card per session) + its pure grouping pass\nexport * from './lib/components/realtime/realtime-session-timeline-card.component';\nexport * from './lib/utils/realtime-session-timeline';\n// Pluggable interactive-channel contract (registry-resolved client plugins) + pane host\nexport * from './lib/components/realtime/channels/base-realtime-channel-client';\nexport * from './lib/components/realtime/channels/client-context-channel';\nexport * from './lib/components/realtime/channels/realtime-channel-pane.component';\nexport * from './lib/components/realtime/channels/channel-onboarding-panel.component';\n// Live whiteboard channel plugin + artifact viewer (thin consumers of the generic board).\n// NOTE: the whiteboard itself (engine, tools, components, export builders) lives in\n// @memberjunction/ng-whiteboard — import board types/components from there directly.\nexport * from './lib/components/realtime/whiteboard/whiteboard-channel';\nexport * from './lib/components/realtime/whiteboard/whiteboard-artifact-viewer.component';\n// Remote Browser channel plugin (client-direct, server-hosted browser) + its live surface + tools.\nexport * from './lib/components/realtime/remote-browser/remote-browser-channel';\nexport * from './lib/components/realtime/remote-browser/remote-browser-surface.component';\nexport * from './lib/components/realtime/remote-browser/remote-browser-tools';\nexport * from './lib/components/realtime/remote-browser/remote-browser-audio-player';\n// Media channel plugin (Tabs-layout media display surface) + its state engine, tools, and surface.\nexport * from './lib/components/realtime/media/media-channel';\nexport * from './lib/components/realtime/media/media-channel-state';\nexport * from './lib/components/realtime/media/media-channel-tools';\nexport * from './lib/components/realtime/media/realtime-media-surface.component';\n// Time-aligned Evidence Playback component (recorded session audio synced to the transcript).\nexport * from './lib/components/realtime/evidence-playback/realtime-evidence-playback.component';\nexport * from './lib/services/composer-draft-store';\n"]}
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,SAAS;AACT,cAAc,4BAA4B,CAAC;AAE3C,SAAS;AACT,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,uCAAuC,CAAC;AAEtD,mBAAmB;AACnB,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,oCAAoC,CAAC;AACnD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uCAAuC,CAAC;AACtD,gGAAgG;AAChG,4FAA4F;AAC5F,wDAAwD;AACxD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,8EAA8E;AAC9E,0FAA0F;AAC1F,2FAA2F;AAC3F,mDAAmD;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAE/D,aAAa;AACb,cAAc,6DAA6D,CAAC;AAC5E,cAAc,+DAA+D,CAAC;AAC9E,cAAc,yDAAyD,CAAC;AACxE,cAAc,qDAAqD,CAAC;AACpE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,kEAAkE,CAAC;AACjF,cAAc,iDAAiD,CAAC;AAChE,cAAc,iDAAiD,CAAC;AAChE,cAAc,kDAAkD,CAAC;AACjE,0FAA0F;AAC1F,kFAAkF;AAClF,cAAc,iDAAiD,CAAC;AAChE,sFAAsF;AACtF,qDAAqD;AACrD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,oFAAoF;AACpF,6FAA6F;AAC7F,cAAc,gEAAgE,CAAC;AAC/E,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,wEAAwE,CAAC;AACvF,cAAc,8DAA8D,CAAC;AAC7E,cAAc,0DAA0D,CAAC;AACzE,cAAc,qDAAqD,CAAC;AACpE,cAAc,uDAAuD,CAAC;AACtE,cAAc,iDAAiD,CAAC;AAChE,cAAc,8CAA8C,CAAC;AAC7D,cAAc,sDAAsD,CAAC;AACrE,cAAc,yDAAyD,CAAC;AACxE,cAAc,4DAA4D,CAAC;AAC3E,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4DAA4D,CAAC;AAC3E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,wCAAwC,CAAC;AACvD,cAAc,4DAA4D,CAAC;AAC3E,cAAc,oDAAoD,CAAC;AACnE,cAAc,iDAAiD,CAAC;AAEhE,iFAAiF;AACjF,+EAA+E;AAC/E,uEAAuE;AACvE,yEAAyE;AACzE,gFAAgF;AAChF,wEAAwE;AACxE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,mEAAmE,CAAC;AAClF,cAAc,kEAAkE,CAAC;AACjF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,iDAAiD,CAAC;AAChE,cAAc,kDAAkD,CAAC;AACjE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sDAAsD,CAAC;AACrE,cAAc,kDAAkD,CAAC;AACjE,cAAc,wDAAwD,CAAC;AACvE,cAAc,uDAAuD,CAAC;AACtE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iDAAiD,CAAC;AAChE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAE3D,kEAAkE;AAClE,cAAc,wDAAwD,CAAC;AACvE,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,8DAA8D,CAAC;AAC7E,cAAc,iEAAiE,CAAC;AAChF,cAAc,yDAAyD,CAAC;AACxE,cAAc,gEAAgE,CAAC;AAC/E,cAAc,wEAAwE,CAAC;AACvF,cAAc,iEAAiE,CAAC;AAChF,cAAc,0BAA0B,CAAC;AAEzC,2DAA2D;AAC3D,cAAc,2DAA2D,CAAC;AAC1E,0DAA0D;AAC1D,cAAc,8DAA8D,CAAC;AAC7E,cAAc,kDAAkD,CAAC;AACjE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8DAA8D,CAAC;AAC7E,cAAc,4DAA4D,CAAC;AAC3E,cAAc,2DAA2D,CAAC;AAC1E,cAAc,uDAAuD,CAAC;AACtE,cAAc,wDAAwD,CAAC;AACvE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,kDAAkD,CAAC;AACjE,cAAc,uDAAuD,CAAC;AACtE,cAAc,4DAA4D,CAAC;AAC3E,2GAA2G;AAC3G,cAAc,oEAAoE,CAAC;AACnF,cAAc,uCAAuC,CAAC;AACtD,wFAAwF;AACxF,cAAc,2DAA2D,CAAC;AAC1E,cAAc,oEAAoE,CAAC;AACnF,cAAc,uEAAuE,CAAC;AACtF,0FAA0F;AAC1F,oFAAoF;AACpF,qFAAqF;AACrF,cAAc,yDAAyD,CAAC;AACxE,cAAc,2EAA2E,CAAC;AAC1F,mGAAmG;AACnG,cAAc,iEAAiE,CAAC;AAChF,cAAc,2EAA2E,CAAC;AAC1F,cAAc,+DAA+D,CAAC;AAC9E,cAAc,sEAAsE,CAAC;AACrF,mGAAmG;AACnG,cAAc,+CAA+C,CAAC;AAC9D,cAAc,qDAAqD,CAAC;AACpE,cAAc,qDAAqD,CAAC;AACpE,cAAc,kEAAkE,CAAC;AACjF,8FAA8F;AAC9F,cAAc,kFAAkF,CAAC;AACjG,cAAc,qCAAqC,CAAC","sourcesContent":["/*\n * Public API Surface of @memberjunction/ng-conversations\n */\n\n// Module\nexport * from './lib/conversations.module';\n\n// Models\nexport * from './lib/models/conversation-state.model';\nexport * from './lib/models/notification.model';\nexport * from './lib/models/lazy-artifact-info';\nexport * from './lib/models/navigation-request.model';\n\n// Services - State\nexport * from './lib/services/data-cache.service';\nexport * from './lib/services/artifact-state.service';\nexport * from './lib/services/agent-state.service';\nexport * from './lib/services/conversation-agent.service';\nexport * from './lib/services/active-tasks.service';\nexport * from './lib/services/conversation-streaming.service';\nexport * from './lib/services/dialog.service';\nexport * from './lib/services/export.service';\nexport * from './lib/services/notification.service';\nexport * from './lib/services/toast.service';\nexport * from './lib/services/mention-parser.service';\n// AI-aware mention suggestion engine (BaseSingleton — use MentionAutocompleteService.Instance).\n// NOTE: the generic MentionSuggestion TYPE lives in @memberjunction/ng-composer — import it\n// from there directly (no re-exports between packages).\nexport * from './lib/services/mention-autocomplete.service';\nexport * from './lib/services/collection-permission.service';\nexport * from './lib/services/artifact-permission.service';\nexport * from './lib/services/artifact-use-tracking.service';\nexport * from './lib/services/collection-state.service';\nexport * from './lib/services/conversation-attachment.service';\nexport * from './lib/services/graphql-attachment-blob-store';\nexport * from './lib/services/ui-command-handler.service';\nexport * from './lib/services/conversation-bridge.service';\nexport * from './lib/services/realtime-session.service';\nexport * from './lib/services/browser-realtime-media-host';\n// NOTE: the realtime session types (RealtimeCaption, RealtimeConnectionState,\n// RealtimeSessionRunOptions, …), the channel plugin base class, and the delegation-result\n// parser now live in `@memberjunction/realtime-runtime`. Import them from there directly —\n// MJ does not re-export across package boundaries.\nexport * from './lib/services/realtime-pairing';\nexport * from './lib/services/user-authorization';\nexport * from './lib/services/realtime-sessions-adapter';\nexport * from './lib/services/realtime-session-review.service';\n\n// Components\nexport * from './lib/components/workspace/conversation-workspace.component';\nexport * from './lib/components/navigation/conversation-navigation.component';\nexport * from './lib/components/sidebar/conversation-sidebar.component';\nexport * from './lib/components/sidebar/routines-section.component';\nexport * from './lib/components/conversation/conversation-list.component';\nexport * from './lib/components/conversation/conversation-chat-area.component';\nexport * from './lib/components/conversation/conversation-empty-state.component';\nexport * from './lib/components/message/message-item.component';\nexport * from './lib/components/message/message-list.component';\nexport * from './lib/components/message/message-input.component';\n// AI-aware composer wrapper (mj-ai-composer): mj-message-input-box + the three AI trigger\n// plugins built in, proxying the input box's full inputs/outputs/methods surface.\nexport * from './lib/components/composer/ai-composer.component';\n// Composer trigger-provider plugins ('@' / '#' / '/') — ClassFactory-registered; also\n// directly instantiable for explicit provider lists.\nexport * from './lib/composer-plugins/base-conversation-mention.provider';\nexport * from './lib/composer-plugins/agent-mention.provider';\nexport * from './lib/composer-plugins/record-mention.provider';\nexport * from './lib/composer-plugins/skill-command.provider';\nexport * from './lib/composer-plugins/load-composer-plugins';\n// NOTE: MessageInputBoxComponent, MentionEditorComponent (+ PendingAttachment), and\n// MentionDropdownComponent live in @memberjunction/ng-composer — import from there directly.\nexport * from './lib/components/message/conversation-message-rating.component';\nexport * from './lib/components/collection/collection-tree.component';\nexport * from './lib/components/collection/collection-view.component';\nexport * from './lib/components/collection/collections-full-view.component';\nexport * from './lib/components/collection/collection-artifact-card.component';\nexport * from './lib/components/collection/artifact-collection-picker-modal.component';\nexport * from './lib/components/collection/collection-share-modal.component';\nexport * from './lib/components/artifact/artifact-share-modal.component';\nexport * from './lib/components/project/project-selector.component';\nexport * from './lib/components/project/project-form-modal.component';\nexport * from './lib/components/task/tasks-full-view.component';\nexport * from './lib/components/tasks/task-widget.component';\nexport * from './lib/components/agent/agent-process-panel.component';\nexport * from './lib/components/agent/active-agent-indicator.component';\nexport * from './lib/components/active-tasks/active-tasks-panel.component';\nexport * from './lib/components/share/share-modal.component';\nexport * from './lib/components/notification/notification-badge.component';\nexport * from './lib/components/notification/activity-indicator.component';\nexport * from './lib/components/toast/toast.component';\nexport * from './lib/components/global-tasks/global-tasks-panel.component';\nexport * from './lib/components/attachment/image-viewer.component';\nexport * from './lib/components/overlay/chat-overlay.component';\n\n// Components declared AND exported by ConversationsModule but previously missing\n// from public-api. They are used in the templates of exported components (e.g.\n// mj-conversation-chat-area), so a consumer app compiling in Angular's\n// local-compilation / HMR mode fails to build (NG3004: \"Unable to import\n// component … not exported from @memberjunction/ng-conversations\") unless every\n// module-exported component is importable from the package entry point.\nexport * from './lib/components/collection/artifact-create-modal.component';\nexport * from './lib/components/collection/collection-form-modal.component';\nexport * from './lib/components/conversation/conversation-agent-picker.component';\nexport * from './lib/components/conversation/conversation-mode-picker.component';\nexport * from './lib/components/conversation/pinned-messages-panel.component';\nexport * from './lib/components/dialogs/input-dialog.component';\nexport * from './lib/components/dialogs/rating-dialog.component';\nexport * from './lib/components/export/export-modal.component';\nexport * from './lib/components/library/library-full-view.component';\nexport * from './lib/components/members/members-modal.component';\nexport * from './lib/components/message/actionable-commands.component';\nexport * from './lib/components/message/workflow-plan-card.component';\nexport * from './lib/components/search/search-panel.component';\nexport * from './lib/components/shared/user-picker.component';\nexport * from './lib/components/tasks/tasks-dropdown.component';\nexport * from './lib/components/thread/thread-panel.component';\nexport * from './lib/directives/search-shortcut.directive';\n\n// PR 2c — Widget extension surface (slots, events, design tokens)\nexport * from './lib/services/conversations-runtime-bootstrap.service';\nexport * from './lib/directives/chat-slot.directive';\nexport * from './lib/components/slots/slot-interfaces';\nexport * from './lib/components/slots/mj-chat-empty-state-default.component';\nexport * from './lib/components/slots/mj-chat-agent-presence-default.component';\nexport * from './lib/components/slots/mj-chat-header-default.component';\nexport * from './lib/components/slots/mj-chat-message-extra-default.component';\nexport * from './lib/components/slots/mj-chat-demonstration-surface-default.component';\nexport * from './lib/components/slots/mj-chat-message-bubble-default.component';\nexport * from './lib/events/chat-events';\n\n// Realtime / voice (PR #2787 — co-agent realtime sessions)\nexport * from './lib/components/realtime/realtime-agent-picker.component';\n// Real-time \"call mode\" overlay + its componentized parts\nexport * from './lib/components/realtime/realtime-session-overlay.component';\nexport * from './lib/components/realtime/realtime-session-state';\nexport * from './lib/components/realtime/realtime-agent-banner.component';\nexport * from './lib/components/realtime/realtime-session-thread.component';\nexport * from './lib/components/realtime/realtime-delegation-card.component';\nexport * from './lib/components/realtime/realtime-activity-rail.component';\nexport * from './lib/components/realtime/realtime-surface-tabs.component';\nexport * from './lib/components/realtime/realtime-surface-tabs.model';\nexport * from './lib/components/realtime/realtime-surface-panel-prefs';\nexport * from './lib/components/realtime/realtime-disclosure';\nexport * from './lib/components/realtime/realtime-audio-visuals';\nexport * from './lib/components/realtime/realtime-composer.component';\nexport * from './lib/components/realtime/realtime-channel-strip.component';\n// Conversation-timeline collapse of past realtime sessions (one card per session) + its pure grouping pass\nexport * from './lib/components/realtime/realtime-session-timeline-card.component';\nexport * from './lib/utils/realtime-session-timeline';\n// Pluggable interactive-channel contract (registry-resolved client plugins) + pane host\nexport * from './lib/components/realtime/channels/client-context-channel';\nexport * from './lib/components/realtime/channels/realtime-channel-pane.component';\nexport * from './lib/components/realtime/channels/channel-onboarding-panel.component';\n// Live whiteboard channel plugin + artifact viewer (thin consumers of the generic board).\n// NOTE: the whiteboard itself (engine, tools, components, export builders) lives in\n// @memberjunction/ng-whiteboard — import board types/components from there directly.\nexport * from './lib/components/realtime/whiteboard/whiteboard-channel';\nexport * from './lib/components/realtime/whiteboard/whiteboard-artifact-viewer.component';\n// Remote Browser channel plugin (client-direct, server-hosted browser) + its live surface + tools.\nexport * from './lib/components/realtime/remote-browser/remote-browser-channel';\nexport * from './lib/components/realtime/remote-browser/remote-browser-surface.component';\nexport * from './lib/components/realtime/remote-browser/remote-browser-tools';\nexport * from './lib/components/realtime/remote-browser/remote-browser-audio-player';\n// Media channel plugin (Tabs-layout media display surface) + its state engine, tools, and surface.\nexport * from './lib/components/realtime/media/media-channel';\nexport * from './lib/components/realtime/media/media-channel-state';\nexport * from './lib/components/realtime/media/media-channel-tools';\nexport * from './lib/components/realtime/media/realtime-media-surface.component';\n// Time-aligned Evidence Playback component (recorded session audio synced to the transcript).\nexport * from './lib/components/realtime/evidence-playback/realtime-evidence-playback.component';\nexport * from './lib/services/composer-draft-store';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-conversations",
3
- "version": "6.1.2",
3
+ "version": "6.2.0-edge.0",
4
4
  "description": "MemberJunction: Conversation, Collection, and Artifact management components for any Angular application",
5
5
  "main": "./dist/public-api.js",
6
6
  "typings": "./dist/public-api.d.ts",
@@ -13,9 +13,9 @@
13
13
  "devDependencies": {
14
14
  "@angular/compiler": "21.2.22",
15
15
  "@angular/compiler-cli": "21.2.22",
16
+ "@memberjunction/ng-test-utils": "6.2.0-edge.0",
16
17
  "sass": "^1.97.3",
17
- "vitest": "^4.0.18",
18
- "@memberjunction/ng-test-utils": "6.1.2"
18
+ "vitest": "^4.0.18"
19
19
  },
20
20
  "peerDependencies": {
21
21
  "@angular/animations": "^21.2.22",
@@ -26,35 +26,36 @@
26
26
  "@angular/platform-browser": "^21.2.22"
27
27
  },
28
28
  "dependencies": {
29
- "@memberjunction/ai": "6.1.2",
30
- "@memberjunction/ai-agent-client": "6.1.2",
31
- "@memberjunction/ai-core-plus": "6.1.2",
32
- "@memberjunction/ai-engine-base": "6.1.2",
33
- "@memberjunction/ai-realtime-client": "6.1.2",
34
- "@memberjunction/conversations-runtime": "6.1.2",
35
- "@memberjunction/core": "6.1.2",
36
- "@memberjunction/core-entities": "6.1.2",
37
- "@memberjunction/global": "6.1.2",
38
- "@memberjunction/graphql-dataprovider": "6.1.2",
39
- "@memberjunction/interactive-component-types": "6.1.2",
40
- "@memberjunction/ng-agent-client": "6.1.2",
41
- "@memberjunction/ng-artifacts": "6.1.2",
42
- "@memberjunction/ng-base-types": "6.1.2",
43
- "@memberjunction/ng-code-editor": "6.1.2",
44
- "@memberjunction/ng-composer": "6.1.2",
45
- "@memberjunction/ng-container-directives": "6.1.2",
46
- "@memberjunction/ng-forms": "6.1.2",
47
- "@memberjunction/ng-markdown": "6.1.2",
48
- "@memberjunction/ng-media-player": "6.1.2",
49
- "@memberjunction/ng-notifications": "6.1.2",
50
- "@memberjunction/ng-resource-permissions": "6.1.2",
51
- "@memberjunction/ng-shared-generic": "6.1.2",
52
- "@memberjunction/ng-task-graph-editor": "6.1.2",
53
- "@memberjunction/ng-tasks": "6.1.2",
54
- "@memberjunction/ng-testing": "6.1.2",
55
- "@memberjunction/ng-ui-components": "6.1.2",
56
- "@memberjunction/ng-user-routines": "6.1.2",
57
- "@memberjunction/ng-whiteboard": "6.1.2",
29
+ "@memberjunction/ai": "6.2.0-edge.0",
30
+ "@memberjunction/ai-agent-client": "6.2.0-edge.0",
31
+ "@memberjunction/ai-core-plus": "6.2.0-edge.0",
32
+ "@memberjunction/ai-engine-base": "6.2.0-edge.0",
33
+ "@memberjunction/ai-realtime-client": "6.2.0-edge.0",
34
+ "@memberjunction/conversations-runtime": "6.2.0-edge.0",
35
+ "@memberjunction/core": "6.2.0-edge.0",
36
+ "@memberjunction/core-entities": "6.2.0-edge.0",
37
+ "@memberjunction/global": "6.2.0-edge.0",
38
+ "@memberjunction/graphql-dataprovider": "6.2.0-edge.0",
39
+ "@memberjunction/interactive-component-types": "6.2.0-edge.0",
40
+ "@memberjunction/ng-agent-client": "6.2.0-edge.0",
41
+ "@memberjunction/ng-artifacts": "6.2.0-edge.0",
42
+ "@memberjunction/ng-base-types": "6.2.0-edge.0",
43
+ "@memberjunction/ng-code-editor": "6.2.0-edge.0",
44
+ "@memberjunction/ng-composer": "6.2.0-edge.0",
45
+ "@memberjunction/ng-container-directives": "6.2.0-edge.0",
46
+ "@memberjunction/ng-forms": "6.2.0-edge.0",
47
+ "@memberjunction/ng-markdown": "6.2.0-edge.0",
48
+ "@memberjunction/ng-media-player": "6.2.0-edge.0",
49
+ "@memberjunction/ng-notifications": "6.2.0-edge.0",
50
+ "@memberjunction/ng-resource-permissions": "6.2.0-edge.0",
51
+ "@memberjunction/ng-shared-generic": "6.2.0-edge.0",
52
+ "@memberjunction/ng-task-graph-editor": "6.2.0-edge.0",
53
+ "@memberjunction/ng-tasks": "6.2.0-edge.0",
54
+ "@memberjunction/ng-testing": "6.2.0-edge.0",
55
+ "@memberjunction/ng-ui-components": "6.2.0-edge.0",
56
+ "@memberjunction/ng-user-routines": "6.2.0-edge.0",
57
+ "@memberjunction/ng-whiteboard": "6.2.0-edge.0",
58
+ "@memberjunction/realtime-runtime": "6.2.0-edge.0",
58
59
  "angular-split": "^20.0.0",
59
60
  "rxjs": "^7.8.2",
60
61
  "tslib": "^2.8.1"