@varsity-arena/agent 0.1.3 → 0.3.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 (74) hide show
  1. package/README.md +107 -16
  2. package/dist/cli.js +306 -11
  3. package/dist/cli.js.map +1 -1
  4. package/dist/dashboard/index.html +519 -0
  5. package/dist/dashboard/serve.d.ts +6 -0
  6. package/dist/dashboard/serve.js +180 -0
  7. package/dist/dashboard/serve.js.map +1 -0
  8. package/dist/index.d.ts +2 -2
  9. package/dist/index.js +70 -4
  10. package/dist/index.js.map +1 -1
  11. package/dist/setup/backend-probe.js +13 -3
  12. package/dist/setup/backend-probe.js.map +1 -1
  13. package/dist/setup/bootstrap-python.js +1 -1
  14. package/dist/setup/bootstrap-python.js.map +1 -1
  15. package/dist/setup/client-configs.d.ts +22 -1
  16. package/dist/setup/client-configs.js +137 -0
  17. package/dist/setup/client-configs.js.map +1 -1
  18. package/dist/setup/detect-python.js +1 -1
  19. package/dist/setup/detect-python.js.map +1 -1
  20. package/dist/setup/openclaw-config.d.ts +45 -0
  21. package/dist/setup/openclaw-config.js +154 -0
  22. package/dist/setup/openclaw-config.js.map +1 -0
  23. package/dist/tools/platform-composite.d.ts +47 -0
  24. package/dist/tools/platform-composite.js +27 -0
  25. package/dist/tools/platform-composite.js.map +1 -0
  26. package/dist/tools/platform-discovery.d.ts +107 -0
  27. package/dist/tools/platform-discovery.js +61 -0
  28. package/dist/tools/platform-discovery.js.map +1 -0
  29. package/dist/tools/platform-hub.d.ts +35 -0
  30. package/dist/tools/platform-hub.js +21 -0
  31. package/dist/tools/platform-hub.js.map +1 -0
  32. package/dist/tools/platform-leaderboard.d.ts +95 -0
  33. package/dist/tools/platform-leaderboard.js +49 -0
  34. package/dist/tools/platform-leaderboard.js.map +1 -0
  35. package/dist/tools/platform-live.d.ts +71 -0
  36. package/dist/tools/platform-live.js +27 -0
  37. package/dist/tools/platform-live.js.map +1 -0
  38. package/dist/tools/platform-market.d.ts +112 -0
  39. package/dist/tools/platform-market.js +58 -0
  40. package/dist/tools/platform-market.js.map +1 -0
  41. package/dist/tools/platform-notifications.d.ts +76 -0
  42. package/dist/tools/platform-notifications.js +37 -0
  43. package/dist/tools/platform-notifications.js.map +1 -0
  44. package/dist/tools/platform-predictions.d.ts +118 -0
  45. package/dist/tools/platform-predictions.js +44 -0
  46. package/dist/tools/platform-predictions.js.map +1 -0
  47. package/dist/tools/platform-profile.d.ts +181 -0
  48. package/dist/tools/platform-profile.js +92 -0
  49. package/dist/tools/platform-profile.js.map +1 -0
  50. package/dist/tools/platform-registration.d.ts +71 -0
  51. package/dist/tools/platform-registration.js +27 -0
  52. package/dist/tools/platform-registration.js.map +1 -0
  53. package/dist/tools/platform-seasons.d.ts +47 -0
  54. package/dist/tools/platform-seasons.js +23 -0
  55. package/dist/tools/platform-seasons.js.map +1 -0
  56. package/dist/tools/platform-social.d.ts +72 -0
  57. package/dist/tools/platform-social.js +36 -0
  58. package/dist/tools/platform-social.js.map +1 -0
  59. package/dist/tools/platform-system.d.ts +70 -0
  60. package/dist/tools/platform-system.js +34 -0
  61. package/dist/tools/platform-system.js.map +1 -0
  62. package/dist/tools/runtime-config.d.ts +34 -0
  63. package/dist/tools/runtime-config.js +102 -0
  64. package/dist/tools/runtime-config.js.map +1 -0
  65. package/dist/tools/runtime-start.d.ts +4 -0
  66. package/dist/tools/runtime-start.js +8 -2
  67. package/dist/tools/runtime-start.js.map +1 -1
  68. package/dist/util/home.d.ts +2 -0
  69. package/dist/util/home.js +5 -1
  70. package/dist/util/home.js.map +1 -1
  71. package/dist/util/paths.d.ts +10 -1
  72. package/dist/util/paths.js +12 -1
  73. package/dist/util/paths.js.map +1 -1
  74. package/package.json +9 -5
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Arena Agent Dashboard — lightweight HTTP server.
3
+ *
4
+ * Serves a single-page web dashboard showing:
5
+ * - Kline chart with buy/sell markers
6
+ * - Equity curve
7
+ * - AI reasoning log per round
8
+ *
9
+ * Data comes from the Python MCP bridge (live API) and local
10
+ * transition JSONL files (AI reasoning history).
11
+ */
12
+ import { createServer as createHttpServer, } from "node:http";
13
+ import { existsSync, readFileSync, readdirSync } from "node:fs";
14
+ import { dirname, resolve } from "node:path";
15
+ import { fileURLToPath } from "node:url";
16
+ import { PythonBridge } from "../python-bridge.js";
17
+ const __dirname = dirname(fileURLToPath(import.meta.url));
18
+ export function startDashboard(opts) {
19
+ const { arenaRoot, port, competitionId, transitionsPath } = opts;
20
+ const bridge = new PythonBridge(arenaRoot);
21
+ const htmlPath = resolve(__dirname, "index.html");
22
+ if (!existsSync(htmlPath)) {
23
+ throw new Error(`Dashboard HTML not found at ${htmlPath}. Run \`npm run build\` first.`);
24
+ }
25
+ const html = readFileSync(htmlPath, "utf-8");
26
+ const server = createHttpServer(async (req, res) => {
27
+ res.setHeader("Access-Control-Allow-Origin", "*");
28
+ res.setHeader("Access-Control-Allow-Methods", "GET, OPTIONS");
29
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type");
30
+ if (req.method === "OPTIONS") {
31
+ res.writeHead(204);
32
+ res.end();
33
+ return;
34
+ }
35
+ const url = new URL(req.url ?? "/", `http://localhost:${port}`);
36
+ if (url.pathname === "/" || url.pathname === "/index.html") {
37
+ res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
38
+ res.end(html);
39
+ return;
40
+ }
41
+ if (url.pathname.startsWith("/api/")) {
42
+ await handleApi(url, res, bridge, competitionId, transitionsPath);
43
+ return;
44
+ }
45
+ res.writeHead(404);
46
+ res.end("Not Found");
47
+ });
48
+ server.listen(port, "127.0.0.1", () => {
49
+ console.log(`Arena Dashboard: http://localhost:${port}`);
50
+ if (competitionId) {
51
+ console.log(`Competition: ${competitionId}`);
52
+ }
53
+ if (transitionsPath) {
54
+ console.log(`Transitions: ${transitionsPath}`);
55
+ }
56
+ });
57
+ }
58
+ function jsonResponse(res, data, status = 200) {
59
+ res.writeHead(status, { "Content-Type": "application/json" });
60
+ res.end(JSON.stringify(data));
61
+ }
62
+ async function handleApi(url, res, bridge, defaultCompetitionId, transitionsPath) {
63
+ const endpoint = url.pathname.replace("/api/", "");
64
+ const compId = Number(url.searchParams.get("competition_id")) || defaultCompetitionId;
65
+ try {
66
+ switch (endpoint) {
67
+ case "config":
68
+ jsonResponse(res, {
69
+ competition_id: defaultCompetitionId ?? null,
70
+ transitions_path: transitionsPath ?? null,
71
+ });
72
+ return;
73
+ case "klines": {
74
+ const result = await bridge.callTool("varsity.klines", {
75
+ symbol: url.searchParams.get("symbol") ?? "BTCUSDT",
76
+ interval: url.searchParams.get("interval") ?? "5m",
77
+ size: Number(url.searchParams.get("size") ?? "300"),
78
+ });
79
+ jsonResponse(res, result);
80
+ return;
81
+ }
82
+ case "account": {
83
+ if (!compId) {
84
+ jsonResponse(res, { error: "competition_id required" }, 400);
85
+ return;
86
+ }
87
+ const result = await bridge.callTool("varsity.live_account", {
88
+ competition_id: compId,
89
+ });
90
+ jsonResponse(res, result);
91
+ return;
92
+ }
93
+ case "trades": {
94
+ if (!compId) {
95
+ jsonResponse(res, { error: "competition_id required" }, 400);
96
+ return;
97
+ }
98
+ const result = await bridge.callTool("varsity.live_trades", {
99
+ competition_id: compId,
100
+ });
101
+ jsonResponse(res, result);
102
+ return;
103
+ }
104
+ case "position": {
105
+ if (!compId) {
106
+ jsonResponse(res, { error: "competition_id required" }, 400);
107
+ return;
108
+ }
109
+ const result = await bridge.callTool("varsity.live_position", {
110
+ competition_id: compId,
111
+ });
112
+ jsonResponse(res, result);
113
+ return;
114
+ }
115
+ case "competition": {
116
+ const id = url.searchParams.get("id") ?? String(compId ?? "");
117
+ if (!id) {
118
+ jsonResponse(res, { error: "id required" }, 400);
119
+ return;
120
+ }
121
+ const result = await bridge.callTool("varsity.competition_detail", {
122
+ identifier: id,
123
+ });
124
+ jsonResponse(res, result);
125
+ return;
126
+ }
127
+ case "transitions": {
128
+ const transitions = readTransitions(transitionsPath);
129
+ const limit = Number(url.searchParams.get("limit") ?? "100");
130
+ jsonResponse(res, transitions.slice(-limit));
131
+ return;
132
+ }
133
+ default:
134
+ jsonResponse(res, { error: `Unknown endpoint: ${endpoint}` }, 404);
135
+ }
136
+ }
137
+ catch (err) {
138
+ const msg = err instanceof Error ? err.message : String(err);
139
+ jsonResponse(res, { error: msg }, 500);
140
+ }
141
+ }
142
+ function readTransitions(path) {
143
+ if (!path)
144
+ return [];
145
+ // If path is a directory, find the most recent .jsonl file
146
+ let filePath = path;
147
+ if (existsSync(path)) {
148
+ try {
149
+ const stat = readFileSync(path); // will throw if directory
150
+ void stat;
151
+ }
152
+ catch {
153
+ // It's a directory — find latest .jsonl
154
+ const files = readdirSync(path)
155
+ .filter((f) => f.endsWith(".jsonl") && f.startsWith("transitions"))
156
+ .sort();
157
+ if (files.length > 0) {
158
+ filePath = resolve(path, files[files.length - 1]);
159
+ }
160
+ else {
161
+ return [];
162
+ }
163
+ }
164
+ }
165
+ if (!existsSync(filePath))
166
+ return [];
167
+ try {
168
+ const content = readFileSync(filePath, "utf-8").trim();
169
+ if (!content)
170
+ return [];
171
+ return content
172
+ .split("\n")
173
+ .filter(Boolean)
174
+ .map((line) => JSON.parse(line));
175
+ }
176
+ catch {
177
+ return [];
178
+ }
179
+ }
180
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/dashboard/serve.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Arena Trade MCP Server
2
+ * Arena MCP Server
3
3
  *
