@gravity-rail/sdk 0.15.0 → 0.16.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.
- package/dist/agui.cjs +13 -1
- package/dist/agui.cjs.map +1 -1
- package/dist/agui.d.cts +5 -1
- package/dist/agui.d.ts +5 -1
- package/dist/agui.js +12 -1
- package/dist/agui.js.map +1 -1
- package/dist/{chunk-QTJQTTIR.js → chunk-4B7T6MBH.js} +223 -7
- package/dist/chunk-4B7T6MBH.js.map +1 -0
- package/dist/{client-CefA5Mxe.d.ts → client-3xYGmF3t.d.ts} +1172 -10
- package/dist/{client-BLuz00Qr.d.cts → client-BhO_UFFz.d.cts} +1172 -10
- package/dist/helpers.d.cts +2 -2
- package/dist/helpers.d.ts +2 -2
- package/dist/index.cjs +545 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +164 -9
- package/dist/index.d.ts +164 -9
- package/dist/index.js +325 -22
- package/dist/index.js.map +1 -1
- package/dist/internal.cjs +248 -6
- package/dist/internal.cjs.map +1 -1
- package/dist/internal.d.cts +301 -6
- package/dist/internal.d.ts +301 -6
- package/dist/internal.js +26 -1
- package/dist/internal.js.map +1 -1
- package/dist/{revision-state-DL1ViZ57.d.ts → revision-state-Dma10N9s.d.ts} +4 -2
- package/dist/{revision-state-axZ62kJk.d.cts → revision-state-Dx8gCQIj.d.cts} +4 -2
- package/dist/schemas.cjs +9 -1
- package/dist/schemas.cjs.map +1 -1
- package/dist/schemas.d.cts +2 -2
- package/dist/schemas.d.ts +2 -2
- package/dist/schemas.js +9 -1
- package/dist/schemas.js.map +1 -1
- package/dist/{tasks-Boi6AxGp.d.cts → tasks-vupYoJgG.d.cts} +11 -9
- package/dist/{tasks-Boi6AxGp.d.ts → tasks-vupYoJgG.d.ts} +11 -9
- package/package.json +2 -2
- package/dist/chunk-QTJQTTIR.js.map +0 -1
package/dist/agui.cjs
CHANGED
|
@@ -23,6 +23,7 @@ __export(agui_exports, {
|
|
|
23
23
|
applyAguiTextMessageEvent: () => applyAguiTextMessageEvent,
|
|
24
24
|
getAguiTextMessageContent: () => getAguiTextMessageContent,
|
|
25
25
|
getAguiTextMessageId: () => getAguiTextMessageId,
|
|
26
|
+
getAguiTextMessageMemberId: () => getAguiTextMessageMemberId,
|
|
26
27
|
getAguiTextMessageRole: () => getAguiTextMessageRole
|
|
27
28
|
});
|
|
28
29
|
module.exports = __toCommonJS(agui_exports);
|
|
@@ -40,6 +41,10 @@ function getAguiTextMessageRole(event, fallback = "assistant") {
|
|
|
40
41
|
const raw = event.role;
|
|
41
42
|
return typeof raw === "string" && raw.length > 0 ? raw : fallback;
|
|
42
43
|
}
|
|
44
|
+
function getAguiTextMessageMemberId(event) {
|
|
45
|
+
const raw = event.memberId ?? event.member_id;
|
|
46
|
+
return typeof raw === "number" && Number.isFinite(raw) ? raw : void 0;
|
|
47
|
+
}
|
|
43
48
|
function applyAguiTextMessageEvent(messages, event) {
|
|
44
49
|
const type = event.type;
|
|
45
50
|
if (typeof type !== "string") return false;
|
|
@@ -47,7 +52,13 @@ function applyAguiTextMessageEvent(messages, event) {
|
|
|
47
52
|
const messageId = getAguiTextMessageId(event);
|
|
48
53
|
if (!messageId) return false;
|
|
49
54
|
const role = getAguiTextMessageRole(event);
|
|
50
|
-
|
|
55
|
+
const memberId = getAguiTextMessageMemberId(event);
|
|
56
|
+
messages.set(messageId, {
|
|
57
|
+
id: messageId,
|
|
58
|
+
role,
|
|
59
|
+
content: "",
|
|
60
|
+
...memberId !== void 0 ? { memberId } : {}
|
|
61
|
+
});
|
|
51
62
|
return true;
|
|
52
63
|
}
|
|
53
64
|
if (type === "TEXT_MESSAGE_CONTENT") {
|
|
@@ -73,6 +84,7 @@ function applyAguiTextMessageEvent(messages, event) {
|
|
|
73
84
|
applyAguiTextMessageEvent,
|
|
74
85
|
getAguiTextMessageContent,
|
|
75
86
|
getAguiTextMessageId,
|
|
87
|
+
getAguiTextMessageMemberId,
|
|
76
88
|
getAguiTextMessageRole
|
|
77
89
|
});
|
|
78
90
|
//# sourceMappingURL=agui.cjs.map
|
package/dist/agui.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/agui/index.ts","../src/agui/text-messages.ts"],"sourcesContent":["export {\n applyAguiTextMessageEvent,\n getAguiTextMessageContent,\n getAguiTextMessageId,\n getAguiTextMessageRole,\n type TranscriptMessage,\n} from './text-messages';\n","import type { ChannelEvent } from '../realtime/types';\n\nexport interface TranscriptMessage {\n id: string;\n role: string;\n content: string;\n}\n\nexport function getAguiTextMessageId(event: ChannelEvent): string | null {\n const raw = event.messageId ?? event.message_id;\n return typeof raw === 'string' && raw.length > 0 ? raw : null;\n}\n\nexport function getAguiTextMessageContent(event: ChannelEvent): string | null {\n const raw = event.content ?? event.text ?? event.delta;\n return typeof raw === 'string' ? raw : null;\n}\n\nexport function getAguiTextMessageRole(event: ChannelEvent, fallback = 'assistant'): string {\n const raw = event.role;\n return typeof raw === 'string' && raw.length > 0 ? raw : fallback;\n}\n\nexport function applyAguiTextMessageEvent(\n messages: Map<string, TranscriptMessage>,\n event: ChannelEvent\n): boolean {\n const type = event.type;\n if (typeof type !== 'string') return false;\n\n if (type === 'TEXT_MESSAGE_START') {\n const messageId = getAguiTextMessageId(event);\n if (!messageId) return false;\n const role = getAguiTextMessageRole(event);\n messages.set(messageId, {
|
|
1
|
+
{"version":3,"sources":["../src/agui/index.ts","../src/agui/text-messages.ts"],"sourcesContent":["export {\n applyAguiTextMessageEvent,\n getAguiTextMessageContent,\n getAguiTextMessageId,\n getAguiTextMessageMemberId,\n getAguiTextMessageRole,\n type TranscriptMessage,\n} from './text-messages';\n","import type { ChannelEvent } from '../realtime/types';\n\nexport interface TranscriptMessage {\n id: string;\n role: string;\n content: string;\n /** Authoring member id when TEXT_MESSAGE_START carried it (Gravity extension). */\n memberId?: number;\n}\n\nexport function getAguiTextMessageId(event: ChannelEvent): string | null {\n const raw = event.messageId ?? event.message_id;\n return typeof raw === 'string' && raw.length > 0 ? raw : null;\n}\n\nexport function getAguiTextMessageContent(event: ChannelEvent): string | null {\n const raw = event.content ?? event.text ?? event.delta;\n return typeof raw === 'string' ? raw : null;\n}\n\nexport function getAguiTextMessageRole(event: ChannelEvent, fallback = 'assistant'): string {\n const raw = event.role;\n return typeof raw === 'string' && raw.length > 0 ? raw : fallback;\n}\n\n/** Gravity extension: authoring member on TEXT_MESSAGE_START (camel or snake). */\nexport function getAguiTextMessageMemberId(event: ChannelEvent): number | undefined {\n const raw = event.memberId ?? event.member_id;\n return typeof raw === 'number' && Number.isFinite(raw) ? raw : undefined;\n}\n\nexport function applyAguiTextMessageEvent(\n messages: Map<string, TranscriptMessage>,\n event: ChannelEvent\n): boolean {\n const type = event.type;\n if (typeof type !== 'string') return false;\n\n if (type === 'TEXT_MESSAGE_START') {\n const messageId = getAguiTextMessageId(event);\n if (!messageId) return false;\n const role = getAguiTextMessageRole(event);\n const memberId = getAguiTextMessageMemberId(event);\n messages.set(messageId, {\n id: messageId,\n role,\n content: '',\n ...(memberId !== undefined ? { memberId } : {}),\n });\n return true;\n }\n\n if (type === 'TEXT_MESSAGE_CONTENT') {\n const messageId = getAguiTextMessageId(event);\n const content = getAguiTextMessageContent(event);\n if (!messageId || content === null) return false;\n\n // CONTENT does not carry memberId per protocol — only START does.\n // Synthesize a bare message if START was missed; leave memberId unset.\n const existing =\n messages.get(messageId) ??\n ({\n id: messageId,\n role: getAguiTextMessageRole(event),\n content: '',\n } satisfies TranscriptMessage);\n\n existing.content = content;\n messages.set(messageId, existing);\n return true;\n }\n\n if (type === 'TEXT_MESSAGE_END') {\n return Boolean(getAguiTextMessageId(event));\n }\n\n return false;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACUO,SAAS,qBAAqB,OAAoC;AACtE,QAAM,MAAM,MAAM,aAAa,MAAM;AACrC,SAAO,OAAO,QAAQ,YAAY,IAAI,SAAS,IAAI,MAAM;AAC5D;AAEO,SAAS,0BAA0B,OAAoC;AAC3E,QAAM,MAAM,MAAM,WAAW,MAAM,QAAQ,MAAM;AACjD,SAAO,OAAO,QAAQ,WAAW,MAAM;AAC1C;AAEO,SAAS,uBAAuB,OAAqB,WAAW,aAAqB;AACzF,QAAM,MAAM,MAAM;AAClB,SAAO,OAAO,QAAQ,YAAY,IAAI,SAAS,IAAI,MAAM;AAC5D;AAGO,SAAS,2BAA2B,OAAyC;AACjF,QAAM,MAAM,MAAM,YAAY,MAAM;AACpC,SAAO,OAAO,QAAQ,YAAY,OAAO,SAAS,GAAG,IAAI,MAAM;AAClE;AAEO,SAAS,0BACb,UACA,OACQ;AACR,QAAM,OAAO,MAAM;AACnB,MAAI,OAAO,SAAS,SAAU,QAAO;AAErC,MAAI,SAAS,sBAAsB;AAChC,UAAM,YAAY,qBAAqB,KAAK;AAC5C,QAAI,CAAC,UAAW,QAAO;AACvB,UAAM,OAAO,uBAAuB,KAAK;AACzC,UAAM,WAAW,2BAA2B,KAAK;AACjD,aAAS,IAAI,WAAW;AAAA,MACrB,IAAI;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT,GAAI,aAAa,SAAY,EAAE,SAAS,IAAI,CAAC;AAAA,IAChD,CAAC;AACD,WAAO;AAAA,EACV;AAEA,MAAI,SAAS,wBAAwB;AAClC,UAAM,YAAY,qBAAqB,KAAK;AAC5C,UAAM,UAAU,0BAA0B,KAAK;AAC/C,QAAI,CAAC,aAAa,YAAY,KAAM,QAAO;AAI3C,UAAM,WACH,SAAS,IAAI,SAAS,KACrB;AAAA,MACE,IAAI;AAAA,MACJ,MAAM,uBAAuB,KAAK;AAAA,MAClC,SAAS;AAAA,IACZ;AAEH,aAAS,UAAU;AACnB,aAAS,IAAI,WAAW,QAAQ;AAChC,WAAO;AAAA,EACV;AAEA,MAAI,SAAS,oBAAoB;AAC9B,WAAO,QAAQ,qBAAqB,KAAK,CAAC;AAAA,EAC7C;AAEA,SAAO;AACV;","names":[]}
|
package/dist/agui.d.cts
CHANGED
|
@@ -4,10 +4,14 @@ interface TranscriptMessage {
|
|
|
4
4
|
id: string;
|
|
5
5
|
role: string;
|
|
6
6
|
content: string;
|
|
7
|
+
/** Authoring member id when TEXT_MESSAGE_START carried it (Gravity extension). */
|
|
8
|
+
memberId?: number;
|
|
7
9
|
}
|
|
8
10
|
declare function getAguiTextMessageId(event: ChannelEvent): string | null;
|
|
9
11
|
declare function getAguiTextMessageContent(event: ChannelEvent): string | null;
|
|
10
12
|
declare function getAguiTextMessageRole(event: ChannelEvent, fallback?: string): string;
|
|
13
|
+
/** Gravity extension: authoring member on TEXT_MESSAGE_START (camel or snake). */
|
|
14
|
+
declare function getAguiTextMessageMemberId(event: ChannelEvent): number | undefined;
|
|
11
15
|
declare function applyAguiTextMessageEvent(messages: Map<string, TranscriptMessage>, event: ChannelEvent): boolean;
|
|
12
16
|
|
|
13
|
-
export { type TranscriptMessage, applyAguiTextMessageEvent, getAguiTextMessageContent, getAguiTextMessageId, getAguiTextMessageRole };
|
|
17
|
+
export { type TranscriptMessage, applyAguiTextMessageEvent, getAguiTextMessageContent, getAguiTextMessageId, getAguiTextMessageMemberId, getAguiTextMessageRole };
|
package/dist/agui.d.ts
CHANGED
|
@@ -4,10 +4,14 @@ interface TranscriptMessage {
|
|
|
4
4
|
id: string;
|
|
5
5
|
role: string;
|
|
6
6
|
content: string;
|
|
7
|
+
/** Authoring member id when TEXT_MESSAGE_START carried it (Gravity extension). */
|
|
8
|
+
memberId?: number;
|
|
7
9
|
}
|
|
8
10
|
declare function getAguiTextMessageId(event: ChannelEvent): string | null;
|
|
9
11
|
declare function getAguiTextMessageContent(event: ChannelEvent): string | null;
|
|
10
12
|
declare function getAguiTextMessageRole(event: ChannelEvent, fallback?: string): string;
|
|
13
|
+
/** Gravity extension: authoring member on TEXT_MESSAGE_START (camel or snake). */
|
|
14
|
+
declare function getAguiTextMessageMemberId(event: ChannelEvent): number | undefined;
|
|
11
15
|
declare function applyAguiTextMessageEvent(messages: Map<string, TranscriptMessage>, event: ChannelEvent): boolean;
|
|
12
16
|
|
|
13
|
-
export { type TranscriptMessage, applyAguiTextMessageEvent, getAguiTextMessageContent, getAguiTextMessageId, getAguiTextMessageRole };
|
|
17
|
+
export { type TranscriptMessage, applyAguiTextMessageEvent, getAguiTextMessageContent, getAguiTextMessageId, getAguiTextMessageMemberId, getAguiTextMessageRole };
|
package/dist/agui.js
CHANGED
|
@@ -11,6 +11,10 @@ function getAguiTextMessageRole(event, fallback = "assistant") {
|
|
|
11
11
|
const raw = event.role;
|
|
12
12
|
return typeof raw === "string" && raw.length > 0 ? raw : fallback;
|
|
13
13
|
}
|
|
14
|
+
function getAguiTextMessageMemberId(event) {
|
|
15
|
+
const raw = event.memberId ?? event.member_id;
|
|
16
|
+
return typeof raw === "number" && Number.isFinite(raw) ? raw : void 0;
|
|
17
|
+
}
|
|
14
18
|
function applyAguiTextMessageEvent(messages, event) {
|
|
15
19
|
const type = event.type;
|
|
16
20
|
if (typeof type !== "string") return false;
|
|
@@ -18,7 +22,13 @@ function applyAguiTextMessageEvent(messages, event) {
|
|
|
18
22
|
const messageId = getAguiTextMessageId(event);
|
|
19
23
|
if (!messageId) return false;
|
|
20
24
|
const role = getAguiTextMessageRole(event);
|
|
21
|
-
|
|
25
|
+
const memberId = getAguiTextMessageMemberId(event);
|
|
26
|
+
messages.set(messageId, {
|
|
27
|
+
id: messageId,
|
|
28
|
+
role,
|
|
29
|
+
content: "",
|
|
30
|
+
...memberId !== void 0 ? { memberId } : {}
|
|
31
|
+
});
|
|
22
32
|
return true;
|
|
23
33
|
}
|
|
24
34
|
if (type === "TEXT_MESSAGE_CONTENT") {
|
|
@@ -43,6 +53,7 @@ export {
|
|
|
43
53
|
applyAguiTextMessageEvent,
|
|
44
54
|
getAguiTextMessageContent,
|
|
45
55
|
getAguiTextMessageId,
|
|
56
|
+
getAguiTextMessageMemberId,
|
|
46
57
|
getAguiTextMessageRole
|
|
47
58
|
};
|
|
48
59
|
//# sourceMappingURL=agui.js.map
|
package/dist/agui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/agui/text-messages.ts"],"sourcesContent":["import type { ChannelEvent } from '../realtime/types';\n\nexport interface TranscriptMessage {\n id: string;\n role: string;\n content: string;\n}\n\nexport function getAguiTextMessageId(event: ChannelEvent): string | null {\n const raw = event.messageId ?? event.message_id;\n return typeof raw === 'string' && raw.length > 0 ? raw : null;\n}\n\nexport function getAguiTextMessageContent(event: ChannelEvent): string | null {\n const raw = event.content ?? event.text ?? event.delta;\n return typeof raw === 'string' ? raw : null;\n}\n\nexport function getAguiTextMessageRole(event: ChannelEvent, fallback = 'assistant'): string {\n const raw = event.role;\n return typeof raw === 'string' && raw.length > 0 ? raw : fallback;\n}\n\nexport function applyAguiTextMessageEvent(\n messages: Map<string, TranscriptMessage>,\n event: ChannelEvent\n): boolean {\n const type = event.type;\n if (typeof type !== 'string') return false;\n\n if (type === 'TEXT_MESSAGE_START') {\n const messageId = getAguiTextMessageId(event);\n if (!messageId) return false;\n const role = getAguiTextMessageRole(event);\n messages.set(messageId, {
|
|
1
|
+
{"version":3,"sources":["../src/agui/text-messages.ts"],"sourcesContent":["import type { ChannelEvent } from '../realtime/types';\n\nexport interface TranscriptMessage {\n id: string;\n role: string;\n content: string;\n /** Authoring member id when TEXT_MESSAGE_START carried it (Gravity extension). */\n memberId?: number;\n}\n\nexport function getAguiTextMessageId(event: ChannelEvent): string | null {\n const raw = event.messageId ?? event.message_id;\n return typeof raw === 'string' && raw.length > 0 ? raw : null;\n}\n\nexport function getAguiTextMessageContent(event: ChannelEvent): string | null {\n const raw = event.content ?? event.text ?? event.delta;\n return typeof raw === 'string' ? raw : null;\n}\n\nexport function getAguiTextMessageRole(event: ChannelEvent, fallback = 'assistant'): string {\n const raw = event.role;\n return typeof raw === 'string' && raw.length > 0 ? raw : fallback;\n}\n\n/** Gravity extension: authoring member on TEXT_MESSAGE_START (camel or snake). */\nexport function getAguiTextMessageMemberId(event: ChannelEvent): number | undefined {\n const raw = event.memberId ?? event.member_id;\n return typeof raw === 'number' && Number.isFinite(raw) ? raw : undefined;\n}\n\nexport function applyAguiTextMessageEvent(\n messages: Map<string, TranscriptMessage>,\n event: ChannelEvent\n): boolean {\n const type = event.type;\n if (typeof type !== 'string') return false;\n\n if (type === 'TEXT_MESSAGE_START') {\n const messageId = getAguiTextMessageId(event);\n if (!messageId) return false;\n const role = getAguiTextMessageRole(event);\n const memberId = getAguiTextMessageMemberId(event);\n messages.set(messageId, {\n id: messageId,\n role,\n content: '',\n ...(memberId !== undefined ? { memberId } : {}),\n });\n return true;\n }\n\n if (type === 'TEXT_MESSAGE_CONTENT') {\n const messageId = getAguiTextMessageId(event);\n const content = getAguiTextMessageContent(event);\n if (!messageId || content === null) return false;\n\n // CONTENT does not carry memberId per protocol — only START does.\n // Synthesize a bare message if START was missed; leave memberId unset.\n const existing =\n messages.get(messageId) ??\n ({\n id: messageId,\n role: getAguiTextMessageRole(event),\n content: '',\n } satisfies TranscriptMessage);\n\n existing.content = content;\n messages.set(messageId, existing);\n return true;\n }\n\n if (type === 'TEXT_MESSAGE_END') {\n return Boolean(getAguiTextMessageId(event));\n }\n\n return false;\n}\n"],"mappings":";AAUO,SAAS,qBAAqB,OAAoC;AACtE,QAAM,MAAM,MAAM,aAAa,MAAM;AACrC,SAAO,OAAO,QAAQ,YAAY,IAAI,SAAS,IAAI,MAAM;AAC5D;AAEO,SAAS,0BAA0B,OAAoC;AAC3E,QAAM,MAAM,MAAM,WAAW,MAAM,QAAQ,MAAM;AACjD,SAAO,OAAO,QAAQ,WAAW,MAAM;AAC1C;AAEO,SAAS,uBAAuB,OAAqB,WAAW,aAAqB;AACzF,QAAM,MAAM,MAAM;AAClB,SAAO,OAAO,QAAQ,YAAY,IAAI,SAAS,IAAI,MAAM;AAC5D;AAGO,SAAS,2BAA2B,OAAyC;AACjF,QAAM,MAAM,MAAM,YAAY,MAAM;AACpC,SAAO,OAAO,QAAQ,YAAY,OAAO,SAAS,GAAG,IAAI,MAAM;AAClE;AAEO,SAAS,0BACb,UACA,OACQ;AACR,QAAM,OAAO,MAAM;AACnB,MAAI,OAAO,SAAS,SAAU,QAAO;AAErC,MAAI,SAAS,sBAAsB;AAChC,UAAM,YAAY,qBAAqB,KAAK;AAC5C,QAAI,CAAC,UAAW,QAAO;AACvB,UAAM,OAAO,uBAAuB,KAAK;AACzC,UAAM,WAAW,2BAA2B,KAAK;AACjD,aAAS,IAAI,WAAW;AAAA,MACrB,IAAI;AAAA,MACJ;AAAA,MACA,SAAS;AAAA,MACT,GAAI,aAAa,SAAY,EAAE,SAAS,IAAI,CAAC;AAAA,IAChD,CAAC;AACD,WAAO;AAAA,EACV;AAEA,MAAI,SAAS,wBAAwB;AAClC,UAAM,YAAY,qBAAqB,KAAK;AAC5C,UAAM,UAAU,0BAA0B,KAAK;AAC/C,QAAI,CAAC,aAAa,YAAY,KAAM,QAAO;AAI3C,UAAM,WACH,SAAS,IAAI,SAAS,KACrB;AAAA,MACE,IAAI;AAAA,MACJ,MAAM,uBAAuB,KAAK;AAAA,MAClC,SAAS;AAAA,IACZ;AAEH,aAAS,UAAU;AACnB,aAAS,IAAI,WAAW,QAAQ;AAChC,WAAO;AAAA,EACV;AAEA,MAAI,SAAS,oBAAoB;AAC9B,WAAO,QAAQ,qBAAqB,KAAK,CAAC;AAAA,EAC7C;AAEA,SAAO;AACV;","names":[]}
|
|
@@ -268,6 +268,18 @@ var AIModelsApi = class extends BaseApiClient {
|
|
|
268
268
|
const url = queryString ? `ai-models/realtime?${queryString}` : "ai-models/realtime";
|
|
269
269
|
return this.fetch(url);
|
|
270
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* Get the voice presets offered by the simplified voice picker.
|
|
273
|
+
*
|
|
274
|
+
* A preset bundles a realtime speech-to-speech model with one of its native
|
|
275
|
+
* voices and the settings recommended alongside it, so choosing a voice is
|
|
276
|
+
* a single decision. Apply one by assigning its `config` wholesale; compare
|
|
277
|
+
* against it to tell a preset selection from a customised ("Custom") one.
|
|
278
|
+
* The full engine/voice/settings matrix lives on `getRealtimeModels`.
|
|
279
|
+
*/
|
|
280
|
+
async getVoicePresets() {
|
|
281
|
+
return this.fetch("ai-models/voice-presets");
|
|
282
|
+
}
|
|
271
283
|
/**
|
|
272
284
|
* Get available voice models with metadata
|
|
273
285
|
*/
|
|
@@ -1397,6 +1409,10 @@ var ChatsApi = class extends BaseApiClient {
|
|
|
1397
1409
|
`w/${wid}/chats/${chatId}/skills`
|
|
1398
1410
|
);
|
|
1399
1411
|
}
|
|
1412
|
+
/** List built-in skills that can be selected before starting a Manager Chat. */
|
|
1413
|
+
async getManagerSkills(wid) {
|
|
1414
|
+
return this.fetch(`w/${wid}/chats/manager/skills`);
|
|
1415
|
+
}
|
|
1400
1416
|
/** List chat IDs that need a response. */
|
|
1401
1417
|
async getChatsNeedsResponse(wid) {
|
|
1402
1418
|
return this.fetch(`w/${wid}/chats/needs-response`);
|
|
@@ -2805,9 +2821,9 @@ var DocumoFaxApi = class extends BaseApiClient {
|
|
|
2805
2821
|
params?.status?.forEach((value) => query.append("status", value));
|
|
2806
2822
|
if (params?.receivedAfter) query.set("receivedAfter", params.receivedAfter);
|
|
2807
2823
|
if (params?.receivedBefore) query.set("receivedBefore", params.receivedBefore);
|
|
2808
|
-
const
|
|
2824
|
+
const suffix2 = query.toString() === "" ? "" : `?${query.toString()}`;
|
|
2809
2825
|
return this.fetch(
|
|
2810
|
-
`w/${wid}/app-connections/documo-fax/faxes${
|
|
2826
|
+
`w/${wid}/app-connections/documo-fax/faxes${suffix2}`
|
|
2811
2827
|
);
|
|
2812
2828
|
}
|
|
2813
2829
|
/**
|
|
@@ -4862,15 +4878,19 @@ var OrgApi = class extends BaseApiClient {
|
|
|
4862
4878
|
async getA2PStatus(orgUuid) {
|
|
4863
4879
|
return this.fetch(`o/${orgUuid}/phone-numbers/a2p/status`);
|
|
4864
4880
|
}
|
|
4881
|
+
/** Return fixed phone-number and outbound-messaging prices. */
|
|
4882
|
+
async getPhoneBillingPricing(orgUuid) {
|
|
4883
|
+
return this.fetch(`o/${orgUuid}/phone-numbers/pricing`);
|
|
4884
|
+
}
|
|
4865
4885
|
/**
|
|
4866
4886
|
* Start A2P brand registration under a legal entity. `legalEntityUuid`
|
|
4867
4887
|
* is required — brands register per legal entity (Customer Profile);
|
|
4868
4888
|
* there is no primary-entity fallback.
|
|
4869
4889
|
*/
|
|
4870
|
-
async startA2PRegistration(orgUuid, legalEntityUuid, brandName, brandDescription) {
|
|
4890
|
+
async startA2PRegistration(orgUuid, legalEntityUuid, brandName, brandDescription, brandUuid = null) {
|
|
4871
4891
|
return this.fetch(`o/${orgUuid}/phone-numbers/a2p/start`, {
|
|
4872
4892
|
method: "POST",
|
|
4873
|
-
body: JSON.stringify({ legalEntityUuid, brandName, brandDescription })
|
|
4893
|
+
body: JSON.stringify({ legalEntityUuid, brandName, brandDescription, brandUuid })
|
|
4874
4894
|
});
|
|
4875
4895
|
}
|
|
4876
4896
|
/**
|
|
@@ -5076,14 +5096,34 @@ var OrgApi = class extends BaseApiClient {
|
|
|
5076
5096
|
);
|
|
5077
5097
|
}
|
|
5078
5098
|
/**
|
|
5079
|
-
* The brand
|
|
5080
|
-
*
|
|
5099
|
+
* The brand's enrollment-form template URL (carries `?brand=…`, no
|
|
5100
|
+
* credential). `url` is null until a Site is linked. Do not append a
|
|
5101
|
+
* patient identifier to this URL — use {@link mintA2PBrandEnrollmentLink}
|
|
5102
|
+
* to get a patient-ready link instead.
|
|
5081
5103
|
*/
|
|
5082
5104
|
async getA2PBrandEnrollmentUrl(orgUuid, brandUuid) {
|
|
5083
5105
|
return this.fetch(
|
|
5084
5106
|
`o/${orgUuid}/a2p-brands/${brandUuid}/enrollment-url`
|
|
5085
5107
|
);
|
|
5086
5108
|
}
|
|
5109
|
+
/**
|
|
5110
|
+
* Mint a patient-ready enrollment link for one patient.
|
|
5111
|
+
*
|
|
5112
|
+
* The returned URL carries a fresh, expiring, single-use `?grant=…` bound to
|
|
5113
|
+
* the member that `externalId` resolves to. `externalId` (the patient's
|
|
5114
|
+
* CRM/EHR identifier) travels in the request body, never the query string,
|
|
5115
|
+
* so it stays out of access logs. When it matches no member, the
|
|
5116
|
+
* credential-free template URL is returned rather than an error.
|
|
5117
|
+
*/
|
|
5118
|
+
async mintA2PBrandEnrollmentLink(orgUuid, brandUuid, externalId) {
|
|
5119
|
+
return this.fetch(
|
|
5120
|
+
`o/${orgUuid}/a2p-brands/${brandUuid}/enrollment-url`,
|
|
5121
|
+
{
|
|
5122
|
+
method: "POST",
|
|
5123
|
+
body: JSON.stringify({ externalId })
|
|
5124
|
+
}
|
|
5125
|
+
);
|
|
5126
|
+
}
|
|
5087
5127
|
/**
|
|
5088
5128
|
* List available member roles for a workspace in the organization.
|
|
5089
5129
|
*/
|
|
@@ -7738,6 +7778,7 @@ var EventRuleEventType = /* @__PURE__ */ ((EventRuleEventType2) => {
|
|
|
7738
7778
|
EventRuleEventType2["DATA_RECORD_UPDATED"] = "data_record:updated";
|
|
7739
7779
|
EventRuleEventType2["DATA_RECORD_CHANGED"] = "data_record:changed";
|
|
7740
7780
|
EventRuleEventType2["CHAT_CREATED"] = "chat:created";
|
|
7781
|
+
EventRuleEventType2["CHAT_SUMMARY"] = "chat:summary";
|
|
7741
7782
|
EventRuleEventType2["CHAT_CALLBACK"] = "chat:callback";
|
|
7742
7783
|
EventRuleEventType2["MEMBER_UPDATED"] = "member:updated";
|
|
7743
7784
|
EventRuleEventType2["ROUTINE_TRIGGERED"] = "routine:triggered";
|
|
@@ -8418,6 +8459,20 @@ var WorkspacesApi = class extends BaseApiClient {
|
|
|
8418
8459
|
if (featured !== void 0) params.set("featured", String(featured));
|
|
8419
8460
|
return this.fetch(`products?${params.toString()}`);
|
|
8420
8461
|
}
|
|
8462
|
+
/**
|
|
8463
|
+
* Check whether a promo code is usable, without redeeming it.
|
|
8464
|
+
*
|
|
8465
|
+
* Reserves nothing, so it is safe to call as a form field settles. Redemption
|
|
8466
|
+
* happens server-side after checkout completes, when the organization and its
|
|
8467
|
+
* subscription exist.
|
|
8468
|
+
*/
|
|
8469
|
+
async previewPromoCode(code, options) {
|
|
8470
|
+
return this.fetch("promo-codes/preview", {
|
|
8471
|
+
method: "POST",
|
|
8472
|
+
body: JSON.stringify({ code }),
|
|
8473
|
+
signal: options?.signal
|
|
8474
|
+
});
|
|
8475
|
+
}
|
|
8421
8476
|
/** Get a publicly accessible product by ID. */
|
|
8422
8477
|
async getPublicProduct(id) {
|
|
8423
8478
|
return this.fetch(`products/${id}`);
|
|
@@ -8769,6 +8824,118 @@ var MotdApi = class extends BaseApiClient {
|
|
|
8769
8824
|
}
|
|
8770
8825
|
};
|
|
8771
8826
|
|
|
8827
|
+
// src/api/tracked-links.ts
|
|
8828
|
+
function withFilters(params, options) {
|
|
8829
|
+
if (options.dateFrom) params.append("dateFrom", options.dateFrom);
|
|
8830
|
+
if (options.dateTo) params.append("dateTo", options.dateTo);
|
|
8831
|
+
if (options.workflowId !== void 0) params.append("workflowId", String(options.workflowId));
|
|
8832
|
+
return params;
|
|
8833
|
+
}
|
|
8834
|
+
function suffix(params) {
|
|
8835
|
+
const query = params.toString();
|
|
8836
|
+
return query ? `?${query}` : "";
|
|
8837
|
+
}
|
|
8838
|
+
var TrackedLinksApi = class extends BaseApiClient {
|
|
8839
|
+
/** Header counters plus whether shortening is configured and enabled. */
|
|
8840
|
+
async getTrackedLinkSummary(wid, options = {}) {
|
|
8841
|
+
const params = withFilters(new URLSearchParams(), options);
|
|
8842
|
+
return this.fetch(
|
|
8843
|
+
`w/${wid}/tracked-links/summary${suffix(params)}`
|
|
8844
|
+
);
|
|
8845
|
+
}
|
|
8846
|
+
/**
|
|
8847
|
+
* Known destination URLs, most recent first. Powers the "Clicked link"
|
|
8848
|
+
* member-filter autocomplete, so it stays unaggregated and cheap.
|
|
8849
|
+
*/
|
|
8850
|
+
async getTrackedLinkDestinations(wid, options = {}) {
|
|
8851
|
+
const params = new URLSearchParams();
|
|
8852
|
+
if (options.q) params.append("q", options.q);
|
|
8853
|
+
if (options.limit !== void 0) params.append("limit", String(options.limit));
|
|
8854
|
+
return this.fetch(
|
|
8855
|
+
`w/${wid}/tracked-links/destinations${suffix(params)}`
|
|
8856
|
+
);
|
|
8857
|
+
}
|
|
8858
|
+
/**
|
|
8859
|
+
* Register a destination an author can reference as `{{links.<key>}}`.
|
|
8860
|
+
*
|
|
8861
|
+
* The URL is deduplicated server-side, so registering one the workspace
|
|
8862
|
+
* already knows adopts that destination — including a row the retired
|
|
8863
|
+
* auto-harvest left unnamed, whose click history then carries forward
|
|
8864
|
+
* under the new key. Registering a URL that already has a *different* key
|
|
8865
|
+
* is a 409: renaming is what `updateTrackedLinkDestination` is for.
|
|
8866
|
+
*
|
|
8867
|
+
* Keys use the same grammar as snippet keys: lowercase letters, digits,
|
|
8868
|
+
* underscores and dots, starting with a letter (`intake_form`,
|
|
8869
|
+
* `docs.privacy`). No hyphens — Jinja2 reads `links.spring-2026` as
|
|
8870
|
+
* subtraction.
|
|
8871
|
+
*/
|
|
8872
|
+
async createTrackedLinkDestination(wid, data) {
|
|
8873
|
+
return this.fetch(`w/${wid}/tracked-links/destinations`, {
|
|
8874
|
+
method: "POST",
|
|
8875
|
+
body: JSON.stringify(data)
|
|
8876
|
+
});
|
|
8877
|
+
}
|
|
8878
|
+
/**
|
|
8879
|
+
* Re-key or relabel a destination.
|
|
8880
|
+
*
|
|
8881
|
+
* Changing `key` breaks templates: `{{links.old}}` stops resolving and the
|
|
8882
|
+
* message ships without its link. Relabelling (`name`) is always safe.
|
|
8883
|
+
* Passing `key: null` releases the handle so another destination can take
|
|
8884
|
+
* it — the non-destructive alternative to deleting, which would take the
|
|
8885
|
+
* click history with it. The URL is not editable.
|
|
8886
|
+
*/
|
|
8887
|
+
async updateTrackedLinkDestination(wid, destinationId, data) {
|
|
8888
|
+
return this.fetch(
|
|
8889
|
+
`w/${wid}/tracked-links/destinations/${destinationId}`,
|
|
8890
|
+
{ method: "PUT", body: JSON.stringify(data) }
|
|
8891
|
+
);
|
|
8892
|
+
}
|
|
8893
|
+
/** Per-destination sent / clicks / unique clickers / CTR for the window. */
|
|
8894
|
+
async getTrackedLinkStats(wid, options = {}) {
|
|
8895
|
+
const params = withFilters(new URLSearchParams(), options);
|
|
8896
|
+
if (options.page !== void 0) params.append("page", String(options.page));
|
|
8897
|
+
if (options.pageSize !== void 0) params.append("pageSize", String(options.pageSize));
|
|
8898
|
+
if (options.q) params.append("q", options.q);
|
|
8899
|
+
if (options.sortBy) params.append("sortBy", options.sortBy);
|
|
8900
|
+
if (options.sortOrder) params.append("sortOrder", options.sortOrder);
|
|
8901
|
+
return this.fetch(
|
|
8902
|
+
`w/${wid}/tracked-links${suffix(params)}`
|
|
8903
|
+
);
|
|
8904
|
+
}
|
|
8905
|
+
/** Clicks over time for the current filter selection. */
|
|
8906
|
+
async getTrackedLinkTimeseries(wid, options = {}) {
|
|
8907
|
+
const params = withFilters(new URLSearchParams(), options);
|
|
8908
|
+
if (options.destinationId !== void 0) {
|
|
8909
|
+
params.append("destinationId", String(options.destinationId));
|
|
8910
|
+
}
|
|
8911
|
+
if (options.granularity) params.append("granularity", options.granularity);
|
|
8912
|
+
if (options.tz) params.append("tz", options.tz);
|
|
8913
|
+
return this.fetch(
|
|
8914
|
+
`w/${wid}/tracked-links/timeseries${suffix(params)}`
|
|
8915
|
+
);
|
|
8916
|
+
}
|
|
8917
|
+
/**
|
|
8918
|
+
* Delete one destination: its short links stop resolving and its recorded
|
|
8919
|
+
* clicks are removed.
|
|
8920
|
+
*
|
|
8921
|
+
* Turning the workspace setting off only stops NEW links being minted —
|
|
8922
|
+
* links already delivered to members keep working. This is the deliberate
|
|
8923
|
+
* way to break them.
|
|
8924
|
+
*/
|
|
8925
|
+
async deleteTrackedLinkDestination(wid, destinationId) {
|
|
8926
|
+
return this.fetch(
|
|
8927
|
+
`w/${wid}/tracked-links/destinations/${destinationId}`,
|
|
8928
|
+
{ method: "DELETE" }
|
|
8929
|
+
);
|
|
8930
|
+
}
|
|
8931
|
+
/** Delete every destination, its links, and its clicks. Irreversible. */
|
|
8932
|
+
async clearTrackedLinkDestinations(wid) {
|
|
8933
|
+
return this.fetch(`w/${wid}/tracked-links/destinations`, {
|
|
8934
|
+
method: "DELETE"
|
|
8935
|
+
});
|
|
8936
|
+
}
|
|
8937
|
+
};
|
|
8938
|
+
|
|
8772
8939
|
// src/app-context.ts
|
|
8773
8940
|
function formatAppContextAsMarkdown(context) {
|
|
8774
8941
|
if (!context) {
|
|
@@ -8875,6 +9042,7 @@ function createApiModules(apiKey, baseUrl, customFetch) {
|
|
|
8875
9042
|
members: new MembersApi(apiKey, baseUrl, customFetch),
|
|
8876
9043
|
milestones: new MilestonesApi(apiKey, baseUrl, customFetch),
|
|
8877
9044
|
motd: new MotdApi(apiKey, baseUrl, customFetch),
|
|
9045
|
+
trackedLinks: new TrackedLinksApi(apiKey, baseUrl, customFetch),
|
|
8878
9046
|
confluence: new ConfluenceApi(apiKey, baseUrl, customFetch),
|
|
8879
9047
|
mondayIntegration: new MondayIntegrationApi(apiKey, baseUrl, customFetch),
|
|
8880
9048
|
notificationRules: new NotificationRulesApi(apiKey, baseUrl, customFetch),
|
|
@@ -8940,6 +9108,7 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
8940
9108
|
"checkSiteSlugAvailability",
|
|
8941
9109
|
"clearConnectionMemberExclusion",
|
|
8942
9110
|
"clearMemberSwitch",
|
|
9111
|
+
"clearTrackedLinkDestinations",
|
|
8943
9112
|
"clickWorkspaceSupportRequestResource",
|
|
8944
9113
|
"cloneDataType",
|
|
8945
9114
|
"cloneTask",
|
|
@@ -9015,6 +9184,7 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
9015
9184
|
"createSupervisor",
|
|
9016
9185
|
"createTask",
|
|
9017
9186
|
"createTeamsApp",
|
|
9187
|
+
"createTrackedLinkDestination",
|
|
9018
9188
|
"createWorkflow",
|
|
9019
9189
|
"createWorkflowContributor",
|
|
9020
9190
|
"createWorkflowFromTemplate",
|
|
@@ -9080,6 +9250,7 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
9080
9250
|
"deleteSupervisor",
|
|
9081
9251
|
"deleteTask",
|
|
9082
9252
|
"deleteTeamsApp",
|
|
9253
|
+
"deleteTrackedLinkDestination",
|
|
9083
9254
|
"deleteWidgetDomain",
|
|
9084
9255
|
"deleteWorkflow",
|
|
9085
9256
|
"deleteWorkflowContributor",
|
|
@@ -9204,6 +9375,7 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
9204
9375
|
"getChatModelOverride",
|
|
9205
9376
|
"getChatPhoneCalls",
|
|
9206
9377
|
"getChatSkills",
|
|
9378
|
+
"getManagerSkills",
|
|
9207
9379
|
"getChatTodos",
|
|
9208
9380
|
"getChatTokenUsage",
|
|
9209
9381
|
"getChatToolCallMessages",
|
|
@@ -9384,6 +9556,7 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
9384
9556
|
"getPublicFolder",
|
|
9385
9557
|
"getPublicFolderFiles",
|
|
9386
9558
|
"getPublicProducts",
|
|
9559
|
+
"previewPromoCode",
|
|
9387
9560
|
"getQualification",
|
|
9388
9561
|
"getQualifications",
|
|
9389
9562
|
"getRecordingInfo",
|
|
@@ -9430,6 +9603,10 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
9430
9603
|
"getTool",
|
|
9431
9604
|
"getToolCallNames",
|
|
9432
9605
|
"getToolkits",
|
|
9606
|
+
"getTrackedLinkDestinations",
|
|
9607
|
+
"getTrackedLinkStats",
|
|
9608
|
+
"getTrackedLinkSummary",
|
|
9609
|
+
"getTrackedLinkTimeseries",
|
|
9433
9610
|
"getUnreadNotificationCount",
|
|
9434
9611
|
"getUsageDashboard",
|
|
9435
9612
|
"getVariableRegistry",
|
|
@@ -9664,6 +9841,7 @@ var WORKSPACE_METHOD_NAMES = [
|
|
|
9664
9841
|
"updateTask",
|
|
9665
9842
|
"updateTeamsApp",
|
|
9666
9843
|
"updateThemeSettings",
|
|
9844
|
+
"updateTrackedLinkDestination",
|
|
9667
9845
|
"uploadFile",
|
|
9668
9846
|
"updateVoicemailStatus",
|
|
9669
9847
|
"updateWorkflow",
|
|
@@ -9761,6 +9939,7 @@ function bindChatsMethods(target, chats) {
|
|
|
9761
9939
|
target.getChatTokenUsage = chats.getChatTokenUsage.bind(chats);
|
|
9762
9940
|
target.getChatTodos = chats.getChatTodos.bind(chats);
|
|
9763
9941
|
target.getChatSkills = chats.getChatSkills.bind(chats);
|
|
9942
|
+
target.getManagerSkills = chats.getManagerSkills.bind(chats);
|
|
9764
9943
|
target.getChatsNeedsResponse = chats.getChatsNeedsResponse.bind(chats);
|
|
9765
9944
|
target.getChatsDailyCreationStats = chats.getChatsDailyCreationStats.bind(chats);
|
|
9766
9945
|
target.getToolCallNames = chats.getToolCallNames.bind(chats);
|
|
@@ -9834,6 +10013,18 @@ function bindMotdMethods(target, motd) {
|
|
|
9834
10013
|
target.getMotd = motd.getMotd.bind(motd);
|
|
9835
10014
|
}
|
|
9836
10015
|
|
|
10016
|
+
// src/client/bindings/tracked-links.ts
|
|
10017
|
+
function bindTrackedLinksMethods(target, trackedLinks) {
|
|
10018
|
+
target.getTrackedLinkSummary = trackedLinks.getTrackedLinkSummary.bind(trackedLinks);
|
|
10019
|
+
target.getTrackedLinkDestinations = trackedLinks.getTrackedLinkDestinations.bind(trackedLinks);
|
|
10020
|
+
target.getTrackedLinkStats = trackedLinks.getTrackedLinkStats.bind(trackedLinks);
|
|
10021
|
+
target.getTrackedLinkTimeseries = trackedLinks.getTrackedLinkTimeseries.bind(trackedLinks);
|
|
10022
|
+
target.createTrackedLinkDestination = trackedLinks.createTrackedLinkDestination.bind(trackedLinks);
|
|
10023
|
+
target.updateTrackedLinkDestination = trackedLinks.updateTrackedLinkDestination.bind(trackedLinks);
|
|
10024
|
+
target.deleteTrackedLinkDestination = trackedLinks.deleteTrackedLinkDestination.bind(trackedLinks);
|
|
10025
|
+
target.clearTrackedLinkDestinations = trackedLinks.clearTrackedLinkDestinations.bind(trackedLinks);
|
|
10026
|
+
}
|
|
10027
|
+
|
|
9837
10028
|
// src/client/bindings/data-types.ts
|
|
9838
10029
|
function bindDataTypesMethods(target, dataTypes) {
|
|
9839
10030
|
target.getDataTypes = dataTypes.getDataTypes.bind(dataTypes);
|
|
@@ -10329,6 +10520,7 @@ function bindToolkitsMethods(target, toolkits, templates, aiModels, customToolki
|
|
|
10329
10520
|
target.getSTTModels = aiModels.getSTTModels.bind(aiModels);
|
|
10330
10521
|
target.getTTSModels = aiModels.getTTSModels.bind(aiModels);
|
|
10331
10522
|
target.getVoiceModels = aiModels.getVoiceModels.bind(aiModels);
|
|
10523
|
+
target.getVoicePresets = aiModels.getVoicePresets.bind(aiModels);
|
|
10332
10524
|
target.getAllModels = aiModels.getAllModels.bind(aiModels);
|
|
10333
10525
|
target.getCustomToolkits = customToolkits.getCustomToolkits.bind(customToolkits);
|
|
10334
10526
|
target.getCustomToolkit = customToolkits.getCustomToolkit.bind(customToolkits);
|
|
@@ -10800,6 +10992,7 @@ var GravityRailClient = class {
|
|
|
10800
10992
|
getChatTokenUsage;
|
|
10801
10993
|
getChatTodos;
|
|
10802
10994
|
getChatSkills;
|
|
10995
|
+
getManagerSkills;
|
|
10803
10996
|
getChatsNeedsResponse;
|
|
10804
10997
|
getChatsDailyCreationStats;
|
|
10805
10998
|
getToolCallNames;
|
|
@@ -10987,6 +11180,15 @@ var GravityRailClient = class {
|
|
|
10987
11180
|
getDashboardWorkflowAssignmentStats;
|
|
10988
11181
|
// MOTD API
|
|
10989
11182
|
getMotd;
|
|
11183
|
+
// Tracked Links analytics (#10934)
|
|
11184
|
+
getTrackedLinkSummary;
|
|
11185
|
+
getTrackedLinkDestinations;
|
|
11186
|
+
getTrackedLinkStats;
|
|
11187
|
+
getTrackedLinkTimeseries;
|
|
11188
|
+
createTrackedLinkDestination;
|
|
11189
|
+
updateTrackedLinkDestination;
|
|
11190
|
+
deleteTrackedLinkDestination;
|
|
11191
|
+
clearTrackedLinkDestinations;
|
|
10990
11192
|
// Journeys API
|
|
10991
11193
|
getJourneys;
|
|
10992
11194
|
getJourney;
|
|
@@ -11091,6 +11293,7 @@ var GravityRailClient = class {
|
|
|
11091
11293
|
getProduct;
|
|
11092
11294
|
getWorkspaceProduct;
|
|
11093
11295
|
getPublicProducts;
|
|
11296
|
+
previewPromoCode;
|
|
11094
11297
|
getPublicProduct;
|
|
11095
11298
|
createProduct;
|
|
11096
11299
|
updateProduct;
|
|
@@ -11445,6 +11648,7 @@ var GravityRailClient = class {
|
|
|
11445
11648
|
getSTTModels;
|
|
11446
11649
|
getTTSModels;
|
|
11447
11650
|
getVoiceModels;
|
|
11651
|
+
getVoicePresets;
|
|
11448
11652
|
getAllModels;
|
|
11449
11653
|
getCustomToolkits;
|
|
11450
11654
|
getCustomToolkit;
|
|
@@ -11775,6 +11979,7 @@ var GravityRailClient = class {
|
|
|
11775
11979
|
bindQueriesMethods(this, apis.queries);
|
|
11776
11980
|
bindDashboardsMethods(this, apis.dashboards);
|
|
11777
11981
|
bindMotdMethods(this, apis.motd);
|
|
11982
|
+
bindTrackedLinksMethods(this, apis.trackedLinks);
|
|
11778
11983
|
bindJourneysMethods(this, apis.journeys);
|
|
11779
11984
|
bindExperimentsMethods(this, apis.experiments);
|
|
11780
11985
|
bindOperatorMethods(this, apis.operatorGroups);
|
|
@@ -12153,6 +12358,15 @@ var WorkflowAccessWarningResourceType = {
|
|
|
12153
12358
|
// src/types/widget-domain-types.ts
|
|
12154
12359
|
var WIDGET_SLUGS = ["chat", "operator", "operator-tools", "chat-app"];
|
|
12155
12360
|
|
|
12361
|
+
// src/types/generated/promo_code_service.ts
|
|
12362
|
+
var PromoCodeStatus = {
|
|
12363
|
+
active: "active",
|
|
12364
|
+
scheduled: "scheduled",
|
|
12365
|
+
expired: "expired",
|
|
12366
|
+
inactive: "inactive",
|
|
12367
|
+
exhausted: "exhausted"
|
|
12368
|
+
};
|
|
12369
|
+
|
|
12156
12370
|
// src/features/registry.ts
|
|
12157
12371
|
var FeatureCategory = /* @__PURE__ */ ((FeatureCategory2) => {
|
|
12158
12372
|
FeatureCategory2["COMMUNICATION"] = "communication";
|
|
@@ -13220,6 +13434,7 @@ export {
|
|
|
13220
13434
|
bindCallsMethods,
|
|
13221
13435
|
bindDashboardsMethods,
|
|
13222
13436
|
bindMotdMethods,
|
|
13437
|
+
bindTrackedLinksMethods,
|
|
13223
13438
|
bindDataTypesMethods,
|
|
13224
13439
|
bindMembersMethods,
|
|
13225
13440
|
bindWorkspacesMethods,
|
|
@@ -13274,6 +13489,7 @@ export {
|
|
|
13274
13489
|
AbilityConfigIssueSeverity,
|
|
13275
13490
|
WorkflowAccessWarningResourceType,
|
|
13276
13491
|
WIDGET_SLUGS,
|
|
13492
|
+
PromoCodeStatus,
|
|
13277
13493
|
FeatureCategory,
|
|
13278
13494
|
FeatureVisibility,
|
|
13279
13495
|
initializeFeatures,
|
|
@@ -13308,4 +13524,4 @@ export {
|
|
|
13308
13524
|
SCOPE_PRESETS,
|
|
13309
13525
|
getRevisionState
|
|
13310
13526
|
};
|
|
13311
|
-
//# sourceMappingURL=chunk-
|
|
13527
|
+
//# sourceMappingURL=chunk-4B7T6MBH.js.map
|