@taskless-app/shared 0.1.20 → 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
|
* хвост очереди распознавания не доехал до базы, — снаружи это выглядит как
|
|
@@ -102,12 +121,46 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
102
121
|
shutdown: z.ZodDefault<z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
103
122
|
drain: z.ZodDefault<z.ZodEnum<["drained", "cancelled", "abandoned"]>>;
|
|
104
123
|
unfinishedRecorders: z.ZodDefault<z.ZodNumber>;
|
|
124
|
+
/**
|
|
125
|
+
* Сколько секунд звука оборвал выход джоба и у кого именно (v3, TAS-510).
|
|
126
|
+
* «drain: cancelled» говорил, что хвост потерян, но не говорил СКОЛЬКО и
|
|
127
|
+
* ЧЕЙ — а без этого не отличить одну оборванную фразу от двенадцати
|
|
128
|
+
* человек по десять секунд. Верхняя граница: часть незакрытых секунд
|
|
129
|
+
* могла быть тишиной.
|
|
130
|
+
*/
|
|
131
|
+
lostAudioSec: z.ZodDefault<z.ZodNumber>;
|
|
132
|
+
lostTails: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
133
|
+
identity: z.ZodString;
|
|
134
|
+
name: z.ZodDefault<z.ZodString>;
|
|
135
|
+
} & {
|
|
136
|
+
seconds: z.ZodNumber;
|
|
137
|
+
}, "strip", z.ZodTypeAny, {
|
|
138
|
+
identity: string;
|
|
139
|
+
name: string;
|
|
140
|
+
seconds: number;
|
|
141
|
+
}, {
|
|
142
|
+
identity: string;
|
|
143
|
+
name?: string | undefined;
|
|
144
|
+
seconds: number;
|
|
145
|
+
}>, "many">>;
|
|
105
146
|
}, "strip", z.ZodTypeAny, {
|
|
106
147
|
drain: "abandoned" | "cancelled" | "drained";
|
|
107
148
|
unfinishedRecorders: number;
|
|
149
|
+
lostAudioSec: number;
|
|
150
|
+
lostTails: {
|
|
151
|
+
identity: string;
|
|
152
|
+
name: string;
|
|
153
|
+
seconds: number;
|
|
154
|
+
}[];
|
|
108
155
|
}, {
|
|
109
156
|
drain?: "abandoned" | "cancelled" | "drained" | undefined;
|
|
110
157
|
unfinishedRecorders?: number | undefined;
|
|
158
|
+
lostAudioSec?: number | undefined;
|
|
159
|
+
lostTails?: {
|
|
160
|
+
identity: string;
|
|
161
|
+
name?: string | undefined;
|
|
162
|
+
seconds: number;
|
|
163
|
+
}[] | undefined;
|
|
111
164
|
}>>>>;
|
|
112
165
|
}, "strip", z.ZodTypeAny, {
|
|
113
166
|
v: number;
|
|
@@ -126,7 +179,7 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
126
179
|
gaps: {
|
|
127
180
|
identity: string;
|
|
128
181
|
name: string;
|
|
129
|
-
reason: "no_audio" | "not_subscribed" | "suppressed";
|
|
182
|
+
reason: "no_audio" | "no_track" | "not_subscribed" | "suppressed";
|
|
130
183
|
}[];
|
|
131
184
|
gapCount: number;
|
|
132
185
|
repairedSubscriptions: number;
|
|
@@ -137,9 +190,16 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
137
190
|
}[];
|
|
138
191
|
stuckCount: number;
|
|
139
192
|
suppressedSegments: number;
|
|
193
|
+
presenceProbes: number;
|
|
140
194
|
shutdown: {
|
|
141
195
|
drain: "abandoned" | "cancelled" | "drained";
|
|
142
196
|
unfinishedRecorders: number;
|
|
197
|
+
lostAudioSec: number;
|
|
198
|
+
lostTails: {
|
|
199
|
+
identity: string;
|
|
200
|
+
name: string;
|
|
201
|
+
seconds: number;
|
|
202
|
+
}[];
|
|
143
203
|
} | null;
|
|
144
204
|
}, {
|
|
145
205
|
v?: number | undefined;
|
|
@@ -158,7 +218,7 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
158
218
|
gaps?: {
|
|
159
219
|
identity: string;
|
|
160
220
|
name?: string | undefined;
|
|
161
|
-
reason: "no_audio" | "not_subscribed" | "suppressed";
|
|
221
|
+
reason: "no_audio" | "no_track" | "not_subscribed" | "suppressed";
|
|
162
222
|
}[] | undefined;
|
|
163
223
|
gapCount?: number | undefined;
|
|
164
224
|
repairedSubscriptions?: number | undefined;
|
|
@@ -169,9 +229,16 @@ export declare const TranscriptCoverage: z.ZodObject<{
|
|
|
169
229
|
}[] | undefined;
|
|
170
230
|
stuckCount?: number | undefined;
|
|
171
231
|
suppressedSegments?: number | undefined;
|
|
232
|
+
presenceProbes?: number | undefined;
|
|
172
233
|
shutdown?: {
|
|
173
234
|
drain?: "abandoned" | "cancelled" | "drained" | undefined;
|
|
174
235
|
unfinishedRecorders?: number | undefined;
|
|
236
|
+
lostAudioSec?: number | undefined;
|
|
237
|
+
lostTails?: {
|
|
238
|
+
identity: string;
|
|
239
|
+
name?: string | undefined;
|
|
240
|
+
seconds: number;
|
|
241
|
+
}[] | undefined;
|
|
175
242
|
} | null | undefined;
|
|
176
243
|
}>;
|
|
177
244
|
export type TranscriptCoverage = z.infer<typeof TranscriptCoverage>;
|
|
@@ -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
|
* хвост очереди распознавания не доехал до базы, — снаружи это выглядит как
|
|
@@ -85,6 +105,15 @@ export const TranscriptCoverage = z.object({
|
|
|
85
105
|
.object({
|
|
86
106
|
drain: z.enum(["drained", "cancelled", "abandoned"]).default("drained"),
|
|
87
107
|
unfinishedRecorders: z.number().int().min(0).default(0),
|
|
108
|
+
/**
|
|
109
|
+
* Сколько секунд звука оборвал выход джоба и у кого именно (v3, TAS-510).
|
|
110
|
+
* «drain: cancelled» говорил, что хвост потерян, но не говорил СКОЛЬКО и
|
|
111
|
+
* ЧЕЙ — а без этого не отличить одну оборванную фразу от двенадцати
|
|
112
|
+
* человек по десять секунд. Верхняя граница: часть незакрытых секунд
|
|
113
|
+
* могла быть тишиной.
|
|
114
|
+
*/
|
|
115
|
+
lostAudioSec: z.number().min(0).default(0),
|
|
116
|
+
lostTails: z.array(Person.extend({ seconds: z.number().min(0) })).default([]),
|
|
88
117
|
})
|
|
89
118
|
.nullish()
|
|
90
119
|
.default(null),
|
|
@@ -140,6 +169,7 @@ export function pluralPeople(n) {
|
|
|
140
169
|
/** Человеческая причина провала — одними словами в UI и в логах. */
|
|
141
170
|
export const TRANSCRIPT_COVERAGE_GAP_LABEL = {
|
|
142
171
|
not_subscribed: "дорожку не слушали",
|
|
172
|
+
no_track: "дорожки от него не было",
|
|
143
173
|
no_audio: "звук не доехал",
|
|
144
174
|
suppressed: "речь распозналась, но не записалась",
|
|
145
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",
|