4
- * Thin TypeScript MCP server that delegates trading operations to the
4
+ * Thin TypeScript MCP server that delegates operations to the
5
5
  * Python arena_agent runtime via a stdio child process bridge.
6
6
  */
7
7
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
package/dist/index.js CHANGED
@@ -1,32 +1,64 @@
1
1
  /**
2
- * Arena Trade MCP Server
2
+ * Arena MCP Server
3
3
  *
4
- * Thin TypeScript MCP server that delegates trading operations to the
4
+ * Thin TypeScript MCP server that delegates operations to the
5
5
  * Python arena_agent runtime via a stdio child process bridge.
6
6
  */
7
7
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
8
8
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
9
9
  import { PythonBridge } from "./python-bridge.js";
10
10
  import { findArenaRoot } from "./util/paths.js";
11
+ // Runtime tools (original 4)
11
12
  import * as marketState from "./tools/market-state.js";
12
13
  import * as competitionInfo from "./tools/competition-info.js";
13
14
  import * as tradeAction from "./tools/trade-action.js";
14
15
  import * as lastTransition from "./tools/last-transition.js";
16
+ // Native tools
15
17
  import * as runtimeStart from "./tools/runtime-start.js";
16
18
  import * as runtimeStop from "./tools/runtime-stop.js";
