@senpi/runtime 1.1.0-dev.runtime-phase-2.20260511162328 → 1.1.0-dev.runtime-phase-2.20260511191318

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.
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/runtime/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAKpE,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAO1E;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,mBAAmB,CAyEnG"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/runtime/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAKpE,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAmBD,wBAAgB,+BAA+B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAiD1E;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,0BAA0B,GAAG,mBAAmB,CAyEnG"}
@@ -1,15 +1,61 @@
1
1
  import { createLogger } from "../utils/logger.js";
2
2
  const logger = createLogger("[senpi-core][notifications]");
3
+ // Decision-error → user-facing chat message.
4
+ //
5
+ // The runtime catches errors from the LLM-decision call (openclaw-llm-decision.ts:
6
+ // throws on token-missing, on non-2xx HTTP, and on body.ok=false) and passes
7
+ // err.message here. Network-level failures (fetch() rejecting) also reach this
8
+ // with the underlying error string.
9
+ //
10
+ // Discriminators: HTTP status prefix + presence of a structured tool_error body
11
+ // + node fetch error markers. The mapping below is intentionally specific per
12
+ // failure mode so the chat reader can tell apart:
13
+ // - infrastructure unreachable vs misconfigured,
14
+ // - signal dropped because the AI model timed out vs the AI model errored vs
15
+ // OpenClaw itself returned an unexpected error.
16
+ // Auth (401/403) is intentionally NOT handled separately — the runtime plugin
17
+ // and the gateway it calls share the same process env and the same token, so
18
+ // 401/403 is unreachable in practice; if it ever fires, the generic fallback
19
+ // at the bottom surfaces the raw message.
3
20
  export function formatDecisionErrorNotification(rawMessage) {
4
21
  const s = rawMessage;
5
- if (/OpenClaw gateway error \(404\)/.test(s))
6
- return "Senpi: OpenClaw gateway returned 404. Endpoint missing.";
7
- if (/OpenClaw gateway error \(401\)|OpenClaw gateway error \(403\)/.test(s))
8
- return "Senpi: OpenClaw gateway rejected (auth). Check OPENCLAW_GATEWAY_TOKEN.";
9
- if (/OpenClaw gateway error \(5\d\d\)/.test(s))
10
- return "Senpi: OpenClaw gateway error (5xx). Try again later.";
11
- if (/gateway token not configured|OPENCLAW_GATEWAY_TOKEN/.test(s))
22
+ // Token missing at config-time — fires before any HTTP call, so check first.
23
+ if (/gateway token not configured|OPENCLAW_GATEWAY_TOKEN/.test(s)) {
12
24
  return "Senpi: OpenClaw gateway token not configured. Set OPENCLAW_GATEWAY_TOKEN.";
25
+ }
26
+ // (1) OpenClaw Gateway not reachable — fetch() rejected before getting a
27
+ // response. Node's undici fetch surfaces these as "fetch failed" with the
28
+ // underlying SystemError code in .cause; the action runner stringifies it
29
+ // so the code marker usually lands in the message.
30
+ if (/^fetch failed$|fetch failed:|ECONNREFUSED|ECONNRESET|ETIMEDOUT|ENOTFOUND|EAI_AGAIN/.test(s)) {
31
+ return "Senpi: OpenClaw Gateway is unreachable.";
32
+ }
33
+ // (2) Endpoint missing — plugin not installed at this path, or version mismatch.
34
+ if (/OpenClaw gateway error \(404\)/.test(s)) {
35
+ return "Senpi: OpenClaw is missing the plugin endpoint. Please reinstall the plugin.";
36
+ }
37
+ // (3) AI model timed out — OpenClaw's llm-task tool returns 408 when it hits
38
+ // its own per-call cap; the gateway returns 504 when the upstream call exceeded
39
+ // the gateway's frame timeout. AbortError covers cancellation paths that may
40
+ // be added at the runtime side in the future.
41
+ if (/OpenClaw gateway error \(408\)|OpenClaw gateway error \(504\)|AbortError|operation was aborted/.test(s)) {
42
+ return "Senpi: Signal Dropped - AI model didn't respond in 90 seconds.";
43
+ }
44
+ // (4) AI model failed — HTTP 5xx whose body carries a structured tool_error
45
+ // (today's case: Gemini overload → llm-task wraps as `{"ok":false,
46
+ // "error":{"type":"tool_error","message":"tool execution failed"}}` →
47
+ // gateway returns HTTP 500), OR HTTP 200 with body.ok=false from the same
48
+ // tool layer ("OpenClaw gateway rejected request: ...").
49
+ if ((/OpenClaw gateway error \(5\d\d\)/.test(s) && /"type":\s*"tool_error"/.test(s)) ||
50
+ /OpenClaw gateway rejected request/.test(s)) {
51
+ return "Senpi: Signal Dropped - AI model failed to respond.";
52
+ }
53
+ // (5) Any other 5xx — gateway-frame error or unparseable body.
54
+ if (/OpenClaw gateway error \(5\d\d\)/.test(s)) {
55
+ return "Senpi: Signal Dropped - OpenClaw hit an unexpected error.";
56
+ }
57
+ // Last-resort generic prefix — surfaces the underlying message so operators
58
+ // can still diagnose unknown failure modes from the chat.
13
59
  return `Senpi: Trading decision failed — ${s}`;
14
60
  }
15
61
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/runtime/notifications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../src/runtime/notifications.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@senpi/runtime",
3
- "version": "1.1.0-dev.runtime-phase-2.20260511162328",
3
+ "version": "1.1.0-dev.runtime-phase-2.20260511191318",
4
4
  "description": "Senpi runtime plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",