@epam/ai-dial-chat-hooks 1.3.0-dev.248 → 1.3.0-dev.249

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 (45) hide show
  1. package/conversation/generation-registry.d.ts +30 -0
  2. package/conversation/generation-registry.d.ts.map +1 -0
  3. package/conversation/generation-registry.js +33 -0
  4. package/conversation/useConversationTitleEnrichmentController.d.ts +64 -0
  5. package/conversation/useConversationTitleEnrichmentController.d.ts.map +1 -0
  6. package/conversation/useConversationTitleEnrichmentController.js +155 -0
  7. package/conversation/useDeploymentChangeTracking.d.ts +14 -0
  8. package/conversation/useDeploymentChangeTracking.d.ts.map +1 -0
  9. package/conversation/useDeploymentChangeTracking.js +23 -0
  10. package/conversation/useTranscribeAudio/useTranscribeAudio.d.ts +8 -1
  11. package/conversation/useTranscribeAudio/useTranscribeAudio.d.ts.map +1 -1
  12. package/conversation/useTranscribeAudio/useTranscribeAudio.js +23 -17
  13. package/conversation.js +19 -16
  14. package/entry-points/conversation.d.ts +3 -0
  15. package/entry-points/conversation.d.ts.map +1 -1
  16. package/entry-points/external-services.d.ts +2 -0
  17. package/entry-points/external-services.d.ts.map +1 -0
  18. package/entry-points/scheduled-tasks.d.ts +2 -0
  19. package/entry-points/scheduled-tasks.d.ts.map +1 -1
  20. package/entry-points/skill-editor.d.ts +1 -0
  21. package/entry-points/skill-editor.d.ts.map +1 -1
  22. package/external-services/useExternalServiceLogin.d.ts +103 -0
  23. package/external-services/useExternalServiceLogin.d.ts.map +1 -0
  24. package/external-services/useExternalServiceLogin.js +100 -0
  25. package/external-services.d.ts +2 -0
  26. package/external-services.js +1 -0
  27. package/index.d.ts +7 -0
  28. package/index.d.ts.map +1 -1
  29. package/index.js +84 -77
  30. package/package.json +21 -16
  31. package/scheduled-task/active-scheduled-task.d.ts +58 -0
  32. package/scheduled-task/active-scheduled-task.d.ts.map +1 -0
  33. package/scheduled-task/active-scheduled-task.js +18 -0
  34. package/scheduled-task/useActiveScheduledTaskDetails.d.ts +18 -0
  35. package/scheduled-task/useActiveScheduledTaskDetails.d.ts.map +1 -0
  36. package/scheduled-task/useActiveScheduledTaskDetails.js +40 -0
  37. package/scheduled-tasks.js +3 -1
  38. package/skill-editor/useSkillFilePreviewSyncController.d.ts +41 -0
  39. package/skill-editor/useSkillFilePreviewSyncController.d.ts.map +1 -0
  40. package/skill-editor/useSkillFilePreviewSyncController.js +58 -0
  41. package/skill-editor.js +2 -1
  42. package/usage/usage-reset-time.d.ts +10 -1
  43. package/usage/usage-reset-time.d.ts.map +1 -1
  44. package/usage/usage-reset-time.js +12 -10
  45. package/usage-limits.js +6 -6