19
+ import * as runtimeConfig from "./tools/runtime-config.js";
20
+ // Platform API tools
21
+ import { all as marketDataTools } from "./tools/platform-market.js";
22
+ import { all as discoveryTools } from "./tools/platform-discovery.js";
23
+ import { all as registrationTools } from "./tools/platform-registration.js";
24
+ import { all as leaderboardTools } from "./tools/platform-leaderboard.js";
25
+ import { all as profileTools } from "./tools/platform-profile.js";
26
+ import { all as socialTools } from "./tools/platform-social.js";
27
+ import { all as notificationTools } from "./tools/platform-notifications.js";
28
+ import { all as systemTools } from "./tools/platform-system.js";
29
+ import { all as hubTools } from "./tools/platform-hub.js";
30
+ import { all as seasonTools } from "./tools/platform-seasons.js";
31
+ import { all as liveTools } from "./tools/platform-live.js";
32
+ import { all as predictionTools } from "./tools/platform-predictions.js";
33
+ import { all as compositeTools } from "./tools/platform-composite.js";
17
34
  export function createServer(arenaRoot) {
18
35
  const root = arenaRoot ?? findArenaRoot();
19
36
  const bridge = new PythonBridge(root);
20
37
  const server = new McpServer({
21
- name: "arena-trade",
22
- version: "0.1.0",
38
+ name: "arena-agent",
39
+ version: "0.2.0",
23
40
  });
24
41
  // --- Forwarded tools (Python bridge) ---
25
42
  const forwardedTools = [
43
+ // Runtime tools
26
44
  marketState,
27
45
  competitionInfo,
28
46
  tradeAction,
29
47
  lastTransition,
48
+ // Platform API tools
49
+ ...marketDataTools,
50
+ ...discoveryTools,
51
+ ...registrationTools,
52
+ ...leaderboardTools,
53
+ ...profileTools,
54
+ ...socialTools,
55
+ ...notificationTools,
56
+ ...systemTools,
57
+ ...hubTools,
58
+ ...seasonTools,
59
+ ...liveTools,
60
+ ...predictionTools,
61
+ ...compositeTools,
30
62
  ];
31
63
  for (const tool of forwardedTools) {
32
64
  server.tool(tool.name, tool.description, tool.inputSchema.shape, async (args) => {
@@ -64,6 +96,40 @@ export function createServer(arenaRoot) {
64
96
  ],
65
97
  };
66
98
  });
99
+ server.tool(runtimeConfig.readName, runtimeConfig.readDescription, runtimeConfig.readInputSchema.shape, async (args) => {
100
+ try {
101
+ const result = runtimeConfig.executeRead(args, root);
102
+ return {
103
+ content: [
104
+ { type: "text", text: JSON.stringify(result, null, 2) },
105
+ ],
106
+ };
107
+ }
108
+ catch (err) {
109
+ const msg = err instanceof Error ? err.message : String(err);
110
+ return {
111
+ content: [{ type: "text", text: `Error: ${msg}` }],
112
+ isError: true,
113
+ };
114
+ }
115
+ });
116
+ server.tool(runtimeConfig.updateName, runtimeConfig.updateDescription, runtimeConfig.updateInputSchema.shape, async (args) => {
117
+ try {
118
+ const result = runtimeConfig.executeUpdate(args, root);
119
+ return {
120
+ content: [
121
+ { type: "text", text: JSON.stringify(result, null, 2) },
122
+ ],
123
+ };
124
+ }
125
+ catch (err) {
126
+ const msg = err instanceof Error ? err.message : String(err);
127
+ return {
128
+ content: [{ type: "text", text: `Error: ${msg}` }],
129
+ isError: true,
130
+ };
131
+ }
132
+ });
67
133
  return server;
68
134
  }
