@wingman-ai/gateway 0.1.4 → 0.1.5
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.
- package/.wingman/agents/stock-trader/agent.md +7 -2
- package/dist/agent/tests/uiRegistryTools.test.cjs +15 -0
- package/dist/agent/tests/uiRegistryTools.test.js +15 -0
- package/dist/gateway/index.cjs +2 -2
- package/dist/tests/gateway.test.cjs +3 -0
- package/dist/tests/gateway.test.js +3 -0
- package/dist/webui/assets/index-CyE7T5pV.js +162 -0
- package/dist/webui/assets/{index-DTK8ignm.css → index-DMEHdune.css} +1 -1
- package/dist/webui/index.html +2 -2
- package/package.json +5 -5
- package/skills/ui-registry/registry.json +90 -0
- package/dist/webui/assets/index-CZt-NLM_.js +0 -178
|
@@ -69,6 +69,9 @@ Top rules:
|
|
|
69
69
|
- If data is stale or incomplete, I prefer NO TRADE and explain why.
|
|
70
70
|
- I separate FACTS (tool outputs) from INFERENCES (reasoning) inside the Decision Packet.
|
|
71
71
|
- Do not dump raw tool output, internal file paths, or tool call IDs in the response; summarize only what is relevant.
|
|
72
|
+
- Use exact section headers shown below (no variants like "No-Trade Live Reason"). Omit any section that is not applicable.
|
|
73
|
+
- Keep it readable: limit each section to 1-3 bullets; Facts/Inferences to max 5 bullets each.
|
|
74
|
+
- Use plain-English explanations for any "no trade" or veto; avoid jargon-heavy phrases.
|
|
72
75
|
|
|
73
76
|
Primary data sources:
|
|
74
77
|
- Finnhub MCP tools for quotes, candles, fundamentals, earnings, news, peers, and option chains.
|
|
@@ -199,7 +202,7 @@ Orders to Place:
|
|
|
199
202
|
- (only if user explicitly requested live-trade instructions)
|
|
200
203
|
|
|
201
204
|
No-Trade Reason:
|
|
202
|
-
- (only when applicable)
|
|
205
|
+
- (only when applicable; one plain-English sentence)
|
|
203
206
|
|
|
204
207
|
Assumptions:
|
|
205
208
|
- ...
|
|
@@ -222,7 +225,9 @@ Style:
|
|
|
222
225
|
- First line must be the Goal Acknowledgement.
|
|
223
226
|
- Second line must be Direct Answer in plain language (1-3 sentences).
|
|
224
227
|
- Keep decisions concise; no fluff.
|
|
225
|
-
-
|
|
228
|
+
- Avoid long lists, raw arrays, or full tool outputs. Summarize the top signals only.
|
|
229
|
+
- If no trade, include No-Trade Reason and keep the rest concise.
|
|
230
|
+
- Concise, actionable trades for the user to make, if any.
|
|
226
231
|
|
|
227
232
|
Daily brief mode:
|
|
228
233
|
- If prompt is minimal/blank, produce a Decision Packet with no trades and a short market regime assessment.
|
|
@@ -55,6 +55,21 @@ const skillsDir = "skills";
|
|
|
55
55
|
(0, external_vitest_namespaceObject.expect)(result.propsSchema).toBeTruthy();
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
|
+
(0, external_vitest_namespaceObject.it)("exposes axis scale options for chart components", async ()=>{
|
|
59
|
+
const tool = (0, ui_registry_cjs_namespaceObject.createUiRegistryGetTool)(workspace, skillsDir);
|
|
60
|
+
for (const componentId of [
|
|
61
|
+
"line_chart",
|
|
62
|
+
"area_chart",
|
|
63
|
+
"bar_chart"
|
|
64
|
+
]){
|
|
65
|
+
const result = await tool.invoke({
|
|
66
|
+
componentId
|
|
67
|
+
});
|
|
68
|
+
const props = result.propsSchema?.properties ?? {};
|
|
69
|
+
(0, external_vitest_namespaceObject.expect)(props.xScale).toBeTruthy();
|
|
70
|
+
(0, external_vitest_namespaceObject.expect)(props.yScale).toBeTruthy();
|
|
71
|
+
}
|
|
72
|
+
});
|
|
58
73
|
(0, external_vitest_namespaceObject.it)("renders UI payload when enabled", async ()=>{
|
|
59
74
|
const tool = (0, ui_registry_cjs_namespaceObject.createUiPresentTool)(workspace, skillsDir, true);
|
|
60
75
|
const result = await tool.invoke({
|
|
@@ -50,6 +50,21 @@ describe("UI Registry Tools", ()=>{
|
|
|
50
50
|
expect(result.propsSchema).toBeTruthy();
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
|
+
it("exposes axis scale options for chart components", async ()=>{
|
|
54
|
+
const tool = createUiRegistryGetTool(workspace, skillsDir);
|
|
55
|
+
for (const componentId of [
|
|
56
|
+
"line_chart",
|
|
57
|
+
"area_chart",
|
|
58
|
+
"bar_chart"
|
|
59
|
+
]){
|
|
60
|
+
const result = await tool.invoke({
|
|
61
|
+
componentId
|
|
62
|
+
});
|
|
63
|
+
const props = result.propsSchema?.properties ?? {};
|
|
64
|
+
expect(props.xScale).toBeTruthy();
|
|
65
|
+
expect(props.yScale).toBeTruthy();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
53
68
|
it("renders UI payload when enabled", async ()=>{
|
|
54
69
|
const tool = createUiPresentTool(workspace, skillsDir, true);
|
|
55
70
|
const result = await tool.invoke({
|
package/dist/gateway/index.cjs
CHANGED
|
@@ -91,9 +91,9 @@ var __webpack_exports__ = {};
|
|
|
91
91
|
"GatewayDaemon",
|
|
92
92
|
"default",
|
|
93
93
|
"NodeManager",
|
|
94
|
-
"GatewayAuth",
|
|
95
|
-
"BroadcastGroupManager",
|
|
96
94
|
"GatewayRpcClient",
|
|
95
|
+
"BroadcastGroupManager",
|
|
96
|
+
"GatewayAuth",
|
|
97
97
|
"GatewayServer"
|
|
98
98
|
].indexOf(__rspack_import_key) < 0) __rspack_reexport[__rspack_import_key] = ()=>_types_js__rspack_import_7[__rspack_import_key];
|
|
99
99
|
__webpack_require__.d(__webpack_exports__, __rspack_reexport);
|