@@ -0,0 +1,30 @@
1
+ /** Lifecycle of a tracked client generation. */
2
+ export declare enum ClientGenerationStatus {
3
+ Active = "active",
4
+ Done = "done"
5
+ }
6
+ /** A generation tracked under an opaque conversation path. */
7
+ export interface GenerationEntry {
8
+ /** Caller-provided generation identity. */
9
+ generationId: string;
10
+ /** Exact conversation path. */
11
+ path: string;
12
+ /** Controller cancelled when an active generation is replaced. */
13
+ abortController: AbortController;
14
+ /** Current lifecycle state. */
15
+ status: ClientGenerationStatus;
16
+ }
17
+ /** Instance-owned registry; it has no automatic teardown or persistence. */
18
+ export interface GenerationRegistry {
19
+ /** Starts a generation, aborting the prior active entry on this path. */
20
+ startGeneration: (path: string, generationId: string) => AbortController;
21
+ /** Completes the entry only if its generation identity still matches. */
22
+ completeGeneration: (path: string, generationId: string) => void;
23
+ /** Returns the entry for the exact path. */
24
+ getGeneration: (path: string) => GenerationEntry | undefined;
25
+ /** Whether any tracked generation is active. */
26
+ hasActiveGeneration: () => boolean;
27
+ }
28
+ /** Creates an independent generation registry with stable operations. */
29
+ export declare const createGenerationRegistry: () => GenerationRegistry;
30
+ //# sourceMappingURL=generation-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-registry.d.ts","sourceRoot":"","sources":["../../src/conversation/generation-registry.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,eAAe,EAAE,eAAe,CAAC;IACjC,+BAA+B;IAC/B,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,eAAe,CAAC;IACzE,yEAAyE;IACzE,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,4CAA4C;IAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IAC7D,gDAAgD;IAChD,mBAAmB,EAAE,MAAM,OAAO,CAAC;CACpC;AAED,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,QAAO,kBA+B3C,CAAC"}
@@ -0,0 +1,33 @@
1
+ //#region src/conversation/generation-registry.ts
2
+ var e = /* @__PURE__ */ function(e) {
3
+ return e.Active = "active", e.Done = "done", e;
4
+ }({}), t = () => {
5
+ let e = /* @__PURE__ */ new Map();
6
+ return {
7
+ startGeneration: (t, n) => {
8
+ let r = e.get(t);
9
+ r?.status === "active" && r.abortController.abort();
10
+ let i = new AbortController();
11
+ return e.set(t, {
12
+ path: t,
13
+ generationId: n,
14
+ abortController: i,
15
+ status: "active"
16
+ }), i;
17
+ },
18
+ completeGeneration: (t, n) => {
19
+ let r = e.get(t);
20
+ r?.generationId === n && e.set(t, {
21
+ ...r,
22
+ status: "done"
23
+ });
24
+ },
25
+ getGeneration: (t) => e.get(t),
26
+ hasActiveGeneration: () => {
27
+ for (let t of e.values()) if (t.status === "active") return !0;
28
+ return !1;
29
+ }
30
+ };
31
+ };
32
+ //#endregion
33
+ export { e as ClientGenerationStatus, t as createGenerationRegistry };
@@ -0,0 +1,64 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ /** Completion outcome of one incremental request. */
3
+ export declare enum ConversationTitleRequestEnd {
4
+ Complete = "complete",
5
+ Budget = "budget",
6
+ Unsupported = "unsupported",
7
+ Stopped = "stopped"
8
+ }
9
+ /** Minimal list row required for title reconciliation. */
10
+ export interface ConversationTitleItem {
11
+ /** Exact resource identity. */
12
+ id: string;
13
+ /** Current display title. */
14
+ title: string;
15
+ /** Whether the title still needs enrichment. */
16
+ isTitlePending?: boolean;
17
+ }
18
+ /** Outcome of an incremental transport call. */
19
+ export interface ConversationTitleTransportResult {
20
+ /** Completion or fallback outcome. */
21
+ end: ConversationTitleRequestEnd;
22
+ /** IDs with a terminal outcome, including missing titles. */
23
+ settledIds: readonly string[];
24
+ }
25
+ /** Host transports and scheduling policies. Keep this object stable. */
26
+ export interface ConversationTitleEnrichmentOptions {
27
+ /** Fetches one JSON batch. */
28
+ getTitles: (ids: string[], signal: AbortSignal) => Promise<{
29
+ items: {
30
+ id: string;
31
+ title: string;
32
+ }[];
33
+ }>;
34
+ /** Optional incremental transport; omitted for JSON-only hosts. */
35
+ streamTitles?: (ids: string[], signal: AbortSignal, onTitle: (id: string, title: string) => void) => Promise<ConversationTitleTransportResult>;
36
+ /** Maximum IDs in each JSON batch; must be positive. */
37
+ batchSize: number;
38
+ /** Maximum IDs in each incremental request; must be positive. */
39
+ maxIds: number;
40
+ /** Maximum encoded JSON-array bytes per incremental request. */
41
+ maxBytes: number;
42
+ /** Maximum delay before buffered titles flush. */
43
+ flushMs: number;
44
+ /** Maximum buffered title count; must be positive. */
45
+ maxPendingUpdates: number;
46
+ /** Duration for which local writes override remote snapshots. */
47
+ protectionMs: number;
48
+ /** Clock for local protection; defaults to Date.now. */
49
+ now?: () => number;
50
+ }
51
+ /** Resolves list titles without blocking the initial history response. */
52
+ export declare const useConversationTitleEnrichmentController: <T extends ConversationTitleItem>(identityScope: unknown, setConversations: Dispatch<SetStateAction<T[]>>, options: ConversationTitleEnrichmentOptions) => {
53
+ applyConversationList: (items: T[], requestedAtRevision: number) => void;
54
+ getTitleRevision: () => number;
55
+ rememberTitle: (id: string, title: string, options?: {
56
+ isWriting?: boolean;
57
+ protect?: boolean;
58
+ }) => void;
59
+ forgetTitle: (id: string, isPending?: boolean) => void;
60
+ restoreTitle: (id: string, title: string) => void;
61
+ setVisibleConversationIds: (viewKey: string, ids: string[] | null) => void;
62
+ isUpdatingTitles: boolean;
63
+ };
64
+ //# sourceMappingURL=useConversationTitleEnrichmentController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConversationTitleEnrichmentController.d.ts","sourceRoot":"","sources":["../../src/conversation/useConversationTitleEnrichmentController.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,cAAc,EAKpB,MAAM,OAAO,CAAC;AAEf,qDAAqD;AACrD,oBAAY,2BAA2B;IACrC,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;CACpB;AACD,0DAA0D;AAC1D,MAAM,WAAW,qBAAqB;IACpC,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AACD,gDAAgD;AAChD,MAAM,WAAW,gCAAgC;IAC/C,sCAAsC;IACtC,GAAG,EAAE,2BAA2B,CAAC;IACjC,6DAA6D;IAC7D,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/B;AACD,wEAAwE;AACxE,MAAM,WAAW,kCAAkC;IACjD,8BAA8B;IAC9B,SAAS,EAAE,CACT,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,EAAE,WAAW,KAChB,OAAO,CAAC;QAAE,KAAK,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IACzD,mEAAmE;IACnE,YAAY,CAAC,EAAE,CACb,GAAG,EAAE,MAAM,EAAE,EACb,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,KACzC,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC/C,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AA2DD,0EAA0E;AAC1E,eAAO,MAAM,wCAAwC,GACnD,CAAC,SAAS,qBAAqB,EAE/B,eAAe,OAAO,EACtB,kBAAkB,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/C,SAAS,kCAAkC;mCAwFjC,CAAC,EAAE,uBAAuB,MAAM;;wBApClC,MAAM,SACH,MAAM,YACJ;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;sBAelB,MAAM;uBAUpC,MAAM,SAAS,MAAM;yCApChB,MAAM,OAAO,MAAM,EAAE,GAAG,IAAI;;CA+RzC,CAAC"}
@@ -0,0 +1,155 @@
1
+ import { useCallback as e, useLayoutEffect as t, useRef as n, useState as r } from "react";
2
+ //#region src/conversation/useConversationTitleEnrichmentController.ts
3
+ var i = /* @__PURE__ */ function(e) {
4
+ return e.Complete = "complete", e.Budget = "budget", e.Unsupported = "unsupported", e.Stopped = "stopped", e;
5
+ }({}), a = new TextEncoder(), o = (e, t, n) => {
6
+ let r = 2, i = [];
7
+ for (let o of e) {
8
+ if (i.length >= t) break;
9
+ let e = a.encode(JSON.stringify(o)).length + +!!i.length;
10
+ if (r + e > n) break;
11
+ r += e, i.push(o);
12
+ }
13
+ return i;
14
+ }, s = (e, t) => new Promise((n) => {
15
+ let r = () => {
16
+ cancelAnimationFrame(i), clearTimeout(a), e.removeEventListener("abort", r), n();
17
+ }, i = requestAnimationFrame(r), a = setTimeout(r, t);
18
+ e.addEventListener("abort", r, { once: !0 });
19
+ }), c = (e, t) => {
20
+ let n = new Set(e), r = /* @__PURE__ */ new Set();
21
+ for (let e of t.values()) for (let t of e) n.has(t) && r.add(t);
22
+ return r.size === 0 ? e : [...r, ...e.filter((e) => !r.has(e))];
23
+ }, l = (i, a, l) => {
24
+ let { getTitles: u, streamTitles: d, batchSize: f, maxIds: p, maxBytes: m, flushMs: h, maxPendingUpdates: g, protectionMs: _, now: v = Date.now } = l, y = n(null), b = n(/* @__PURE__ */ new Map()), x = n(/* @__PURE__ */ new Map()), S = n(/* @__PURE__ */ new Map()), C = n(/* @__PURE__ */ new Set()), w = n(0), T = n(!!d), E = n(/* @__PURE__ */ new Map()), [D, O] = r(!1);
25
+ t(() => (b.current.clear(), x.current.clear(), S.current.clear(), C.current.clear(), w.current = 0, E.current.clear(), T.current = !!d, O(!1), () => {
26
+ y.current?.abort(), y.current = null;
27
+ }), [i, d]);
28
+ let k = e(() => w.current, []), A = e((e, t) => {
29
+ t ? E.current.set(e, t) : E.current.delete(e);
30
+ }, []), j = e((e, t, n = {}) => {
31
+ let r = ++w.current;
32
+ x.current.set(e, r), b.current.set(e, {
33
+ title: t,
34
+ revision: r,
35
+ isWriting: n.isWriting,
36
+ protectedUntil: n.protect === !1 ? void 0 : v() + _
37
+ });
38
+ }, [v, _]), M = e((e, t = !1) => {
39
+ let n = ++w.current;
40
+ x.current.set(e, n), S.current.set(e, n), t ? C.current.add(e) : C.current.delete(e), b.current.delete(e);
41
+ }, []), N = e((e, t) => {
42
+ S.current.delete(e), C.current.delete(e), j(e, t, { protect: !1 });
43
+ }, [j]);
44
+ return {
45
+ applyConversationList: e((e, t) => {
46
+ y.current?.abort();
47
+ let n = new AbortController();
48
+ y.current = n;
49
+ let r = e.filter(({ id: e }) => !C.current.has(e) && (S.current.get(e) ?? 0) <= t);
50
+ for (let [e, n] of S.current) n <= t && !C.current.has(e) && S.current.delete(e);
51
+ let i = new Set(r.map(({ id: e }) => e));
52
+ for (let e of b.current.keys()) i.has(e) || b.current.delete(e);
53
+ for (let e of x.current.keys()) !i.has(e) && !S.current.has(e) && x.current.delete(e);
54
+ a(r.map((e) => {
55
+ let n = b.current.get(e.id);
56
+ return n && (e.isTitlePending || n.isWriting || (n.protectedUntil ?? 0) > v() || n.revision > t) ? {
57
+ ...e,
58
+ title: n.title,
59
+ ...(n.protectedUntil ?? 0) > v() || n.isWriting || n.revision > t ? { isTitlePending: !1 } : {}
60
+ } : (e.isTitlePending || b.current.set(e.id, {
61
+ title: e.title,
62
+ revision: x.current.get(e.id) ?? 0
63
+ }), e);
64
+ }));
65
+ let l = [...new Set(r.filter((e) => e.isTitlePending && !b.current.get(e.id)?.isWriting && (b.current.get(e.id)?.protectedUntil ?? 0) <= v() && (x.current.get(e.id) ?? 0) <= t).map((e) => e.id))], _ = new Map(l.map((e) => [e, x.current.get(e) ?? 0])), w = (e) => _.get(e) === (x.current.get(e) ?? 0), D = () => y.current === n && !n.signal.aborted;
66
+ O(l.length > 0);
67
+ let k = /* @__PURE__ */ new Map(), A, j, M = () => {
68
+ if (A !== void 0 && cancelAnimationFrame(A), clearTimeout(j), A = void 0, j = void 0, k.size === 0) return;
69
+ let e = new Map([...k].filter(([e]) => w(e)));
70
+ k.clear(), D() && e.size !== 0 && (e.forEach((e, t) => {
71
+ b.current.set(t, {
72
+ title: e,
73
+ revision: x.current.get(t) ?? 0
74
+ });
75
+ }), a((t) => {
76
+ if (!D()) return t;
77
+ let n = !1, r = t.map((t) => {
78
+ let r = e.get(t.id);
79
+ return r !== void 0 && w(t.id) && (t.title !== r || t.isTitlePending) ? (n = !0, {
80
+ ...t,
81
+ title: r,
82
+ isTitlePending: !1
83
+ }) : t;
84
+ });
85
+ return n ? r : t;
86
+ }));
87
+ };
88
+ n.signal.addEventListener("abort", M, { once: !0 });
89
+ let N = (e, t) => {
90
+ D() && w(e) && (k.set(e, t), k.size >= g ? M() : j === void 0 && (A = requestAnimationFrame(M), j = setTimeout(M, h)));
91
+ }, P = async (e) => {
92
+ for (let t = 0; t < e.length; t += f) {
93
+ if (!D()) return;
94
+ let r = e.slice(t, t + f).filter(w);
95
+ if (r.length !== 0) try {
96
+ let e = await u(r, n.signal);
97
+ if (!D()) return;
98
+ for (let { id: t, title: n } of e.items) r.includes(t) && N(t, n);
99
+ M();
100
+ } catch {
101
+ return;
102
+ }
103
+ }
104
+ }, F = async (e, t) => {
105
+ if (!d) return "unsupported";
106
+ try {
107
+ let r = new Set(e), i = await d(e, n.signal, (e, t) => {
108
+ D() && r.has(e) && N(e, t);
109
+ });
110
+ if (!D()) return "stopped";
111
+ for (let e of i.settledIds) r.has(e) && t.add(e);
112
+ return i.end;
113
+ } catch {
114
+ return "stopped";
115
+ }
116
+ };
117
+ (async () => {
118
+ let e = l;
119
+ try {
120
+ for (e.length > 0 && await s(n.signal, h); e.length > 0 && D();) {
121
+ if (e = c(e.filter(w), E.current), T.current === !1) {
122
+ await P(e);
123
+ return;
124
+ }
125
+ let t = o(e, p, m);
126
+ if (t.length === 0) return;
127
+ let r = /* @__PURE__ */ new Set(), i = await F(t, r);
128
+ if (i === "unsupported") y.current === n && (T.current = !1);
129
+ else if (e = e.filter((e) => !r.has(e)), i === "stopped" || r.size === 0) return;
130
+ }
131
+ } finally {
132
+ M(), y.current === n && O(!1);
133
+ }
134
+ })();
135
+ }, [
136
+ a,
137
+ u,
138
+ d,
139
+ f,
140
+ p,
141
+ m,
142
+ h,
143
+ g,
144
+ v
145
+ ]),
146
+ getTitleRevision: k,
147
+ rememberTitle: j,
148
+ forgetTitle: M,
149
+ restoreTitle: N,
150
+ setVisibleConversationIds: A,
151
+ isUpdatingTitles: D
152
+ };
153
+ };
154
+ //#endregion
155
+ export { i as ConversationTitleRequestEnd, l as useConversationTitleEnrichmentController };
@@ -0,0 +1,14 @@
1
+ /** Host selection and conversation lifecycle inputs. */
2
+ export interface DeploymentChangeTrackingOptions {
3
+ /** Active conversation identity; absent outside a conversation. */
4
+ conversationId: string | undefined;
5
+ /** Restored or user-selected deployment. */
6
+ selectedDeploymentId: string | null;
7
+ /** Whether conversation restoration has finished. */
8
+ isLoaded: boolean;
9
+ /** Reports user changes after restoration. */
10
+ onChange: (previous: string | null, next: string) => void;
11
+ }
12
+ /** Tracks user selection changes without treating conversation restoration as a change. */
13
+ export declare const useDeploymentChangeTracking: ({ conversationId, selectedDeploymentId, isLoaded, onChange, }: DeploymentChangeTrackingOptions) => void;
14
+ //# sourceMappingURL=useDeploymentChangeTracking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDeploymentChangeTracking.d.ts","sourceRoot":"","sources":["../../src/conversation/useDeploymentChangeTracking.ts"],"names":[],"mappings":"AACA,wDAAwD;AACxD,MAAM,WAAW,+BAA+B;IAC9C,mEAAmE;IACnE,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,4CAA4C;IAC5C,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D;AACD,2FAA2F;AAC3F,eAAO,MAAM,2BAA2B,GAAI,+DAKzC,+BAA+B,KAAG,IAoBpC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { useEffect as e, useRef as t } from "react";
2
+ //#region src/conversation/useDeploymentChangeTracking.ts
3
+ var n = ({ conversationId: n, selectedDeploymentId: r, isLoaded: i, onChange: a }) => {
4
+ let o = t(void 0);
5
+ e(() => {
6
+ if (!n || !i) {
7
+ o.current = void 0;
8
+ return;
9
+ }
10
+ let e = o.current;
11
+ o.current = {
12
+ conversationId: n,
13
+ deploymentId: r
14
+ }, e && e.conversationId === n && e.deploymentId !== r && r !== null && a(e.deploymentId, r);
15
+ }, [
16
+ n,
17
+ r,
18
+ i,
19
+ a
20
+ ]);
21
+ };
22
+ //#endregion
23
+ export { n as useDeploymentChangeTracking };
@@ -6,8 +6,15 @@ export interface TranscribeWithDeploymentParams {
6
6
  deployment: string;
7
7
  signal: AbortSignal;
8
8
  }