69
135
  /**
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { spawnSync } from "node:child_process";
2
+ import { existsSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import { resolve } from "node:path";
2
5
  import { commandAvailable } from "./bootstrap-python.js";
3
6
  export function probeBackend(backend) {
4
7
  if (backend === "rule") {
@@ -171,13 +174,20 @@ function probeOpenClaw() {
171
174
  });
172
175
  const output = `${helpResult.stdout ?? ""}${helpResult.stderr ?? ""}`.trim();
173
176
  if (helpResult.status === 0) {
177
+ const agentDir = resolve(homedir(), ".openclaw", "agents", "arena-trader");
178
+ const agentRegistered = existsSync(agentDir);
179
+ const confidence = agentRegistered ? "medium" : "low";
180
+ const agentNote = agentRegistered
181
+ ? ""
182
+ : ". Agent 'arena-trader' not registered — run: arena-agent setup --client openclaw";
174
183
  return {
175
184
  backend: "openclaw",
176
185
  available: true,
177
186
  ready: true,
178
- confidence: "medium",
179
- summary: "ready (openclaw agent help succeeded)",
180
- details: output || "openclaw agent --help exited successfully.",
187
+ confidence,
188
+ summary: `ready (openclaw agent help succeeded${agentNote})`,
189
+ details: (output || "openclaw agent --help exited successfully.") +
190
+ (agentRegistered ? "" : `\nAgent directory missing: ${agentDir}`),
181
191
  };
182
192
  }
183
193
  return fallbackProbe("openclaw", ["--help"], "agent help failed");
@@ -1 +1 @@
1
- {"version":3,"file":"backend-probe.js","sourceRoot":"","sources":["../../src/setup/backend-probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAYzD,MAAM,UAAU,YAAY,CAAC,OAAqB;IAChD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO;YACL,OAAO;YACP,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,mDAAmD;SAC7D,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,MAAM,GAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,CAAW;aAChE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO;gBACP,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI;gBACX,UAAU,EAAE,QAAQ;gBACpB,OAAO,EAAE,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAClE,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aACtD,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO;gBACL,OAAO;gBACP,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE,QAAQ;gBACpB,OAAO,EAAE,cAAc,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC1E,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAC1D,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO;YACP,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,kCAAkC;YAC3C,OAAO,EAAE,6CAA6C;SACvD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,OAAO;YACP,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,YAAY,OAAO,GAAG;YAC/B,OAAO,EAAE,GAAG,OAAO,kBAAkB;SACtC,CAAC;IACJ,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,WAAW,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,UAAU,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,OAAO,WAAW,EAAE,CAAC;QACvB,KAAK,UAAU;YACb,OAAO,aAAa,EAAE,CAAC;QACzB;YACE,OAAO;gBACL,OAAO;gBACP,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,GAAG,OAAO,qCAAqC;gBACxD,OAAO,EAAE,mDAAmD;aAC7D,CAAC;IACN,CAAC;AACH,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;QACrD,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA2C,CAAC;YAC7E,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,OAAO;oBACL,OAAO,EAAE,QAAQ;oBACjB,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,OAAO,CAAC,KAAK;wBACpB,CAAC,CAAC,uBAAuB,OAAO,CAAC,KAAK,GAAG;wBACzC,CAAC,CAAC,uBAAuB;oBAC3B,OAAO,EAAE,MAAM;iBAChB,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;oBACL,OAAO,EAAE,QAAQ;oBACjB,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,QAAQ;oBACpB,OAAO,EAAE,2CAA2C;oBACpD,OAAO,EAAE,MAAM;iBAChB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,uCAAuC;YAChD,OAAO,EAAE,MAAM,IAAI,yCAAyC;SAC7D,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QACrD,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACrE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,WAAW,GACf,MAAM;aACH,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC7E,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,MAAM;YAClB,OAAO,EAAE,WAAW;gBAClB,CAAC,CAAC,UAAU,WAAW,GAAG;gBAC1B,CAAC,CAAC,gCAAgC;YACpC,OAAO,EAAE,MAAM,IAAI,yCAAyC;SAC7D,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;QAC3D,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,GAAG,YAAY,CAAC,MAAM,IAAI,EAAE,GAAG,YAAY,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACvF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO;YACL,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;YAC3C,OAAO,EAAE,YAAY;gBACnB,CAAC,CAAC,UAAU,SAAS,CAAC,YAAY,CAAC,GAAG;gBACtC,CAAC,CAAC,yCAAyC;YAC7C,OAAO,EAAE,YAAY,IAAI,yCAAyC;SACnE,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,oBAAoB,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;QAC5D,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7E,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,uCAAuC;YAChD,OAAO,EAAE,MAAM,IAAI,4CAA4C;SAChE,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,aAAa,CACpB,OAA+C,EAC/C,IAAc,EACd,aAAqB;IAErB,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;QACtC,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACrE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,OAAO;YACP,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,UAAU,OAAO,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG;YAC3D,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,uBAAuB;SACvE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,OAAO;QACP,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,cAAc,aAAa,GAAG;QACvC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,IAAI,SAAS,GAAG;KAClG,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,CACL,IAAI;SACD,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CACvE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"backend-probe.js","sourceRoot":"","sources":["../../src/setup/backend-probe.ts"],"names":[],"mappings":"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"}
@@ -137,7 +137,7 @@ function builderPythonReady(python) {
137
137
  return result.status === 0;
138
138
  }
139
139
  function runtimeDepsInstalled(python) {
140
- const result = spawnSync(python, ["-c", "import requests, yaml"], { stdio: "ignore" });
140
+ const result = spawnSync(python, ["-c", "import requests, yaml, numpy, talib"], { stdio: "ignore" });
141
141
  return result.status === 0;
142
142
  }
143
143
  export function commandAvailable(command) {
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-python.js","sourceRoot":"","sources":["../../src/setup/bootstrap-python.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAUxD,MAAM,UAAU,kBAAkB;IAChC,MAAM,UAAU,GAA+C;QAC7D,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;QAC3C,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;KAC3C,CAAC;IACF,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,UAAU,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE;YAC1D,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC,OAAO,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO;QACjC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC;QACjD,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAyB;IAC9D,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GACR,SAAS,KAAK,IAAI;YAChB,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACrD,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC;QACH,YAAY,CACV,UAAU,EACV,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,EAC5C,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,sEAAsE;IACxE,CAAC;IAED,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxE,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,kBAAkB,CAAC;YACjB,UAAU;YACV,UAAU,EAAE,aAAa;YACzB,cAAc,EAAE,OAAO,CAAC,SAAS,IAAI,KAAK;YAC1C,qBAAqB,EAAE,SAAS;SACjC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACxC,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChC,YAAY,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QAC/B,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,IAAI,IAAI,EAAE,CAAC;QACnC,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,YAAY,CACV,UAAU,EACV,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,EAC1C,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,qBAAqB,EAAE,CAAC;QAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,OAK3B;IACC,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,oBAAoB,CACxC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,qBAAqB,CAC9B,CAAC;QACF,YAAY,CACV,aAAa,EACb;YACE,IAAI;YACJ,KAAK;YACL,OAAO;YACP,OAAO,CAAC,UAAU;YAClB,aAAa;YACb,OAAO;YACP,WAAW;YACX,sBAAsB;SACvB,EACD,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,CAC9C,CAAC;QAEF,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QAC9C,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACtE,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB,EAAE,cAAsB;IACtE,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;QAC7C,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC;QAC9C,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC;QACrD,cAAc;KACf,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,KAAK,cAAc,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YAClE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3D,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,MAAM,MAAM,GAAG,SAAS,CACtB,MAAM,EACN,CAAC,IAAI,EAAE,8BAA8B,CAAC,EACtC,EAAE,KAAK,EAAE,QAAQ,EAAE,CACpB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,MAAM,GAAG,SAAS,CACtB,MAAM,EACN,CAAC,IAAI,EAAE,uBAAuB,CAAC,EAC/B,EAAE,KAAK,EAAE,QAAQ,EAAE,CACpB,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IACjE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAQD,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,GAAG,OAAO,oBAAoB;SACvC,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE;YACtC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,GAAG,OAAO,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;aACnD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,GAAG,OAAO,yDAAyD;KAC5E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bootstrap-python.js","sourceRoot":"","sources":["../../src/setup/bootstrap-python.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,25 @@
1
+ import type { ManagedAgent } from "../util/home.js";
1
2
  export declare function setupClaudeCode(arenaRoot: string): string;
3
+ export declare function setupClaudeCodeUser(arenaRoot: string): string;
2
4
  export declare function setupClaudeDesktop(arenaRoot: string): string;
3
5
  export declare function setupCursor(arenaRoot: string): string;
4
- export declare const CLIENT_SETUP: Record<string, (root: string) => string>;
6
+ export declare function setupGemini(arenaRoot: string): string;
7
+ export declare function setupCodex(arenaRoot: string): string;
8
+ /**
9
+ * Pure function: merge arena MCP server into Codex config.toml content.
10
+ * Removes any existing [mcp_servers.arena] and [mcp_servers.arena.*]
11
+ * sections, then appends the correct block.
12
+ */
13
+ export declare function mergeCodexToml(content: string, arenaRoot: string): string;
14
+ export declare function setupOpenClaw(arenaRoot: string, options?: {
15
+ mode?: string;
16
+ }): string;
17
+ export declare const CLIENT_SETUP: Record<string, (root: string, options?: {
18
+ mode?: string;
19
+ }) => string>;
20
+ interface WiredEntry {
21
+ backend: string;
22
+ configPath: string;
23
+ }
24
+ export declare function autoWireMcpForAgent(home: string, agent: ManagedAgent, detectedBackends: ManagedAgent[]): WiredEntry[];
25
+ export {};
@@ -1,6 +1,8 @@
1
1
  import { writeFileSync, readFileSync, existsSync, mkdirSync } from "node:fs";
