@treenity/core 3.0.0 → 3.0.1
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 +78 -0
- package/dist/chain.d.ts +3 -4
- package/dist/chain.d.ts.map +1 -1
- package/dist/chain.js.map +1 -1
- package/dist/client/trpc.d.ts.map +1 -1
- package/dist/client/trpc.js +1 -0
- package/dist/client/trpc.js.map +1 -1
- package/dist/comp/index.d.ts +3 -4
- package/dist/comp/index.d.ts.map +1 -1
- package/dist/comp/index.js +5 -4
- package/dist/comp/index.js.map +1 -1
- package/dist/comp/needs.d.ts.map +1 -1
- package/dist/comp/needs.js +3 -3
- package/dist/comp/needs.js.map +1 -1
- package/dist/core/component.d.ts +10 -8
- package/dist/core/component.d.ts.map +1 -1
- package/dist/core/component.js +4 -8
- package/dist/core/component.js.map +1 -1
- package/dist/core/context.d.ts +2 -2
- package/dist/core/context.d.ts.map +1 -1
- package/dist/core/path.d.ts.map +1 -1
- package/dist/core/path.js +7 -3
- package/dist/core/path.js.map +1 -1
- package/dist/core/registry.d.ts +2 -1
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js.map +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +30 -0
- package/dist/log.d.ts.map +1 -1
- package/dist/log.js +119 -0
- package/dist/log.js.map +1 -1
- package/dist/mod/examples/ticker/service.js +2 -3
- package/dist/mod/examples/ticker/service.js.map +1 -1
- package/dist/mod/index.d.ts +1 -1
- package/dist/mod/index.d.ts.map +1 -1
- package/dist/mod/index.js +1 -1
- package/dist/mod/index.js.map +1 -1
- package/dist/mod/loader.d.ts +1 -0
- package/dist/mod/loader.d.ts.map +1 -1
- package/dist/mod/loader.js +27 -1
- package/dist/mod/loader.js.map +1 -1
- package/dist/mods/clients.d.ts +2 -0
- package/dist/mods/clients.d.ts.map +1 -0
- package/dist/mods/clients.js +3 -0
- package/dist/mods/clients.js.map +1 -0
- package/dist/mods/llm/index.js +1 -1
- package/dist/mods/llm/index.js.map +1 -1
- package/dist/mods/mcp/server.d.ts +0 -1
- package/dist/mods/mcp/server.js +0 -1
- package/dist/mods/mcp/service.d.ts +0 -1
- package/dist/mods/mcp/service.js +0 -1
- package/dist/mods/mcp/types.d.ts +0 -1
- package/dist/mods/mcp/types.js +0 -1
- package/dist/mods/servers.d.ts +4 -0
- package/dist/mods/servers.d.ts.map +1 -0
- package/dist/mods/servers.js +5 -0
- package/dist/mods/servers.js.map +1 -0
- package/dist/mods/treenity/builtins.d.ts +2 -0
- package/dist/mods/treenity/builtins.d.ts.map +1 -0
- package/dist/mods/treenity/builtins.js +18 -0
- package/dist/mods/treenity/builtins.js.map +1 -0
- package/dist/mods/treenity/logs.d.ts +18 -0
- package/dist/mods/treenity/logs.d.ts.map +1 -0
- package/dist/mods/treenity/logs.js +17 -0
- package/dist/mods/treenity/logs.js.map +1 -0
- package/dist/mods/treenity/seed.js +29 -27
- package/dist/mods/treenity/seed.js.map +1 -1
- package/dist/mods/treenity/server.d.ts +2 -0
- package/dist/mods/treenity/server.d.ts.map +1 -1
- package/dist/mods/treenity/server.js +2 -0
- package/dist/mods/treenity/server.js.map +1 -1
- package/dist/mods/uix/client.js +4 -4
- package/dist/mods/uix/client.js.map +1 -1
- package/dist/mods/uix/compile.d.ts.map +1 -1
- package/dist/mods/uix/compile.js +4 -2
- package/dist/mods/uix/compile.js.map +1 -1
- package/dist/schema/_test-fixture.d.ts +11 -0
- package/dist/schema/_test-fixture.d.ts.map +1 -0
- package/dist/schema/_test-fixture.js +8 -0
- package/dist/schema/_test-fixture.js.map +1 -0
- package/dist/schema/types.d.ts +1 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/server/actions.js +1 -1
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +4 -3
- package/dist/server/auth.js.map +1 -1
- package/dist/server/client.d.ts +10 -3
- package/dist/server/client.d.ts.map +1 -1
- package/dist/server/client.js +1 -1
- package/dist/server/client.js.map +1 -1
- package/dist/server/doc-index.d.ts.map +1 -1
- package/dist/server/doc-index.js +13 -12
- package/dist/server/doc-index.js.map +1 -1
- package/dist/server/factory.d.ts +6 -0
- package/dist/server/factory.d.ts.map +1 -1
- package/dist/server/factory.js +44 -25
- package/dist/server/factory.js.map +1 -1
- package/dist/server/main.d.ts +0 -4
- package/dist/server/main.d.ts.map +1 -1
- package/dist/server/main.js +4 -30
- package/dist/server/main.js.map +1 -1
- package/dist/server/mcp.d.ts +0 -1
- package/dist/server/mcp.js +0 -1
- package/dist/server/migrate.js +3 -3
- package/dist/server/migrate.js.map +1 -1
- package/dist/server/mods-mount.d.ts +0 -1
- package/dist/server/mods-mount.d.ts.map +1 -1
- package/dist/server/mods-mount.js +0 -1
- package/dist/server/mods-mount.js.map +1 -1
- package/dist/server/mount-adapters.js +9 -4
- package/dist/server/mount-adapters.js.map +1 -1
- package/dist/server/prefab.d.ts +2 -2
- package/dist/server/prefab.d.ts.map +1 -1
- package/dist/server/prefab.js +4 -2
- package/dist/server/prefab.js.map +1 -1
- package/dist/server/refs.d.ts +3 -0
- package/dist/server/refs.d.ts.map +1 -0
- package/dist/server/refs.js +59 -0
- package/dist/server/refs.js.map +1 -0
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +13 -3
- package/dist/server/server.js.map +1 -1
- package/dist/server/sub.js.map +1 -1
- package/dist/server/trpc.d.ts +7 -0
- package/dist/server/trpc.d.ts.map +1 -1
- package/dist/server/trpc.js +6 -2
- package/dist/server/trpc.js.map +1 -1
- package/dist/tree/fs.d.ts.map +1 -1
- package/dist/tree/fs.js +20 -18
- package/dist/tree/fs.js.map +1 -1
- package/dist/tree/index.d.ts.map +1 -1
- package/dist/tree/index.js +2 -1
- package/dist/tree/index.js.map +1 -1
- package/dist/tree-chain.d.ts +2 -1
- package/dist/tree-chain.d.ts.map +1 -1
- package/dist/tree-chain.js +5 -3
- package/dist/tree-chain.js.map +1 -1
- package/dist/uri.d.ts.map +1 -1
- package/dist/uri.js +8 -3
- package/dist/uri.js.map +1 -1
- package/package.json +48 -6
- package/src/chain.ts +7 -5
- package/src/client/trpc.ts +1 -0
- package/src/comp/index.test.ts +45 -9
- package/src/comp/index.ts +19 -8
- package/src/comp/needs.ts +3 -3
- package/src/core/component.ts +16 -14
- package/src/core/context.ts +4 -4
- package/src/core/index.test.ts +22 -1
- package/src/core/path.ts +6 -3
- package/src/core/registry.ts +4 -7
- package/src/core.ts +1 -1
- package/src/index.ts +1 -0
- package/src/log.ts +172 -1
- package/src/mod/docs/07-realtime.md +19 -11
- package/src/mod/docs/08-services.md +10 -8
- package/src/mod/docs/10-acl.md +1 -1
- package/src/mod/docs/12-conventions.md +43 -0
- package/src/mod/docs/13-example.md +36 -26
- package/src/mod/docs/14-mod-format.md +81 -8
- package/src/mod/examples/ticker/service.ts +2 -3
- package/src/mod/index.ts +1 -1
- package/src/mod/loader.test.ts +53 -1
- package/src/mod/loader.ts +34 -1
- package/src/mods/clients.ts +2 -0
- package/src/mods/llm/index.ts +1 -1
- package/src/mods/servers.ts +4 -0
- package/src/mods/treenity/builtins.ts +21 -0
- package/src/mods/treenity/logs.ts +26 -0
- package/src/mods/treenity/seed.ts +30 -28
- package/src/mods/treenity/server.ts +2 -0
- package/src/mods/uix/client.ts +4 -4
- package/src/mods/uix/compile.ts +4 -2
- package/src/schema/_test-fixture.ts +12 -0
- package/src/schema/generated/ai.agent.json +133 -0
- package/src/schema/generated/ai.approval.json +105 -0
- package/src/schema/generated/ai.approvals.json +24 -0
- package/src/schema/generated/ai.assignment.json +28 -0
- package/src/schema/generated/ai.plan.json +84 -0
- package/src/schema/generated/ai.policy.json +105 -0
- package/src/schema/generated/ai.pool.json +37 -0
- package/src/schema/generated/ai.thread.json +64 -0
- package/src/schema/generated/board.kanban.json +7 -0
- package/src/schema/generated/canary.item.json +40 -0
- package/src/schema/generated/claude-search.json +20 -0
- package/src/schema/generated/craft.product.json +47 -0
- package/src/schema/generated/craft.shop.json +94 -0
- package/src/schema/generated/craft.subscription.json +27 -0
- package/src/schema/generated/examples.demo.sensor.reading.json +25 -0
- package/src/schema/generated/flow.node.action.json +61 -0
- package/src/schema/generated/flow.node.code.json +43 -0
- package/src/schema/generated/flow.node.condition.json +37 -0
- package/src/schema/generated/flow.node.end.json +35 -0
- package/src/schema/generated/flow.node.http.json +65 -0
- package/src/schema/generated/flow.node.llm.json +67 -0
- package/src/schema/generated/flow.node.loop.json +49 -0
- package/src/schema/generated/flow.node.start.json +39 -0
- package/src/schema/generated/flow.scenario.json +118 -0
- package/src/schema/generated/grove.attempt.json +199 -0
- package/src/schema/generated/grove.path.json +93 -0
- package/src/schema/generated/grove.review.json +27 -0
- package/src/schema/generated/grove.task.json +164 -0
- package/src/schema/generated/intel.scenario.json +58 -0
- package/src/schema/generated/intel.signal.json +113 -0
- package/src/schema/generated/intel.world.json +15 -0
- package/src/schema/generated/landing.block.json +201 -0
- package/src/schema/generated/landing.page.json +84 -0
- package/src/schema/generated/metatron.config.json +119 -0
- package/src/schema/generated/metatron.permission.json +36 -0
- package/src/schema/generated/metatron.skill.json +36 -0
- package/src/schema/generated/metatron.task.json +114 -0
- package/src/schema/generated/metatron.template.json +26 -0
- package/src/schema/generated/metatron.workspace.json +60 -0
- package/src/schema/generated/order.status.json +21 -0
- package/src/schema/generated/polyhope.backtest.json +161 -0
- package/src/schema/generated/polyhope.feed.json +33 -0
- package/src/schema/generated/polyhope.run.json +94 -0
- package/src/schema/generated/polyhope.strategy.json +152 -0
- package/src/schema/generated/polymax.activity.json +65 -0
- package/src/schema/generated/polymax.aggr-feed.json +28 -0
- package/src/schema/generated/polymax.aggr.json +20 -0
- package/src/schema/generated/polymax.alert.json +56 -0
- package/src/schema/generated/polymax.bot-config.json +14 -0
- package/src/schema/generated/polymax.bot-status.json +35 -0
- package/src/schema/generated/polymax.classification.json +55 -0
- package/src/schema/generated/polymax.deposits.json +45 -0
- package/src/schema/generated/polymax.holding.json +55 -0
- package/src/schema/generated/polymax.identity.json +71 -0
- package/src/schema/generated/polymax.lb-entry.json +75 -0
- package/src/schema/generated/polymax.leaderboard.json +37 -0
- package/src/schema/generated/polymax.market-ref.json +25 -0
- package/src/schema/generated/polymax.performance.json +65 -0
- package/src/schema/generated/polymax.profile.json +16 -0
- package/src/schema/generated/polymax.scan-result.json +50 -0
- package/src/schema/generated/polymax.status.json +40 -0
- package/src/schema/generated/polymax.tags.json +53 -0
- package/src/schema/generated/polymax.trader.json +16 -0
- package/src/schema/generated/polymax.wallet-market.json +50 -0
- package/src/schema/generated/polymax.wallet-pnl.json +35 -0
- package/src/schema/generated/pult.concept.json +53 -0
- package/src/schema/generated/pult.config.json +227 -0
- package/src/schema/generated/pult.connector.json +72 -0
- package/src/schema/generated/pult.market.json +113 -0
- package/src/schema/generated/pult.order.json +113 -0
- package/src/schema/generated/pult.rete.json +68 -0
- package/src/schema/generated/pult.sensor.json +74 -0
- package/src/schema/generated/pult.signal.json +54 -0
- package/src/schema/generated/pult.synapse.json +93 -0
- package/src/schema/generated/pult.trade.json +93 -0
- package/src/schema/generated/resim.config.json +34 -0
- package/src/schema/generated/resim.function.json +62 -0
- package/src/schema/generated/resim.goal.json +22 -0
- package/src/schema/generated/resim.resource.json +40 -0
- package/src/schema/generated/resim.state.json +48 -0
- package/src/schema/generated/resim.world.json +40 -0
- package/src/schema/generated/saveme.action.save.json +29 -0
- package/src/schema/generated/saveme.message.json +36 -0
- package/src/schema/generated/saveme.router.json +31 -0
- package/src/schema/generated/t.coolify.json +50 -0
- package/src/schema/generated/t.event.json +46 -0
- package/src/schema/generated/t.logs.json +155 -0
- package/src/schema/generated/t.note.json +31 -0
- package/src/schema/generated/t.person.json +36 -0
- package/src/schema/generated/t.tenant.json +57 -0
- package/src/schema/generated/t.tenant.status.json +42 -0
- package/src/schema/generated/tagger.config.json +115 -0
- package/src/schema/generated/tagger.result.json +57 -0
- package/src/schema/generated/tagger.tree.json +36 -0
- package/src/schema/generated/ui.table.json +46 -0
- package/src/schema/types.ts +1 -0
- package/src/server/actions.test.ts +1 -1
- package/src/server/actions.ts +1 -1
- package/src/server/api.test.ts +9 -0
- package/src/server/auth.ts +4 -3
- package/src/server/client.ts +1 -1
- package/src/server/coverage.test.ts +1 -1
- package/src/server/doc-index.ts +13 -12
- package/src/server/e2e.test.ts +4 -3
- package/src/server/factory.ts +46 -24
- package/src/server/main.ts +4 -36
- package/src/server/migrate.ts +4 -4
- package/src/server/mods-mount.ts +0 -2
- package/src/server/mount-adapters.ts +9 -4
- package/src/server/mount.test.ts +73 -5
- package/src/server/prefab.ts +3 -2
- package/src/server/refs.test.ts +82 -0
- package/src/server/refs.ts +64 -0
- package/src/server/server.ts +14 -3
- package/src/server/sub.ts +2 -2
- package/src/server/trpc.ts +9 -3
- package/src/tree/fs.ts +21 -15
- package/src/tree/index.test.ts +26 -0
- package/src/tree/index.ts +2 -1
- package/src/tree-chain.test.ts +37 -44
- package/src/tree-chain.ts +11 -5
- package/src/uri.test.ts +32 -5
- package/src/uri.ts +4 -2
- package/dist/mods/mcp/server.d.ts.map +0 -1
- package/dist/mods/mcp/server.js.map +0 -1
- package/dist/mods/mcp/service.d.ts.map +0 -1
- package/dist/mods/mcp/service.js.map +0 -1
- package/dist/mods/mcp/types.d.ts.map +0 -1
- package/dist/mods/mcp/types.js.map +0 -1
- package/dist/schema/test-opaque.d.ts +0 -3
- package/dist/schema/test-opaque.d.ts.map +0 -1
- package/dist/schema/test-opaque.js +0 -43
- package/dist/schema/test-opaque.js.map +0 -1
- package/dist/server/mcp.d.ts.map +0 -1
- package/dist/server/mcp.js.map +0 -1
- package/src/mods/mcp/CLAUDE.md +0 -6
- package/src/mods/mcp/server.ts +0 -2
- package/src/mods/mcp/service.ts +0 -19
- package/src/mods/mcp/types.ts +0 -7
- package/src/schema/test-opaque.ts +0 -42
- package/src/server/mcp.ts +0 -326
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "polyhope.backtest",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"description": "Stateless backtest evaluator — grove integration point",
|
|
6
|
+
"properties": {},
|
|
7
|
+
"methods": {
|
|
8
|
+
"eval": {
|
|
9
|
+
"description": "Evaluate strategy code against a feed file, returns stats without persisting",
|
|
10
|
+
"arguments": [
|
|
11
|
+
{
|
|
12
|
+
"name": "data",
|
|
13
|
+
"type": "object",
|
|
14
|
+
"properties": {
|
|
15
|
+
"code": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"format": "textarea"
|
|
18
|
+
},
|
|
19
|
+
"feedFile": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"title": "Path to NDJSON feed file"
|
|
22
|
+
},
|
|
23
|
+
"ctxCode": {
|
|
24
|
+
"anyOf": [
|
|
25
|
+
{},
|
|
26
|
+
{
|
|
27
|
+
"type": "string"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"format": "textarea"
|
|
31
|
+
},
|
|
32
|
+
"params": {
|
|
33
|
+
"anyOf": [
|
|
34
|
+
{},
|
|
35
|
+
{}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"config": {
|
|
39
|
+
"anyOf": [
|
|
40
|
+
{},
|
|
41
|
+
{
|
|
42
|
+
"type": "object",
|
|
43
|
+
"properties": {
|
|
44
|
+
"slippage": {
|
|
45
|
+
"anyOf": [
|
|
46
|
+
{},
|
|
47
|
+
{
|
|
48
|
+
"type": "number"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"maxFillRatio": {
|
|
53
|
+
"anyOf": [
|
|
54
|
+
{},
|
|
55
|
+
{
|
|
56
|
+
"type": "number"
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"fillBidAsks": {
|
|
61
|
+
"anyOf": [
|
|
62
|
+
{},
|
|
63
|
+
{},
|
|
64
|
+
{}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"enableBinance": {
|
|
68
|
+
"anyOf": [
|
|
69
|
+
{},
|
|
70
|
+
{},
|
|
71
|
+
{}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"required": [
|
|
80
|
+
"code",
|
|
81
|
+
"feedFile"
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"return": {
|
|
86
|
+
"type": "object",
|
|
87
|
+
"properties": {
|
|
88
|
+
"totalPnl": {
|
|
89
|
+
"type": "number"
|
|
90
|
+
},
|
|
91
|
+
"totalMarkets": {
|
|
92
|
+
"type": "number"
|
|
93
|
+
},
|
|
94
|
+
"entered": {
|
|
95
|
+
"type": "number"
|
|
96
|
+
},
|
|
97
|
+
"wins": {
|
|
98
|
+
"type": "number"
|
|
99
|
+
},
|
|
100
|
+
"losses": {
|
|
101
|
+
"type": "number"
|
|
102
|
+
},
|
|
103
|
+
"categories": {},
|
|
104
|
+
"details": {
|
|
105
|
+
"type": "array",
|
|
106
|
+
"items": {
|
|
107
|
+
"type": "object",
|
|
108
|
+
"properties": {
|
|
109
|
+
"slug": {
|
|
110
|
+
"type": "string"
|
|
111
|
+
},
|
|
112
|
+
"pnl": {
|
|
113
|
+
"type": "number"
|
|
114
|
+
},
|
|
115
|
+
"label": {
|
|
116
|
+
"type": "string"
|
|
117
|
+
},
|
|
118
|
+
"extra": {
|
|
119
|
+
"anyOf": [
|
|
120
|
+
{},
|
|
121
|
+
{
|
|
122
|
+
"type": "string"
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"columns": {
|
|
127
|
+
"anyOf": [
|
|
128
|
+
{},
|
|
129
|
+
{}
|
|
130
|
+
]
|
|
131
|
+
},
|
|
132
|
+
"color": {
|
|
133
|
+
"anyOf": [
|
|
134
|
+
{},
|
|
135
|
+
{
|
|
136
|
+
"type": "string"
|
|
137
|
+
}
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"required": [
|
|
142
|
+
"slug",
|
|
143
|
+
"pnl",
|
|
144
|
+
"label"
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"required": [
|
|
150
|
+
"totalPnl",
|
|
151
|
+
"totalMarkets",
|
|
152
|
+
"entered",
|
|
153
|
+
"wins",
|
|
154
|
+
"losses",
|
|
155
|
+
"categories",
|
|
156
|
+
"details"
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "polyhope.feed",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"description": "NDJSON feed file reference for backtesting",
|
|
6
|
+
"properties": {
|
|
7
|
+
"path": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"title": "Absolute path to NDJSON file",
|
|
10
|
+
"default": ""
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"required": [
|
|
14
|
+
"path"
|
|
15
|
+
],
|
|
16
|
+
"methods": {
|
|
17
|
+
"probe": {
|
|
18
|
+
"description": "Count markets and events in this feed file",
|
|
19
|
+
"arguments": [],
|
|
20
|
+
"return": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"markets": {
|
|
24
|
+
"type": "number"
|
|
25
|
+
},
|
|
26
|
+
"events": {
|
|
27
|
+
"type": "number"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "polyhope.run",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"description": "Completed backtest result",
|
|
6
|
+
"properties": {
|
|
7
|
+
"totalPnl": {
|
|
8
|
+
"type": "number",
|
|
9
|
+
"default": 0
|
|
10
|
+
},
|
|
11
|
+
"totalMarkets": {
|
|
12
|
+
"type": "number",
|
|
13
|
+
"default": 0
|
|
14
|
+
},
|
|
15
|
+
"entered": {
|
|
16
|
+
"type": "number",
|
|
17
|
+
"default": 0
|
|
18
|
+
},
|
|
19
|
+
"wins": {
|
|
20
|
+
"type": "number",
|
|
21
|
+
"default": 0
|
|
22
|
+
},
|
|
23
|
+
"losses": {
|
|
24
|
+
"type": "number",
|
|
25
|
+
"default": 0
|
|
26
|
+
},
|
|
27
|
+
"winRate": {
|
|
28
|
+
"type": "number",
|
|
29
|
+
"default": 0
|
|
30
|
+
},
|
|
31
|
+
"categories": {},
|
|
32
|
+
"details": {
|
|
33
|
+
"type": "array",
|
|
34
|
+
"items": {
|
|
35
|
+
"type": "object",
|
|
36
|
+
"properties": {
|
|
37
|
+
"slug": {
|
|
38
|
+
"type": "string"
|
|
39
|
+
},
|
|
40
|
+
"pnl": {
|
|
41
|
+
"type": "number"
|
|
42
|
+
},
|
|
43
|
+
"label": {
|
|
44
|
+
"type": "string"
|
|
45
|
+
},
|
|
46
|
+
"extra": {
|
|
47
|
+
"anyOf": [
|
|
48
|
+
{},
|
|
49
|
+
{
|
|
50
|
+
"type": "string"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"columns": {
|
|
55
|
+
"anyOf": [
|
|
56
|
+
{},
|
|
57
|
+
{}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"color": {
|
|
61
|
+
"anyOf": [
|
|
62
|
+
{},
|
|
63
|
+
{
|
|
64
|
+
"type": "string"
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"required": [
|
|
70
|
+
"slug",
|
|
71
|
+
"pnl",
|
|
72
|
+
"label"
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"feedPath": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"default": ""
|
|
79
|
+
},
|
|
80
|
+
"params": {}
|
|
81
|
+
},
|
|
82
|
+
"required": [
|
|
83
|
+
"totalPnl",
|
|
84
|
+
"totalMarkets",
|
|
85
|
+
"entered",
|
|
86
|
+
"wins",
|
|
87
|
+
"losses",
|
|
88
|
+
"winRate",
|
|
89
|
+
"categories",
|
|
90
|
+
"details",
|
|
91
|
+
"feedPath",
|
|
92
|
+
"params"
|
|
93
|
+
]
|
|
94
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "polyhope.strategy",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"description": "Trading strategy with code, params, and ranges for backtesting",
|
|
6
|
+
"properties": {
|
|
7
|
+
"code": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"format": "textarea",
|
|
10
|
+
"default": ""
|
|
11
|
+
},
|
|
12
|
+
"ctxCode": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"format": "textarea",
|
|
15
|
+
"default": "return {}"
|
|
16
|
+
},
|
|
17
|
+
"params": {},
|
|
18
|
+
"ranges": {},
|
|
19
|
+
"config": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"properties": {
|
|
22
|
+
"slippage": {
|
|
23
|
+
"anyOf": [
|
|
24
|
+
{},
|
|
25
|
+
{
|
|
26
|
+
"type": "number"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
"maxFillRatio": {
|
|
31
|
+
"anyOf": [
|
|
32
|
+
{},
|
|
33
|
+
{
|
|
34
|
+
"type": "number"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"fillBidAsks": {
|
|
39
|
+
"anyOf": [
|
|
40
|
+
{},
|
|
41
|
+
{},
|
|
42
|
+
{}
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"enableBinance": {
|
|
46
|
+
"anyOf": [
|
|
47
|
+
{},
|
|
48
|
+
{},
|
|
49
|
+
{}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"required": [
|
|
56
|
+
"code",
|
|
57
|
+
"ctxCode",
|
|
58
|
+
"params",
|
|
59
|
+
"ranges",
|
|
60
|
+
"config"
|
|
61
|
+
],
|
|
62
|
+
"methods": {
|
|
63
|
+
"run": {
|
|
64
|
+
"description": "Run backtest against a feed file, saves result as child node",
|
|
65
|
+
"arguments": [
|
|
66
|
+
{
|
|
67
|
+
"name": "data",
|
|
68
|
+
"type": "object",
|
|
69
|
+
"properties": {
|
|
70
|
+
"feedPath": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"title": "Path to NDJSON feed file"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"required": [
|
|
76
|
+
"feedPath"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"return": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"properties": {
|
|
83
|
+
"path": {
|
|
84
|
+
"type": "string"
|
|
85
|
+
},
|
|
86
|
+
"totalPnl": {
|
|
87
|
+
"type": "number"
|
|
88
|
+
},
|
|
89
|
+
"wins": {
|
|
90
|
+
"type": "number"
|
|
91
|
+
},
|
|
92
|
+
"losses": {
|
|
93
|
+
"type": "number"
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"optimize": {
|
|
99
|
+
"description": "Optimize params via hill climb or grid search",
|
|
100
|
+
"arguments": [
|
|
101
|
+
{
|
|
102
|
+
"name": "data",
|
|
103
|
+
"type": "object",
|
|
104
|
+
"properties": {
|
|
105
|
+
"feedPath": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"title": "Path to NDJSON feed file"
|
|
108
|
+
},
|
|
109
|
+
"method": {
|
|
110
|
+
"anyOf": [
|
|
111
|
+
{},
|
|
112
|
+
{},
|
|
113
|
+
{}
|
|
114
|
+
],
|
|
115
|
+
"title": "Optimization method"
|
|
116
|
+
},
|
|
117
|
+
"gridSamples": {
|
|
118
|
+
"anyOf": [
|
|
119
|
+
{},
|
|
120
|
+
{
|
|
121
|
+
"type": "number"
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
"title": "Random samples for grid"
|
|
125
|
+
},
|
|
126
|
+
"gridTopN": {
|
|
127
|
+
"anyOf": [
|
|
128
|
+
{},
|
|
129
|
+
{
|
|
130
|
+
"type": "number"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"title": "Top N for grid"
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"required": [
|
|
137
|
+
"feedPath"
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"return": {
|
|
142
|
+
"type": "object",
|
|
143
|
+
"properties": {
|
|
144
|
+
"params": {},
|
|
145
|
+
"pnl": {
|
|
146
|
+
"type": "number"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "polymax.activity",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"title": "Recent on-chain activity (trades, splits, merges, redeems)",
|
|
6
|
+
"properties": {
|
|
7
|
+
"items": {
|
|
8
|
+
"type": "array",
|
|
9
|
+
"items": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"type": {
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"timestamp": {
|
|
16
|
+
"type": "number"
|
|
17
|
+
},
|
|
18
|
+
"title": {
|
|
19
|
+
"type": "string"
|
|
20
|
+
},
|
|
21
|
+
"slug": {
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"eventSlug": {
|
|
25
|
+
"anyOf": [
|
|
26
|
+
{},
|
|
27
|
+
{
|
|
28
|
+
"type": "string"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"outcome": {
|
|
33
|
+
"type": "string"
|
|
34
|
+
},
|
|
35
|
+
"size": {
|
|
36
|
+
"type": "string"
|
|
37
|
+
},
|
|
38
|
+
"usdcSize": {
|
|
39
|
+
"type": "string"
|
|
40
|
+
},
|
|
41
|
+
"price": {
|
|
42
|
+
"type": "string"
|
|
43
|
+
},
|
|
44
|
+
"side": {
|
|
45
|
+
"type": "string"
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"required": [
|
|
49
|
+
"type",
|
|
50
|
+
"timestamp",
|
|
51
|
+
"title",
|
|
52
|
+
"slug",
|
|
53
|
+
"outcome",
|
|
54
|
+
"size",
|
|
55
|
+
"usdcSize",
|
|
56
|
+
"price",
|
|
57
|
+
"side"
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"required": [
|
|
63
|
+
"items"
|
|
64
|
+
]
|
|
65
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "polymax.aggr-feed",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {},
|
|
6
|
+
"methods": {
|
|
7
|
+
"subscribe": {
|
|
8
|
+
"arguments": [
|
|
9
|
+
{
|
|
10
|
+
"name": "data"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"description": "Subscribe to market slugs for trade aggregation"
|
|
14
|
+
},
|
|
15
|
+
"unsubscribe": {
|
|
16
|
+
"arguments": [
|
|
17
|
+
{
|
|
18
|
+
"name": "data"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"description": "Unsubscribe a market slug from trade aggregation"
|
|
22
|
+
},
|
|
23
|
+
"status": {
|
|
24
|
+
"arguments": [],
|
|
25
|
+
"description": "Return current feed service state and active subscriptions"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "polymax.aggr",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"title": "Signal aggregation — hit count and total PnL across alerts",
|
|
6
|
+
"properties": {
|
|
7
|
+
"hitCount": {
|
|
8
|
+
"type": "number",
|
|
9
|
+
"default": 0
|
|
10
|
+
},
|
|
11
|
+
"totalPnl": {
|
|
12
|
+
"type": "number",
|
|
13
|
+
"default": 0
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": [
|
|
17
|
+
"hitCount",
|
|
18
|
+
"totalPnl"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "polymax.alert",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"title": "Trading alert — accumulation, flip, concentration, or smart entry",
|
|
6
|
+
"properties": {
|
|
7
|
+
"alertType": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"enum": [
|
|
10
|
+
"accumulation",
|
|
11
|
+
"flip",
|
|
12
|
+
"concentration",
|
|
13
|
+
"smart_entry"
|
|
14
|
+
],
|
|
15
|
+
"default": "smart_entry"
|
|
16
|
+
},
|
|
17
|
+
"conditionId": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"default": ""
|
|
20
|
+
},
|
|
21
|
+
"question": {
|
|
22
|
+
"type": "string",
|
|
23
|
+
"default": ""
|
|
24
|
+
},
|
|
25
|
+
"address": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"default": ""
|
|
28
|
+
},
|
|
29
|
+
"outcome": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"default": ""
|
|
32
|
+
},
|
|
33
|
+
"detail": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"default": ""
|
|
36
|
+
},
|
|
37
|
+
"magnitude": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"default": 0
|
|
40
|
+
},
|
|
41
|
+
"ts": {
|
|
42
|
+
"type": "number",
|
|
43
|
+
"default": 0
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"required": [
|
|
47
|
+
"alertType",
|
|
48
|
+
"conditionId",
|
|
49
|
+
"question",
|
|
50
|
+
"address",
|
|
51
|
+
"outcome",
|
|
52
|
+
"detail",
|
|
53
|
+
"magnitude",
|
|
54
|
+
"ts"
|
|
55
|
+
]
|
|
56
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "polymax.bot-config",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"title": "Bot configuration — key-value settings and metadata",
|
|
6
|
+
"properties": {
|
|
7
|
+
"values": {},
|
|
8
|
+
"meta": {}
|
|
9
|
+
},
|
|
10
|
+
"required": [
|
|
11
|
+
"values",
|
|
12
|
+
"meta"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$id": "polymax.bot-status",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"title": "Bot runtime status — running state, CPU, memory, uptime",
|
|
6
|
+
"properties": {
|
|
7
|
+
"status": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"default": "stopped"
|
|
10
|
+
},
|
|
11
|
+
"cpu": {
|
|
12
|
+
"type": "number",
|
|
13
|
+
"default": 0
|
|
14
|
+
},
|
|
15
|
+
"memory": {
|
|
16
|
+
"type": "number",
|
|
17
|
+
"default": 0
|
|
18
|
+
},
|
|
19
|
+
"uptime": {
|
|
20
|
+
"type": "number",
|
|
21
|
+
"default": 0
|
|
22
|
+
},
|
|
23
|
+
"restarts": {
|
|
24
|
+
"type": "number",
|
|
25
|
+
"default": 0
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"required": [
|
|
29
|
+
"status",
|
|
30
|
+
"cpu",
|
|
31
|
+
"memory",
|
|
32
|
+
"uptime",
|
|
33
|
+
"restarts"
|
|
34
|
+
]
|
|
35
|
+
}
|