@taskless-app/shared 0.1.21 → 0.1.22
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.
|
@@ -4,14 +4,19 @@ import { z } from "zod";
|
|
|
4
4
|
* знает, была ли подписка и шли ли PCM-кадры; здесь мы её читаем.
|
|
5
5
|
*
|
|
6
6
|
* `not_subscribed` — публиковал аудио, а рекордера на дорожке не было ни разу;
|
|
7
|
+
* `no_track` — аудио не публиковал ВОВСЕ, но просидел в комнате дольше
|
|
8
|
+
* порога сверки присутствия (пять минут). Про этих людей до
|
|
9
|
+
* TAS-511 отчёт говорил «слушатель»: Дима Гальянов, 39 минут
|
|
10
|
+
* в звонке, ноль реплик — и ни строки о нём в логе агента;
|
|
7
11
|
* `no_audio` — подписка была, но ни одного кадра не доехало;
|
|
8
12
|
* `suppressed` — сегменты распознавались, но их выбрасывал анти-дубль
|
|
9
13
|
* «участник вышел» (собственно баг PRJ3-101).
|
|
10
14
|
*
|
|
11
15
|
* Молчавших и слушателей здесь НЕТ: их ноль объяснён, и сигналом он не
|
|
12
|
-
* является — иначе предупреждение висело бы на каждом созвоне.
|
|
16
|
+
* является — иначе предупреждение висело бы на каждом созвоне. `no_track` —
|
|
17
|
+
* ровно граница между этими двумя случаями, и проводит её время в комнате.
|
|
13
18
|
*/
|
|
14
|
-
export declare const TranscriptCoverageGapReason: z.ZodEnum<["not_subscribed", "no_audio", "suppressed"]>;
|
|
19
|
+
export declare const TranscriptCoverageGapReason: z.ZodEnum<["not_subscribed", "no_track", "no_audio", "suppressed"]>;
|
|
15
20
|
export type TranscriptCoverageGapReason = z.infer<typeof TranscriptCoverageGapReason>;
|
|
16
21
|
/**
|
|
17
22
|
* Отчёт агента за одну сессию.
|
|
@@ -21,7 +26,15 @@ export type TranscriptCoverageGapReason = z.infer<typeof TranscriptCoverageGapRe
|
|
|
21
26
|
* поля должно давать «нет данных», а не отбрасывать весь отчёт целиком.
|
|
22
27
|
*/
|
|
23
28
|
export declare const TranscriptCoverage: z.ZodObject<{
|
|
24
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Версия формата. Читателей будет больше одного — пусть будет с самого начала.
|
|
31
|
+
* v2 (TAS-500) — `repairedSubscriptions` считает доехавшие починки, а не
|
|
32
|
+
* попытки; v3 (TAS-511) — у `listeners` сузился смысл: тот, кто просидел в
|
|
33
|
+
* комнате дольше пяти минут без единой дорожки, теперь gap с причиной
|
|
34
|
+
* `no_track`, а не слушатель. По версии здесь никто не ветвится и ветвиться
|
|
35
|
+
* не должен: поля читаются по одному, отсутствующие дают значение по
|
|
36
|
+
* умолчанию — агент и api выкатываются раздельно.
|
|
37
|
+
*/
|
|
25
38
|
v: z.ZodDefault<z.ZodNumber>;
|
|
26
39
|
/** Сколько людей агент видел в комнате, включая заглянувших на минуту. */
|
|
27
40
|
participants: z.ZodDefault<z.ZodNumber>;
|
|
@@ -58,15 +71,15 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
58
71
|
identity: z.ZodString;
|
|
59
72
|
name: z.ZodDefault<z.ZodString>;
|
|
60
73
|
} & {
|
|
61
|
-
reason: z.ZodEnum<["not_subscribed", "no_audio", "suppressed"]>;
|
|
74
|
+
reason: z.ZodEnum<["not_subscribed", "no_track", "no_audio", "suppressed"]>;
|
|
62
75
|
}, "strip", z.ZodTypeAny, {
|
|
63
76
|
identity: string;
|
|
64
77
|
name: string;
|
|
65
|
-
reason: "no_audio" | "not_subscribed" | "suppressed";
|
|
78
|
+
reason: "no_audio" | "no_track" | "not_subscribed" | "suppressed";
|
|
66
79
|
}, {
|
|
67
80
|
identity: string;
|
|
68
81
|
name?: string | undefined;
|
|
69
|
-
reason: "no_audio" | "not_subscribed" | "suppressed";
|
|
82
|
+
reason: "no_audio" | "no_track" | "not_subscribed" | "suppressed";
|
|
70
83
|
}>, "many">>;
|
|
71
84
|
gapCount: z.ZodDefault<z.ZodNumber>;
|
|
72
85
|
/**
|
|
@@ -94,6 +107,12 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
94
107
|
stuckCount: z.ZodDefault<z.ZodNumber>;
|
|
95
108
|
/** Сколько распознанных сегментов выброшено анти-дублем «вышедшего». */
|
|
96
109
|
suppressedSegments: z.ZodDefault<z.ZodNumber>;
|
|
110
|
+
/**
|
|
111
|
+
* Сколько раз сверка присутствия дожимала подписку по подозрению «человека
|
|
112
|
+
* не слышат» (v3+). Ноль при непустых `no_track` в gaps читается буквально:
|
|
113
|
+
* дожимать было нечего — публикации от него нет вовсе.
|
|
114
|
+
*/
|
|
115
|
+
presenceProbes: z.ZodDefault<z.ZodNumber>;
|
|
97
116
|
/**
|
|
98
117
|
* Чем кончился выход джоба. `drain: "cancelled" | "abandoned"` означает, что
|
|
99
118
|
* хвост очереди распознавания не доехал до базы, — снаружи это выглядит как
|
|
@@ -160,7 +179,7 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
160
179
|
gaps: {
|
|
161
180
|
identity: string;
|
|
162
181
|
name: string;
|
|
163
|
-
reason: "no_audio" | "not_subscribed" | "suppressed";
|
|
182
|
+
reason: "no_audio" | "no_track" | "not_subscribed" | "suppressed";
|
|
164
183
|
}[];
|
|
165
184
|
gapCount: number;
|
|
166
185
|
repairedSubscriptions: number;
|
|
@@ -171,6 +190,7 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
171
190
|
}[];
|
|
172
191
|
stuckCount: number;
|
|
173
192
|
suppressedSegments: number;
|
|
193
|
+
presenceProbes: number;
|
|
174
194
|
shutdown: {
|
|
175
195
|
drain: "abandoned" | "cancelled" | "drained";
|
|
176
196
|
unfinishedRecorders: number;
|
|
@@ -198,7 +218,7 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
198
218
|
gaps?: {
|
|
199
219
|
identity: string;
|
|
200
220
|
name?: string | undefined;
|
|
201
|
-
reason: "no_audio" | "not_subscribed" | "suppressed";
|
|
221
|
+
reason: "no_audio" | "no_track" | "not_subscribed" | "suppressed";
|
|
202
222
|
}[] | undefined;
|
|
203
223
|
gapCount?: number | undefined;
|
|
204
224
|
repairedSubscriptions?: number | undefined;
|
|
@@ -209,6 +229,7 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
209
229
|
}[] | undefined;
|
|
210
230
|
stuckCount?: number | undefined;
|
|
211
231
|
suppressedSegments?: number | undefined;
|
|
232
|
+
presenceProbes?: number | undefined;
|
|
212
233
|
shutdown?: {
|
|
213
234
|
drain?: "abandoned" | "cancelled" | "drained" | undefined;
|
|
214
235
|
unfinishedRecorders?: number | undefined;
|
|
@@ -19,15 +19,21 @@ import { z } from "zod";
|
|
|
19
19
|
* знает, была ли подписка и шли ли PCM-кадры; здесь мы её читаем.
|
|
20
20
|
*
|
|
21
21
|
* `not_subscribed` — публиковал аудио, а рекордера на дорожке не было ни разу;
|
|
22
|
+
* `no_track` — аудио не публиковал ВОВСЕ, но просидел в комнате дольше
|
|
23
|
+
* порога сверки присутствия (пять минут). Про этих людей до
|
|
24
|
+
* TAS-511 отчёт говорил «слушатель»: Дима Гальянов, 39 минут
|
|
25
|
+
* в звонке, ноль реплик — и ни строки о нём в логе агента;
|
|
22
26
|
* `no_audio` — подписка была, но ни одного кадра не доехало;
|
|
23
27
|
* `suppressed` — сегменты распознавались, но их выбрасывал анти-дубль
|
|
24
28
|
* «участник вышел» (собственно баг PRJ3-101).
|
|
25
29
|
*
|
|
26
30
|
* Молчавших и слушателей здесь НЕТ: их ноль объяснён, и сигналом он не
|
|
27
|
-
* является — иначе предупреждение висело бы на каждом созвоне.
|
|
31
|
+
* является — иначе предупреждение висело бы на каждом созвоне. `no_track` —
|
|
32
|
+
* ровно граница между этими двумя случаями, и проводит её время в комнате.
|
|
28
33
|
*/
|
|
29
34
|
export const TranscriptCoverageGapReason = z.enum([
|
|
30
35
|
"not_subscribed",
|
|
36
|
+
"no_track",
|
|
31
37
|
"no_audio",
|
|
32
38
|
"suppressed",
|
|
33
39
|
]);
|
|
@@ -43,7 +49,15 @@ const Person = z.object({
|
|
|
43
49
|
* поля должно давать «нет данных», а не отбрасывать весь отчёт целиком.
|
|
44
50
|
*/
|
|
45
51
|
export const TranscriptCoverage = z.object({
|
|
46
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Версия формата. Читателей будет больше одного — пусть будет с самого начала.
|
|
54
|
+
* v2 (TAS-500) — `repairedSubscriptions` считает доехавшие починки, а не
|
|
55
|
+
* попытки; v3 (TAS-511) — у `listeners` сузился смысл: тот, кто просидел в
|
|
56
|
+
* комнате дольше пяти минут без единой дорожки, теперь gap с причиной
|
|
57
|
+
* `no_track`, а не слушатель. По версии здесь никто не ветвится и ветвиться
|
|
58
|
+
* не должен: поля читаются по одному, отсутствующие дают значение по
|
|
59
|
+
* умолчанию — агент и api выкатываются раздельно.
|
|
60
|
+
*/
|
|
47
61
|
v: z.number().int().default(1),
|
|
48
62
|
/** Сколько людей агент видел в комнате, включая заглянувших на минуту. */
|
|
49
63
|
participants: z.number().int().min(0).default(0),
|
|
@@ -76,6 +90,12 @@ export const TranscriptCoverage = z.object({
|
|
|
76
90
|
stuckCount: z.number().int().min(0).default(0),
|
|
77
91
|
/** Сколько распознанных сегментов выброшено анти-дублем «вышедшего». */
|
|
78
92
|
suppressedSegments: z.number().int().min(0).default(0),
|
|
93
|
+
/**
|
|
94
|
+
* Сколько раз сверка присутствия дожимала подписку по подозрению «человека
|
|
95
|
+
* не слышат» (v3+). Ноль при непустых `no_track` в gaps читается буквально:
|
|
96
|
+
* дожимать было нечего — публикации от него нет вовсе.
|
|
97
|
+
*/
|
|
98
|
+
presenceProbes: z.number().int().min(0).default(0),
|
|
79
99
|
/**
|
|
80
100
|
* Чем кончился выход джоба. `drain: "cancelled" | "abandoned"` означает, что
|
|
81
101
|
* хвост очереди распознавания не доехал до базы, — снаружи это выглядит как
|
|
@@ -149,6 +169,7 @@ export function pluralPeople(n) {
|
|
|
149
169
|
/** Человеческая причина провала — одними словами в UI и в логах. */
|
|
150
170
|
export const TRANSCRIPT_COVERAGE_GAP_LABEL = {
|
|
151
171
|
not_subscribed: "дорожку не слушали",
|
|
172
|
+
no_track: "дорожки от него не было",
|
|
152
173
|
no_audio: "звук не доехал",
|
|
153
174
|
suppressed: "речь распозналась, но не записалась",
|
|
154
175
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcriptCoverage.js","sourceRoot":"","sources":["../src/transcriptCoverage.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,oDAAoD;AACpD,EAAE;AACF,gEAAgE;AAChE,+EAA+E;AAC/E,2EAA2E;AAC3E,0EAA0E;AAC1E,EAAE;AACF,4EAA4E;AAC5E,iEAAiE;AAEjE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB
|
|
1
|
+
{"version":3,"file":"transcriptCoverage.js","sourceRoot":"","sources":["../src/transcriptCoverage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taskless-app/shared",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Shared types, Zod schemas and design tokens for the Taskless API contract — consumed by @taskless/api, @taskless/web and the Taskless mobile app.",
|
|
6
6
|
"license": "MIT",
|