@wingman-ai/gateway 0.5.3 → 0.6.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 (327) hide show
  1. package/dist/agent/backend/filtered-backend.cjs +130 -0
  2. package/dist/agent/backend/filtered-backend.d.ts +10 -0
  3. package/dist/agent/backend/filtered-backend.js +87 -0
  4. package/dist/agent/config/agentConfig.cjs +4 -0
  5. package/dist/agent/config/agentConfig.d.ts +12 -0
  6. package/dist/agent/config/agentConfig.js +4 -0
  7. package/dist/agent/config/toolRegistry.cjs +75 -1
  8. package/dist/agent/config/toolRegistry.d.ts +3 -0
  9. package/dist/agent/config/toolRegistry.js +75 -1
  10. package/dist/agent/middleware/additional-messages.cjs +4 -1
  11. package/dist/agent/middleware/additional-messages.js +4 -1
  12. package/dist/agent/middleware/large-tool-results.cjs +207 -0
  13. package/dist/agent/middleware/large-tool-results.d.ts +16 -0
  14. package/dist/agent/middleware/large-tool-results.js +173 -0
  15. package/dist/agent/tools/browser_control.cjs +9 -1231
  16. package/dist/agent/tools/browser_control.d.ts +126 -234
  17. package/dist/agent/tools/browser_control.js +7 -1226
  18. package/dist/agent/tools/browser_runtime.cjs +1358 -0
  19. package/dist/agent/tools/browser_runtime.d.ts +617 -0
  20. package/dist/agent/tools/browser_runtime.js +1288 -0
  21. package/dist/agent/tools/browser_session.cjs +189 -0
  22. package/dist/agent/tools/browser_session.d.ts +686 -0
  23. package/dist/agent/tools/browser_session.js +146 -0
  24. package/dist/agent/tools/browser_session_manager.cjs +213 -0
  25. package/dist/agent/tools/browser_session_manager.d.ts +70 -0
  26. package/dist/agent/tools/browser_session_manager.js +176 -0
  27. package/dist/cli/commands/init.cjs +80 -98
  28. package/dist/cli/commands/init.js +80 -98
  29. package/dist/cli/config/loader.cjs +0 -5
  30. package/dist/cli/config/loader.js +0 -5
  31. package/dist/cli/config/schema.cjs +3 -7
  32. package/dist/cli/config/schema.d.ts +6 -6
  33. package/dist/cli/config/schema.js +3 -7
  34. package/dist/cli/core/agentInvoker.cjs +88 -22
  35. package/dist/cli/core/agentInvoker.d.ts +10 -3
  36. package/dist/cli/core/agentInvoker.js +88 -25
  37. package/dist/cli/core/outputManager.cjs +7 -2
  38. package/dist/cli/core/outputManager.d.ts +2 -2
  39. package/dist/cli/core/outputManager.js +7 -2
  40. package/dist/cli/core/sessionManager.cjs +208 -41
  41. package/dist/cli/core/sessionManager.d.ts +20 -0
  42. package/dist/cli/core/sessionManager.js +208 -41
  43. package/dist/cli/index.cjs +16 -1
  44. package/dist/cli/index.js +16 -1
  45. package/dist/cli/services/updateCheck.cjs +212 -0
  46. package/dist/cli/services/updateCheck.d.ts +26 -0
  47. package/dist/cli/services/updateCheck.js +166 -0
  48. package/dist/cli/types.d.ts +2 -1
  49. package/dist/gateway/server.cjs +7 -0
  50. package/dist/gateway/server.js +7 -0
  51. package/dist/webui/assets/index-D3x3G75t.css +11 -0
  52. package/dist/webui/assets/index-UpMmcU1f.js +215 -0
  53. package/dist/webui/index.html +2 -2
  54. package/package.json +12 -12
  55. package/templates/agents/README.md +3 -1
  56. package/templates/agents/coding/agent.md +6 -13
  57. package/templates/agents/coding-v2/agent.md +6 -1
  58. package/templates/agents/game-dev/agent.md +9 -2
  59. package/templates/agents/game-dev/game-designer.md +4 -0
  60. package/templates/agents/game-dev/scene-engineer.md +4 -0
  61. package/templates/agents/main/agent.md +7 -2
  62. package/templates/agents/researcher/agent.md +14 -3
  63. package/templates/agents/stock-trader/agent.md +4 -0
  64. package/dist/agent/tests/agentConfig.test.cjs +0 -224
  65. package/dist/agent/tests/agentConfig.test.d.ts +0 -1
  66. package/dist/agent/tests/agentConfig.test.js +0 -218
  67. package/dist/agent/tests/agentLoader.test.cjs +0 -335
  68. package/dist/agent/tests/agentLoader.test.d.ts +0 -1
  69. package/dist/agent/tests/agentLoader.test.js +0 -329
  70. package/dist/agent/tests/backgroundTerminal.test.cjs +0 -70
  71. package/dist/agent/tests/backgroundTerminal.test.d.ts +0 -1
  72. package/dist/agent/tests/backgroundTerminal.test.js +0 -64
  73. package/dist/agent/tests/browserControlHelpers.test.cjs +0 -35
  74. package/dist/agent/tests/browserControlHelpers.test.d.ts +0 -1
  75. package/dist/agent/tests/browserControlHelpers.test.js +0 -29
  76. package/dist/agent/tests/browserControlTool.test.cjs +0 -2117
  77. package/dist/agent/tests/browserControlTool.test.d.ts +0 -1
  78. package/dist/agent/tests/browserControlTool.test.js +0 -2111
  79. package/dist/agent/tests/commandExecuteTool.test.cjs +0 -29
  80. package/dist/agent/tests/commandExecuteTool.test.d.ts +0 -1
  81. package/dist/agent/tests/commandExecuteTool.test.js +0 -23
  82. package/dist/agent/tests/internet_search.test.cjs +0 -107
  83. package/dist/agent/tests/internet_search.test.d.ts +0 -1
  84. package/dist/agent/tests/internet_search.test.js +0 -101
  85. package/dist/agent/tests/mcpClientManager.test.cjs +0 -290
  86. package/dist/agent/tests/mcpClientManager.test.d.ts +0 -1
  87. package/dist/agent/tests/mcpClientManager.test.js +0 -284
  88. package/dist/agent/tests/mcpResourceTools.test.cjs +0 -101
  89. package/dist/agent/tests/mcpResourceTools.test.d.ts +0 -1
  90. package/dist/agent/tests/mcpResourceTools.test.js +0 -95
  91. package/dist/agent/tests/modelFactory.test.cjs +0 -190
  92. package/dist/agent/tests/modelFactory.test.d.ts +0 -1
  93. package/dist/agent/tests/modelFactory.test.js +0 -184
  94. package/dist/agent/tests/terminalSessionManager.test.cjs +0 -121
  95. package/dist/agent/tests/terminalSessionManager.test.d.ts +0 -1
  96. package/dist/agent/tests/terminalSessionManager.test.js +0 -115
  97. package/dist/agent/tests/test-agent-loader.cjs +0 -33
  98. package/dist/agent/tests/test-agent-loader.d.ts +0 -1
  99. package/dist/agent/tests/test-agent-loader.js +0 -27
  100. package/dist/agent/tests/test-subagent-loading.cjs +0 -99
  101. package/dist/agent/tests/test-subagent-loading.d.ts +0 -1
  102. package/dist/agent/tests/test-subagent-loading.js +0 -93
  103. package/dist/agent/tests/toolRegistry.test.cjs +0 -147
  104. package/dist/agent/tests/toolRegistry.test.d.ts +0 -1
  105. package/dist/agent/tests/toolRegistry.test.js +0 -141
  106. package/dist/agent/tests/uiRegistryTools.test.cjs +0 -114
  107. package/dist/agent/tests/uiRegistryTools.test.d.ts +0 -1
  108. package/dist/agent/tests/uiRegistryTools.test.js +0 -105
  109. package/dist/agent/tests/xaiImageModel.test.cjs +0 -194
  110. package/dist/agent/tests/xaiImageModel.test.d.ts +0 -1
  111. package/dist/agent/tests/xaiImageModel.test.js +0 -188
  112. package/dist/tests/additionalMessageMiddleware.test.cjs +0 -216
  113. package/dist/tests/additionalMessageMiddleware.test.d.ts +0 -1
  114. package/dist/tests/additionalMessageMiddleware.test.js +0 -188
  115. package/dist/tests/agent-config-voice.test.cjs +0 -25
  116. package/dist/tests/agent-config-voice.test.d.ts +0 -1
  117. package/dist/tests/agent-config-voice.test.js +0 -19
  118. package/dist/tests/agentInvokerAttachments.test.cjs +0 -190
  119. package/dist/tests/agentInvokerAttachments.test.d.ts +0 -1
  120. package/dist/tests/agentInvokerAttachments.test.js +0 -184
  121. package/dist/tests/agentInvokerSummarization.test.cjs +0 -613
  122. package/dist/tests/agentInvokerSummarization.test.d.ts +0 -1
  123. package/dist/tests/agentInvokerSummarization.test.js +0 -607
  124. package/dist/tests/agentInvokerTokenUsage.test.cjs +0 -124
  125. package/dist/tests/agentInvokerTokenUsage.test.d.ts +0 -1
  126. package/dist/tests/agentInvokerTokenUsage.test.js +0 -118
  127. package/dist/tests/agentInvokerWorkdir.test.cjs +0 -150
  128. package/dist/tests/agentInvokerWorkdir.test.d.ts +0 -1
  129. package/dist/tests/agentInvokerWorkdir.test.js +0 -122
  130. package/dist/tests/agents-api.test.cjs +0 -324
  131. package/dist/tests/agents-api.test.d.ts +0 -1
  132. package/dist/tests/agents-api.test.js +0 -318
  133. package/dist/tests/attachments-utils.test.cjs +0 -46
  134. package/dist/tests/attachments-utils.test.d.ts +0 -1
  135. package/dist/tests/attachments-utils.test.js +0 -40
  136. package/dist/tests/browser-command.test.cjs +0 -264
  137. package/dist/tests/browser-command.test.d.ts +0 -1
  138. package/dist/tests/browser-command.test.js +0 -258
  139. package/dist/tests/browser-relay-server.test.cjs +0 -20
  140. package/dist/tests/browser-relay-server.test.d.ts +0 -1
  141. package/dist/tests/browser-relay-server.test.js +0 -14
  142. package/dist/tests/bunSqliteAdapter.test.cjs +0 -265
  143. package/dist/tests/bunSqliteAdapter.test.d.ts +0 -1
  144. package/dist/tests/bunSqliteAdapter.test.js +0 -259
  145. package/dist/tests/candleRange.test.cjs +0 -48
  146. package/dist/tests/candleRange.test.d.ts +0 -1
  147. package/dist/tests/candleRange.test.js +0 -42
  148. package/dist/tests/cli-config-loader.test.cjs +0 -532
  149. package/dist/tests/cli-config-loader.test.d.ts +0 -1
  150. package/dist/tests/cli-config-loader.test.js +0 -526
  151. package/dist/tests/cli-config-warnings.test.cjs +0 -94
  152. package/dist/tests/cli-config-warnings.test.d.ts +0 -1
  153. package/dist/tests/cli-config-warnings.test.js +0 -88
  154. package/dist/tests/cli-init.test.cjs +0 -225
  155. package/dist/tests/cli-init.test.d.ts +0 -1
  156. package/dist/tests/cli-init.test.js +0 -219
  157. package/dist/tests/cli-workspace-root.test.cjs +0 -114
  158. package/dist/tests/cli-workspace-root.test.d.ts +0 -1
  159. package/dist/tests/cli-workspace-root.test.js +0 -108
  160. package/dist/tests/codex-credentials-precedence.test.cjs +0 -94
  161. package/dist/tests/codex-credentials-precedence.test.d.ts +0 -1
  162. package/dist/tests/codex-credentials-precedence.test.js +0 -88
  163. package/dist/tests/codex-provider.test.cjs +0 -383
  164. package/dist/tests/codex-provider.test.d.ts +0 -1
  165. package/dist/tests/codex-provider.test.js +0 -377
  166. package/dist/tests/config-json-schema.test.cjs +0 -37
  167. package/dist/tests/config-json-schema.test.d.ts +0 -1
  168. package/dist/tests/config-json-schema.test.js +0 -31
  169. package/dist/tests/discord-adapter.test.cjs +0 -89
  170. package/dist/tests/discord-adapter.test.d.ts +0 -1
  171. package/dist/tests/discord-adapter.test.js +0 -83
  172. package/dist/tests/falRuntime.test.cjs +0 -78
  173. package/dist/tests/falRuntime.test.d.ts +0 -1
  174. package/dist/tests/falRuntime.test.js +0 -72
  175. package/dist/tests/falSummary.test.cjs +0 -51
  176. package/dist/tests/falSummary.test.d.ts +0 -1
  177. package/dist/tests/falSummary.test.js +0 -45
  178. package/dist/tests/fs-api.test.cjs +0 -138
  179. package/dist/tests/fs-api.test.d.ts +0 -1
  180. package/dist/tests/fs-api.test.js +0 -132
  181. package/dist/tests/gateway-command-workspace.test.cjs +0 -150
  182. package/dist/tests/gateway-command-workspace.test.d.ts +0 -1
  183. package/dist/tests/gateway-command-workspace.test.js +0 -144
  184. package/dist/tests/gateway-http-security.test.cjs +0 -318
  185. package/dist/tests/gateway-http-security.test.d.ts +0 -1
  186. package/dist/tests/gateway-http-security.test.js +0 -312
  187. package/dist/tests/gateway-node-mode.test.cjs +0 -174
  188. package/dist/tests/gateway-node-mode.test.d.ts +0 -1
  189. package/dist/tests/gateway-node-mode.test.js +0 -168
  190. package/dist/tests/gateway-origin-policy.test.cjs +0 -82
  191. package/dist/tests/gateway-origin-policy.test.d.ts +0 -1
  192. package/dist/tests/gateway-origin-policy.test.js +0 -76
  193. package/dist/tests/gateway-request-execution-overrides.test.cjs +0 -42
  194. package/dist/tests/gateway-request-execution-overrides.test.d.ts +0 -1
  195. package/dist/tests/gateway-request-execution-overrides.test.js +0 -36
  196. package/dist/tests/gateway.test.cjs +0 -700
  197. package/dist/tests/gateway.test.d.ts +0 -1
  198. package/dist/tests/gateway.test.js +0 -694
  199. package/dist/tests/hooks-matcher.test.cjs +0 -309
  200. package/dist/tests/hooks-matcher.test.d.ts +0 -1
  201. package/dist/tests/hooks-matcher.test.js +0 -303
  202. package/dist/tests/hooks-merger.test.cjs +0 -528
  203. package/dist/tests/hooks-merger.test.d.ts +0 -1
  204. package/dist/tests/hooks-merger.test.js +0 -522
  205. package/dist/tests/imagePersistence.test.cjs +0 -169
  206. package/dist/tests/imagePersistence.test.d.ts +0 -1
  207. package/dist/tests/imagePersistence.test.js +0 -163
  208. package/dist/tests/integration/agent-invocation.integration.test.cjs +0 -264
  209. package/dist/tests/integration/agent-invocation.integration.test.d.ts +0 -1
  210. package/dist/tests/integration/agent-invocation.integration.test.js +0 -258
  211. package/dist/tests/integration/finnhub-candles.integration.test.cjs +0 -98
  212. package/dist/tests/integration/finnhub-candles.integration.test.d.ts +0 -1
  213. package/dist/tests/integration/finnhub-candles.integration.test.js +0 -92
  214. package/dist/tests/integration/summarization-e2e.integration.test.cjs +0 -127
  215. package/dist/tests/integration/summarization-e2e.integration.test.d.ts +0 -1
  216. package/dist/tests/integration/summarization-e2e.integration.test.js +0 -121
  217. package/dist/tests/logger.test.cjs +0 -353
  218. package/dist/tests/logger.test.d.ts +0 -1
  219. package/dist/tests/logger.test.js +0 -347
  220. package/dist/tests/mediaCompatibilityMiddleware.test.cjs +0 -106
  221. package/dist/tests/mediaCompatibilityMiddleware.test.d.ts +0 -1
  222. package/dist/tests/mediaCompatibilityMiddleware.test.js +0 -100
  223. package/dist/tests/node-tools.test.cjs +0 -77
  224. package/dist/tests/node-tools.test.d.ts +0 -1
  225. package/dist/tests/node-tools.test.js +0 -71
  226. package/dist/tests/nodes-api.test.cjs +0 -86
  227. package/dist/tests/nodes-api.test.d.ts +0 -1
  228. package/dist/tests/nodes-api.test.js +0 -80
  229. package/dist/tests/outputManagerContextSummarized.test.cjs +0 -43
  230. package/dist/tests/outputManagerContextSummarized.test.d.ts +0 -1
  231. package/dist/tests/outputManagerContextSummarized.test.js +0 -37
  232. package/dist/tests/provider-command-codex.test.cjs +0 -57
  233. package/dist/tests/provider-command-codex.test.d.ts +0 -1
  234. package/dist/tests/provider-command-codex.test.js +0 -51
  235. package/dist/tests/routines-api.test.cjs +0 -107
  236. package/dist/tests/routines-api.test.d.ts +0 -1
  237. package/dist/tests/routines-api.test.js +0 -101
  238. package/dist/tests/run-terminal-bench-official-script.test.cjs +0 -61
  239. package/dist/tests/run-terminal-bench-official-script.test.d.ts +0 -1
  240. package/dist/tests/run-terminal-bench-official-script.test.js +0 -55
  241. package/dist/tests/sessionManager-uionly.test.cjs +0 -50
  242. package/dist/tests/sessionManager-uionly.test.d.ts +0 -1
  243. package/dist/tests/sessionManager-uionly.test.js +0 -44
  244. package/dist/tests/sessionMessageAttachments.test.cjs +0 -197
  245. package/dist/tests/sessionMessageAttachments.test.d.ts +0 -1
  246. package/dist/tests/sessionMessageAttachments.test.js +0 -191
  247. package/dist/tests/sessionMessageRole.test.cjs +0 -44
  248. package/dist/tests/sessionMessageRole.test.d.ts +0 -1
  249. package/dist/tests/sessionMessageRole.test.js +0 -38
  250. package/dist/tests/sessionStateMessages.test.cjs +0 -236
  251. package/dist/tests/sessionStateMessages.test.d.ts +0 -1
  252. package/dist/tests/sessionStateMessages.test.js +0 -230
  253. package/dist/tests/sessions-api.test.cjs +0 -250
  254. package/dist/tests/sessions-api.test.d.ts +0 -1
  255. package/dist/tests/sessions-api.test.js +0 -244
  256. package/dist/tests/skill-activation.test.cjs +0 -86
  257. package/dist/tests/skill-activation.test.d.ts +0 -1
  258. package/dist/tests/skill-activation.test.js +0 -80
  259. package/dist/tests/skill-metadata.test.cjs +0 -119
  260. package/dist/tests/skill-metadata.test.d.ts +0 -1
  261. package/dist/tests/skill-metadata.test.js +0 -113
  262. package/dist/tests/skill-repository.test.cjs +0 -469
  263. package/dist/tests/skill-repository.test.d.ts +0 -1
  264. package/dist/tests/skill-repository.test.js +0 -463
  265. package/dist/tests/skill-security-scanner.test.cjs +0 -126
  266. package/dist/tests/skill-security-scanner.test.d.ts +0 -1
  267. package/dist/tests/skill-security-scanner.test.js +0 -120
  268. package/dist/tests/sms-api.test.cjs +0 -183
  269. package/dist/tests/sms-api.test.d.ts +0 -1
  270. package/dist/tests/sms-api.test.js +0 -177
  271. package/dist/tests/sms-commands.test.cjs +0 -90
  272. package/dist/tests/sms-commands.test.d.ts +0 -1
  273. package/dist/tests/sms-commands.test.js +0 -84
  274. package/dist/tests/sms-policy-store.test.cjs +0 -69
  275. package/dist/tests/sms-policy-store.test.d.ts +0 -1
  276. package/dist/tests/sms-policy-store.test.js +0 -63
  277. package/dist/tests/teams-adapter.test.cjs +0 -58
  278. package/dist/tests/teams-adapter.test.d.ts +0 -1
  279. package/dist/tests/teams-adapter.test.js +0 -52
  280. package/dist/tests/technicalIndicators.test.cjs +0 -82
  281. package/dist/tests/technicalIndicators.test.d.ts +0 -1
  282. package/dist/tests/technicalIndicators.test.js +0 -76
  283. package/dist/tests/terminal-bench-adapters-helpers.test.cjs +0 -64
  284. package/dist/tests/terminal-bench-adapters-helpers.test.d.ts +0 -1
  285. package/dist/tests/terminal-bench-adapters-helpers.test.js +0 -58
  286. package/dist/tests/terminal-bench-cleanup.test.cjs +0 -93
  287. package/dist/tests/terminal-bench-cleanup.test.d.ts +0 -1
  288. package/dist/tests/terminal-bench-cleanup.test.js +0 -87
  289. package/dist/tests/terminal-bench-config.test.cjs +0 -62
  290. package/dist/tests/terminal-bench-config.test.d.ts +0 -1
  291. package/dist/tests/terminal-bench-config.test.js +0 -56
  292. package/dist/tests/terminal-bench-official.test.cjs +0 -194
  293. package/dist/tests/terminal-bench-official.test.d.ts +0 -1
  294. package/dist/tests/terminal-bench-official.test.js +0 -188
  295. package/dist/tests/terminal-bench-runner.test.cjs +0 -82
  296. package/dist/tests/terminal-bench-runner.test.d.ts +0 -1
  297. package/dist/tests/terminal-bench-runner.test.js +0 -76
  298. package/dist/tests/terminal-bench-scoring.test.cjs +0 -128
  299. package/dist/tests/terminal-bench-scoring.test.d.ts +0 -1
  300. package/dist/tests/terminal-bench-scoring.test.js +0 -122
  301. package/dist/tests/terminalProbe.test.cjs +0 -45
  302. package/dist/tests/terminalProbe.test.d.ts +0 -1
  303. package/dist/tests/terminalProbe.test.js +0 -39
  304. package/dist/tests/terminalProbeAuth.test.cjs +0 -85
  305. package/dist/tests/terminalProbeAuth.test.d.ts +0 -1
  306. package/dist/tests/terminalProbeAuth.test.js +0 -79
  307. package/dist/tests/toolDisplayHelpers.test.cjs +0 -46
  308. package/dist/tests/toolDisplayHelpers.test.d.ts +0 -1
  309. package/dist/tests/toolDisplayHelpers.test.js +0 -40
  310. package/dist/tests/uv.test.cjs +0 -47
  311. package/dist/tests/uv.test.d.ts +0 -1
  312. package/dist/tests/uv.test.js +0 -41
  313. package/dist/tests/voice-config.test.cjs +0 -35
  314. package/dist/tests/voice-config.test.d.ts +0 -1
  315. package/dist/tests/voice-config.test.js +0 -29
  316. package/dist/tests/websocket-transport.test.cjs +0 -31
  317. package/dist/tests/websocket-transport.test.d.ts +0 -1
  318. package/dist/tests/websocket-transport.test.js +0 -25
  319. package/dist/tests/yahooCandles.test.cjs +0 -111
  320. package/dist/tests/yahooCandles.test.d.ts +0 -1
  321. package/dist/tests/yahooCandles.test.js +0 -105
  322. package/dist/tools/finance/optionsAnalytics.test.cjs +0 -128
  323. package/dist/tools/finance/optionsAnalytics.test.d.ts +0 -1
  324. package/dist/tools/finance/optionsAnalytics.test.js +0 -122
  325. package/dist/webui/assets/index-BMf95nv5.js +0 -215
  326. package/dist/webui/assets/index-DhJQ8Mbn.css +0 -11
  327. package/dist/webui/assets/wingman_logo-Cogyt3qm.webp +0 -0
