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.
Files changed (106) hide show
  1. package/dist/App.d.ts.map +1 -1
  2. package/dist/App.js +75 -8
  3. package/dist/App.js.map +1 -1
  4. package/dist/agent/agent.d.ts +2 -0
  5. package/dist/agent/agent.d.ts.map +1 -1
  6. package/dist/agent/agent.js +111 -10
  7. package/dist/agent/agent.js.map +1 -1
  8. package/dist/agent/backends/anthropic.d.ts.map +1 -1
  9. package/dist/agent/backends/anthropic.js +15 -3
  10. package/dist/agent/backends/anthropic.js.map +1 -1
  11. package/dist/agent/backends/gemini.d.ts.map +1 -1
  12. package/dist/agent/backends/gemini.js +12 -0
  13. package/dist/agent/backends/gemini.js.map +1 -1
  14. package/dist/agent/backends/index.d.ts +1 -1
  15. package/dist/agent/backends/index.d.ts.map +1 -1
  16. package/dist/agent/backends/openai_compatible.d.ts.map +1 -1
  17. package/dist/agent/backends/openai_compatible.js +12 -0
  18. package/dist/agent/backends/openai_compatible.js.map +1 -1
  19. package/dist/agent/backends/types.d.ts +21 -1
  20. package/dist/agent/backends/types.d.ts.map +1 -1
  21. package/dist/agent/commands/dictation.d.ts +3 -0
  22. package/dist/agent/commands/dictation.d.ts.map +1 -0
  23. package/dist/agent/commands/dictation.js +10 -0
  24. package/dist/agent/commands/dictation.js.map +1 -0
  25. package/dist/agent/commands/index.d.ts.map +1 -1
  26. package/dist/agent/commands/index.js +2 -1
  27. package/dist/agent/commands/index.js.map +1 -1
  28. package/dist/agent/commands/types.d.ts +7 -0
  29. package/dist/agent/commands/types.d.ts.map +1 -1
  30. package/dist/agent/runtime/capabilities.d.ts +2 -1
  31. package/dist/agent/runtime/capabilities.d.ts.map +1 -1
  32. package/dist/agent/runtime/capabilities.js +1 -0
  33. package/dist/agent/runtime/capabilities.js.map +1 -1
  34. package/dist/agent/tools/index.d.ts +1 -0
  35. package/dist/agent/tools/index.d.ts.map +1 -1
  36. package/dist/agent/tools/index.js +6 -1
  37. package/dist/agent/tools/index.js.map +1 -1
  38. package/dist/agent/tools/screenshot.d.ts +23 -0
  39. package/dist/agent/tools/screenshot.d.ts.map +1 -0
  40. package/dist/agent/tools/screenshot.js +735 -0
  41. package/dist/agent/tools/screenshot.js.map +1 -0
  42. package/dist/components/InputArea.d.ts +1 -0
  43. package/dist/components/InputArea.d.ts.map +1 -1
  44. package/dist/components/InputArea.js +591 -43
  45. package/dist/components/InputArea.js.map +1 -1
  46. package/dist/components/SingleMessage.d.ts.map +1 -1
  47. package/dist/components/SingleMessage.js +157 -7
  48. package/dist/components/SingleMessage.js.map +1 -1
  49. package/dist/config/types.d.ts +6 -0
  50. package/dist/config/types.d.ts.map +1 -1
  51. package/dist/ui/views/status_bar.js +2 -2
  52. package/dist/ui/views/status_bar.js.map +1 -1
  53. package/dist/utils/dictation.d.ts +46 -0
  54. package/dist/utils/dictation.d.ts.map +1 -0
  55. package/dist/utils/dictation.js +409 -0
  56. package/dist/utils/dictation.js.map +1 -0
  57. package/dist/utils/dictation_native.d.ts +51 -0
  58. package/dist/utils/dictation_native.d.ts.map +1 -0
  59. package/dist/utils/dictation_native.js +216 -0
  60. package/dist/utils/dictation_native.js.map +1 -0
  61. package/dist/utils/path_complete.d.ts.map +1 -1
  62. package/dist/utils/path_complete.js +31 -6
  63. package/dist/utils/path_complete.js.map +1 -1
  64. package/dist/utils/path_format.d.ts +20 -0
  65. package/dist/utils/path_format.d.ts.map +1 -0
  66. package/dist/utils/path_format.js +90 -0
  67. package/dist/utils/path_format.js.map +1 -0
  68. package/dist/utils/table.d.ts +38 -0
  69. package/dist/utils/table.d.ts.map +1 -0
  70. package/dist/utils/table.js +133 -0
  71. package/dist/utils/table.js.map +1 -0
  72. package/dist/utils/tool_trace.d.ts +7 -2
  73. package/dist/utils/tool_trace.d.ts.map +1 -1
  74. package/dist/utils/tool_trace.js +156 -51
  75. package/dist/utils/tool_trace.js.map +1 -1
  76. package/package.json +4 -1
  77. package/packages/ztc-dictation/Cargo.toml +43 -0
  78. package/packages/ztc-dictation/README.md +65 -0
  79. package/packages/ztc-dictation/bin/.gitkeep +0 -0
  80. package/packages/ztc-dictation/index.d.ts +16 -0
  81. package/packages/ztc-dictation/index.js +74 -0
  82. package/packages/ztc-dictation/package.json +41 -0
  83. package/packages/ztc-dictation/src/main.rs +430 -0
  84. package/src/App.tsx +110 -7
  85. package/src/agent/agent.ts +116 -11
  86. package/src/agent/backends/anthropic.ts +15 -5
  87. package/src/agent/backends/gemini.ts +12 -0
  88. package/src/agent/backends/index.ts +1 -0
  89. package/src/agent/backends/openai_compatible.ts +12 -0
  90. package/src/agent/backends/types.ts +25 -1
  91. package/src/agent/commands/dictation.ts +11 -0
  92. package/src/agent/commands/index.ts +2 -0
  93. package/src/agent/commands/types.ts +8 -0
  94. package/src/agent/runtime/capabilities.ts +2 -1
  95. package/src/agent/tools/index.ts +6 -1
  96. package/src/agent/tools/screenshot.ts +821 -0
  97. package/src/components/InputArea.tsx +606 -42
  98. package/src/components/SingleMessage.tsx +248 -9
  99. package/src/config/types.ts +7 -0
  100. package/src/ui/views/status_bar.ts +2 -2
  101. package/src/utils/dictation.ts +467 -0
  102. package/src/utils/dictation_native.ts +258 -0
  103. package/src/utils/path_complete.ts +30 -4
  104. package/src/utils/path_format.ts +99 -0
  105. package/src/utils/table.ts +171 -0
  106. package/src/utils/tool_trace.ts +184 -54
