elsabro 2.2.0 → 3.7.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.
Files changed (88) hide show
  1. package/README.md +668 -20
  2. package/agents/elsabro-orchestrator.md +113 -0
  3. package/bin/install.js +0 -0
  4. package/commands/elsabro/execute.md +223 -46
  5. package/commands/elsabro/start.md +34 -0
  6. package/commands/elsabro/verify-work.md +29 -0
  7. package/flows/development-flow.json +452 -0
  8. package/flows/quick-flow.json +118 -0
  9. package/hooks/confirm-destructive.sh +145 -0
  10. package/hooks/hooks-config.json +81 -0
  11. package/hooks/lint-check.sh +238 -0
  12. package/hooks/post-edit-test.sh +189 -0
  13. package/package.json +5 -3
  14. package/references/SYSTEM_INDEX.md +379 -5
  15. package/references/agent-marketplace.md +2274 -0
  16. package/references/agent-protocol.md +1126 -0
  17. package/references/ai-code-suggestions.md +2413 -0
  18. package/references/checkpointing.md +595 -0
  19. package/references/collaboration-patterns.md +851 -0
  20. package/references/collaborative-sessions.md +1081 -0
  21. package/references/configuration-management.md +1810 -0
  22. package/references/cost-tracking.md +1095 -0
  23. package/references/enterprise-sso.md +2001 -0
  24. package/references/error-contracts-tests.md +1171 -0
  25. package/references/error-contracts-v2.md +968 -0
  26. package/references/error-contracts.md +3102 -0
  27. package/references/event-driven.md +1031 -0
  28. package/references/flow-orchestration.md +940 -0
  29. package/references/flow-visualization.md +1557 -0
  30. package/references/ide-integrations.md +3513 -0
  31. package/references/interrupt-system.md +681 -0
  32. package/references/kubernetes-deployment.md +3099 -0
  33. package/references/memory-system.md +683 -0
  34. package/references/mobile-companion.md +3236 -0
  35. package/references/multi-llm-providers.md +2494 -0
  36. package/references/multi-project-memory.md +1182 -0
  37. package/references/observability.md +793 -0
  38. package/references/output-schemas.md +858 -0
  39. package/references/parallel-worktrees.md +293 -0
  40. package/references/performance-profiler.md +955 -0
  41. package/references/plugin-system.md +1526 -0
  42. package/references/prompt-management.md +292 -0
  43. package/references/sandbox-execution.md +303 -0
  44. package/references/security-system.md +1253 -0
  45. package/references/streaming.md +696 -0
  46. package/references/testing-framework.md +1151 -0
  47. package/references/time-travel.md +802 -0
  48. package/references/tool-registry.md +886 -0
  49. package/references/voice-commands.md +3296 -0
  50. package/scripts/setup-parallel-worktrees.sh +319 -0
  51. package/skills/memory-update.md +207 -0
  52. package/skills/review.md +331 -0
  53. package/skills/techdebt.md +289 -0
  54. package/skills/tutor.md +219 -0
  55. package/templates/.planning/notes/.gitkeep +0 -0
  56. package/templates/CLAUDE.md.template +48 -0
  57. package/templates/agent-marketplace-config.json +220 -0
  58. package/templates/agent-protocol-config.json +136 -0
  59. package/templates/ai-suggestions-config.json +100 -0
  60. package/templates/checkpoint-state.json +61 -0
  61. package/templates/collaboration-config.json +157 -0
  62. package/templates/collaborative-sessions-config.json +153 -0
  63. package/templates/configuration-config.json +245 -0
  64. package/templates/cost-tracking-config.json +148 -0
  65. package/templates/enterprise-sso-config.json +438 -0
  66. package/templates/error-handling-config.json +79 -2
  67. package/templates/events-config.json +148 -0
  68. package/templates/flow-visualization-config.json +196 -0
  69. package/templates/ide-integrations-config.json +442 -0
  70. package/templates/kubernetes-config.json +764 -0
  71. package/templates/memory-state.json +84 -0
  72. package/templates/mistakes.md.template +52 -0
  73. package/templates/mobile-companion-config.json +600 -0
  74. package/templates/multi-llm-config.json +544 -0
  75. package/templates/multi-project-memory-config.json +145 -0
  76. package/templates/observability-config.json +109 -0
  77. package/templates/patterns.md.template +114 -0
  78. package/templates/performance-profiler-config.json +125 -0
  79. package/templates/plugin-config.json +170 -0
  80. package/templates/prompt-management-config.json +86 -0
  81. package/templates/sandbox-config.json +185 -0
  82. package/templates/schemas-config.json +65 -0
  83. package/templates/security-config.json +120 -0
  84. package/templates/streaming-config.json +72 -0
  85. package/templates/testing-config.json +81 -0
  86. package/templates/timetravel-config.json +62 -0
  87. package/templates/tool-registry-config.json +109 -0
  88. package/templates/voice-commands-config.json +658 -0