@@ -12,8 +12,8 @@
12
12
  href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&family=Sora:wght@300;400;500;600;700&display=swap"
13
13
  rel="stylesheet"
14
14
  />
15
- <script type="module" crossorigin src="/assets/index-BMf95nv5.js"></script>
16
- <link rel="stylesheet" crossorigin href="/assets/index-DhJQ8Mbn.css">
15
+ <script type="module" crossorigin src="/assets/index-UpMmcU1f.js"></script>
16
+ <link rel="stylesheet" crossorigin href="/assets/index-D3x3G75t.css">
17
17
  </head>
18
18
  <body>
19
19
  <div id="root"></div>
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@wingman-ai/gateway",
3
- "displayName": "Wingman Agent",
4
- "description": "Wingman-AI agentic coding assistant that works with Anthropic, OpenAI, Google, xAI and LMStudio.",
5
- "version": "0.5.3",
3
+ "displayName": "Wingman Gateway",
4
+ "description": "Wingman is a stateful, multi-agent runtime with a local CLI control plane and a gateway for routing, sessions, and collaboration.",
5
+ "version": "0.6.0",
6
6
  "main": "index.js",
7
7
  "bin": {
8
8
  "wingman": "./bin/wingman"
@@ -96,17 +96,17 @@
96
96
  },
