@wingman-ai/gateway 0.1.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 (418) hide show
  1. package/.wingman/agents/README.md +161 -0
  2. package/.wingman/agents/coding/agent.md +147 -0
  3. package/.wingman/agents/coding/implementor.md +56 -0
  4. package/.wingman/agents/main/agent.md +19 -0
  5. package/.wingman/agents/researcher/agent.md +62 -0
  6. package/.wingman/agents/stock-trader/agent.md +223 -0
  7. package/.wingman/agents/stock-trader/chain-curator.md +24 -0
  8. package/.wingman/agents/stock-trader/goal-translator.md +42 -0
  9. package/.wingman/agents/stock-trader/guardrails-veto.md +11 -0
  10. package/.wingman/agents/stock-trader/path-planner.md +23 -0
  11. package/.wingman/agents/stock-trader/regime-analyst.md +15 -0
  12. package/.wingman/agents/stock-trader/risk.md +20 -0
  13. package/.wingman/agents/stock-trader/selection.md +22 -0
  14. package/.wingman/agents/stock-trader/strategy-composer.md +38 -0
  15. package/.wingman/agents/wingman/agent.json +12 -0
  16. package/bin/wingman +7 -0
  17. package/dist/agent/config/agentConfig.cjs +95 -0
  18. package/dist/agent/config/agentConfig.d.ts +187 -0
  19. package/dist/agent/config/agentConfig.js +52 -0
  20. package/dist/agent/config/agentLoader.cjs +242 -0
  21. package/dist/agent/config/agentLoader.d.ts +42 -0
  22. package/dist/agent/config/agentLoader.js +208 -0
  23. package/dist/agent/config/mcpClientManager.cjs +168 -0
  24. package/dist/agent/config/mcpClientManager.d.ts +41 -0
  25. package/dist/agent/config/mcpClientManager.js +134 -0
  26. package/dist/agent/config/modelFactory.cjs +175 -0
  27. package/dist/agent/config/modelFactory.d.ts +33 -0
  28. package/dist/agent/config/modelFactory.js +141 -0
  29. package/dist/agent/config/toolRegistry.cjs +111 -0
  30. package/dist/agent/config/toolRegistry.d.ts +25 -0
  31. package/dist/agent/config/toolRegistry.js +71 -0
  32. package/dist/agent/middleware/additional-messages.cjs +60 -0
  33. package/dist/agent/middleware/additional-messages.d.ts +7 -0
  34. package/dist/agent/middleware/additional-messages.js +26 -0
  35. package/dist/agent/middleware/hooks/executor.cjs +137 -0
  36. package/dist/agent/middleware/hooks/executor.d.ts +52 -0
  37. package/dist/agent/middleware/hooks/executor.js +103 -0
  38. package/dist/agent/middleware/hooks/input-builder.cjs +55 -0
  39. package/dist/agent/middleware/hooks/input-builder.d.ts +15 -0
  40. package/dist/agent/middleware/hooks/input-builder.js +21 -0
  41. package/dist/agent/middleware/hooks/matcher.cjs +59 -0
  42. package/dist/agent/middleware/hooks/matcher.d.ts +27 -0
  43. package/dist/agent/middleware/hooks/matcher.js +22 -0
  44. package/dist/agent/middleware/hooks/merger.cjs +54 -0
  45. package/dist/agent/middleware/hooks/merger.d.ts +18 -0
  46. package/dist/agent/middleware/hooks/merger.js +20 -0
  47. package/dist/agent/middleware/hooks/types.cjs +62 -0
  48. package/dist/agent/middleware/hooks/types.d.ts +82 -0
  49. package/dist/agent/middleware/hooks/types.js +19 -0
  50. package/dist/agent/middleware/hooks.cjs +79 -0
  51. package/dist/agent/middleware/hooks.d.ts +19 -0
  52. package/dist/agent/middleware/hooks.js +45 -0
  53. package/dist/agent/middleware/media-compat.cjs +80 -0
  54. package/dist/agent/middleware/media-compat.d.ts +7 -0
  55. package/dist/agent/middleware/media-compat.js +46 -0
  56. package/dist/agent/tests/agentConfig.test.cjs +132 -0
  57. package/dist/agent/tests/agentConfig.test.d.ts +1 -0
  58. package/dist/agent/tests/agentConfig.test.js +126 -0
  59. package/dist/agent/tests/agentLoader.test.cjs +235 -0
  60. package/dist/agent/tests/agentLoader.test.d.ts +1 -0
  61. package/dist/agent/tests/agentLoader.test.js +229 -0
  62. package/dist/agent/tests/modelFactory.test.cjs +114 -0
  63. package/dist/agent/tests/modelFactory.test.d.ts +1 -0
  64. package/dist/agent/tests/modelFactory.test.js +108 -0
  65. package/dist/agent/tests/test-agent-loader.cjs +33 -0
  66. package/dist/agent/tests/test-agent-loader.d.ts +1 -0
  67. package/dist/agent/tests/test-agent-loader.js +27 -0
  68. package/dist/agent/tests/test-subagent-loading.cjs +99 -0
  69. package/dist/agent/tests/test-subagent-loading.d.ts +1 -0
  70. package/dist/agent/tests/test-subagent-loading.js +93 -0
  71. package/dist/agent/tests/toolRegistry.test.cjs +109 -0
  72. package/dist/agent/tests/toolRegistry.test.d.ts +1 -0
  73. package/dist/agent/tests/toolRegistry.test.js +103 -0
  74. package/dist/agent/tools/code_search.cjs +108 -0
  75. package/dist/agent/tools/code_search.d.ts +24 -0
  76. package/dist/agent/tools/code_search.js +74 -0
  77. package/dist/agent/tools/command_execute.cjs +136 -0
  78. package/dist/agent/tools/command_execute.d.ts +12 -0
  79. package/dist/agent/tools/command_execute.js +99 -0
  80. package/dist/agent/tools/git_status.cjs +126 -0
  81. package/dist/agent/tools/git_status.d.ts +15 -0
  82. package/dist/agent/tools/git_status.js +92 -0
  83. package/dist/agent/tools/internet_search.cjs +93 -0
  84. package/dist/agent/tools/internet_search.d.ts +25 -0
  85. package/dist/agent/tools/internet_search.js +56 -0
  86. package/dist/agent/tools/think.cjs +53 -0
  87. package/dist/agent/tools/think.d.ts +26 -0
  88. package/dist/agent/tools/think.js +16 -0
  89. package/dist/agent/tools/web_crawler.cjs +180 -0
  90. package/dist/agent/tools/web_crawler.d.ts +31 -0
  91. package/dist/agent/tools/web_crawler.js +143 -0
  92. package/dist/agent/utils.cjs +54 -0
  93. package/dist/agent/utils.d.ts +1 -0
  94. package/dist/agent/utils.js +10 -0
  95. package/dist/cli/commands/agent.cjs +169 -0
  96. package/dist/cli/commands/agent.d.ts +15 -0
  97. package/dist/cli/commands/agent.js +125 -0
  98. package/dist/cli/commands/gateway.cjs +601 -0
  99. package/dist/cli/commands/gateway.d.ts +12 -0
  100. package/dist/cli/commands/gateway.js +567 -0
  101. package/dist/cli/commands/init.cjs +681 -0
  102. package/dist/cli/commands/init.d.ts +10 -0
  103. package/dist/cli/commands/init.js +634 -0
  104. package/dist/cli/commands/provider.cjs +208 -0
  105. package/dist/cli/commands/provider.d.ts +5 -0
  106. package/dist/cli/commands/provider.js +174 -0
  107. package/dist/cli/commands/skill.cjs +145 -0
  108. package/dist/cli/commands/skill.d.ts +10 -0
  109. package/dist/cli/commands/skill.js +111 -0
  110. package/dist/cli/config/loader.cjs +143 -0
  111. package/dist/cli/config/loader.d.ts +14 -0
  112. package/dist/cli/config/loader.js +109 -0
  113. package/dist/cli/config/schema.cjs +262 -0
  114. package/dist/cli/config/schema.d.ts +268 -0
  115. package/dist/cli/config/schema.js +213 -0
  116. package/dist/cli/core/agentInvoker.cjs +284 -0
  117. package/dist/cli/core/agentInvoker.d.ts +77 -0
  118. package/dist/cli/core/agentInvoker.js +247 -0
  119. package/dist/cli/core/commandHandler.cjs +257 -0
  120. package/dist/cli/core/commandHandler.d.ts +62 -0
  121. package/dist/cli/core/commandHandler.js +223 -0
  122. package/dist/cli/core/database/bunSqliteAdapter.cjs +87 -0
  123. package/dist/cli/core/database/bunSqliteAdapter.d.ts +34 -0
  124. package/dist/cli/core/database/bunSqliteAdapter.js +53 -0
  125. package/dist/cli/core/loggerBridge.cjs +42 -0
  126. package/dist/cli/core/loggerBridge.d.ts +8 -0
  127. package/dist/cli/core/loggerBridge.js +8 -0
  128. package/dist/cli/core/outputManager.cjs +106 -0
  129. package/dist/cli/core/outputManager.d.ts +43 -0
  130. package/dist/cli/core/outputManager.js +72 -0
  131. package/dist/cli/core/sessionManager.cjs +535 -0
  132. package/dist/cli/core/sessionManager.d.ts +111 -0
  133. package/dist/cli/core/sessionManager.js +486 -0
  134. package/dist/cli/core/streamParser.cjs +328 -0
  135. package/dist/cli/core/streamParser.d.ts +42 -0
  136. package/dist/cli/core/streamParser.js +288 -0
  137. package/dist/cli/index.cjs +211 -0
  138. package/dist/cli/index.d.ts +2 -0
  139. package/dist/cli/index.js +205 -0
  140. package/dist/cli/services/skillRepository.cjs +178 -0
  141. package/dist/cli/services/skillRepository.d.ts +35 -0
  142. package/dist/cli/services/skillRepository.js +144 -0
  143. package/dist/cli/services/skillService.cjs +336 -0
  144. package/dist/cli/services/skillService.d.ts +48 -0
  145. package/dist/cli/services/skillService.js +302 -0
  146. package/dist/cli/types/gateway.cjs +18 -0
  147. package/dist/cli/types/gateway.d.ts +18 -0
  148. package/dist/cli/types/gateway.js +0 -0
  149. package/dist/cli/types/init.cjs +18 -0
  150. package/dist/cli/types/init.d.ts +13 -0
  151. package/dist/cli/types/init.js +0 -0
  152. package/dist/cli/types/provider.cjs +18 -0
  153. package/dist/cli/types/provider.d.ts +9 -0
  154. package/dist/cli/types/provider.js +0 -0
  155. package/dist/cli/types/skill.cjs +18 -0
  156. package/dist/cli/types/skill.d.ts +71 -0
  157. package/dist/cli/types/skill.js +0 -0
  158. package/dist/cli/types.cjs +18 -0
  159. package/dist/cli/types.d.ts +175 -0
  160. package/dist/cli/types.js +0 -0
  161. package/dist/cli/ui/AgentOutput.cjs +82 -0
  162. package/dist/cli/ui/AgentOutput.d.ts +8 -0
  163. package/dist/cli/ui/AgentOutput.js +38 -0
  164. package/dist/cli/ui/App.cjs +285 -0
  165. package/dist/cli/ui/App.d.ts +6 -0
  166. package/dist/cli/ui/App.js +241 -0
  167. package/dist/cli/ui/ErrorDisplay.cjs +65 -0
  168. package/dist/cli/ui/ErrorDisplay.d.ts +8 -0
  169. package/dist/cli/ui/ErrorDisplay.js +21 -0
  170. package/dist/cli/ui/LogDisplay.cjs +74 -0
  171. package/dist/cli/ui/LogDisplay.d.ts +13 -0
  172. package/dist/cli/ui/LogDisplay.js +30 -0
  173. package/dist/cli/ui/SessionListDisplay.cjs +135 -0
  174. package/dist/cli/ui/SessionListDisplay.d.ts +9 -0
  175. package/dist/cli/ui/SessionListDisplay.js +91 -0
  176. package/dist/cli/ui/blockHelpers.cjs +80 -0
  177. package/dist/cli/ui/blockHelpers.d.ts +21 -0
  178. package/dist/cli/ui/blockHelpers.js +40 -0
  179. package/dist/cli/ui/components/ToolCallDisplay.cjs +207 -0
  180. package/dist/cli/ui/components/ToolCallDisplay.d.ts +7 -0
  181. package/dist/cli/ui/components/ToolCallDisplay.js +162 -0
  182. package/dist/cli/ui/components/ToolResultDisplay.cjs +86 -0
  183. package/dist/cli/ui/components/ToolResultDisplay.d.ts +8 -0
  184. package/dist/cli/ui/components/ToolResultDisplay.js +42 -0
  185. package/dist/cli/ui/toolDisplayHelpers.cjs +112 -0
  186. package/dist/cli/ui/toolDisplayHelpers.d.ts +3 -0
  187. package/dist/cli/ui/toolDisplayHelpers.js +72 -0
  188. package/dist/gateway/adapters/discord.cjs +298 -0
  189. package/dist/gateway/adapters/discord.d.ts +42 -0
  190. package/dist/gateway/adapters/discord.js +246 -0
  191. package/dist/gateway/auth.cjs +94 -0
  192. package/dist/gateway/auth.d.ts +36 -0
  193. package/dist/gateway/auth.js +60 -0
  194. package/dist/gateway/broadcast.cjs +131 -0
  195. package/dist/gateway/broadcast.d.ts +76 -0
  196. package/dist/gateway/broadcast.js +97 -0
  197. package/dist/gateway/client.cjs +282 -0
  198. package/dist/gateway/client.d.ts +141 -0
  199. package/dist/gateway/client.js +248 -0
  200. package/dist/gateway/daemon.cjs +195 -0
  201. package/dist/gateway/daemon.d.ts +67 -0
  202. package/dist/gateway/daemon.js +161 -0
  203. package/dist/gateway/discovery/index.cjs +72 -0
  204. package/dist/gateway/discovery/index.d.ts +3 -0
  205. package/dist/gateway/discovery/index.js +3 -0
  206. package/dist/gateway/discovery/mdns.cjs +221 -0
  207. package/dist/gateway/discovery/mdns.d.ts +37 -0
  208. package/dist/gateway/discovery/mdns.js +177 -0
  209. package/dist/gateway/discovery/tailscale.cjs +140 -0
  210. package/dist/gateway/discovery/tailscale.d.ts +31 -0
  211. package/dist/gateway/discovery/tailscale.js +106 -0
  212. package/dist/gateway/discovery/types.cjs +18 -0
  213. package/dist/gateway/discovery/types.d.ts +41 -0
  214. package/dist/gateway/discovery/types.js +0 -0
  215. package/dist/gateway/env.cjs +45 -0
  216. package/dist/gateway/env.d.ts +2 -0
  217. package/dist/gateway/env.js +8 -0
  218. package/dist/gateway/hooks/loader.cjs +137 -0
  219. package/dist/gateway/hooks/loader.d.ts +10 -0
  220. package/dist/gateway/hooks/loader.js +103 -0
  221. package/dist/gateway/hooks/registry.cjs +128 -0
  222. package/dist/gateway/hooks/registry.d.ts +13 -0
  223. package/dist/gateway/hooks/registry.js +94 -0
  224. package/dist/gateway/hooks/types.cjs +58 -0
  225. package/dist/gateway/hooks/types.d.ts +50 -0
  226. package/dist/gateway/hooks/types.js +18 -0
  227. package/dist/gateway/http/agents.cjs +280 -0
  228. package/dist/gateway/http/agents.d.ts +2 -0
  229. package/dist/gateway/http/agents.js +246 -0
  230. package/dist/gateway/http/fs.cjs +81 -0
  231. package/dist/gateway/http/fs.d.ts +2 -0
  232. package/dist/gateway/http/fs.js +47 -0
  233. package/dist/gateway/http/providers.cjs +120 -0
  234. package/dist/gateway/http/providers.d.ts +2 -0
  235. package/dist/gateway/http/providers.js +86 -0
  236. package/dist/gateway/http/routines.cjs +196 -0
  237. package/dist/gateway/http/routines.d.ts +20 -0
  238. package/dist/gateway/http/routines.js +159 -0
  239. package/dist/gateway/http/sessions.cjs +241 -0
  240. package/dist/gateway/http/sessions.d.ts +2 -0
  241. package/dist/gateway/http/sessions.js +207 -0
  242. package/dist/gateway/http/types.cjs +18 -0
  243. package/dist/gateway/http/types.d.ts +25 -0
  244. package/dist/gateway/http/types.js +0 -0
  245. package/dist/gateway/http/voice.cjs +167 -0
  246. package/dist/gateway/http/voice.d.ts +2 -0
  247. package/dist/gateway/http/voice.js +133 -0
  248. package/dist/gateway/http/webhooks.cjs +353 -0
  249. package/dist/gateway/http/webhooks.d.ts +22 -0
  250. package/dist/gateway/http/webhooks.js +313 -0
  251. package/dist/gateway/index.cjs +119 -0
  252. package/dist/gateway/index.d.ts +8 -0
  253. package/dist/gateway/index.js +9 -0
  254. package/dist/gateway/node.cjs +218 -0
  255. package/dist/gateway/node.d.ts +112 -0
  256. package/dist/gateway/node.js +184 -0
  257. package/dist/gateway/router.cjs +85 -0
  258. package/dist/gateway/router.d.ts +9 -0
  259. package/dist/gateway/router.js +51 -0
  260. package/dist/gateway/rpcClient.cjs +152 -0
  261. package/dist/gateway/rpcClient.d.ts +24 -0
  262. package/dist/gateway/rpcClient.js +118 -0
  263. package/dist/gateway/server.cjs +1175 -0
  264. package/dist/gateway/server.d.ts +185 -0
  265. package/dist/gateway/server.js +1138 -0
  266. package/dist/gateway/transport/http.cjs +153 -0
  267. package/dist/gateway/transport/http.d.ts +25 -0
  268. package/dist/gateway/transport/http.js +119 -0
  269. package/dist/gateway/transport/index.cjs +40 -0
  270. package/dist/gateway/transport/index.d.ts +3 -0
  271. package/dist/gateway/transport/index.js +3 -0
  272. package/dist/gateway/transport/types.cjs +18 -0
  273. package/dist/gateway/transport/types.d.ts +59 -0
  274. package/dist/gateway/transport/types.js +0 -0
  275. package/dist/gateway/transport/websocket.cjs +132 -0
  276. package/dist/gateway/transport/websocket.d.ts +21 -0
  277. package/dist/gateway/transport/websocket.js +98 -0
  278. package/dist/gateway/types.cjs +18 -0
  279. package/dist/gateway/types.d.ts +215 -0
  280. package/dist/gateway/types.js +0 -0
  281. package/dist/gateway/validation.cjs +225 -0
  282. package/dist/gateway/validation.d.ts +157 -0
  283. package/dist/gateway/validation.js +158 -0
  284. package/dist/index.cjs +95 -0
  285. package/dist/index.d.ts +6 -0
  286. package/dist/index.js +6 -0
  287. package/dist/logger.cjs +270 -0
  288. package/dist/logger.d.ts +54 -0
  289. package/dist/logger.js +215 -0
  290. package/dist/providers/copilot.cjs +148 -0
  291. package/dist/providers/copilot.d.ts +3 -0
  292. package/dist/providers/copilot.js +114 -0
  293. package/dist/providers/credentials.cjs +154 -0
  294. package/dist/providers/credentials.d.ts +26 -0
  295. package/dist/providers/credentials.js +99 -0
  296. package/dist/providers/oauth.cjs +279 -0
  297. package/dist/providers/oauth.d.ts +13 -0
  298. package/dist/providers/oauth.js +245 -0
  299. package/dist/providers/registry.cjs +138 -0
  300. package/dist/providers/registry.d.ts +32 -0
  301. package/dist/providers/registry.js +98 -0
  302. package/dist/tests/additionalMessageMiddleware.test.cjs +45 -0
  303. package/dist/tests/additionalMessageMiddleware.test.d.ts +1 -0
  304. package/dist/tests/additionalMessageMiddleware.test.js +39 -0
  305. package/dist/tests/agent-config-voice.test.cjs +25 -0
  306. package/dist/tests/agent-config-voice.test.d.ts +1 -0
  307. package/dist/tests/agent-config-voice.test.js +19 -0
  308. package/dist/tests/agentInvokerAttachments.test.cjs +67 -0
  309. package/dist/tests/agentInvokerAttachments.test.d.ts +1 -0
  310. package/dist/tests/agentInvokerAttachments.test.js +61 -0
  311. package/dist/tests/attachments-utils.test.cjs +46 -0
  312. package/dist/tests/attachments-utils.test.d.ts +1 -0
  313. package/dist/tests/attachments-utils.test.js +40 -0
  314. package/dist/tests/bunSqliteAdapter.test.cjs +265 -0
  315. package/dist/tests/bunSqliteAdapter.test.d.ts +1 -0
  316. package/dist/tests/bunSqliteAdapter.test.js +259 -0
  317. package/dist/tests/candleRange.test.cjs +48 -0
  318. package/dist/tests/candleRange.test.d.ts +1 -0
  319. package/dist/tests/candleRange.test.js +42 -0
  320. package/dist/tests/cli-config-loader.test.cjs +364 -0
  321. package/dist/tests/cli-config-loader.test.d.ts +1 -0
  322. package/dist/tests/cli-config-loader.test.js +358 -0
  323. package/dist/tests/cli-init.test.cjs +82 -0
  324. package/dist/tests/cli-init.test.d.ts +1 -0
  325. package/dist/tests/cli-init.test.js +76 -0
  326. package/dist/tests/discord-adapter.test.cjs +55 -0
  327. package/dist/tests/discord-adapter.test.d.ts +1 -0
  328. package/dist/tests/discord-adapter.test.js +49 -0
  329. package/dist/tests/gateway.test.cjs +319 -0
  330. package/dist/tests/gateway.test.d.ts +1 -0
  331. package/dist/tests/gateway.test.js +313 -0
  332. package/dist/tests/hooks-matcher.test.cjs +309 -0
  333. package/dist/tests/hooks-matcher.test.d.ts +1 -0
  334. package/dist/tests/hooks-matcher.test.js +303 -0
  335. package/dist/tests/hooks-merger.test.cjs +528 -0
  336. package/dist/tests/hooks-merger.test.d.ts +1 -0
  337. package/dist/tests/hooks-merger.test.js +522 -0
  338. package/dist/tests/integration/agent-invocation.integration.test.cjs +264 -0
  339. package/dist/tests/integration/agent-invocation.integration.test.d.ts +1 -0
  340. package/dist/tests/integration/agent-invocation.integration.test.js +258 -0
  341. package/dist/tests/integration/finnhub-candles.integration.test.cjs +98 -0
  342. package/dist/tests/integration/finnhub-candles.integration.test.d.ts +1 -0
  343. package/dist/tests/integration/finnhub-candles.integration.test.js +92 -0
  344. package/dist/tests/logger.test.cjs +353 -0
  345. package/dist/tests/logger.test.d.ts +1 -0
  346. package/dist/tests/logger.test.js +347 -0
  347. package/dist/tests/mediaCompatibilityMiddleware.test.cjs +106 -0
  348. package/dist/tests/mediaCompatibilityMiddleware.test.d.ts +1 -0
  349. package/dist/tests/mediaCompatibilityMiddleware.test.js +100 -0
  350. package/dist/tests/routines-api.test.cjs +107 -0
  351. package/dist/tests/routines-api.test.d.ts +1 -0
  352. package/dist/tests/routines-api.test.js +101 -0
  353. package/dist/tests/sessionMessageAttachments.test.cjs +108 -0
  354. package/dist/tests/sessionMessageAttachments.test.d.ts +1 -0
  355. package/dist/tests/sessionMessageAttachments.test.js +102 -0
  356. package/dist/tests/sessionMessageRole.test.cjs +44 -0
  357. package/dist/tests/sessionMessageRole.test.d.ts +1 -0
  358. package/dist/tests/sessionMessageRole.test.js +38 -0
  359. package/dist/tests/sessionStateMessages.test.cjs +72 -0
  360. package/dist/tests/sessionStateMessages.test.d.ts +1 -0
  361. package/dist/tests/sessionStateMessages.test.js +66 -0
  362. package/dist/tests/sessions-api.test.cjs +68 -0
  363. package/dist/tests/sessions-api.test.d.ts +1 -0
  364. package/dist/tests/sessions-api.test.js +62 -0
  365. package/dist/tests/technicalIndicators.test.cjs +82 -0
  366. package/dist/tests/technicalIndicators.test.d.ts +1 -0
  367. package/dist/tests/technicalIndicators.test.js +76 -0
  368. package/dist/tests/toolDisplayHelpers.test.cjs +43 -0
  369. package/dist/tests/toolDisplayHelpers.test.d.ts +1 -0
  370. package/dist/tests/toolDisplayHelpers.test.js +37 -0
  371. package/dist/tests/voice-config.test.cjs +35 -0
  372. package/dist/tests/voice-config.test.d.ts +1 -0
  373. package/dist/tests/voice-config.test.js +29 -0
  374. package/dist/tests/yahooCandles.test.cjs +111 -0
  375. package/dist/tests/yahooCandles.test.d.ts +1 -0
  376. package/dist/tests/yahooCandles.test.js +105 -0
  377. package/dist/tools/finance/candleRange.cjs +71 -0
  378. package/dist/tools/finance/candleRange.d.ts +21 -0
  379. package/dist/tools/finance/candleRange.js +28 -0
  380. package/dist/tools/finance/optionsAnalytics.cjs +222 -0
  381. package/dist/tools/finance/optionsAnalytics.d.ts +44 -0
  382. package/dist/tools/finance/optionsAnalytics.js +188 -0
  383. package/dist/tools/finance/optionsAnalytics.test.cjs +128 -0
  384. package/dist/tools/finance/optionsAnalytics.test.d.ts +1 -0
  385. package/dist/tools/finance/optionsAnalytics.test.js +122 -0
  386. package/dist/tools/finance/technicalIndicators.cjs +111 -0
  387. package/dist/tools/finance/technicalIndicators.d.ts +15 -0
  388. package/dist/tools/finance/technicalIndicators.js +68 -0
  389. package/dist/tools/finance/yahooCandles.cjs +125 -0
  390. package/dist/tools/finance/yahooCandles.d.ts +41 -0
  391. package/dist/tools/finance/yahooCandles.js +85 -0
  392. package/dist/tools/mcp-finance.cjs +649 -0
  393. package/dist/tools/mcp-finance.d.ts +1 -0
  394. package/dist/tools/mcp-finance.js +631 -0
  395. package/dist/types/agents.cjs +18 -0
  396. package/dist/types/agents.d.ts +11 -0
  397. package/dist/types/agents.js +0 -0
  398. package/dist/types/hooks.cjs +18 -0
  399. package/dist/types/hooks.d.ts +82 -0
  400. package/dist/types/hooks.js +0 -0
  401. package/dist/types/mcp.cjs +86 -0
  402. package/dist/types/mcp.d.ts +107 -0
  403. package/dist/types/mcp.js +40 -0
  404. package/dist/types/voice.cjs +103 -0
  405. package/dist/types/voice.d.ts +117 -0
  406. package/dist/types/voice.js +51 -0
  407. package/dist/utils/attachments.cjs +46 -0
  408. package/dist/utils/attachments.d.ts +7 -0
  409. package/dist/utils/attachments.js +12 -0
  410. package/dist/voice/config.cjs +52 -0
  411. package/dist/voice/config.d.ts +8 -0
  412. package/dist/voice/config.js +18 -0
  413. package/dist/webui/assets/index-BA0HaStz.css +1 -0
  414. package/dist/webui/assets/index-NHgTZsWN.js +112 -0
  415. package/dist/webui/assets/wingman_icon-DOy91UEF.webp +0 -0
  416. package/dist/webui/assets/wingman_logo-Cogyt3qm.webp +0 -0
  417. package/dist/webui/index.html +19 -0
  418. package/package.json +130 -0