@@ -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
- const cwd = args.cwd ? `, cwd: ${formatValue(args.cwd)}` : '';
23
- const timeout = args.timeout ? `, timeout: ${formatValue(args.timeout)}` : '';
24
- return `(${command}${cwd}${timeout})`;
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 ? `pattern: ${formatValue(args.pattern)}` : '';
28
- const path = args.path ? `path: ${formatValue(args.path)}` : '';
29
- const output = args.output_mode ? `output_mode: ${formatValue(args.output_mode)}` : '';
30
- const parts = [pattern, path, output].filter(Boolean);
31
- return parts.length ? `(${parts.join(', ')})` : '';
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 ? formatValue(args.path) : '""';
30
+ const path = args.path ? formatTracePath(String(args.path)) : '';
35
31
  return `(${path})`;
36
32
  }
37
- const entries = Object.entries(args).map(([key, value]) => `${key}: ${formatValue(value)}`);
38
- return entries.length ? `(${entries.join(', ')})` : '';
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 / 1000).toFixed(1)}s` : '';
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}` : `Command finished${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 ? `${parsed.size} bytes` : 'unknown 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 `Read ${path} (${size})${duration}${truncated}`;
123
+ return `${path} (${size})${duration}${truncated}`;
71
124
  }
72
125
  if (parsed && tool === 'write_file') {
73
- const path = String(parsed.path || '');
74
- const action = String(parsed.action || 'written');
75
- return `Updated ${path} (${action})${duration}`;
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 `Listed ${path} (${entries} items)${duration}`;
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
- const diff = typeof parsed.diff === 'string' ? parsed.diff : '';
116
- const lines = diff ? diff.split('\n') : [];
117
- return { lines, truncated: Boolean(parsed.truncated) };
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 `⎿ ${summary}`;
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 `⎿ ${tool} failed: ${error}`;
246
+ return `⎿ ${label} failed: ${displayError}`;
158
247
  }
159
248
  if (style === 'codex') {
160
- return ` ${tool} failed: ${error}`;
249
+ return ` ${label} failed: ${displayError}`;
161
250
  }
162
- return `< ${tool} failed: ${error}`;
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
- if (lines.length === 0) {
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 previewBlock = [
176
- summary,
177
- ...previewLines.map(line => ` ${line}`)
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(` ${extraLabel}${expandHint}`);
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.7",
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
+ }