compact-agent 1.4.0 → 1.6.0

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/theme.js CHANGED
@@ -124,35 +124,57 @@ export function printBanner(provider, model, mode, permissionMode, sessionId, to
124
124
  console.log(d(' Type ') + theme.command('/help') + d(' for commands ') + d('•') + d(' Ctrl+C to exit'));
125
125
  console.log('');
126
126
  }
127
- // ── Splash Screen (for full mode — Compact Agent emblem) ──
128
- // Half-scale 2x2->1 downsample of the original emblem. 18 lines × ~35 cols
129
- // fits any terminal ≥45 cols wide and ≥24 rows tall.
130
- const COMPACT_AGENT_SPLASH = [
131
- ' @@@@@@@@ @@@@@@@@',
132
- ' @@@@ @@@@@@ @@@@@',
133
- ' @@@@ @@@@@@ @@@@',
134
- ' @@@@@@ @@@ @@@@ @@@@@@',
135
- ' @@@@ @@@@@@ @@@@ @@@@@@@ @@@',
136
- ' @@@ @@@@ @@@@@ @@@@ @@',
137
- ' @@@ @@@@@ @@@@ @@@ @@@@ @@',
138
- ' @@@ @@@ @@@@ @@@@ @@@@ @@@',
139
- ' @@@@@ @@@@ @@@@@ @@@@@',
140
- ' @@@@@ @@@@ @@@@@ @@@@@',
141
- ' @@@ @@@ @@@@ @@@@ @@@ @@@',
142
- ' @@@ @@@@@ @@@@@@@@ @@@@@ @@',
143
- ' @@@ @@@@ @@@@ @@@@@ @@',
144
- ' @@@@ @@@@@@@ @@@ @@@@@@@ @@@',
145
- ' @@@@@@ @@@ @@@ @@@@@@',
146
- ' @@@@ @@@@@@ @@@@',
147
- ' @@@@@@@@@@@@@@@@@@@@@@',
148
- ' @@@@@@@@ @@@@@@@@',
149
- ];
150
- export function printSplash() {
151
- const c = chalk.hex(palette.cyan);
152
- console.log('');
153
- for (const line of COMPACT_AGENT_SPLASH)
154
- console.log(c(line.replace(/\s+$/, '')));
155
- console.log('');
127
+ // ── Duration formatter ─────────────────────────────────
128
+ // Human-readable elapsed time for session + chain timers.
129
+ // Examples: 5s · 1m 23s · 2h 5m · 1d 4h
130
+ export function formatDuration(ms) {
131
+ const totalSec = Math.max(0, Math.floor(ms / 1000));
132
+ const d = Math.floor(totalSec / 86400);
133
+ const h = Math.floor((totalSec % 86400) / 3600);
134
+ const m = Math.floor((totalSec % 3600) / 60);
135
+ const s = totalSec % 60;
136
+ if (d > 0)
137
+ return `${d}d ${h}h`;
138
+ if (h > 0)
139
+ return `${h}h ${m}m`;
140
+ if (m > 0)
141
+ return `${m}m ${s}s`;
142
+ return `${s}s`;
143
+ }
144
+ // printSplash kept as a no-op for API compatibility — ASCII art was removed
145
+ // per user request. Existing callers don't need to be updated, but ideally
146
+ // would be (see src/index.ts for the canonical call site).
147
+ export function printSplash() { }
148
+ const _streamState = new WeakMap();
149
+ export function installScreenReaderDispatch(transform) {
150
+ for (const stream of [process.stdout, process.stderr]) {
151
+ if (_streamState.has(stream))
152
+ continue;
153
+ const original = stream.write.bind(stream);
154
+ _streamState.set(stream, { original, transform });
155
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
156
+ stream.write = function patchedWrite(chunk, encodingOrCb, cb) {
157
+ try {
158
+ if (typeof chunk === 'string')
159
+ chunk = transform(chunk);
160
+ else if (Buffer.isBuffer(chunk))
161
+ chunk = transform(chunk.toString('utf-8'));
162
+ }
163
+ catch { /* fall through to original */ }
164
+ // eslint-disable-next-line prefer-rest-params
165
+ return original(chunk, encodingOrCb, cb);
166
+ };
167
+ }
168
+ }
169
+ export function uninstallScreenReaderDispatch() {
170
+ for (const stream of [process.stdout, process.stderr]) {
171
+ const state = _streamState.get(stream);
172
+ if (!state)
173
+ continue;
174
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
175
+ stream.write = state.original;
176
+ _streamState.delete(stream);
177
+ }
156
178
  }
157
179
  // ── Section Header ──────────────────────────────────────
158
180
  export function printSection(title) {
package/dist/theme.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -18,6 +18,40 @@ export interface CrowcoderConfig {
18
18
  dryRun?: boolean;
19
19
  theme?: 'full' | 'compact' | 'minimal';
20
20
  showThinking?: boolean;
21
+ voice?: VoiceConfig;
22
+ }
23
+ export interface VoiceConfig {
24
+ enabled?: boolean;
25
+ stt?: VoiceSttConfig;
26
+ tts?: VoiceTtsConfig;
27
+ accessibility?: VoiceAccessibilityConfig;
28
+ }
29
+ export interface VoiceSttConfig {
30
+ apiKey?: string;
31
+ baseURL?: string;
32
+ model?: string;
33
+ dictationKey?: string;
34
+ autoSubmit?: boolean;
35
+ }
36
+ export interface VoiceTtsConfig {
37
+ apiKey?: string;
38
+ baseURL?: string;
39
+ model?: string;
40
+ assistantVoiceId?: string;
41
+ userVoiceId?: string;
42
+ echoUser?: boolean;
43
+ skipCode?: boolean;
44
+ speed?: number;
45
+ stability?: number;
46
+ similarityBoost?: number;
47
+ }
48
+ export interface VoiceAccessibilityConfig {
49
+ screenReader?: boolean;
50
+ audioCues?: boolean;
51
+ announceErrors?: boolean;
52
+ announceModeSwitches?: boolean;
53
+ askBeforeDestructive?: boolean;
54
+ longResponseThreshold?: number;
21
55
  }
22
56
  export interface ProviderPreset {
23
57
  name: string;
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAqCA,MAAM,CAAC,MAAM,SAAS,GAAmC;IACvD,SAAS,EAAE;QACT,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,+BAA+B;QACxC,YAAY,EAAE,0BAA0B;QACxC,WAAW,EAAE,IAAI;KAClB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,QAAQ;QACtB,WAAW,EAAE,IAAI;KAClB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EAAE,8BAA8B;QACvC,YAAY,EAAE,2BAA2B;QACzC,WAAW,EAAE,IAAI;KAClB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,0DAA0D;QACnE,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,IAAI;KAClB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,6BAA6B;QACtC,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,IAAI;KAClB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,sBAAsB;QACpC,WAAW,EAAE,KAAK;KACnB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,0BAA0B;QACnC,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,KAAK;KACnB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,sCAAsC;QAC/C,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,IAAI;KAClB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,IAAI;KAClB;CACF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgFA,MAAM,CAAC,MAAM,SAAS,GAAmC;IACvD,SAAS,EAAE;QACT,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,+BAA+B;QACxC,YAAY,EAAE,0BAA0B;QACxC,WAAW,EAAE,IAAI;KAClB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,QAAQ;QACtB,WAAW,EAAE,IAAI;KAClB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EAAE,8BAA8B;QACvC,YAAY,EAAE,2BAA2B;QACzC,WAAW,EAAE,IAAI;KAClB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,0DAA0D;QACnE,YAAY,EAAE,kBAAkB;QAChC,WAAW,EAAE,IAAI;KAClB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,6BAA6B;QACtC,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,IAAI;KAClB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,sBAAsB;QACpC,WAAW,EAAE,KAAK;KACnB;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,0BAA0B;QACnC,YAAY,EAAE,cAAc;QAC5B,WAAW,EAAE,KAAK;KACnB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,sCAAsC;QAC/C,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,IAAI;KAClB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,IAAI;KAClB;CACF,CAAC"}
@@ -0,0 +1,79 @@
1
+ import type { CrowcoderConfig, VoiceConfig, VoiceSttConfig, VoiceTtsConfig, VoiceAccessibilityConfig } from './types.js';
2
+ export declare const DEFAULT_ASSISTANT_VOICE = "21m00Tcm4TlvDq8ikWAM";
3
+ export declare const DEFAULT_USER_VOICE = "AZnzlk1XvdvUeBnXmlld";
4
+ export declare function getVoiceConfig(config: CrowcoderConfig): VoiceConfig;
5
+ export declare function isVoiceEnabled(config: CrowcoderConfig): boolean;
6
+ export declare function getSttKey(config: CrowcoderConfig): string;
7
+ export declare function getTtsKey(config: CrowcoderConfig): string;
8
+ export declare function getSttConfig(config: CrowcoderConfig): Required<Omit<VoiceSttConfig, 'apiKey'>> & {
9
+ apiKey: string;
10
+ };
11
+ export declare function getTtsConfig(config: CrowcoderConfig): Required<Omit<VoiceTtsConfig, 'apiKey'>> & {
12
+ apiKey: string;
13
+ };
14
+ export declare function getAccessibilityConfig(config: CrowcoderConfig): Required<VoiceAccessibilityConfig>;
15
+ /**
16
+ * Remove fenced + inline code blocks from text before TTS. Code read aloud is
17
+ * a wall of symbols ("backtick t s c semicolon") that's both useless to a
18
+ * blind user and very long. We replace fenced blocks with a brief audible
19
+ * announcement so the listener knows code WAS produced, just not read.
20
+ */
21
+ export declare function stripCodeForTts(text: string): string;
22
+ /**
23
+ * Split text into sentence-ish chunks so we can stream TTS — play paragraph
24
+ * 1 while paragraph 2 is being synthesized. Also lets the user skip/replay
25
+ * at a meaningful granularity (Alt+D = skip, Alt+A = replay).
26
+ *
27
+ * Splits on paragraph boundaries first; chunks larger than ~400 chars are
28
+ * further split on sentence boundaries.
29
+ */
30
+ export declare function chunkForTts(text: string, maxChunkChars?: number): string[];
31
+ /**
32
+ * Synthesize text to speech via ElevenLabs and return the audio bytes.
33
+ * Returns null when not configured or on error — callers fall back silently
34
+ * to text-only output rather than crashing the REPL.
35
+ */
36
+ export interface TtsRequestOptions {
37
+ voiceId: string;
38
+ model?: string;
39
+ speed?: number;
40
+ stability?: number;
41
+ similarityBoost?: number;
42
+ }
43
+ export declare function synthesizeSpeech(text: string, cfg: CrowcoderConfig, opts: TtsRequestOptions): Promise<Buffer | null>;
44
+ /**
45
+ * Convenience: synthesize + play. Returns true if played successfully.
46
+ * Use this for short utterances (mode announcements, beeps, errors).
47
+ */
48
+ export declare function speak(text: string, cfg: CrowcoderConfig, opts: TtsRequestOptions & {
49
+ signal?: AbortSignal;
50
+ }): Promise<boolean>;
51
+ /**
52
+ * Speak the assistant's response, chunked, with code stripped if configured.
53
+ * Returns the number of chunks played. Honors the cancel signal so Ctrl+C
54
+ * during playback halts cleanly.
55
+ */
56
+ export declare function speakAssistantResponse(text: string, cfg: CrowcoderConfig, signal?: AbortSignal): Promise<number>;
57
+ /**
58
+ * Speak the user's input back in the user-echo voice. Skipped for slash
59
+ * commands (`/foo …`) since those aren't worth re-reading.
60
+ */
61
+ export declare function speakUserEcho(text: string, cfg: CrowcoderConfig, signal?: AbortSignal): Promise<boolean>;
62
+ /**
63
+ * Send recorded audio to Whisper and return the transcript. Returns null on
64
+ * failure; caller logs + degrades.
65
+ */
66
+ export declare function transcribeAudio(audio: Buffer, cfg: CrowcoderConfig, format?: 'wav' | 'mp3' | 'webm'): Promise<string | null>;
67
+ /**
68
+ * Record from the mic, send to Whisper, return the transcript. Plays audio
69
+ * cues at each state change so blind users can follow what's happening.
70
+ *
71
+ * Caller is responsible for starting/stopping the recording via the
72
+ * `recordController` — but for the simple "one-shot" case (e.g. `/dictate`
73
+ * slash command), `dictateOnce(maxSeconds)` is the easy entry point.
74
+ */
75
+ export declare function dictateOnce(cfg: CrowcoderConfig, maxSeconds?: number): Promise<string | null>;
76
+ /**
77
+ * Pretty-print voice config status for /voice (no args).
78
+ */
79
+ export declare function printVoiceStatus(cfg: CrowcoderConfig): void;
package/dist/voice.js ADDED
@@ -0,0 +1,344 @@
1
+ import chalk from 'chalk';
2
+ import { isFfmpegAvailable, playAudioBuffer, recordAudio, audioCue } from './audio.js';
3
+ // ── Default voice ids (ElevenLabs preset voices, available with any key) ──
4
+ export const DEFAULT_ASSISTANT_VOICE = '21m00Tcm4TlvDq8ikWAM'; // Rachel
5
+ export const DEFAULT_USER_VOICE = 'AZnzlk1XvdvUeBnXmlld'; // Domi
6
+ // ── Config resolution ─────────────────────────────────────
7
+ // Voice config can be sparse — most users won't set it at all. These helpers
8
+ // resolve undefined → sensible default, and surface "voice usable?" checks
9
+ // so call sites stay clean.
10
+ export function getVoiceConfig(config) {
11
+ return config.voice || {};
12
+ }
13
+ export function isVoiceEnabled(config) {
14
+ return Boolean(config.voice?.enabled);
15
+ }
16
+ export function getSttKey(config) {
17
+ // Whisper STT — falls back to the main OpenAI-compatible key. Most users
18
+ // configure OpenRouter as their main provider, in which case Whisper isn't
19
+ // reachable through OpenRouter's free tier; they'll want a separate OpenAI
20
+ // key in voice.stt.apiKey.
21
+ return config.voice?.stt?.apiKey || config.apiKey || '';
22
+ }
23
+ export function getTtsKey(config) {
24
+ // ElevenLabs key — no fallback; this is a separate provider.
25
+ return config.voice?.tts?.apiKey || '';
26
+ }
27
+ export function getSttConfig(config) {
28
+ const stt = config.voice?.stt || {};
29
+ return {
30
+ apiKey: getSttKey(config),
31
+ baseURL: stt.baseURL || 'https://api.openai.com/v1',
32
+ model: stt.model || 'whisper-1',
33
+ dictationKey: stt.dictationKey || 'F1',
34
+ autoSubmit: Boolean(stt.autoSubmit),
35
+ };
36
+ }
37
+ export function getTtsConfig(config) {
38
+ const tts = config.voice?.tts || {};
39
+ return {
40
+ apiKey: getTtsKey(config),
41
+ baseURL: tts.baseURL || 'https://api.elevenlabs.io/v1',
42
+ model: tts.model || 'eleven_turbo_v2_5',
43
+ assistantVoiceId: tts.assistantVoiceId || DEFAULT_ASSISTANT_VOICE,
44
+ userVoiceId: tts.userVoiceId || DEFAULT_USER_VOICE,
45
+ echoUser: tts.echoUser ?? true,
46
+ skipCode: tts.skipCode ?? true,
47
+ speed: tts.speed ?? 1.0,
48
+ stability: tts.stability ?? 0.5,
49
+ similarityBoost: tts.similarityBoost ?? 0.75,
50
+ };
51
+ }
52
+ export function getAccessibilityConfig(config) {
53
+ const a = config.voice?.accessibility || {};
54
+ return {
55
+ screenReader: Boolean(a.screenReader),
56
+ audioCues: a.audioCues ?? true,
57
+ announceErrors: a.announceErrors ?? true,
58
+ announceModeSwitches: a.announceModeSwitches ?? true,
59
+ askBeforeDestructive: a.askBeforeDestructive ?? true,
60
+ longResponseThreshold: a.longResponseThreshold ?? 300,
61
+ };
62
+ }
63
+ // ── Code stripping for TTS ────────────────────────────────
64
+ /**
65
+ * Remove fenced + inline code blocks from text before TTS. Code read aloud is
66
+ * a wall of symbols ("backtick t s c semicolon") that's both useless to a
67
+ * blind user and very long. We replace fenced blocks with a brief audible
68
+ * announcement so the listener knows code WAS produced, just not read.
69
+ */
70
+ export function stripCodeForTts(text) {
71
+ let out = text;
72
+ // Fenced blocks: ```lang\n...\n``` or ~~~lang\n...\n~~~
73
+ out = out.replace(/```[\s\S]*?```/g, (match) => {
74
+ const lines = match.split('\n').length - 2; // minus the fence lines
75
+ if (lines <= 1)
76
+ return '[code]';
77
+ return `[code block, ${lines} lines]`;
78
+ });
79
+ out = out.replace(/~~~[\s\S]*?~~~/g, (match) => {
80
+ const lines = match.split('\n').length - 2;
81
+ if (lines <= 1)
82
+ return '[code]';
83
+ return `[code block, ${lines} lines]`;
84
+ });
85
+ // Inline code: `foo` → "foo" (without the backticks, read naturally)
86
+ out = out.replace(/`([^`\n]+)`/g, '$1');
87
+ // Markdown links: [text](url) → just the text
88
+ out = out.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1');
89
+ // Headings ###, **bold**, *italic*, etc. — drop the markup, keep the words
90
+ out = out.replace(/^#+\s+/gm, '');
91
+ out = out.replace(/\*\*([^*]+)\*\*/g, '$1');
92
+ out = out.replace(/(?<!\*)\*([^*\n]+)\*(?!\*)/g, '$1');
93
+ // Bullet markers — let the natural pause between lines handle pacing
94
+ out = out.replace(/^\s*[-*+]\s+/gm, '');
95
+ // Trim consecutive blank lines down to one
96
+ out = out.replace(/\n{3,}/g, '\n\n').trim();
97
+ return out;
98
+ }
99
+ // ── Long-text segmentation for chunked playback ──────────
100
+ /**
101
+ * Split text into sentence-ish chunks so we can stream TTS — play paragraph
102
+ * 1 while paragraph 2 is being synthesized. Also lets the user skip/replay
103
+ * at a meaningful granularity (Alt+D = skip, Alt+A = replay).
104
+ *
105
+ * Splits on paragraph boundaries first; chunks larger than ~400 chars are
106
+ * further split on sentence boundaries.
107
+ */
108
+ export function chunkForTts(text, maxChunkChars = 400) {
109
+ const paragraphs = text.split(/\n\s*\n/).map((p) => p.trim()).filter(Boolean);
110
+ const chunks = [];
111
+ for (const para of paragraphs) {
112
+ if (para.length <= maxChunkChars) {
113
+ chunks.push(para);
114
+ continue;
115
+ }
116
+ // Sentence split: . ! ? followed by whitespace/end
117
+ const sentences = para.split(/(?<=[.!?])\s+/);
118
+ let buf = '';
119
+ for (const s of sentences) {
120
+ if ((buf + ' ' + s).length > maxChunkChars && buf) {
121
+ chunks.push(buf.trim());
122
+ buf = s;
123
+ }
124
+ else {
125
+ buf = buf ? `${buf} ${s}` : s;
126
+ }
127
+ }
128
+ if (buf.trim())
129
+ chunks.push(buf.trim());
130
+ }
131
+ return chunks.filter((c) => c.length > 0);
132
+ }
133
+ export async function synthesizeSpeech(text, cfg, opts) {
134
+ const tts = getTtsConfig(cfg);
135
+ if (!tts.apiKey)
136
+ return null;
137
+ if (!text.trim())
138
+ return null;
139
+ const voiceId = opts.voiceId;
140
+ const url = `${tts.baseURL.replace(/\/+$/, '')}/text-to-speech/${encodeURIComponent(voiceId)}`;
141
+ const body = {
142
+ text,
143
+ model_id: opts.model || tts.model,
144
+ voice_settings: {
145
+ stability: opts.stability ?? tts.stability,
146
+ similarity_boost: opts.similarityBoost ?? tts.similarityBoost,
147
+ speed: opts.speed ?? tts.speed,
148
+ },
149
+ };
150
+ try {
151
+ const resp = await fetch(url, {
152
+ method: 'POST',
153
+ headers: {
154
+ 'xi-api-key': tts.apiKey,
155
+ 'Content-Type': 'application/json',
156
+ 'Accept': 'audio/mpeg',
157
+ },
158
+ body: JSON.stringify(body),
159
+ signal: AbortSignal.timeout(60_000),
160
+ });
161
+ if (!resp.ok) {
162
+ const errText = await resp.text();
163
+ console.log(chalk.dim(` [voice] TTS error ${resp.status}: ${errText.slice(0, 200)}`));
164
+ return null;
165
+ }
166
+ const arrayBuf = await resp.arrayBuffer();
167
+ return Buffer.from(arrayBuf);
168
+ }
169
+ catch (err) {
170
+ const msg = err instanceof Error ? err.message : String(err);
171
+ console.log(chalk.dim(` [voice] TTS request failed: ${msg}`));
172
+ return null;
173
+ }
174
+ }
175
+ /**
176
+ * Convenience: synthesize + play. Returns true if played successfully.
177
+ * Use this for short utterances (mode announcements, beeps, errors).
178
+ */
179
+ export async function speak(text, cfg, opts) {
180
+ const buf = await synthesizeSpeech(text, cfg, opts);
181
+ if (!buf)
182
+ return false;
183
+ return await playAudioBuffer(buf, opts.signal);
184
+ }
185
+ /**
186
+ * Speak the assistant's response, chunked, with code stripped if configured.
187
+ * Returns the number of chunks played. Honors the cancel signal so Ctrl+C
188
+ * during playback halts cleanly.
189
+ */
190
+ export async function speakAssistantResponse(text, cfg, signal) {
191
+ const tts = getTtsConfig(cfg);
192
+ if (!tts.apiKey)
193
+ return 0;
194
+ let prepared = tts.skipCode ? stripCodeForTts(text) : text;
195
+ if (!prepared.trim())
196
+ return 0;
197
+ const chunks = chunkForTts(prepared);
198
+ let played = 0;
199
+ for (const chunk of chunks) {
200
+ if (signal?.aborted)
201
+ break;
202
+ const ok = await speak(chunk, cfg, {
203
+ voiceId: tts.assistantVoiceId,
204
+ signal,
205
+ });
206
+ if (ok)
207
+ played++;
208
+ }
209
+ return played;
210
+ }
211
+ /**
212
+ * Speak the user's input back in the user-echo voice. Skipped for slash
213
+ * commands (`/foo …`) since those aren't worth re-reading.
214
+ */
215
+ export async function speakUserEcho(text, cfg, signal) {
216
+ const tts = getTtsConfig(cfg);
217
+ if (!tts.apiKey || !tts.echoUser)
218
+ return false;
219
+ if (text.trim().startsWith('/') || text.trim().startsWith('!'))
220
+ return false;
221
+ return await speak(text, cfg, { voiceId: tts.userVoiceId, signal });
222
+ }
223
+ // ── OpenAI Whisper STT client ─────────────────────────────
224
+ /**
225
+ * Send recorded audio to Whisper and return the transcript. Returns null on
226
+ * failure; caller logs + degrades.
227
+ */
228
+ export async function transcribeAudio(audio, cfg, format = 'wav') {
229
+ const stt = getSttConfig(cfg);
230
+ if (!stt.apiKey)
231
+ return null;
232
+ if (audio.length === 0)
233
+ return null;
234
+ // OpenAI requires a multipart upload. fetch supports FormData on Node 18+.
235
+ // Convert Buffer → Uint8Array → Blob. Node 24 narrowed Blob's input type
236
+ // to require a non-shared ArrayBuffer, so passing a raw Buffer trips a
237
+ // type error; the .buffer slice keeps it explicit.
238
+ const u8 = new Uint8Array(audio.buffer.slice(audio.byteOffset, audio.byteOffset + audio.byteLength));
239
+ const form = new FormData();
240
+ form.append('file', new Blob([u8], { type: `audio/${format}` }), `recording.${format}`);
241
+ form.append('model', stt.model);
242
+ const url = `${stt.baseURL.replace(/\/+$/, '')}/audio/transcriptions`;
243
+ try {
244
+ const resp = await fetch(url, {
245
+ method: 'POST',
246
+ headers: {
247
+ 'Authorization': `Bearer ${stt.apiKey}`,
248
+ },
249
+ body: form,
250
+ signal: AbortSignal.timeout(60_000),
251
+ });
252
+ if (!resp.ok) {
253
+ const errText = await resp.text();
254
+ console.log(chalk.dim(` [voice] Whisper error ${resp.status}: ${errText.slice(0, 200)}`));
255
+ return null;
256
+ }
257
+ const json = (await resp.json());
258
+ return (json.text || '').trim();
259
+ }
260
+ catch (err) {
261
+ const msg = err instanceof Error ? err.message : String(err);
262
+ console.log(chalk.dim(` [voice] Whisper request failed: ${msg}`));
263
+ return null;
264
+ }
265
+ }
266
+ // ── Top-level dictation flow ─────────────────────────────
267
+ /**
268
+ * Record from the mic, send to Whisper, return the transcript. Plays audio
269
+ * cues at each state change so blind users can follow what's happening.
270
+ *
271
+ * Caller is responsible for starting/stopping the recording via the
272
+ * `recordController` — but for the simple "one-shot" case (e.g. `/dictate`
273
+ * slash command), `dictateOnce(maxSeconds)` is the easy entry point.
274
+ */
275
+ export async function dictateOnce(cfg, maxSeconds = 30) {
276
+ const a = getAccessibilityConfig(cfg);
277
+ if (!(await isFfmpegAvailable())) {
278
+ console.log(chalk.yellow(' [voice] ffmpeg not found. Install ffmpeg to enable dictation: https://ffmpeg.org/'));
279
+ return null;
280
+ }
281
+ const stt = getSttConfig(cfg);
282
+ if (!stt.apiKey) {
283
+ console.log(chalk.yellow(' [voice] STT not configured. Set voice.stt.apiKey (OpenAI key) via /voice config.'));
284
+ return null;
285
+ }
286
+ if (a.audioCues)
287
+ await audioCue('recording-start');
288
+ console.log(chalk.dim(' [voice] Recording (max ' + maxSeconds + 's)…'));
289
+ const audio = await recordAudio(maxSeconds);
290
+ if (!audio || audio.length === 0) {
291
+ if (a.audioCues)
292
+ await audioCue('error');
293
+ console.log(chalk.dim(' [voice] No audio captured.'));
294
+ return null;
295
+ }
296
+ if (a.audioCues)
297
+ await audioCue('processing');
298
+ console.log(chalk.dim(' [voice] Transcribing…'));
299
+ const transcript = await transcribeAudio(audio, cfg, 'wav');
300
+ if (!transcript) {
301
+ if (a.audioCues)
302
+ await audioCue('error');
303
+ return null;
304
+ }
305
+ if (a.audioCues)
306
+ await audioCue('done');
307
+ return transcript;
308
+ }
309
+ // ── Status print ─────────────────────────────────────────
310
+ /**
311
+ * Pretty-print voice config status for /voice (no args).
312
+ */
313
+ export function printVoiceStatus(cfg) {
314
+ const v = getVoiceConfig(cfg);
315
+ const stt = getSttConfig(cfg);
316
+ const tts = getTtsConfig(cfg);
317
+ const a = getAccessibilityConfig(cfg);
318
+ console.log(chalk.cyan('\n voice & accessibility'));
319
+ console.log(chalk.dim(` enabled: ${v.enabled ? '✓ yes' : '✗ no'}`));
320
+ console.log('');
321
+ console.log(chalk.dim(` STT (dictation): ${stt.apiKey ? `✓ key set · ${stt.model}` : '✗ no key'}`));
322
+ console.log(chalk.dim(` dictation key: ${stt.dictationKey}`));
323
+ console.log(chalk.dim(` auto-submit: ${stt.autoSubmit ? 'yes' : 'no'}`));
324
+ console.log('');
325
+ console.log(chalk.dim(` TTS (readout): ${tts.apiKey ? `✓ key set · ${tts.model}` : '✗ no key'}`));
326
+ console.log(chalk.dim(` assistant voice: ${tts.assistantVoiceId}`));
327
+ console.log(chalk.dim(` user voice: ${tts.userVoiceId}`));
328
+ console.log(chalk.dim(` echo user: ${tts.echoUser ? 'yes' : 'no'}`));
329
+ console.log(chalk.dim(` skip code: ${tts.skipCode ? 'yes' : 'no'}`));
330
+ console.log(chalk.dim(` speed: ${tts.speed}x`));
331
+ console.log('');
332
+ console.log(chalk.dim(` accessibility:`));
333
+ console.log(chalk.dim(` screen reader: ${a.screenReader ? 'yes' : 'no'}`));
334
+ console.log(chalk.dim(` audio cues: ${a.audioCues ? 'yes' : 'no'}`));
335
+ console.log(chalk.dim(` announce errors: ${a.announceErrors ? 'yes' : 'no'}`));
336
+ console.log(chalk.dim(` announce modes: ${a.announceModeSwitches ? 'yes' : 'no'}`));
337
+ console.log(chalk.dim(` ask destructive: ${a.askBeforeDestructive ? 'yes' : 'no'}`));
338
+ console.log(chalk.dim(` long-resp words: ${a.longResponseThreshold}`));
339
+ console.log('');
340
+ console.log(chalk.dim(' Hotkeys (when enabled):'));
341
+ console.log(chalk.dim(' F1 record · F2 pause · F3 replay · F4 skip · F5 speed+ · F6 speed–'));
342
+ console.log('');
343
+ }
344
+ //# sourceMappingURL=voice.js.map