@@ -0,0 +1,601 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ executeGatewayCommand: ()=>executeGatewayCommand
28
+ });
29
+ const index_cjs_namespaceObject = require("../../gateway/index.cjs");
30
+ const external_fs_namespaceObject = require("fs");
31
+ const external_logger_cjs_namespaceObject = require("../../logger.cjs");
32
+ const loader_cjs_namespaceObject = require("../config/loader.cjs");
33
+ const env_cjs_namespaceObject = require("../../gateway/env.cjs");
34
+ const logger = (0, external_logger_cjs_namespaceObject.createLogger)();
35
+ const logFile = (0, external_logger_cjs_namespaceObject.getLogFilePath)();
36
+ function reportGatewayError(context, error) {
37
+ const errorMsg = error instanceof Error ? error.message : String(error);
38
+ logger.error(context, errorMsg);
39
+ console.error(`✗ ${context}: ${errorMsg}`);
40
+ console.error(`Logs: ${logFile}`);
41
+ }
42
+ async function executeGatewayCommand(args) {
43
+ const { subcommand, options } = args;
44
+ switch(subcommand){
45
+ case "start":
46
+ await handleStart(options);
47
+ break;
48
+ case "stop":
49
+ await handleStop();
50
+ break;
51
+ case "restart":
52
+ await handleRestart();
53
+ break;
54
+ case "status":
55
+ await handleStatus();
56
+ break;
57
+ case "run":
58
+ await handleRun(options);
59
+ break;
60
+ case "join":
61
+ await handleJoin(args.args, options);
62
+ break;
63
+ case "discover":
64
+ await handleDiscover(options);
65
+ break;
66
+ case "token":
67
+ await handleToken(options);
68
+ break;
69
+ case "health":
70
+ await handleHealth(options);
71
+ break;
72
+ case "tunnel":
73
+ await handleTunnel(args.args, options);
74
+ break;
75
+ default:
76
+ showGatewayHelp();
77
+ process.exit(1);
78
+ }
79
+ }
80
+ async function handleStart(options) {
81
+ const configLoader = new loader_cjs_namespaceObject.WingmanConfigLoader();
82
+ const wingmanConfig = configLoader.loadConfig();
83
+ const gatewayDefaults = wingmanConfig.gateway;
84
+ const envToken = (0, env_cjs_namespaceObject.getGatewayTokenFromEnv)();
85
+ const authFlag = Boolean(options.auth);
86
+ const authMode = options["auth-mode"] || options.authMode || (authFlag ? "token" : void 0);
87
+ const resolvedToken = "token" === authMode ? options.token || envToken : void 0;
88
+ const auth = authMode ? {
89
+ mode: authMode,
90
+ token: resolvedToken,
91
+ password: options.password
92
+ } : gatewayDefaults.auth;
93
+ const config = {
94
+ port: options.port || gatewayDefaults.port || 18789,
95
+ host: options.host || gatewayDefaults.host || "127.0.0.1",
96
+ requireAuth: auth?.mode !== "none",
97
+ authToken: auth?.token,
98
+ auth,
99
+ maxNodes: options.maxNodes || 1000,
100
+ pingInterval: options.pingInterval || 30000,
101
+ pingTimeout: options.pingTimeout || 60000,
102
+ logLevel: options.logLevel || "info"
103
+ };
104
+ if (options.discovery) config.discovery = {
105
+ enabled: true,
106
+ method: options.discovery,
107
+ name: options.name || `Gateway-${Date.now()}`
108
+ };
109
+ const daemon = new index_cjs_namespaceObject.GatewayDaemon();
110
+ try {
111
+ await daemon.start(config);
112
+ console.log("✓ Gateway started successfully");
113
+ console.log(` URL: ws://${config.host}:${config.port}/ws`);
114
+ console.log(` Health: http://${config.host}:${config.port}/health`);
115
+ const controlUi = wingmanConfig.gateway?.controlUi;
116
+ if (controlUi?.enabled) {
117
+ const uiPort = controlUi.port || 18790;
118
+ console.log(` Control UI: http://${config.host}:${uiPort}/`);
119
+ }
120
+ console.log(` Logs: ${daemon.getLogFile()}`);
121
+ if (config.auth?.mode === "token" && !config.auth.token) {
122
+ console.log("\n⚠ Token auth is enabled but no token was provided.");
123
+ console.log(' Run "wingman gateway token --generate" to create a token.');
124
+ }
125
+ } catch (error) {
126
+ reportGatewayError("Failed to start gateway", error);
127
+ process.exit(1);
128
+ }
129
+ }
130
+ async function handleStop() {
131
+ const daemon = new index_cjs_namespaceObject.GatewayDaemon();
132
+ try {
133
+ await daemon.stop();
134
+ console.log("✓ Gateway stopped successfully");
135
+ } catch (error) {
136
+ reportGatewayError("Failed to stop gateway", error);
137
+ process.exit(1);
138
+ }
139
+ }
140
+ async function handleRestart() {
141
+ const daemon = new index_cjs_namespaceObject.GatewayDaemon();
142
+ try {
143
+ await daemon.restart();
144
+ console.log("✓ Gateway restarted successfully");
145
+ } catch (error) {
146
+ reportGatewayError("Failed to restart gateway", error);
147
+ process.exit(1);
148
+ }
149
+ }
150
+ async function handleStatus() {
151
+ const daemon = new index_cjs_namespaceObject.GatewayDaemon();
152
+ const status = daemon.getStatus();
153
+ if (!status.running) return void console.log("Gateway Status: Not Running");
154
+ console.log("Gateway Status: Running");
155
+ console.log(` PID: ${status.pid}`);
156
+ if (status.uptime) {
157
+ const uptimeSeconds = Math.floor(status.uptime / 1000);
158
+ const hours = Math.floor(uptimeSeconds / 3600);
159
+ const minutes = Math.floor(uptimeSeconds % 3600 / 60);
160
+ const seconds = uptimeSeconds % 60;
161
+ console.log(` Uptime: ${hours}h ${minutes}m ${seconds}s`);
162
+ }
163
+ if (status.config) {
164
+ console.log(` Host: ${status.config.host}`);
165
+ console.log(` Port: ${status.config.port}`);
166
+ const authMode = status.config.auth?.mode || "none";
167
+ console.log(` Auth Mode: ${authMode}`);
168
+ console.log(` Max Nodes: ${status.config.maxNodes}`);
169
+ }
170
+ console.log(` Log File: ${daemon.getLogFile()}`);
171
+ }
172
+ async function handleRun(options) {
173
+ let config;
174
+ if (options.daemon && process.env.WINGMAN_GATEWAY_CONFIG) {
175
+ const configStr = (0, external_fs_namespaceObject.readFileSync)(process.env.WINGMAN_GATEWAY_CONFIG, "utf-8");
176
+ config = JSON.parse(configStr);
177
+ } else {
178
+ const configLoader = new loader_cjs_namespaceObject.WingmanConfigLoader();
179
+ const wingmanConfig = configLoader.loadConfig();
180
+ const gatewayDefaults = wingmanConfig.gateway;
181
+ const envToken = (0, env_cjs_namespaceObject.getGatewayTokenFromEnv)();
182
+ const authFlag = Boolean(options.auth);
183
+ const authMode = options["auth-mode"] || options.authMode || (authFlag ? "token" : void 0);
184
+ const resolvedToken = "token" === authMode ? options.token || envToken : void 0;
185
+ const auth = authMode ? {
186
+ mode: authMode,
187
+ token: resolvedToken,
188
+ password: options.password
189
+ } : gatewayDefaults.auth;
190
+ config = {
191
+ port: options.port || gatewayDefaults.port || 18789,
192
+ host: options.host || gatewayDefaults.host || "127.0.0.1",
193
+ requireAuth: auth?.mode !== "none",
194
+ authToken: auth?.token,
195
+ auth,
196
+ maxNodes: options.maxNodes || 1000,
197
+ pingInterval: options.pingInterval || 30000,
198
+ pingTimeout: options.pingTimeout || 60000,
199
+ logLevel: options.logLevel || "info"
200
+ };
201
+ }
202
+ const server = new index_cjs_namespaceObject.GatewayServer(config);
203
+ process.on("SIGTERM", async ()=>{
204
+ console.log("Received SIGTERM, shutting down gracefully...");
205
+ await server.stop();
206
+ process.exit(0);
207
+ });
208
+ process.on("SIGINT", async ()=>{
209
+ console.log("Received SIGINT, shutting down gracefully...");
210
+ await server.stop();
211
+ process.exit(0);
212
+ });
213
+ try {
214
+ await server.start();
215
+ console.log("✓ Gateway running");
216
+ console.log(` URL: ws://${config.host}:${config.port}/ws`);
217
+ console.log(` Health: http://${config.host}:${config.port}/health`);
218
+ console.log(` Logs: ${(0, external_logger_cjs_namespaceObject.getLogFilePath)()}`);
219
+ if (config.auth?.mode === "token" && config.auth.token) console.log(` Auth Token: ${config.auth.token}`);
220
+ await new Promise(()=>{});
221
+ } catch (error) {
222
+ reportGatewayError("Failed to start gateway", error);
223
+ process.exit(1);
224
+ }
225
+ }
226
+ async function handleJoin(args, options) {
227
+ const url = args[0] || "ws://localhost:18789/ws";
228
+ const name = options.name || `node-${Date.now()}`;
229
+ const token = options.token || (0, env_cjs_namespaceObject.getGatewayTokenFromEnv)();
230
+ const group = options.group;
231
+ const transport = options.transport || "auto";
232
+ console.log(`Connecting to gateway: ${url}`);
233
+ console.log(`Node name: ${name}`);
234
+ if ("auto" !== transport) console.log(`Transport: ${transport}`);
235
+ const client = new index_cjs_namespaceObject.GatewayClient(url, name, {
236
+ token,
237
+ transport,
238
+ events: {
239
+ connected: ()=>{
240
+ console.log("✓ Connected to gateway");
241
+ },
242
+ registered: (nodeId, nodeName)=>{
243
+ console.log(`✓ Registered as ${nodeName} (${nodeId})`);
244
+ if (group) client.joinGroup(group);
245
+ },
246
+ joinedGroup: (groupId, groupName)=>{
247
+ console.log(`✓ Joined group: ${groupName} (${groupId})`);
248
+ console.log("\nReady to receive messages. Press Ctrl+C to exit.");
249
+ },
250
+ broadcast: (message, fromNodeId, groupId)=>{
251
+ console.log(`\n[Broadcast from ${fromNodeId}]:`);
252
+ console.log(JSON.stringify(message, null, 2));
253
+ },
254
+ direct: (message, fromNodeId)=>{
255
+ console.log(`\n[Direct from ${fromNodeId}]:`);
256
+ console.log(JSON.stringify(message, null, 2));
257
+ },
258
+ error: (error)=>{
259
+ logger.error("Gateway error event", error.message);
260
+ console.error(`\n✗ Error: ${error.message}`);
261
+ console.error(`Logs: ${logFile}`);
262
+ },
263
+ disconnected: ()=>{
264
+ console.log("\n✗ Disconnected from gateway");
265
+ }
266
+ }
267
+ });
268
+ try {
269
+ await client.connect();
270
+ process.on("SIGINT", ()=>{
271
+ console.log("\nDisconnecting...");
272
+ client.disconnect();
273
+ process.exit(0);
274
+ });
275
+ await new Promise(()=>{});
276
+ } catch (error) {
277
+ reportGatewayError("Failed to connect", error);
278
+ process.exit(1);
279
+ }
280
+ }
281
+ async function handleDiscover(options) {
282
+ const timeout = options.timeout || 5000;
283
+ const verbose = options.verbose;
284
+ const tailscale = options.tailscale;
285
+ if (tailscale) {
286
+ console.log("Discovering gateways on Tailscale network...");
287
+ const { TailscaleDiscoveryService } = await import("../../gateway/discovery/tailscale.cjs");
288
+ const ts = new TailscaleDiscoveryService();
289
+ try {
290
+ const gateways = await ts.discover(timeout);
291
+ if (0 === gateways.length) {
292
+ console.log("\nNo gateways found on Tailscale network");
293
+ console.log("\nTo start a Tailscale-discoverable gateway:");
294
+ console.log(' wingman gateway start --discovery tailscale --name "My Gateway"');
295
+ console.log('\nNote: Ensure your gateway has the "wingman-gateway" tag in Tailscale');
296
+ return;
297
+ }
298
+ console.log(`\n✓ Found ${gateways.length} gateway(s):\n`);
299
+ for (const gw of gateways){
300
+ console.log(` ${gw.name}`);
301
+ console.log(` URL: ${gw.url}`);
302
+ console.log(` Auth: ${gw.requireAuth ? "Required" : "Optional"}`);
303
+ if (verbose) {
304
+ console.log(` Host: ${gw.host}`);
305
+ console.log(` Port: ${gw.port}`);
306
+ console.log(` Transport: ${gw.transport}`);
307
+ console.log(` Capabilities: ${gw.capabilities.join(", ")}`);
308
+ console.log(` Version: ${gw.version}`);
309
+ }
310
+ console.log();
311
+ }
312
+ console.log("To connect to a gateway:");
313
+ console.log(' wingman gateway join <url> --name "my-node"');
314
+ } catch (error) {
315
+ reportGatewayError("Discovery failed", error);
316
+ process.exit(1);
317
+ }
318
+ return;
319
+ }
320
+ console.log(`Discovering gateways on local network (${timeout}ms timeout)...`);
321
+ const { MDNSDiscoveryService } = await import("../../gateway/discovery/mdns.cjs");
322
+ const mdns = new MDNSDiscoveryService();
323
+ try {
324
+ const gateways = await mdns.discover(timeout);
325
+ if (0 === gateways.length) {
326
+ console.log("\nNo gateways found on local network");
327
+ console.log("\nTo start a discoverable gateway:");
328
+ console.log(' wingman gateway start --discovery mdns --name "My Gateway"');
329
+ return;
330
+ }
331
+ console.log(`\n✓ Found ${gateways.length} gateway(s):\n`);
332
+ for (const gw of gateways){
333
+ console.log(` ${gw.name}`);
334
+ console.log(` URL: ${gw.url}`);
335
+ console.log(` Auth: ${gw.requireAuth ? "Required" : "Optional"}`);
336
+ if (verbose) {
337
+ console.log(` Host: ${gw.host}`);
338
+ console.log(` Port: ${gw.port}`);
339
+ console.log(` Transport: ${gw.transport}`);
340
+ console.log(` Capabilities: ${gw.capabilities.join(", ")}`);
341
+ console.log(` Version: ${gw.version}`);
342
+ }
343
+ console.log();
344
+ }
345
+ console.log("To connect to a gateway:");
346
+ console.log(' wingman gateway join <url> --name "my-node"');
347
+ } catch (error) {
348
+ reportGatewayError("Discovery failed", error);
349
+ process.exit(1);
350
+ }
351
+ }
352
+ async function handleToken(options) {
353
+ if (options.generate) {
354
+ const { GatewayAuth } = await import("../../gateway/auth.cjs");
355
+ const auth = new GatewayAuth();
356
+ const token = auth.generateToken();
357
+ console.log("Generated token:");
358
+ console.log(token);
359
+ console.log('\nUse this token with: wingman gateway start --auth --token="<token>"');
360
+ } else console.log("Usage: wingman gateway token --generate");
361
+ }
362
+ async function handleHealth(options) {
363
+ const host = options.host || "localhost";
364
+ const port = options.port || 18789;
365
+ const url = `http://${host}:${port}/health`;
366
+ try {
367
+ const response = await fetch(url);
368
+ if (!response.ok) throw new Error(`HTTP ${response.status}: ${response.statusText}`);
369
+ const health = await response.json();
370
+ console.log("Gateway Health:");
371
+ console.log(JSON.stringify(health, null, 2));
372
+ } catch (error) {
373
+ reportGatewayError("Failed to check health", error);
374
+ process.exit(1);
375
+ }
376
+ }
377
+ async function handleTunnel(args, options) {
378
+ const sshHost = args[0];
379
+ if (!sshHost) {
380
+ logger.error("SSH host required");
381
+ console.error("✗ SSH host required");
382
+ console.error(`Logs: ${logFile}`);
383
+ console.log("\nUsage:");
384
+ console.log(" wingman gateway tunnel user@host [options]");
385
+ console.log("\nOptions:");
386
+ console.log(" --port <number> Gateway port on remote host (default: 3000)");
387
+ console.log(" --local-port <number> Local port for tunnel (default: random)");
388
+ console.log(" --name <string> Node name after connecting");
389
+ console.log(" --group <string> Auto-join broadcast group");
390
+ process.exit(1);
391
+ }
392
+ const remotePort = options.port || 18789;
393
+ const localPort = options.localPort || 0;
394
+ const name = options.name || `tunnel-node-${Date.now()}`;
395
+ const group = options.group;
396
+ const actualLocalPort = localPort || await findAvailablePort();
397
+ console.log("Creating SSH tunnel to gateway...");
398
+ console.log(` SSH Host: ${sshHost}`);
399
+ console.log(` Remote Port: ${remotePort}`);
400
+ console.log(` Local Port: ${actualLocalPort}`);
401
+ console.log();
402
+ const { spawn } = await import("child_process");
403
+ const sshArgs = [
404
+ "-L",
405
+ `${actualLocalPort}:localhost:${remotePort}`,
406
+ "-N",
407
+ "-o",
408
+ "ExitOnForwardFailure=yes",
409
+ sshHost
410
+ ];
411
+ const sshProcess = spawn("ssh", sshArgs, {
412
+ stdio: "inherit"
413
+ });
414
+ await new Promise((resolve)=>setTimeout(resolve, 2000));
415
+ if (null !== sshProcess.exitCode) {
416
+ logger.error("Failed to create SSH tunnel");
417
+ console.error("✗ Failed to create SSH tunnel");
418
+ console.error(`Logs: ${logFile}`);
419
+ process.exit(1);
420
+ }
421
+ console.log("✓ SSH tunnel established");
422
+ console.log();
423
+ console.log("Connecting to gateway through tunnel...");
424
+ const { GatewayClient } = await import("../../gateway/client.cjs");
425
+ const client = new GatewayClient(`ws://localhost:${actualLocalPort}/ws`, name, {
426
+ events: {
427
+ connected: ()=>{
428
+ console.log("✓ Connected to gateway");
429
+ },
430
+ registered: (nodeId, nodeName)=>{
431
+ console.log(`✓ Registered as ${nodeName} (${nodeId})`);
432
+ if (group) client.joinGroup(group);
433
+ },
434
+ joinedGroup: (groupId, groupName)=>{
435
+ console.log(`✓ Joined group: ${groupName} (${groupId})`);
436
+ console.log("\nReady to receive messages. Press Ctrl+C to exit.");
437
+ },
438
+ broadcast: (message, fromNodeId, groupId)=>{
439
+ console.log(`\n[Broadcast from ${fromNodeId}]:`);
440
+ console.log(JSON.stringify(message, null, 2));
441
+ },
442
+ direct: (message, fromNodeId)=>{
443
+ console.log(`\n[Direct from ${fromNodeId}]:`);
444
+ console.log(JSON.stringify(message, null, 2));
445
+ },
446
+ error: (error)=>{
447
+ logger.error("Gateway error event", error.message);
448
+ console.error(`\n✗ Error: ${error.message}`);
449
+ console.error(`Logs: ${logFile}`);
450
+ },
451
+ disconnected: ()=>{
452
+ console.log("\n✗ Disconnected from gateway");
453
+ }
454
+ }
455
+ });
456
+ try {
457
+ await client.connect();
458
+ process.on("SIGINT", ()=>{
459
+ console.log("\nClosing tunnel and disconnecting...");
460
+ client.disconnect();
461
+ sshProcess.kill();
462
+ process.exit(0);
463
+ });
464
+ sshProcess.on("exit", (code)=>{
465
+ console.log(`\n✗ SSH tunnel closed (exit code: ${code})`);
466
+ client.disconnect();
467
+ process.exit(code || 0);
468
+ });
469
+ await new Promise(()=>{});
470
+ } catch (error) {
471
+ reportGatewayError("Failed to connect", error);
472
+ sshProcess.kill();
473
+ process.exit(1);
474
+ }
475
+ }
476
+ async function findAvailablePort() {
477
+ const net = await import("net");
478
+ return new Promise((resolve, reject)=>{
479
+ const server = net.createServer();
480
+ server.listen(0, ()=>{
481
+ const address = server.address();
482
+ const port = address.port;
483
+ server.close(()=>{
484
+ resolve(port);
485
+ });
486
+ });
487
+ server.on("error", reject);
488
+ });
489
+ }
490
+ function showGatewayHelp() {
491
+ console.log(`
492
+ Wingman Gateway - AI Agent Swarming Gateway
493
+
494
+ Usage:
495
+ wingman gateway <subcommand> [options]
496
+
497
+ Subcommands:
498
+ start Start the gateway as a daemon
499
+ stop Stop the gateway daemon
500
+ restart Restart the gateway daemon
501
+ status Show gateway status
502
+ run Run the gateway in foreground
503
+ join <url> Join a gateway as a node
504
+ discover Discover gateways on local network
505
+ tunnel <ssh-host> Create SSH tunnel and connect to gateway
506
+ token Generate authentication token
507
+ health Check gateway health
508
+
509
+ Start Options:
510
+ --port <number> Port to listen on (default: 18789)
511
+ --host <string> Host to bind to (default: 127.0.0.1)
512
+ --auth Enable token authentication (legacy shortcut)
513
+ --auth-mode <mode> token | password | none
514
+ --token <string> Authentication token (token mode)
515
+ --password <string> Authentication password (password mode)
516
+ --max-nodes <number> Maximum number of nodes (default: 1000)
517
+ --log-level <level> Log level (debug|info|warn|error|silent)
518
+ --discovery <method> Discovery method: mdns, tailscale
519
+ --name <string> Gateway name for discovery
520
+
521
+ Join Options:
522
+ --name <string> Node name
523
+ --token <string> Authentication token
524
+ --group <string> Auto-join broadcast group
525
+ --transport <type> Transport type: websocket, http, auto (default: auto)
526
+
527
+ Discover Options:
528
+ --timeout <ms> Discovery timeout (default: 5000)
529
+ --verbose Show detailed gateway info
530
+ --tailscale Discover on Tailscale network instead of LAN
531
+
532
+ Tunnel Options:
533
+ --port <number> Gateway port on remote host (default: 18789)
534
+ --local-port <number> Local port for tunnel (default: random)
535
+ --name <string> Node name after connecting
536
+ --group <string> Auto-join broadcast group
537
+
538
+ Token Options:
539
+ --generate Generate a new token
540
+
541
+ Health Options:
542
+ --host <string> Gateway host (default: localhost)
543
+ --port <number> Gateway port (default: 18789)
544
+
545
+ Examples:
546
+ # Start gateway locally
547
+ wingman gateway start
548
+
549
+ # Start with mDNS discovery (LAN)
550
+ wingman gateway start --discovery mdns --name "Home Gateway"
551
+
552
+ # Start with Tailscale discovery
553
+ wingman gateway start --discovery tailscale --name "Work Gateway"
554
+
555
+ # Start with authentication
556
+ wingman gateway token --generate
557
+ wingman gateway start --auth --token="<token>"
558
+
559
+ # Start on custom port
560
+ wingman gateway start --port 8080
561
+
562
+ # Discover gateways on local network
563
+ wingman gateway discover
564
+ wingman gateway discover --verbose
565
+
566
+ # Discover gateways on Tailscale
567
+ wingman gateway discover --tailscale
568
+ wingman gateway discover --tailscale --verbose
569
+
570
+ # Join a gateway
571
+ wingman gateway join ws://localhost:18789/ws --name="agent-1" --group="swarm"
572
+
573
+ # Join via HTTP bridge (firewall traversal)
574
+ wingman gateway join http://localhost:18789 --transport http --name="agent-1"
575
+
576
+ # Auto-select transport
577
+ wingman gateway join http://localhost:18789 --transport auto --name="agent-1"
578
+
579
+ # Connect via SSH tunnel
580
+ wingman gateway tunnel user@remote-host --name="tunnel-node"
581
+ wingman gateway tunnel user@remote-host --port 18789 --group="swarm"
582
+
583
+ # Check status
584
+ wingman gateway status
585
+
586
+ # Check health
587
+ wingman gateway health
588
+
589
+ Deployment:
590
+ Local: Run on localhost or LAN
591
+ Tailscale: Accessible over Tailscale network
592
+ Cloudflare: Deploy to Cloudflare Workers (see cloudflare/README.md)
593
+ `);
594
+ }
595
+ exports.executeGatewayCommand = __webpack_exports__.executeGatewayCommand;
596
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
597
+ "executeGatewayCommand"
598
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
599
+ Object.defineProperty(exports, '__esModule', {
600
+ value: true
601
+ });
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Gateway command arguments
3
+ */
4
+ export interface GatewayCommandArgs {
5
+ subcommand: string;
6
+ args: string[];
7
+ options: Record<string, unknown>;
8
+ }
9
+ /**
10
+ * Execute gateway command
11
+ */
12
+ export declare function executeGatewayCommand(args: GatewayCommandArgs): Promise<void>;