9
+ /** Upload file MIME policy. */
10
+ export declare enum UploadMimeTypePolicy {
11
+ Preserve = "preserve",
12
+ Normalize = "normalize"
13
+ }
9
14
  /** Parameters for {@link useTranscribeAudio}. */
10
15
  export interface UseTranscribeAudioParams {
16
+ /** File upload MIME policy; defaults to preserve. */
17
+ uploadMimeTypePolicy?: UploadMimeTypePolicy;
11
18
  /** Already-configured generated-client instance used for the ASR-model path. */
12
19
  transcriptionApi?: Pick<TranscriptionApi, 'transcribeAudio'>;
13
20
  /** Already-configured generated-client instance used to upload the recording. */
@@ -39,5 +46,5 @@ export interface UseTranscribeAudioResult {
39
46
  * library's concern — callers translate `AudioTranscriptionErrorReason` at
40
47
  * the call site.
41
48
  */
42
- export declare const useTranscribeAudio: ({ transcriptionApi, filesApi, transcribeWithDeployment, bucket, asrModelId, selectedDeploymentId, maxSizeBytes, }: UseTranscribeAudioParams) => UseTranscribeAudioResult;
49
+ export declare const useTranscribeAudio: ({ transcriptionApi, filesApi, transcribeWithDeployment, bucket, asrModelId, selectedDeploymentId, maxSizeBytes, uploadMimeTypePolicy, }: UseTranscribeAudioParams) => UseTranscribeAudioResult;
43
50
  //# sourceMappingURL=useTranscribeAudio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTranscribeAudio.d.ts","sourceRoot":"","sources":["../../../src/conversation/useTranscribeAudio/useTranscribeAudio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAShF,6EAA6E;AAC7E,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IAC7D,iFAAiF;IACjF,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACvC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CACzB,MAAM,EAAE,8BAA8B,KACnC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,uDAAuD;IACvD,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAClC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,sGAAsG;IACtG,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAI,mHAQhC,wBAAwB,KAAG,wBAyE7B,CAAC"}
1
+ {"version":3,"file":"useTranscribeAudio.d.ts","sourceRoot":"","sources":["../../../src/conversation/useTranscribeAudio/useTranscribeAudio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAShF,6EAA6E;AAC7E,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,+BAA+B;AAC/B,oBAAY,oBAAoB;IAC9B,QAAQ,aAAa;IACrB,SAAS,cAAc;CACxB;AAED,iDAAiD;AACjD,MAAM,WAAW,wBAAwB;IACvC,qDAAqD;IACrD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IAC7D,iFAAiF;IACjF,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACvC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CACzB,MAAM,EAAE,8BAA8B,KACnC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,uDAAuD;IACvD,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAClC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,sGAAsG;IACtG,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAI,yIAShC,wBAAwB,KAAG,wBAmF7B,CAAC"}
@@ -3,42 +3,48 @@ import { withTranscriptionRetry as n } from "./transcription-retry.js";
3
3
  import { normalizeMimeType as r } from "@epam/ai-dial-chat-shared";
4
4
  import { useCallback as i } from "react";
5
5
  //#region src/conversation/useTranscribeAudio/useTranscribeAudio.ts
6
- var a = ({ transcriptionApi: a, filesApi: o, transcribeWithDeployment: s, bucket: c, asrModelId: l, selectedDeploymentId: u, maxSizeBytes: d }) => ({ transcribeAudio: i(async (i, f) => {
7
- if (f.throwIfAborted(), !c || !l && !u) throw new e(t.Unavailable);
6
+ var a = /* @__PURE__ */ function(e) {
7
+ return e.Preserve = "preserve", e.Normalize = "normalize", e;
8
+ }({}), o = ({ transcriptionApi: a, filesApi: o, transcribeWithDeployment: s, bucket: c, asrModelId: l, selectedDeploymentId: u, maxSizeBytes: d, uploadMimeTypePolicy: f = "preserve" }) => ({ transcribeAudio: i(async (i, p) => {
9
+ if (p.throwIfAborted(), !c || !l && !u) throw new e(t.Unavailable);
8
10
  if (i.size > d) throw new e(t.TooLarge, d);
9
11
  try {
10
- let d = `uploads/${(/* @__PURE__ */ new Date()).toISOString().slice(0, 7)}/${encodeURIComponent(i.name)}`, { url: p } = await o.uploadFile({
12
+ let d = r(i.type), m = f === "normalize" && i.type !== d ? new File([i], i.name, {
13
+ type: d,
14
+ lastModified: i.lastModified
15
+ }) : i, h = `uploads/${(/* @__PURE__ */ new Date()).toISOString().slice(0, 7)}/${encodeURIComponent(i.name)}`, { url: g } = await o.uploadFile({
11
16
  bucket: c,
12
- path: d,
13
- file: i
14
- }, { signal: f });
15
- f.throwIfAborted();
16
- let m = r(i.type);
17
+ path: h,
18
+ file: m
19
+ }, { signal: p });
20
+ p.throwIfAborted();
21
+ let _ = r(i.type);
17
22
  if (l) {
18
23
  if (!a) throw new e(t.Unavailable);
19
24
  return await n(async () => (await a.transcribeAudio({ transcribeAudioDto: {
20
- audioUrl: p,
21
- mimeType: m
22
- } }, { signal: f })).transcript ?? "", f);
25
+ audioUrl: g,
26
+ mimeType: _
27
+ } }, { signal: p })).transcript ?? "", p);
23
28
  }
24
29
  if (!u || !s) throw new e(t.Unavailable);
25
30
  return await n(() => s({
26
- audioUrl: p,
27
- mimeType: m,
31
+ audioUrl: g,
32
+ mimeType: _,
28
33
  deployment: u,
29
- signal: f
30
- }), f);
34
+ signal: p
35
+ }), p);
31
36
  } catch (n) {
32
- throw f.aborted || n instanceof e ? n : new e(t.Failed);
37
+ throw p.aborted || n instanceof e ? n : new e(t.Failed);
33
38
  }
34
39
  }, [
35
40
  c,
36
41
  l,
37
42
  u,
38
43
  d,
44
+ f,
39
45
  o,
40
46
  a,
41
47
  s
42
48
  ]) });
