@sudocode-ai/local-server 0.1.17 → 0.1.18-dev.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 (111) hide show
  1. package/dist/better-sqlite3-loader.d.ts +9 -0
  2. package/dist/better-sqlite3-loader.d.ts.map +1 -0
  3. package/dist/better-sqlite3-loader.js +24 -0
  4. package/dist/better-sqlite3-loader.js.map +1 -0
  5. package/dist/execution/executors/agent-executor-wrapper.d.ts +6 -0
  6. package/dist/execution/executors/agent-executor-wrapper.d.ts.map +1 -1
  7. package/dist/execution/executors/agent-executor-wrapper.js +75 -4
  8. package/dist/execution/executors/agent-executor-wrapper.js.map +1 -1
  9. package/dist/execution/executors/executor-factory.d.ts +9 -6
  10. package/dist/execution/executors/executor-factory.d.ts.map +1 -1
  11. package/dist/execution/executors/executor-factory.js +6 -5
  12. package/dist/execution/executors/executor-factory.js.map +1 -1
  13. package/dist/execution/worktree/config.js +1 -1
  14. package/dist/execution/worktree/config.js.map +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +3 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/public/assets/index-B1p5HV93.css +1 -0
  19. package/dist/public/assets/index-qqIsBBjJ.js +3836 -0
  20. package/dist/public/assets/index-qqIsBBjJ.js.map +1 -0
  21. package/dist/public/assets/ort-wasm-simd-threaded.jsep-B0T3yYHD.wasm +0 -0
  22. package/dist/public/index.html +2 -2
  23. package/dist/public/kokoro-test.html +197 -0
  24. package/dist/routes/config.d.ts.map +1 -1
  25. package/dist/routes/config.js +39 -0
  26. package/dist/routes/config.js.map +1 -1
  27. package/dist/routes/executions.d.ts.map +1 -1
  28. package/dist/routes/executions.js +9 -0
  29. package/dist/routes/executions.js.map +1 -1
  30. package/dist/routes/voice.d.ts +12 -0
  31. package/dist/routes/voice.d.ts.map +1 -0
  32. package/dist/routes/voice.js +387 -0
  33. package/dist/routes/voice.js.map +1 -0
  34. package/dist/routes/workflows.d.ts.map +1 -1
  35. package/dist/routes/workflows.js +2 -1
  36. package/dist/routes/workflows.js.map +1 -1
  37. package/dist/services/db.d.ts +1 -1
  38. package/dist/services/db.d.ts.map +1 -1
  39. package/dist/services/db.js +2 -2
  40. package/dist/services/db.js.map +1 -1
  41. package/dist/services/execution-service.d.ts +8 -0
  42. package/dist/services/execution-service.d.ts.map +1 -1
  43. package/dist/services/execution-service.js +27 -2
  44. package/dist/services/execution-service.js.map +1 -1
  45. package/dist/services/narration-service.d.ts +304 -0
  46. package/dist/services/narration-service.d.ts.map +1 -0
  47. package/dist/services/narration-service.js +729 -0
  48. package/dist/services/narration-service.js.map +1 -0
  49. package/dist/services/stt-providers/index.d.ts +21 -0
  50. package/dist/services/stt-providers/index.d.ts.map +1 -0
  51. package/dist/services/stt-providers/index.js +32 -0
  52. package/dist/services/stt-providers/index.js.map +1 -0
  53. package/dist/services/stt-providers/openai-whisper.d.ts +66 -0
  54. package/dist/services/stt-providers/openai-whisper.d.ts.map +1 -0
  55. package/dist/services/stt-providers/openai-whisper.js +137 -0
  56. package/dist/services/stt-providers/openai-whisper.js.map +1 -0
  57. package/dist/services/stt-providers/whisper-local.d.ts +64 -0
  58. package/dist/services/stt-providers/whisper-local.d.ts.map +1 -0
  59. package/dist/services/stt-providers/whisper-local.js +166 -0
  60. package/dist/services/stt-providers/whisper-local.js.map +1 -0
  61. package/dist/services/stt-service.d.ts +160 -0
  62. package/dist/services/stt-service.d.ts.map +1 -0
  63. package/dist/services/stt-service.js +246 -0
  64. package/dist/services/stt-service.js.map +1 -0
  65. package/dist/services/tts-providers/browser-tts.d.ts +64 -0
  66. package/dist/services/tts-providers/browser-tts.d.ts.map +1 -0
  67. package/dist/services/tts-providers/browser-tts.js +89 -0
  68. package/dist/services/tts-providers/browser-tts.js.map +1 -0
  69. package/dist/services/tts-providers/index.d.ts +20 -0
  70. package/dist/services/tts-providers/index.d.ts.map +1 -0
  71. package/dist/services/tts-providers/index.js +31 -0
  72. package/dist/services/tts-providers/index.js.map +1 -0
  73. package/dist/services/tts-service.d.ts +190 -0
  74. package/dist/services/tts-service.d.ts.map +1 -0
  75. package/dist/services/tts-service.js +296 -0
  76. package/dist/services/tts-service.js.map +1 -0
  77. package/dist/services/tts-sidecar-manager.d.ts +276 -0
  78. package/dist/services/tts-sidecar-manager.d.ts.map +1 -0
  79. package/dist/services/tts-sidecar-manager.js +665 -0
  80. package/dist/services/tts-sidecar-manager.js.map +1 -0
  81. package/dist/services/websocket.d.ts +31 -1
  82. package/dist/services/websocket.d.ts.map +1 -1
  83. package/dist/services/websocket.js +149 -0
  84. package/dist/services/websocket.js.map +1 -1
  85. package/dist/services/worktree-sync-service.d.ts +17 -2
  86. package/dist/services/worktree-sync-service.d.ts.map +1 -1
  87. package/dist/services/worktree-sync-service.js +103 -6
  88. package/dist/services/worktree-sync-service.js.map +1 -1
  89. package/dist/utils/voice-config.d.ts +26 -0
  90. package/dist/utils/voice-config.d.ts.map +1 -0
  91. package/dist/utils/voice-config.js +48 -0
  92. package/dist/utils/voice-config.js.map +1 -0
  93. package/dist/workers/execution-worker.js +12 -4
  94. package/dist/workers/execution-worker.js.map +1 -1
  95. package/dist/workflow/base-workflow-engine.d.ts +3 -1
  96. package/dist/workflow/base-workflow-engine.d.ts.map +1 -1
  97. package/dist/workflow/base-workflow-engine.js.map +1 -1
  98. package/dist/workflow/engines/orchestrator-engine.d.ts +5 -1
  99. package/dist/workflow/engines/orchestrator-engine.d.ts.map +1 -1
  100. package/dist/workflow/engines/orchestrator-engine.js +4 -1
  101. package/dist/workflow/engines/orchestrator-engine.js.map +1 -1
  102. package/dist/workflow/engines/sequential-engine.d.ts +9 -2
  103. package/dist/workflow/engines/sequential-engine.d.ts.map +1 -1
  104. package/dist/workflow/engines/sequential-engine.js +102 -22
  105. package/dist/workflow/engines/sequential-engine.js.map +1 -1
  106. package/dist/workflow/workflow-engine.d.ts +8 -1
  107. package/dist/workflow/workflow-engine.d.ts.map +1 -1
  108. package/package.json +13 -4
  109. package/dist/public/assets/index-D4AKx6EO.css +0 -1
  110. package/dist/public/assets/index-DorQqwGV.js +0 -927
  111. package/dist/public/assets/index-DorQqwGV.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narration-service.js","sourceRoot":"","sources":["../../src/services/narration-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmDH;;GAEG;AACH,MAAM,cAAc,GAAoB;IACtC,OAAO,EAAE,KAAK;IACd,qDAAqD;IACrD,+DAA+D;IAC/D,yBAAyB,EAAE,IAAI;IAC/B,gBAAgB,EAAE,EAAE;IACpB,gBAAgB,EAAE,IAAI;IACtB,kBAAkB,EAAE,KAAK;IACzB,cAAc,EAAE,IAAI;IACpB,wBAAwB,EAAE,IAAI;CAC/B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAkB;IAEhC,YAAY,MAAiC;QAC3C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;IACjD,CAAC;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,KAAsB;QACtC,QAAQ,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,UAAU;gBACb,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAErC,KAAK,mBAAmB;gBACtB,kDAAkD;gBAClD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;oBAC1C,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEvD,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAEpC,KAAK,UAAU;gBACb,kEAAkE;gBAClE,OAAO,IAAI,CAAC;YAEd,KAAK,gBAAgB;gBACnB,iDAAiD;gBACjD,OAAO,IAAI,CAAC;YAEd,KAAK,cAAc;gBACjB,qDAAqD;gBACrD,OAAO,IAAI,CAAC;YAEd;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,oBAAoB,CAClB,KAAsB,EACtB,WAAmB;QAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,WAAW;YACX,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAAsB;QAC5C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAEhD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE7C,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,4DAA4D;QAC5D,sDAAsD;QACtD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,kDAAkD;QAClD,IACE,IAAI,CAAC,MAAM,CAAC,kBAAkB;YAC9B,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,EACvD,CAAC;YACD,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAED,0EAA0E;QAC1E,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,GACR,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM;gBACzB,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,IAAgC;gBAC/C,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;YAC7C,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAEvB,MAAM,QAAQ,GAAI,IAAI,CAAC,QAA8B,IAAI,QAAQ,CAAC;YAClE,OAAO;gBACL,IAAI;gBACJ,QAAQ,EAAE,QAAQ;gBAClB,QAAQ;aACT,CAAC;QACJ,CAAC;QAED,oCAAoC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,OAAO;YACL,IAAI;YACJ,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,QAAQ;SACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,QAAgB,EAChB,MAAkB;QAElB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,WAAW;gBACd,OAAO,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAEnD,KAAK,YAAY;gBACf,OAAO,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAEnD,KAAK,WAAW;gBACd,OAAO,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAEnD,KAAK,aAAa;gBAChB,OAAO,WAAW,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAEzD,KAAK,QAAQ;gBACX,OAAO,iBAAiB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;YAE5D,KAAK,MAAM;gBACT,6CAA6C;gBAC7C,OAAO,IAAI,CAAC,mBAAmB,CAC7B,MAAM,CAAC,QAAQ,EACd,MAAM,CAAC,IAAgC,IAAI,EAAE,CAC/C,CAAC;YAEJ;gBACE,sCAAsC;gBACtC,OAAO,SAAS,QAAQ,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,QAAgB,EAChB,IAA6B;QAE7B,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAE9C,2BAA2B;QAC3B,QAAQ,cAAc,EAAE,CAAC;YACvB,KAAK,MAAM;gBACT,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAChC,OAAO,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC3E,CAAC;gBACD,OAAO,gBAAgB,CAAC;YAE1B,KAAK,OAAO;gBACV,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAChC,OAAO,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC3E,CAAC;gBACD,OAAO,gBAAgB,CAAC;YAE1B,KAAK,MAAM;gBACT,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAChC,OAAO,WAAW,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC3E,CAAC;gBACD,OAAO,gBAAgB,CAAC;YAE1B,KAAK,MAAM;gBACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,WAAW,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBAC/D,CAAC;gBACD,OAAO,mBAAmB,CAAC;YAE7B,KAAK,MAAM;gBACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,iBAAiB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBACpE,CAAC;gBACD,OAAO,gBAAgB,CAAC;YAE1B,KAAK,MAAM;gBACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACjB,OAAO,0BAA0B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC7E,CAAC;gBACD,OAAO,eAAe,CAAC;YAEzB,KAAK,MAAM;gBACT,OAAO,4BAA4B,CAAC;YAEtC,KAAK,UAAU,CAAC;YAChB,KAAK,WAAW;gBACd,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBACb,OAAO,YAAY,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxD,CAAC;gBACD,OAAO,uBAAuB,CAAC;YAEjC,KAAK,WAAW,CAAC;YACjB,KAAK,YAAY;gBACf,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,OAAO,yBAAyB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC1E,CAAC;gBACD,OAAO,mBAAmB,CAAC;YAE7B,KAAK,OAAO;gBACV,2DAA2D;gBAC3D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;gBACD,OAAO,IAAI,CAAC;YAEd;gBACE,OAAO,SAAS,QAAQ,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,IAI1B;QACC,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,eAAe,CAAC;YACvD,OAAO;gBACL,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,YAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE;gBAC/D,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,MAAM;aACjB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,yBAAyB;YAC/C,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,yBAAyB,CAAC,OAAe;QAC/C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE/B,8CAA8C;QAC9C,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,EAAE,CAAC;YAC5D,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,QAAQ;gBAClB,QAAQ,EAAE,QAAQ;aACnB,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAErD,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;SACnB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,mBAAmB,CAAC,IAAY;QACtC,+BAA+B;QAC/B,MAAM,eAAe,GAAG,mBAAmB,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACzD,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,4DAA4D;YAC5D,OAAO,CACL,OAAO,CAAC,MAAM,GAAG,EAAE;gBACnB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;gBACxB,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;gBAC1B,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS;gBACrC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,gBAAgB;aAC3C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,4CAA4C;YAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACpE,CAAC;QAED,2BAA2B;QAC3B,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QAC5C,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,QAAQ,GAAG,GAAG,aAAa,KAAK,cAAc,EAAE,CAAC;YACvD,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,yBAAyB,GAAG,EAAE,EAAE,CAAC;gBAClE,OAAO,QAAQ,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAsB;QAC3C,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAChC,OAAO;gBACL,IAAI,EAAE,mBAAmB;gBACzB,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,MAAM;aACjB,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,2BAA2B,CAAC;QAE7D,OAAO;YACL,IAAI,EAAE,UAAU,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;YAC5C,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,MAAM;SACjB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,IAAY;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAClC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,6BAA6B;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEzC,gDAAgD;QAChD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,IAAI,MAAM,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAChD,OAAO,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACK,aAAa,CAAC,OAAe;QACnC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE/B,0CAA0C;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1C,4CAA4C;QAC5C,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAExE,IAAI,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,mCAAmC;YACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,UAAU,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;oBACtD,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,GAAW;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5B,2BAA2B;YAC3B,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,QAAQ,CAAC,IAAY,EAAE,SAAiB;QAC9C,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAgC;QAC3C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;CACF;AAoBD;;GAEG;AACH,MAAM,2BAA2B,GAA+B;IAC9D,oFAAoF;IACpF,aAAa,EAAE,GAAG;IAClB,YAAY,EAAE,EAAE;IAChB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,GAAG;CACtB,CAAC;AAUF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAA6B;IACnC,YAAY,GAAW,CAAC,CAAC;IACzB,YAAY,GAAuB,EAAE,CAAC;IACtC,mBAAmB,GAAwC,EAAE,CAAC;IAC9D,gBAAgB,GAAW,CAAC,CAAC;IAErC,YAAY,MAA4C;QACtD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,2BAA2B,EAAE,GAAG,MAAM,EAAE,CAAC;IAC9D,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,SAA0B;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,wDAAwD;QACxD,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,SAAS,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC3D,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,+DAA+D;gBAC/D,OAAO,IAAI,CAAC;YACd,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACrB,iCAAiC;gBACjC,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,MAAM,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;QAClD,IAAI,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAClD,iDAAiD;YACjD,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAChD,CAAC;QAED,wEAAwE;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1C,IAAI,OAAO,EAAE,CAAC;YACZ,yCAAyC;YACzC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;YACxB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACH,KAAK;QACH,yCAAyC;QACzC,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/C,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,4CAA4C;QAC5C,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,CACL,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CACpE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACK,mBAAmB,CACzB,SAA0B,EAC1B,GAAW;QAEX,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QAE5B,iEAAiE;QACjE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAErD,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,aAAa;YAAE,MAAM,GAAG,SAAS,CAAC;aACjC,IAAI,aAAa;YAAE,MAAM,GAAG,SAAS,CAAC;aACtC,IAAI,WAAW;YAAE,MAAM,GAAG,WAAW,CAAC;QAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,kEAAkE;YAClE,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC;QAED,oCAAoC;QACpC,IACE,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC;YACnC,GAAG,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAC1D,CAAC;YACD,+CAA+C;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACvC,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;YAE5B,IAAI,OAAO,EAAE,CAAC;gBACZ,2CAA2C;gBAC3C,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAC3E,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;QAE5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAE1B,gBAAgB;QAChB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBAChB,sCAAsC;gBACtC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,OAAO;gBACL,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,IAAI,QAAQ,EAAE;gBACtC,QAAQ,EAAE,UAAU;gBACpB,QAAQ,EAAE,QAAQ;aACnB,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YAC5C,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;YAChD,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YACtB,QAAQ,EAAE,UAAU;YACpB,QAAQ,EAAE,QAAQ;SACnB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CACvB,SAA0B,EAC1B,GAAW;QAEX,4CAA4C;QAC5C,IACE,SAAS,CAAC,QAAQ,KAAK,KAAK;YAC5B,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EACpD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAEtD,qDAAqD;QACrD,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC3D,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,KAAK,KAAK,CACtC,CAAC;YACF,IAAI,gBAAgB,IAAI,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,uCAAuC;gBACvC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sCAAsC;QACtC,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAErD,wBAAwB;QACxB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACxE,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAC5B,SAAS,GAAG,CAAC,CAAC;gBACd,YAAY,GAAG,QAAQ,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF;AAeD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAqD;IACtF,MAAM,MAAM,GAA6B,EAAE,CAAC;IAE5C,IAAI,WAAW,EAAE,SAAS,EAAE,cAAc,KAAK,SAAS,EAAE,CAAC;QACzD,MAAM,CAAC,cAAc,GAAG,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC;IAC/D,CAAC;IAED,IAAI,WAAW,EAAE,SAAS,EAAE,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC7D,MAAM,CAAC,kBAAkB,GAAG,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC;IACvE,CAAC;IAED,IAAI,WAAW,EAAE,SAAS,EAAE,wBAAwB,KAAK,SAAS,EAAE,CAAC;QACnE,MAAM,CAAC,wBAAwB,GAAG,WAAW,CAAC,SAAS,CAAC,wBAAwB,CAAC;IACnF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,IAAI,wBAAwB,GAA4B,IAAI,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAiC,EACjC,WAAqD;IAErD,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC9B,2CAA2C;QAC3C,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACnD,wBAAwB,GAAG,IAAI,gBAAgB,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,wBAAwB,GAAG,IAAI,CAAC;AAClC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * STT Providers Index
