@senpi/trading-recipe 1.0.67 → 1.0.69

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.
Files changed (42) hide show
  1. package/dist/dsl/events/handlers.d.ts +2 -2
  2. package/dist/dsl/events/handlers.d.ts.map +1 -1
  3. package/dist/dsl/events/handlers.js +35 -27
  4. package/dist/dsl/events/handlers.js.map +1 -1
  5. package/dist/dsl/notifications/formatter.d.ts.map +1 -1
  6. package/dist/dsl/notifications/formatter.js +20 -1
  7. package/dist/dsl/notifications/formatter.js.map +1 -1
  8. package/dist/dsl/notifications/index.d.ts +5 -0
  9. package/dist/dsl/notifications/index.d.ts.map +1 -1
  10. package/dist/dsl/notifications/index.js +11 -7
  11. package/dist/dsl/notifications/index.js.map +1 -1
  12. package/dist/dsl/plugin/index.d.ts +1 -1
  13. package/dist/dsl/plugin/index.d.ts.map +1 -1
  14. package/dist/dsl/plugin/index.js +2 -1
  15. package/dist/dsl/plugin/index.js.map +1 -1
  16. package/dist/dsl/plugin/options.d.ts +2 -0
  17. package/dist/dsl/plugin/options.d.ts.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +116 -16
  21. package/dist/index.js.map +1 -1
  22. package/dist/runtime/notifications.d.ts +7 -0
  23. package/dist/runtime/notifications.d.ts.map +1 -1
  24. package/dist/runtime/notifications.js +7 -0
  25. package/dist/runtime/notifications.js.map +1 -1
  26. package/dist/runtime/run.d.ts +2 -0
  27. package/dist/runtime/run.d.ts.map +1 -1
  28. package/dist/runtime/run.js +3 -0
  29. package/dist/runtime/run.js.map +1 -1
  30. package/dist/runtime/runtime.d.ts +7 -0
  31. package/dist/runtime/runtime.d.ts.map +1 -1
  32. package/dist/runtime/runtime.js +21 -0
  33. package/dist/runtime/runtime.js.map +1 -1
  34. package/dist/types/dsl/index.d.ts +9 -0
  35. package/dist/types/dsl/index.d.ts.map +1 -1
  36. package/dist/utils/logger.d.ts +10 -0
  37. package/dist/utils/logger.d.ts.map +1 -1
  38. package/dist/utils/logger.js +32 -0
  39. package/dist/utils/logger.js.map +1 -1
  40. package/examples/strategies/dsl-showcase.yaml +4 -6
  41. package/openclaw.plugin.json +1 -1
  42. package/package.json +1 -1
@@ -8,12 +8,37 @@ const levelOrder = {
8
8
  error: 3,
9
9
  };
10
10
  let minLevel = "info";
11
+ let errorNotifier = null;
12
+ let notifyingError = false;
11
13
  export function setLogLevel(level) {
12
14
  minLevel = level;
13
15
  }
16
+ export function setErrorNotifier(notifier) {
17
+ errorNotifier = notifier;
18
+ }
19
+ export function clearErrorNotifier() {
20
+ errorNotifier = null;
21
+ }
14
22
  function shouldLog(level) {
15
23
  return levelOrder[level] >= levelOrder[minLevel];
16
24
  }
25
+ function dispatchErrorNotification(payload) {
26
+ const notifier = errorNotifier;
27
+ if (notifier == null || notifyingError)
28
+ return;
29
+ void (async () => {
30
+ notifyingError = true;
31
+ try {
32
+ await notifier(payload);
33
+ }
34
+ catch {
35
+ // Intentionally swallow notifier failures to keep error logging safe.
36
+ }
37
+ finally {
38
+ notifyingError = false;
39
+ }
40
+ })();
41
+ }
17
42
  export function createLogger(namespace) {
18
43
  return {
19
44
  debug(message, meta) {
@@ -59,6 +84,13 @@ export function createLogger(namespace) {
59
84
  else {
60
85
  console.error(prefix, message);
61
86
  }
87
+ dispatchErrorNotification({
88
+ namespace,
89
+ level: "error",
90
+ message,
91
+ meta,
92
+ timestamp: new Date().toISOString(),
93
+ });
62
94
  },
63
95
  };
64
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,UAAU,GAA6B;IAC3C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,IAAI,QAAQ,GAAa,MAAM,CAAC;AAEhC,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,SAAS,SAAS,CAAC,KAAe;IAChC,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC;AASD,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,OAAO;QACL,KAAK,CAAC,OAAe,EAAE,IAAc;YACnC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAAE,OAAO;YAChC,MAAM,MAAM,GAAG,GAAG,SAAS,UAAU,CAAC;YACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAe,EAAE,IAAc;YAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAAE,OAAO;YAC/B,MAAM,MAAM,GAAG,GAAG,SAAS,SAAS,CAAC;YACrC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAe,EAAE,IAAc;YAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAAE,OAAO;YAC/B,MAAM,MAAM,GAAG,GAAG,SAAS,SAAS,CAAC;YACrC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,OAAe,EAAE,IAAc;YACnC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;gBAAE,OAAO;YAChC,MAAM,MAAM,GAAG,GAAG,SAAS,UAAU,CAAC;YACtC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACvC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -7,15 +7,13 @@ description: >
7
7
  Onchain position tracker — monitors the strategy wallet on Hyperliquid
8
8
  for position lifecycle events (open, close, edit, flip) and wires them
9
9
  into the DSL exit engine for automated trailing stop-loss management.
10
-
10
+
11
+ notifications:
12
+ telegram_chat_id: "${TELEGRAM_CHAT_ID}"
13
+
11
14
  strategies:
12
15
  ref:
13
16
  wallet: "${WALLET_ADDRESS}"
14
- budget: 100
15
- slots: 2
16
- margin_per_slot: 50
17
- trading_risk: conservative
18
- enabled: true
19
17
 
20
18
  # ── SCANNERS ──
21
19
  scanners:
@@ -2,7 +2,7 @@
2
2
  "id": "trading-recipe",
3
3
  "name": "Senpi Trading Recipe",
4
4
  "description": "Senpi trading recipe plugin for OpenClaw",
5
- "version": "1.0.67",
5
+ "version": "1.0.69",
6
6
  "configSchema": {
7
7
  "type": "object",
8
8
  "additionalProperties": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@senpi/trading-recipe",
3
- "version": "1.0.67",
3
+ "version": "1.0.69",
4
4
  "description": "Trading recipe plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",