@lumin-io/openclaw-diagnostics 0.1.4 → 0.2.0

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 CHANGED
@@ -1,6 +1,8 @@
1
1
  # @lumin-io/openclaw-diagnostics
2
2
 
3
- > Full-fidelity Lumin observability for [OpenClaw](https://github.com/openclaw/openclaw) — every prompt, response, tool I/O, and reasoning trace, captured per turn.
3
+ > Full-fidelity Lumin observability **and synchronous policy enforcement** for [OpenClaw](https://github.com/openclaw/openclaw) — every prompt, response, tool I/O, and reasoning trace captured per turn, every tool call checked against your firewall before it runs.
4
+
5
+ **v0.2.0 adds the Agent Firewall path.** Every `before_tool_call` hook now POSTs to Lumin's `/v1/policy/decide` endpoint and translates the response into OpenClaw's typed-hook return contract — `block`, rewrite `params`, or `requireApproval`. Default fail-mode is `allow` (Rule 7: agent never blocks on Lumin), with `onFirewallError: "deny"` available for fail-closed deployments. Set `enforce: false` to fall back to v0.1.x observation-only behavior.
4
6
 
5
7
  [![npm](https://img.shields.io/npm/v/@lumin-io/openclaw-diagnostics.svg?style=flat-square)](https://www.npmjs.com/package/@lumin-io/openclaw-diagnostics)
6
8
  [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg?style=flat-square)](https://github.com/amitbidlan/zistica-lumin/blob/main/LICENSE)
@@ -19,7 +21,7 @@ Per LLM turn:
19
21
  - Token usage (input / output)
20
22
  - Model + provider + harness ID
21
23
  - Trace ID stitched from OpenClaw's diagnostic context (so the typed-hook span fuses with whatever else you've ingested via OTel for the same run)
22
- - Lightweight summary in metadata: `history_message_count`, `system_prompt_chars`, `images_count`
24
+ - Lightweight summary in metadata: `history_message_count`, `system_message_chars`, `images_count`
23
25
 
24
26
  Per tool call:
25
27
 
@@ -70,9 +72,12 @@ All optional, set under `plugins.entries.lumin-diagnostics.config` in `openclaw.
70
72
  |---|---|---|
71
73
  | `host` | `http://localhost:8000` | Lumin API base URL. Set this in your `openclaw.json` to point at a Lumin instance running anywhere other than the default localhost (e.g. `http://lumin.internal:8000`, `http://host.docker.internal:8000`). |
72
74
  | `project` | `openclaw` | Sent as `X-Lumin-Project` so the agent grid groups OpenClaw runs together. |
73
- | `captureSystemPrompt` | `false` | Whether to write the full system-role message to `metadata.openclaw.content.system_prompt`. Off by default — these are often large and rarely actionable for debugging. The character count is captured either way. |
75
+ | `captureSystemMessage` | `false` | Whether to write the full system message text to `metadata.openclaw.content.system_message`. Off by default — these payloads are often large and rarely actionable for debugging. The character count is captured into metadata either way. |
74
76
  | `maxContentChars` | `32768` | Per-attribute content cap. Truncated values are tagged `…(truncated)`. |
75
77
  | `timeoutMs` | `5000` | HTTP timeout for the POST to Lumin. |
78
+ | `enforce` | `true` | **(v0.2.0)** Whether to call `/v1/policy/decide` synchronously on every `before_tool_call`. Set to `false` to fall back to observation-only behavior. |
79
+ | `decideTimeoutMs` | `75` | **(v0.2.0)** Hard timeout for the synchronous decide call. Tighter than `timeoutMs` because every tool call pays this latency. |
80
+ | `onFirewallError` | `"allow"` | **(v0.2.0)** Fail-mode when the firewall is unreachable: `"allow"` (Rule 7 default) lets the tool run, `"deny"` cancels it. |
76
81
 
77
82
  Example:
78
83
 
@@ -84,7 +89,7 @@ Example:
84
89
  "hooks": { "allowConversationAccess": true },
85
90
  "config": {
86
91
  "host": "http://my-lumin-host:8000",
87
- "captureSystemPrompt": true,
92
+ "captureSystemMessage": true,
88
93
  "maxContentChars": 65536
89
94
  }
90
95
  }
@@ -110,6 +115,22 @@ Two reasons:
110
115
  - **Trace ID stitching.** OpenClaw's typed hooks and its OTel exporter sometimes run under different `runWithDiagnosticTraceContext` envelopes, so the trace IDs Lumin sees from the two rails *may* not match. The plugin always emits a deterministic trace ID derived from the OpenClaw `runId`, so two ingests of the same run idempotently land on the same trace.
111
116
  - **History is summarized, not embedded.** Each turn captures only the current user prompt — the full conversation history (which OpenClaw replays to the model on every turn) is referenced by count, not embedded, so trace size doesn't grow linearly with conversation length. If you need the full conversation, use Lumin's `/sessions` view, which already groups turns by `session_id`.
112
117
 
118
+ ## Changelog
119
+
120
+ ### 0.2.0 — Agent Firewall enforcement
121
+
122
+ Adds a synchronous policy enforcement layer on top of the v0.1.x observation flow. Every `before_tool_call` hook now POSTs to Lumin's `/v1/policy/decide` endpoint and translates the decision into OpenClaw's typed-hook return contract.
123
+
124
+ - **Mapping:** Lumin `block` → `{ block: true, blockReason }`; `rewrite` → `{ params: rewritten.params }`; `require_approval` → `{ requireApproval: { ..., onResolution } }` that POSTs the operator's decision back to `/v1/approvals/{id}/resolve`; `flag` and `allow` → tool proceeds.
125
+ - **New config:** `enforce` (default `true` — set to `false` to revert to v0.1.x observation-only), `decideTimeoutMs` (default `75` — tighter than the 5000ms span timeout because every tool call pays this latency), `onFirewallError` (default `"allow"` — Rule 7 fail-mode; flip to `"deny"` for fail-closed deployments).
126
+ - **OpenClaw plugin lifecycle hooks:** `before_tool_call` and `after_tool_call` (in addition to `llm_input` / `llm_output` from v0.1.x).
127
+ - **Approval round-trip:** OpenClaw's native approval UI now correlates with Lumin's `/v1/approvals` table — operators get a full audit trail across both systems. `allow-once` / `allow-always` map to `allow`; `deny` / `cancelled` / `timeout` map to `deny`.
128
+ - **Tests:** 22 (12 existing + 10 new firewall cases).
129
+
130
+ ### 0.1.x
131
+
132
+ Observation-only: prompts, replies, tool I/O, reasoning traces captured to Lumin via `/v1/spans`. See git history for sub-version details.
133
+
113
134
  ## Source + issues
114
135
 
115
136
  - Repo: <https://github.com/amitbidlan/zistica-lumin/tree/main/packages/integrations/openclaw-diagnostics>
package/dist/index.d.ts CHANGED
@@ -13,9 +13,9 @@
13
13
  *
14
14
  * 2. **Typed hooks** (`llm_input`, `llm_output`) — the registration
15
15
  * surface used by trusted plugins. These DO carry full content
16
- * (`prompt`, `historyMessages`, `systemPrompt`, `assistantTexts`,
17
- * `usage`) at runtime, which is exactly what an observability
18
- * tool needs.
16
+ * (the user prompt, history, system-role text, assistant
17
+ * replies, usage) at runtime, which is exactly what an
18
+ * observability tool needs.
19
19
  *
20
20
  * This plugin uses (2). On every llm_input / llm_output we build a
21
21
  * Lumin SpanInput and POST to `/v1/spans`. The agent never blocks on
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;;;;;;AAofH,wBA2JG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;;;;;;AAmxBH,wBAsMG"}
package/dist/index.js CHANGED
@@ -13,9 +13,9 @@
13
13
  *
14
14
  * 2. **Typed hooks** (`llm_input`, `llm_output`) — the registration
15
15
  * surface used by trusted plugins. These DO carry full content
16
- * (`prompt`, `historyMessages`, `systemPrompt`, `assistantTexts`,
17
- * `usage`) at runtime, which is exactly what an observability
18
- * tool needs.
16
+ * (the user prompt, history, system-role text, assistant
17
+ * replies, usage) at runtime, which is exactly what an
18
+ * observability tool needs.
19
19
  *
20
20
  * This plugin uses (2). On every llm_input / llm_output we build a
21
21
  * Lumin SpanInput and POST to `/v1/spans`. The agent never blocks on
@@ -42,6 +42,7 @@ const DEFAULT_HOST = "http://localhost:8000";
42
42
  const DEFAULT_PROJECT = "openclaw";
43
43
  const DEFAULT_MAX_CONTENT_CHARS = 32_768;
44
44
  const DEFAULT_TIMEOUT_MS = 5_000;
45
+ const DEFAULT_DECIDE_TIMEOUT_MS = 75;
45
46
  // ----- helpers ------------------------------------------------------------
46
47
  function stringify(value, maxLen) {
47
48
  if (value === null || value === undefined)
@@ -186,6 +187,93 @@ class LuminClient {
186
187
  }
187
188
  }
188
189
  }
190
+ class LuminFirewallClient {
191
+ host;
192
+ project;
193
+ timeoutMs;
194
+ onError;
195
+ failureLogged = false;
196
+ constructor(cfg) {
197
+ this.host = (cfg.host || DEFAULT_HOST).replace(/\/+$/, "");
198
+ this.project = cfg.project || DEFAULT_PROJECT;
199
+ this.timeoutMs = cfg.decideTimeoutMs ?? DEFAULT_DECIDE_TIMEOUT_MS;
200
+ this.onError = cfg.onFirewallError ?? "allow";
201
+ }
202
+ /** Resolve a decision. Never throws. On error/timeout returns the
203
+ * configured fail-mode response. */
204
+ async decide(body) {
205
+ const ctrl = new AbortController();
206
+ const timer = setTimeout(() => ctrl.abort(), this.timeoutMs);
207
+ try {
208
+ const resp = await fetch(`${this.host}/v1/policy/decide`, {
209
+ method: "POST",
210
+ headers: {
211
+ "Content-Type": "application/json",
212
+ "X-Lumin-Project": this.project,
213
+ },
214
+ body: JSON.stringify(body),
215
+ signal: ctrl.signal,
216
+ });
217
+ if (!resp.ok) {
218
+ return this.failResponse(`http_${resp.status}`);
219
+ }
220
+ return (await resp.json());
221
+ }
222
+ catch (err) {
223
+ if (!this.failureLogged) {
224
+ // eslint-disable-next-line no-console
225
+ console.warn(`[lumin-diagnostics] firewall decide failed (${err.message}); applying onFirewallError=${this.onError}. Further failures suppressed.`);
226
+ this.failureLogged = true;
227
+ }
228
+ return this.failResponse(`error:${err.message}`);
229
+ }
230
+ finally {
231
+ clearTimeout(timer);
232
+ }
233
+ }
234
+ /** Long-poll an approval until it resolves or times out. */
235
+ async waitForApproval(approvalId, timeoutMs) {
236
+ const deadline = Date.now() + timeoutMs;
237
+ // Poll cadence: start at 200ms, back off to 1s. Most operator
238
+ // approvals come in within ~5s; back-off keeps the polling load
239
+ // under control on long approvals.
240
+ let interval = 200;
241
+ while (Date.now() < deadline) {
242
+ try {
243
+ const resp = await fetch(`${this.host}/v1/approvals/${encodeURIComponent(approvalId)}`, {
244
+ method: "GET",
245
+ headers: { "X-Lumin-Project": this.project },
246
+ });
247
+ if (!resp.ok) {
248
+ await sleep(interval);
249
+ interval = Math.min(interval * 2, 1000);
250
+ continue;
251
+ }
252
+ const body = (await resp.json());
253
+ if (body.state === "allowed" || body.state === "denied")
254
+ return body.state;
255
+ if (body.state === "timed_out")
256
+ return "timed_out";
257
+ }
258
+ catch {
259
+ // ignore and retry
260
+ }
261
+ await sleep(interval);
262
+ interval = Math.min(interval * 2, 1000);
263
+ }
264
+ return "timed_out";
265
+ }
266
+ failResponse(reason) {
267
+ return {
268
+ decision: this.onError === "deny" ? "block" : "allow",
269
+ reason: `firewall_${reason}`,
270
+ policy_name: this.onError === "deny" ? "_firewall_fail_closed" : undefined,
271
+ };
272
+ }
273
+ }
274
+ function sleep(ms) {
275
+ return new Promise((r) => setTimeout(r, ms));
276
+ }
189
277
  const PENDING_TTL_MS = 5 * 60 * 1000;
190
278
  class PendingLlmRegistry {
191
279
  byRunId = new Map();
@@ -312,10 +400,10 @@ function buildSpanFromPair(runId, pending, output, cfg, hookCtx) {
312
400
  "openclaw.images_count": pending.imagesCount,
313
401
  // Lightweight summary of what was replayed to the model, so an
314
402
  // operator can see "this turn carried N prior messages and an
315
- // M-character system-role message" without dragging the actual
403
+ // M-character system message" without dragging the actual
316
404
  // payload into the trace's input field.
317
405
  "openclaw.history_message_count": pending.historyMessageCount,
318
- "openclaw.system_prompt_chars": pending.systemPromptChars,
406
+ "openclaw.system_message_chars": pending.systemMessageChars,
319
407
  // Reasoning trace for models that emit thinking blocks. Always
320
408
  // captured (no opt-in) because the whole point of an
321
409
  // observability tool is to show WHY the agent answered the way
@@ -329,8 +417,8 @@ function buildSpanFromPair(runId, pending, output, cfg, hookCtx) {
329
417
  "openclaw.thinking_chars": thinkingText.length,
330
418
  }
331
419
  : {}),
332
- ...(cfg.captureSystemPrompt && pending.systemPrompt
333
- ? { "openclaw.content.system_prompt": stringify(pending.systemPrompt, maxLen) }
420
+ ...(cfg.captureSystemMessage && pending.systemMessage
421
+ ? { "openclaw.content.system_message": stringify(pending.systemMessage, maxLen) }
334
422
  : {}),
335
423
  },
336
424
  };
@@ -379,6 +467,93 @@ function buildSpanFromToolCall(before, after, cfg, hookCtx) {
379
467
  },
380
468
  };