@@ -0,0 +1,658 @@
1
+ {
2
+ "$schema": "https://elsabro.dev/schemas/voice-config-v3.7.json",
3
+ "version": "3.7.0",
4
+ "name": "ELSABRO Voice Commands Configuration",
5
+ "description": "Complete configuration for voice commands and dictation system",
6
+
7
+ "voiceEngine": {
8
+ "enabled": true,
9
+ "autoStart": false,
10
+ "sampleRate": 16000,
11
+ "channels": 1,
12
+ "bufferSize": 4096,
13
+ "maxRecordingDuration": 30000,
14
+ "silenceTimeout": 1500,
15
+ "audioFormat": "pcm_f32le"
16
+ },
17
+
18
+ "asrProvider": {
19
+ "provider": "whisper-api",
20
+ "providers": {
21
+ "whisper-api": {
22
+ "enabled": true,
23
+ "model": "whisper-1",
24
+ "endpoint": "https://api.openai.com/v1/audio/transcriptions",
25
+ "apiKeyEnvVar": "OPENAI_API_KEY",
26
+ "maxFileSizeMB": 25,
27
+ "supportedFormats": ["flac", "m4a", "mp3", "mp4", "mpeg", "mpga", "oga", "ogg", "wav", "webm"],
28
+ "timeout": 30000
29
+ },
30
+ "whisper-local": {
31
+ "enabled": false,
32
+ "modelPath": "./models/whisper-large-v3-turbo.onnx",
33
+ "modelSize": "large-v3-turbo",
34
+ "device": "auto",
35
+ "computeType": "float16",
36
+ "beamSize": 5,
37
+ "vadFilter": true,
38
+ "wordTimestamps": true
39
+ },
40
+ "azure": {
41
+ "enabled": false,
42
+ "endpoint": "https://{region}.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1",
43
+ "apiKeyEnvVar": "AZURE_SPEECH_KEY",
44
+ "regionEnvVar": "AZURE_REGION",
45
+ "outputFormat": "detailed",
46
+ "profanityFilter": "raw"
47
+ },
48
+ "google": {
49
+ "enabled": false,
50
+ "endpoint": "https://speech.googleapis.com/v1/speech:recognize",
51
+ "apiKeyEnvVar": "GOOGLE_API_KEY",
52
+ "model": "latest_long",
53
+ "useEnhanced": true,
54
+ "enableWordTimeOffsets": true
55
+ }
56
+ },
57
+ "fallbackOrder": ["whisper-api", "whisper-local", "azure", "google"]
58
+ },
59
+
60
+ "language": {
61
+ "default": "es",
62
+ "autoDetect": true,
63
+ "supported": ["es", "en", "pt"],
64
+ "languageConfigs": {
65
+ "es": {
66
+ "name": "Spanish",
67
+ "nativeName": "Espanol",
68
+ "locale": "es-ES",
69
+ "whisperCode": "es",
70
+ "ttsVoice": "nova",
71
+ "azureVoice": "es-ES-ElviraNeural",
72
+ "googleVoice": "es-ES-Neural2-A",
73
+ "dateFormat": "DD/MM/YYYY",
74
+ "timeFormat": "HH:mm",
75
+ "numberFormat": "es-ES"
76
+ },
77
+ "en": {
78
+ "name": "English",
79
+ "nativeName": "English",
80
+ "locale": "en-US",
81
+ "whisperCode": "en",
82
+ "ttsVoice": "alloy",
83
+ "azureVoice": "en-US-JennyNeural",
84
+ "googleVoice": "en-US-Neural2-J",
85
+ "dateFormat": "MM/DD/YYYY",
86
+ "timeFormat": "h:mm A",
87
+ "numberFormat": "en-US"
88
+ },
89
+ "pt": {
90
+ "name": "Portuguese",
91
+ "nativeName": "Portugues",
92
+ "locale": "pt-BR",
93
+ "whisperCode": "pt",
94
+ "ttsVoice": "shimmer",
95
+ "azureVoice": "pt-BR-FranciscaNeural",
96
+ "googleVoice": "pt-BR-Neural2-A",
97
+ "dateFormat": "DD/MM/YYYY",
98
+ "timeFormat": "HH:mm",
99
+ "numberFormat": "pt-BR"
100
+ }
101
+ }
102
+ },
103
+
104
+ "wakeWord": {
105
+ "enabled": true,
106
+ "phrase": "hey elsabro",
107
+ "alternatives": ["ok elsabro", "elsabro"],
108
+ "sensitivity": 0.7,
109
+ "engine": "porcupine",
110
+ "engines": {
111
+ "porcupine": {
112
+ "accessKeyEnvVar": "PICOVOICE_ACCESS_KEY",
113
+ "keywordPath": "./models/hey_elsabro.ppn",
114
+ "modelPath": "./models/porcupine_params.pv",
115
+ "endpointDuration": 1.0
116
+ },
117
+ "custom": {
118
+ "modelPath": "./models/wake_word_custom.onnx",
119
+ "threshold": 0.8,
120
+ "windowSize": 1.5
121
+ }
122
+ },
123
+ "requireConsecutive": 2,
124
+ "cooldownMs": 2000,
125
+ "feedbackSound": true
126
+ },
127
+
128
+ "vad": {
129
+ "enabled": true,
130
+ "engine": "webrtc",
131
+ "engines": {
132
+ "webrtc": {
133
+ "mode": 3,
134
+ "frameDurationMs": 30,
135
+ "sampleRate": 16000
136
+ },
137
+ "silero": {
138
+ "modelPath": "./models/silero_vad.onnx",
139
+ "threshold": 0.5,
140
+ "minSpeechDurationMs": 250,
141
+ "minSilenceDurationMs": 100,
142
+ "windowSizeSamples": 1536,
143
+ "speechPadMs": 30
144
+ },
145
+ "energy": {
146
+ "threshold": 0.01,
147
+ "zeroCrossingThreshold": 0.1
148
+ }
149
+ },
150
+ "speechPaddingMs": 300,
151
+ "maxSpeechDurationMs": 30000
152
+ },
153
+
154
+ "noiseReduction": {
155
+ "enabled": true,
156
+ "noiseGateDb": -40,
157
+ "echoCancellation": true,
158
+ "autoGainControl": true,
159
+ "noiseSuppression": true,
160
+ "spectralSubtraction": {
161
+ "enabled": true,
162
+ "overSubtractionFactor": 2.0,
163
+ "spectralFloor": 0.01,
164
+ "smoothingFactor": 0.98
165
+ },
166
+ "calibration": {
167
+ "durationMs": 3000,
168
+ "autoCalibrate": true,
169
+ "recalibrateOnNoiseChange": true
170
+ }
171
+ },
172
+
173
+ "intentClassifier": {
174
+ "modelPath": "./models/elsabro-intent-v1.onnx",
175
+ "tokenizerPath": "./models/intent-tokenizer.json",
176
+ "confidenceThreshold": 0.7,
177
+ "fallbackToLLM": true,
178
+ "llmModel": "claude-3-5-sonnet-20241022",
179
+ "cacheResults": true,
180
+ "cacheTTLMs": 3600000,
181
+ "intents": {
182
+ "execute_plan": {
183
+ "patterns": [
184
+ "ejecuta el plan",
185
+ "corre el proyecto",
186
+ "inicia la ejecucion",
187
+ "run the plan",
188
+ "execute plan",
189
+ "start execution",
190
+ "executa o plano"
191
+ ],
192
+ "action": "/elsabro:execute",
193
+ "requiresConfirmation": false
194
+ },
195
+ "stop_execution": {
196
+ "patterns": [
197
+ "para",
198
+ "detente",
199
+ "stop",
200
+ "cancela",
201
+ "termina"
202
+ ],
203
+ "action": "/elsabro:stop",
204
+ "requiresConfirmation": false
205
+ },
206
+ "pause_execution": {
207
+ "patterns": [
208
+ "pausa",
209
+ "pause",
210
+ "espera",
211
+ "wait"
212
+ ],
213
+ "action": "/elsabro:pause",
214
+ "requiresConfirmation": false
215
+ },
216
+ "resume_execution": {
217
+ "patterns": [
218
+ "continua",
219
+ "resume",
220
+ "sigue",
221
+ "continue"
222
+ ],
223
+ "action": "/elsabro:resume",
224
+ "requiresConfirmation": false
225
+ },
226
+ "show_progress": {
227
+ "patterns": [
228
+ "muestra el progreso",
229
+ "como va",
230
+ "show progress",
231
+ "status"
232
+ ],
233
+ "action": "/elsabro:progress",
234
+ "requiresConfirmation": false
235
+ },
236
+ "create_task": {
237
+ "patterns": [
238
+ "crea una tarea",
239
+ "nueva tarea",
240
+ "create task",
241
+ "new task",
242
+ "add task"
243
+ ],
244
+ "action": "TaskCreate",
245
+ "requiresConfirmation": true,
246
+ "entities": ["task_description", "priority", "assignee"]
247
+ },
248
+ "list_tasks": {
249
+ "patterns": [
250
+ "lista las tareas",
251
+ "muestra tareas",
252
+ "list tasks",
253
+ "show tasks"
254
+ ],
255
+ "action": "TaskList",
256
+ "requiresConfirmation": false
257
+ },
258
+ "complete_task": {
259
+ "patterns": [
260
+ "completa la tarea",
261
+ "termina tarea",
262
+ "complete task",
263
+ "finish task"
264
+ ],
265
+ "action": "TaskComplete",
266
+ "requiresConfirmation": true,
267
+ "entities": ["task_id", "task_description"]
268
+ },
269
+ "open_file": {
270
+ "patterns": [
271
+ "abre el archivo",
272
+ "abrir",
273
+ "open file",
274
+ "open"
275
+ ],
276
+ "action": "FileOpen",
277
+ "requiresConfirmation": false,
278
+ "entities": ["file_path"]
279
+ },
280
+ "goto_line": {
281
+ "patterns": [
282
+ "ir a la linea",
283
+ "ve a linea",
284
+ "go to line",
285
+ "line"
286
+ ],
287
+ "action": "GoToLine",
288
+ "requiresConfirmation": false,
289
+ "entities": ["line_number"]
290
+ },
291
+ "search_code": {
292
+ "patterns": [
293
+ "busca",
294
+ "encuentra",
295
+ "search",
296
+ "find"
297
+ ],
298
+ "action": "Search",
299
+ "requiresConfirmation": false,
300
+ "entities": ["search_query"]
301
+ },
302
+ "switch_agent": {
303
+ "patterns": [
304
+ "cambia al agente",
305
+ "usa agente",
306
+ "switch to agent",
307
+ "use agent"
308
+ ],
309
+ "action": "AgentSwitch",
310
+ "requiresConfirmation": false,
311
+ "entities": ["agent_name"]
312
+ },
313
+ "list_agents": {
314
+ "patterns": [
315
+ "lista los agentes",
316
+ "que agentes hay",
317
+ "list agents",
318
+ "show agents"
319
+ ],
320
+ "action": "AgentList",
321
+ "requiresConfirmation": false
322
+ },
323
+ "show_logs": {
324
+ "patterns": [
325
+ "muestra los logs",
326
+ "ver logs",
327
+ "show logs",
328
+ "display logs"
329
+ ],
330
+ "action": "ShowLogs",
331
+ "requiresConfirmation": false
332
+ },
333
+ "show_errors": {
334
+ "patterns": [
335
+ "muestra los errores",
336
+ "hay errores",
337
+ "show errors",
338
+ "display errors"
339
+ ],
340
+ "action": "ShowErrors",
341
+ "requiresConfirmation": false
342
+ },
343
+ "help": {
344
+ "patterns": [
345
+ "ayuda",
346
+ "que puedo hacer",
347
+ "help",
348
+ "what can I do",
349
+ "commands"
350
+ ],
351
+ "action": "ShowHelp",
352
+ "requiresConfirmation": false
353
+ },
354
+ "calibrate": {
355
+ "patterns": [
356
+ "calibra",
357
+ "calibrar microfono",
358
+ "calibrate",
359
+ "calibrate mic"
360
+ ],
361
+ "action": "Calibrate",
362
+ "requiresConfirmation": false
363
+ }
364
+ },
365
+ "entities": {
366
+ "file_path": {
367
+ "type": "regex",
368
+ "patterns": [
369
+ "(?:archivo|file)\\s+([\\w\\-\\.\\/]+)",
370
+ "([\\w\\-]+\\/[\\w\\-\\.]+)"
371
+ ]
372
+ },
373
+ "line_number": {
374
+ "type": "regex",
375
+ "patterns": [
376
+ "(?:linea|line)\\s*(\\d+)",
377
+ "^(\\d+)$"
378
+ ]
379
+ },
380
+ "task_description": {
381
+ "type": "slot",
382
+ "extractAfter": ["para", "for", "de", "to"],
383
+ "maxLength": 200
384
+ },
385
+ "agent_name": {
386
+ "type": "enum",
387
+ "values": ["frontend", "backend", "fullstack", "devops", "qa", "architect", "pm"],
388
+ "fuzzyMatch": true
389
+ },
390
+ "priority": {
391
+ "type": "enum",
392
+ "values": ["alta", "high", "media", "medium", "baja", "low", "urgente", "urgent"],
393
+ "defaultValue": "medium"
394
+ },
395
+ "search_query": {
396
+ "type": "slot",
397
+ "extractAfter": ["busca", "search", "find", "encuentra"],
398
+ "maxLength": 100
399
+ }
400
+ }
401
+ },
402
+
403
+ "dictation": {
404
+ "enabled": true,
405
+ "streamingMode": true,
406
+ "interimResults": true,
407
+ "punctuationRestoration": {
408
+ "enabled": true,
409
+ "modelPath": "./models/punctuation-bert-multilingual.onnx",
410
+ "capitalize": true,
411
+ "addPeriods": true,
412
+ "addCommas": true,
413
+ "addQuestionMarks": true
414
+ },
415
+ "errorCorrection": {
416
+ "enabled": true,
417
+ "level": "basic",
418
+ "customDictionary": "./config/technical-terms.json",
419
+ "phoneticMatching": true
420
+ },
421
+ "codeDetection": {
422
+ "enabled": true,
423
+ "supportedLanguages": ["typescript", "javascript", "python", "sql", "bash", "go", "rust"],
424
+ "formatAsCodeBlock": true,
425
+ "highlightSyntax": true
426
+ },
427
+ "formatting": {
428
+ "newParagraphKeywords": ["nuevo parrafo", "new paragraph", "siguiente parrafo"],
429
+ "newLineKeywords": ["nueva linea", "new line", "enter"],
430
+ "deleteKeywords": ["borra eso", "delete that", "elimina"]
431
+ }
432
+ },
433
+
434
+ "tts": {
435
+ "enabled": true,
436
+ "provider": "openai",
437
+ "providers": {
438
+ "openai": {
439
+ "endpoint": "https://api.openai.com/v1/audio/speech",
440
+ "apiKeyEnvVar": "OPENAI_API_KEY",
441
+ "model": "tts-1",
442
+ "voices": ["alloy", "echo", "fable", "onyx", "nova", "shimmer"],
443
+ "defaultVoice": "nova",
444
+ "maxLength": 4096
445
+ },
446
+ "azure": {
447
+ "endpoint": "https://{region}.tts.speech.microsoft.com/cognitiveservices/v1",
448
+ "apiKeyEnvVar": "AZURE_SPEECH_KEY",
449
+ "regionEnvVar": "AZURE_REGION",
450
+ "outputFormat": "audio-16khz-128kbitrate-mono-mp3",
451
+ "voices": {
452
+ "es": "es-ES-ElviraNeural",
453
+ "en": "en-US-JennyNeural",
454
+ "pt": "pt-BR-FranciscaNeural"
455
+ }
456
+ },
457
+ "google": {
458
+ "endpoint": "https://texttospeech.googleapis.com/v1/text:synthesize",
459
+ "apiKeyEnvVar": "GOOGLE_API_KEY",
460
+ "audioEncoding": "MP3",
461
+ "voices": {
462
+ "es": "es-ES-Neural2-A",
463
+ "en": "en-US-Neural2-J",
464
+ "pt": "pt-BR-Neural2-A"
465
+ }
466
+ },
467
+ "system": {
468
+ "enabled": true,
469
+ "fallback": true
470
+ }
471
+ },
472
+ "settings": {
473
+ "speed": 1.0,
474
+ "pitch": 1.0,
475
+ "volume": 0.8,
476
+ "pauseBetweenSentencesMs": 300
477
+ },
478
+ "caching": {
479
+ "enabled": true,
480
+ "maxCacheSizeMB": 100,
481
+ "ttlMs": 86400000,
482
+ "cacheDir": "./.cache/tts"
483
+ }
484
+ },
485
+
486
+ "audioFeedback": {
487
+ "enabled": true,
488
+ "tones": {
489
+ "activation": {
490
+ "frequency": 800,
491
+ "duration": 0.1,
492
+ "type": "sine",
493
+ "volume": 0.5
494
+ },
495
+ "success": {
496
+ "frequency": 1000,
497
+ "duration": 0.15,
498
+ "type": "sine",
499
+ "volume": 0.5
500
+ },
501
+ "error": {
502
+ "frequency": 300,
503
+ "duration": 0.3,
504
+ "type": "sawtooth",
505
+ "volume": 0.5
506
+ },
507
+ "notification": {
508
+ "frequency": 600,
509
+ "duration": 0.2,
510
+ "type": "triangle",
511
+ "volume": 0.4
512
+ },
513
+ "listening": {
514
+ "frequency": 700,
515
+ "duration": 0.05,
516
+ "type": "sine",
517
+ "volume": 0.3
518
+ }
519
+ },
520
+ "confirmations": {
521
+ "es": ["Listo", "Hecho", "Ok", "Entendido", "Claro"],
522
+ "en": ["Done", "Got it", "Ok", "Sure", "Alright"],
523
+ "pt": ["Pronto", "Feito", "Ok", "Entendido", "Certo"]
524
+ },
525
+ "errorMessages": {
526
+ "es": {
527
+ "notUnderstood": "No te entendi, repite por favor",
528
+ "lowConfidence": "No estoy seguro, puedes repetir?",
529
+ "noMicrophone": "No se detecta microfono",
530
+ "networkError": "Error de conexion"
531
+ },
532
+ "en": {
533
+ "notUnderstood": "I didn't understand, please repeat",
534
+ "lowConfidence": "I'm not sure, can you repeat?",
535
+ "noMicrophone": "No microphone detected",
536
+ "networkError": "Connection error"
537
+ },
538
+ "pt": {
539
+ "notUnderstood": "Nao entendi, repita por favor",
540
+ "lowConfidence": "Nao tenho certeza, pode repetir?",
541
+ "noMicrophone": "Microfone nao detectado",
542
+ "networkError": "Erro de conexao"
543
+ }
544
+ }
545
+ },
546
+
547
+ "technicalTerms": {
548
+ "pronunciations": {
549
+ "es": {
550
+ "JavaScript": "yava-script",
551
+ "TypeScript": "taip-script",
552
+ "Python": "paizon",
553
+ "React": "riact",
554
+ "Vue": "viu",
555
+ "Angular": "angiular",
556
+ "Node.js": "noud ye-es",
557
+ "npm": "en-pe-eme",
558
+ "git": "guit",
559
+ "GitHub": "guit-jab",
560
+ "API": "a-pe-i",
561
+ "REST": "rest",
562
+ "GraphQL": "graf-kiu-el",
563
+ "Docker": "doquer",
564
+ "Kubernetes": "cubernetis",
565
+ "AWS": "a-uve-doble-ese",
566
+ "ELSABRO": "el-sabro",
567
+ "CLI": "ce-ele-i",
568
+ "SQL": "ese-cu-ele",
569
+ "JSON": "yason",
570
+ "YAML": "yamel"
571
+ },
572
+ "en": {
573
+ "ELSABRO": "el-sah-bro"
574
+ },
575
+ "pt": {
576
+ "JavaScript": "java-script",
577
+ "ELSABRO": "el-sabro"
578
+ }
579
+ },
580
+ "corrections": {
581
+ "java script": "JavaScript",
582
+ "type script": "TypeScript",
583
+ "pie thon": "Python",
584
+ "jason": "JSON",
585
+ "yam el": "YAML",
586
+ "sequel": "SQL",
587
+ "post gress": "PostgreSQL",
588
+ "mongo d b": "MongoDB",
589
+ "cooper netties": "Kubernetes",
590
+ "cube control": "kubectl",
591
+ "git hub": "GitHub",
592
+ "n p m": "npm",
593
+ "a w s": "AWS",
594
+ "a p i": "API",
595
+ "el sabro": "ELSABRO",
596
+ "else abro": "ELSABRO"
597
+ }
598
+ },
599
+
600
+ "performance": {
601
+ "targets": {
602
+ "wakeWordLatencyMs": 200,
603
+ "asrLatencyMs": 500,
604
+ "intentLatencyMs": 50,
605
+ "endToEndLatencyMs": 1000,
606
+ "wakeWordAccuracy": 0.95,
607
+ "asrWER": 0.10,
608
+ "intentAccuracy": 0.90
609
+ },
610
+ "optimizations": {
611
+ "preloadModels": true,
612
+ "warmupOnStart": true,
613
+ "useWebWorkers": true,
614
+ "audioProcessingThreads": 2,
615
+ "batchProcessing": false
616
+ },
617
+ "monitoring": {
618
+ "enabled": true,
619
+ "metricsEndpoint": "/api/voice/metrics",
620
+ "logLevel": "info",
621
+ "logLatency": true,
622
+ "logAccuracy": true,
623
+ "sampleRate": 0.1
624
+ }
625
+ },
626
+
627
+ "privacy": {
628
+ "audioRetention": "none",
629
+ "transcriptRetention": "session",
630
+ "sendToCloud": true,
631
+ "localProcessingOnly": false,
632
+ "anonymizeData": true,
633
+ "consentRequired": true
634
+ },
635
+
636
+ "accessibility": {
637
+ "screenReaderSupport": true,
638
+ "visualFeedback": true,
639
+ "hapticFeedback": true,
640
+ "highContrastIndicators": true,
641
+ "voiceSpeedRange": [0.5, 2.0],
642
+ "keyboardShortcuts": {
643
+ "toggleVoice": "Ctrl+Shift+V",
644
+ "pushToTalk": "Space",
645
+ "cancelCommand": "Escape",
646
+ "repeatLast": "Ctrl+Shift+R"
647
+ }
648
+ },
649
+
650
+ "experimental": {
651
+ "emotionDetection": false,
652
+ "speakerDiarization": false,
653
+ "multiSpeaker": false,
654
+ "sentimentAnalysis": false,
655
+ "offlineMode": false,
656
+ "customWakeWordTraining": false
657
+ }
658
+ }