@tx5dr/contracts 1.7.2 → 1.7.4

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 (142) hide show
  1. package/dist/index.d.ts +5 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +7 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/schema/__tests__/ability.test.d.ts +2 -0
  6. package/dist/schema/__tests__/ability.test.d.ts.map +1 -0
  7. package/dist/schema/__tests__/ability.test.js +32 -0
  8. package/dist/schema/__tests__/ability.test.js.map +1 -0
  9. package/dist/schema/__tests__/audio.schema.test.js +4 -0
  10. package/dist/schema/__tests__/audio.schema.test.js.map +1 -1
  11. package/dist/schema/__tests__/cw-decoder.schema.test.d.ts +2 -0
  12. package/dist/schema/__tests__/cw-decoder.schema.test.d.ts.map +1 -0
  13. package/dist/schema/__tests__/cw-decoder.schema.test.js +114 -0
  14. package/dist/schema/__tests__/cw-decoder.schema.test.js.map +1 -0
  15. package/dist/schema/__tests__/device-ui.schema.test.d.ts +2 -0
  16. package/dist/schema/__tests__/device-ui.schema.test.d.ts.map +1 -0
  17. package/dist/schema/__tests__/device-ui.schema.test.js +111 -0
  18. package/dist/schema/__tests__/device-ui.schema.test.js.map +1 -0
  19. package/dist/schema/__tests__/operator.schema.test.d.ts +2 -0
  20. package/dist/schema/__tests__/operator.schema.test.d.ts.map +1 -0
  21. package/dist/schema/__tests__/operator.schema.test.js +23 -0
  22. package/dist/schema/__tests__/operator.schema.test.js.map +1 -0
  23. package/dist/schema/__tests__/process-monitor.schema.test.d.ts +2 -0
  24. package/dist/schema/__tests__/process-monitor.schema.test.d.ts.map +1 -0
  25. package/dist/schema/__tests__/process-monitor.schema.test.js +235 -0
  26. package/dist/schema/__tests__/process-monitor.schema.test.js.map +1 -0
  27. package/dist/schema/__tests__/radio.schema.test.d.ts +2 -0
  28. package/dist/schema/__tests__/radio.schema.test.d.ts.map +1 -0
  29. package/dist/schema/__tests__/radio.schema.test.js +143 -0
  30. package/dist/schema/__tests__/radio.schema.test.js.map +1 -0
  31. package/dist/schema/ability.d.ts +3 -1
  32. package/dist/schema/ability.d.ts.map +1 -1
  33. package/dist/schema/ability.js +11 -0
  34. package/dist/schema/ability.js.map +1 -1
  35. package/dist/schema/api-response.schema.d.ts +170 -3
  36. package/dist/schema/api-response.schema.d.ts.map +1 -1
  37. package/dist/schema/api-response.schema.js +22 -0
  38. package/dist/schema/api-response.schema.js.map +1 -1
  39. package/dist/schema/audio.schema.d.ts +369 -0
  40. package/dist/schema/audio.schema.d.ts.map +1 -1
  41. package/dist/schema/audio.schema.js +3 -0
  42. package/dist/schema/audio.schema.js.map +1 -1
  43. package/dist/schema/cpu-profile.schema.d.ts +6 -6
  44. package/dist/schema/cw-decoder.schema.d.ts +2501 -0
  45. package/dist/schema/cw-decoder.schema.d.ts.map +1 -0
  46. package/dist/schema/cw-decoder.schema.js +196 -0
  47. package/dist/schema/cw-decoder.schema.js.map +1 -0
  48. package/dist/schema/cw-keyer.schema.d.ts +368 -0
  49. package/dist/schema/cw-keyer.schema.d.ts.map +1 -0
  50. package/dist/schema/cw-keyer.schema.js +143 -0
  51. package/dist/schema/cw-keyer.schema.js.map +1 -0
  52. package/dist/schema/desktop-https.schema.js +1 -1
  53. package/dist/schema/desktop-https.schema.js.map +1 -1
  54. package/dist/schema/device-ui.schema.d.ts +1782 -0
  55. package/dist/schema/device-ui.schema.d.ts.map +1 -0
  56. package/dist/schema/device-ui.schema.js +156 -0
  57. package/dist/schema/device-ui.schema.js.map +1 -0
  58. package/dist/schema/logbook.schema.d.ts +2 -2
  59. package/dist/schema/mode.schema.d.ts +1 -0
  60. package/dist/schema/mode.schema.d.ts.map +1 -1
  61. package/dist/schema/mode.schema.js +8 -0
  62. package/dist/schema/mode.schema.js.map +1 -1
  63. package/dist/schema/operator.schema.d.ts +10 -10
  64. package/dist/schema/operator.schema.d.ts.map +1 -1
  65. package/dist/schema/operator.schema.js +6 -1
  66. package/dist/schema/operator.schema.js.map +1 -1
  67. package/dist/schema/plugin.schema.d.ts +653 -70
  68. package/dist/schema/plugin.schema.d.ts.map +1 -1
  69. package/dist/schema/plugin.schema.js +22 -2
  70. package/dist/schema/plugin.schema.js.map +1 -1
  71. package/dist/schema/process-monitor.schema.d.ts +3102 -42
  72. package/dist/schema/process-monitor.schema.d.ts.map +1 -1
  73. package/dist/schema/process-monitor.schema.js +54 -0
  74. package/dist/schema/process-monitor.schema.js.map +1 -1
  75. package/dist/schema/radio-capability.schema.d.ts +7 -7
  76. package/dist/schema/radio-capability.schema.d.ts.map +1 -1
  77. package/dist/schema/radio-capability.schema.js +41 -0
  78. package/dist/schema/radio-capability.schema.js.map +1 -1
  79. package/dist/schema/radio-power.schema.d.ts +6 -0
  80. package/dist/schema/radio-power.schema.d.ts.map +1 -1
  81. package/dist/schema/radio-profile.schema.d.ts +86 -0
  82. package/dist/schema/radio-profile.schema.d.ts.map +1 -1
  83. package/dist/schema/radio.schema.d.ts +166 -9
  84. package/dist/schema/radio.schema.d.ts.map +1 -1
  85. package/dist/schema/radio.schema.js +82 -0
  86. package/dist/schema/radio.schema.js.map +1 -1
  87. package/dist/schema/realtime.schema.d.ts +6 -6
  88. package/dist/schema/slot-info.schema.d.ts +136 -0
  89. package/dist/schema/slot-info.schema.d.ts.map +1 -1
  90. package/dist/schema/slot-info.schema.js +27 -2
  91. package/dist/schema/slot-info.schema.js.map +1 -1
  92. package/dist/schema/spectrum.schema.d.ts +24 -24
  93. package/dist/schema/voice-keyer.schema.d.ts +2 -2
  94. package/dist/schema/voice.schema.d.ts +1 -1
  95. package/dist/schema/voice.schema.d.ts.map +1 -1
  96. package/dist/schema/voice.schema.js +1 -1
  97. package/dist/schema/voice.schema.js.map +1 -1
  98. package/dist/schema/websocket.schema.d.ts +6066 -639
  99. package/dist/schema/websocket.schema.d.ts.map +1 -1
  100. package/dist/schema/websocket.schema.js +106 -4
  101. package/dist/schema/websocket.schema.js.map +1 -1
  102. package/dist/utils/__tests__/cwTiming.test.d.ts +2 -0
  103. package/dist/utils/__tests__/cwTiming.test.d.ts.map +1 -0
  104. package/dist/utils/__tests__/cwTiming.test.js +74 -0
  105. package/dist/utils/__tests__/cwTiming.test.js.map +1 -0
  106. package/dist/utils/callsign.d.ts +2 -0
  107. package/dist/utils/callsign.d.ts.map +1 -0
  108. package/dist/utils/callsign.js +8 -0
  109. package/dist/utils/callsign.js.map +1 -0
  110. package/dist/utils/cwTiming.d.ts +36 -0
  111. package/dist/utils/cwTiming.d.ts.map +1 -0
  112. package/dist/utils/cwTiming.js +155 -0
  113. package/dist/utils/cwTiming.js.map +1 -0
  114. package/package.json +1 -1
  115. package/src/index.ts +9 -0
  116. package/src/schema/__tests__/ability.test.ts +40 -0
  117. package/src/schema/__tests__/audio.schema.test.ts +4 -0
  118. package/src/schema/__tests__/cw-decoder.schema.test.ts +127 -0
  119. package/src/schema/__tests__/device-ui.schema.test.ts +122 -0
  120. package/src/schema/__tests__/operator.schema.test.ts +29 -0
  121. package/src/schema/__tests__/process-monitor.schema.test.ts +245 -0
  122. package/src/schema/__tests__/radio.schema.test.ts +160 -0
  123. package/src/schema/ability.ts +13 -0
  124. package/src/schema/api-response.schema.ts +22 -0
  125. package/src/schema/audio.schema.ts +3 -0
  126. package/src/schema/cw-decoder.schema.ts +234 -0
  127. package/src/schema/cw-keyer.schema.ts +177 -0
  128. package/src/schema/desktop-https.schema.ts +1 -1
  129. package/src/schema/device-ui.schema.ts +182 -0
  130. package/src/schema/mode.schema.ts +8 -0
  131. package/src/schema/operator.schema.ts +7 -1
  132. package/src/schema/plugin.schema.ts +28 -2
  133. package/src/schema/process-monitor.schema.ts +69 -0
  134. package/src/schema/radio-capability.schema.ts +41 -0
  135. package/src/schema/radio.schema.ts +97 -0
  136. package/src/schema/slot-info.schema.ts +33 -2
  137. package/src/schema/voice.schema.ts +1 -1
  138. package/src/schema/websocket.schema.ts +147 -4
  139. package/src/utils/__tests__/cwTiming.test.ts +91 -0
  140. package/src/utils/callsign.ts +9 -0
  141. package/src/utils/cwTiming.ts +203 -0
  142. package/test/decode-request-schema.test.ts +48 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cw-decoder.schema.d.ts","sourceRoot":"","sources":["../../src/schema/cw-decoder.schema.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAY/B,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,196 @@