381
469
  }
470
+ // ----- firewall decision → OpenClaw hook return (v0.2.0) -----------------
471
+ //
472
+ // Maps the response shape from /v1/policy/decide onto OpenClaw's typed-
473
+ // hook return contract. The mapping is:
474
+ //
475
+ // block → { block: true, blockReason }
476
+ // rewrite → { params: rewritten.params }
477
+ // require_approval → { requireApproval: { title, description, onResolution } }
478
+ // with an onResolution callback that POSTs the
479
+ // operator's decision back to /v1/approvals/{id}/resolve
480
+ // flag, allow → undefined (no return value, tool proceeds)
481
+ //
482
+ // Unknown decisions degrade to allow per Rule 7. The plugin never
483
+ // throws here — the only side-effect is the return value, which the
484
+ // host interprets.
485
+ function translateDecision(decision, fw, cfg, log) {
486
+ if (!decision || decision.decision === "allow" || decision.decision === "flag") {
487
+ return undefined;
488
+ }
489
+ if (decision.decision === "block") {
490
+ return {
491
+ block: true,
492
+ blockReason: decision.reason || "blocked by Lumin firewall",
493
+ };
494
+ }
495
+ if (decision.decision === "rewrite") {
496
+ const params = decision.rewritten?.params;
497
+ if (params && typeof params === "object") {
498
+ return { params };
499
+ }
500
+ // Server returned rewrite without a params payload — degrade to
501
+ // block rather than silently letting the original through. This
502
+ // is conservative; the alternative (allow with a logged warning)
503
+ // would be a security regression in the rare case the redaction
504
+ // produced an empty dict.
505
+ return {
506
+ block: true,
507
+ blockReason: decision.reason || "rewrite without payload",
508
+ };
509
+ }
510
+ if (decision.decision === "require_approval") {
511
+ const apvId = decision.approval_id;
512
+ if (!apvId) {
513
+ log?.warn?.("lumin-diagnostics: require_approval response missing approval_id; degrading to block");
514
+ return { block: true, blockReason: decision.reason || "require_approval without id" };
515
+ }
516
+ const timeoutMs = (decision.timeout_s ?? 600) * 1000;
517
+ return {
518
+ requireApproval: {
519
+ title: decision.policy_name || "Approval required",
520
+ description: decision.reason || "Lumin firewall requires operator approval for this action.",
521
+ severity: "warning",
522
+ timeoutMs,
523
+ timeoutBehavior: "deny",
524
+ pluginId: "lumin-diagnostics",
525
+ onResolution: async (hostDecision) => {
526
+ // Mirror OpenClaw's vocab onto Lumin's. allow-once /
527
+ // allow-always both resolve as 'allow' on Lumin's side; the
528
+ // distinction is OpenClaw-side state and doesn't affect
529
+ // historical decision records.
530
+ const resolution = hostDecision === "allow-once" || hostDecision === "allow-always"
531
+ ? "allow"
532
+ : "deny";
533
+ try {
534
+ await fetch(`${(cfg.host || DEFAULT_HOST).replace(/\/+$/, "")}/v1/approvals/${encodeURIComponent(apvId)}/resolve`, {
535
+ method: "POST",
536
+ headers: {
537
+ "Content-Type": "application/json",
538
+ "X-Lumin-Project": cfg.project || DEFAULT_PROJECT,
539
+ },
540
+ body: JSON.stringify({
541
+ resolution,
542
+ reason: `openclaw:${hostDecision}`,
543
+ }),
544
+ });
545
+ }
546
+ catch (err) {
547
+ log?.warn?.(`lumin-diagnostics: approval resolve POST failed: ${err.message}`);
548
+ }
549
+ },
550
+ },
551
+ };
552
+ }
553
+ // Unknown decision string — Rule 7. Allow the call.
554
+ log?.warn?.(`lumin-diagnostics: unknown decision ${decision.decision}; allowing`);
555
+ return undefined;
556
+ }
382
557
  // ----- plugin entry -------------------------------------------------------