2
2
  import { resolve, dirname } from "node:path";
3
3
  import { homedir } from "node:os";
4
+ import { ensureOpenClawTradingAgent } from "./openclaw-agent.js";
5
+ import { mergeArenaMcpServer, readOpenClawGlobalConfig, writeOpenClawGlobalConfig, openclawGlobalConfigPath, } from "./openclaw-config.js";
4
6
  function mergeConfig(path, serverName, entry) {
5
7
  let existing = {};
6
8
  if (existsSync(path)) {
@@ -17,6 +19,7 @@ function mergeConfig(path, serverName, entry) {
17
19
  mkdirSync(dirname(path), { recursive: true });
18
20
  writeFileSync(path, JSON.stringify(existing, null, 2) + "\n");
19
21
  }
22
+ // ── Claude Code (project-local .mcp.json) ──────────────────────────
20
23
  export function setupClaudeCode(arenaRoot) {
21
24
  const configPath = resolve(arenaRoot, ".mcp.json");
22
25
  mergeConfig(configPath, "arena", {
@@ -27,6 +30,18 @@ export function setupClaudeCode(arenaRoot) {
27
30
  });
28
31
  return configPath;
29
32
  }
33
+ // ── Claude Code (user-scope ~/.claude.json) ─────────────────────────
34
+ export function setupClaudeCodeUser(arenaRoot) {
35
+ const configPath = resolve(homedir(), ".claude.json");
36
+ mergeConfig(configPath, "arena", {
37
+ type: "stdio",
38
+ command: "arena-mcp",
39
+ args: ["serve"],
40
+ env: { ARENA_ROOT: arenaRoot },
41
+ });
42
+ return configPath;
43
+ }
44
+ // ── Claude Desktop ──────────────────────────────────────────────────
30
45
  export function setupClaudeDesktop(arenaRoot) {
31
46
  const platform = process.platform;
32
47
  let configDir;
@@ -44,6 +59,7 @@ export function setupClaudeDesktop(arenaRoot) {
44
59
  });
45
60
  return configPath;
46
61
  }
62
+ // ── Cursor ──────────────────────────────────────────────────────────
47
63
  export function setupCursor(arenaRoot) {
48
64
  const configPath = resolve(arenaRoot, ".cursor", "mcp.json");
49
65
  mergeConfig(configPath, "arena", {
@@ -53,9 +69,130 @@ export function setupCursor(arenaRoot) {
53
69
  });
54
70
  return configPath;
55
71
  }
72
+ // ── Gemini CLI (~/.gemini/settings.json) ────────────────────────────
73
+ export function setupGemini(arenaRoot) {
74
+ const configPath = resolve(homedir(), ".gemini", "settings.json");
75
+ mergeConfig(configPath, "arena", {
76
+ command: "arena-mcp",
77
+ args: ["serve"],
78
+ env: { ARENA_ROOT: arenaRoot },
79
+ });
80
+ return configPath;
81
+ }
82
+ // ── Codex CLI (~/.codex/config.toml) ────────────────────────────────
83
+ export function setupCodex(arenaRoot) {
84
+ const configPath = resolve(homedir(), ".codex", "config.toml");
85
+ mkdirSync(dirname(configPath), { recursive: true });
86
+ let content = "";
87
+ if (existsSync(configPath)) {
88
+ try {
89
+ content = readFileSync(configPath, "utf-8");
90
+ }
91
+ catch {
92
+ // Overwrite if unreadable
93
+ }
94
+ }
95
+ writeFileSync(configPath, mergeCodexToml(content, arenaRoot), "utf-8");
96
+ return configPath;
97
+ }
98
+ /**
99
+ * Pure function: merge arena MCP server into Codex config.toml content.
100
+ * Removes any existing [mcp_servers.arena] and [mcp_servers.arena.*]
101
+ * sections, then appends the correct block.
102
+ */
103
+ export function mergeCodexToml(content, arenaRoot) {
104
+ const lines = content.split("\n");
105
+ const filtered = [];
106
+ let inArenaSection = false;
107
+ for (const line of lines) {
108
+ const trimmed = line.trim();
109
+ if (/^\[/.test(trimmed)) {
110
+ inArenaSection = /^\[mcp_servers\.arena(?:\..*)?\]$/.test(trimmed);
111
+ }
112
+ if (!inArenaSection) {
113
+ filtered.push(line);
114
+ }
115
+ }
116
+ // Trim trailing blank lines
117
+ while (filtered.length > 0 && filtered[filtered.length - 1].trim() === "") {
118
+ filtered.pop();
119
+ }
120
+ const base = filtered.length > 0 ? filtered.join("\n") + "\n" : "";
121
+ const escaped = arenaRoot.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
122
+ const section = [
123
+ "",
124
+ "[mcp_servers.arena]",
125
+ 'command = "arena-mcp"',
126
+ 'args = ["serve"]',
127
+ "",
128
+ "[mcp_servers.arena.env]",
129
+ `ARENA_ROOT = "${escaped}"`,
130
+ "",
131
+ ].join("\n");
132
+ return base + section;
133
+ }
134
+ // ── OpenClaw ────────────────────────────────────────────────────────
135
+ export function setupOpenClaw(arenaRoot, options) {
136
+ const mode = options?.mode ?? "cli";
137
+ ensureOpenClawTradingAgent(arenaRoot);
138
+ if (mode === "mcp") {
139
+ const existing = readOpenClawGlobalConfig();
140
+ const merged = mergeArenaMcpServer(existing, arenaRoot);
141
+ writeOpenClawGlobalConfig(merged);
142
+ return openclawGlobalConfigPath();
143
+ }
144
+ return resolve(arenaRoot, "openclaw", "arena-trader");
145
+ }
146
+ // ── Client setup registry ───────────────────────────────────────────
56
147
  export const CLIENT_SETUP = {
57
148
  "claude-code": setupClaudeCode,
58
149
  "claude-desktop": setupClaudeDesktop,
59
150
  cursor: setupCursor,
151
+ gemini: setupGemini,
152
+ codex: setupCodex,
153
+ openclaw: setupOpenClaw,
60
154
  };
155
+ export function autoWireMcpForAgent(home, agent, detectedBackends) {
156
+ const wired = [];
157
+ const wireOne = (label, fn) => {
158
+ try {
159
+ const configPath = fn();
160
+ wired.push({ backend: label, configPath });
161
+ }
162
+ catch {
163
+ // Don't fail init if MCP wiring fails
164
+ }
165
+ };
166
+ switch (agent) {
167
+ case "claude":
168
+ wireOne("Claude Code", () => setupClaudeCodeUser(home));
169
+ break;
170
+ case "gemini":
171
+ wireOne("Gemini CLI", () => setupGemini(home));
172
+ break;
173
+ case "codex":
174
+ wireOne("Codex CLI", () => setupCodex(home));
175
+ break;
176
+ case "openclaw":
177
+ // Workspace already handled by ensureOpenClawTradingAgent in init.
178
+ // Also wire MCP so arena.* tools are available inside OpenClaw.
179
+ wireOne("OpenClaw", () => {
180
+ const existing = readOpenClawGlobalConfig();
181
+ const merged = mergeArenaMcpServer(existing, home);
182
+ writeOpenClawGlobalConfig(merged);
183
+ return openclawGlobalConfigPath();
184
+ });
185
+ break;
186
+ case "auto":
187
+ // Wire all detected backends except OpenClaw MCP (requires explicit opt-in)
188
+ for (const b of detectedBackends) {
189
+ if (b === "openclaw")
190
+ continue;
191
+ wired.push(...autoWireMcpForAgent(home, b, []));
192
+ }
193
+ break;
194
+ // "rule" → no MCP wiring needed
195
+ }
196
+ return wired;
197
+ }
61
198
  //# sourceMappingURL=client-configs.js.map