1
+ import { z } from 'zod';
2
+ export const CWDecoderBackendSchema = z.enum(['deepcw-onnx']);
3
+ export const CWDecoderRuntimeBackendSchema = z.enum([
4
+ 'cpu',
5
+ 'cuda',
6
+ 'coreml',
7
+ 'directml',
8
+ 'wasm',
9
+ 'webgpu',
10
+ ]);
11
+ export const CWDecoderModelSizeSchema = z.enum(['tiny', 'small']);
12
+ export const CWDecoderModeSchema = z.enum(['streaming']);
13
+ export const CWDecoderConfigSchema = z.object({
14
+ enabled: z.boolean().default(false),
15
+ backend: CWDecoderBackendSchema.default('deepcw-onnx'),
16
+ runtimeBackend: CWDecoderRuntimeBackendSchema.default('cpu'),
17
+ modelSize: CWDecoderModelSizeSchema.default('tiny'),
18
+ language: z.string().min(1).default('en'),
19
+ mode: CWDecoderModeSchema.default('streaming'),
20
+ targetFreqHz: z.number().int().positive().default(800),
21
+ filterWidthHz: z.number().int().positive().default(800),
22
+ windowSeconds: z.number().positive().default(12),
23
+ decodeIntervalMs: z.number().int().positive().default(1000),
24
+ muteWhileTransmitting: z.boolean().default(true),
25
+ workerCount: z.number().int().positive().max(4).default(1),
26
+ minCommitChars: z.number().int().positive().default(1),
27
+ commitStability: z.number().int().positive().default(2),
28
+ maxPendingAgeMs: z.number().int().positive().default(4000),
29
+ });
30
+ export const CWDecoderTuningUpdateSchema = z.object({
31
+ targetFreqHz: z.number().int().min(100).max(1500).optional(),
32
+ filterWidthHz: z.number().int().min(100).max(800).optional(),
33
+ }).refine(value => value.targetFreqHz !== undefined || value.filterWidthHz !== undefined, {
34
+ message: 'At least one CW decoder tuning field is required',
35
+ });
36
+ export const CWDecoderBackendDescriptorSchema = z.object({
37
+ id: CWDecoderBackendSchema,
38
+ name: z.string(),
39
+ available: z.boolean(),
40
+ runtimeBackends: z.array(CWDecoderRuntimeBackendSchema).default(['cpu']),
41
+ modelSizes: z.array(CWDecoderModelSizeSchema).default(['tiny']),
42
+ languages: z.array(z.string()).default(['en']),
43
+ modes: z.array(CWDecoderModeSchema).default(['streaming']),
44
+ version: z.string().optional(),
45
+ label: z.string().optional(),
46
+ model: z.string().optional(),
47
+ runtime: z.string().optional(),
48
+ attributionName: z.string().optional(),
49
+ sourceUrl: z.string().url().optional(),
50
+ license: z.string().optional(),
51
+ error: z.string().nullable().optional(),
52
+ reason: z.string().optional(),
53
+ });
54
+ export const CWDecoderStatusStateSchema = z.enum([
55
+ 'disabled',
56
+ 'starting',
57
+ 'listening',
58
+ 'decoding',
59
+ 'muted',
60
+ 'error',
61
+ ]);
62
+ export const CWDecoderStatusSchema = z.object({
63
+ enabled: z.boolean(),
64
+ state: CWDecoderStatusStateSchema,
65
+ config: CWDecoderConfigSchema,
66
+ backend: CWDecoderBackendDescriptorSchema.optional(),
67
+ muted: z.boolean().default(false),
68
+ active: z.boolean().default(false),
69
+ lastDecodeAt: z.number().optional(),
70
+ lastError: z.string().nullable().optional(),
71
+ running: z.boolean().optional(),
72
+ backendId: CWDecoderBackendSchema.optional(),
73
+ pendingText: z.string().optional(),
74
+ committedText: z.string().optional(),
75
+ queuedSamples: z.number().int().nonnegative().optional(),
76
+ updatedAt: z.number(),
77
+ });
78
+ export const CWDecoderWordSpaceSpanSchema = z.object({
79
+ startFrame: z.number().int().nonnegative(),
80
+ endFrame: z.number().int().nonnegative(),
81
+ });
82
+ export const CWDecoderCharacterSpanSchema = z.object({
83
+ char: z.string(),
84
+ startFrame: z.number().int().nonnegative(),
85
+ endFrame: z.number().int().nonnegative(),
86
+ });
87
+ export const CWDecoderTranscriptSegmentSchema = z.object({
88
+ id: z.string(),
89
+ sessionId: z.string(),
90
+ sequence: z.number().int().nonnegative(),
91
+ text: z.string(),
92
+ plainText: z.string().optional(),
93
+ finalized: z.literal(true).default(true),
94
+ prependSpace: z.boolean().default(true),
95
+ confidence: z.number().min(0).max(1).optional(),
96
+ targetFreqHz: z.number().positive().optional(),
97
+ filterWidthHz: z.number().positive().optional(),
98
+ characterSpans: z.array(CWDecoderCharacterSpanSchema).optional(),
99
+ wordSpaceSpans: z.array(CWDecoderWordSpaceSpanSchema).optional(),
100
+ startedAt: z.number().optional(),
101
+ endedAt: z.number().nullable().optional(),
102
+ updatedAt: z.number(),
103
+ wpm: z.number().positive().optional(),
104
+ });
105
+ export const CWDecoderPendingSegmentSchema = z.object({
106
+ sessionId: z.string(),
107
+ version: z.number().int().nonnegative(),
108
+ text: z.string(),
109
+ plainText: z.string().optional(),
110
+ finalized: z.literal(false).default(false),
111
+ confidence: z.number().min(0).max(1).optional(),
112
+ targetFreqHz: z.number().positive().optional(),
113
+ filterWidthHz: z.number().positive().optional(),
114
+ characterSpans: z.array(CWDecoderCharacterSpanSchema).optional(),
115
+ wordSpaceSpans: z.array(CWDecoderWordSpaceSpanSchema).optional(),
116
+ updatedAt: z.number(),
117
+ });
118
+ export const CWDecoderStatusEventSchema = z.object({
119
+ kind: z.literal('status'),
120
+ status: CWDecoderStatusSchema,
121
+ });
122
+ export const CWDecoderTranscriptEventSchema = z.object({
123
+ kind: z.literal('transcript'),
124
+ segment: CWDecoderTranscriptSegmentSchema,
125
+ });
126
+ export const CWDecoderTranscriptResetEventSchema = z.object({
127
+ kind: z.literal('transcript_reset'),
128
+ sessionId: z.string(),
129
+ timestamp: z.number(),
130
+ });
131
+ export const CWDecoderTranscriptPendingEventSchema = z.object({
132
+ kind: z.literal('transcript_pending'),
133
+ pending: CWDecoderPendingSegmentSchema.nullable(),
134
+ timestamp: z.number(),
135
+ });
136
+ export const CWDecoderTranscriptCommitEventSchema = z.object({
137
+ kind: z.literal('transcript_commit'),
138
+ segment: CWDecoderTranscriptSegmentSchema,
139
+ timestamp: z.number(),
140
+ });
141
+ export const CWDecoderPendingEventSchema = z.object({
142
+ kind: z.literal('pending'),
143
+ text: z.string(),
144
+ confidence: z.number().min(0).max(1).optional(),
145
+ timestamp: z.number(),
146
+ });
147
+ export const CWDecoderCommitEventSchema = z.object({
148
+ kind: z.literal('commit'),
149
+ segment: CWDecoderTranscriptSegmentSchema,
150
+ text: z.string().optional(),
151
+ confidence: z.number().min(0).max(1).optional(),
152
+ timestamp: z.number().optional(),
153
+ });
154
+ export const CWDecoderPartialEventSchema = z.object({
155
+ kind: z.literal('partial'),
156
+ text: z.string(),
157
+ confidence: z.number().min(0).max(1).optional(),
158
+ timestamp: z.number(),
159
+ });
160
+ export const CWDecoderErrorEventSchema = z.object({
161
+ kind: z.literal('error'),
162
+ message: z.string(),
163
+ code: z.string().optional(),
164
+ recoverable: z.boolean().optional(),
165
+ timestamp: z.number(),
166
+ });
167
+ export const CWDecoderModelLoadEventSchema = z.object({
168
+ kind: z.literal('model_load'),
169
+ backend: CWDecoderBackendSchema,
170
+ modelSize: CWDecoderModelSizeSchema.optional(),
171
+ language: z.string().optional(),
172
+ progress: z.number().min(0).max(1).optional(),
173
+ message: z.string().optional(),
174
+ timestamp: z.number(),
175
+ });
176
+ export const CWDecoderAudioBufferEventSchema = z.object({
177
+ kind: z.literal('audio_buffer'),
178
+ queuedSamples: z.number().int().nonnegative(),
179
+ sampleRate: z.number().int().positive().optional(),
180
+ durationMs: z.number().nonnegative().optional(),
181
+ timestamp: z.number(),
182
+ });
183
+ export const CWDecoderEventSchema = z.discriminatedUnion('kind', [
184
+ CWDecoderStatusEventSchema,
185
+ CWDecoderTranscriptEventSchema,
186
+ CWDecoderTranscriptResetEventSchema,
187
+ CWDecoderTranscriptPendingEventSchema,
188
+ CWDecoderTranscriptCommitEventSchema,
189
+ CWDecoderPendingEventSchema,
190
+ CWDecoderCommitEventSchema,
191
+ CWDecoderPartialEventSchema,
192
+ CWDecoderErrorEventSchema,
193
+ CWDecoderModelLoadEventSchema,
194
+ CWDecoderAudioBufferEventSchema,
195
+ ]);
196
+ //# sourceMappingURL=cw-decoder.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cw-decoder.schema.js","sourceRoot":"","sources":["../../src/schema/cw-decoder.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,368 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * CW 键控器配置
4
+ */
5
+ export declare const CWKeyerBackendSchema: z.ZodEnum<["cat", "serial"]>;
6
+ export type CWKeyerBackend = z.infer<typeof CWKeyerBackendSchema>;
7
+ export declare const CWKeyerConfigSchema: z.ZodObject<{
8
+ /** CW 发报后端:cat=Hamlib 整报文,serial=DTR/RTS 时序键控 */
9
+ backend: z.ZodDefault<z.ZodEnum<["cat", "serial"]>>;
10
+ /** CW 键控串口路径(用于 DTR/RTS 引脚控制) */
11
+ keyPort: z.ZodString;
12
+ /** CW 键控引脚类型 */
13
+ keyMethod: z.ZodEnum<["dtr", "rts"]>;
14
+ /** 莫尔斯码速度 (WPM, 5-60) */
15
+ wpm: z.ZodDefault<z.ZodNumber>;
16
+ }, "strip", z.ZodTypeAny, {
17
+ backend: "serial" | "cat";
18
+ keyPort: string;
19
+ keyMethod: "dtr" | "rts";
20
+ wpm: number;
21
+ }, {
22
+ keyPort: string;
23
+ keyMethod: "dtr" | "rts";
24
+ backend?: "serial" | "cat" | undefined;
25
+ wpm?: number | undefined;
26
+ }>;
27
+ export type CWKeyerConfig = z.infer<typeof CWKeyerConfigSchema>;
28
+ /**
29
+ * CW 键控器状态
30
+ */
31
+ export declare const CWKeyerStatusSchema: z.ZodObject<{
32
+ /** 是否有活动键控 */
33
+ active: z.ZodBoolean;
34
+ /** 当前状态模式 */
35
+ mode: z.ZodEnum<["idle", "keying", "playing", "repeat-waiting", "error"]>;
36
+ /** 发起键控的客户端 ID */
37
+ startedBy: z.ZodNullable<z.ZodString>;
38
+ /** 发起键控的客户端显示名 */
39
+ startedByLabel: z.ZodNullable<z.ZodString>;
40
+ /** 当前播放的报文 ID */
41
+ messageId: z.ZodNullable<z.ZodString>;
42
+ /** 下次执行时间戳 (repeat-waiting 时有效) */
43
+ nextRunAt: z.ZodNullable<z.ZodNumber>;
44
+ /** 错误信息 */
45
+ error: z.ZodNullable<z.ZodString>;
46
+ /** 当前 CW 发报后端 */
47
+ backend: z.ZodOptional<z.ZodEnum<["cat", "serial"]>>;
48
+ /** 当前后端是否具备发报条件 */
49
+ backendAvailable: z.ZodOptional<z.ZodBoolean>;
50
+ /** 当前后端不可用原因 */
51
+ backendError: z.ZodOptional<z.ZodNullable<z.ZodString>>;
52
+ /** 当前正在发送的文本(只读状态字段) */
53
+ currentText: z.ZodOptional<z.ZodNullable<z.ZodString>>;
54
+ /** 最近一次发送的文本(只读状态字段) */
55
+ lastText: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
+ }, "strip", z.ZodTypeAny, {
57
+ active: boolean;
58
+ error: string | null;
59
+ mode: "error" | "idle" | "playing" | "repeat-waiting" | "keying";
60
+ startedBy: string | null;
61
+ startedByLabel: string | null;
62
+ nextRunAt: number | null;
63
+ messageId: string | null;
64
+ backend?: "serial" | "cat" | undefined;
65
+ backendAvailable?: boolean | undefined;
66
+ backendError?: string | null | undefined;
67
+ currentText?: string | null | undefined;
68
+ lastText?: string | null | undefined;
69
+ }, {
70
+ active: boolean;
71
+ error: string | null;
72
+ mode: "error" | "idle" | "playing" | "repeat-waiting" | "keying";
73
+ startedBy: string | null;
74
+ startedByLabel: string | null;
75
+ nextRunAt: number | null;
76
+ messageId: string | null;
77
+ backend?: "serial" | "cat" | undefined;
78
+ backendAvailable?: boolean | undefined;
79
+ backendError?: string | null | undefined;
80
+ currentText?: string | null | undefined;
81
+ lastText?: string | null | undefined;
82
+ }>;
83
+ export type CWKeyerStatus = z.infer<typeof CWKeyerStatusSchema>;
84
+ /**
85
+ * CW 报文槽位
86
+ */
87
+ export declare const CWMessageSlotSchema: z.ZodObject<{
88
+ /** 槽位唯一 ID */
89
+ id: z.ZodString;
90
+ /** 显示序号 (1-based) */
91
+ index: z.ZodNumber;
92
+ /** 报文标签 */
93
+ label: z.ZodString;
94
+ /** 报文文本内容 */
95
+ text: z.ZodString;
96
+ /** 是否启用循环播放 */
97
+ repeatEnabled: z.ZodBoolean;
98
+ /** 循环播放间隔(秒) */
99
+ repeatIntervalSec: z.ZodNumber;
100
+ }, "strip", z.ZodTypeAny, {
101
+ id: string;
102
+ label: string;
103
+ index: number;
104
+ repeatEnabled: boolean;
105
+ repeatIntervalSec: number;
106
+ text: string;
107
+ }, {
108
+ id: string;
109
+ label: string;
110
+ index: number;
111
+ repeatEnabled: boolean;
112
+ repeatIntervalSec: number;
113
+ text: string;
114
+ }>;
115
+ export type CWMessageSlot = z.infer<typeof CWMessageSlotSchema>;
116
+ /**
117
+ * CW 报文面板
118
+ */
119
+ export declare const CWMessagePanelSchema: z.ZodObject<{
120
+ /** 呼号 */
121
+ callsign: z.ZodString;
122
+ /** 当前槽位数 */
123
+ slotCount: z.ZodNumber;
124
+ /** 最大槽位数 */
125
+ maxSlotCount: z.ZodNumber;
126
+ /** 槽位列表 */
127
+ slots: z.ZodArray<z.ZodObject<{
128
+ /** 槽位唯一 ID */
129
+ id: z.ZodString;
130
+ /** 显示序号 (1-based) */
131
+ index: z.ZodNumber;
132
+ /** 报文标签 */
133
+ label: z.ZodString;
134
+ /** 报文文本内容 */
135
+ text: z.ZodString;
136
+ /** 是否启用循环播放 */
137
+ repeatEnabled: z.ZodBoolean;
138
+ /** 循环播放间隔(秒) */
139
+ repeatIntervalSec: z.ZodNumber;
140
+ }, "strip", z.ZodTypeAny, {
141
+ id: string;
142
+ label: string;
143
+ index: number;
144
+ repeatEnabled: boolean;
145
+ repeatIntervalSec: number;
146
+ text: string;
147
+ }, {
148
+ id: string;
149
+ label: string;
150
+ index: number;
151
+ repeatEnabled: boolean;
152
+ repeatIntervalSec: number;
153
+ text: string;
154
+ }>, "many">;
155
+ }, "strip", z.ZodTypeAny, {
156
+ callsign: string;
157
+ slotCount: number;
158
+ maxSlotCount: number;
159
+ slots: {
160
+ id: string;
161
+ label: string;
162
+ index: number;
163
+ repeatEnabled: boolean;
164
+ repeatIntervalSec: number;
165
+ text: string;
166
+ }[];
167
+ }, {
168
+ callsign: string;
169
+ slotCount: number;
170
+ maxSlotCount: number;
171
+ slots: {
172
+ id: string;
173
+ label: string;
174
+ index: number;
175
+ repeatEnabled: boolean;
176
+ repeatIntervalSec: number;
177
+ text: string;
178
+ }[];
179
+ }>;
180
+ export type CWMessagePanel = z.infer<typeof CWMessagePanelSchema>;
181
+ /**
182
+ * CW 手键动作
183
+ */
184
+ export declare const CWKeyActionSchema: z.ZodObject<{
185
+ /** 键控动作 */
186
+ action: z.ZodEnum<["key-down", "key-up"]>;
187
+ }, "strip", z.ZodTypeAny, {
188
+ action: "key-down" | "key-up";
189
+ }, {
190
+ action: "key-down" | "key-up";
191
+ }>;
192
+ export type CWKeyAction = z.infer<typeof CWKeyActionSchema>;
193
+ /**
194
+ * CW 报文占位符值(由前端根据当前 UI 上下文提供)
195
+ */
196
+ export declare const CWPlaceholderValuesSchema: z.ZodObject<{
197
+ /** 当前操作员呼号,用于 {MYCALL} */
198
+ myCall: z.ZodOptional<z.ZodString>;
199
+ /** 当前通联对象呼号,用于 {HISCALL} */
200
+ hisCall: z.ZodOptional<z.ZodString>;
201
+ /** 发送的 RST 信号报告,用于 {TRST} */
202
+ trst: z.ZodOptional<z.ZodString>;
203
+ /** 接收的 RST 信号报告,用于 {RRST} */
204
+ rrst: z.ZodOptional<z.ZodString>;
205
+ }, "strip", z.ZodTypeAny, {
206
+ myCall?: string | undefined;
207
+ hisCall?: string | undefined;
208
+ trst?: string | undefined;
209
+ rrst?: string | undefined;
210
+ }, {
211
+ myCall?: string | undefined;
212
+ hisCall?: string | undefined;
213
+ trst?: string | undefined;
214
+ rrst?: string | undefined;
215
+ }>;
216
+ export type CWPlaceholderValues = z.infer<typeof CWPlaceholderValuesSchema>;
217
+ /**
218
+ * CW 文字输入
219
+ */
220
+ export declare const CWTextInputSchema: z.ZodObject<{
221
+ /** 要发送的文字 */
222
+ text: z.ZodString;
223
+ /** 操作员呼号,用于占位符替换(如 {MYCALL}) */
224
+ callsign: z.ZodOptional<z.ZodString>;
225
+ /** 前端解析出的占位符值 */
226
+ placeholderValues: z.ZodOptional<z.ZodObject<{
227
+ /** 当前操作员呼号,用于 {MYCALL} */
228
+ myCall: z.ZodOptional<z.ZodString>;
229
+ /** 当前通联对象呼号,用于 {HISCALL} */
230
+ hisCall: z.ZodOptional<z.ZodString>;
231
+ /** 发送的 RST 信号报告,用于 {TRST} */
232
+ trst: z.ZodOptional<z.ZodString>;
233
+ /** 接收的 RST 信号报告,用于 {RRST} */
234
+ rrst: z.ZodOptional<z.ZodString>;
235
+ }, "strip", z.ZodTypeAny, {
236
+ myCall?: string | undefined;
237
+ hisCall?: string | undefined;
238
+ trst?: string | undefined;
239
+ rrst?: string | undefined;
240
+ }, {
241
+ myCall?: string | undefined;
242
+ hisCall?: string | undefined;
243
+ trst?: string | undefined;
244
+ rrst?: string | undefined;
245
+ }>>;
246
+ }, "strip", z.ZodTypeAny, {
247
+ text: string;
248
+ callsign?: string | undefined;
249
+ placeholderValues?: {
250
+ myCall?: string | undefined;
251
+ hisCall?: string | undefined;
252
+ trst?: string | undefined;
253
+ rrst?: string | undefined;
254
+ } | undefined;
255
+ }, {
256
+ text: string;
257
+ callsign?: string | undefined;
258
+ placeholderValues?: {
259
+ myCall?: string | undefined;
260
+ hisCall?: string | undefined;
261
+ trst?: string | undefined;
262
+ rrst?: string | undefined;
263
+ } | undefined;
264
+ }>;
265
+ export type CWTextInput = z.infer<typeof CWTextInputSchema>;
266
+ /**
267
+ * CW 播放预设报文请求
268
+ */
269
+ export declare const CWPlayMessageSchema: z.ZodObject<{
270
+ /** 呼号 */
271
+ callsign: z.ZodString;
272
+ /** 报文槽位 ID */
273
+ slotId: z.ZodString;
274
+ /** 是否循环播放 */
275
+ repeat: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
276
+ /** 是否立即发送;false 时仅进入循环等待 */
277
+ startImmediately: z.ZodOptional<z.ZodBoolean>;
278
+ /** 前端解析出的占位符值 */
279
+ placeholderValues: z.ZodOptional<z.ZodObject<{
280
+ /** 当前操作员呼号,用于 {MYCALL} */
281
+ myCall: z.ZodOptional<z.ZodString>;
282
+ /** 当前通联对象呼号,用于 {HISCALL} */
283
+ hisCall: z.ZodOptional<z.ZodString>;
284
+ /** 发送的 RST 信号报告,用于 {TRST} */
285
+ trst: z.ZodOptional<z.ZodString>;
286
+ /** 接收的 RST 信号报告,用于 {RRST} */
287
+ rrst: z.ZodOptional<z.ZodString>;
288
+ }, "strip", z.ZodTypeAny, {
289
+ myCall?: string | undefined;
290
+ hisCall?: string | undefined;
291
+ trst?: string | undefined;
292
+ rrst?: string | undefined;
293
+ }, {
294
+ myCall?: string | undefined;
295
+ hisCall?: string | undefined;
296
+ trst?: string | undefined;
297
+ rrst?: string | undefined;
298
+ }>>;
299
+ }, "strip", z.ZodTypeAny, {
300
+ callsign: string;
301
+ slotId: string;
302
+ repeat: boolean;
303
+ startImmediately?: boolean | undefined;
304
+ placeholderValues?: {
305
+ myCall?: string | undefined;
306
+ hisCall?: string | undefined;
307
+ trst?: string | undefined;
308
+ rrst?: string | undefined;
309
+ } | undefined;
310
+ }, {
311
+ callsign: string;
312
+ slotId: string;
313
+ repeat?: boolean | undefined;
314
+ startImmediately?: boolean | undefined;
315
+ placeholderValues?: {
316
+ myCall?: string | undefined;
317
+ hisCall?: string | undefined;
318
+ trst?: string | undefined;
319
+ rrst?: string | undefined;
320
+ } | undefined;
321
+ }>;
322
+ export type CWPlayMessage = z.infer<typeof CWPlayMessageSchema>;
323
+ /**
324
+ * CW 报文槽位更新
325
+ */
326
+ export declare const CWMessageSlotUpdateSchema: z.ZodObject<{
327
+ label: z.ZodOptional<z.ZodString>;
328
+ text: z.ZodOptional<z.ZodString>;
329
+ repeatEnabled: z.ZodOptional<z.ZodBoolean>;
330
+ repeatIntervalSec: z.ZodOptional<z.ZodNumber>;
331
+ }, "strip", z.ZodTypeAny, {
332
+ label?: string | undefined;
333
+ repeatEnabled?: boolean | undefined;
334
+ repeatIntervalSec?: number | undefined;
335
+ text?: string | undefined;
336
+ }, {
337
+ label?: string | undefined;
338
+ repeatEnabled?: boolean | undefined;
339
+ repeatIntervalSec?: number | undefined;
340
+ text?: string | undefined;
341
+ }>;
342
+ export type CWMessageSlotUpdate = z.infer<typeof CWMessageSlotUpdateSchema>;
343
+ /**
344
+ * CW 报文面板更新
345
+ */
346
+ export declare const CWMessagePanelUpdateSchema: z.ZodObject<{
347
+ slotCount: z.ZodNumber;
348
+ }, "strip", z.ZodTypeAny, {
349
+ slotCount: number;
350
+ }, {
351
+ slotCount: number;
352
+ }>;
353
+ export type CWMessagePanelUpdate = z.infer<typeof CWMessagePanelUpdateSchema>;
354
+ /**
355
+ * CW 报文槽位交换请求
356
+ */
357
+ export declare const CWMessageSlotSwapSchema: z.ZodObject<{
358
+ slotIdA: z.ZodString;
359
+ slotIdB: z.ZodString;
360
+ }, "strip", z.ZodTypeAny, {
361
+ slotIdA: string;
362
+ slotIdB: string;
363
+ }, {
364
+ slotIdA: string;
365
+ slotIdB: string;
366
+ }>;
367
+ export type CWMessageSlotSwap = z.infer<typeof CWMessageSlotSwapSchema>;
368
+ //# sourceMappingURL=cw-keyer.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cw-keyer.schema.d.ts","sourceRoot":"","sources":["../../src/schema/cw-keyer.schema.ts"],"names":[],"mappings":"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"}