@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,302 @@
1
+ import { access, mkdir, readFile, readdir, rm, writeFile } from "node:fs/promises";
2
+ import { dirname, join } from "node:path";
3
+ import { createInterface } from "node:readline/promises";
4
+ import { getLogFilePath } from "../../logger.js";
5
+ function _define_property(obj, key, value) {
6
+ if (key in obj) Object.defineProperty(obj, key, {
7
+ value: value,
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true
11
+ });
12
+ else obj[key] = value;
13
+ return obj;
14
+ }
15
+ class SkillService {
16
+ getSkillsPath() {
17
+ return join(this.workspace, this.skillsDirectory);
18
+ }
19
+ async browseSkills() {
20
+ try {
21
+ this.logger.info("Fetching available skills from repository...");
22
+ const skills = await this.repository.listAvailableSkills();
23
+ if ("interactive" === this.outputManager.getMode()) {
24
+ console.log("\nAvailable Skills:");
25
+ console.log("=================\n");
26
+ if (0 === skills.length) console.log("No skills found.");
27
+ else {
28
+ for (const skill of skills){
29
+ console.log(` ${skill.name}`);
30
+ console.log(` ${skill.description}`);
31
+ console.log();
32
+ }
33
+ console.log(`\nTo install a skill, run: wingman skill install <skill-name>`);
34
+ }
35
+ } else this.outputManager.emitEvent({
36
+ type: "skill-browse",
37
+ skills: skills.map((s)=>({
38
+ name: s.name,
39
+ description: s.description
40
+ })),
41
+ timestamp: new Date().toISOString()
42
+ });
43
+ } catch (error) {
44
+ const errorMsg = error instanceof Error ? error.message : String(error);
45
+ const logFile = getLogFilePath();
46
+ this.logger.error(`Failed to browse skills: ${errorMsg}`);
47
+ if ("interactive" === this.outputManager.getMode()) {
48
+ console.error(`\nError: ${errorMsg}`);
49
+ console.error(`Logs: ${logFile}`);
50
+ } else this.outputManager.emitEvent({
51
+ type: "agent-error",
52
+ error: errorMsg,
53
+ logFile,
54
+ timestamp: new Date().toISOString()
55
+ });
56
+ throw error;
57
+ }
58
+ }
59
+ async installSkill(skillName) {
60
+ try {
61
+ const nameRegex = /^[a-z0-9]+(-[a-z0-9]+)*$/;
62
+ if (!nameRegex.test(skillName)) throw new Error(`Invalid skill name '${skillName}': must be lowercase alphanumeric with hyphens only`);
63
+ this.logger.info(`Installing skill: ${skillName}`);
64
+ const skillPath = join(this.getSkillsPath(), skillName);
65
+ const exists = await this.skillExists(skillName);
66
+ if (exists) if ("interactive" === this.outputManager.getMode()) {
67
+ const shouldOverwrite = await this.promptForOverwrite(skillName);
68
+ if (!shouldOverwrite) return void console.log("\nInstallation cancelled.");
69
+ this.logger.info("Removing existing skill...");
70
+ await rm(skillPath, {
71
+ recursive: true,
72
+ force: true
73
+ });
74
+ } else throw new Error(`Skill '${skillName}' is already installed.`);
75
+ this.logger.info("Fetching skill metadata...");
76
+ const metadata = await this.repository.getSkillMetadata(skillName);
77
+ if ("interactive" === this.outputManager.getMode()) {
78
+ console.log(`\nInstalling skill: ${metadata.name}`);
79
+ console.log(`Description: ${metadata.description}`);
80
+ } else this.outputManager.emitEvent({
81
+ type: "skill-install-progress",
82
+ skill: skillName,
83
+ status: "downloading",
84
+ timestamp: new Date().toISOString()
85
+ });
86
+ this.logger.info("Downloading skill files...");
87
+ const files = await this.repository.downloadSkill(skillName);
88
+ await mkdir(this.getSkillsPath(), {
89
+ recursive: true
90
+ });
91
+ await mkdir(skillPath, {
92
+ recursive: true
93
+ });
94
+ this.logger.info(`Writing ${files.size} files...`);
95
+ for (const [relativePath, content] of files){
96
+ const filePath = join(skillPath, relativePath);
97
+ const fileDir = dirname(filePath);
98
+ await mkdir(fileDir, {
99
+ recursive: true
100
+ });
101
+ await writeFile(filePath, content);
102
+ }
103
+ await this.validateSkillMd(skillPath);
104
+ if ("interactive" === this.outputManager.getMode()) console.log(`\n✓ Successfully installed skill ${skillName} to ${skillPath}`);
105
+ else this.outputManager.emitEvent({
106
+ type: "skill-install-complete",
107
+ skill: skillName,
108
+ path: skillPath,
109
+ timestamp: new Date().toISOString()
110
+ });
111
+ } catch (error) {
112
+ const errorMsg = error instanceof Error ? error.message : String(error);
113
+ const logFile = getLogFilePath();
114
+ this.logger.error(`Failed to install skill: ${errorMsg}`);
115
+ if ("interactive" === this.outputManager.getMode()) {
116
+ console.error(`\nError: ${errorMsg}`);
117
+ console.error(`Logs: ${logFile}`);
118
+ } else this.outputManager.emitEvent({
119
+ type: "agent-error",
120
+ error: errorMsg,
121
+ logFile,
122
+ timestamp: new Date().toISOString()
123
+ });
124
+ throw error;
125
+ }
126
+ }
127
+ async listInstalledSkills() {
128
+ try {
129
+ const skillsPath = this.getSkillsPath();
130
+ try {
131
+ await access(skillsPath);
132
+ } catch {
133
+ if ("interactive" === this.outputManager.getMode()) console.log("\nNo skills installed.");
134
+ else this.outputManager.emitEvent({
135
+ type: "skill-list",
136
+ skills: [],
137
+ timestamp: new Date().toISOString()
138
+ });
139
+ return;
140
+ }
141
+ const entries = await readdir(skillsPath, {
142
+ withFileTypes: true
143
+ });
144
+ const skillDirs = entries.filter((entry)=>entry.isDirectory());
145
+ if (0 === skillDirs.length) {
146
+ if ("interactive" === this.outputManager.getMode()) console.log("\nNo skills installed.");
147
+ else this.outputManager.emitEvent({
148
+ type: "skill-list",
149
+ skills: [],
150
+ timestamp: new Date().toISOString()
151
+ });
152
+ return;
153
+ }
154
+ const skills = [];
155
+ for (const dir of skillDirs){
156
+ const skillPath = join(skillsPath, dir.name);
157
+ const skillMdPath = join(skillPath, "SKILL.md");
158
+ try {
159
+ const content = await readFile(skillMdPath, "utf-8");
160
+ const metadata = this.parseSkillMetadata(content);
161
+ skills.push({
162
+ name: metadata.name,
163
+ description: metadata.description,
164
+ path: skillPath
165
+ });
166
+ } catch {
167
+ this.logger.warn(`Skipping invalid skill directory: ${dir.name}`);
168
+ }
169
+ }
170
+ if ("interactive" === this.outputManager.getMode()) {
171
+ console.log("\nInstalled Skills:");
172
+ console.log("=================\n");
173
+ for (const skill of skills){
174
+ console.log(` ${skill.name}`);
175
+ console.log(` ${skill.description}`);
176
+ console.log(` Location: ${skill.path}`);
177
+ console.log();
178
+ }
179
+ } else this.outputManager.emitEvent({
180
+ type: "skill-list",
181
+ skills: skills.map((s)=>({
182
+ name: s.name,
183
+ description: s.description,
184
+ path: s.path
185
+ })),
186
+ timestamp: new Date().toISOString()
187
+ });
188
+ } catch (error) {
189
+ const errorMsg = error instanceof Error ? error.message : String(error);
190
+ const logFile = getLogFilePath();
191
+ this.logger.error(`Failed to list skills: ${errorMsg}`);
192
+ if ("interactive" === this.outputManager.getMode()) {
193
+ console.error(`\nError: ${errorMsg}`);
194
+ console.error(`Logs: ${logFile}`);
195
+ } else this.outputManager.emitEvent({
196
+ type: "agent-error",
197
+ error: errorMsg,
198
+ logFile,
199
+ timestamp: new Date().toISOString()
200
+ });
201
+ throw error;
202
+ }
203
+ }
204
+ async removeSkill(skillName) {
205
+ try {
206
+ const skillPath = join(this.getSkillsPath(), skillName);
207
+ const exists = await this.skillExists(skillName);
208
+ if (!exists) throw new Error(`Skill '${skillName}' is not installed.`);
209
+ this.logger.info(`Removing skill: ${skillName}`);
210
+ await rm(skillPath, {
211
+ recursive: true,
212
+ force: true
213
+ });
214
+ if ("interactive" === this.outputManager.getMode()) console.log(`\n✓ Successfully removed skill ${skillName}`);
215
+ else this.outputManager.emitEvent({
216
+ type: "skill-remove",
217
+ skill: skillName,
218
+ timestamp: new Date().toISOString()
219
+ });
220
+ } catch (error) {
221
+ const errorMsg = error instanceof Error ? error.message : String(error);
222
+ const logFile = getLogFilePath();
223
+ this.logger.error(`Failed to remove skill: ${errorMsg}`);
224
+ if ("interactive" === this.outputManager.getMode()) {
225
+ console.error(`\nError: ${errorMsg}`);
226
+ console.error(`Logs: ${logFile}`);
227
+ } else this.outputManager.emitEvent({
228
+ type: "agent-error",
229
+ error: errorMsg,
230
+ logFile,
231
+ timestamp: new Date().toISOString()
232
+ });
233
+ throw error;
234
+ }
235
+ }
236
+ async skillExists(skillName) {
237
+ const skillPath = join(this.getSkillsPath(), skillName);
238
+ try {
239
+ await access(skillPath);
240
+ return true;
241
+ } catch {
242
+ return false;
243
+ }
244
+ }
245
+ async promptForOverwrite(skillName) {
246
+ const rl = createInterface({
247
+ input: process.stdin,
248
+ output: process.stdout
249
+ });
250
+ try {
251
+ const answer = await rl.question(`\nSkill ${skillName} is already installed. Overwrite? (y/N): `);
252
+ return "y" === answer.toLowerCase() || "yes" === answer.toLowerCase();
253
+ } finally{
254
+ rl.close();
255
+ }
256
+ }
257
+ async validateSkillMd(skillPath) {
258
+ const skillMdPath = join(skillPath, "SKILL.md");
259
+ try {
260
+ const content = await readFile(skillMdPath, "utf-8");
261
+ this.parseSkillMetadata(content);
262
+ } catch (error) {
263
+ throw new Error(`Invalid SKILL.md: ${error instanceof Error ? error.message : String(error)}`);
264
+ }
265
+ }
266
+ parseSkillMetadata(content) {
267
+ const frontmatterRegex = /^---\s*\n([\s\S]*?)\n---/;
268
+ const match = content.match(frontmatterRegex);
269
+ if (!match) throw new Error("Invalid SKILL.md format: missing YAML frontmatter");
270
+ const frontmatter = match[1];
271
+ let name = "";
272
+ let description = "";
273
+ const lines = frontmatter.split("\n");
274
+ for (const line of lines){
275
+ const colonIndex = line.indexOf(":");
276
+ if (-1 === colonIndex) continue;
277
+ const key = line.substring(0, colonIndex).trim();
278
+ const value = line.substring(colonIndex + 1).trim();
279
+ if ("name" === key) name = value;
280
+ else if ("description" === key) description = value;
281
+ }
282
+ if (!name) throw new Error("missing required field 'name'");
283
+ if (!description) throw new Error("missing required field 'description'");
284
+ return {
285
+ name,
286
+ description
287
+ };
288
+ }
289
+ constructor(repository, outputManager, logger, options){
290
+ _define_property(this, "workspace", void 0);
291
+ _define_property(this, "skillsDirectory", void 0);
292
+ _define_property(this, "repository", void 0);
293
+ _define_property(this, "outputManager", void 0);
294
+ _define_property(this, "logger", void 0);
295
+ this.repository = repository;
296
+ this.outputManager = outputManager;
297
+ this.logger = logger;
298
+ this.workspace = options.workspace;
299
+ this.skillsDirectory = options.skillsDirectory || "skills";
300
+ }
301
+ }
302
+ export { SkillService };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,18 @@
1
+ import type { LogLevel } from "../../logger.js";
2
+ /**
3
+ * Gateway command arguments
4
+ */
5
+ export interface GatewayCommandArgs {
6
+ subcommand: string;
7
+ args: string[];
8
+ verbosity: LogLevel;
9
+ host?: string;
10
+ port?: number;
11
+ daemon?: boolean;
12
+ auth?: boolean;
13
+ token?: string;
14
+ url?: string;
15
+ name?: string;
16
+ lines?: number;
17
+ errors?: boolean;
18
+ }
File without changes
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,13 @@
1
+ import type { LogLevel } from "../../logger.js";
2
+ import type { OutputMode } from "../types.js";
3
+ /**
4
+ * Init command arguments
5
+ */
6
+ export interface InitCommandArgs {
7
+ subcommand: string;
8
+ args: string[];
9
+ verbosity: LogLevel;
10
+ outputMode: OutputMode;
11
+ options: Record<string, unknown>;
12
+ agent?: string;
13
+ }
File without changes
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,9 @@
1
+ import type { OutputMode } from "../types.js";
2
+ import type { LogLevel } from "../../logger.js";
3
+ export interface ProviderCommandArgs {
4
+ subcommand: string;
5
+ args: string[];
6
+ verbosity: LogLevel;
7
+ outputMode: OutputMode;
8
+ options: Record<string, unknown>;
9
+ }
File without changes
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });
@@ -0,0 +1,71 @@
1
+ import type { OutputMode } from "../types.js";
2
+ import type { LogLevel } from "../../logger.js";
3
+ /**
4
+ * Skill metadata parsed from SKILL.md frontmatter
5
+ */
6
+ export interface SkillMetadata {
7
+ name: string;
8
+ description: string;
9
+ license?: string;
10
+ compatibility?: string;
11
+ metadata?: Record<string, string>;
12
+ allowedTools?: string;
13
+ }
14
+ /**
15
+ * Skill information with additional context
16
+ */
17
+ export interface SkillInfo {
18
+ name: string;
19
+ description: string;
20
+ path: string;
21
+ metadata?: SkillMetadata;
22
+ }
23
+ /**
24
+ * Installed skill information
25
+ */
26
+ export interface InstalledSkill {
27
+ name: string;
28
+ description: string;
29
+ path: string;
30
+ }
31
+ /**
32
+ * GitHub API response for directory contents
33
+ */
34
+ export interface GitHubContentItem {
35
+ name: string;
36
+ path: string;
37
+ sha: string;
38
+ size: number;
39
+ url: string;
40
+ html_url: string;
41
+ git_url: string;
42
+ download_url: string | null;
43
+ type: "file" | "dir";
44
+ content?: string;
45
+ encoding?: string;
46
+ }
47
+ /**
48
+ * Command arguments for skill commands
49
+ */
50
+ export interface SkillCommandArgs {
51
+ subcommand: string;
52
+ args: string[];
53
+ verbosity: LogLevel;
54
+ outputMode: OutputMode;
55
+ }
56
+ /**
57
+ * Options for skill repository operations
58
+ */
59
+ export interface SkillRepositoryOptions {
60
+ repositoryOwner?: string;
61
+ repositoryName?: string;
62
+ githubToken?: string;
63
+ }
64
+ /**
65
+ * Options for skill service operations
66
+ */
67
+ export interface SkillServiceOptions {
68
+ workspace: string;
69
+ skillsDirectory?: string;
70
+ outputMode: OutputMode;
71
+ }
File without changes
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.r = (exports1)=>{
5
+ if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
6
+ value: 'Module'
7
+ });
8
+ Object.defineProperty(exports1, '__esModule', {
9
+ value: true
10
+ });
11
+ };
12
+ })();
13
+ var __webpack_exports__ = {};
14
+ __webpack_require__.r(__webpack_exports__);
15
+ for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
16
+ Object.defineProperty(exports, '__esModule', {
17
+ value: true
18
+ });