agent-nuvira 2.7.3 → 3.0.1

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 (369) hide show
  1. package/dist/agents/agents/writer-tool-calling.d.ts +14 -0
  2. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  3. package/dist/agents/agents/writer-tool-calling.js +20 -0
  4. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  5. package/dist/agents/agents/writer.d.ts.map +1 -1
  6. package/dist/agents/agents/writer.js +15 -4
  7. package/dist/agents/agents/writer.js.map +1 -1
  8. package/dist/agents/edit-module.d.ts +7 -0
  9. package/dist/agents/edit-module.d.ts.map +1 -1
  10. package/dist/agents/edit-module.js +21 -6
  11. package/dist/agents/edit-module.js.map +1 -1
  12. package/dist/agents/orchestrator.d.ts +40 -0
  13. package/dist/agents/orchestrator.d.ts.map +1 -1
  14. package/dist/agents/orchestrator.js +116 -27
  15. package/dist/agents/orchestrator.js.map +1 -1
  16. package/dist/agents/tool-calling-agent.d.ts +19 -0
  17. package/dist/agents/tool-calling-agent.d.ts.map +1 -1
  18. package/dist/agents/tool-calling-agent.js +42 -2
  19. package/dist/agents/tool-calling-agent.js.map +1 -1
  20. package/dist/cli/chat.d.ts +55 -1
  21. package/dist/cli/chat.d.ts.map +1 -1
  22. package/dist/cli/chat.js +278 -72
  23. package/dist/cli/chat.js.map +1 -1
  24. package/dist/cli/cli-program.d.ts +6 -0
  25. package/dist/cli/cli-program.d.ts.map +1 -0
  26. package/dist/cli/cli-program.js +242 -0
  27. package/dist/cli/cli-program.js.map +1 -0
  28. package/dist/cli/edit.d.ts.map +1 -1
  29. package/dist/cli/edit.js +18 -3
  30. package/dist/cli/edit.js.map +1 -1
  31. package/dist/cli/execute.d.ts.map +1 -1
  32. package/dist/cli/execute.js +29 -5
  33. package/dist/cli/execute.js.map +1 -1
  34. package/dist/cli/failover-runner.d.ts +13 -0
  35. package/dist/cli/failover-runner.d.ts.map +1 -1
  36. package/dist/cli/failover-runner.js +11 -0
  37. package/dist/cli/failover-runner.js.map +1 -1
  38. package/dist/cli/gateway.d.ts +16 -0
  39. package/dist/cli/gateway.d.ts.map +1 -1
  40. package/dist/cli/gateway.js +108 -2
  41. package/dist/cli/gateway.js.map +1 -1
  42. package/dist/cli/loop-executor.d.ts.map +1 -1
  43. package/dist/cli/loop-executor.js +245 -12
  44. package/dist/cli/loop-executor.js.map +1 -1
  45. package/dist/cli/plan.d.ts.map +1 -1
  46. package/dist/cli/plan.js +20 -6
  47. package/dist/cli/plan.js.map +1 -1
  48. package/dist/cli/process-control.d.ts +10 -0
  49. package/dist/cli/process-control.d.ts.map +1 -1
  50. package/dist/cli/process-control.js +73 -7
  51. package/dist/cli/process-control.js.map +1 -1
  52. package/dist/cli/router.d.ts +16 -5
  53. package/dist/cli/router.d.ts.map +1 -1
  54. package/dist/cli/router.js +31 -206
  55. package/dist/cli/router.js.map +1 -1
  56. package/dist/config/paths.d.ts +23 -0
  57. package/dist/config/paths.d.ts.map +1 -1
  58. package/dist/config/paths.js +30 -0
  59. package/dist/config/paths.js.map +1 -1
  60. package/dist/config/provider-env.d.ts +37 -0
  61. package/dist/config/provider-env.d.ts.map +1 -0
  62. package/dist/config/provider-env.js +86 -0
  63. package/dist/config/provider-env.js.map +1 -0
  64. package/dist/context/history.d.ts.map +1 -1
  65. package/dist/context/history.js +24 -8
  66. package/dist/context/history.js.map +1 -1
  67. package/dist/context/session-recall.d.ts +30 -0
  68. package/dist/context/session-recall.d.ts.map +1 -1
  69. package/dist/context/session-recall.js +61 -0
  70. package/dist/context/session-recall.js.map +1 -1
  71. package/dist/file.js +0 -1
  72. package/dist/file.js.map +1 -1
  73. package/dist/gateway/adapters.d.ts +10 -0
  74. package/dist/gateway/adapters.d.ts.map +1 -1
  75. package/dist/gateway/adapters.js +4 -1
  76. package/dist/gateway/adapters.js.map +1 -1
  77. package/dist/gateway/dedup.d.ts +105 -0
  78. package/dist/gateway/dedup.d.ts.map +1 -0
  79. package/dist/gateway/dedup.js +160 -0
  80. package/dist/gateway/dedup.js.map +1 -0
  81. package/dist/gateway/heartbeat.d.ts +99 -0
  82. package/dist/gateway/heartbeat.d.ts.map +1 -0
  83. package/dist/gateway/heartbeat.js +122 -0
  84. package/dist/gateway/heartbeat.js.map +1 -0
  85. package/dist/gateway/inbox.d.ts +14 -1
  86. package/dist/gateway/inbox.d.ts.map +1 -1
  87. package/dist/gateway/inbox.js.map +1 -1
  88. package/dist/gateway/platform-config.d.ts +5 -0
  89. package/dist/gateway/platform-config.d.ts.map +1 -1
  90. package/dist/gateway/platform-config.js +8 -13
  91. package/dist/gateway/platform-config.js.map +1 -1
  92. package/dist/gateway/registry.d.ts +47 -0
  93. package/dist/gateway/registry.d.ts.map +1 -1
  94. package/dist/gateway/registry.js +227 -21
  95. package/dist/gateway/registry.js.map +1 -1
  96. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  97. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  98. package/dist/gateway/whatsapp/baileys-bridge.js +64 -1
  99. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  100. package/dist/gateway/whatsapp/bridge.d.ts +4 -2
  101. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  102. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/index.js.map +1 -1
  105. package/dist/inference/factory.d.ts +16 -0
  106. package/dist/inference/factory.d.ts.map +1 -1
  107. package/dist/inference/factory.js +42 -0
  108. package/dist/inference/factory.js.map +1 -1
  109. package/dist/inference/gemini-adapter.d.ts.map +1 -1
  110. package/dist/inference/gemini-adapter.js +3 -0
  111. package/dist/inference/gemini-adapter.js.map +1 -1
  112. package/dist/inference/interface.d.ts +12 -0
  113. package/dist/inference/interface.d.ts.map +1 -1
  114. package/dist/inference/local-adapter.d.ts +2 -0
  115. package/dist/inference/local-adapter.d.ts.map +1 -1
  116. package/dist/inference/local-adapter.js +36 -5
  117. package/dist/inference/local-adapter.js.map +1 -1
  118. package/dist/inference/native-tools.d.ts +8 -0
  119. package/dist/inference/native-tools.d.ts.map +1 -1
  120. package/dist/inference/native-tools.js +14 -3
  121. package/dist/inference/native-tools.js.map +1 -1
  122. package/dist/inference/tool-call-utils.d.ts +92 -7
  123. package/dist/inference/tool-call-utils.d.ts.map +1 -1
  124. package/dist/inference/tool-call-utils.js +203 -13
  125. package/dist/inference/tool-call-utils.js.map +1 -1
  126. package/dist/learning/auto-router.d.ts.map +1 -1
  127. package/dist/learning/auto-router.js +90 -5
  128. package/dist/learning/auto-router.js.map +1 -1
  129. package/dist/learning/context-budget.d.ts +133 -0
  130. package/dist/learning/context-budget.d.ts.map +1 -0
  131. package/dist/learning/context-budget.js +196 -0
  132. package/dist/learning/context-budget.js.map +1 -0
  133. package/dist/learning/cost-tracker.d.ts.map +1 -1
  134. package/dist/learning/cost-tracker.js +20 -8
  135. package/dist/learning/cost-tracker.js.map +1 -1
  136. package/dist/learning/eval-framework.d.ts.map +1 -1
  137. package/dist/learning/eval-framework.js +6 -2
  138. package/dist/learning/eval-framework.js.map +1 -1
  139. package/dist/learning/failure-bookkeeping.d.ts +19 -0
  140. package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
  141. package/dist/learning/failure-bookkeeping.js +67 -2
  142. package/dist/learning/failure-bookkeeping.js.map +1 -1
  143. package/dist/learning/feedback.d.ts.map +1 -1
  144. package/dist/learning/feedback.js +19 -8
  145. package/dist/learning/feedback.js.map +1 -1
  146. package/dist/learning/model-harness.d.ts +76 -0
  147. package/dist/learning/model-harness.d.ts.map +1 -0
  148. package/dist/learning/model-harness.js +119 -0
  149. package/dist/learning/model-harness.js.map +1 -0
  150. package/dist/learning/model-selection.d.ts +15 -0
  151. package/dist/learning/model-selection.d.ts.map +1 -1
  152. package/dist/learning/model-selection.js +27 -1
  153. package/dist/learning/model-selection.js.map +1 -1
  154. package/dist/learning/provider-fallback.d.ts +12 -0
  155. package/dist/learning/provider-fallback.d.ts.map +1 -1
  156. package/dist/learning/provider-fallback.js +74 -0
  157. package/dist/learning/provider-fallback.js.map +1 -1
  158. package/dist/learning/provider-revival.d.ts +106 -0
  159. package/dist/learning/provider-revival.d.ts.map +1 -0
  160. package/dist/learning/provider-revival.js +154 -0
  161. package/dist/learning/provider-revival.js.map +1 -0
  162. package/dist/learning/resilient-call.d.ts.map +1 -1
  163. package/dist/learning/resilient-call.js +48 -3
  164. package/dist/learning/resilient-call.js.map +1 -1
  165. package/dist/nlu/conversation-gate.d.ts +37 -0
  166. package/dist/nlu/conversation-gate.d.ts.map +1 -1
  167. package/dist/nlu/conversation-gate.js +49 -0
  168. package/dist/nlu/conversation-gate.js.map +1 -1
  169. package/dist/nlu/schema.d.ts +2 -2
  170. package/dist/observability/dag-bridge.d.ts +69 -0
  171. package/dist/observability/dag-bridge.d.ts.map +1 -0
  172. package/dist/observability/dag-bridge.js +56 -0
  173. package/dist/observability/dag-bridge.js.map +1 -0
  174. package/dist/observability/event-bus.d.ts +5 -10
  175. package/dist/observability/event-bus.d.ts.map +1 -1
  176. package/dist/observability/event-bus.js +10 -42
  177. package/dist/observability/event-bus.js.map +1 -1
  178. package/dist/skills/execution-audit.d.ts.map +1 -1
  179. package/dist/skills/execution-audit.js +17 -5
  180. package/dist/skills/execution-audit.js.map +1 -1
  181. package/dist/skills/sandbox-executor.d.ts +12 -1
  182. package/dist/skills/sandbox-executor.d.ts.map +1 -1
  183. package/dist/skills/sandbox-executor.js +28 -6
  184. package/dist/skills/sandbox-executor.js.map +1 -1
  185. package/dist/skills/secret-capture.d.ts +45 -1
  186. package/dist/skills/secret-capture.d.ts.map +1 -1
  187. package/dist/skills/secret-capture.js +82 -19
  188. package/dist/skills/secret-capture.js.map +1 -1
  189. package/dist/skills/skill-env-inventory.d.ts +79 -0
  190. package/dist/skills/skill-env-inventory.d.ts.map +1 -0
  191. package/dist/skills/skill-env-inventory.js +167 -0
  192. package/dist/skills/skill-env-inventory.js.map +1 -0
  193. package/dist/skills/skill-executor.d.ts +2 -0
  194. package/dist/skills/skill-executor.d.ts.map +1 -1
  195. package/dist/skills/skill-executor.js +19 -24
  196. package/dist/skills/skill-executor.js.map +1 -1
  197. package/dist/tools/ask-user.d.ts +14 -1
  198. package/dist/tools/ask-user.d.ts.map +1 -1
  199. package/dist/tools/ask-user.js +25 -1
  200. package/dist/tools/ask-user.js.map +1 -1
  201. package/dist/tools/followup-utils.d.ts +64 -0
  202. package/dist/tools/followup-utils.d.ts.map +1 -0
  203. package/dist/tools/followup-utils.js +158 -0
  204. package/dist/tools/followup-utils.js.map +1 -0
  205. package/dist/tools/loop-skill-hint.d.ts.map +1 -1
  206. package/dist/tools/loop-skill-hint.js +22 -1
  207. package/dist/tools/loop-skill-hint.js.map +1 -1
  208. package/dist/tools/memory-tools.d.ts +35 -0
  209. package/dist/tools/memory-tools.d.ts.map +1 -1
  210. package/dist/tools/memory-tools.js +76 -0
  211. package/dist/tools/memory-tools.js.map +1 -1
  212. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  213. package/dist/tools/pipeline-tool.js +8 -3
  214. package/dist/tools/pipeline-tool.js.map +1 -1
  215. package/dist/tools/registry.d.ts +25 -12
  216. package/dist/tools/registry.d.ts.map +1 -1
  217. package/dist/tools/registry.js +31 -6
  218. package/dist/tools/registry.js.map +1 -1
  219. package/dist/tools/skill-tool.d.ts.map +1 -1
  220. package/dist/tools/skill-tool.js +52 -5
  221. package/dist/tools/skill-tool.js.map +1 -1
  222. package/dist/tools/tool-loop.d.ts +63 -1
  223. package/dist/tools/tool-loop.d.ts.map +1 -1
  224. package/dist/tools/tool-loop.js +305 -66
  225. package/dist/tools/tool-loop.js.map +1 -1
  226. package/dist/tools/toolsets.d.ts +19 -3
  227. package/dist/tools/toolsets.d.ts.map +1 -1
  228. package/dist/tools/toolsets.js +21 -5
  229. package/dist/tools/toolsets.js.map +1 -1
  230. package/dist/utils/env.d.ts.map +1 -1
  231. package/dist/utils/env.js +9 -13
  232. package/dist/utils/env.js.map +1 -1
  233. package/dist/web-dashboard/chat-console.d.ts +13 -1
  234. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  235. package/dist/web-dashboard/chat-console.js +16 -2
  236. package/dist/web-dashboard/chat-console.js.map +1 -1
  237. package/dist/web-dashboard/hub-data.d.ts +2 -0
  238. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  239. package/dist/web-dashboard/hub-data.js +4 -0
  240. package/dist/web-dashboard/hub-data.js.map +1 -1
  241. package/dist/web-dashboard/server.d.ts +6 -0
  242. package/dist/web-dashboard/server.d.ts.map +1 -1
  243. package/dist/web-dashboard/server.js +192 -3
  244. package/dist/web-dashboard/server.js.map +1 -1
  245. package/dist/web-dashboard/src/types.d.ts +31 -1
  246. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  247. package/package.json +11 -1
  248. package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
  249. package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
  250. package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
  251. package/src/web-dashboard/public/index.html +2 -2
  252. package/dist/example.d.ts +0 -1
  253. package/dist/example.d.ts.map +0 -1
  254. package/dist/example.js +0 -3
  255. package/dist/example.js.map +0 -1
  256. package/dist/fresh.d.ts +0 -2
  257. package/dist/fresh.d.ts.map +0 -1
  258. package/dist/fresh.js +0 -2
  259. package/dist/fresh.js.map +0 -1
  260. package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
  261. package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
  262. package/dist/mcp/mcp-dashboard-oauth.js +0 -140
  263. package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
  264. package/dist/memory/background-sync.d.ts +0 -107
  265. package/dist/memory/background-sync.d.ts.map +0 -1
  266. package/dist/memory/background-sync.js +0 -242
  267. package/dist/memory/background-sync.js.map +0 -1
  268. package/dist/memory/cross-session.d.ts +0 -68
  269. package/dist/memory/cross-session.d.ts.map +0 -1
  270. package/dist/memory/cross-session.js +0 -153
  271. package/dist/memory/cross-session.js.map +0 -1
  272. package/dist/memory/drift-detector.d.ts +0 -76
  273. package/dist/memory/drift-detector.d.ts.map +0 -1
  274. package/dist/memory/drift-detector.js +0 -216
  275. package/dist/memory/drift-detector.js.map +0 -1
  276. package/dist/memory/enhanced-manager.d.ts +0 -105
  277. package/dist/memory/enhanced-manager.d.ts.map +0 -1
  278. package/dist/memory/enhanced-manager.js +0 -280
  279. package/dist/memory/enhanced-manager.js.map +0 -1
  280. package/dist/memory/session-extraction.d.ts +0 -93
  281. package/dist/memory/session-extraction.d.ts.map +0 -1
  282. package/dist/memory/session-extraction.js +0 -290
  283. package/dist/memory/session-extraction.js.map +0 -1
  284. package/dist/memory/sqlite-store.d.ts +0 -208
  285. package/dist/memory/sqlite-store.d.ts.map +0 -1
  286. package/dist/memory/sqlite-store.js +0 -556
  287. package/dist/memory/sqlite-store.js.map +0 -1
  288. package/dist/skills/daytona-executor.d.ts +0 -78
  289. package/dist/skills/daytona-executor.d.ts.map +0 -1
  290. package/dist/skills/daytona-executor.js +0 -256
  291. package/dist/skills/daytona-executor.js.map +0 -1
  292. package/dist/skills/modal-executor.d.ts +0 -81
  293. package/dist/skills/modal-executor.d.ts.map +0 -1
  294. package/dist/skills/modal-executor.js +0 -285
  295. package/dist/skills/modal-executor.js.map +0 -1
  296. package/dist/sync/inventory.d.ts +0 -1
  297. package/dist/sync/inventory.d.ts.map +0 -1
  298. package/dist/sync/inventory.js +0 -3
  299. package/dist/sync/inventory.js.map +0 -1
  300. package/dist/sync/validate.d.ts +0 -1
  301. package/dist/sync/validate.d.ts.map +0 -1
  302. package/dist/sync/validate.js +0 -3
  303. package/dist/sync/validate.js.map +0 -1
  304. package/dist/test.d.ts +0 -2
  305. package/dist/test.d.ts.map +0 -1
  306. package/dist/test.js +0 -3
  307. package/dist/test.js.map +0 -1
  308. package/dist/tools/browser-tool.d.ts +0 -206
  309. package/dist/tools/browser-tool.d.ts.map +0 -1
  310. package/dist/tools/browser-tool.js +0 -726
  311. package/dist/tools/browser-tool.js.map +0 -1
  312. package/dist/tools/delegate-tool.d.ts +0 -109
  313. package/dist/tools/delegate-tool.d.ts.map +0 -1
  314. package/dist/tools/delegate-tool.js +0 -185
  315. package/dist/tools/delegate-tool.js.map +0 -1
  316. package/dist/tools/delegation-state.d.ts +0 -87
  317. package/dist/tools/delegation-state.d.ts.map +0 -1
  318. package/dist/tools/delegation-state.js +0 -278
  319. package/dist/tools/delegation-state.js.map +0 -1
  320. package/dist/tools/desktop-ui.d.ts +0 -148
  321. package/dist/tools/desktop-ui.d.ts.map +0 -1
  322. package/dist/tools/desktop-ui.js +0 -486
  323. package/dist/tools/desktop-ui.js.map +0 -1
  324. package/dist/tools/image-video-tool.d.ts +0 -88
  325. package/dist/tools/image-video-tool.d.ts.map +0 -1
  326. package/dist/tools/image-video-tool.js +0 -276
  327. package/dist/tools/image-video-tool.js.map +0 -1
  328. package/dist/tools/kanban-cron-tools.d.ts +0 -92
  329. package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
  330. package/dist/tools/kanban-cron-tools.js +0 -197
  331. package/dist/tools/kanban-cron-tools.js.map +0 -1
  332. package/dist/tools/messaging-tool.d.ts +0 -127
  333. package/dist/tools/messaging-tool.d.ts.map +0 -1
  334. package/dist/tools/messaging-tool.js +0 -314
  335. package/dist/tools/messaging-tool.js.map +0 -1
  336. package/dist/tools/modality/generic-caller.d.ts +0 -43
  337. package/dist/tools/modality/generic-caller.d.ts.map +0 -1
  338. package/dist/tools/modality/generic-caller.js +0 -254
  339. package/dist/tools/modality/generic-caller.js.map +0 -1
  340. package/dist/tools/modality/modality-catalog.d.ts +0 -134
  341. package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
  342. package/dist/tools/modality/modality-catalog.js +0 -445
  343. package/dist/tools/modality/modality-catalog.js.map +0 -1
  344. package/dist/tools/modality/tool-router.d.ts +0 -81
  345. package/dist/tools/modality/tool-router.d.ts.map +0 -1
  346. package/dist/tools/modality/tool-router.js +0 -84
  347. package/dist/tools/modality/tool-router.js.map +0 -1
  348. package/dist/tools/security-tools.d.ts +0 -107
  349. package/dist/tools/security-tools.d.ts.map +0 -1
  350. package/dist/tools/security-tools.js +0 -264
  351. package/dist/tools/security-tools.js.map +0 -1
  352. package/dist/tools/ssh-tool.d.ts +0 -130
  353. package/dist/tools/ssh-tool.d.ts.map +0 -1
  354. package/dist/tools/ssh-tool.js +0 -328
  355. package/dist/tools/ssh-tool.js.map +0 -1
  356. package/dist/tools/tts-tool.d.ts +0 -91
  357. package/dist/tools/tts-tool.d.ts.map +0 -1
  358. package/dist/tools/tts-tool.js +0 -406
  359. package/dist/tools/tts-tool.js.map +0 -1
  360. package/dist/utils/shell-detection.d.ts +0 -124
  361. package/dist/utils/shell-detection.d.ts.map +0 -1
  362. package/dist/utils/shell-detection.js +0 -305
  363. package/dist/utils/shell-detection.js.map +0 -1
  364. package/dist/utils/windows-paths.d.ts +0 -185
  365. package/dist/utils/windows-paths.d.ts.map +0 -1
  366. package/dist/utils/windows-paths.js +0 -472
  367. package/dist/utils/windows-paths.js.map +0 -1
  368. package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
  369. package/src/web-dashboard/public/assets/index-C4frng1Q.js.map +0 -1
