@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.
- package/README.md +107 -16
- package/dist/cli.js +306 -11
- package/dist/cli.js.map +1 -1
- package/dist/dashboard/index.html +519 -0
- package/dist/dashboard/serve.d.ts +6 -0
- package/dist/dashboard/serve.js +180 -0
- package/dist/dashboard/serve.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +70 -4
- package/dist/index.js.map +1 -1
- package/dist/setup/backend-probe.js +13 -3
- package/dist/setup/backend-probe.js.map +1 -1
- package/dist/setup/bootstrap-python.js +1 -1
- package/dist/setup/bootstrap-python.js.map +1 -1
- package/dist/setup/client-configs.d.ts +22 -1
- package/dist/setup/client-configs.js +137 -0
- package/dist/setup/client-configs.js.map +1 -1
- package/dist/setup/detect-python.js +1 -1
- package/dist/setup/detect-python.js.map +1 -1
- package/dist/setup/openclaw-config.d.ts +45 -0
- package/dist/setup/openclaw-config.js +154 -0
- package/dist/setup/openclaw-config.js.map +1 -0
- package/dist/tools/platform-composite.d.ts +47 -0
- package/dist/tools/platform-composite.js +27 -0
- package/dist/tools/platform-composite.js.map +1 -0
- package/dist/tools/platform-discovery.d.ts +107 -0
- package/dist/tools/platform-discovery.js +61 -0
- package/dist/tools/platform-discovery.js.map +1 -0
- package/dist/tools/platform-hub.d.ts +35 -0
- package/dist/tools/platform-hub.js +21 -0
- package/dist/tools/platform-hub.js.map +1 -0
- package/dist/tools/platform-leaderboard.d.ts +95 -0
- package/dist/tools/platform-leaderboard.js +49 -0
- package/dist/tools/platform-leaderboard.js.map +1 -0
- package/dist/tools/platform-live.d.ts +71 -0
- package/dist/tools/platform-live.js +27 -0
- package/dist/tools/platform-live.js.map +1 -0
- package/dist/tools/platform-market.d.ts +112 -0
- package/dist/tools/platform-market.js +58 -0
- package/dist/tools/platform-market.js.map +1 -0
- package/dist/tools/platform-notifications.d.ts +76 -0
- package/dist/tools/platform-notifications.js +37 -0
- package/dist/tools/platform-notifications.js.map +1 -0
- package/dist/tools/platform-predictions.d.ts +118 -0
- package/dist/tools/platform-predictions.js +44 -0
- package/dist/tools/platform-predictions.js.map +1 -0
- package/dist/tools/platform-profile.d.ts +181 -0
- package/dist/tools/platform-profile.js +92 -0
- package/dist/tools/platform-profile.js.map +1 -0
- package/dist/tools/platform-registration.d.ts +71 -0
- package/dist/tools/platform-registration.js +27 -0
- package/dist/tools/platform-registration.js.map +1 -0
- package/dist/tools/platform-seasons.d.ts +47 -0
- package/dist/tools/platform-seasons.js +23 -0
- package/dist/tools/platform-seasons.js.map +1 -0
- package/dist/tools/platform-social.d.ts +72 -0
- package/dist/tools/platform-social.js +36 -0
- package/dist/tools/platform-social.js.map +1 -0
- package/dist/tools/platform-system.d.ts +70 -0
- package/dist/tools/platform-system.js +34 -0
- package/dist/tools/platform-system.js.map +1 -0
- package/dist/tools/runtime-config.d.ts +34 -0
- package/dist/tools/runtime-config.js +102 -0
- package/dist/tools/runtime-config.js.map +1 -0
- package/dist/tools/runtime-start.d.ts +4 -0
- package/dist/tools/runtime-start.js +8 -2
- package/dist/tools/runtime-start.js.map +1 -1
- package/dist/util/home.d.ts +2 -0
- package/dist/util/home.js +5 -1
- package/dist/util/home.js.map +1 -1
- package/dist/util/paths.d.ts +10 -1
- package/dist/util/paths.js +12 -1
- package/dist/util/paths.js.map +1 -1
- package/package.json +9 -5
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const health: {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
6
|
+
pythonTool: string;
|
|
7
|
+
};
|
|
8
|
+
export declare const version: {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
12
|
+
pythonTool: string;
|
|
13
|
+
};
|
|
14
|
+
export declare const arenaHealth: {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
18
|
+
pythonTool: string;
|
|
19
|
+
};
|
|
20
|
+
export declare const trackEvent: {
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
inputSchema: z.ZodObject<{
|
|
24
|
+
competition_id: z.ZodNumber;
|
|
25
|
+
event_type: z.ZodString;
|
|
26
|
+
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
27
|
+
}, "strip", z.ZodTypeAny, {
|
|
28
|
+
competition_id: number;
|
|
29
|
+
event_type: string;
|
|
30
|
+
payload?: Record<string, unknown> | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
competition_id: number;
|
|
33
|
+
event_type: string;
|
|
34
|
+
payload?: Record<string, unknown> | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
pythonTool: string;
|
|
37
|
+
};
|
|
38
|
+
export declare const all: readonly [{
|
|
39
|
+
name: string;
|
|
40
|
+
description: string;
|
|
41
|
+
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
42
|
+
pythonTool: string;
|
|
43
|
+
}, {
|
|
44
|
+
name: string;
|
|
45
|
+
description: string;
|
|
46
|
+
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
47
|
+
pythonTool: string;
|
|
48
|
+
}, {
|
|
49
|
+
name: string;
|
|
50
|
+
description: string;
|
|
51
|
+
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
52
|
+
pythonTool: string;
|
|
53
|
+
}, {
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
inputSchema: z.ZodObject<{
|
|
57
|
+
competition_id: z.ZodNumber;
|
|
58
|
+
event_type: z.ZodString;
|
|
59
|
+
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
60
|
+
}, "strip", z.ZodTypeAny, {
|
|
61
|
+
competition_id: number;
|
|
62
|
+
event_type: string;
|
|
63
|
+
payload?: Record<string, unknown> | undefined;
|
|
64
|
+
}, {
|
|
65
|
+
competition_id: number;
|
|
66
|
+
event_type: string;
|
|
67
|
+
payload?: Record<string, unknown> | undefined;
|
|
68
|
+
}>;
|
|
69
|
+
pythonTool: string;
|
|
70
|
+
}];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const health = {
|
|
3
|
+
name: "arena.health",
|
|
4
|
+
description: "Get system health status including database, redis, and matching engine connectivity.",
|
|
5
|
+
inputSchema: z.object({}),
|
|
6
|
+
pythonTool: "varsity.health",
|
|
7
|
+
};
|
|
8
|
+
export const version = {
|
|
9
|
+
name: "arena.version",
|
|
10
|
+
description: "Get API version and build hash.",
|
|
11
|
+
inputSchema: z.object({}),
|
|
12
|
+
pythonTool: "varsity.version",
|
|
13
|
+
};
|
|
14
|
+
export const arenaHealth = {
|
|
15
|
+
name: "arena.arena_health",
|
|
16
|
+
description: "Get arena module health status.",
|
|
17
|
+
inputSchema: z.object({}),
|
|
18
|
+
pythonTool: "varsity.arena_health",
|
|
19
|
+
};
|
|
20
|
+
export const trackEvent = {
|
|
21
|
+
name: "arena.track_event",
|
|
22
|
+
description: "Track a user behaviour event.",
|
|
23
|
+
inputSchema: z.object({
|
|
24
|
+
competition_id: z.number().int().describe("Competition ID."),
|
|
25
|
+
event_type: z.string().describe("Event type identifier."),
|
|
26
|
+
payload: z
|
|
27
|
+
.record(z.unknown())
|
|
28
|
+
.optional()
|
|
29
|
+
.describe("Arbitrary JSON payload."),
|
|
30
|
+
}),
|
|
31
|
+
pythonTool: "varsity.track_event",
|
|
32
|
+
};
|
|
33
|
+
export const all = [health, version, arenaHealth, trackEvent];
|
|
34
|
+
//# sourceMappingURL=platform-system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-system.js","sourceRoot":"","sources":["../../src/tools/platform-system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,cAAc;IACpB,WAAW,EACT,uFAAuF;IACzF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,UAAU,EAAE,gBAAgB;CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,iCAAiC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,iCAAiC;IAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,+BAA+B;IAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC5D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACzD,OAAO,EAAE,CAAC;aACP,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;aACnB,QAAQ,EAAE;aACV,QAAQ,CAAC,yBAAyB,CAAC;KACvC,CAAC;IACF,UAAU,EAAE,qBAAqB;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAU,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const readName = "arena.runtime_config";
|
|
3
|
+
export declare const readDescription: string;
|
|
4
|
+
export declare const readInputSchema: z.ZodObject<{
|
|
5
|
+
config: z.ZodOptional<z.ZodString>;
|
|
6
|
+
agent: z.ZodDefault<z.ZodOptional<z.ZodEnum<["config", "rule", "claude", "gemini", "openclaw", "codex", "auto", "tap"]>>>;
|
|
7
|
+
}, "strip", z.ZodTypeAny, {
|
|
8
|
+
agent: "auto" | "rule" | "claude" | "gemini" | "openclaw" | "codex" | "config" | "tap";
|
|
9
|
+
config?: string | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
config?: string | undefined;
|
|
12
|
+
agent?: "auto" | "rule" | "claude" | "gemini" | "openclaw" | "codex" | "config" | "tap" | undefined;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function executeRead(args: z.infer<typeof readInputSchema>, arenaRoot: string): Record<string, unknown>;
|
|
15
|
+
export declare const updateName = "arena.update_runtime_config";
|
|
16
|
+
export declare const updateDescription: string;
|
|
17
|
+
export declare const updateInputSchema: z.ZodObject<{
|
|
18
|
+
config: z.ZodOptional<z.ZodString>;
|
|
19
|
+
agent: z.ZodDefault<z.ZodOptional<z.ZodEnum<["config", "rule", "claude", "gemini", "openclaw", "codex", "auto", "tap"]>>>;
|
|
20
|
+
overrides: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
21
|
+
}, "strip", z.ZodTypeAny, {
|
|
22
|
+
agent: "auto" | "rule" | "claude" | "gemini" | "openclaw" | "codex" | "config" | "tap";
|
|
23
|
+
overrides: Record<string, unknown>;
|
|
24
|
+
config?: string | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
overrides: Record<string, unknown>;
|
|
27
|
+
config?: string | undefined;
|
|
28
|
+
agent?: "auto" | "rule" | "claude" | "gemini" | "openclaw" | "codex" | "config" | "tap" | undefined;
|
|
29
|
+
}>;
|
|
30
|
+
export declare function executeUpdate(args: z.infer<typeof updateInputSchema>, arenaRoot: string): {
|
|
31
|
+
config_path: string;
|
|
32
|
+
updated_fields: string[];
|
|
33
|
+
config: Record<string, unknown>;
|
|
34
|
+
};
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { readFileSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { parse, stringify } from "yaml";
|
|
4
|
+
import { findConfigPath } from "./runtime-start.js";
|
|
5
|
+
// ── arena.runtime_config — read current config ─────────────────────
|
|
6
|
+
export const readName = "arena.runtime_config";
|
|
7
|
+
export const readDescription = "Read the current runtime config as JSON. Shows all settings the agent can customize: " +
|
|
8
|
+
"interval, tick_interval_seconds, kline_limit, strategy (sizing, tpsl, entry_filters, exit_rules), " +
|
|
9
|
+
"risk_limits, signal_indicators, policy (indicator_mode, timeout_seconds), and more.";
|
|
10
|
+
export const readInputSchema = z.object({
|
|
11
|
+
config: z
|
|
12
|
+
.string()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Path to config file. Omit for default."),
|
|
15
|
+
agent: z
|
|
16
|
+
.enum(["config", "rule", "claude", "gemini", "openclaw", "codex", "auto", "tap"])
|
|
17
|
+
.optional()
|
|
18
|
+
.default("auto")
|
|
19
|
+
.describe("Agent type (determines which default config to read)."),
|
|
20
|
+
});
|
|
21
|
+
export function executeRead(args, arenaRoot) {
|
|
22
|
+
const configPath = findConfigPath(arenaRoot, args.config, args.agent);
|
|
23
|
+
const content = readFileSync(configPath, "utf-8");
|
|
24
|
+
const config = parse(content);
|
|
25
|
+
return { config_path: configPath, ...config };
|
|
26
|
+
}
|
|
27
|
+
// ── arena.update_runtime_config — modify config fields ──────────────
|
|
28
|
+
export const updateName = "arena.update_runtime_config";
|
|
29
|
+
export const updateDescription = "Update runtime config fields. Deep-merges your changes into the existing YAML config. " +
|
|
30
|
+
"Use this to customize strategy before calling runtime_start. " +
|
|
31
|
+
"Changeable: interval, tick_interval_seconds, kline_limit, orderbook_depth, " +
|
|
32
|
+
"strategy (sizing, tpsl, entry_filters, exit_rules), risk_limits, " +
|
|
33
|
+
"signal_indicators, policy (indicator_mode, extra_instructions). " +
|
|
34
|
+
"Cannot change: symbol (fixed per competition).";
|
|
35
|
+
export const updateInputSchema = z.object({
|
|
36
|
+
config: z
|
|
37
|
+
.string()
|
|
38
|
+
.optional()
|
|
39
|
+
.describe("Path to config file. Omit for default."),
|
|
40
|
+
agent: z
|
|
41
|
+
.enum(["config", "rule", "claude", "gemini", "openclaw", "codex", "auto", "tap"])
|
|
42
|
+
.optional()
|
|
43
|
+
.default("auto")
|
|
44
|
+
.describe("Agent type (determines which default config to read)."),
|
|
45
|
+
overrides: z
|
|
46
|
+
.record(z.unknown())
|
|
47
|
+
.describe("JSON object to deep-merge into config. Examples: " +
|
|
48
|
+
'{ "interval": "5m", "tick_interval_seconds": 15 } or ' +
|
|
49
|
+
'{ "strategy": { "sizing": { "type": "fixed", "size": 0.005 } } } or ' +
|
|
50
|
+
'{ "risk_limits": { "max_trades": 30, "min_seconds_between_trades": 120 } } or ' +
|
|
51
|
+
'{ "signal_indicators": [{ "indicator": "RSI", "params": { "period": 14 } }] }'),
|
|
52
|
+
});
|
|
53
|
+
/** Fields agents must not change (tied to competition or infrastructure). */
|
|
54
|
+
const PROTECTED_FIELDS = new Set(["symbol", "competition_id"]);
|
|
55
|
+
export function executeUpdate(args, arenaRoot) {
|
|
56
|
+
const configPath = findConfigPath(arenaRoot, args.config, args.agent);
|
|
57
|
+
const content = readFileSync(configPath, "utf-8");
|
|
58
|
+
const config = parse(content);
|
|
59
|
+
// Strip protected fields from overrides
|
|
60
|
+
const overrides = { ...args.overrides };
|
|
61
|
+
for (const key of PROTECTED_FIELDS) {
|
|
62
|
+
if (key in overrides) {
|
|
63
|
+
delete overrides[key];
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const updatedFields = collectKeys(overrides);
|
|
67
|
+
deepMerge(config, overrides);
|
|
68
|
+
writeFileSync(configPath, stringify(config, { indent: 2 }), "utf-8");
|
|
69
|
+
return { config_path: configPath, updated_fields: updatedFields, config };
|
|
70
|
+
}
|
|
71
|
+
// ── Helpers ─────────────────────────────────────────────────────────
|
|
72
|
+
function deepMerge(target, source) {
|
|
73
|
+
for (const [key, value] of Object.entries(source)) {
|
|
74
|
+
if (value !== null &&
|
|
75
|
+
typeof value === "object" &&
|
|
76
|
+
!Array.isArray(value) &&
|
|
77
|
+
typeof target[key] === "object" &&
|
|
78
|
+
target[key] !== null &&
|
|
79
|
+
!Array.isArray(target[key])) {
|
|
80
|
+
deepMerge(target[key], value);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
target[key] = value;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function collectKeys(obj, prefix = "") {
|
|
88
|
+
const keys = [];
|
|
89
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
90
|
+
const path = prefix ? `${prefix}.${key}` : key;
|
|
91
|
+
if (value !== null &&
|
|
92
|
+
typeof value === "object" &&
|
|
93
|
+
!Array.isArray(value)) {
|
|
94
|
+
keys.push(...collectKeys(value, path));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
keys.push(path);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return keys;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=runtime-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../../src/tools/runtime-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { z } from "zod";
|
|
|
2
2
|
export declare const name = "arena.runtime_start";
|
|
3
3
|
export declare const description = "Start the autonomous trading agent runtime in the background.";
|
|
4
4
|
export declare const inputSchema: z.ZodObject<{
|
|
5
|
+
competition_id: z.ZodOptional<z.ZodNumber>;
|
|
5
6
|
config: z.ZodOptional<z.ZodString>;
|
|
6
7
|
agent: z.ZodDefault<z.ZodOptional<z.ZodEnum<["config", "rule", "claude", "gemini", "openclaw", "codex", "auto", "tap"]>>>;
|
|
7
8
|
model: z.ZodOptional<z.ZodString>;
|
|
@@ -10,10 +11,12 @@ export declare const inputSchema: z.ZodObject<{
|
|
|
10
11
|
agent: "auto" | "rule" | "claude" | "gemini" | "openclaw" | "codex" | "config" | "tap";
|
|
11
12
|
config?: string | undefined;
|
|
12
13
|
model?: string | undefined;
|
|
14
|
+
competition_id?: number | undefined;
|
|
13
15
|
iterations?: number | undefined;
|
|
14
16
|
}, {
|
|
15
17
|
config?: string | undefined;
|
|
16
18
|
model?: string | undefined;
|
|
19
|
+
competition_id?: number | undefined;
|
|
17
20
|
agent?: "auto" | "rule" | "claude" | "gemini" | "openclaw" | "codex" | "config" | "tap" | undefined;
|
|
18
21
|
iterations?: number | undefined;
|
|
19
22
|
}>;
|
|
@@ -27,3 +30,4 @@ export declare function stop(): {
|
|
|
27
30
|
status: string;
|
|
28
31
|
pid: number | null;
|
|
29
32
|
};
|
|
33
|
+
export declare function findConfigPath(arenaRoot: string, rawConfig: string | undefined, agent: string): string;
|
|
@@ -8,6 +8,10 @@ import { isManagedArenaHome, readArenaHomeState } from "../util/home.js";
|
|
|
8
8
|
export const name = "arena.runtime_start";
|
|
9
9
|
export const description = "Start the autonomous trading agent runtime in the background.";
|
|
10
10
|
export const inputSchema = z.object({
|
|
11
|
+
competition_id: z
|
|
12
|
+
.number()
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Competition ID to trade in. Overrides the YAML config value."),
|
|
11
15
|
config: z
|
|
12
16
|
.string()
|
|
13
17
|
.optional()
|
|
@@ -25,7 +29,7 @@ export const inputSchema = z.object({
|
|
|
25
29
|
});
|
|
26
30
|
let runtimeProcess = null;
|
|
27
31
|
export function execute(args, arenaRoot) {
|
|
28
|
-
const configPath =
|
|
32
|
+
const configPath = findConfigPath(arenaRoot, args.config, args.agent);
|
|
29
33
|
if (runtimeProcess && !runtimeProcess.killed) {
|
|
30
34
|
return {
|
|
31
35
|
pid: runtimeProcess.pid ?? null,
|
|
@@ -45,6 +49,8 @@ export function execute(args, arenaRoot) {
|
|
|
45
49
|
"--config",
|
|
46
50
|
configPath,
|
|
47
51
|
];
|
|
52
|
+
if (args.competition_id !== undefined)
|
|
53
|
+
cmdArgs.push("--competition-id", String(args.competition_id));
|
|
48
54
|
if (args.model)
|
|
49
55
|
cmdArgs.push("--model", args.model);
|
|
50
56
|
if (args.iterations !== undefined)
|
|
@@ -72,7 +78,7 @@ export function stop() {
|
|
|
72
78
|
runtimeProcess = null;
|
|
73
79
|
return { status: "stopped", pid };
|
|
74
80
|
}
|
|
75
|
-
function
|
|
81
|
+
export function findConfigPath(arenaRoot, rawConfig, agent) {
|
|
76
82
|
const candidates = [];
|
|
77
83
|
if (rawConfig) {
|
|
78
84
|
if (isAbsolute(rawConfig)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-start.js","sourceRoot":"","sources":["../../src/tools/runtime-start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEzE,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GACtB,+DAA+D,CAAC;AAElE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8BAA8B,CAAC;IAC3C,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;SAChF,QAAQ,EAAE;SACV,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,aAAa,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACtE,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,qCAAqC,CAAC;CACnD,CAAC,CAAC;AAEH,IAAI,cAAc,GAAwB,IAAI,CAAC;AAE/C,MAAM,UAAU,OAAO,CACrB,IAAiC,EACjC,SAAiB;IAEjB,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"runtime-start.js","sourceRoot":"","sources":["../../src/tools/runtime-start.ts"],"names":[],"mappings":"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"}
|
package/dist/util/home.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface ArenaHomeState {
|
|
|
10
10
|
liveTrading: boolean;
|
|
11
11
|
monitorPort: number;
|
|
12
12
|
pythonInstallSource: string;
|
|
13
|
+
openclawMode?: "cli" | "mcp";
|
|
13
14
|
profiles: {
|
|
14
15
|
agentExec: string;
|
|
15
16
|
rule: string;
|
|
@@ -35,6 +36,7 @@ export declare function createArenaHomeState(home: string, options: {
|
|
|
35
36
|
liveTrading: boolean;
|
|
36
37
|
monitorPort?: number;
|
|
37
38
|
pythonInstallSource?: string;
|
|
39
|
+
openclawMode?: "cli" | "mcp";
|
|
38
40
|
}): ArenaHomeState;
|
|
39
41
|
export declare function writeArenaHomeState(home: string, state: ArenaHomeState): void;
|
|
40
42
|
export declare function writeArenaEnvFile(home: string, apiKey: string): void;
|
package/dist/util/home.js
CHANGED
|
@@ -72,7 +72,7 @@ export function ensureArenaHomeDirectories(home) {
|
|
|
72
72
|
mkdirSync(logsDirPath(home), { recursive: true });
|
|
73
73
|
}
|
|
74
74
|
export function createArenaHomeState(home, options) {
|
|
75
|
-
|
|
75
|
+
const state = {
|
|
76
76
|
version: 1,
|
|
77
77
|
createdAt: new Date().toISOString(),
|
|
78
78
|
defaultAgent: options.defaultAgent,
|
|
@@ -85,6 +85,10 @@ export function createArenaHomeState(home, options) {
|
|
|
85
85
|
rule: profilePath(home, "rule"),
|
|
86
86
|
},
|
|
87
87
|
};
|
|
88
|
+
if (options.openclawMode) {
|
|
89
|
+
state.openclawMode = options.openclawMode;
|
|
90
|
+
}
|
|
91
|
+
return state;
|
|
88
92
|
}
|
|
89
93
|
export function writeArenaHomeState(home, state) {
|
|
90
94
|
ensureArenaHomeDirectories(home);
|
package/dist/util/home.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/util/home.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAC9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AACzC,MAAM,CAAC,MAAM,6BAA6B,GACxC,OAAO,CAAC,GAAG,CAAC,2BAA2B;IACvC,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"home.js","sourceRoot":"","sources":["../../src/util/home.ts"],"names":[],"mappings":"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"}
|
package/dist/util/paths.d.ts
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Find the arena project root
|
|
2
|
+
* Find the arena project root.
|
|
3
|
+
*
|
|
4
|
+
* Resolution order (first match wins):
|
|
5
|
+
* 1. ARENA_ROOT or ARENA_HOME env var
|
|
6
|
+
* 2. Walk up from cwd looking for an arena home marker or repo root
|
|
7
|
+
* 3. ~/.arena-agent (managed home created by `arena-agent init`)
|
|
8
|
+
* 4. Bundled repo root (dev installs via npm link)
|
|
9
|
+
*
|
|
10
|
+
* The managed home at ~/.arena-agent is the recommended path for agents.
|
|
11
|
+
* After `arena-agent init`, no env vars are needed — the CLI always finds it.
|
|
3
12
|
*/
|
|
4
13
|
export declare function findArenaRoot(): string;
|
|
5
14
|
/**
|
package/dist/util/paths.js
CHANGED
|
@@ -2,7 +2,16 @@ import { existsSync } from "node:fs";
|
|
|
2
2
|
import { resolve, dirname } from "node:path";
|
|
3
3
|
import { defaultArenaHome, isArenaHome, localPythonSourcePath } from "./home.js";
|
|
4
4
|
/**
|
|
5
|
-
* Find the arena project root
|
|
5
|
+
* Find the arena project root.
|
|
6
|
+
*
|
|
7
|
+
* Resolution order (first match wins):
|
|
8
|
+
* 1. ARENA_ROOT or ARENA_HOME env var
|
|
9
|
+
* 2. Walk up from cwd looking for an arena home marker or repo root
|
|
10
|
+
* 3. ~/.arena-agent (managed home created by `arena-agent init`)
|
|
11
|
+
* 4. Bundled repo root (dev installs via npm link)
|
|
12
|
+
*
|
|
13
|
+
* The managed home at ~/.arena-agent is the recommended path for agents.
|
|
14
|
+
* After `arena-agent init`, no env vars are needed — the CLI always finds it.
|
|
6
15
|
*/
|
|
7
16
|
export function findArenaRoot() {
|
|
8
17
|
const envRoot = process.env.ARENA_ROOT;
|
|
@@ -23,6 +32,8 @@ export function findArenaRoot() {
|
|
|
23
32
|
break;
|
|
24
33
|
dir = parent;
|
|
25
34
|
}
|
|
35
|
+
// ~/.arena-agent is the standard managed home — always check it.
|
|
36
|
+
// This is the path agents rely on after `arena-agent init`.
|
|
26
37
|
const managedHome = defaultArenaHome();
|
|
27
38
|
if (isArenaHome(managedHome)) {
|
|
28
39
|
return managedHome;
|
package/dist/util/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/util/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEjF
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/util/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAEjF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACvC,IAAI,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IACvC,IAAI,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC7C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IAED,iEAAiE;IACjE,4DAA4D;IAC5D,MAAM,WAAW,GAAG,gBAAgB,EAAE,CAAC;IACvC,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,WAAW,GAAG,qBAAqB,EAAE,CAAC;IAC5C,IAAI,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;QAC5C,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC;QAC7C,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,UAAU;KACjE,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,IAAI,KAAK,CACb,2BAA2B,SAAS,4DAA4D,CACjG,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@varsity-arena/agent",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Arena
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Full-platform Arena agent toolkit — 49 MCP tools, web dashboard, CLI for competitions/trading/leaderboards",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/varsity-tech-product/arena.git",
|
|
@@ -19,19 +19,23 @@
|
|
|
19
19
|
"main": "./dist/index.js",
|
|
20
20
|
"types": "./dist/index.d.ts",
|
|
21
21
|
"scripts": {
|
|
22
|
-
"build": "tsc",
|
|
22
|
+
"build": "tsc && mkdir -p dist/dashboard && cp src/dashboard/index.html dist/dashboard/",
|
|
23
23
|
"prepare": "npm run build",
|
|
24
24
|
"prepack": "npm run build",
|
|
25
25
|
"dev": "tsc --watch",
|
|
26
|
-
"serve": "node dist/index.js"
|
|
26
|
+
"serve": "node dist/index.js",
|
|
27
|
+
"test": "vitest run",
|
|
28
|
+
"test:watch": "vitest"
|
|
27
29
|
},
|
|
28
30
|
"dependencies": {
|
|
29
31
|
"@modelcontextprotocol/sdk": "^1.12.0",
|
|
32
|
+
"yaml": "^2.8.2",
|
|
30
33
|
"zod": "^3.24.0"
|
|
31
34
|
},
|
|
32
35
|
"devDependencies": {
|
|
36
|
+
"@types/node": "^22.0.0",
|
|
33
37
|
"typescript": "^5.8.0",
|
|
34
|
-
"
|
|
38
|
+
"vitest": "^3.0.0"
|
|
35
39
|
},
|
|
36
40
|
"engines": {
|
|
37
41
|
"node": ">=18"
|