43
49
  //#endregion
44
- export { a as useTranscribeAudio };
50
+ export { a as UploadMimeTypePolicy, o as useTranscribeAudio };
package/conversation.js CHANGED
@@ -20,19 +20,22 @@ import { useImportFilePicker as W } from "./conversation/useImportFilePicker/use
20
20
  import { useMessageSelectionReply as G } from "./conversation/useMessageSelectionReply/useMessageSelectionReply.js";
21
21
  import { useAttachmentUpload as K } from "./conversation/useAttachmentUpload/useAttachmentUpload.js";
22
22
  import { AudioTranscriptionError as q, AudioTranscriptionErrorReason as J } from "./conversation/useTranscribeAudio/audio-transcription-error.js";
23
- import { useTranscribeAudio as Y } from "./conversation/useTranscribeAudio/useTranscribeAudio.js";
24
- import { attachmentToDto as X, attachmentsToDtos as Z } from "./conversation/useConversationHandlers/attachment-to-dto.js";
25
- import { createMessagePair as Q } from "./conversation/useConversationHandlers/message-factory.js";
26
- import { hasActiveToolConfig as $, isAnswerIncomplete as ee, isMessageChanged as te, shouldRerunGenerationOnEdit as ne } from "./conversation/useConversationHandlers/message-utils.js";
27
- import { getStarterConversationText as re, getStarterDisplayText as ie, getStarterSubmitText as ae } from "./conversation/useConversationHandlers/starter-option.js";
28
- import { getConversationPath as oe } from "./conversation/useConversationStream/conversation-path.js";
29
- import { useConversationHandlers as se } from "./conversation/useConversationHandlers/useConversationHandlers.js";
30
- import { applyChunkToMessages as ce, mergeStages as le } from "./conversation/useConversationStream/apply-chunk.js";
31
- import { isAwaitingGenerationResume as ue } from "./conversation/useConversationStream/generation-resume.js";
32
- import { useConversationStream as de } from "./conversation/useConversationStream/useConversationStream.js";
33
- import { useChatSettingsFormConfig as fe } from "./useChatSettingsFormConfig/useChatSettingsFormConfig.js";
34
- import { useToolsMenu as pe } from "./useToolsMenu/useToolsMenu.js";
35
- import { applyActiveScheduledTaskRun as me, collapseScheduledTaskConversations as he, groupScheduledTaskConversations as ge } from "./conversation/scheduled-task-grouping.js";
36
- import { useConversationDiscovery as _e } from "./conversation/useConversationDiscovery/useConversationDiscovery.js";
37
- import { EntityPreselectionOutcome as ve, EntityPreselectionSource as ye, useEntityPreselection as be } from "./conversation/useEntityPreselection/useEntityPreselection.js";
38
- export { q as AudioTranscriptionError, J as AudioTranscriptionErrorReason, s as DEFAULT_GENERATION_CONFLICT_MESSAGE, c as DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE, l as DEFAULT_STREAM_IDLE_TIMEOUT_MS, ve as EntityPreselectionOutcome, ye as EntityPreselectionSource, u as GenerationConflictError, d as GenerationPersistenceError, f as StopCompletionError, p as StreamInterruptedError, m as StreamUpstreamError, me as applyActiveScheduledTaskRun, ce as applyChunkToMessages, X as attachmentToDto, Z as attachmentsToDtos, e as buildAnnouncementSignature, he as collapseScheduledTaskConversations, h as createChatStreamApi, C as createDeploymentChangedMessage, a as createMemoryConversationDraftStore, Q as createMessagePair, o as createWebStorageConversationDraftStore, L as deriveConversationRowActionState, y as findDeploymentForConversationId, _ as formatAppVersion, oe as getConversationPath, H as getConversationSource, w as getFormSchemaToolSyncKey, T as getLastDeploymentId, E as getLastUserMessageToolConfiguration, D as getLatestToolConfiguration, b as getModelIdCandidatesFromConversationId, x as getModelIdFromConversationId, M as getQuickAppConversationStarters, re as getStarterConversationText, ie as getStarterDisplayText, F as getStarterPopulateText, ae as getStarterSubmitText, I as getStartersFromSchema, S as getTimeOfDayGreeting, O as getToolConfigurationFromFormSchema, ge as groupScheduledTaskConversations, $ as hasActiveToolConfig, t as hasAnnouncementContent, n as hasStructuredAnnouncement, ee as isAnswerIncomplete, ue as isAwaitingGenerationResume, te as isMessageChanged, k as isMessageStreaming, N as mapStages, le as mergeStages, A as messageHasStages, j as normalizeResponseFormat, r as sanitizeAnnouncementHtml, i as sanitizeAnnouncementMessageHtml, v as sanitizeFooterHtml, ne as shouldRerunGenerationOnEdit, g as shouldWatchForDisplayNameUpdate, P as toStage, R as useActiveConversationSync, z as useAsyncConfirmDialog, K as useAttachmentUpload, fe as useChatSettingsFormConfig, B as useConversationComposerDraft, _e as useConversationDiscovery, se as useConversationHandlers, V as useConversationLookupMaps, U as useConversationPanelItems, de as useConversationStream, be as useEntityPreselection, W as useImportFilePicker, G as useMessageSelectionReply, pe as useToolsMenu, Y as useTranscribeAudio };
23
+ import { UploadMimeTypePolicy as Y, useTranscribeAudio as X } from "./conversation/useTranscribeAudio/useTranscribeAudio.js";
24
+ import { attachmentToDto as Z, attachmentsToDtos as Q } from "./conversation/useConversationHandlers/attachment-to-dto.js";
25
+ import { createMessagePair as $ } from "./conversation/useConversationHandlers/message-factory.js";
26
+ import { hasActiveToolConfig as ee, isAnswerIncomplete as te, isMessageChanged as ne, shouldRerunGenerationOnEdit as re } from "./conversation/useConversationHandlers/message-utils.js";
27
+ import { getStarterConversationText as ie, getStarterDisplayText as ae, getStarterSubmitText as oe } from "./conversation/useConversationHandlers/starter-option.js";
28
+ import { getConversationPath as se } from "./conversation/useConversationStream/conversation-path.js";
29
+ import { useConversationHandlers as ce } from "./conversation/useConversationHandlers/useConversationHandlers.js";
30
+ import { applyChunkToMessages as le, mergeStages as ue } from "./conversation/useConversationStream/apply-chunk.js";
31
+ import { isAwaitingGenerationResume as de } from "./conversation/useConversationStream/generation-resume.js";
32
+ import { useConversationStream as fe } from "./conversation/useConversationStream/useConversationStream.js";
33
+ import { useChatSettingsFormConfig as pe } from "./useChatSettingsFormConfig/useChatSettingsFormConfig.js";
34
+ import { useToolsMenu as me } from "./useToolsMenu/useToolsMenu.js";
35
+ import { applyActiveScheduledTaskRun as he, collapseScheduledTaskConversations as ge, groupScheduledTaskConversations as _e } from "./conversation/scheduled-task-grouping.js";
36
+ import { useConversationDiscovery as ve } from "./conversation/useConversationDiscovery/useConversationDiscovery.js";
37
+ import { EntityPreselectionOutcome as ye, EntityPreselectionSource as be, useEntityPreselection as xe } from "./conversation/useEntityPreselection/useEntityPreselection.js";
38
+ import { ClientGenerationStatus as Se, createGenerationRegistry as Ce } from "./conversation/generation-registry.js";
39
+ import { ConversationTitleRequestEnd as we, useConversationTitleEnrichmentController as Te } from "./conversation/useConversationTitleEnrichmentController.js";
40
+ import { useDeploymentChangeTracking as Ee } from "./conversation/useDeploymentChangeTracking.js";
41
+ export { q as AudioTranscriptionError, J as AudioTranscriptionErrorReason, Se as ClientGenerationStatus, we as ConversationTitleRequestEnd, s as DEFAULT_GENERATION_CONFLICT_MESSAGE, c as DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE, l as DEFAULT_STREAM_IDLE_TIMEOUT_MS, ye as EntityPreselectionOutcome, be as EntityPreselectionSource, u as GenerationConflictError, d as GenerationPersistenceError, f as StopCompletionError, p as StreamInterruptedError, m as StreamUpstreamError, Y as UploadMimeTypePolicy, he as applyActiveScheduledTaskRun, le as applyChunkToMessages, Z as attachmentToDto, Q as attachmentsToDtos, e as buildAnnouncementSignature, ge as collapseScheduledTaskConversations, h as createChatStreamApi, C as createDeploymentChangedMessage, Ce as createGenerationRegistry, a as createMemoryConversationDraftStore, $ as createMessagePair, o as createWebStorageConversationDraftStore, L as deriveConversationRowActionState, y as findDeploymentForConversationId, _ as formatAppVersion, se as getConversationPath, H as getConversationSource, w as getFormSchemaToolSyncKey, T as getLastDeploymentId, E as getLastUserMessageToolConfiguration, D as getLatestToolConfiguration, b as getModelIdCandidatesFromConversationId, x as getModelIdFromConversationId, M as getQuickAppConversationStarters, ie as getStarterConversationText, ae as getStarterDisplayText, F as getStarterPopulateText, oe as getStarterSubmitText, I as getStartersFromSchema, S as getTimeOfDayGreeting, O as getToolConfigurationFromFormSchema, _e as groupScheduledTaskConversations, ee as hasActiveToolConfig, t as hasAnnouncementContent, n as hasStructuredAnnouncement, te as isAnswerIncomplete, de as isAwaitingGenerationResume, ne as isMessageChanged, k as isMessageStreaming, N as mapStages, ue as mergeStages, A as messageHasStages, j as normalizeResponseFormat, r as sanitizeAnnouncementHtml, i as sanitizeAnnouncementMessageHtml, v as sanitizeFooterHtml, re as shouldRerunGenerationOnEdit, g as shouldWatchForDisplayNameUpdate, P as toStage, R as useActiveConversationSync, z as useAsyncConfirmDialog, K as useAttachmentUpload, pe as useChatSettingsFormConfig, B as useConversationComposerDraft, ve as useConversationDiscovery, ce as useConversationHandlers, V as useConversationLookupMaps, U as useConversationPanelItems, fe as useConversationStream, Te as useConversationTitleEnrichmentController, Ee as useDeploymentChangeTracking, xe as useEntityPreselection, W as useImportFilePicker, G as useMessageSelectionReply, me as useToolsMenu, X as useTranscribeAudio };
@@ -36,4 +36,7 @@ export * from '../useToolsMenu/useToolsMenu';
36
36
  export * from '../conversation/scheduled-task-grouping';