@@ -1,328 +0,0 @@
1
- /**
2
- * SSH Tool — Remote server execution via SSH.
3
- *
4
- * This provides SSH capabilities:
5
- * - Connect to remote servers
6
- * - Execute commands remotely
7
- * - File transfer (SCP/SFTP)
8
- * - Port forwarding (tunnels)
9
- * - Key management
10
- * - Agent forwarding
11
- * - Jump hosts (multi-hop)
12
- * - Persistent sessions
13
- *
14
- * Better than Hermes:
15
- * - Built-in SSH key management
16
- * - Port forwarding support
17
- * - Jump host support
18
- * - Persistent sessions
19
- * - Integration with skill system
20
- */
21
- import { spawn } from 'node:child_process';
22
- import { readFile } from 'node:fs/promises';
23
- // ─── SSH Connection Pool ─────────────────────────────────────────────────
24
- const connectionPool = new Map();
25
- /**
26
- * Get or create SSH connection.
27
- */
28
- async function getConnection(config) {
29
- const key = `${config.username}@${config.host}:${config.port ?? 22}`;
30
- let conn = connectionPool.get(key);
31
- if (conn && !conn.killed) {
32
- return conn;
33
- }
34
- // Build SSH command
35
- const args = buildSSHArgs(config);
36
- conn = spawn('ssh', args, {
37
- stdio: ['pipe', 'pipe', 'pipe'],
38
- });
39
- connectionPool.set(key, conn);
40
- // Handle connection close
41
- conn.on('close', () => {
42
- connectionPool.delete(key);
43
- });
44
- return conn;
45
- }
46
- /**
47
- * Build SSH arguments.
48
- */
49
- function buildSSHArgs(config) {
50
- const args = [];
51
- // Port
52
- if (config.port && config.port !== 22) {
53
- args.push('-p', String(config.port));
54
- }
55
- // Private key
56
- if (config.privateKey) {
57
- args.push('-i', config.privateKey);
58
- }
59
- // Strict host key checking
60
- args.push('-o', 'StrictHostKeyChecking=no');
61
- // Connection timeout
62
- if (config.timeout) {
63
- args.push('-o', `ConnectTimeout=${Math.floor(config.timeout / 1000)}`);
64
- }
65
- // Keep-alive
66
- if (config.keepAlive) {
67
- args.push('-o', `ServerAliveInterval=${Math.floor(config.keepAlive / 1000)}`);
68
- }
69
- // SSH config file
70
- if (config.configPath) {
71
- args.push('-F', config.configPath);
72
- }
73
- // Host and command (will be appended later)
74
- args.push(`${config.username}@${config.host}`);
75
- return args;
76
- }
77
- // ─── Command Execution ───────────────────────────────────────────────────
78
- /**
79
- * Execute a command on a remote server.
80
- */
81
- export async function executeCommand(config, options) {
82
- const startTime = Date.now();
83
- try {
84
- const args = buildSSHArgs(config);
85
- // Add command
86
- let command = options.command;
87
- if (options.cwd) {
88
- command = `cd ${options.cwd} && ${command}`;
89
- }
90
- if (options.env) {
91
- const envStr = Object.entries(options.env)
92
- .map(([k, v]) => `${k}="${v}"`)
93
- .join(' ');
94
- command = `${envStr} ${command}`;
95
- }
96
- args.push(command);
97
- // Execute SSH command
98
- const result = await runSSHCommand(args, options.timeout ?? 30000);
99
- return {
100
- success: result.exitCode === 0,
101
- exitCode: result.exitCode,
102
- stdout: result.stdout,
103
- stderr: result.stderr,
104
- durationMs: Date.now() - startTime,
105
- };
106
- }
107
- catch (err) {
108
- return {
109
- success: false,
110
- exitCode: 1,
111
- stdout: '',
112
- stderr: err instanceof Error ? err.message : String(err),
113
- durationMs: Date.now() - startTime,
114
- };
115
- }
116
- }
117
- /**
118
- * Run SSH command with timeout.
119
- */
120
- async function runSSHCommand(args, timeout) {
121
- return new Promise((resolve, reject) => {
122
- const child = spawn('ssh', args, {
123
- stdio: ['pipe', 'pipe', 'pipe'],
124
- });
125
- let stdout = '';
126
- let stderr = '';
127
- let killed = false;
128
- child.stdout?.on('data', (data) => {
129
- stdout += data.toString();
130
- });
131
- child.stderr?.on('data', (data) => {
132
- stderr += data.toString();
133
- });
134
- const timer = setTimeout(() => {
135
- killed = true;
136
- child.kill('SIGTERM');
137
- setTimeout(() => {
138
- if (!child.killed) {
139
- child.kill('SIGKILL');
140
- }
141
- }, 5000);
142
- }, timeout);
143
- child.on('close', (code) => {
144
- clearTimeout(timer);
145
- resolve({
146
- exitCode: code ?? (killed ? 124 : 1),
147
- stdout,
148
- stderr,
149
- });
150
- });
151
- child.on('error', (err) => {
152
- clearTimeout(timer);
153
- reject(err);
154
- });
155
- });
156
- }
157
- // ─── File Transfer ───────────────────────────────────────────────────────
158
- /**
159
- * Copy file to remote server (SCP).
160
- */
161
- export async function copyToRemote(config, localPath, remotePath) {
162
- const startTime = Date.now();
163
- try {
164
- const args = buildSCPArgs(config, localPath, remotePath, 'upload');
165
- const result = await runSSHCommand(args, 60000);
166
- return {
167
- success: result.exitCode === 0,
168
- exitCode: result.exitCode,
169
- stdout: result.stdout,
170
- stderr: result.stderr,
171
- durationMs: Date.now() - startTime,
172
- };
173
- }
174
- catch (err) {
175
- return {
176
- success: false,
177
- exitCode: 1,
178
- stdout: '',
179
- stderr: err instanceof Error ? err.message : String(err),
180
- durationMs: Date.now() - startTime,
181
- };
182
- }
183
- }
184
- /**
185
- * Copy file from remote server (SCP).
186
- */
187
- export async function copyFromRemote(config, remotePath, localPath) {
188
- const startTime = Date.now();
189
- try {
190
- const args = buildSCPArgs(config, remotePath, localPath, 'download');
191
- const result = await runSSHCommand(args, 60000);
192
- return {
193
- success: result.exitCode === 0,
194
- exitCode: result.exitCode,
195
- stdout: result.stdout,
196
- stderr: result.stderr,
197
- durationMs: Date.now() - startTime,
198
- };
199
- }
200
- catch (err) {
201
- return {
202
- success: false,
203
- exitCode: 1,
204
- stdout: '',
205
- stderr: err instanceof Error ? err.message : String(err),
206
- durationMs: Date.now() - startTime,
207
- };
208
- }
209
- }
210
- /**
211
- * Build SCP arguments.
212
- */
213
- function buildSCPArgs(config, source, destination, direction) {
214
- const args = [];
215
- // Port
216
- if (config.port && config.port !== 22) {
217
- args.push('-P', String(config.port));
218
- }
219
- // Private key
220
- if (config.privateKey) {
221
- args.push('-i', config.privateKey);
222
- }
223
- // Recursive for directories
224
- args.push('-r');
225
- // Strict host key checking
226
- args.push('-o', 'StrictHostKeyChecking=no');
227
- // Source and destination
228
- if (direction === 'upload') {
229
- args.push(source, `${config.username}@${config.host}:${destination}`);
230
- }
231
- else {
232
- args.push(`${config.username}@${config.host}:${source}`, destination);
233
- }
234
- return args;
235
- }
236
- // ─── Port Forwarding ─────────────────────────────────────────────────────
237
- /**
238
- * Create SSH tunnel (port forwarding).
239
- */
240
- export async function createTunnel(config, tunnel) {
241
- const args = buildSSHArgs(config);
242
- // Add tunnel options
243
- const type = tunnel.type ?? 'local';
244
- const flag = type === 'local' ? '-L' : type === 'remote' ? '-R' : '-D';
245
- const localAddr = `127.0.0.1:${tunnel.localPort}`;
246
- const remoteAddr = `${tunnel.remoteHost ?? 'localhost'}:${tunnel.remotePort}`;
247
- args.push(flag, `${localAddr}:${remoteAddr}`);
248
- // Add exit on forward failure
249
- args.push('-o', 'ExitOnForwardFailure=yes');
250
- // Execute in background
251
- args.push('-N');
252
- const child = spawn('ssh', args, {
253
- stdio: ['pipe', 'pipe', 'pipe'],
254
- });
255
- return child;
256
- }
257
- // ─── Key Management ──────────────────────────────────────────────────────
258
- /**
259
- * Generate SSH key pair.
260
- */
261
- export async function generateKeyPair(keyPath, options = {}) {
262
- const type = options.type ?? 'ed25519';
263
- const bits = options.bits ?? 4096;
264
- const args = [
265
- '-t', type,
266
- '-b', String(bits),
267
- '-f', keyPath,
268
- '-N', options.passphrase ?? '',
269
- ];
270
- if (options.comment) {
271
- args.push('-C', options.comment);
272
- }
273
- await runSSHCommand(['ssh-keygen', ...args], 30000);
274
- const privateKey = await readFile(keyPath, 'utf-8');
275
- const publicKey = await readFile(`${keyPath}.pub`, 'utf-8');
276
- return { publicKey, privateKey };
277
- }
278
- /**
279
- * Add public key to remote authorized_keys.
280
- */
281
- export async function addAuthorizedKey(config, publicKey) {
282
- return executeCommand(config, {
283
- command: `echo "${publicKey}" >> ~/.ssh/authorized_keys`,
284
- });
285
- }
286
- // ─── Session Management ──────────────────────────────────────────────────
287
- /**
288
- * Close all SSH connections.
289
- */
290
- export function closeAllConnections() {
291
- for (const [key, conn] of connectionPool) {
292
- if (!conn.killed) {
293
- conn.kill('SIGTERM');
294
- }
295
- }
296
- connectionPool.clear();
297
- }
298
- /**
299
- * Get connection status.
300
- */
301
- export function getConnectionStatus() {
302
- const status = [];
303
- for (const [key, conn] of connectionPool) {
304
- status.push({
305
- key,
306
- connected: !conn.killed,
307
- pid: conn.pid,
308
- });
309
- }
310
- return status;
311
- }
312
- // ─── Export All ──────────────────────────────────────────────────────────
313
- export default {
314
- // Command execution
315
- executeCommand,
316
- // File transfer
317
- copyToRemote,
318
- copyFromRemote,
319
- // Port forwarding
320
- createTunnel,
321
- // Key management
322
- generateKeyPair,
323
- addAuthorizedKey,
324
- // Session management
325
- closeAllConnections,
326
- getConnectionStatus,
327
- };
328
- //# sourceMappingURL=ssh-tool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ssh-tool.js","sourceRoot":"","sources":["../../src/tools/ssh-tool.ts"],"names":[],"mappings":"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"}
@@ -1,91 +0,0 @@
1
- /**
2
- * TTS Tool — Text-to-Speech with multiple provider support.
3
- *
4
- * This provides TTS capabilities:
5
- * - Multiple TTS engines (OpenAI, Google, Azure, ElevenLabs)
6
- * - Voice selection
7
- * - SSML support
8
- * - Streaming TTS
9
- * - Language support
10
- * - Audio format selection
11
- * - Speed/pitch control
12
- * - Volume control
13
- *
14
- * Better than Hermes:
15
- * - Multiple provider support
16
- * - Built-in voice selection
17
- * - SSML support
18
- * - Streaming capability
19
- * - Integration with skill system
20
- */
21
- export type TTSProvider = 'openai' | 'google' | 'azure' | 'elevenlabs';
22
- export interface TTSConfig {
23
- /** TTS provider */
24
- provider: TTSProvider;
25
- /** API key */
26
- apiKey: string;
27
- /** Voice ID or name */
28
- voiceId?: string;
29
- /** Language code (e.g., 'en-US') */
30
- language?: string;
31
- /** Speaking rate (0.5 - 2.0) */
32
- speed?: number;
33
- /** Pitch (-10 - 10) */
34
- pitch?: number;
35
- /** Volume gain (-96 - 16 dB) */
36
- volumeGainDb?: number;
37
- /** Audio format */
38
- audioFormat?: 'mp3' | 'wav' | 'ogg' | 'flac';
39
- /** SSML support */
40
- ssml?: boolean;
41
- }
42
- export interface TTSEngineResult {
43
- success: boolean;
44
- audioBuffer?: Buffer;
45
- audioPath?: string;
46
- durationMs: number;
47
- provider: TTSProvider;
48
- voiceId?: string;
49
- error?: string;
50
- }
51
- /**
52
- * Convert text to speech using the specified provider.
53
- */
54
- export declare function textToSpeech(text: string, config: TTSConfig, outputPath?: string): Promise<TTSEngineResult>;
55
- /**
56
- * Get available voices for a provider.
57
- */
58
- export declare function getAvailableVoices(provider: TTSProvider, apiKey: string): Promise<Array<{
59
- id: string;
60
- name: string;
61
- language?: string;
62
- }>>;
63
- export interface STTConfig {
64
- /** STT provider */
65
- provider: 'openai' | 'google' | 'azure';
66
- /** API key */
67
- apiKey: string;
68
- /** Language code */
69
- language?: string;
70
- /** Model */
71
- model?: string;
72
- }
73
- export interface STTResult {
74
- success: boolean;
75
- text?: string;
76
- language?: string;
77
- durationMs: number;
78
- provider: string;
79
- error?: string;
80
- }
81
- /**
82
- * Convert speech to text using the specified provider.
83
- */
84
- export declare function speechToText(audioPath: string, config: STTConfig): Promise<STTResult>;
85
- declare const _default: {
86
- textToSpeech: typeof textToSpeech;
87
- getAvailableVoices: typeof getAvailableVoices;
88
- speechToText: typeof speechToText;
89
- };
90
- export default _default;
91
- //# sourceMappingURL=tts-tool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tts-tool.d.ts","sourceRoot":"","sources":["../../src/tools/tts-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAUH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;AAEvE,MAAM,WAAW,SAAS;IACxB,mBAAmB;IACnB,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;IAC7C,mBAAmB;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwND;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,SAAS,EACjB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAiC1B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAsDjE;AAID,MAAM,WAAW,SAAS;IACxB,mBAAmB;IACnB,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,GAChB,OAAO,CAAC,SAAS,CAAC,CAsHpB;;;;;;AAID,wBAOE"}