97
97
  "dependencies": {
98
98
  "@clack/prompts": "^0.7.0",
99
- "@fal-ai/client": "^1.9.1",
100
- "@langchain/anthropic": "^1.3.21",
101
- "@langchain/core": "^1.1.29",
102
- "@langchain/google-genai": "^2.1.22",
103
- "@langchain/langgraph": "^1.2.0",
99
+ "@fal-ai/client": "^1.9.4",
100
+ "@langchain/anthropic": "^1.3.22",
101
+ "@langchain/core": "^1.1.31",
102
+ "@langchain/google-genai": "^2.1.24",
103
+ "@langchain/langgraph": "^1.2.1",
104
104
  "@langchain/langgraph-checkpoint-sqlite": "^1.0.1",
105
105
  "@langchain/langgraph-sdk": "^1.6.5",
106
106
  "@langchain/mcp-adapters": "^1.1.3",
107
- "@langchain/ollama": "^1.2.5",
108
- "@langchain/openai": "^1.2.11",
109
- "@langchain/xai": "^1.3.7",
107
+ "@langchain/ollama": "^1.2.6",
108
+ "@langchain/openai": "^1.2.12",
109
+ "@langchain/xai": "^1.3.8",
110
110
  "@modelcontextprotocol/sdk": "^1.26.0",
111
111
  "botbuilder": "^4.23.3",
112
112
  "chalk": "^5.6.2",
@@ -117,7 +117,7 @@
117
117
  "ink": "^5.2.1",
118
118
  "ink-spinner": "^5.0.0",
119
119
  "js-yaml": "^4.1.1",
120
- "langchain": "^1.2.28",
120
+ "langchain": "^1.2.30",
121
121
  "multicast-dns": "^7.2.5",
122
122
  "playwright-core": "^1.58.2",
123
123
  "react": "^18.3.1",
@@ -50,7 +50,7 @@ Each agent configuration file follows this schema:
50
50
  ### Optional Fields
51
51
 
52
52
  - **tools**: Array of tool names the agent can use
53
- - Available tools: `internet_search`, `web_crawler`, `browser_control`, `command_execute`, `background_terminal`, `think`, `code_search`, `git_status`, `ui_registry_list`, `ui_registry_get`, `ui_present`
53
+ - Available tools: `internet_search`, `web_crawler`, `browser_control`, `browser_session_start`, `browser_session_action`, `browser_session_close`, `browser_session_list`, `command_execute`, `background_terminal`, `think`, `code_search`, `git_status`, `ui_registry_list`, `ui_registry_get`, `ui_present`
54
54
  - **model**: Override the default model (format: `provider:model-name`)
55
55
  - Anthropic: `anthropic:claude-opus-4-5`, `anthropic:claude-sonnet-4-5-20250929`
56
56
  - OpenAI: `openai:gpt-4o`, `openai:gpt-4-turbo`
@@ -59,6 +59,8 @@ Each agent configuration file follows this schema:
59
59
  - If the selected model does not support effort controls, Wingman logs a warning and continues
60
60
  - `thinkingEffort` is accepted as a legacy alias
61
61
  - **browserProfile**: Optional named persistent browser profile for `browser_control` (configured in `wingman.config.json` under `browser`; initialize with `wingman browser profile init <id>`)
62
+ - **browserTransport**: Optional default transport for `browser_control` and `browser_session_*` (`auto`, `playwright`, or `relay`)
63
+ - **Browser tool split**: Prefer `browser_session_*` for normal browser automation. Reserve `browser_control` for agents that should only act when the user explicitly wants Wingman to use an existing browser or live tab.
62
64
  - **promptRefinement**: Allow the agent to maintain a durable prompt overlay under `/memories/`
63
65
  - `enabled`: Set true to allow updates from explicit user feedback
64
66
  - `instructionsPath`: Optional override for the overlay file location (virtual path)
@@ -8,7 +8,12 @@ tools:
8
8
  - command_execute
9
9
  - git_status
10
10
  - background_terminal
11
- model: codex:gpt-5.3-codex
11
+ - browser_control
12
+ - browser_session_start
13
+ - browser_session_action
14
+ - browser_session_close
15
+ - browser_session_list
16
+ model: codex:gpt-5.4
12
17
  reasoningEffort: "high"
13
18
  mcpUseGlobal: true
14
19
  ---
@@ -298,15 +303,3 @@ When using the shell, you must adhere to the following guidelines:
298
303
 
299
304
  - When searching for text or files, prefer using `rg` or `rg --files` respectively because `rg` is much faster than alternatives like `grep`. (If the `rg` command is not found, then use alternatives.)
300
305
  - Do not use python scripts to attempt to output larger chunks of a file.
301
-
302
- ## `write_todos`
303
-
304
- A tool named `write_todos` is available to you. Use it to keep an up-to-date, step-by-step plan for the task.
305
-
306
- To create a plan, call `write_todos` with a `todos` array of short 1-sentence steps (no more than 5-7 words each). Each todo must include a `status`: `pending`, `in_progress`, or `completed`.
307
-
308
- When steps are completed, call `write_todos` again with the updated list: mark finished steps as `completed` and set the next active step to `in_progress`. Keep exactly one `in_progress` step until everything is done.
309
-
310
- If all steps are complete, call `write_todos` with all steps marked `completed`.
311
-
312
- Before your final response on non-trivial tasks, call `read_todos` (when available) and ensure all todo items are `completed`.
@@ -11,7 +11,12 @@ tools:
11
11
  - background_terminal
12
12
  - internet_search
13
13
  - web_crawler
14
- model: codex:gpt-5.3-codex
14
+ - browser_control
15
+ - browser_session_start
16
+ - browser_session_action
17
+ - browser_session_close
18
+ - browser_session_list
19
+ model: codex:gpt-5.4
15
20
  reasoningEffort: "high"
16
21
  mcpUseGlobal: true
17
22
  subAgents:
@@ -12,10 +12,14 @@ tools:
12
12
  - internet_search
13
13
  - web_crawler
14
14
  - browser_control
15
+ - browser_session_start
16
+ - browser_session_action
17
+ - browser_session_close
18
+ - browser_session_list
15
19
  - ui_registry_list
16
20
  - ui_registry_get
17
21
  - ui_present
18
- model: codex:gpt-5.3-codex
22
+ model: codex:gpt-5.4
19
23
  reasoningEffort: "high"
20
24
  mcpUseGlobal: true
21
25
  promptRefinement: true
@@ -40,6 +44,7 @@ subAgents:
40
44
  - think
41
45
  - code_search
42
46
  - command_execute
47
+ - browser_control
43
48
  promptFile: ./scene-engineer.md
44
49
  - name: game-designer
45
50
  description: >-
@@ -50,6 +55,7 @@ subAgents:
50
55
  - internet_search
51
56
  - web_crawler
52
57
  - code_search
58
+ - browser_control
53
59
  - ui_registry_list
54
60
  - ui_registry_get
55
61
  - ui_present
@@ -131,7 +137,7 @@ Delegate to `art-director` for multi-asset batches, style-consistent series, or
131
137
 
132
138
  ## Browser automation
133
139
 
134
- Use `browser_control` for interactive validation (game UI smoke tests, WebGL build QA, screenshot capture from JS-rendered previews). It runs headless Chromium via CDP not an MCP server.
140
+ Use `browser_control` for interactive validation (game UI smoke tests, WebGL build QA, screenshot capture from JS-rendered previews). With a configured `browserProfile` or workspace `browser.defaultProfile`, it runs in Playwright persistent-context mode for reproducible debugging; otherwise it uses CDP with automatic fallback. It is a native Wingman tool, not an MCP server.
135
141
 
136
142
  ## Execution standards
137
143
 
@@ -146,3 +152,4 @@ Use `browser_control` for interactive validation (game UI smoke tests, WebGL bui
146
152
  - Update statuses as work progresses.
147
153
  - Call `read_todos` before finalizing to verify no `pending` items remain.
148
154
  - Do not end on promise-only language without executing that next step in the same turn.
155
+ - Always work all tasks to completion
@@ -23,6 +23,10 @@ If `/memories/game-dev/design.md` is absent, create it after establishing initia
23
23
  - In-game overlays: damage flash, level-up burst, tutorial callouts, notification toasts
24
24
  - Interaction design: hover states, focus rings, animation style, controller/keyboard accessibility
25
25
 
26
+ **Browser QA**
27
+ - Use `browser_control` to validate menu flows, HUD readability, focus order, and interaction timing in the running game before locking UX recommendations.
28
+ - When a design call depends on real behavior, cite what was observed in-browser instead of relying only on static specs.
29
+
26
30
  **Three.js UI strategy** — specify the appropriate rendering approach per UI element:
27
31
  - **HTML overlay** (`position: fixed` DOM + CSS): best for complex menus, text-heavy HUD, accessibility needs
28
32
  - **Canvas 2D → `CanvasTexture`**: good for dynamic HUD elements drawn programmatically on a plane
@@ -38,6 +38,10 @@ If `/memories/game-dev/threejs.md` is absent, create it after establishing the f
38
38
  - Asset manager / loading queue with progress events; `LoadingManager` for loading screens
39
39
  - Dispose unused assets on scene transitions
40
40
 
41
+ **Browser QA**
42
+ - Use `browser_control` to validate live WebGL builds in-browser: wait for canvas/UI readiness, capture screenshots, and evaluate runtime state when a rendering bug only reproduces after load or interaction.
43
+ - Prefer browser-backed repro for issues tied to resize, async asset loading, post-processing, or device-pixel-ratio changes.
44
+
41
45
  **React Three Fiber (R3F)**
42
46
  - `useFrame`, `useThree`, `useLoader` — prefer hooks over imperative refs where natural
43
47
  - Keep imperative Three.js isolated to refs; avoid fighting R3F's reconciler
@@ -6,6 +6,10 @@ tools:
6
6
  - internet_search
7
7
  - web_crawler
8
8
  - browser_control
9
+ - browser_session_start
10
+ - browser_session_action
11
+ - browser_session_close
12
+ - browser_session_list
9
13
  - command_execute
10
14
  model: openai:gpt-5-mini
11
15
  mcpUseGlobal: true
@@ -17,8 +21,9 @@ You are the primary Wingman agent. Handle a wide range of coding, research, and
17
21
  Follow these principles:
18
22
  - Be proactive about gathering context before making changes.
19
23
  - Use the available tools when they add confidence or speed.
20
- - Use `browser_control` for interactive browser tasks (navigation, clicks, JS-rendered pages, screenshots); it is a native runtime capability using Chrome/Chromium runtime control (CDP with automatic persistent-context fallback), not an MCP server.
21
- - When using `browser_control`, stick to supported action types (`navigate`, `click`, `type`, `press`, `wait`, `wait_for`, `extract_text`, `evaluate`, `screenshot`) or documented aliases (`goto`, `selector`, `getContent`, `querySelector`, `snapshot`, etc.).
24
+ - Default to `browser_session_start`, `browser_session_action`, and `browser_session_close` for browser automation, screenshots, extraction, and QA. Use the session flow even for one-shot tasks unless there is a strong reason not to.
25
+ - Reserve `browser_control` for explicit user intent to use or take over their existing browser or live tab (for example, "use my browser" or "take control of my browser"). It is a native runtime capability using Chrome/Chromium runtime control, not an MCP server.
26
+ - When using browser tools, stick to supported action types (`navigate`, `click`, `type`, `press`, `wait`, `wait_for`, `extract_text`, `evaluate`, `screenshot`) or documented aliases (`goto`, `selector`, `getContent`, `querySelector`, `snapshot`, etc.).
22
27
  - If this agent has `browserProfile` configured, prefer that persistent named profile for authenticated workflows.
23
28
  - For authenticated profile reuse (for example Robinhood): bootstrap login headed first, then you may request `headless: true` for automation runs; navigate directly to target pages instead of forcing `/login` URLs.
24
29
  - For image/audio/video generation requests, prefer MCP FAL tools (for example `generate_image_or_texture`, `generate_image_edit`, `generate_audio_or_music`, `generate_video_from_image`) and use `fal_generation_status` for queue lifecycle actions.
@@ -5,6 +5,10 @@ tools:
5
5
  - internet_search
6
6
  - web_crawler
7
7
  - browser_control
8
+ - browser_session_start
9
+ - browser_session_action
10
+ - browser_session_close
11
+ - browser_session_list
8
12
  promptRefinement: true
9
13
  ---
10
14
 
@@ -30,12 +34,19 @@ Use this to crawl and extract detailed content from specific URLs.
30
34
 
31
35
  ## `browser_control`
32
36
 
33
- Use this when static crawling is insufficient and you need real browser behavior.
37
+ Reserve this for explicit requests to use or take over the user's existing browser or live tab.
34
38
 
35
- - Native Wingman capability backed by headless Chrome/Chromium over CDP
36
- - Best for JS-rendered pages, interaction-required flows, and visual verification screenshots
39
+ - Native Wingman capability backed by Chrome/Chromium runtime control
40
+ - Best when the user says things like "use my browser" or "take control of my browser"
37
41
  - Not an MCP dependency; use MCP for external data/SaaS integrations
38
42
 
43
+ ## `browser_session_*`
44
+
45
+ Use this as the default browser workflow whenever static crawling is insufficient.
46
+
47
+ - Start with `browser_session_start`, continue with `browser_session_action`, and clean up with `browser_session_close`
48
+ - Best for JS-rendered pages, interaction-required flows, screenshots, multi-step sign-in flows, and investigation where the same browser state must survive across turns
49
+
39
50
  ## Scope and guardrails
40
51
 
41
52
  - You are not a stock-trading specialist. If a request is primarily about trading workflows or portfolio decisions, suggest using the `stock-trader` agent.
@@ -5,6 +5,10 @@ tools:
5
5
  - think
6
6
  - web_crawler
7
7
  - browser_control
8
+ - browser_session_start
9
+ - browser_session_action
10
+ - browser_session_close
11
+ - browser_session_list
8
12
  model: xai:grok-4-1-fast-reasoning
9
13
  mcpUseGlobal: true
10
14
  promptRefinement: true
@@ -1,224 +0,0 @@
1
- "use strict";
2
- var __webpack_exports__ = {};
3
- const external_vitest_namespaceObject = require("vitest");
4
- const agentConfig_cjs_namespaceObject = require("../config/agentConfig.cjs");
5
- (0, external_vitest_namespaceObject.describe)("Agent Configuration Schema", ()=>{
6
- (0, external_vitest_namespaceObject.describe)("validateAgentConfig", ()=>{
7
- (0, external_vitest_namespaceObject.it)("should validate a valid minimal agent config", ()=>{
8
- const config = {
9
- name: "test-agent",
10
- description: "A test agent",
11
- systemPrompt: "You are a test agent"
12
- };
13
- const result = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(config);
14
- (0, external_vitest_namespaceObject.expect)(result.success).toBe(true);
15
- if (result.success) {
16
- (0, external_vitest_namespaceObject.expect)(result.data.name).toBe("test-agent");
17
- (0, external_vitest_namespaceObject.expect)(result.data.description).toBe("A test agent");
18
- (0, external_vitest_namespaceObject.expect)(result.data.systemPrompt).toBe("You are a test agent");
19
- }
20
- });
21
- (0, external_vitest_namespaceObject.it)("should validate a complete agent config with all fields", ()=>{
22
- const config = {
23
- name: "data-analyst",
24
- description: "Analyzes data",
25
- systemPrompt: "You are a data analyst",
26
- tools: [
27
- "command_execute",
28
- "think"
29
- ],
30
- model: "anthropic:claude-opus-4-5",
31
- reasoningEffort: "high",
32
- blockedCommands: [
33
- "rm",
34
- "mv"
35
- ],
36
- allowScriptExecution: true,
37
- commandTimeout: 300000,
38
- browserProfile: "trading",
39
- browserTransport: "relay"
40
- };
41
- const result = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(config);
42
- (0, external_vitest_namespaceObject.expect)(result.success).toBe(true);
43
- if (result.success) {
44
- (0, external_vitest_namespaceObject.expect)(result.data.tools).toEqual([
45
- "command_execute",
46
- "think"
47
- ]);
48
- (0, external_vitest_namespaceObject.expect)(result.data.model).toBe("anthropic:claude-opus-4-5");
49
- (0, external_vitest_namespaceObject.expect)(result.data.reasoningEffort).toBe("high");
50
- (0, external_vitest_namespaceObject.expect)(result.data.blockedCommands).toEqual([
51
- "rm",
52
- "mv"
53
- ]);
54
- (0, external_vitest_namespaceObject.expect)(result.data.allowScriptExecution).toBe(true);
55
- (0, external_vitest_namespaceObject.expect)(result.data.commandTimeout).toBe(300000);
56
- (0, external_vitest_namespaceObject.expect)(result.data.browserProfile).toBe("trading");
57
- (0, external_vitest_namespaceObject.expect)(result.data.browserTransport).toBe("relay");
58
- }
59
- });
60
- (0, external_vitest_namespaceObject.it)("should allow subagents to override models", ()=>{
61
- const config = {
62
- name: "parent-agent",
63
- description: "Parent agent",
64
- systemPrompt: "You are the parent agent",
65
- subAgents: [
66
- {
67
- name: "research-agent",
68
- description: "Researches topics",
69
- systemPrompt: "You are a researcher",
70
- model: "openai:gpt-4o",
71
- reasoningEffort: "low"
72
- }
73
- ]
74
- };
75
- const result = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(config);
76
- (0, external_vitest_namespaceObject.expect)(result.success).toBe(true);
77
- if (result.success) {
78
- (0, external_vitest_namespaceObject.expect)(result.data.subAgents?.[0].model).toBe("openai:gpt-4o");
79
- (0, external_vitest_namespaceObject.expect)(result.data.subAgents?.[0].reasoningEffort).toBe("low");
80
- }
81
- });
82
- (0, external_vitest_namespaceObject.it)("should fail when a sub-agent shares the same name as its parent", ()=>{
83
- const config = {
84
- name: "coding",
85
- description: "Parent coding agent",
86
- systemPrompt: "You are the parent coding agent",
87
- subAgents: [
88
- {
89
- name: "coding",
90
- description: "Nested coding worker",
91
- systemPrompt: "You are a worker"
92
- }
93
- ]
94
- };
95
- const result = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(config);
96
- (0, external_vitest_namespaceObject.expect)(result.success).toBe(false);
97
- if (!result.success) (0, external_vitest_namespaceObject.expect)(result.error).toContain("Sub-agent name must be different from parent agent name");
98
- });
99
- (0, external_vitest_namespaceObject.it)("should fail when sub-agent names are duplicated", ()=>{
100
- const config = {
101
- name: "parent-agent",
102
- description: "Parent agent",
103
- systemPrompt: "You are the parent agent",
104
- subAgents: [
105
- {
106
- name: "implementor",
107
- description: "First implementor",
108
- systemPrompt: "You implement changes"
109
- },
110
- {
111
- name: "IMPLEMENTOR",
112
- description: "Duplicate implementor",
113
- systemPrompt: "You implement more changes"
114
- }
115
- ]
116
- };
117
- const result = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(config);
118
- (0, external_vitest_namespaceObject.expect)(result.success).toBe(false);
119
- if (!result.success) (0, external_vitest_namespaceObject.expect)(result.error).toContain("Sub-agent names must be unique within the same parent agent");
120
- });
121
- (0, external_vitest_namespaceObject.it)("should fail validation for missing required fields", ()=>{
122
- const config = {
123
- name: "test-agent"
124
- };
125
- const result = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(config);
126
- (0, external_vitest_namespaceObject.expect)(result.success).toBe(false);
127
- if (!result.success) {
128
- (0, external_vitest_namespaceObject.expect)(result.error).toContain("description");
129
- (0, external_vitest_namespaceObject.expect)(result.error).toContain("systemPrompt");
130
- }
131
- });
132
- (0, external_vitest_namespaceObject.it)("should fail validation for invalid tool names", ()=>{
133
- const config = {
134
- name: "test-agent",
135
- description: "Test",
136
- systemPrompt: "Test",
137
- tools: [
138
- "invalid_tool"
139
- ]
140
- };
141
- const result = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(config);
142
- (0, external_vitest_namespaceObject.expect)(result.success).toBe(false);
143
- });
144
- (0, external_vitest_namespaceObject.it)("should fail validation for invalid reasoning effort", ()=>{
145
- const config = {
146
- name: "test-agent",
147
- description: "Test",
148
- systemPrompt: "Test",
149
- reasoningEffort: "extreme"
150
- };
151
- const result = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(config);
152
- (0, external_vitest_namespaceObject.expect)(result.success).toBe(false);
153
- if (!result.success) (0, external_vitest_namespaceObject.expect)(result.error).toContain("reasoningEffort");
154
- });
155
- (0, external_vitest_namespaceObject.it)("should apply default values for optional fields", ()=>{
156
- const config = {
157
- name: "test-agent",
158
- description: "Test",
159
- systemPrompt: "Test"
160
- };
161
- const parsed = agentConfig_cjs_namespaceObject.AgentConfigSchema.parse(config);
162
- (0, external_vitest_namespaceObject.expect)(parsed.allowScriptExecution).toBe(true);
163
- (0, external_vitest_namespaceObject.expect)(parsed.commandTimeout).toBe(300000);
164
- });
165
- (0, external_vitest_namespaceObject.it)("should accept prompt refinement configuration", ()=>{
166
- const config = {
167
- name: "refiner",
168
- description: "Refines its prompt",
169
- systemPrompt: "You are a refiner",
170
- promptRefinement: true
171
- };
172
- const result = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(config);
173
- (0, external_vitest_namespaceObject.expect)(result.success).toBe(true);
174
- if (result.success) (0, external_vitest_namespaceObject.expect)(result.data.promptRefinement?.enabled).toBe(true);
175
- const configWithPath = {
176
- name: "refiner-2",
177
- description: "Refines its prompt with path",
178
- systemPrompt: "You are a refiner",
179
- promptRefinement: {
180
- instructionsPath: "/memories/agents/refiner-2/instructions.md"
181
- }
182
- };
183
- const resultWithPath = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(configWithPath);
184
- (0, external_vitest_namespaceObject.expect)(resultWithPath.success).toBe(true);
185
- if (resultWithPath.success) {
186
- (0, external_vitest_namespaceObject.expect)(resultWithPath.data.promptRefinement?.instructionsPath).toBe("/memories/agents/refiner-2/instructions.md");
187
- (0, external_vitest_namespaceObject.expect)(resultWithPath.data.promptRefinement?.enabled).toBe(true);
188
- }
189
- });
190
- });
191
- (0, external_vitest_namespaceObject.describe)("Tool names enum", ()=>{
192
- (0, external_vitest_namespaceObject.it)("should accept all valid tool names", ()=>{
193
- const validTools = [
194
- "internet_search",
195
- "web_crawler",
196
- "browser_control",
197
- "command_execute",
198
- "background_terminal",
199
- "think",
200
- "code_search",
201
- "git_status",
202
- "ui_registry_list",
203
- "ui_registry_get",
204
- "ui_present"
205
- ];
206
- for (const tool of validTools){
207
- const config = {
208
- name: "test",
209
- description: "test",
210
- systemPrompt: "test",
211
- tools: [
212
- tool
213
- ]
214
- };
215
- const result = (0, agentConfig_cjs_namespaceObject.validateAgentConfig)(config);
216
- (0, external_vitest_namespaceObject.expect)(result.success).toBe(true);
217
- }
218
- });
219
- });
220
- });
221
- for(var __rspack_i in __webpack_exports__)exports[__rspack_i] = __webpack_exports__[__rspack_i];
222
- Object.defineProperty(exports, '__esModule', {
223
- value: true
224
- });
@@ -1 +0,0 @@
1
- export {};