@senpi/runtime 1.0.95-dev.runtime-phase-2.20260424100011 → 1.0.95-dev.runtime-phase-2.20260424145202
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 +2 -0
- package/dist/runtime/map-exit-config.d.ts +2 -1
- package/dist/runtime/map-exit-config.d.ts.map +1 -1
- package/dist/runtime/map-exit-config.js +11 -1
- package/dist/runtime/map-exit-config.js.map +1 -1
- package/dist/scanners/schema-utils.d.ts +22 -2
- package/dist/scanners/schema-utils.d.ts.map +1 -1
- package/dist/scanners/schema-utils.js +14 -2
- package/dist/scanners/schema-utils.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -16,6 +16,8 @@ Event-driven automated trading plugin for OpenClaw. Orchestrates scanners, LLM-b
|
|
|
16
16
|
openclaw plugins install @senpi-ai/runtime
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
+
**Custom installs (Git checkout, `dist/`-only copy, or Docker without devDependencies):** run `npm install` in the package root (or `npm ci --omit=dev` from a lockfile) so `node_modules` includes runtime dependencies. The runtime uses **TypeBox** at load time for scanner option validation (`@sinclair/typebox` / `@sinclair/typebox/value`); if that package is missing, the gateway will fail to load the plugin with `Cannot find module '@sinclair/typebox/value'`.
|
|
20
|
+
|
|
19
21
|
## Configure
|
|
20
22
|
|
|
21
23
|
Add the plugin to your OpenClaw config (e.g. `~/.openclaw/openclaw.json` or via `openclaw config set`). Use the plugin **id** `@senpi-ai/runtime` as the key:
|
|
@@ -5,7 +5,8 @@ import type { ExitBlockConfig } from "../dsl/config/index.js";
|
|
|
5
5
|
import type { RuntimeExit } from "./runtime-schema.js";
|
|
6
6
|
/**
|
|
7
7
|
* Adapt playbook exit to ExitBlockConfig for parseDslPluginConfig.
|
|
8
|
-
*
|
|
8
|
+
* Passes `exit.interval_seconds`, `exit.engine`, `exit.order_type`, and
|
|
9
|
+
* `exit.fee_optimized_limit_options` (ALO close) alongside `exit.dsl_preset`.
|
|
9
10
|
*/
|
|
10
11
|
export declare function mapRuntimeExitToDslConfig(exit: RuntimeExit | undefined): ExitBlockConfig;
|
|
11
12
|
//# sourceMappingURL=map-exit-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-exit-config.d.ts","sourceRoot":"","sources":["../../src/runtime/map-exit-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA4FvD
|
|
1
|
+
{"version":3,"file":"map-exit-config.d.ts","sourceRoot":"","sources":["../../src/runtime/map-exit-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA4FvD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,eAAe,CA6BxF"}
|
|
@@ -62,7 +62,8 @@ function buildPreset(rawObj) {
|
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
64
|
* Adapt playbook exit to ExitBlockConfig for parseDslPluginConfig.
|
|
65
|
-
*
|
|
65
|
+
* Passes `exit.interval_seconds`, `exit.engine`, `exit.order_type`, and
|
|
66
|
+
* `exit.fee_optimized_limit_options` (ALO close) alongside `exit.dsl_preset`.
|
|
66
67
|
*/
|
|
67
68
|
export function mapRuntimeExitToDslConfig(exit) {
|
|
68
69
|
if (exit != null && typeof exit === "object") {
|
|
@@ -70,17 +71,26 @@ export function mapRuntimeExitToDslConfig(exit) {
|
|
|
70
71
|
}
|
|
71
72
|
const rawExit = exit;
|
|
72
73
|
const dslPresetSingle = rawExit?.dsl_preset;
|
|
74
|
+
const alo = {};
|
|
75
|
+
if (exit?.order_type != null) {
|
|
76
|
+
alo.order_type = exit.order_type;
|
|
77
|
+
}
|
|
78
|
+
if (exit?.fee_optimized_limit_options != null) {
|
|
79
|
+
alo.fee_optimized_limit_options = exit.fee_optimized_limit_options;
|
|
80
|
+
}
|
|
73
81
|
if (dslPresetSingle != null && typeof dslPresetSingle === "object" && !Array.isArray(dslPresetSingle)) {
|
|
74
82
|
const built = buildPreset(dslPresetSingle);
|
|
75
83
|
return {
|
|
76
84
|
interval_seconds: exit?.interval_seconds ?? 30,
|
|
77
85
|
...(exit?.engine != null && { engine: exit.engine }),
|
|
78
86
|
dsl_preset: built,
|
|
87
|
+
...alo,
|
|
79
88
|
};
|
|
80
89
|
}
|
|
81
90
|
return {
|
|
82
91
|
interval_seconds: exit?.interval_seconds ?? 30,
|
|
83
92
|
...(exit?.engine != null && { engine: exit.engine }),
|
|
93
|
+
...alo,
|
|
84
94
|
};
|
|
85
95
|
}
|
|
86
96
|
//# sourceMappingURL=map-exit-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map-exit-config.js","sourceRoot":"","sources":["../../src/runtime/map-exit-config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"map-exit-config.js","sourceRoot":"","sources":["../../src/runtime/map-exit-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeBox `Value` helpers for scanner `paramsSchema` / options validation.
|
|
3
|
+
*
|
|
4
|
+
* **Package dependency:** this module imports `@sinclair/typebox` and
|
|
5
|
+
* `@sinclair/typebox/value` at runtime. They must be listed in **dependencies**
|
|
6
|
+
* (not only devDependencies) so production installs and OpenClaw extension
|
|
7
|
+
* layouts that omit dev deps still resolve `node_modules/@sinclair/typebox`.
|
|
8
|
+
*/
|
|
1
9
|
import type { TSchema } from "@sinclair/typebox";
|
|
2
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* Returns whether `value` satisfies `schema` via TypeBox `Value.Check`.
|
|
12
|
+
*
|
|
13
|
+
* @param schema - TypeBox schema, or `undefined` (treated as valid for any value)
|
|
14
|
+
* @param value - User-provided object to validate
|
|
15
|
+
* @returns `true` if there is no schema or `Value.Check` succeeds
|
|
16
|
+
*/
|
|
3
17
|
export declare function isSchemaValueValid(schema: TSchema | undefined, value: unknown): boolean;
|
|
4
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* Returns a short, single-line description of the first TypeBox error for `value` against `schema`.
|
|
20
|
+
*
|
|
21
|
+
* @param schema - TypeBox schema (required; use after `isSchemaValueValid` fails)
|
|
22
|
+
* @param value - The same value that failed `Value.Check`
|
|
23
|
+
* @returns Path and message from `Value.Errors(...).First()`, or a fallback string
|
|
24
|
+
*/
|
|
5
25
|
export declare function describeSchemaValidationError(schema: TSchema, value: unknown): string;
|
|
6
26
|
//# sourceMappingURL=schema-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-utils.d.ts","sourceRoot":"","sources":["../../src/scanners/schema-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD
|
|
1
|
+
{"version":3,"file":"schema-utils.d.ts","sourceRoot":"","sources":["../../src/scanners/schema-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,GAAG,SAAS,EAC3B,KAAK,EAAE,OAAO,GACb,OAAO,CAKT;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,OAAO,EACf,KAAK,EAAE,OAAO,GACb,MAAM,CAGR"}
|
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import { Value } from "@sinclair/typebox/value";
|
|
2
|
-
/**
|
|
2
|
+
/**
|
|
3
|
+
* Returns whether `value` satisfies `schema` via TypeBox `Value.Check`.
|
|
4
|
+
*
|
|
5
|
+
* @param schema - TypeBox schema, or `undefined` (treated as valid for any value)
|
|
6
|
+
* @param value - User-provided object to validate
|
|
7
|
+
* @returns `true` if there is no schema or `Value.Check` succeeds
|
|
8
|
+
*/
|
|
3
9
|
export function isSchemaValueValid(schema, value) {
|
|
4
10
|
if (!schema) {
|
|
5
11
|
return true;
|
|
6
12
|
}
|
|
7
13
|
return Value.Check(schema, value);
|
|
8
14
|
}
|
|
9
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* Returns a short, single-line description of the first TypeBox error for `value` against `schema`.
|
|
17
|
+
*
|
|
18
|
+
* @param schema - TypeBox schema (required; use after `isSchemaValueValid` fails)
|
|
19
|
+
* @param value - The same value that failed `Value.Check`
|
|
20
|
+
* @returns Path and message from `Value.Errors(...).First()`, or a fallback string
|
|
21
|
+
*/
|
|
10
22
|
export function describeSchemaValidationError(schema, value) {
|
|
11
23
|
const firstError = Value.Errors(schema, value).First();
|
|
12
24
|
return firstError ? `${firstError.path} ${firstError.message}` : "Unknown reason";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-utils.js","sourceRoot":"","sources":["../../src/scanners/schema-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema-utils.js","sourceRoot":"","sources":["../../src/scanners/schema-utils.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA2B,EAC3B,KAAc;IAEd,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAAe,EACf,KAAc;IAEd,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IACvD,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACpF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@senpi/runtime",
|
|
3
|
-
"version": "1.0.95-dev.runtime-phase-2.
|
|
3
|
+
"version": "1.0.95-dev.runtime-phase-2.20260424145202",
|
|
4
4
|
"description": "Senpi runtime plugin for OpenClaw",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@anthropic-ai/sdk": "^0.39.0",
|
|
33
33
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
34
|
+
"@sinclair/typebox": "^0.34.0",
|
|
34
35
|
"dotenv": "^16.4.5",
|
|
35
36
|
"mcporter": "^0.7.3",
|
|
36
37
|
"yaml": "^2.8.0",
|
|
@@ -40,7 +41,6 @@
|
|
|
40
41
|
"openclaw": ">=2026.2.0"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
|
-
"@sinclair/typebox": "^0.34.0",
|
|
44
44
|
"@types/node": "^22.0.0",
|
|
45
45
|
"typescript": "^5.7.0",
|
|
46
46
|
"vitest": "^3.0.0"
|