@senpi/trading-recipe 1.0.69 → 1.0.71
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 +1 -1
- package/dist/actions/close-position/close-position.action.js +4 -4
- package/dist/actions/close-position/close-position.action.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 +4 -5
- package/dist/actions/open-position/open-position.action.js.map +1 -1
- package/dist/actions/types.d.ts +1 -1
- package/dist/actions/types.d.ts.map +1 -1
- package/dist/cli/guide-commands.d.ts +1 -0
- package/dist/cli/guide-commands.d.ts.map +1 -1
- package/dist/cli/guide-commands.js +102 -12
- package/dist/cli/guide-commands.js.map +1 -1
- package/dist/cli/senpi-commands.d.ts.map +1 -1
- package/dist/cli/senpi-commands.js +162 -10
- package/dist/cli/senpi-commands.js.map +1 -1
- package/dist/dsl/plugin/index.d.ts +22 -0
- package/dist/dsl/plugin/index.d.ts.map +1 -1
- package/dist/dsl/plugin/index.js +189 -59
- package/dist/dsl/plugin/index.js.map +1 -1
- package/dist/health/index.d.ts +22 -2
- package/dist/health/index.d.ts.map +1 -1
- package/dist/health/index.js +186 -4
- package/dist/health/index.js.map +1 -1
- package/dist/health/types.d.ts +114 -0
- package/dist/health/types.d.ts.map +1 -0
- package/dist/health/types.js +2 -0
- package/dist/health/types.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +219 -18
- package/dist/index.js.map +1 -1
- package/dist/runtime/build-action-scan-payload.d.ts +4 -4
- package/dist/runtime/build-action-scan-payload.d.ts.map +1 -1
- package/dist/runtime/build-action-scan-payload.js +15 -19
- package/dist/runtime/build-action-scan-payload.js.map +1 -1
- package/dist/runtime/create-action-context.d.ts +3 -3
- package/dist/runtime/create-action-context.d.ts.map +1 -1
- package/dist/runtime/create-action-context.js +5 -5
- package/dist/runtime/create-action-context.js.map +1 -1
- package/dist/runtime/create-actions.d.ts +1 -1
- package/dist/runtime/create-actions.d.ts.map +1 -1
- package/dist/runtime/create-actions.js +2 -3
- package/dist/runtime/create-actions.js.map +1 -1
- package/dist/runtime/create-runtime-context.d.ts +12 -12
- package/dist/runtime/create-runtime-context.d.ts.map +1 -1
- package/dist/runtime/create-runtime-context.js +15 -13
- package/dist/runtime/create-runtime-context.js.map +1 -1
- package/dist/runtime/create-scanner-module.d.ts +1 -1
- package/dist/runtime/create-scanner-module.js +4 -4
- package/dist/runtime/create-scanner-module.js.map +1 -1
- package/dist/runtime/index.d.ts +4 -4
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +3 -3
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/load-trading-recipe.d.ts +2 -2
- package/dist/runtime/load-trading-recipe.d.ts.map +1 -1
- package/dist/runtime/load-trading-recipe.js +22 -10
- package/dist/runtime/load-trading-recipe.js.map +1 -1
- package/dist/runtime/map-strategies-registration.d.ts +6 -4
- package/dist/runtime/map-strategies-registration.d.ts.map +1 -1
- package/dist/runtime/map-strategies-registration.js +14 -22
- package/dist/runtime/map-strategies-registration.js.map +1 -1
- package/dist/runtime/map-strategies.d.ts +6 -4
- package/dist/runtime/map-strategies.d.ts.map +1 -1
- package/dist/runtime/map-strategies.js +42 -44
- package/dist/runtime/map-strategies.js.map +1 -1
- package/dist/runtime/recipe-version.d.ts +15 -0
- package/dist/runtime/recipe-version.d.ts.map +1 -0
- package/dist/runtime/recipe-version.js +25 -0
- package/dist/runtime/recipe-version.js.map +1 -0
- package/dist/runtime/reconcile-state.d.ts +1 -1
- package/dist/runtime/reconcile-state.js +1 -1
- package/dist/runtime/run.d.ts +5 -0
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +7 -0
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/runtime.d.ts +8 -4
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +75 -40
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/state-layout.d.ts +48 -0
- package/dist/runtime/state-layout.d.ts.map +1 -0
- package/dist/runtime/state-layout.js +87 -0
- package/dist/runtime/state-layout.js.map +1 -0
- package/dist/runtime/strategy-registry.d.ts +17 -0
- package/dist/runtime/strategy-registry.d.ts.map +1 -1
- package/dist/runtime/strategy-registry.js +32 -0
- package/dist/runtime/strategy-registry.js.map +1 -1
- package/dist/runtime/trading-recipe-schema.d.ts +16 -634
- package/dist/runtime/trading-recipe-schema.d.ts.map +1 -1
- package/dist/runtime/trading-recipe-schema.js +3 -9
- package/dist/runtime/trading-recipe-schema.js.map +1 -1
- package/dist/scanners/engine/engine.d.ts +7 -0
- package/dist/scanners/engine/engine.d.ts.map +1 -1
- package/dist/scanners/engine/engine.js +20 -12
- package/dist/scanners/engine/engine.js.map +1 -1
- package/dist/scanners/engine/strategy-registry.d.ts +3 -0
- package/dist/scanners/engine/strategy-registry.d.ts.map +1 -1
- package/dist/scanners/engine/strategy-registry.js +10 -0
- package/dist/scanners/engine/strategy-registry.js.map +1 -1
- package/dist/scanners/runtime-module.d.ts +10 -6
- package/dist/scanners/runtime-module.d.ts.map +1 -1
- package/dist/scanners/runtime-module.js +254 -12
- package/dist/scanners/runtime-module.js.map +1 -1
- package/dist/scripts/run-dsl-standalone-live.js +5 -7
- package/dist/scripts/run-dsl-standalone-live.js.map +1 -1
- package/dist/scripts/run-dsl-standalone-mock.js +3 -4
- package/dist/scripts/run-dsl-standalone-mock.js.map +1 -1
- package/dist/types/runtime.d.ts +1 -1
- package/dist/types/runtime.d.ts.map +1 -1
- package/examples/strategies/dsl-showcase.yaml +8 -3
- package/examples/strategies/dsl.yaml +4 -5
- package/examples/strategies/fox-minimal-loosened.yaml +8 -9
- package/examples/strategies/fox-minimal.yaml +8 -9
- package/examples/strategies/minimal.yaml +7 -8
- package/examples/strategies/viper.yaml +7 -8
- package/examples/strategies/wolf.yaml +7 -8
- package/examples/yamls/sample-with-dsl-and-emerging-movers.yaml +9 -10
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-strategies.js","sourceRoot":"","sources":["../../src/runtime/map-strategies.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,mBAAmB,GAAkB,CAAC,cAAc,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAEtF,SAAS,YAAY,CAAC,CAAU;IAC9B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"map-strategies.js","sourceRoot":"","sources":["../../src/runtime/map-strategies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML recipe version constants.
|
|
3
|
+
* The `version` field in a trading recipe YAML controls which structural shape is accepted.
|
|
4
|
+
* Increment CURRENT_RECIPE_VERSION when a breaking structural change is introduced
|
|
5
|
+
* and add the new version to SUPPORTED_RECIPE_VERSIONS.
|
|
6
|
+
*/
|
|
7
|
+
export declare const CURRENT_RECIPE_VERSION = 1;
|
|
8
|
+
export declare const SUPPORTED_RECIPE_VERSIONS: readonly number[];
|
|
9
|
+
/**
|
|
10
|
+
* Extract the major (structural) version from the YAML `version` field.
|
|
11
|
+
* Accepts an integer (e.g. `1`), a semver-like string (e.g. `"1.6.0"` → `1`),
|
|
12
|
+
* or undefined/null (defaults to CURRENT_RECIPE_VERSION).
|
|
13
|
+
*/
|
|
14
|
+
export declare function extractMajorVersion(version: string | number | undefined | null): number;
|
|
15
|
+
//# sourceMappingURL=recipe-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipe-version.d.ts","sourceRoot":"","sources":["../../src/runtime/recipe-version.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAAQ,CAAC;AAEhE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAUvF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML recipe version constants.
|
|
3
|
+
* The `version` field in a trading recipe YAML controls which structural shape is accepted.
|
|
4
|
+
* Increment CURRENT_RECIPE_VERSION when a breaking structural change is introduced
|
|
5
|
+
* and add the new version to SUPPORTED_RECIPE_VERSIONS.
|
|
6
|
+
*/
|
|
7
|
+
export const CURRENT_RECIPE_VERSION = 1;
|
|
8
|
+
export const SUPPORTED_RECIPE_VERSIONS = [1];
|
|
9
|
+
/**
|
|
10
|
+
* Extract the major (structural) version from the YAML `version` field.
|
|
11
|
+
* Accepts an integer (e.g. `1`), a semver-like string (e.g. `"1.6.0"` → `1`),
|
|
12
|
+
* or undefined/null (defaults to CURRENT_RECIPE_VERSION).
|
|
13
|
+
*/
|
|
14
|
+
export function extractMajorVersion(version) {
|
|
15
|
+
if (version == null)
|
|
16
|
+
return CURRENT_RECIPE_VERSION;
|
|
17
|
+
if (typeof version === "number")
|
|
18
|
+
return version;
|
|
19
|
+
const match = version.match(/^(\d+)/);
|
|
20
|
+
if (!match) {
|
|
21
|
+
throw new Error(`Cannot parse version "${version}". Expected an integer (e.g. 1) or semver string (e.g. "1.0.0").`);
|
|
22
|
+
}
|
|
23
|
+
return parseInt(match[1], 10);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=recipe-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recipe-version.js","sourceRoot":"","sources":["../../src/runtime/recipe-version.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAsB,CAAC,CAAC,CAAC,CAAC;AAEhE;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA2C;IAC7E,IAAI,OAAO,IAAI,IAAI;QAAE,OAAO,sBAAsB,CAAC;IACnD,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,yBAAyB,OAAO,kEAAkE,CACnG,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -30,7 +30,7 @@ export interface ReconcileOptions {
|
|
|
30
30
|
*
|
|
31
31
|
* Call after hydrate() in Runtime.start() and periodically from the DSL monitor tick.
|
|
32
32
|
*
|
|
33
|
-
* @param
|
|
33
|
+
* @param addresses - strategy addresses to reconcile
|
|
34
34
|
* @param options - optional bus to emit POSITION_CLOSED when archiving (e.g. from monitor)
|
|
35
35
|
*/
|
|
36
36
|
export declare function reconcileStateWithBackend(stateManager: StateManager, senpi: SenpiClient, addressesOrStrategiesMap: string[] | Map<string, StrategyConfig>, options?: ReconcileOptions): Promise<void>;
|
|
@@ -56,7 +56,7 @@ async function resolveMissingPositionCloseReason(senpi, state, strategyState, st
|
|
|
56
56
|
*
|
|
57
57
|
* Call after hydrate() in Runtime.start() and periodically from the DSL monitor tick.
|
|
58
58
|
*
|
|
59
|
-
* @param
|
|
59
|
+
* @param addresses - strategy addresses to reconcile
|
|
60
60
|
* @param options - optional bus to emit POSITION_CLOSED when archiving (e.g. from monitor)
|
|
61
61
|
*/
|
|
62
62
|
export async function reconcileStateWithBackend(stateManager, senpi, addressesOrStrategiesMap, options) {
|
package/dist/runtime/run.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Programmatic entry: load trading recipe and start runtime. Returns handle with stop().
|
|
3
3
|
*/
|
|
4
4
|
import type { McpTransport } from "../senpi/types.js";
|
|
5
|
+
import type { RuntimeHealthStatus, RuntimeSystemState } from "../health/index.js";
|
|
5
6
|
import type { ScannerDataProviders } from "../scanners/engine/data-providers.js";
|
|
6
7
|
import type { DslPlugin } from "../dsl/plugin/index.js";
|
|
7
8
|
export interface RunOptions {
|
|
@@ -14,6 +15,10 @@ export interface RunOptions {
|
|
|
14
15
|
export interface RuntimeHandle {
|
|
15
16
|
stop(): Promise<void>;
|
|
16
17
|
dsl: DslPlugin | null;
|
|
18
|
+
/** Wallet address from the recipe's strategy block. */
|
|
19
|
+
wallet: string;
|
|
20
|
+
getHealthStatus(): Promise<RuntimeHealthStatus | null>;
|
|
21
|
+
getSystemState(): Promise<RuntimeSystemState | null>;
|
|
17
22
|
/** Cancel exchange SLs and archive DSL state for all strategies before deleting a recipe. */
|
|
18
23
|
teardownDslForRecipeDeletion(): Promise<void>;
|
|
19
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/runtime/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAKxD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IACtB,6FAA6F;IAC7F,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED;;;GAGG;AACH,wBAAsB,GAAG,CACvB,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/runtime/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAKxD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IACtB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IAEf,eAAe,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACvD,cAAc,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IACrD,6FAA6F;IAC7F,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED;;;GAGG;AACH,wBAAsB,GAAG,CACvB,mBAAmB,EAAE,MAAM,EAC3B,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,aAAa,CAAC,CAmCxB"}
|
package/dist/runtime/run.js
CHANGED
|
@@ -31,6 +31,13 @@ export async function run(recipePathOrContent, options) {
|
|
|
31
31
|
await runtime.stop();
|
|
32
32
|
},
|
|
33
33
|
dsl: runtime.dsl,
|
|
34
|
+
wallet: config.strategy?.wallet ?? "",
|
|
35
|
+
async getHealthStatus() {
|
|
36
|
+
return runtime.getHealthStatus();
|
|
37
|
+
},
|
|
38
|
+
async getSystemState() {
|
|
39
|
+
return runtime.getSystemState();
|
|
40
|
+
},
|
|
34
41
|
teardownDslForRecipeDeletion() {
|
|
35
42
|
return runtime.teardownDslForRecipeDeletion();
|
|
36
43
|
},
|
package/dist/runtime/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/runtime/run.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/runtime/run.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAsBvC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,mBAA2B,EAC3B,OAAoB;IAEpB,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1E,MAAM,QAAQ,GACZ,CAAC,OAAO,OAAO,EAAE,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACpE,CAAC,CAAC,OAAO,CAAC,QAAQ;QAClB,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;IAC3C,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAC/B,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE;QAClC,QAAQ;QACR,YAAY;QACZ,MAAM;QACN,gBAAgB,EAAE,OAAO,EAAE,gBAAgB;KAC5C,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACtB,OAAO;QACL,KAAK,CAAC,IAAI;YACR,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QACD,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE;QACrC,KAAK,CAAC,eAAe;YACnB,OAAO,OAAO,CAAC,eAAe,EAAE,CAAC;QACnC,CAAC;QACD,KAAK,CAAC,cAAc;YAClB,OAAO,OAAO,CAAC,cAAc,EAAE,CAAC;QAClC,CAAC;QACD,4BAA4B;YAC1B,OAAO,OAAO,CAAC,4BAA4B,EAAE,CAAC;QAChD,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -5,6 +5,7 @@ import type { TradingRecipeConfig } from "./trading-recipe-config.js";
|
|
|
5
5
|
import type { McpTransport } from "../senpi/types.js";
|
|
6
6
|
import type { ScannerDataProviders } from "../scanners/engine/data-providers.js";
|
|
7
7
|
import { DslPlugin as DslPluginClass } from "../dsl/plugin/index.js";
|
|
8
|
+
import type { RuntimeHealthStatus, RuntimeSystemState } from "../health/types.js";
|
|
8
9
|
export interface RuntimeOptions {
|
|
9
10
|
stateDir: string;
|
|
10
11
|
mcpTransport?: McpTransport;
|
|
@@ -20,25 +21,28 @@ export declare class Runtime {
|
|
|
20
21
|
private scannerModule;
|
|
21
22
|
private dslPlugin;
|
|
22
23
|
private senpi;
|
|
24
|
+
private healthStateModule;
|
|
23
25
|
private started;
|
|
26
|
+
private startedAt;
|
|
24
27
|
/** Serial signal processing: queue and consumer so only one signal is handled at a time. */
|
|
25
28
|
private signalQueue;
|
|
26
29
|
private signalQueueWait;
|
|
27
30
|
private signalConsumerStopped;
|
|
28
31
|
private signalConsumerDone;
|
|
29
32
|
private runActionsForSignal;
|
|
30
|
-
private
|
|
31
|
-
private strategyStates;
|
|
33
|
+
private strategyConfig;
|
|
32
34
|
/** Stored so we can call off() in stop() and avoid retaining Runtime via scanner EventEmitter. */
|
|
33
35
|
private onScannerRunComplete;
|
|
34
36
|
constructor(config: TradingRecipeConfig, options: RuntimeOptions);
|
|
35
37
|
get dsl(): DslPluginClass | null;
|
|
38
|
+
getHealthStatus(): Promise<RuntimeHealthStatus | null>;
|
|
39
|
+
getSystemState(): Promise<RuntimeSystemState | null>;
|
|
36
40
|
start(): Promise<void>;
|
|
37
41
|
/**
|
|
38
|
-
* Cancel exchange SLs and archive DSL state for
|
|
42
|
+
* Cancel exchange SLs and archive DSL state for the strategy, then log removal.
|
|
39
43
|
*/
|
|
40
44
|
removeStrategy(address: string): Promise<void>;
|
|
41
|
-
/** Tear down DSL for
|
|
45
|
+
/** Tear down DSL for the recipe strategy before deleting the recipe (gateway / CLI). */
|
|
42
46
|
teardownDslForRecipeDeletion(): Promise<void>;
|
|
43
47
|
/**
|
|
44
48
|
* Single consumer: process one scanner:run:complete at a time so slot counts stay correct.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAItE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAyBjF,OAAO,EAAE,SAAS,IAAI,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAOrE,OAAO,KAAK,EAEV,mBAAmB,EACnB,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAOD,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,UAAU,CAAuC;IACzD,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAuB;IAExC,4FAA4F;IAC5F,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,mBAAmB,CAAuC;IAClE,OAAO,CAAC,cAAc,CAAkB;IAExC,kGAAkG;IAClG,OAAO,CAAC,oBAAoB,CAA0D;gBAE1E,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,cAAc;IAKhE,IAAI,GAAG,IAAI,cAAc,GAAG,IAAI,CAE/B;IAEK,eAAe,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAItD,cAAc,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAIpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6J5B;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpD,wFAAwF;IAClF,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAInD;;OAEG;YACW,iBAAiB;IA2CzB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CA+B5B"}
|
package/dist/runtime/runtime.js
CHANGED
|
@@ -9,20 +9,21 @@ import { StateManager } from "../state/index.js";
|
|
|
9
9
|
import { createContextBuilder } from "../context/index.js";
|
|
10
10
|
import { createRiskGuard } from "./risk-guard.js";
|
|
11
11
|
import { createNotificationService } from "./notifications.js";
|
|
12
|
-
import {
|
|
12
|
+
import { resolveStrategyConfig } from "./map-strategies.js";
|
|
13
13
|
import { mapTradingRecipeExitToDslConfig } from "./map-exit-config.js";
|
|
14
14
|
import { buildActionScanPayload } from "./build-action-scan-payload.js";
|
|
15
15
|
import { createScannerModuleFromTradingRecipe } from "./create-scanner-module.js";
|
|
16
|
-
import { createRuntimeContext } from "./create-runtime-context.js";
|
|
16
|
+
import { createRuntimeContext, createStrategyStatesMap } from "./create-runtime-context.js";
|
|
17
17
|
import { createActions } from "./create-actions.js";
|
|
18
18
|
import { validateDslPositionTracking } from "./validate-dsl-position-tracking.js";
|
|
19
19
|
import { ScannerRegistry } from "./scanner-registry.js";
|
|
20
20
|
import { ActionRegistry } from "./action-registry.js";
|
|
21
21
|
import { initRisk } from "../risk/index.js";
|
|
22
|
-
import {
|
|
22
|
+
import { createHealthStateModule, } from "../health/index.js";
|
|
23
23
|
import { DslPlugin as DslPluginClass } from "../dsl/plugin/index.js";
|
|
24
24
|
import { HOOK_EVENT } from "../types/hooks.js";
|
|
25
25
|
import { MaxLeverageCache } from "../leverage/max-leverage-cache.js";
|
|
26
|
+
import { buildStateLayout } from "./state-layout.js";
|
|
26
27
|
import { createLogger } from "../utils/logger.js";
|
|
27
28
|
const logger = createLogger("[senpi-core][runtime]");
|
|
28
29
|
export class Runtime {
|
|
@@ -34,15 +35,16 @@ export class Runtime {
|
|
|
34
35
|
scannerModule;
|
|
35
36
|
dslPlugin = null;
|
|
36
37
|
senpi = null;
|
|
38
|
+
healthStateModule = null;
|
|
37
39
|
started = false;
|
|
40
|
+
startedAt = null;
|
|
38
41
|
/** Serial signal processing: queue and consumer so only one signal is handled at a time. */
|
|
39
42
|
signalQueue = [];
|
|
40
43
|
signalQueueWait = null;
|
|
41
44
|
signalConsumerStopped = false;
|
|
42
45
|
signalConsumerDone = null;
|
|
43
46
|
runActionsForSignal;
|
|
44
|
-
|
|
45
|
-
strategyStates;
|
|
47
|
+
strategyConfig;
|
|
46
48
|
/** Stored so we can call off() in stop() and avoid retaining Runtime via scanner EventEmitter. */
|
|
47
49
|
onScannerRunComplete = null;
|
|
48
50
|
constructor(config, options) {
|
|
@@ -52,10 +54,17 @@ export class Runtime {
|
|
|
52
54
|
get dsl() {
|
|
53
55
|
return this.dslPlugin;
|
|
54
56
|
}
|
|
57
|
+
async getHealthStatus() {
|
|
58
|
+
return this.healthStateModule?.getHealthStatus() ?? null;
|
|
59
|
+
}
|
|
60
|
+
async getSystemState() {
|
|
61
|
+
return this.healthStateModule?.getSystemState() ?? null;
|
|
62
|
+
}
|
|
55
63
|
async start() {
|
|
56
64
|
if (this.started)
|
|
57
65
|
return;
|
|
58
66
|
logger.info("Runtime.start() entered", { configName: this.config.name });
|
|
67
|
+
this.startedAt = Date.now();
|
|
59
68
|
const { stateDir, mcpTransport, apiKey, scannerProviders } = this.options;
|
|
60
69
|
if (!mcpTransport && !apiKey) {
|
|
61
70
|
throw new Error("Runtime requires mcpTransport or apiKey for full operation (positions, LLM)");
|
|
@@ -87,10 +96,10 @@ export class Runtime {
|
|
|
87
96
|
await senpi.connect();
|
|
88
97
|
}
|
|
89
98
|
this.senpi = senpi;
|
|
90
|
-
this.
|
|
99
|
+
this.strategyConfig = resolveStrategyConfig(this.config);
|
|
91
100
|
try {
|
|
92
101
|
const { reconcileStateWithBackend } = await import("./reconcile-state.js");
|
|
93
|
-
await reconcileStateWithBackend(this.stateManager, senpi, this.
|
|
102
|
+
await reconcileStateWithBackend(this.stateManager, senpi, [this.strategyConfig.address]);
|
|
94
103
|
}
|
|
95
104
|
catch (err) {
|
|
96
105
|
logger.warn("reconcile after hydrate failed, continuing", { err });
|
|
@@ -103,13 +112,14 @@ export class Runtime {
|
|
|
103
112
|
mcpTransport: this.options.mcpTransport,
|
|
104
113
|
});
|
|
105
114
|
logger.info("Runtime.start() creating scanner module");
|
|
115
|
+
const layout = buildStateLayout(stateDir);
|
|
106
116
|
// Augment caller-supplied providers with StateManager-backed DSL state access
|
|
107
117
|
const augmentedProviders = {
|
|
108
118
|
...scannerProviders,
|
|
109
119
|
getDslStatesForStrategy: scannerProviders?.getDslStatesForStrategy
|
|
110
120
|
?? (async (address) => this.stateManager.listDslStates(address)),
|
|
111
121
|
};
|
|
112
|
-
this.scannerModule = createScannerModuleFromTradingRecipe(this.config,
|
|
122
|
+
this.scannerModule = createScannerModuleFromTradingRecipe(this.config, layout.scannerRoot, augmentedProviders);
|
|
113
123
|
logger.info("Runtime.start() scanner module created, calling start()");
|
|
114
124
|
// Pre-load max leverage cache (non-blocking — log warning on failure)
|
|
115
125
|
const maxLeverageCache = new MaxLeverageCache(senpi);
|
|
@@ -120,18 +130,16 @@ export class Runtime {
|
|
|
120
130
|
logger.warn("failed to pre-load max leverage cache, will retry on first use", { err });
|
|
121
131
|
}
|
|
122
132
|
// Build RuntimeContext once per trading recipe and reuse for all actions.
|
|
123
|
-
const runtimeContext = createRuntimeContext(this.
|
|
133
|
+
const runtimeContext = createRuntimeContext(this.strategyConfig, {
|
|
124
134
|
senpi,
|
|
125
135
|
hookSystem: this.hookSystem,
|
|
126
136
|
llmDecision,
|
|
127
137
|
contextBuilder,
|
|
128
138
|
riskGuard,
|
|
129
139
|
notifications,
|
|
130
|
-
stateManager: this.stateManager,
|
|
131
140
|
scannerModule: this.scannerModule,
|
|
132
141
|
maxLeverageCache,
|
|
133
142
|
});
|
|
134
|
-
this.strategyStates = runtimeContext.strategyStates;
|
|
135
143
|
const { runActionsForSignal } = createActions(this.config, {
|
|
136
144
|
bus: this.bus,
|
|
137
145
|
senpi,
|
|
@@ -154,7 +162,7 @@ export class Runtime {
|
|
|
154
162
|
stateDir,
|
|
155
163
|
stateManager: this.stateManager,
|
|
156
164
|
senpiClient: senpi,
|
|
157
|
-
strategyStates:
|
|
165
|
+
strategyStates: createStrategyStatesMap(this.strategyConfig, senpi),
|
|
158
166
|
notifications: dslNotificationsDisabled ? undefined : notifications,
|
|
159
167
|
notifySlUpdates: dslNotifySlUpdates,
|
|
160
168
|
strategyName: this.config.name,
|
|
@@ -164,15 +172,16 @@ export class Runtime {
|
|
|
164
172
|
this.dslPlugin = null;
|
|
165
173
|
}
|
|
166
174
|
initRisk(this.bus);
|
|
167
|
-
|
|
175
|
+
this.healthStateModule = createHealthStateModule({
|
|
176
|
+
recipeName: this.config.name,
|
|
177
|
+
stateDir,
|
|
178
|
+
startedAt: this.startedAt,
|
|
179
|
+
providers: {
|
|
180
|
+
scanners: this.scannerModule,
|
|
181
|
+
dsl: this.dslPlugin ?? createDisabledDslProvider(),
|
|
182
|
+
},
|
|
183
|
+
});
|
|
168
184
|
this.onScannerRunComplete = (event) => {
|
|
169
|
-
logger.info("scanner:run:complete received, enqueuing", {
|
|
170
|
-
address: event.result.address,
|
|
171
|
-
scannerId: event.result.scannerId,
|
|
172
|
-
status: event.result.status,
|
|
173
|
-
signalCount: event.result.signals.length,
|
|
174
|
-
queueDepth: this.signalQueue.length + 1,
|
|
175
|
-
});
|
|
176
185
|
this.signalQueue.push({ result: event.result });
|
|
177
186
|
if (this.signalQueueWait) {
|
|
178
187
|
const w = this.signalQueueWait;
|
|
@@ -195,22 +204,17 @@ export class Runtime {
|
|
|
195
204
|
this.started = true;
|
|
196
205
|
}
|
|
197
206
|
/**
|
|
198
|
-
* Cancel exchange SLs and archive DSL state for
|
|
207
|
+
* Cancel exchange SLs and archive DSL state for the strategy, then log removal.
|
|
199
208
|
*/
|
|
200
209
|
async removeStrategy(address) {
|
|
201
210
|
if (this.dslPlugin) {
|
|
202
211
|
await this.dslPlugin.deleteDslsForStrategy(address);
|
|
203
212
|
}
|
|
204
|
-
this.strategiesMap.delete(address);
|
|
205
|
-
this.strategyStates.delete(address);
|
|
206
213
|
logger.info("[runtime] strategy removed", { address });
|
|
207
214
|
}
|
|
208
|
-
/** Tear down DSL for
|
|
215
|
+
/** Tear down DSL for the recipe strategy before deleting the recipe (gateway / CLI). */
|
|
209
216
|
async teardownDslForRecipeDeletion() {
|
|
210
|
-
|
|
211
|
-
for (const address of addresses) {
|
|
212
|
-
await this.removeStrategy(address);
|
|
213
|
-
}
|
|
217
|
+
await this.removeStrategy(this.strategyConfig.address);
|
|
214
218
|
}
|
|
215
219
|
/**
|
|
216
220
|
* Single consumer: process one scanner:run:complete at a time so slot counts stay correct.
|
|
@@ -229,13 +233,8 @@ export class Runtime {
|
|
|
229
233
|
if (!item)
|
|
230
234
|
continue;
|
|
231
235
|
try {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
scannerId: item.result.scannerId,
|
|
235
|
-
signalCount: item.result.signals.length,
|
|
236
|
-
});
|
|
237
|
-
const usedSlotsByStrategy = await this.stateManager.getUsedSlotsByStrategy(Array.from(this.strategiesMap.keys()));
|
|
238
|
-
const payload = buildActionScanPayload(item.result, this.strategiesMap, {
|
|
236
|
+
const usedSlotsByStrategy = await this.stateManager.getUsedSlotsByStrategy([this.strategyConfig.address]);
|
|
237
|
+
const payload = buildActionScanPayload(item.result, this.strategyConfig, {
|
|
239
238
|
usedSlotsByStrategy,
|
|
240
239
|
address: item.result.address,
|
|
241
240
|
});
|
|
@@ -246,17 +245,13 @@ export class Runtime {
|
|
|
246
245
|
data: payload,
|
|
247
246
|
timestamp: new Date().toISOString(),
|
|
248
247
|
};
|
|
249
|
-
logger.info("emitting ON_SIGNAL_DETECTED, dispatching to actions", {
|
|
250
|
-
address: item.result.address,
|
|
251
|
-
scannerId: item.result.scannerId,
|
|
252
|
-
});
|
|
253
248
|
this.bus.emit(HOOK_EVENT.ON_SIGNAL_DETECTED, hookEvent);
|
|
254
249
|
await this.runActionsForSignal(hookEvent);
|
|
255
250
|
}
|
|
256
251
|
catch (err) {
|
|
257
252
|
const message = err instanceof Error ? err.message : String(err);
|
|
258
253
|
const stack = err instanceof Error ? err.stack : undefined;
|
|
259
|
-
|
|
254
|
+
console.error("[senpi-recipe] signal processing error", message, stack ?? "");
|
|
260
255
|
this.bus.emit("signal_processing_error", {
|
|
261
256
|
error: err,
|
|
262
257
|
address: item.result.address,
|
|
@@ -293,9 +288,49 @@ export class Runtime {
|
|
|
293
288
|
await this.senpi.disconnect();
|
|
294
289
|
this.senpi = null;
|
|
295
290
|
}
|
|
291
|
+
this.healthStateModule = null;
|
|
296
292
|
if (this.bus.removeAllListeners) {
|
|
297
293
|
this.bus.removeAllListeners();
|
|
298
294
|
}
|
|
299
295
|
}
|
|
300
296
|
}
|
|
297
|
+
function createDisabledDslProvider() {
|
|
298
|
+
return {
|
|
299
|
+
async getHealthStatus() {
|
|
300
|
+
return {
|
|
301
|
+
component: "dsl",
|
|
302
|
+
health: "disabled",
|
|
303
|
+
updatedAt: new Date().toISOString(),
|
|
304
|
+
summary: "DSL is not configured for this runtime.",
|
|
305
|
+
enabled: false,
|
|
306
|
+
activePositions: 0,
|
|
307
|
+
};
|
|
308
|
+
},
|
|
309
|
+
async getSystemState() {
|
|
310
|
+
return {
|
|
311
|
+
component: "dsl",
|
|
312
|
+
health: "disabled",
|
|
313
|
+
updatedAt: new Date().toISOString(),
|
|
314
|
+
state: {
|
|
315
|
+
enabled: false,
|
|
316
|
+
intervalMs: 0,
|
|
317
|
+
preset: "disabled",
|
|
318
|
+
monitor: {
|
|
319
|
+
running: false,
|
|
320
|
+
inFlight: false,
|
|
321
|
+
lastTickStartedAt: null,
|
|
322
|
+
lastTickFinishedAt: null,
|
|
323
|
+
lastTickError: null,
|
|
324
|
+
nextTickAt: null,
|
|
325
|
+
tickAttemptCount: 0,
|
|
326
|
+
tickSuccessCount: 0,
|
|
327
|
+
tickErrorCount: 0,
|
|
328
|
+
},
|
|
329
|
+
activePositions: [],
|
|
330
|
+
positions: [],
|
|
331
|
+
},
|
|
332
|
+
};
|
|
333
|
+
},
|
|
334
|
+
};
|
|
335
|
+
}
|
|
301
336
|
//# sourceMappingURL=runtime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical state-directory layout helpers and archive operations.
|
|
3
|
+
*
|
|
4
|
+
* The runtime uses these to build deterministic per-recipe state paths
|
|
5
|
+
* and to archive state directories when recipes are deleted.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Describes the explicit paths the runtime provides to each component.
|
|
9
|
+
* Components must store their state only within the path they receive.
|
|
10
|
+
*/
|
|
11
|
+
export interface StateLayout {
|
|
12
|
+
/** Recipe state root (e.g. `<baseStateDir>/<recipeId>-<wallet>`). */
|
|
13
|
+
root: string;
|
|
14
|
+
/** Root passed to scanner stores (same as `root` today; scanners add `strategies/<wallet>/...` internally). */
|
|
15
|
+
scannerRoot: string;
|
|
16
|
+
/** Root passed to StateManager / DslPlugin (same as `root`; they add `<wallet>/dsl-*` internally). */
|
|
17
|
+
dslRoot: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Build the per-recipe state directory path.
|
|
21
|
+
* Convention: `<baseStateDir>/<recipeId>-<wallet>`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildRecipeStateDir(baseStateDir: string, recipeId: string, wallet: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Build a `StateLayout` from a recipe's state directory.
|
|
26
|
+
* Currently all roots resolve to the same directory; kept explicit so
|
|
27
|
+
* a future version can split them without changing call-sites.
|
|
28
|
+
*/
|
|
29
|
+
export declare function buildStateLayout(recipeStateDir: string): StateLayout;
|
|
30
|
+
export interface ArchiveEntry {
|
|
31
|
+
path: string;
|
|
32
|
+
recipeId: string;
|
|
33
|
+
wallet: string;
|
|
34
|
+
timestamp: number;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Archive a recipe's state directory by moving it into the archives folder.
|
|
38
|
+
* Target: `<archiveBaseDir>/<recipeId>-<wallet>-<timestamp>/`.
|
|
39
|
+
* Falls back to recursive copy + remove when `rename` fails (cross-device).
|
|
40
|
+
* Returns the archive destination path.
|
|
41
|
+
*/
|
|
42
|
+
export declare function archiveStateDir(recipeStateDir: string, archiveBaseDir: string, recipeId: string, wallet: string): Promise<string>;
|
|
43
|
+
/**
|
|
44
|
+
* List archived recipe state directories, sorted newest-first.
|
|
45
|
+
* Parses directory names matching `<recipeId>-<wallet>-<timestamp>`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function listArchives(archiveBaseDir: string): Promise<ArchiveEntry[]>;
|
|
48
|
+
//# sourceMappingURL=state-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-layout.d.ts","sourceRoot":"","sources":["../../src/runtime/state-layout.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,+GAA+G;IAC/G,WAAW,EAAE,MAAM,CAAC;IACpB,sGAAsG;IACtG,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,CAMpE;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAajB;AAID;;;GAGG;AACH,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAgClF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical state-directory layout helpers and archive operations.
|
|
3
|
+
*
|
|
4
|
+
* The runtime uses these to build deterministic per-recipe state paths
|
|
5
|
+
* and to archive state directories when recipes are deleted.
|
|
6
|
+
*/
|
|
7
|
+
import { join } from "node:path";
|
|
8
|
+
import { mkdir, rename, readdir, cp, rm, stat } from "node:fs/promises";
|
|
9
|
+
/**
|
|
10
|
+
* Build the per-recipe state directory path.
|
|
11
|
+
* Convention: `<baseStateDir>/<recipeId>-<wallet>`.
|
|
12
|
+
*/
|
|
13
|
+
export function buildRecipeStateDir(baseStateDir, recipeId, wallet) {
|
|
14
|
+
return join(baseStateDir, `${recipeId}-${wallet}`);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build a `StateLayout` from a recipe's state directory.
|
|
18
|
+
* Currently all roots resolve to the same directory; kept explicit so
|
|
19
|
+
* a future version can split them without changing call-sites.
|
|
20
|
+
*/
|
|
21
|
+
export function buildStateLayout(recipeStateDir) {
|
|
22
|
+
return {
|
|
23
|
+
root: recipeStateDir,
|
|
24
|
+
scannerRoot: recipeStateDir,
|
|
25
|
+
dslRoot: recipeStateDir,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Archive a recipe's state directory by moving it into the archives folder.
|
|
30
|
+
* Target: `<archiveBaseDir>/<recipeId>-<wallet>-<timestamp>/`.
|
|
31
|
+
* Falls back to recursive copy + remove when `rename` fails (cross-device).
|
|
32
|
+
* Returns the archive destination path.
|
|
33
|
+
*/
|
|
34
|
+
export async function archiveStateDir(recipeStateDir, archiveBaseDir, recipeId, wallet) {
|
|
35
|
+
await mkdir(archiveBaseDir, { recursive: true });
|
|
36
|
+
const ts = Date.now();
|
|
37
|
+
const archiveName = `${recipeId}-${wallet}-${ts}`;
|
|
38
|
+
const dest = join(archiveBaseDir, archiveName);
|
|
39
|
+
try {
|
|
40
|
+
await rename(recipeStateDir, dest);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
await cp(recipeStateDir, dest, { recursive: true });
|
|
44
|
+
await rm(recipeStateDir, { recursive: true, force: true });
|
|
45
|
+
}
|
|
46
|
+
return dest;
|
|
47
|
+
}
|
|
48
|
+
const ARCHIVE_DIR_PATTERN = /^(.+)-([^-]+-[^-]+)$/;
|
|
49
|
+
/**
|
|
50
|
+
* List archived recipe state directories, sorted newest-first.
|
|
51
|
+
* Parses directory names matching `<recipeId>-<wallet>-<timestamp>`.
|
|
52
|
+
*/
|
|
53
|
+
export async function listArchives(archiveBaseDir) {
|
|
54
|
+
let entries;
|
|
55
|
+
try {
|
|
56
|
+
entries = await readdir(archiveBaseDir);
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
return [];
|
|
60
|
+
}
|
|
61
|
+
const results = [];
|
|
62
|
+
for (const name of entries) {
|
|
63
|
+
const fullPath = join(archiveBaseDir, name);
|
|
64
|
+
let info;
|
|
65
|
+
try {
|
|
66
|
+
info = await stat(fullPath);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (!info.isDirectory())
|
|
72
|
+
continue;
|
|
73
|
+
const m = ARCHIVE_DIR_PATTERN.exec(name);
|
|
74
|
+
if (!m)
|
|
75
|
+
continue;
|
|
76
|
+
const [, recipeId, walletAndTs] = m;
|
|
77
|
+
const tsDash = walletAndTs.lastIndexOf("-");
|
|
78
|
+
const wallet = walletAndTs.slice(0, tsDash);
|
|
79
|
+
const ts = Number(walletAndTs.slice(tsDash + 1));
|
|
80
|
+
if (!Number.isFinite(ts) || ts <= 0)
|
|
81
|
+
continue;
|
|
82
|
+
results.push({ path: fullPath, recipeId, wallet, timestamp: ts });
|
|
83
|
+
}
|
|
84
|
+
results.sort((a, b) => b.timestamp - a.timestamp);
|
|
85
|
+
return results;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=state-layout.js.map
|