3
+ *
4
+ * Exports all STT provider implementations and factory functions.
5
+ */
6
+ export { WhisperLocalProvider, createWhisperLocalProvider, WhisperServerError, type WhisperLocalConfig, } from "./whisper-local.js";
7
+ export { OpenAIWhisperProvider, createOpenAIWhisperProvider, OpenAIWhisperError, type OpenAIWhisperConfig, } from "./openai-whisper.js";
8
+ import { STTService } from "../stt-service.js";
9
+ /**
10
+ * Initialize the STT service with all available providers
11
+ *
12
+ * @param service - The STT service to initialize
13
+ */
14
+ export declare function initializeSTTProviders(service: STTService): void;
15
+ /**
16
+ * Create a fully initialized STT service with all providers registered
17
+ *
18
+ * @returns Initialized STT service
19
+ */
20
+ export declare function createInitializedSTTService(): STTService;
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/stt-providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,EAClB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAMhE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,UAAU,CAIxD"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * STT Providers Index
3
+ *
4
+ * Exports all STT provider implementations and factory functions.
5
+ */
6
+ export { WhisperLocalProvider, createWhisperLocalProvider, WhisperServerError, } from "./whisper-local.js";
7
+ export { OpenAIWhisperProvider, createOpenAIWhisperProvider, OpenAIWhisperError, } from "./openai-whisper.js";
8
+ import { WhisperLocalProvider } from "./whisper-local.js";
9
+ import { OpenAIWhisperProvider } from "./openai-whisper.js";
10
+ import { STTService } from "../stt-service.js";
11
+ /**
12
+ * Initialize the STT service with all available providers
13
+ *
14
+ * @param service - The STT service to initialize
15
+ */
16
+ export function initializeSTTProviders(service) {
17
+ // Register Whisper local provider (preferred)
18
+ service.registerProvider(new WhisperLocalProvider());
19
+ // Register OpenAI Whisper provider (fallback)
20
+ service.registerProvider(new OpenAIWhisperProvider());
21
+ }
22
+ /**
23
+ * Create a fully initialized STT service with all providers registered
24
+ *
25
+ * @returns Initialized STT service
26
+ */
27
+ export function createInitializedSTTService() {
28
+ const service = new STTService();
29
+ initializeSTTProviders(service);
30
+ return service;
31
+ }
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/stt-providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,kBAAkB,GAEnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAmB;IACxD,8CAA8C;IAC9C,OAAO,CAAC,gBAAgB,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;IAErD,8CAA8C;IAC9C,OAAO,CAAC,gBAAgB,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IACjC,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * OpenAI Whisper STT Provider
3
+ *
4
+ * Uses the OpenAI Whisper API as a fallback STT provider.
5
+ * Requires OPENAI_API_KEY environment variable.
6
+ */
7
+ import type { STTProvider as STTProviderType, STTOptions, TranscriptionResult } from "@sudocode-ai/types/voice";
8
+ import type { STTProvider } from "../stt-service.js";
9
+ /**
10
+ * Configuration for the OpenAI Whisper provider
11
+ */
12
+ export interface OpenAIWhisperConfig {
13
+ /** OpenAI API key (defaults to OPENAI_API_KEY env var) */
14
+ apiKey?: string;
15
+ /** Model to use for transcription (default: whisper-1) */
16
+ model: string;
17
+ /** Base URL for the OpenAI API (default: https://api.openai.com/v1) */
18
+ baseUrl: string;
19
+ /** Timeout in milliseconds for requests (default: 60000) */
20
+ timeout: number;
21
+ }
22
+ /**
23
+ * Error thrown when OpenAI API communication fails
24
+ */
25
+ export declare class OpenAIWhisperError extends Error {
26
+ readonly statusCode?: number | undefined;
27
+ readonly cause?: Error | undefined;
28
+ constructor(message: string, statusCode?: number | undefined, cause?: Error | undefined);
29
+ }
30
+ /**
31
+ * OpenAI Whisper STT Provider
32
+ *
33
+ * Fallback provider using OpenAI's Whisper API.
34
+ */
35
+ export declare class OpenAIWhisperProvider implements STTProvider {
36
+ readonly name: STTProviderType;
37
+ private config;
38
+ constructor(config?: Partial<OpenAIWhisperConfig>);
39
+ /**
40
+ * Check if the OpenAI API is available (API key is configured)
41
+ */
42
+ isAvailable(): Promise<boolean>;
43
+ /**
44
+ * Get the API key, throwing if not configured
45
+ */
46
+ private getApiKey;
47
+ /**
48
+ * Transcribe audio using the OpenAI Whisper API
49
+ *
50
+ * @param audio - Audio buffer to transcribe
51
+ * @param options - Transcription options
52
+ * @returns Transcription result
53
+ */
54
+ transcribe(audio: Buffer, options?: STTOptions): Promise<TranscriptionResult>;
55
+ /**
56
+ * Get the current configuration (without the API key for security)
57
+ */
58
+ getConfig(): Omit<OpenAIWhisperConfig, "apiKey"> & {
59
+ hasApiKey: boolean;
60
+ };
61
+ }
62
+ /**
63
+ * Create a new OpenAI Whisper provider instance
64
+ */
65
+ export declare function createOpenAIWhisperProvider(config?: Partial<OpenAIWhisperConfig>): OpenAIWhisperProvider;
66
+ //# sourceMappingURL=openai-whisper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-whisper.d.ts","sourceRoot":"","sources":["../../../src/services/stt-providers/openai-whisper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,IAAI,eAAe,EAC9B,UAAU,EACV,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,UAAU,CAAC,EAAE,MAAM;aACnB,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,WAAW;IACvD,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAY;IAC1C,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC;IASjD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAMrC;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;;;;;OAMG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,mBAAmB,CAAC;IAuF/B;;OAEG;IACH,SAAS,IAAI,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE;CAQ1E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACpC,qBAAqB,CAEvB"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * OpenAI Whisper STT Provider
3
+ *
4
+ * Uses the OpenAI Whisper API as a fallback STT provider.
5
+ * Requires OPENAI_API_KEY environment variable.
6
+ */
7
+ /**
8
+ * Error thrown when OpenAI API communication fails
9
+ */
10
+ export class OpenAIWhisperError extends Error {
11
+ statusCode;
12
+ cause;
13
+ constructor(message, statusCode, cause) {
14
+ super(message);
15
+ this.statusCode = statusCode;
16
+ this.cause = cause;
17
+ this.name = "OpenAIWhisperError";
18
+ }
19
+ }
20
+ /**
21
+ * OpenAI Whisper STT Provider
22
+ *
23
+ * Fallback provider using OpenAI's Whisper API.
24
+ */
25
+ export class OpenAIWhisperProvider {
26
+ name = "openai";
27
+ config;
28
+ constructor(config) {
29
+ this.config = {
30
+ apiKey: config?.apiKey ?? process.env.OPENAI_API_KEY,
31
+ model: config?.model ?? "whisper-1",
32
+ baseUrl: config?.baseUrl ?? "https://api.openai.com/v1",
33
+ timeout: config?.timeout ?? 60000,
34
+ };
35
+ }
36
+ /**
37
+ * Check if the OpenAI API is available (API key is configured)
38
+ */
39
+ async isAvailable() {
40
+ // OpenAI is "available" if we have an API key configured
41
+ const apiKey = this.config.apiKey ?? process.env.OPENAI_API_KEY;
42
+ return Boolean(apiKey && apiKey.length > 0);
43
+ }
44
+ /**
45
+ * Get the API key, throwing if not configured
46
+ */
47
+ getApiKey() {
48
+ const apiKey = this.config.apiKey ?? process.env.OPENAI_API_KEY;
49
+ if (!apiKey) {
50
+ throw new OpenAIWhisperError("OpenAI API key not configured. Set OPENAI_API_KEY environment variable.");
51
+ }
52
+ return apiKey;
53
+ }
54
+ /**
55
+ * Transcribe audio using the OpenAI Whisper API
56
+ *
57
+ * @param audio - Audio buffer to transcribe
58
+ * @param options - Transcription options
59
+ * @returns Transcription result
60
+ */
61
+ async transcribe(audio, options) {
62
+ const startTime = Date.now();
63
+ const apiKey = this.getApiKey();
64
+ // Create form data with the audio file
65
+ const formData = new FormData();
66
+ // Create a Blob from the Buffer
67
+ const audioBlob = new Blob([audio], { type: "audio/webm" });
68
+ formData.set("file", audioBlob, "audio.webm");
69
+ formData.set("model", this.config.model);
70
+ if (options?.language) {
71
+ formData.set("language", options.language);
72
+ }
73
+ // Request verbose JSON to get more details if available
74
+ formData.set("response_format", "verbose_json");
75
+ // Set up request with timeout
76
+ const controller = new AbortController();
77
+ const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
78
+ try {
79
+ const response = await fetch(`${this.config.baseUrl}/audio/transcriptions`, {
80
+ method: "POST",
81
+ headers: {
82
+ Authorization: `Bearer ${apiKey}`,
83
+ },
84
+ // FormData is natively supported by fetch in Node.js 18+
85
+ body: formData,
86
+ signal: controller.signal,
87
+ });
88
+ if (!response.ok) {
89
+ const errorData = await response.json().catch(() => ({}));
90
+ const errorMessage = errorData?.error?.message ||
91
+ `HTTP ${response.status}`;
92
+ throw new OpenAIWhisperError(`OpenAI API error: ${errorMessage}`, response.status);
93
+ }
94
+ const data = (await response.json());
95
+ const duration_ms = Date.now() - startTime;
96
+ if (!data.text && data.text !== "") {
97
+ throw new OpenAIWhisperError("Invalid response from OpenAI API: missing text field");
98
+ }
99
+ return {
100
+ text: data.text.trim(),
101
+ duration_ms,
102
+ // OpenAI doesn't provide word-level confidence in the standard API
103
+ // but the transcription quality is generally high
104
+ };
105
+ }
106
+ catch (error) {
107
+ if (error instanceof OpenAIWhisperError) {
108
+ throw error;
109
+ }
110
+ if (error instanceof Error && error.name === "AbortError") {
111
+ throw new OpenAIWhisperError(`Request timed out after ${this.config.timeout}ms`);
112
+ }
113
+ throw new OpenAIWhisperError(`Failed to communicate with OpenAI API: ${error instanceof Error ? error.message : String(error)}`, undefined, error instanceof Error ? error : undefined);
114
+ }
115
+ finally {
116
+ clearTimeout(timeoutId);
117
+ }
118
+ }
119
+ /**
120
+ * Get the current configuration (without the API key for security)
121
+ */
122
+ getConfig() {
123
+ return {
124
+ model: this.config.model,
125
+ baseUrl: this.config.baseUrl,
126
+ timeout: this.config.timeout,
127
+ hasApiKey: Boolean(this.config.apiKey ?? process.env.OPENAI_API_KEY),
128
+ };
129
+ }
130
+ }
131
+ /**
132
+ * Create a new OpenAI Whisper provider instance
133
+ */
134
+ export function createOpenAIWhisperProvider(config) {
135
+ return new OpenAIWhisperProvider(config);
136
+ }
137
+ //# sourceMappingURL=openai-whisper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-whisper.js","sourceRoot":"","sources":["../../../src/services/stt-providers/openai-whisper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Whisper Local STT Provider
3
+ *
4
+ * Connects to a local Whisper server (whisper.cpp or similar) that exposes
5
+ * an OpenAI-compatible API. Default endpoint: http://localhost:2022/v1
6
+ */
7
+ import type { STTProvider as STTProviderType, STTOptions, TranscriptionResult } from "@sudocode-ai/types/voice";
8
+ import { type STTProvider } from "../stt-service.js";
9
+ /**
10
+ * Configuration for the Whisper local provider
11
+ */
12
+ export interface WhisperLocalConfig {
13
+ /** Base URL for the Whisper server (default: http://localhost:2022/v1) */
14
+ baseUrl: string;
15
+ /** Model to use for transcription (default: base) */
16
+ model: string;
17
+ /** Timeout in milliseconds for requests (default: 30000) */
18
+ timeout: number;
19
+ }
20
+ /**
21
+ * Error thrown when Whisper server communication fails
22
+ */
23
+ export declare class WhisperServerError extends Error {
24
+ readonly statusCode?: number | undefined;
25
+ readonly cause?: Error | undefined;
26
+ constructor(message: string, statusCode?: number | undefined, cause?: Error | undefined);
27
+ }
28
+ /**
29
+ * Whisper Local STT Provider
30
+ *
31
+ * Uses a local Whisper server with OpenAI-compatible API format.
32
+ */
33
+ export declare class WhisperLocalProvider implements STTProvider {
34
+ readonly name: STTProviderType;
35
+ private config;
36
+ private lastHealthCheck;
37
+ private readonly HEALTH_CHECK_TTL_MS;
38
+ constructor(config?: Partial<WhisperLocalConfig>);
39
+ /**
40
+ * Check if the Whisper server is available by making a health check request
41
+ */
42
+ isAvailable(): Promise<boolean>;
43
+ /**
44
+ * Transcribe audio using the local Whisper server
45
+ *
46
+ * @param audio - Audio buffer to transcribe
47
+ * @param options - Transcription options
48
+ * @returns Transcription result
49
+ */
50
+ transcribe(audio: Buffer, options?: STTOptions): Promise<TranscriptionResult>;
51
+ /**
52
+ * Get the current configuration
53
+ */
54
+ getConfig(): WhisperLocalConfig;
55
+ /**
56
+ * Clear the health check cache
57
+ */
58
+ clearHealthCache(): void;
59
+ }
60
+ /**
61
+ * Create a new Whisper local provider instance
62
+ */
63
+ export declare function createWhisperLocalProvider(config?: Partial<WhisperLocalConfig>): WhisperLocalProvider;
64
+ //# sourceMappingURL=whisper-local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whisper-local.d.ts","sourceRoot":"","sources":["../../../src/services/stt-providers/whisper-local.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,IAAI,eAAe,EAC9B,UAAU,EACV,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,UAAU,CAAC,EAAE,MAAM;aACnB,KAAK,CAAC,EAAE,KAAK;gBAF7B,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,KAAK,CAAC,EAAE,KAAK,YAAA;CAKhC;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,WAAW;IACtD,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAmB;IACjD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,eAAe,CAAqD;IAC5E,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;gBAEjC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAShD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAqDrC;;;;;;OAMG;IACG,UAAU,CACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,mBAAmB,CAAC;IAyE/B;;OAEG;IACH,SAAS,IAAI,kBAAkB;IAI/B;;OAEG;IACH,gBAAgB,IAAI,IAAI;CAGzB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,oBAAoB,CAEtB"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Whisper Local STT Provider
3
+ *
4
+ * Connects to a local Whisper server (whisper.cpp or similar) that exposes
5
+ * an OpenAI-compatible API. Default endpoint: http://localhost:2022/v1
6
+ */
7
+ import { getSTTConfig } from "../stt-service.js";
8
+ /**
9
+ * Error thrown when Whisper server communication fails
10
+ */
11
+ export class WhisperServerError extends Error {
12
+ statusCode;
13
+ cause;
14
+ constructor(message, statusCode, cause) {
15
+ super(message);
16
+ this.statusCode = statusCode;
17
+ this.cause = cause;
18
+ this.name = "WhisperServerError";
19
+ }
20
+ }
21
+ /**
22
+ * Whisper Local STT Provider
23
+ *
24
+ * Uses a local Whisper server with OpenAI-compatible API format.
25
+ */
26
+ export class WhisperLocalProvider {
27
+ name = "whisper-local";
28
+ config;
29
+ lastHealthCheck = null;
30
+ HEALTH_CHECK_TTL_MS = 10000; // 10 seconds
31
+ constructor(config) {
32
+ const sttConfig = getSTTConfig();
33
+ this.config = {
34
+ baseUrl: config?.baseUrl ?? sttConfig.whisperUrl,
35
+ model: config?.model ?? sttConfig.whisperModel,
36
+ timeout: config?.timeout ?? 30000,
37
+ };
38
+ }
39
+ /**
40
+ * Check if the Whisper server is available by making a health check request
41
+ */
42
+ async isAvailable() {
43
+ // Check cache first
44
+ if (this.lastHealthCheck &&
45
+ Date.now() - this.lastHealthCheck.time < this.HEALTH_CHECK_TTL_MS) {
46
+ return this.lastHealthCheck.available;
47
+ }
48
+ try {
49
+ // Try to hit the models endpoint (OpenAI-compatible servers usually have this)
50
+ const controller = new AbortController();
51
+ const timeoutId = setTimeout(() => controller.abort(), 5000);
52
+ try {
53
+ const response = await fetch(`${this.config.baseUrl}/models`, {
54
+ method: "GET",
55
+ signal: controller.signal,
56
+ });
57
+ const available = response.ok;
58
+ this.lastHealthCheck = { time: Date.now(), available };
59
+ return available;
60
+ }
61
+ finally {
62
+ clearTimeout(timeoutId);
63
+ }
64
+ }
65
+ catch {
66
+ // If models endpoint doesn't exist, try a simple connection test
67
+ try {
68
+ const controller = new AbortController();
69
+ const timeoutId = setTimeout(() => controller.abort(), 5000);
70
+ try {
71
+ // Try the base URL - some servers respond with info at root
72
+ const response = await fetch(this.config.baseUrl, {
73
+ method: "GET",
74
+ signal: controller.signal,
75
+ });
76
+ // Consider available if we get any response (even 404 means server is running)
77
+ const available = response.status < 500;
78
+ this.lastHealthCheck = { time: Date.now(), available };
79
+ return available;
80
+ }
81
+ finally {
82
+ clearTimeout(timeoutId);
83
+ }
84
+ }
85
+ catch {
86
+ this.lastHealthCheck = { time: Date.now(), available: false };
87
+ return false;
88
+ }
89
+ }
90
+ }
91
+ /**
92
+ * Transcribe audio using the local Whisper server
93
+ *
94
+ * @param audio - Audio buffer to transcribe
95
+ * @param options - Transcription options
96
+ * @returns Transcription result
97
+ */
98
+ async transcribe(audio, options) {
99
+ const startTime = Date.now();
100
+ // Create form data with the audio file
101
+ const formData = new FormData();
102
+ // Create a Blob from the Buffer
103
+ const audioBlob = new Blob([audio], { type: "audio/webm" });
104
+ formData.set("file", audioBlob, "audio.webm");
105
+ formData.set("model", this.config.model);
106
+ if (options?.language) {
107
+ formData.set("language", options.language);
108
+ }
109
+ // Set up request with timeout
110
+ const controller = new AbortController();
111
+ const timeoutId = setTimeout(() => controller.abort(), this.config.timeout);
112
+ try {
113
+ const response = await fetch(`${this.config.baseUrl}/audio/transcriptions`, {
114
+ method: "POST",
115
+ // FormData is natively supported by fetch in Node.js 18+
116
+ body: formData,
117
+ signal: controller.signal,
118
+ });
119
+ if (!response.ok) {
120
+ const errorText = await response.text().catch(() => "Unknown error");
121
+ throw new WhisperServerError(`Whisper server error: ${errorText}`, response.status);
122
+ }
123
+ const data = (await response.json());
124
+ const duration_ms = Date.now() - startTime;
125
+ if (!data.text && data.text !== "") {
126
+ throw new WhisperServerError("Invalid response from Whisper server: missing text field");
127
+ }
128
+ return {
129
+ text: data.text.trim(),
130
+ duration_ms,
131
+ // Local Whisper typically doesn't provide confidence scores
132
+ };
133
+ }
134
+ catch (error) {
135
+ if (error instanceof WhisperServerError) {
136
+ throw error;
137
+ }
138
+ if (error instanceof Error && error.name === "AbortError") {
139
+ throw new WhisperServerError(`Request timed out after ${this.config.timeout}ms`);
140
+ }
141
+ throw new WhisperServerError(`Failed to communicate with Whisper server: ${error instanceof Error ? error.message : String(error)}`, undefined, error instanceof Error ? error : undefined);
142
+ }
143
+ finally {
144
+ clearTimeout(timeoutId);
145
+ }
146
+ }
147
+ /**
148
+ * Get the current configuration
149
+ */
150
+ getConfig() {
151
+ return { ...this.config };
152
+ }
153
+ /**
154
+ * Clear the health check cache
155
+ */
156
+ clearHealthCache() {
157
+ this.lastHealthCheck = null;
158
+ }
159
+ }
160
+ /**
161
+ * Create a new Whisper local provider instance
162
+ */
163
+ export function createWhisperLocalProvider(config) {
164
+ return new WhisperLocalProvider(config);
165
+ }
166
+ //# sourceMappingURL=whisper-local.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whisper-local.js","sourceRoot":"","sources":["../../../src/services/stt-providers/whisper-local.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AAcnE;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAGzB;IACA;IAHlB,YACE,OAAe,EACC,UAAmB,EACnB,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,eAAU,GAAV,UAAU,CAAS;QACnB,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IACtB,IAAI,GAAoB,eAAe,CAAC;IACzC,MAAM,CAAqB;IAC3B,eAAe,GAAgD,IAAI,CAAC;IAC3D,mBAAmB,GAAG,KAAK,CAAC,CAAC,aAAa;IAE3D,YAAY,MAAoC;QAC9C,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,SAAS,CAAC,UAAU;YAChD,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,YAAY;YAC9C,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK;SAClC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,oBAAoB;QACpB,IACE,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,mBAAmB,EACjE,CAAC;YACD,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;QACxC,CAAC;QAED,IAAI,CAAC;YACH,+EAA+E;YAC/E,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAE7D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,SAAS,EAAE;oBAC5D,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,UAAU,CAAC,MAAM;iBAC1B,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC;gBACvD,OAAO,SAAS,CAAC;YACnB,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;YACjE,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;gBAE7D,IAAI,CAAC;oBACH,4DAA4D;oBAC5D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;wBAChD,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,UAAU,CAAC,MAAM;qBAC1B,CAAC,CAAC;oBAEH,+EAA+E;oBAC/E,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;oBACxC,IAAI,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC;oBACvD,OAAO,SAAS,CAAC;gBACnB,CAAC;wBAAS,CAAC;oBACT,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;gBAC9D,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,CACd,KAAa,EACb,OAAoB;QAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,uCAAuC;QACvC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAEhC,gCAAgC;QAChC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC5D,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAC9C,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEzC,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;YACtB,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,8BAA8B;QAC9B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,uBAAuB,EAC7C;gBACE,MAAM,EAAE,MAAM;gBACd,yDAAyD;gBACzD,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CACF,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;gBACrE,MAAM,IAAI,kBAAkB,CAC1B,yBAAyB,SAAS,EAAE,EACpC,QAAQ,CAAC,MAAM,CAChB,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsB,CAAC;YAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAE3C,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;gBACnC,MAAM,IAAI,kBAAkB,CAC1B,0DAA0D,CAC3D,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACtB,WAAW;gBACX,4DAA4D;aAC7D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;gBACxC,MAAM,KAAK,CAAC;YACd,CAAC;YAED,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1D,MAAM,IAAI,kBAAkB,CAC1B,2BAA2B,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CACnD,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,kBAAkB,CAC1B,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACtG,SAAS,EACT,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAoC;IAEpC,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}