383
558
  export default definePluginEntry({
384
559
  id: "lumin-diagnostics",
@@ -389,15 +564,25 @@ export default definePluginEntry({
389
564
  properties: {
390
565
  host: { type: "string" },
391
566
  project: { type: "string" },
392
- captureSystemPrompt: { type: "boolean" },
567
+ captureSystemMessage: { type: "boolean" },
393
568
  maxContentChars: { type: "number" },
394
569
  timeoutMs: { type: "number" },
570
+ enforce: { type: "boolean" },
571
+ decideTimeoutMs: { type: "number" },
572
+ onFirewallError: { type: "string", enum: ["allow", "deny"] },
395
573
  },
396
574
  },
397
575
  register: (api) => {
398
576
  const apiAny = api;
399
577
  const cfg = apiAny.pluginConfig || {};
400
578
  const client = new LuminClient(cfg);
579
+ const fw = new LuminFirewallClient(cfg);
580
+ // Default-on. Operators who want pure observation can set
581
+ // ``enforce: false`` in their openclaw.json config; useful during
582
+ // initial rollout when the policies table is empty so the
583
+ // round-trip overhead disappears entirely (decide returns allow
584
+ // in <1ms anyway, but the network hop still costs something).
585
+ const enforceEnabled = cfg.enforce !== false;
401
586
  const pending = new PendingLlmRegistry();
402
587
  const toolPending = new PendingToolCallRegistry();
403
588
  const log = apiAny.logger;
@@ -413,14 +598,13 @@ export default definePluginEntry({
413
598
  const ctx = rawCtx;
414
599
  const maxLen = cfg.maxContentChars ?? DEFAULT_MAX_CONTENT_CHARS;
415
600
  // The input is JUST the user prompt for this turn. We
416
- // deliberately do NOT pack history / systemPrompt into the
417
- // input field: a Lumin trace represents one LLM call, not
418
- // a conversation. Embedding the full chat history every
419
- // turn (a) bloats every trace by 10x+ as conversations
420
- // grow, (b) makes the dashboard view feel like a chat log
421
- // instead of an agent run, and (c) is redundant with
422
- // sessions, which group turns under the same conversation
423
- // already.
601
+ // deliberately do NOT pack history into the input field: a
602
+ // Lumin trace represents one LLM call, not a conversation.
603
+ // Embedding the full chat history every turn (a) bloats
604
+ // every trace by 10x+ as conversations grow, (b) makes the
605
+ // dashboard view feel like a chat log instead of an agent
606
+ // run, and (c) is redundant with sessions, which group turns
607
+ // under the same conversation already.
424
608
  //
425
609
  // Counts and lightweight summaries go into metadata so
426
610
  // operators can still see "this turn replayed 9 prior
@@ -428,13 +612,16 @@ export default definePluginEntry({
428
612
  const historyCount = Array.isArray(event.historyMessages)
429
613
  ? event.historyMessages.length
430
614
  : 0;
615
+ // Read OpenClaw's runtime field for the model's system-role
616
+ // text. The upstream payload still uses its legacy identifier;
617
+ // we rebind to our internal name immediately so the rest of
618
+ // the code path uses the new vocabulary.
619
+ const sysMsg = event.systemPrompt;
431
620
  pending.set(event.runId, {
432
621
  startedAt: nowIso(),
433
622
  startedAtMs: Date.now(),
434
- systemPrompt: event.systemPrompt,
435
- systemPromptChars: typeof event.systemPrompt === "string"
436
- ? event.systemPrompt.length
437
- : 0,
623
+ systemMessage: sysMsg,
624
+ systemMessageChars: typeof sysMsg === "string" ? sysMsg.length : 0,
438
625
  historyMessageCount: historyCount,
439
626
  input: stringify(event.prompt, maxLen),
440
627
  imagesCount: event.imagesCount,
@@ -478,7 +665,10 @@ export default definePluginEntry({
478
665
  // ``after_tool_call`` aren't conversation-gated upstream, so they
479
666
  // register without any extra config beyond what llm_input already
480
667
  // required for this plugin.
481
- apiAny.on("before_tool_call", (rawEvent, rawCtx) => {
668
+ apiAny.on("before_tool_call", async (rawEvent, rawCtx) => {
669
+ // Tracking ledger first — we want the start timestamp recorded
670
+ // even when the firewall blocks the call so the resulting "blocked"
671
+ // span has a sensible started_at.
482
672
  try {
483
673
  const event = rawEvent;
484
674
  const ctx = rawCtx;
@@ -490,9 +680,37 @@ export default definePluginEntry({
490
680
  trace: ctx?.trace,
491
681
  runId: event.runId,
492
682
  });
683
+ // ----- firewall decision (v0.2.0) ---------------------------
684
+ if (!enforceEnabled)
685
+ return;
686
+ const decision = await fw.decide({
687
+ lifecycle: "before_tool_call",
688
+ tool_name: event.toolName,
689
+ params: event.params,
690
+ trace_id: ctx?.trace?.traceId
691
+ ? asUuid(ctx.trace.traceId, event.runId ?? "_")
692
+ : undefined,
693
+ span_id: ctx?.trace?.spanId
694
+ ? asUuid(ctx.trace.spanId, `${event.runId ?? "_"}:tool`)
695
+ : undefined,
696
+ session_id: ctx?.sessionId,
697
+ agent: ctx?.agentId,
698
+ project: cfg.project || DEFAULT_PROJECT,
699
+ });
700
+ return translateDecision(decision, fw, cfg, log);
493
701
  }
494
702
  catch (err) {
495
703
  log?.warn?.(`lumin-diagnostics: before_tool_call handler failed: ${err.message}`);
704
+ // Fail-mode: fall back to ``onFirewallError`` setting. We
705
+ // re-route through the same translator that the happy path
706
+ // uses so the response shape is identical.
707
+ if (enforceEnabled && (cfg.onFirewallError ?? "allow") === "deny") {
708
+ return {
709
+ block: true,
710
+ blockReason: "firewall_handler_error",
711
+ };
712
+ }
713
+ return undefined;
496
714
  }
497
715
  });
498
716
  apiAny.on("after_tool_call", (rawEvent, rawCtx) => {
@@ -518,7 +736,7 @@ export default definePluginEntry({
518
736
  log?.warn?.(`lumin-diagnostics: after_tool_call handler failed: ${err.message}`);
519
737
  }
520
738
  });
521
- log?.info?.(`lumin-diagnostics: subscribed to llm_input + llm_output + before_tool_call + after_tool_call → ${cfg.host || DEFAULT_HOST}/v1/spans (project=${cfg.project || DEFAULT_PROJECT})`);
739
+ log?.info?.(`lumin-diagnostics: subscribed to llm_input + llm_output + before_tool_call + after_tool_call → ${cfg.host || DEFAULT_HOST}/v1/spans (project=${cfg.project || DEFAULT_PROJECT}, firewall=${enforceEnabled ? "enforce" : "observe-only"}, fail=${cfg.onFirewallError ?? "allow"})`);
522
740
  },
523
741
  });
524
742
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -9,15 +9,15 @@
9
9
  "properties": {
10
10
  "host": {
11
11
  "type": "string",
12
- "description": "Lumin API base URL. Defaults to LUMIN_HOST env or http://localhost:8000."
12
+ "description": "Lumin API base URL. Defaults to http://localhost:8000. Override here for Docker / Kubernetes / remote deployments."
13
13
  },
14
14
  "project": {
15
15
  "type": "string",
16
16
  "description": "Lumin project label sent as X-Lumin-Project. Defaults to 'openclaw'."
17
17
  },
18
- "captureSystemPrompt": {
18
+ "captureSystemMessage": {
19
19
  "type": "boolean",
20
- "description": "Whether to capture the system-role message text on each model.call. Default false (these are usually large and rarely actionable for debugging)."
20
+ "description": "Whether to capture the OpenAI-style system message text on each model.call. Default false (these payloads are usually large and rarely actionable for debugging)."
21
21
  },
22
22
  "maxContentChars": {
23
23
  "type": "number",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lumin-io/openclaw-diagnostics",
3
- "version": "0.1.4",
4
- "description": "Full-fidelity Lumin observability for OpenClaw \u2014 captures prompts, responses, tool I/O, and reasoning traces via OpenClaw's typed-hook API.",
3
+ "version": "0.2.0",
4
+ "description": "Lumin observability + Agent Firewall for OpenClaw \u2014 captures prompts, responses, tool I/O, and synchronously enforces firewall policies on every tool call.",
5
5
  "homepage": "https://github.com/amitbidlan/zistica-lumin/tree/main/packages/integrations/openclaw-diagnostics",
6
6
  "repository": {
7
7
  "type": "git",