@senpi/runtime 3.0.58 → 3.0.62
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 +73 -2
- package/dist/actions/action-events.d.ts +3 -3
- package/dist/actions/action-events.d.ts.map +1 -1
- package/dist/actions/action-events.js +24 -16
- package/dist/actions/action-events.js.map +1 -1
- package/dist/actions/action-runtime-module.d.ts.map +1 -1
- package/dist/actions/action-runtime-module.js +18 -1
- package/dist/actions/action-runtime-module.js.map +1 -1
- package/dist/actions/close-position/close-position.action.d.ts.map +1 -1
- package/dist/actions/close-position/close-position.action.js +84 -11
- package/dist/actions/close-position/close-position.action.js.map +1 -1
- package/dist/actions/decision-engine.d.ts +0 -2
- package/dist/actions/decision-engine.d.ts.map +1 -1
- package/dist/actions/decision-engine.js +1 -79
- package/dist/actions/decision-engine.js.map +1 -1
- package/dist/actions/event-derivation.d.ts +40 -2
- package/dist/actions/event-derivation.d.ts.map +1 -1
- package/dist/actions/event-derivation.js +178 -5
- package/dist/actions/event-derivation.js.map +1 -1
- package/dist/actions/open-position/open-position.action.d.ts.map +1 -1
- package/dist/actions/open-position/open-position.action.js +103 -16
- package/dist/actions/open-position/open-position.action.js.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.d.ts +2 -1
- package/dist/actions/position-tracker/position-tracker.action.d.ts.map +1 -1
- package/dist/actions/position-tracker/position-tracker.action.js +47 -15
- package/dist/actions/position-tracker/position-tracker.action.js.map +1 -1
- package/dist/actions/skipped-signal-results.d.ts +16 -0
- package/dist/actions/skipped-signal-results.d.ts.map +1 -0
- package/dist/actions/skipped-signal-results.js +47 -0
- package/dist/actions/skipped-signal-results.js.map +1 -0
- package/dist/cli/deploy-render.d.ts +91 -0
- package/dist/cli/deploy-render.d.ts.map +1 -0
- package/dist/cli/deploy-render.js +216 -0
- package/dist/cli/deploy-render.js.map +1 -0
- package/dist/cli/guide-commands.d.ts.map +1 -1
- package/dist/cli/guide-commands.js +78 -6
- package/dist/cli/guide-commands.js.map +1 -1
- package/dist/cli/senpi-commands.d.ts +6 -1
- package/dist/cli/senpi-commands.d.ts.map +1 -1
- package/dist/cli/senpi-commands.js +164 -5
- package/dist/cli/senpi-commands.js.map +1 -1
- package/dist/cli/validate-command.d.ts.map +1 -1
- package/dist/cli/validate-command.js +32 -1
- package/dist/cli/validate-command.js.map +1 -1
- package/dist/deploy/deadlines.d.ts +47 -0
- package/dist/deploy/deadlines.d.ts.map +1 -0
- package/dist/deploy/deadlines.js +56 -0
- package/dist/deploy/deadlines.js.map +1 -0
- package/dist/deploy/error-text.d.ts +25 -0
- package/dist/deploy/error-text.d.ts.map +1 -0
- package/dist/deploy/error-text.js +42 -0
- package/dist/deploy/error-text.js.map +1 -0
- package/dist/deploy/funding.d.ts +87 -0
- package/dist/deploy/funding.d.ts.map +1 -0
- package/dist/deploy/funding.js +229 -0
- package/dist/deploy/funding.js.map +1 -0
- package/dist/deploy/install-gate-runner.d.ts +12 -0
- package/dist/deploy/install-gate-runner.d.ts.map +1 -0
- package/dist/deploy/install-gate-runner.js +17 -0
- package/dist/deploy/install-gate-runner.js.map +1 -0
- package/dist/deploy/job.d.ts +199 -0
- package/dist/deploy/job.d.ts.map +1 -0
- package/dist/deploy/job.js +463 -0
- package/dist/deploy/job.js.map +1 -0
- package/dist/deploy/min-budget.d.ts +68 -0
- package/dist/deploy/min-budget.d.ts.map +1 -0
- package/dist/deploy/min-budget.js +297 -0
- package/dist/deploy/min-budget.js.map +1 -0
- package/dist/deploy/orchestrator.d.ts +305 -0
- package/dist/deploy/orchestrator.d.ts.map +1 -0
- package/dist/deploy/orchestrator.js +2910 -0
- package/dist/deploy/orchestrator.js.map +1 -0
- package/dist/deploy/package.d.ts +130 -0
- package/dist/deploy/package.d.ts.map +1 -0
- package/dist/deploy/package.js +351 -0
- package/dist/deploy/package.js.map +1 -0
- package/dist/deploy/proof-gate.d.ts +82 -0
- package/dist/deploy/proof-gate.d.ts.map +1 -0
- package/dist/deploy/proof-gate.js +269 -0
- package/dist/deploy/proof-gate.js.map +1 -0
- package/dist/deploy/python-float.d.ts +34 -0
- package/dist/deploy/python-float.d.ts.map +1 -0
- package/dist/deploy/python-float.js +46 -0
- package/dist/deploy/python-float.js.map +1 -0
- package/dist/deploy/recheck-commands.d.ts +50 -0
- package/dist/deploy/recheck-commands.d.ts.map +1 -0
- package/dist/deploy/recheck-commands.js +59 -0
- package/dist/deploy/recheck-commands.js.map +1 -0
- package/dist/deploy/register.d.ts +99 -0
- package/dist/deploy/register.d.ts.map +1 -0
- package/dist/deploy/register.js +689 -0
- package/dist/deploy/register.js.map +1 -0
- package/dist/deploy/taxonomy.d.ts +24 -0
- package/dist/deploy/taxonomy.d.ts.map +1 -0
- package/dist/deploy/taxonomy.js +31 -0
- package/dist/deploy/taxonomy.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +244 -132
- package/dist/index.js.map +1 -1
- package/dist/runtime/lifecycle-events.d.ts +13 -0
- package/dist/runtime/lifecycle-events.d.ts.map +1 -1
- package/dist/runtime/lifecycle-events.js +32 -0
- package/dist/runtime/lifecycle-events.js.map +1 -1
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +3 -1
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/strategy-registry.d.ts +8 -0
- package/dist/runtime/strategy-registry.d.ts.map +1 -1
- package/dist/runtime/strategy-registry.js +14 -1
- package/dist/runtime/strategy-registry.js.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.d.ts +8 -0
- package/dist/runtime/supervisor/long-running-supervisor.d.ts.map +1 -1
- package/dist/runtime/supervisor/long-running-supervisor.js +1 -0
- package/dist/runtime/supervisor/long-running-supervisor.js.map +1 -1
- package/dist/runtime-api/intake/intake-events.d.ts +19 -3
- package/dist/runtime-api/intake/intake-events.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-events.js +64 -2
- package/dist/runtime-api/intake/intake-events.js.map +1 -1
- package/dist/runtime-api/intake/intake-mount.d.ts.map +1 -1
- package/dist/runtime-api/intake/intake-mount.js +7 -4
- package/dist/runtime-api/intake/intake-mount.js.map +1 -1
- package/dist/runtime-api/intake/process-signal-post.d.ts.map +1 -1
- package/dist/runtime-api/intake/process-signal-post.js +7 -1
- package/dist/runtime-api/intake/process-signal-post.js.map +1 -1
- package/dist/runtime-api/intake/scanner-launcher.d.ts.map +1 -1
- package/dist/runtime-api/intake/scanner-launcher.js +12 -0
- package/dist/runtime-api/intake/scanner-launcher.js.map +1 -1
- package/dist/runtime-api/intake/types.d.ts +24 -0
- package/dist/runtime-api/intake/types.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.js +10 -1
- package/dist/runtime-api/routes/signals.js.map +1 -1
- package/dist/runtime-api/routes/signals.schema.d.ts +10 -0
- package/dist/runtime-api/routes/signals.schema.d.ts.map +1 -1
- package/dist/runtime-api/routes/signals.schema.js +14 -0
- package/dist/runtime-api/routes/signals.schema.js.map +1 -1
- package/dist/scanners/events.d.ts +7 -0
- package/dist/scanners/events.d.ts.map +1 -1
- package/dist/scanners/events.js.map +1 -1
- package/dist/scanners/external/scaffold/delivery.py +23 -12
- package/dist/scanners/external/scaffold/scaffold.py +55 -7
- package/dist/scanners/implementations/market-regime.d.ts +1 -1
- package/dist/scanners/runtime-module.d.ts.map +1 -1
- package/dist/scanners/runtime-module.js +10 -2
- package/dist/scanners/runtime-module.js.map +1 -1
- package/dist/senpi/client.d.ts +58 -4
- package/dist/senpi/client.d.ts.map +1 -1
- package/dist/senpi/client.js +192 -15
- package/dist/senpi/client.js.map +1 -1
- package/dist/senpi/strategy-status.d.ts +32 -0
- package/dist/senpi/strategy-status.d.ts.map +1 -0
- package/dist/senpi/strategy-status.js +70 -0
- package/dist/senpi/strategy-status.js.map +1 -0
- package/dist/senpi/types.d.ts +47 -3
- package/dist/senpi/types.d.ts.map +1 -1
- package/dist/skills-manager/manifest.js +1 -1
- package/dist/skills-manager/skills-manifest.json +1 -1
- package/dist/telemetry/event-builders.d.ts +45 -6
- package/dist/telemetry/event-builders.d.ts.map +1 -1
- package/dist/telemetry/event-builders.js +99 -11
- package/dist/telemetry/event-builders.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +37 -2
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +84 -4
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/telemetry/scanner-tick-event.d.ts +32 -0
- package/dist/telemetry/scanner-tick-event.d.ts.map +1 -0
- package/dist/telemetry/scanner-tick-event.js +32 -0
- package/dist/telemetry/scanner-tick-event.js.map +1 -0
- package/dist/types/strategy.d.ts +9 -1
- package/dist/types/strategy.d.ts.map +1 -1
- package/dist/universe/package-universe.d.ts +97 -0
- package/dist/universe/package-universe.d.ts.map +1 -0
- package/dist/universe/package-universe.js +275 -0
- package/dist/universe/package-universe.js.map +1 -0
- package/dist/utils/event-catalog.d.ts +58 -0
- package/dist/utils/event-catalog.d.ts.map +1 -1
- package/dist/utils/event-catalog.js +1 -0
- package/dist/utils/event-catalog.js.map +1 -1
- package/dist/validate/codes.d.ts +20 -0
- package/dist/validate/codes.d.ts.map +1 -1
- package/dist/validate/codes.js +36 -0
- package/dist/validate/codes.js.map +1 -1
- package/dist/validate/import-stage.js +5 -5
- package/dist/validate/import-stage.js.map +1 -1
- package/dist/validate/index.d.ts +1 -1
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js.map +1 -1
- package/dist/validate/install-gate.d.ts.map +1 -1
- package/dist/validate/install-gate.js +10 -2
- package/dist/validate/install-gate.js.map +1 -1
- package/dist/validate/live-instruments.d.ts +44 -0
- package/dist/validate/live-instruments.d.ts.map +1 -0
- package/dist/validate/live-instruments.js +71 -0
- package/dist/validate/live-instruments.js.map +1 -0
- package/dist/validate/live-stage.js +5 -5
- package/dist/validate/live-stage.js.map +1 -1
- package/dist/validate/proof.d.ts +11 -1
- package/dist/validate/proof.d.ts.map +1 -1
- package/dist/validate/proof.js +7 -6
- package/dist/validate/proof.js.map +1 -1
- package/dist/validate/recipe-checks.d.ts.map +1 -1
- package/dist/validate/recipe-checks.js +6 -4
- package/dist/validate/recipe-checks.js.map +1 -1
- package/dist/validate/run.d.ts +5 -0
- package/dist/validate/run.d.ts.map +1 -1
- package/dist/validate/run.js +10 -1
- package/dist/validate/run.js.map +1 -1
- package/dist/validate/target.d.ts +41 -0
- package/dist/validate/target.d.ts.map +1 -1
- package/dist/validate/target.js +192 -16
- package/dist/validate/target.js.map +1 -1
- package/dist/validate/universe-stage.d.ts +71 -0
- package/dist/validate/universe-stage.d.ts.map +1 -0
- package/dist/validate/universe-stage.js +183 -0
- package/dist/validate/universe-stage.js.map +1 -0
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/dist/runtime/managed-wallet-guard.d.ts +0 -47
- package/dist/runtime/managed-wallet-guard.d.ts.map +0 -1
- package/dist/runtime/managed-wallet-guard.js +0 -106
- package/dist/runtime/managed-wallet-guard.js.map +0 -1
- package/dist/runtime/protection-nudge.d.ts +0 -67
- package/dist/runtime/protection-nudge.d.ts.map +0 -1
- package/dist/runtime/protection-nudge.js +0 -244
- package/dist/runtime/protection-nudge.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../src/deploy/job.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { type DeployPackage } from "./package.js";
|
|
2
|
+
/**
|
|
3
|
+
* The platform per-wallet floor — mirrors the backend's `MINIMUM_STRATEGY_BUDGET` default
|
|
4
|
+
* (`getMinimumStrategyBudget` in senpi-hyperliquid-mcp). `funding.ts` re-exports it as `MIN_WALLET`
|
|
5
|
+
* so the runtime, like the skills side, has ONE copy of the physics.
|
|
6
|
+
*/
|
|
7
|
+
export declare const WALLET_FLOOR = 10;
|
|
8
|
+
/** The notional the engine bumps a small order up to. */
|
|
9
|
+
export declare const BUMPED_NOTIONAL = 12;
|
|
10
|
+
/** USDC reserved per wallet for the creation fee (observed ~$1). */
|
|
11
|
+
export declare const FEE_BUFFER = 1.5;
|
|
12
|
+
/** One instance's contribution, in the Python's `breakdown` shape (camelCased). */
|
|
13
|
+
export interface MinBudgetRow {
|
|
14
|
+
wallet: string;
|
|
15
|
+
/** null = nothing in this sleeve resolved to a slot size. */
|
|
16
|
+
marginPct: number | null;
|
|
17
|
+
minLeverage: number;
|
|
18
|
+
fundingShare: number;
|
|
19
|
+
perWalletMin: number;
|
|
20
|
+
}
|
|
21
|
+
export interface MinBudgetResult {
|
|
22
|
+
/** The number to warn against. Never rounded down; a `catalog.min_budget_floor` may raise it. */
|
|
23
|
+
minBudget: number;
|
|
24
|
+
walletCount: number;
|
|
25
|
+
/** The sleeve whose per-wallet minimum over its share drives the total. null for an empty package. */
|
|
26
|
+
bindingWallet: string | null;
|
|
27
|
+
/**
|
|
28
|
+
* Sleeves whose marginPct could NOT be resolved — their per-wallet minimum fell back to the bare
|
|
29
|
+
* floor, so `minBudget` may be UNDERSTATED. Never silently swallowed: deploy warns rather than
|
|
30
|
+
* assert a number it never computed.
|
|
31
|
+
*/
|
|
32
|
+
unresolvedWallets: string[];
|
|
33
|
+
/** The pre-rounding total, for the report's arithmetic to be checkable. */
|
|
34
|
+
raw: number;
|
|
35
|
+
breakdown: MinBudgetRow[];
|
|
36
|
+
}
|
|
37
|
+
/** The `strategy.yaml` subset this reads: instances with their shares, plus the catalog block. */
|
|
38
|
+
export interface MinBudgetManifest {
|
|
39
|
+
instances?: Array<{
|
|
40
|
+
name?: unknown;
|
|
41
|
+
funding_share?: unknown;
|
|
42
|
+
}> | null;
|
|
43
|
+
catalog?: Record<string, unknown> | null;
|
|
44
|
+
}
|
|
45
|
+
/** instance name → its parsed `runtime.yaml` document. */
|
|
46
|
+
export type MinBudgetRuntimes = Record<string, Record<string, unknown> | null | undefined>;
|
|
47
|
+
/**
|
|
48
|
+
* PURE. `manifest` is the parsed `strategy.yaml`; `runtimes` maps instance name → parsed
|
|
49
|
+
* `runtime.yaml`. Mirrors the Python's full return shape (camelCased).
|
|
50
|
+
*/
|
|
51
|
+
export declare function strategyMinBudget(manifest: MinBudgetManifest, runtimes: MinBudgetRuntimes): MinBudgetResult;
|
|
52
|
+
/**
|
|
53
|
+
* The same calculation over a loaded package — the port of `deploy.py`'s `strategy_min(pkg)`. The
|
|
54
|
+
* package's own YAML is the only input, because a custom-authored package never passes through
|
|
55
|
+
* catalog generation: "what the card promised" and "what deploy warns about" are one function.
|
|
56
|
+
*
|
|
57
|
+
* A runtime.yaml that cannot be parsed contributes an EMPTY document rather than throwing: this is
|
|
58
|
+
* an advisory warning computed after the money gates have already passed, and it must never be the
|
|
59
|
+
* thing that fails a deploy. Such a sleeve lands in `unresolvedWallets`, which is exactly the
|
|
60
|
+
* "may be understated" warning.
|
|
61
|
+
*
|
|
62
|
+
* **An absent `funding_share` resolves to `1/n`, not to the Python's `1.0`** — see the header's
|
|
63
|
+
* documented-deviation list. The adapter is the right place for it: `strategyMinBudget` keeps
|
|
64
|
+
* byte-parity with the reference, and this layer is where the manifest meets the verb that will
|
|
65
|
+
* actually spend the money.
|
|
66
|
+
*/
|
|
67
|
+
export declare function packageMinBudget(pkg: DeployPackage): MinBudgetResult;
|
|
68
|
+
//# sourceMappingURL=min-budget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"min-budget.d.ts","sourceRoot":"","sources":["../../src/deploy/min-budget.ts"],"names":[],"mappings":"AA6DA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAGnE;;;;GAIG;AACH,eAAO,MAAM,YAAY,KAAO,CAAC;AAEjC,yDAAyD;AACzD,eAAO,MAAM,eAAe,KAAO,CAAC;AAEpC,oEAAoE;AACpE,eAAO,MAAM,UAAU,MAAM,CAAC;AAe9B,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,iGAAiG;IACjG,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,sGAAsG;IACtG,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,kGAAkG;AAClG,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1C;AAED,0DAA0D;AAC1D,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAqH3F;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,iBAAiB,GAC1B,eAAe,CA4DjB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,eAAe,CA2BpE"}
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The package's CALCULATED minimum budget — a 1:1 port of `min_budget.py`'s `strategy_min_budget`
|
|
3
|
+
* (Senpi-ai/senpi-skills `senpi-strategy-ops/scripts/min_budget.py`, vendored byte-identically into
|
|
4
|
+
* that repo's `senpi-trading-runtime` skill, where `gen_catalog.py` bakes the number into the
|
|
5
|
+
* discovery card).
|
|
6
|
+
*
|
|
7
|
+
* WHAT IT IS. The smallest TOTAL budget at which the authored design functions: every wallet funds
|
|
8
|
+
* (>= the {@link WALLET_FLOOR} platform floor) AND every wallet's SMALLEST slot can open at least
|
|
9
|
+
* the engine's bumped-minimum notional at that slot's smallest marginPct and its LOWEST leverage —
|
|
10
|
+
* worst case on BOTH axes, so even the least-leveraged, smallest-margin position clears the floor.
|
|
11
|
+
*
|
|
12
|
+
* perWalletMin = max(WALLET_FLOOR, BUMPED_NOTIONAL / (marginPct/100 * minLeverage) + FEE_BUFFER)
|
|
13
|
+
* strategyMin = max over wallets( perWalletMin / fundingShare )
|
|
14
|
+
* floored at WALLET_FLOOR * walletCount
|
|
15
|
+
* rounded up to a clean rung (STEPS); past the last rung, ceil to the next $25
|
|
16
|
+
*
|
|
17
|
+
* Funding shares matter, not just wallet count: deploy splits the budget by share, so a small-share
|
|
18
|
+
* sleeve must still receive its own per-wallet minimum — it can DRIVE the total up.
|
|
19
|
+
*
|
|
20
|
+
* WHY IT IS A WARNING, NOT A GATE. It is a local estimate over a package's own YAML, not a platform
|
|
21
|
+
* rule: the hard money invariant is the $10 × wallets floor, which the backend enforces. A budget
|
|
22
|
+
* at or above that floor but below this number DEPLOYS and runs degraded — fewer slots than
|
|
23
|
+
* designed. See the soft tier in `orchestrator.ts`'s preflight, which warns and proceeds.
|
|
24
|
+
*
|
|
25
|
+
* PARITY IS TESTED, NOT ASSERTED. `__tests__/min-budget.test.ts` diffs this port against goldens
|
|
26
|
+
* generated by executing the real Python; `scripts/gen-min-budget-goldens.py` regenerates them.
|
|
27
|
+
* Parity is defined at the **parsed-document level**: both sides are handed an already-parsed
|
|
28
|
+
* mapping, so YAML-parser differences (PyYAML is YAML 1.1 — `2_5` → 25, `yes` → true, `1:30` → 90;
|
|
29
|
+
* the JS `yaml` package is YAML 1.2 and leaves all three as strings) are upstream of this file and
|
|
30
|
+
* out of the port's scope. That gap is only observable on a package that quotes such a scalar, and
|
|
31
|
+
* only a dev-box comparison against `catalog.json`'s baked `min_budget` can prove it clean.
|
|
32
|
+
*
|
|
33
|
+
* DOCUMENTED DEVIATIONS from the reference — deliberate, each pinned by a test:
|
|
34
|
+
*
|
|
35
|
+
* 1. **An absent `funding_share` resolves to `1/n`, not `1.0`** — in {@link packageMinBudget} only;
|
|
36
|
+
* {@link strategyMinBudget} keeps the Python's `1.0`. `1/n` is the split a FRESH deploy of the
|
|
37
|
+
* package would apply (funding.ts `sharesOf`), which is what this total means; the Python's
|
|
38
|
+
* `1.0` understates it by the wallet count, so a 2-sleeve package could advertise a minimum
|
|
39
|
+
* neither wallet could actually trade at. The Python is safe with `1.0` because it only runs at
|
|
40
|
+
* catalog-generation time, on packages `_pkg.validate` has already forced to declare shares
|
|
41
|
+
* summing to 1; the verb is a DIRECT path and `loadDeployPackage` enforces neither.
|
|
42
|
+
*
|
|
43
|
+
* Note what this figure is NOT: the yardstick for a partially-adopted re-run, where the budget
|
|
44
|
+
* is split among fewer wallets. The shortfall claim belongs to the caller, per wallet, against
|
|
45
|
+
* `breakdown[].perWalletMin` — see `applyCalculatedMinimum` in orchestrator.ts.
|
|
46
|
+
* 2. **`toFloat` is Python-`float()`-shaped, not Python-`float()`-exact** — see `python-float.ts`,
|
|
47
|
+
* which owns that function and its two documented gaps for this file AND for `package.ts`.
|
|
48
|
+
* 3. **`round2` uses `toFixed(2)`** — see its own comment.
|
|
49
|
+
* 4. **A non-mapping `strategy:` block (or runtime doc) degrades to `{}`; the Python raises.**
|
|
50
|
+
* `strategy: "oops"` makes `rt.get("strategy") or {}` return the string and `.get` blow up with
|
|
51
|
+
* an AttributeError — which is right for `gen_catalog.py`, where a malformed package should fail
|
|
52
|
+
* the build loudly. Here the same input yields an unresolved sleeve and a warn. This is an
|
|
53
|
+
* advisory computed AFTER the money gates have passed: it must never be the thing that fails a
|
|
54
|
+
* deploy (the same doctrine that makes `packageMinBudget`'s callers swallow a throw).
|
|
55
|
+
* 5. **Instance names are coerced with `String(...)`** where the Python uses the raw key, so a
|
|
56
|
+
* nameless instance yields `""` rather than `None` and a numeric `name: 5` finds `runtimes["5"]`
|
|
57
|
+
* where the Python misses `runtimes[5]`. Unreachable through {@link packageMinBudget} —
|
|
58
|
+
* `package.ts` stringifies names and refuses empty ones — so this can only surface if
|
|
59
|
+
* {@link strategyMinBudget} is ever called with a hand-built manifest.
|
|
60
|
+
*/
|
|
61
|
+
import { parse as parseYaml } from "yaml";
|
|
62
|
+
import { readRuntimeYaml } from "./package.js";
|
|
63
|
+
import { pythonFloat as toFloat } from "./python-float.js";
|
|
64
|
+
/**
|
|
65
|
+
* The platform per-wallet floor — mirrors the backend's `MINIMUM_STRATEGY_BUDGET` default
|
|
66
|
+
* (`getMinimumStrategyBudget` in senpi-hyperliquid-mcp). `funding.ts` re-exports it as `MIN_WALLET`
|
|
67
|
+
* so the runtime, like the skills side, has ONE copy of the physics.
|
|
68
|
+
*/
|
|
69
|
+
export const WALLET_FLOOR = 10.0;
|
|
70
|
+
/** The notional the engine bumps a small order up to. */
|
|
71
|
+
export const BUMPED_NOTIONAL = 12.0;
|
|
72
|
+
/** USDC reserved per wallet for the creation fee (observed ~$1). */
|
|
73
|
+
export const FEE_BUFFER = 1.5;
|
|
74
|
+
/**
|
|
75
|
+
* The clean rungs a minimum rounds UP to. Past the last rung we ceil to the next $25 — never clamp,
|
|
76
|
+
* or a design above $250 would silently advertise a minimum below what it needs.
|
|
77
|
+
*/
|
|
78
|
+
const STEPS = [10, 15, 20, 25, 30, 40, 50, 60, 75, 100, 125, 200, 250];
|
|
79
|
+
/**
|
|
80
|
+
* marginPct is read from an EXPLICIT allowlist of sizing keys — NOT a `*MarginPct*` match. A pattern
|
|
81
|
+
* would wrongly pick up non-sizing thresholds (e.g. sailfish's `leaderMarginPct`, an RS-gap in
|
|
82
|
+
* percentage points), collapsing its minimum from $25 to $250.
|
|
83
|
+
*/
|
|
84
|
+
const MARGIN_KEYS = ["marginPct", "marginPctBase", "baseAllocationPct", "minMarginPct"];
|
|
85
|
+
/**
|
|
86
|
+
* Python `round(x, 2)`. `toFixed` rounds the exact decimal value of the double, which is what
|
|
87
|
+
* `round()` does too — unlike `Math.round(x * 100) / 100`, which rounds a second time after the
|
|
88
|
+
* multiply and disagrees on ordinary values like 1.005.
|
|
89
|
+
*
|
|
90
|
+
* They still part company on an exact binary tie, where Python rounds half-to-even and `toFixed`
|
|
91
|
+
* rounds half-up. Such a value EXISTS (`marginPct` 139.1304347826087 → 10.12 vs 10.13) but no
|
|
92
|
+
* realistic authored sizing reaches one: a 7,920-pair sweep of `marginPct ∈ [1.25,100] step 0.25`
|
|
93
|
+
* × `leverage ∈ {0.25…50}` found zero divergences. It would cost only the two rounded DISPLAY
|
|
94
|
+
* fields (`raw`, `breakdown[].perWalletMin`) and the binding tie-break anyway — `minBudget` itself
|
|
95
|
+
* is exact rung/ceil arithmetic and never rides this.
|
|
96
|
+
*/
|
|
97
|
+
function round2(value) {
|
|
98
|
+
return Number(value.toFixed(2));
|
|
99
|
+
}
|
|
100
|
+
/** Round UP to the next clean rung; past the last one, ceil to the next $25 — never clamp. */
|
|
101
|
+
function roundStep(value) {
|
|
102
|
+
for (const step of STEPS) {
|
|
103
|
+
if (value <= step + 1e-9)
|
|
104
|
+
return step;
|
|
105
|
+
}
|
|
106
|
+
return Math.ceil(value / 25) * 25;
|
|
107
|
+
}
|
|
108
|
+
function isRecord(value) {
|
|
109
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Every `external_scanner`'s `inputs` map. A multi-scanner runtime is sized off the WORST
|
|
113
|
+
* (smallest-slot) of all of them, not just the first.
|
|
114
|
+
*/
|
|
115
|
+
function externalScannerInputs(runtime) {
|
|
116
|
+
const scanners = runtime.scanners;
|
|
117
|
+
if (!Array.isArray(scanners))
|
|
118
|
+
return [];
|
|
119
|
+
return scanners
|
|
120
|
+
.filter((sc) => isRecord(sc) && sc.type === "external_scanner")
|
|
121
|
+
.map((sc) => sc.inputs)
|
|
122
|
+
.filter(isRecord);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* A marginPct is a PERCENT in (0,100]; a value <= 1 is either a pasted fraction or, for the
|
|
126
|
+
* vol-parity sleeves, an internal risk weight that is NOT a slot size. Reject it, so those sleeves
|
|
127
|
+
* come back UNRESOLVED and warn rather than being read as a 0.03%-margin slot.
|
|
128
|
+
*/
|
|
129
|
+
function asPercent(value) {
|
|
130
|
+
const parsed = toFloat(value);
|
|
131
|
+
return parsed !== null && parsed > 1.0 ? parsed : null;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* The SMALLEST configured slot marginPct — the min over the declared baseline, every allowlisted
|
|
135
|
+
* scanner sizing input, and every `marginPctTiers` value. Worst case, so a wallet funded at the
|
|
136
|
+
* minimum can open even its lowest-conviction slot. null when nothing resolves.
|
|
137
|
+
*/
|
|
138
|
+
function marginPct(strategy, inputsList) {
|
|
139
|
+
const candidates = [];
|
|
140
|
+
const push = (value) => {
|
|
141
|
+
if (value)
|
|
142
|
+
candidates.push(value);
|
|
143
|
+
};
|
|
144
|
+
push(asPercent(strategy.margin_pct));
|
|
145
|
+
for (const inputs of inputsList) {
|
|
146
|
+
for (const key of MARGIN_KEYS)
|
|
147
|
+
push(asPercent(inputs[key]));
|
|
148
|
+
const tiers = inputs.marginPctTiers;
|
|
149
|
+
if (isRecord(tiers))
|
|
150
|
+
for (const tier of Object.values(tiers))
|
|
151
|
+
push(asPercent(tier));
|
|
152
|
+
}
|
|
153
|
+
return candidates.length > 0 ? Math.min(...candidates) : null;
|
|
154
|
+
}
|
|
155
|
+
/** Leverage values from a tiers config: a map (`{apex,good,base}`) or a list of `[score, lev]` pairs. */
|
|
156
|
+
function leverageValues(tiers) {
|
|
157
|
+
const collect = (raw) => raw.map(toFloat).filter((value) => value !== null && value > 0);
|
|
158
|
+
if (isRecord(tiers))
|
|
159
|
+
return collect(Object.values(tiers));
|
|
160
|
+
if (Array.isArray(tiers)) {
|
|
161
|
+
return collect(tiers.map((row) => (Array.isArray(row) && row.length > 0 ? row[row.length - 1] : row)));
|
|
162
|
+
}
|
|
163
|
+
return [];
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* The LOWEST leverage the wallet sizes a position at (worst case for notional): the lowest of every
|
|
167
|
+
* explicit tier, tiered-margin std, and conservative multiplier across all scanners; else the
|
|
168
|
+
* declared default; else 1. A `minLeverage` clamp-floor is deliberately NOT used — it is a safety
|
|
169
|
+
* clamp, not a configured tier.
|
|
170
|
+
*/
|
|
171
|
+
function minLeverage(strategy, inputsList) {
|
|
172
|
+
const candidates = [];
|
|
173
|
+
for (const inputs of inputsList) {
|
|
174
|
+
candidates.push(...leverageValues(inputs.leverageTiers));
|
|
175
|
+
const std = toFloat(inputs.stdLeverage);
|
|
176
|
+
if (std !== null && std > 0)
|
|
177
|
+
candidates.push(std);
|
|
178
|
+
}
|
|
179
|
+
const multipliers = strategy.leverage_multipliers;
|
|
180
|
+
if (isRecord(multipliers)) {
|
|
181
|
+
const conservative = toFloat(multipliers.conservative);
|
|
182
|
+
if (conservative)
|
|
183
|
+
candidates.push(conservative);
|
|
184
|
+
}
|
|
185
|
+
if (candidates.length > 0)
|
|
186
|
+
return Math.min(...candidates);
|
|
187
|
+
const declared = toFloat(strategy.default_leverage);
|
|
188
|
+
return declared !== null && declared > 0 ? declared : 1.0;
|
|
189
|
+
}
|
|
190
|
+
function perWalletMin(margin, leverage) {
|
|
191
|
+
return Math.max(WALLET_FLOOR, BUMPED_NOTIONAL / ((margin / 100.0) * leverage) + FEE_BUFFER);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* PURE. `manifest` is the parsed `strategy.yaml`; `runtimes` maps instance name → parsed
|
|
195
|
+
* `runtime.yaml`. Mirrors the Python's full return shape (camelCased).
|
|
196
|
+
*/
|
|
197
|
+
export function strategyMinBudget(manifest, runtimes) {
|
|
198
|
+
const instances = manifest.instances ?? [];
|
|
199
|
+
const catalog = manifest.catalog ?? {};
|
|
200
|
+
const perWalletOverShare = [];
|
|
201
|
+
const breakdown = [];
|
|
202
|
+
const unresolvedWallets = [];
|
|
203
|
+
for (const instance of instances) {
|
|
204
|
+
const name = typeof instance.name === "string" ? instance.name : String(instance.name ?? "");
|
|
205
|
+
const runtime = runtimes[name] ?? {};
|
|
206
|
+
const strategy = isRecord(runtime.strategy) ? runtime.strategy : {};
|
|
207
|
+
const inputsList = externalScannerInputs(runtime);
|
|
208
|
+
const margin = marginPct(strategy, inputsList);
|
|
209
|
+
const leverage = minLeverage(strategy, inputsList);
|
|
210
|
+
const declaredShare = toFloat(instance.funding_share);
|
|
211
|
+
// A 0 or absent share is treated as the whole book — the fail-closed direction, because
|
|
212
|
+
// dividing by a share smaller than the truth would OVERSTATE the minimum and over-warn.
|
|
213
|
+
const fundingShare = declaredShare !== null && declaredShare > 0 ? declaredShare : 1.0;
|
|
214
|
+
let walletMin;
|
|
215
|
+
if (margin) {
|
|
216
|
+
walletMin = perWalletMin(margin, leverage);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
walletMin = WALLET_FLOOR;
|
|
220
|
+
unresolvedWallets.push(name);
|
|
221
|
+
}
|
|
222
|
+
perWalletOverShare.push(walletMin / fundingShare);
|
|
223
|
+
breakdown.push({
|
|
224
|
+
wallet: name,
|
|
225
|
+
marginPct: margin,
|
|
226
|
+
minLeverage: leverage,
|
|
227
|
+
fundingShare,
|
|
228
|
+
perWalletMin: round2(walletMin),
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
const walletCount = instances.length;
|
|
232
|
+
const raw = perWalletOverShare.length > 0 ? Math.max(...perWalletOverShare) : WALLET_FLOOR;
|
|
233
|
+
const floored = Math.max(raw, WALLET_FLOOR * Math.max(walletCount, 1));
|
|
234
|
+
let minBudget = roundStep(floored);
|
|
235
|
+
// A deliberate authored number RAISES only, and is never shrunk by the rounding.
|
|
236
|
+
const floorOverride = toFloat(catalog.min_budget_floor);
|
|
237
|
+
if (floorOverride)
|
|
238
|
+
minBudget = Math.max(minBudget, floorOverride);
|
|
239
|
+
// The binding sleeve is the one whose ROUNDED per-wallet minimum over its share is largest.
|
|
240
|
+
// Python's `max(…, key=…)` keeps the FIRST row on a tie, which `>` (never `>=`) preserves.
|
|
241
|
+
const weightOf = (row) => row.perWalletMin / (row.fundingShare || 1.0);
|
|
242
|
+
let binding = null;
|
|
243
|
+
for (const row of breakdown) {
|
|
244
|
+
if (binding === null || weightOf(row) > weightOf(binding))
|
|
245
|
+
binding = row;
|
|
246
|
+
}
|
|
247
|
+
return {
|
|
248
|
+
minBudget,
|
|
249
|
+
walletCount,
|
|
250
|
+
bindingWallet: binding?.wallet ?? null,
|
|
251
|
+
unresolvedWallets,
|
|
252
|
+
raw: round2(floored),
|
|
253
|
+
breakdown,
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* The same calculation over a loaded package — the port of `deploy.py`'s `strategy_min(pkg)`. The
|
|
258
|
+
* package's own YAML is the only input, because a custom-authored package never passes through
|
|
259
|
+
* catalog generation: "what the card promised" and "what deploy warns about" are one function.
|
|
260
|
+
*
|
|
261
|
+
* A runtime.yaml that cannot be parsed contributes an EMPTY document rather than throwing: this is
|
|
262
|
+
* an advisory warning computed after the money gates have already passed, and it must never be the
|
|
263
|
+
* thing that fails a deploy. Such a sleeve lands in `unresolvedWallets`, which is exactly the
|
|
264
|
+
* "may be understated" warning.
|
|
265
|
+
*
|
|
266
|
+
* **An absent `funding_share` resolves to `1/n`, not to the Python's `1.0`** — see the header's
|
|
267
|
+
* documented-deviation list. The adapter is the right place for it: `strategyMinBudget` keeps
|
|
268
|
+
* byte-parity with the reference, and this layer is where the manifest meets the verb that will
|
|
269
|
+
* actually spend the money.
|
|
270
|
+
*/
|
|
271
|
+
export function packageMinBudget(pkg) {
|
|
272
|
+
const runtimes = {};
|
|
273
|
+
for (const inst of pkg.instances) {
|
|
274
|
+
try {
|
|
275
|
+
const parsed = parseYaml(readRuntimeYaml(inst));
|
|
276
|
+
runtimes[inst.name] = isRecord(parsed) ? parsed : {};
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
runtimes[inst.name] = {};
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
// The even split `sharesOf` (funding.ts) would apply to a FRESH deploy of this package — which is
|
|
283
|
+
// exactly what this figure means: "what deploying the whole thing costs". It is deliberately NOT
|
|
284
|
+
// the split of a partially-adopted re-run, where `planFunding` divides among the instances still
|
|
285
|
+
// NEEDING a wallet and the denominator is smaller. Do not "fix" the two to match: they answer
|
|
286
|
+
// different questions, and the caller compares per-wallet allocations against `breakdown[]`
|
|
287
|
+
// rather than comparing a budget to this total (orchestrator.ts `applyCalculatedMinimum`).
|
|
288
|
+
const evenSplit = 1 / pkg.instances.length;
|
|
289
|
+
return strategyMinBudget({
|
|
290
|
+
instances: pkg.instances.map((inst) => ({
|
|
291
|
+
name: inst.name,
|
|
292
|
+
funding_share: inst.fundingShare ?? evenSplit,
|
|
293
|
+
})),
|
|
294
|
+
catalog: pkg.catalog,
|
|
295
|
+
}, runtimes);
|
|
296
|
+
}
|
|
297
|
+
//# sourceMappingURL=min-budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"min-budget.js","sourceRoot":"","sources":["../../src/deploy/min-budget.ts"],"names":[],"mappings":"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"}
|