zerg-ztc 0.1.7 → 0.1.11
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/App.d.ts.map +1 -1
- package/dist/App.js +75 -8
- package/dist/App.js.map +1 -1
- package/dist/agent/agent.d.ts +2 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +111 -10
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/backends/anthropic.d.ts.map +1 -1
- package/dist/agent/backends/anthropic.js +15 -3
- package/dist/agent/backends/anthropic.js.map +1 -1
- package/dist/agent/backends/gemini.d.ts.map +1 -1
- package/dist/agent/backends/gemini.js +12 -0
- package/dist/agent/backends/gemini.js.map +1 -1
- package/dist/agent/backends/index.d.ts +1 -1
- package/dist/agent/backends/index.d.ts.map +1 -1
- package/dist/agent/backends/openai_compatible.d.ts.map +1 -1
- package/dist/agent/backends/openai_compatible.js +12 -0
- package/dist/agent/backends/openai_compatible.js.map +1 -1
- package/dist/agent/backends/types.d.ts +21 -1
- package/dist/agent/backends/types.d.ts.map +1 -1
- package/dist/agent/commands/dictation.d.ts +3 -0
- package/dist/agent/commands/dictation.d.ts.map +1 -0
- package/dist/agent/commands/dictation.js +10 -0
- package/dist/agent/commands/dictation.js.map +1 -0
- package/dist/agent/commands/index.d.ts.map +1 -1
- package/dist/agent/commands/index.js +2 -1
- package/dist/agent/commands/index.js.map +1 -1
- package/dist/agent/commands/types.d.ts +7 -0
- package/dist/agent/commands/types.d.ts.map +1 -1
- package/dist/agent/runtime/capabilities.d.ts +2 -1
- package/dist/agent/runtime/capabilities.d.ts.map +1 -1
- package/dist/agent/runtime/capabilities.js +1 -0
- package/dist/agent/runtime/capabilities.js.map +1 -1
- package/dist/agent/tools/index.d.ts +1 -0
- package/dist/agent/tools/index.d.ts.map +1 -1
- package/dist/agent/tools/index.js +6 -1
- package/dist/agent/tools/index.js.map +1 -1
- package/dist/agent/tools/screenshot.d.ts +23 -0
- package/dist/agent/tools/screenshot.d.ts.map +1 -0
- package/dist/agent/tools/screenshot.js +735 -0
- package/dist/agent/tools/screenshot.js.map +1 -0
- package/dist/components/InputArea.d.ts +1 -0
- package/dist/components/InputArea.d.ts.map +1 -1
- package/dist/components/InputArea.js +591 -43
- package/dist/components/InputArea.js.map +1 -1
- package/dist/components/SingleMessage.d.ts.map +1 -1
- package/dist/components/SingleMessage.js +157 -7
- package/dist/components/SingleMessage.js.map +1 -1
- package/dist/config/types.d.ts +6 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/ui/views/status_bar.js +2 -2
- package/dist/ui/views/status_bar.js.map +1 -1
- package/dist/utils/dictation.d.ts +46 -0
- package/dist/utils/dictation.d.ts.map +1 -0
- package/dist/utils/dictation.js +409 -0
- package/dist/utils/dictation.js.map +1 -0
- package/dist/utils/dictation_native.d.ts +51 -0
- package/dist/utils/dictation_native.d.ts.map +1 -0
- package/dist/utils/dictation_native.js +216 -0
- package/dist/utils/dictation_native.js.map +1 -0
- package/dist/utils/path_complete.d.ts.map +1 -1
- package/dist/utils/path_complete.js +31 -6
- package/dist/utils/path_complete.js.map +1 -1
- package/dist/utils/path_format.d.ts +20 -0
- package/dist/utils/path_format.d.ts.map +1 -0
- package/dist/utils/path_format.js +90 -0
- package/dist/utils/path_format.js.map +1 -0
- package/dist/utils/table.d.ts +38 -0
- package/dist/utils/table.d.ts.map +1 -0
- package/dist/utils/table.js +133 -0
- package/dist/utils/table.js.map +1 -0
- package/dist/utils/tool_trace.d.ts +7 -2
- package/dist/utils/tool_trace.d.ts.map +1 -1
- package/dist/utils/tool_trace.js +156 -51
- package/dist/utils/tool_trace.js.map +1 -1
- package/package.json +4 -1
- package/packages/ztc-dictation/Cargo.toml +43 -0
- package/packages/ztc-dictation/README.md +65 -0
- package/packages/ztc-dictation/bin/.gitkeep +0 -0
- package/packages/ztc-dictation/index.d.ts +16 -0
- package/packages/ztc-dictation/index.js +74 -0
- package/packages/ztc-dictation/package.json +41 -0
- package/packages/ztc-dictation/src/main.rs +430 -0
- package/src/App.tsx +110 -7
- package/src/agent/agent.ts +116 -11
- package/src/agent/backends/anthropic.ts +15 -5
- package/src/agent/backends/gemini.ts +12 -0
- package/src/agent/backends/index.ts +1 -0
- package/src/agent/backends/openai_compatible.ts +12 -0
- package/src/agent/backends/types.ts +25 -1
- package/src/agent/commands/dictation.ts +11 -0
- package/src/agent/commands/index.ts +2 -0
- package/src/agent/commands/types.ts +8 -0
- package/src/agent/runtime/capabilities.ts +2 -1
- package/src/agent/tools/index.ts +6 -1
- package/src/agent/tools/screenshot.ts +821 -0
- package/src/components/InputArea.tsx +606 -42
- package/src/components/SingleMessage.tsx +248 -9
- package/src/config/types.ts +7 -0
- package/src/ui/views/status_bar.ts +2 -2
- package/src/utils/dictation.ts +467 -0
- package/src/utils/dictation_native.ts +258 -0
- package/src/utils/path_complete.ts +30 -4
- package/src/utils/path_format.ts +99 -0
- package/src/utils/table.ts +171 -0
- package/src/utils/tool_trace.ts +184 -54
package/dist/utils/tool_trace.js
CHANGED
|
@@ -1,41 +1,61 @@
|
|
|
1
1
|
import { getTraceStyle } from '../emulation/trace_style.js';
|
|
2
|
+
import { formatTracePath, formatBytes, formatDuration } from './path_format.js';
|
|
2
3
|
const toolLabels = {
|
|
3
4
|
run_command: 'Bash',
|
|
4
5
|
read_file: 'Read',
|
|
5
6
|
write_file: 'Update',
|
|
6
7
|
list_directory: 'List',
|
|
7
|
-
search: 'Search'
|
|
8
|
+
search: 'Search',
|
|
9
|
+
screenshot: 'Screenshot',
|
|
10
|
+
list_windows: 'ListWindows',
|
|
11
|
+
run_and_capture: 'RunCapture'
|
|
8
12
|
};
|
|
9
|
-
function formatValue(value) {
|
|
10
|
-
if (typeof value === 'string') {
|
|
11
|
-
const escaped = value.replace(/\n/g, '\\n');
|
|
12
|
-
return `"${escaped}"`;
|
|
13
|
-
}
|
|
14
|
-
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
15
|
-
return String(value);
|
|
16
|
-
}
|
|
17
|
-
return JSON.stringify(value);
|
|
18
|
-
}
|
|
19
13
|
function formatArgs(tool, args) {
|
|
14
|
+
// Compact arg formatting - just show the key values
|
|
20
15
|
if (tool === 'run_command') {
|
|
21
16
|
const command = args.command ? String(args.command) : '';
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
return `(${
|
|
17
|
+
// Truncate long commands
|
|
18
|
+
const truncated = command.length > 60 ? command.slice(0, 57) + '...' : command;
|
|
19
|
+
return `(${truncated})`;
|
|
25
20
|
}
|
|
26
21
|
if (tool === 'search') {
|
|
27
|
-
const pattern = args.pattern ?
|
|
28
|
-
const path = args.path ?
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
const pattern = args.pattern ? String(args.pattern) : '';
|
|
23
|
+
const path = args.path ? formatTracePath(String(args.path)) : '';
|
|
24
|
+
if (path) {
|
|
25
|
+
return `(${pattern}, ${path})`;
|
|
26
|
+
}
|
|
27
|
+
return `(${pattern})`;
|
|
32
28
|
}
|
|
33
29
|
if (tool === 'read_file' || tool === 'write_file' || tool === 'list_directory') {
|
|
34
|
-
const path = args.path ?
|
|
30
|
+
const path = args.path ? formatTracePath(String(args.path)) : '';
|
|
35
31
|
return `(${path})`;
|
|
36
32
|
}
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
if (tool === 'screenshot') {
|
|
34
|
+
if (args.app)
|
|
35
|
+
return `(app: "${args.app}")`;
|
|
36
|
+
if (args.pid)
|
|
37
|
+
return `(pid: ${args.pid})`;
|
|
38
|
+
if (args.windowId)
|
|
39
|
+
return `(windowId: ${args.windowId})`;
|
|
40
|
+
return '';
|
|
41
|
+
}
|
|
42
|
+
if (tool === 'list_windows') {
|
|
43
|
+
if (args.filter)
|
|
44
|
+
return `(filter: "${args.filter}")`;
|
|
45
|
+
return '';
|
|
46
|
+
}
|
|
47
|
+
// Generic: show first few args compactly
|
|
48
|
+
const entries = Object.entries(args).slice(0, 3);
|
|
49
|
+
if (entries.length === 0)
|
|
50
|
+
return '';
|
|
51
|
+
const parts = entries.map(([key, value]) => {
|
|
52
|
+
if (typeof value === 'string') {
|
|
53
|
+
const v = value.length > 30 ? value.slice(0, 27) + '...' : value;
|
|
54
|
+
return `${key}: "${v}"`;
|
|
55
|
+
}
|
|
56
|
+
return `${key}: ${value}`;
|
|
57
|
+
});
|
|
58
|
+
return `(${parts.join(', ')})`;
|
|
39
59
|
}
|
|
40
60
|
function parseResult(raw) {
|
|
41
61
|
try {
|
|
@@ -48,9 +68,42 @@ function parseResult(raw) {
|
|
|
48
68
|
}
|
|
49
69
|
return null;
|
|
50
70
|
}
|
|
71
|
+
function parseDiff(diff) {
|
|
72
|
+
if (!diff || !diff.includes('@@'))
|
|
73
|
+
return null;
|
|
74
|
+
const lines = diff.split('\n');
|
|
75
|
+
let addedLines = 0;
|
|
76
|
+
let removedLines = 0;
|
|
77
|
+
const hunks = [];
|
|
78
|
+
let currentHunk = null;
|
|
79
|
+
for (const line of lines) {
|
|
80
|
+
if (line.startsWith('@@')) {
|
|
81
|
+
if (currentHunk)
|
|
82
|
+
hunks.push(currentHunk);
|
|
83
|
+
currentHunk = { header: line, lines: [] };
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
if (!currentHunk)
|
|
87
|
+
continue;
|
|
88
|
+
if (line.startsWith('+') && !line.startsWith('+++')) {
|
|
89
|
+
addedLines++;
|
|
90
|
+
currentHunk.lines.push({ type: 'add', text: line.slice(1) });
|
|
91
|
+
}
|
|
92
|
+
else if (line.startsWith('-') && !line.startsWith('---')) {
|
|
93
|
+
removedLines++;
|
|
94
|
+
currentHunk.lines.push({ type: 'remove', text: line.slice(1) });
|
|
95
|
+
}
|
|
96
|
+
else if (line.startsWith(' ')) {
|
|
97
|
+
currentHunk.lines.push({ type: 'context', text: line.slice(1) });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (currentHunk)
|
|
101
|
+
hunks.push(currentHunk);
|
|
102
|
+
return { addedLines, removedLines, hunks };
|
|
103
|
+
}
|
|
51
104
|
function formatOutcome(tool, result, durationMs) {
|
|
52
105
|
const parsed = parseResult(result);
|
|
53
|
-
const duration = typeof durationMs === 'number' ? ` in ${(durationMs
|
|
106
|
+
const duration = typeof durationMs === 'number' ? ` in ${formatDuration(durationMs)}` : '';
|
|
54
107
|
if (parsed && tool === 'search') {
|
|
55
108
|
const count = typeof parsed.count === 'number' ? parsed.count : 0;
|
|
56
109
|
const label = count === 1 ? 'match' : 'matches';
|
|
@@ -61,23 +114,36 @@ function formatOutcome(tool, result, durationMs) {
|
|
|
61
114
|
const stderr = String(parsed.stderr || '');
|
|
62
115
|
const lines = (stdout || stderr).trim().split('\n').filter(Boolean).length;
|
|
63
116
|
const label = lines === 1 ? 'line' : 'lines';
|
|
64
|
-
return lines > 0 ? `Output ${lines} ${label}${duration}` : `
|
|
117
|
+
return lines > 0 ? `Output ${lines} ${label}${duration}` : `Done${duration}`;
|
|
65
118
|
}
|
|
66
119
|
if (parsed && tool === 'read_file') {
|
|
67
|
-
const path = String(parsed.path || '');
|
|
68
|
-
const size = parsed.size ?
|
|
120
|
+
const path = formatTracePath(String(parsed.path || ''));
|
|
121
|
+
const size = typeof parsed.size === 'number' ? formatBytes(parsed.size) : '';
|
|
69
122
|
const truncated = parsed.truncated ? ' (truncated)' : '';
|
|
70
|
-
return
|
|
123
|
+
return `${path} (${size})${duration}${truncated}`;
|
|
71
124
|
}
|
|
72
125
|
if (parsed && tool === 'write_file') {
|
|
73
|
-
const path = String(parsed.path || '');
|
|
74
|
-
const
|
|
75
|
-
|
|
126
|
+
const path = formatTracePath(String(parsed.path || ''));
|
|
127
|
+
const diff = parseDiff(String(parsed.diff || ''));
|
|
128
|
+
if (diff) {
|
|
129
|
+
const parts = [];
|
|
130
|
+
if (diff.addedLines > 0)
|
|
131
|
+
parts.push(`+${diff.addedLines}`);
|
|
132
|
+
if (diff.removedLines > 0)
|
|
133
|
+
parts.push(`-${diff.removedLines}`);
|
|
134
|
+
const summary = parts.length > 0 ? ` (${parts.join(', ')} lines)` : '';
|
|
135
|
+
return `${path}${summary}${duration}`;
|
|
136
|
+
}
|
|
137
|
+
return `${path}${duration}`;
|
|
76
138
|
}
|
|
77
139
|
if (parsed && tool === 'list_directory') {
|
|
78
|
-
const path = String(parsed.path || '');
|
|
140
|
+
const path = formatTracePath(String(parsed.path || ''));
|
|
79
141
|
const entries = Array.isArray(parsed.entries) ? parsed.entries.length : 0;
|
|
80
|
-
return
|
|
142
|
+
return `${path} (${entries} items)${duration}`;
|
|
143
|
+
}
|
|
144
|
+
if (parsed && tool === 'screenshot') {
|
|
145
|
+
const desc = String(parsed.description || 'Screenshot captured');
|
|
146
|
+
return `${desc}${duration}`;
|
|
81
147
|
}
|
|
82
148
|
return `Done${duration}`;
|
|
83
149
|
}
|
|
@@ -99,7 +165,7 @@ function buildOutputLines(tool, result) {
|
|
|
99
165
|
if (!entry || typeof entry !== 'object')
|
|
100
166
|
return '';
|
|
101
167
|
const row = entry;
|
|
102
|
-
const file = String(row.path || '');
|
|
168
|
+
const file = formatTracePath(String(row.path || ''));
|
|
103
169
|
const line = row.line ? `:${row.line}` : '';
|
|
104
170
|
const text = String(row.text || '');
|
|
105
171
|
return `${file}${line} ${text}`.trim();
|
|
@@ -112,9 +178,26 @@ function buildOutputLines(tool, result) {
|
|
|
112
178
|
return { lines, truncated: Boolean(parsed.truncated) };
|
|
113
179
|
}
|
|
114
180
|
if (tool === 'write_file') {
|
|
115
|
-
|
|
116
|
-
const
|
|
117
|
-
|
|
181
|
+
// Return formatted diff lines
|
|
182
|
+
const diff = parseDiff(String(parsed.diff || ''));
|
|
183
|
+
if (diff && diff.hunks.length > 0) {
|
|
184
|
+
const lines = [];
|
|
185
|
+
for (const hunk of diff.hunks) {
|
|
186
|
+
for (const line of hunk.lines) {
|
|
187
|
+
if (line.type === 'add') {
|
|
188
|
+
lines.push(`+ ${line.text}`);
|
|
189
|
+
}
|
|
190
|
+
else if (line.type === 'remove') {
|
|
191
|
+
lines.push(`- ${line.text}`);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
lines.push(` ${line.text}`);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return { lines, truncated: Boolean(parsed.truncated) };
|
|
199
|
+
}
|
|
200
|
+
return { lines: [], truncated: false };
|
|
118
201
|
}
|
|
119
202
|
return { lines: [], truncated: false };
|
|
120
203
|
}
|
|
@@ -138,7 +221,7 @@ export function formatToolEnd(tool, result, durationMs, emulationId) {
|
|
|
138
221
|
const style = getTraceStyle(emulationId);
|
|
139
222
|
const summary = formatOutcome(tool, result, durationMs);
|
|
140
223
|
if (style === 'claude_code') {
|
|
141
|
-
return `⎿
|
|
224
|
+
return `⎿ ${summary}`;
|
|
142
225
|
}
|
|
143
226
|
if (style === 'codex') {
|
|
144
227
|
if (tool === 'run_command') {
|
|
@@ -153,17 +236,37 @@ export function formatToolEnd(tool, result, durationMs, emulationId) {
|
|
|
153
236
|
}
|
|
154
237
|
export function formatToolError(tool, error, emulationId) {
|
|
155
238
|
const style = getTraceStyle(emulationId);
|
|
239
|
+
const label = toolLabels[tool] || tool;
|
|
240
|
+
// Provide helpful error messages
|
|
241
|
+
let displayError = error;
|
|
242
|
+
if (error.includes('Screen Recording permission')) {
|
|
243
|
+
displayError = 'Screen Recording permission required (System Settings > Privacy & Security)';
|
|
244
|
+
}
|
|
156
245
|
if (style === 'claude_code') {
|
|
157
|
-
return `⎿
|
|
246
|
+
return `⎿ ${label} failed: ${displayError}`;
|
|
158
247
|
}
|
|
159
248
|
if (style === 'codex') {
|
|
160
|
-
return ` ${
|
|
249
|
+
return ` ${label} failed: ${displayError}`;
|
|
161
250
|
}
|
|
162
|
-
return `< ${
|
|
251
|
+
return `< ${label} failed: ${displayError}`;
|
|
163
252
|
}
|
|
164
253
|
export function buildToolOutputMessage(tool, result, durationMs, emulationId) {
|
|
165
254
|
const { lines, truncated } = buildOutputLines(tool, result);
|
|
166
|
-
|
|
255
|
+
const parsed = parseResult(result);
|
|
256
|
+
// For write_file, extract diff info
|
|
257
|
+
let diffLines;
|
|
258
|
+
if (tool === 'write_file' && parsed) {
|
|
259
|
+
const diff = parseDiff(String(parsed.diff || ''));
|
|
260
|
+
if (diff && diff.hunks.length > 0) {
|
|
261
|
+
diffLines = [];
|
|
262
|
+
for (const hunk of diff.hunks) {
|
|
263
|
+
for (const line of hunk.lines) {
|
|
264
|
+
diffLines.push({ type: line.type, text: line.text });
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (lines.length === 0 && !diffLines) {
|
|
167
270
|
const summary = formatToolEnd(tool, result, durationMs, emulationId);
|
|
168
271
|
return { preview: summary, full: summary, truncated: false };
|
|
169
272
|
}
|
|
@@ -172,22 +275,24 @@ export function buildToolOutputMessage(tool, result, durationMs, emulationId) {
|
|
|
172
275
|
const remaining = lines.length - previewLines.length;
|
|
173
276
|
const expandHint = truncated || remaining > 0 ? ' (ctrl+o to expand)' : '';
|
|
174
277
|
const summary = formatToolEnd(tool, result, durationMs, emulationId);
|
|
175
|
-
const
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
278
|
+
const indent = ' ';
|
|
279
|
+
const previewBlock = [summary];
|
|
280
|
+
for (const line of previewLines) {
|
|
281
|
+
previewBlock.push(`${indent}${line}`);
|
|
282
|
+
}
|
|
179
283
|
if (expandHint) {
|
|
180
284
|
const extraLabel = remaining > 0 ? `… +${remaining} lines` : '…';
|
|
181
|
-
previewBlock.push(
|
|
285
|
+
previewBlock.push(`${indent}${extraLabel}${expandHint}`);
|
|
286
|
+
}
|
|
287
|
+
const fullBlock = [summary];
|
|
288
|
+
for (const line of lines) {
|
|
289
|
+
fullBlock.push(`${indent}${line}`);
|
|
182
290
|
}
|
|
183
|
-
const fullBlock = [
|
|
184
|
-
summary,
|
|
185
|
-
...lines.map(line => ` ${line}`)
|
|
186
|
-
];
|
|
187
291
|
return {
|
|
188
292
|
preview: previewBlock.join('\n'),
|
|
189
293
|
full: fullBlock.join('\n'),
|
|
190
|
-
truncated: Boolean(expandHint)
|
|
294
|
+
truncated: Boolean(expandHint),
|
|
295
|
+
diffLines
|
|
191
296
|
};
|
|
192
297
|
}
|
|
193
298
|
//# sourceMappingURL=tool_trace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool_trace.js","sourceRoot":"","sources":["../../src/utils/tool_trace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool_trace.js","sourceRoot":"","sources":["../../src/utils/tool_trace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zerg-ztc",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "Zerg Terminal Client - CLI agent for continual AI systems",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -25,6 +25,9 @@
|
|
|
25
25
|
"react-dom": "^18.3.1",
|
|
26
26
|
"chalk": "^5.3.0"
|
|
27
27
|
},
|
|
28
|
+
"optionalDependencies": {
|
|
29
|
+
"@zergai/ztc-dictation": "^0.1.0"
|
|
30
|
+
},
|
|
28
31
|
"devDependencies": {
|
|
29
32
|
"@types/node": "^20.14.0",
|
|
30
33
|
"@types/react": "^18.3.3",
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
[package]
|
|
2
|
+
name = "ztc-audio"
|
|
3
|
+
version = "0.1.0"
|
|
4
|
+
edition = "2021"
|
|
5
|
+
description = "Cross-platform audio capture and real-time transcription for ZTC"
|
|
6
|
+
license = "MIT"
|
|
7
|
+
|
|
8
|
+
[dependencies]
|
|
9
|
+
# Cross-platform audio capture
|
|
10
|
+
cpal = "0.15"
|
|
11
|
+
|
|
12
|
+
# Whisper bindings for real-time transcription
|
|
13
|
+
whisper-rs = "0.12"
|
|
14
|
+
|
|
15
|
+
# JSON output
|
|
16
|
+
serde = { version = "1.0", features = ["derive"] }
|
|
17
|
+
serde_json = "1.0"
|
|
18
|
+
|
|
19
|
+
# Async runtime for audio streaming
|
|
20
|
+
tokio = { version = "1", features = ["rt", "sync", "macros"] }
|
|
21
|
+
|
|
22
|
+
# Ring buffer for audio chunks
|
|
23
|
+
ringbuf = "0.4"
|
|
24
|
+
|
|
25
|
+
# For model downloading
|
|
26
|
+
ureq = "2.9"
|
|
27
|
+
|
|
28
|
+
# CLI args
|
|
29
|
+
clap = { version = "4", features = ["derive"] }
|
|
30
|
+
|
|
31
|
+
# Home directory for model storage
|
|
32
|
+
dirs = "5"
|
|
33
|
+
|
|
34
|
+
# Progress bar for downloads
|
|
35
|
+
indicatif = "0.17"
|
|
36
|
+
|
|
37
|
+
# Signal handling
|
|
38
|
+
ctrlc = "3.4"
|
|
39
|
+
|
|
40
|
+
[profile.release]
|
|
41
|
+
lto = true
|
|
42
|
+
codegen-units = 1
|
|
43
|
+
strip = true
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# @zergai/ztc-dictation
|
|
2
|
+
|
|
3
|
+
Cross-platform audio capture and real-time transcription for ZTC.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Real-time audio level metering (VU meter)
|
|
8
|
+
- Real-time speech-to-text transcription via Whisper
|
|
9
|
+
- Cross-platform: macOS (arm64/x64), Linux (x64), Windows (x64)
|
|
10
|
+
- Automatic whisper model download
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install @zergai/ztc-dictation
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
```javascript
|
|
21
|
+
const { getBinaryPath, isAvailable } = require('@zergai/ztc-dictation');
|
|
22
|
+
|
|
23
|
+
if (isAvailable()) {
|
|
24
|
+
const binaryPath = getBinaryPath();
|
|
25
|
+
// Spawn the binary and communicate via JSON lines on stdout
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Binary Protocol
|
|
30
|
+
|
|
31
|
+
The `ztc-audio` binary outputs JSON lines to stdout:
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{"type":"ready","device":"MacBook Pro Microphone","model":"ggml-tiny"}
|
|
35
|
+
{"type":"level","db":-35.5,"rms":0.015}
|
|
36
|
+
{"type":"text","content":"hello world","partial":true}
|
|
37
|
+
{"type":"text","content":"hello world how are you","partial":false}
|
|
38
|
+
{"type":"error","message":"..."}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## CLI Options
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
ztc-audio [OPTIONS]
|
|
45
|
+
|
|
46
|
+
Options:
|
|
47
|
+
-m, --model <MODEL> Whisper model: tiny, base, small, medium, large [default: base]
|
|
48
|
+
-d, --device <DEVICE> Audio input device name
|
|
49
|
+
--list-devices List available audio devices
|
|
50
|
+
--download-model Download model and exit
|
|
51
|
+
-h, --help Print help
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Building from Source
|
|
55
|
+
|
|
56
|
+
Requires Rust toolchain:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
cd packages/ztc-dictation
|
|
60
|
+
cargo build --release
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## License
|
|
64
|
+
|
|
65
|
+
MIT
|
|
File without changes
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the path to the ztc-audio binary for the current platform
|
|
3
|
+
* @returns Path to binary, or null if not found
|
|
4
|
+
*/
|
|
5
|
+
export function getBinaryPath(): string | null;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Get the platform-specific binary name
|
|
9
|
+
* @returns Binary filename for current platform
|
|
10
|
+
*/
|
|
11
|
+
export function getBinaryName(): string;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Check if the binary is available for the current platform
|
|
15
|
+
*/
|
|
16
|
+
export function isAvailable(): boolean;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
const { platform, arch } = require('os');
|
|
2
|
+
const { join } = require('path');
|
|
3
|
+
const { existsSync } = require('fs');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Get the platform-specific binary name
|
|
7
|
+
*/
|
|
8
|
+
function getBinaryName() {
|
|
9
|
+
const p = platform();
|
|
10
|
+
const a = arch();
|
|
11
|
+
|
|
12
|
+
let os;
|
|
13
|
+
switch (p) {
|
|
14
|
+
case 'darwin':
|
|
15
|
+
os = 'darwin';
|
|
16
|
+
break;
|
|
17
|
+
case 'linux':
|
|
18
|
+
os = 'linux';
|
|
19
|
+
break;
|
|
20
|
+
case 'win32':
|
|
21
|
+
os = 'win';
|
|
22
|
+
break;
|
|
23
|
+
default:
|
|
24
|
+
throw new Error(`Unsupported platform: ${p}`);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let cpu;
|
|
28
|
+
switch (a) {
|
|
29
|
+
case 'x64':
|
|
30
|
+
cpu = 'x64';
|
|
31
|
+
break;
|
|
32
|
+
case 'arm64':
|
|
33
|
+
cpu = 'arm64';
|
|
34
|
+
break;
|
|
35
|
+
default:
|
|
36
|
+
throw new Error(`Unsupported architecture: ${a}`);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const ext = p === 'win32' ? '.exe' : '';
|
|
40
|
+
return `ztc-audio-${os}-${cpu}${ext}`;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Get the path to the ztc-audio binary for the current platform
|
|
45
|
+
* @returns {string|null} Path to binary, or null if not found
|
|
46
|
+
*/
|
|
47
|
+
function getBinaryPath() {
|
|
48
|
+
try {
|
|
49
|
+
const binaryName = getBinaryName();
|
|
50
|
+
const binaryPath = join(__dirname, 'bin', binaryName);
|
|
51
|
+
|
|
52
|
+
if (existsSync(binaryPath)) {
|
|
53
|
+
return binaryPath;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return null;
|
|
57
|
+
} catch (e) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Check if the binary is available for the current platform
|
|
64
|
+
* @returns {boolean}
|
|
65
|
+
*/
|
|
66
|
+
function isAvailable() {
|
|
67
|
+
return getBinaryPath() !== null;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
module.exports = {
|
|
71
|
+
getBinaryPath,
|
|
72
|
+
getBinaryName,
|
|
73
|
+
isAvailable
|
|
74
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@zergai/ztc-dictation",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Cross-platform audio capture and real-time transcription for ZTC",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/zergai/ztc.git",
|
|
11
|
+
"directory": "packages/ztc-dictation"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"audio",
|
|
15
|
+
"transcription",
|
|
16
|
+
"whisper",
|
|
17
|
+
"speech-to-text",
|
|
18
|
+
"dictation"
|
|
19
|
+
],
|
|
20
|
+
"files": [
|
|
21
|
+
"bin/",
|
|
22
|
+
"index.js",
|
|
23
|
+
"index.d.ts"
|
|
24
|
+
],
|
|
25
|
+
"os": [
|
|
26
|
+
"darwin",
|
|
27
|
+
"linux",
|
|
28
|
+
"win32"
|
|
29
|
+
],
|
|
30
|
+
"cpu": [
|
|
31
|
+
"x64",
|
|
32
|
+
"arm64"
|
|
33
|
+
],
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=18"
|
|
36
|
+
},
|
|
37
|
+
"scripts": {
|
|
38
|
+
"build": "cargo build --release",
|
|
39
|
+
"build:all": "echo 'Use CI to build for all platforms'"
|
|
40
|
+
}
|
|
41
|
+
}
|