37
37
  export * from '../conversation/useConversationDiscovery/useConversationDiscovery';
38
38
  export * from '../conversation/useEntityPreselection/useEntityPreselection';
39
+ export * from '../conversation/generation-registry';
40
+ export * from '../conversation/useConversationTitleEnrichmentController';
41
+ export * from '../conversation/useDeploymentChangeTracking';
39
42
  //# sourceMappingURL=conversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/entry-points/conversation.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,uDAAuD,CAAC;AACtE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mDAAmD,CAAC;AAClE,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mEAAmE,CAAC;AAClF,cAAc,iDAAiD,CAAC;AAChE,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mFAAmF,CAAC;AAClG,cAAc,qEAAqE,CAAC;AACpF,cAAc,6DAA6D,CAAC;AAC5E,cAAc,2EAA2E,CAAC;AAC1F,cAAc,qEAAqE,CAAC;AACpF,cAAc,qEAAqE,CAAC;AACpF,cAAc,yDAAyD,CAAC;AACxE,cAAc,yDAAyD,CAAC;AACxE,cAAc,8DAA8D,CAAC;AAC7E,cAAc,uDAAuD,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,2DAA2D,CAAC;AACnE,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,yDAAyD,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,wDAAwD,CAAC;AAChE,cAAc,iEAAiE,CAAC;AAChF,OAAO,EACL,oBAAoB,EACpB,WAAW,GACZ,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AACrG,cAAc,6DAA6D,CAAC;AAC5E,cAAc,wDAAwD,CAAC;AACvE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,mEAAmE,CAAC;AAClF,cAAc,6DAA6D,CAAC"}
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/entry-points/conversation.ts"],"names":[],"mappings":"AAAA,cAAc,sCAAsC,CAAC;AACrD,cAAc,uDAAuD,CAAC;AACtE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mDAAmD,CAAC;AAClE,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mEAAmE,CAAC;AAClF,cAAc,iDAAiD,CAAC;AAChE,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mFAAmF,CAAC;AAClG,cAAc,qEAAqE,CAAC;AACpF,cAAc,6DAA6D,CAAC;AAC5E,cAAc,2EAA2E,CAAC;AAC1F,cAAc,qEAAqE,CAAC;AACpF,cAAc,qEAAqE,CAAC;AACpF,cAAc,yDAAyD,CAAC;AACxE,cAAc,yDAAyD,CAAC;AACxE,cAAc,8DAA8D,CAAC;AAC7E,cAAc,uDAAuD,CAAC;AACtE,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,2DAA2D,CAAC;AACnE,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,GACjB,MAAM,yDAAyD,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,wDAAwD,CAAC;AAChE,cAAc,iEAAiE,CAAC;AAChF,OAAO,EACL,oBAAoB,EACpB,WAAW,GACZ,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yDAAyD,CAAC;AAC9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AACrG,cAAc,6DAA6D,CAAC;AAC5E,cAAc,wDAAwD,CAAC;AACvE,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yCAAyC,CAAC;AACxD,cAAc,mEAAmE,CAAC;AAClF,cAAc,6DAA6D,CAAC;AAE5E,cAAc,qCAAqC,CAAC;AAEpD,cAAc,0DAA0D,CAAC;AAEzE,cAAc,6CAA6C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from '../external-services/useExternalServiceLogin';
2
+ //# sourceMappingURL=external-services.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-services.d.ts","sourceRoot":"","sources":["../../src/entry-points/external-services.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC"}
@@ -7,4 +7,6 @@ export * from '../scheduled-task/check-scheduled-task-auth-session-error';
7
7
  export * from '../scheduled-task/use-scheduled-tasks';
8
8
  export * from '../scheduled-task/use-scheduled-task-runs';
9
9
  export * from '../scheduled-task/useScheduledTaskSkillDisplayNames/useScheduledTaskSkillDisplayNames';
10
+ export * from '../scheduled-task/active-scheduled-task';
11
+ export * from '../scheduled-task/useActiveScheduledTaskDetails';
10
12
  //# sourceMappingURL=scheduled-tasks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduled-tasks.d.ts","sourceRoot":"","sources":["../../src/entry-points/scheduled-tasks.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uFAAuF,CAAC"}
1
+ {"version":3,"file":"scheduled-tasks.d.ts","sourceRoot":"","sources":["../../src/entry-points/scheduled-tasks.ts"],"names":[],"mappings":"AAAA,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,uCAAuC,CAAC;AACtD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,uFAAuF,CAAC;AAEtG,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC"}
@@ -7,4 +7,5 @@ export * from '../skill/useSkillFileActions';
7
7
  export * from '../skill/skill-manifest';
8
8
  export * from '../skill/useSkillArchiveImport/useSkillArchiveImport';
9
9
  export * from '../skill-editor/useSkillFileSystemPicker/useSkillFileSystemPicker';
10
+ export * from '../skill-editor/useSkillFilePreviewSyncController';
10
11
  //# sourceMappingURL=skill-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-editor.d.ts","sourceRoot":"","sources":["../../src/entry-points/skill-editor.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sDAAsD,CAAC;AACrE,cAAc,mEAAmE,CAAC"}
1
+ {"version":3,"file":"skill-editor.d.ts","sourceRoot":"","sources":["../../src/entry-points/skill-editor.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sCAAsC,CAAC;AACrD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,sDAAsD,CAAC;AACrE,cAAc,mEAAmE,CAAC;AAElF,cAAc,mDAAmD,CAAC"}