@aiassesstech/mighty-mark 0.3.2 → 0.3.3

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.
@@ -12,6 +12,8 @@ export interface CheckContext {
12
12
  dataDir?: string;
13
13
  /** Override memory root directory (default: ~/.openclaw/workspace/memory). */
14
14
  memoryDir?: string;
15
+ /** Override fleet-bus data directory (default: ~/.openclaw/workspace/fleet-bus). */
16
+ fleetBusDir?: string;
15
17
  /** Mock shell command execution. */
16
18
  execCommand?: (cmd: string) => string;
17
19
  /** Mock HTTP fetch. */
@@ -1 +1 @@
1
- {"version":3,"file":"check-context.d.ts","sourceRoot":"","sources":["../../src/checks/check-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,uBAAuB;IACvB,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAClC,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2DAA2D;AAC3D,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAK5D;AAED,+CAA+C;AAC/C,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAOtD;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAExD;AAED,8BAA8B;AAC9B,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAEvD;AAED,oCAAoC;AACpC,wBAAgB,GAAG,IAAI,MAAM,CAE5B"}
1
+ {"version":3,"file":"check-context.d.ts","sourceRoot":"","sources":["../../src/checks/check-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,uBAAuB;IACvB,OAAO,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAClC,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2DAA2D;AAC3D,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAK5D;AAED,+CAA+C;AAC/C,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC,QAAQ,CAAC,CAGnB;AAED,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAOtD;AAED,2BAA2B;AAC3B,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAExD;AAED,8BAA8B;AAC9B,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,MAAM,CAEvD;AAED,oCAAoC;AACpC,wBAAgB,GAAG,IAAI,MAAM,CAE5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"check-context.js","sourceRoot":"","sources":["../../src/checks/check-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAuB9C,2DAA2D;AAC3D,MAAM,UAAU,IAAI,CAAC,GAAW,EAAE,GAAkB;IAClD,IAAI,GAAG,EAAE,WAAW,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,IAA6B,EAC7B,GAAkB;IAElB,MAAM,EAAE,GAAG,GAAG,EAAE,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;IAC5C,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,WAAW,CAAC,GAAkB;IAC5C,IAAI,GAAG,EAAE,QAAQ;QAAE,OAAO,GAAG,CAAC,QAAQ,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,aAAa,CAAC,GAAkB;IAC9C,OAAO,GAAG,EAAE,UAAU,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,0BAA0B,CAAC;AACrF,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,YAAY,CAAC,GAAkB;IAC7C,OAAO,GAAG,EAAE,SAAS,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC;AAClE,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,GAAG;IACjB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"check-context.js","sourceRoot":"","sources":["../../src/checks/check-context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAyB9C,2DAA2D;AAC3D,MAAM,UAAU,IAAI,CAAC,GAAW,EAAE,GAAkB;IAClD,IAAI,GAAG,EAAE,WAAW,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,GAAW,EACX,IAA6B,EAC7B,GAAkB;IAElB,MAAM,EAAE,GAAG,GAAG,EAAE,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC;IAC5C,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,WAAW,CAAC,GAAkB;IAC5C,IAAI,GAAG,EAAE,QAAQ;QAAE,OAAO,GAAG,CAAC,QAAQ,CAAC;IACvC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,aAAa,CAAC,GAAkB;IAC9C,OAAO,GAAG,EAAE,UAAU,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,0BAA0B,CAAC;AACrF,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,YAAY,CAAC,GAAkB;IAC7C,OAAO,GAAG,EAAE,SAAS,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,QAAQ,CAAC;AAClE,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,GAAG;IACjB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"check-runner.d.ts","sourceRoot":"","sources":["../../src/checks/check-runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAe,aAAa,EAAgB,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAQvD,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEpE,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa;IAK7D,sEAAsE;IAChE,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IA+CxD,wCAAwC;IAClC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;CAmCzF"}
1
+ {"version":3,"file":"check-runner.d.ts","sourceRoot":"","sources":["../../src/checks/check-runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAe,aAAa,EAAgB,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AASvD,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEpE,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;gBAE7B,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,aAAa;IAK7D,sEAAsE;IAChE,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAkDxD,wCAAwC;IAClC,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC;CAsCzF"}
@@ -9,6 +9,7 @@ import { runSystemChecks } from './system-resources.js';
9
9
  import { runApiChecks } from './api-connectivity.js';
10
10
  import { runDataChecks } from './data-integrity.js';
11
11
  import { runMemoryChecks } from './memory-health.js';
12
+ import { runFleetChecks } from './fleet-health.js';
12
13
  import { classifyHealth } from '../notify/alert-classifier.js';
13
14
  import { getHostname } from './check-context.js';
14
15
  export class CheckRunner {
@@ -35,6 +36,8 @@ export class CheckRunner {
35
36
  allChecks.push(...data);
36
37
  const memory = await runMemoryChecks(this.topology, ctx);
37
38
  allChecks.push(...memory);
39
+ const fleet = await runFleetChecks(ctx);
40
+ allChecks.push(...fleet);
38
41
  const summary = summarize(allChecks);
39
42
  const status = classifyHealth(summary.failed, summary.warnings);
40
43
  let uptimeStr;
@@ -80,6 +83,9 @@ export class CheckRunner {
80
83
  case 'memory':
81
84
  checks = await runMemoryChecks(this.topology, ctx);
82
85
  break;
86
+ case 'fleet':
87
+ checks = await runFleetChecks(ctx);
88
+ break;
83
89
  default:
84
90
  checks = [];
85
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"check-runner.js","sourceRoot":"","sources":["../../src/checks/check-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-runner.js","sourceRoot":"","sources":["../../src/checks/check-runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Fleet bus health checks — 7 checks in the 'fleet' category.
3
+ *
4
+ * Filesystem checks:
5
+ * #33 fleet-cards-current All 4 agent cards exist and lastSeen < 24h
6
+ * #34 fleet-audit-integrity Audit hash chain passes verification for each agent
7
+ * #35 fleet-bus-loaded All 4 agents show fleet-bus init in gateway logs
8
+ * #36 fleet-message-flow At least 1 audit event exists (once tools are active)
9
+ *
10
+ * API smoke checks (dynamic import — graceful if fleet-bus not installed):
11
+ * #37 fleet-routing-smoke Patent routing rules enforce correctly
12
+ * #38 fleet-serialization Message create → serialize → deserialize roundtrip
13
+ * #39 fleet-card-consistency On-disk cards match pre-defined card constants
14
+ */
15
+ import type { CheckResult } from '../types/health.js';
16
+ import { type CheckContext } from './check-context.js';
17
+ /**
18
+ * #33 — Agent Cards are current.
19
+ *
20
+ * Checks that all 4 agent card JSON files exist on disk
21
+ * and that each card's lastSeen timestamp is within the threshold.
22
+ */
23
+ export declare function checkFleetCardsCurrent(ctx?: CheckContext): Promise<CheckResult>;
24
+ /**
25
+ * #34 — Audit trail hash chain integrity.
26
+ *
27
+ * For each agent that has an audit JSONL file, reads the events
28
+ * and verifies the SHA-256 hash chain is unbroken.
29
+ */
30
+ export declare function checkFleetAuditIntegrity(ctx?: CheckContext): Promise<CheckResult>;
31
+ /**
32
+ * #35 — Fleet bus loaded in gateway.
33
+ *
34
+ * Checks recent gateway logs for `[fleet-bus:<agent>] initialized` entries.
35
+ * Agents missing from the log are reported.
36
+ */
37
+ export declare function checkFleetBusLoaded(ctx?: CheckContext): Promise<CheckResult>;
38
+ /**
39
+ * #36 — Fleet message flow (informational).
40
+ *
41
+ * Checks if at least one audit event exists across all agents.
42
+ * Pre-Phase 2, no events are expected — this is informational only.
43
+ */
44
+ export declare function checkFleetMessageFlow(ctx?: CheckContext): Promise<CheckResult>;
45
+ /** Reset the cached import (for testing with mocks). */
46
+ export declare function _resetFleetBusCache_for_testing(): void;
47
+ /**
48
+ * #37 — Routing enforcement smoke test.
49
+ *
50
+ * Exercises enforceRouting() with patent-critical scenarios.
51
+ * Verifies that Patent 5 (Grillo unidirectional), Patent 6 (Nole governed),
52
+ * and sandboxing (Sam) are correctly enforced.
53
+ */
54
+ export declare function checkFleetRoutingSmoke(ctx?: CheckContext): Promise<CheckResult>;
55
+ /**
56
+ * #38 — Serialization roundtrip smoke test.
57
+ *
58
+ * Creates a FleetMessage, serializes it for transport, deserializes it,
59
+ * and verifies the roundtrip preserves identity.
60
+ */
61
+ export declare function checkFleetSerializationSmoke(ctx?: CheckContext): Promise<CheckResult>;
62
+ /**
63
+ * #39 — Card consistency smoke test.
64
+ *
65
+ * Compares on-disk agent cards against the pre-defined card constants
66
+ * exported by fleet-bus. Checks agentId, role, and communicationMode.
67
+ */
68
+ export declare function checkFleetCardConsistency(ctx?: CheckContext): Promise<CheckResult>;
69
+ /** Run all 7 fleet health checks. */
70
+ export declare function runFleetChecks(ctx?: CheckContext): Promise<CheckResult[]>;
71
+ //# sourceMappingURL=fleet-health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-health.d.ts","sourceRoot":"","sources":["../../src/checks/fleet-health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAa,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAYlE;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAkErF;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA2DvF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA2ElF;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAsDpF;AAiBD,wDAAwD;AACxD,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD;AAoBD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAmDrF;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAyE3F;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAyFxF;AAED,qCAAqC;AACrC,wBAAsB,cAAc,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAU/E"}
@@ -0,0 +1,532 @@
1
+ /**
2
+ * Fleet bus health checks — 7 checks in the 'fleet' category.
3
+ *
4
+ * Filesystem checks:
5
+ * #33 fleet-cards-current All 4 agent cards exist and lastSeen < 24h
6
+ * #34 fleet-audit-integrity Audit hash chain passes verification for each agent
7
+ * #35 fleet-bus-loaded All 4 agents show fleet-bus init in gateway logs
8
+ * #36 fleet-message-flow At least 1 audit event exists (once tools are active)
9
+ *
10
+ * API smoke checks (dynamic import — graceful if fleet-bus not installed):
11
+ * #37 fleet-routing-smoke Patent routing rules enforce correctly
12
+ * #38 fleet-serialization Message create → serialize → deserialize roundtrip
13
+ * #39 fleet-card-consistency On-disk cards match pre-defined card constants
14
+ */
15
+ import fs from 'node:fs';
16
+ import path from 'node:path';
17
+ import { exec, now } from './check-context.js';
18
+ const EXPECTED_AGENTS = ['grillo', 'noah', 'nole', 'mighty-mark'];
19
+ const CARDS_STALENESS_HOURS = 24;
20
+ function getFleetBusDir(ctx) {
21
+ return ctx?.fleetBusDir ?? path.join(process.env.HOME ?? '/root', '.openclaw', 'workspace', 'fleet-bus');
22
+ }
23
+ /**
24
+ * #33 — Agent Cards are current.
25
+ *
26
+ * Checks that all 4 agent card JSON files exist on disk
27
+ * and that each card's lastSeen timestamp is within the threshold.
28
+ */
29
+ export async function checkFleetCardsCurrent(ctx) {
30
+ const start = Date.now();
31
+ const cardsDir = path.join(getFleetBusDir(ctx), 'cards');
32
+ if (!fs.existsSync(cardsDir)) {
33
+ return {
34
+ name: 'Fleet cards current',
35
+ category: 'fleet',
36
+ status: 'warn',
37
+ message: `Cards directory not found: ${cardsDir}`,
38
+ timestamp: now(),
39
+ durationMs: Date.now() - start,
40
+ };
41
+ }
42
+ const missing = [];
43
+ const stale = [];
44
+ const cutoff = Date.now() - CARDS_STALENESS_HOURS * 60 * 60 * 1000;
45
+ for (const agent of EXPECTED_AGENTS) {
46
+ const cardPath = path.join(cardsDir, `${agent}.json`);
47
+ if (!fs.existsSync(cardPath)) {
48
+ missing.push(agent);
49
+ continue;
50
+ }
51
+ try {
52
+ const card = JSON.parse(fs.readFileSync(cardPath, 'utf-8'));
53
+ const lastSeen = new Date(card.lastSeen ?? card.registeredAt).getTime();
54
+ if (lastSeen < cutoff) {
55
+ stale.push(agent);
56
+ }
57
+ }
58
+ catch {
59
+ missing.push(`${agent} (corrupt)`);
60
+ }
61
+ }
62
+ if (missing.length > 0) {
63
+ return {
64
+ name: 'Fleet cards current',
65
+ category: 'fleet',
66
+ status: 'warn',
67
+ message: `Missing cards: ${missing.join(', ')}`,
68
+ timestamp: now(),
69
+ durationMs: Date.now() - start,
70
+ };
71
+ }
72
+ if (stale.length > 0) {
73
+ return {
74
+ name: 'Fleet cards current',
75
+ category: 'fleet',
76
+ status: 'warn',
77
+ message: `Stale cards (>${CARDS_STALENESS_HOURS}h): ${stale.join(', ')}`,
78
+ timestamp: now(),
79
+ durationMs: Date.now() - start,
80
+ };
81
+ }
82
+ return {
83
+ name: 'Fleet cards current',
84
+ category: 'fleet',
85
+ status: 'pass',
86
+ message: `${EXPECTED_AGENTS.length} cards, all current`,
87
+ timestamp: now(),
88
+ durationMs: Date.now() - start,
89
+ };
90
+ }
91
+ /**
92
+ * #34 — Audit trail hash chain integrity.
93
+ *
94
+ * For each agent that has an audit JSONL file, reads the events
95
+ * and verifies the SHA-256 hash chain is unbroken.
96
+ */
97
+ export async function checkFleetAuditIntegrity(ctx) {
98
+ const start = Date.now();
99
+ const auditDir = path.join(getFleetBusDir(ctx), 'audit');
100
+ if (!fs.existsSync(auditDir)) {
101
+ return {
102
+ name: 'Fleet audit integrity',
103
+ category: 'fleet',
104
+ status: 'pass',
105
+ message: 'No audit trail yet (bus idle — expected pre-Phase 2)',
106
+ timestamp: now(),
107
+ durationMs: Date.now() - start,
108
+ };
109
+ }
110
+ const corrupted = [];
111
+ let totalEvents = 0;
112
+ for (const agent of EXPECTED_AGENTS) {
113
+ const jsonlPath = path.join(auditDir, `${agent}.audit.jsonl`);
114
+ if (!fs.existsSync(jsonlPath))
115
+ continue;
116
+ try {
117
+ const content = fs.readFileSync(jsonlPath, 'utf-8').trim();
118
+ if (!content)
119
+ continue;
120
+ const events = content.split('\n').map((line) => JSON.parse(line));
121
+ totalEvents += events.length;
122
+ for (let i = 1; i < events.length; i++) {
123
+ if (events[i].previousHash !== events[i - 1].eventHash) {
124
+ corrupted.push(`${agent} (break at event ${i})`);
125
+ break;
126
+ }
127
+ }
128
+ }
129
+ catch {
130
+ corrupted.push(`${agent} (read error)`);
131
+ }
132
+ }
133
+ if (corrupted.length > 0) {
134
+ return {
135
+ name: 'Fleet audit integrity',
136
+ category: 'fleet',
137
+ status: 'fail',
138
+ message: `Chain broken: ${corrupted.join(', ')}`,
139
+ timestamp: now(),
140
+ durationMs: Date.now() - start,
141
+ };
142
+ }
143
+ return {
144
+ name: 'Fleet audit integrity',
145
+ category: 'fleet',
146
+ status: 'pass',
147
+ message: totalEvents > 0 ? `${totalEvents} events, chain intact` : 'No audit events yet',
148
+ timestamp: now(),
149
+ durationMs: Date.now() - start,
150
+ };
151
+ }
152
+ /**
153
+ * #35 — Fleet bus loaded in gateway.
154
+ *
155
+ * Checks recent gateway logs for `[fleet-bus:<agent>] initialized` entries.
156
+ * Agents missing from the log are reported.
157
+ */
158
+ export async function checkFleetBusLoaded(ctx) {
159
+ const start = Date.now();
160
+ try {
161
+ const logs = exec('journalctl -u openclaw-gateway --no-pager --since "24 hours ago" 2>/dev/null || echo ""', ctx);
162
+ const initialized = [];
163
+ const unavailable = [];
164
+ for (const agent of EXPECTED_AGENTS) {
165
+ if (logs.includes(`[fleet-bus:${agent}] initialized`)) {
166
+ initialized.push(agent);
167
+ }
168
+ else if (logs.includes(`[${agent}] Fleet bus unavailable`)) {
169
+ unavailable.push(agent);
170
+ }
171
+ }
172
+ if (unavailable.length > 0) {
173
+ return {
174
+ name: 'Fleet bus loaded',
175
+ category: 'fleet',
176
+ status: 'warn',
177
+ message: `Bus unavailable for: ${unavailable.join(', ')}`,
178
+ timestamp: now(),
179
+ durationMs: Date.now() - start,
180
+ };
181
+ }
182
+ const missing = EXPECTED_AGENTS.filter((a) => !initialized.includes(a) && !unavailable.includes(a));
183
+ if (initialized.length === 0) {
184
+ return {
185
+ name: 'Fleet bus loaded',
186
+ category: 'fleet',
187
+ status: 'warn',
188
+ message: 'No fleet-bus init entries found in gateway logs',
189
+ timestamp: now(),
190
+ durationMs: Date.now() - start,
191
+ };
192
+ }
193
+ if (missing.length > 0) {
194
+ return {
195
+ name: 'Fleet bus loaded',
196
+ category: 'fleet',
197
+ status: 'warn',
198
+ message: `${initialized.length}/4 loaded; missing: ${missing.join(', ')}`,
199
+ timestamp: now(),
200
+ durationMs: Date.now() - start,
201
+ };
202
+ }
203
+ return {
204
+ name: 'Fleet bus loaded',
205
+ category: 'fleet',
206
+ status: 'pass',
207
+ message: `${initialized.length}/4 agents on bus`,
208
+ timestamp: now(),
209
+ durationMs: Date.now() - start,
210
+ };
211
+ }
212
+ catch {
213
+ return {
214
+ name: 'Fleet bus loaded',
215
+ category: 'fleet',
216
+ status: 'warn',
217
+ message: 'Could not read gateway logs',
218
+ timestamp: now(),
219
+ durationMs: Date.now() - start,
220
+ };
221
+ }
222
+ }
223
+ /**
224
+ * #36 — Fleet message flow (informational).
225
+ *
226
+ * Checks if at least one audit event exists across all agents.
227
+ * Pre-Phase 2, no events are expected — this is informational only.
228
+ */
229
+ export async function checkFleetMessageFlow(ctx) {
230
+ const start = Date.now();
231
+ const auditDir = path.join(getFleetBusDir(ctx), 'audit');
232
+ if (!fs.existsSync(auditDir)) {
233
+ return {
234
+ name: 'Fleet message flow',
235
+ category: 'fleet',
236
+ status: 'pass',
237
+ message: 'No audit trail yet (expected pre-Phase 2)',
238
+ timestamp: now(),
239
+ durationMs: Date.now() - start,
240
+ };
241
+ }
242
+ let totalEvents = 0;
243
+ const agentsWithTraffic = [];
244
+ for (const agent of EXPECTED_AGENTS) {
245
+ const jsonlPath = path.join(auditDir, `${agent}.audit.jsonl`);
246
+ if (!fs.existsSync(jsonlPath))
247
+ continue;
248
+ try {
249
+ const content = fs.readFileSync(jsonlPath, 'utf-8').trim();
250
+ if (!content)
251
+ continue;
252
+ const count = content.split('\n').filter((l) => l.trim()).length;
253
+ if (count > 0) {
254
+ totalEvents += count;
255
+ agentsWithTraffic.push(`${agent}(${count})`);
256
+ }
257
+ }
258
+ catch {
259
+ // Skip unreadable files
260
+ }
261
+ }
262
+ if (totalEvents === 0) {
263
+ return {
264
+ name: 'Fleet message flow',
265
+ category: 'fleet',
266
+ status: 'pass',
267
+ message: 'No fleet messages yet (bus idle)',
268
+ timestamp: now(),
269
+ durationMs: Date.now() - start,
270
+ };
271
+ }
272
+ return {
273
+ name: 'Fleet message flow',
274
+ category: 'fleet',
275
+ status: 'pass',
276
+ message: `${totalEvents} events: ${agentsWithTraffic.join(', ')}`,
277
+ timestamp: now(),
278
+ durationMs: Date.now() - start,
279
+ };
280
+ }
281
+ // ── API smoke checks (dynamic import) ──────────────────────────
282
+ /**
283
+ * Lazy-load the fleet-bus module. Returns null if not installed.
284
+ * All 3 smoke checks share this so the import happens only once.
285
+ */
286
+ let fleetBusCache;
287
+ function loadFleetBus() {
288
+ if (!fleetBusCache) {
289
+ const mod = '@aiassesstech/fleet-bus';
290
+ fleetBusCache = import(mod).catch(() => null);
291
+ }
292
+ return fleetBusCache;
293
+ }
294
+ /** Reset the cached import (for testing with mocks). */
295
+ export function _resetFleetBusCache_for_testing() {
296
+ fleetBusCache = undefined;
297
+ }
298
+ const PATENT_ROUTING_CASES = [
299
+ { from: 'grillo', to: 'jessie', method: 'assessment/result', expectAllowed: true, label: 'Grillo→Jessie assessment allowed' },
300
+ { from: 'jessie', to: 'grillo', method: 'assessment/request', expectAllowed: false, label: 'Patent 5: nobody commands Grillo' },
301
+ { from: 'nole', to: 'jessie', method: 'proposal/submit', expectAllowed: true, label: 'Nole→Commander proposal allowed' },
302
+ { from: 'nole', to: 'noah', method: 'proposal/submit', expectAllowed: false, label: 'Patent 6: Nole governed, Commander only' },
303
+ { from: 'mighty-mark', to: 'jessie', method: 'health/alert', expectAllowed: true, label: 'Mark→Commander alert allowed' },
304
+ { from: 'sam', to: 'jessie', method: 'assessment/result', expectAllowed: false, label: 'Sam sandboxed: no assessment authority' },
305
+ { from: 'noah', to: 'jessie', method: 'drift/alert', expectAllowed: true, label: 'Noah→Commander drift alert allowed' },
306
+ ];
307
+ /**
308
+ * #37 — Routing enforcement smoke test.
309
+ *
310
+ * Exercises enforceRouting() with patent-critical scenarios.
311
+ * Verifies that Patent 5 (Grillo unidirectional), Patent 6 (Nole governed),
312
+ * and sandboxing (Sam) are correctly enforced.
313
+ */
314
+ export async function checkFleetRoutingSmoke(ctx) {
315
+ const start = Date.now();
316
+ const fb = await loadFleetBus();
317
+ if (!fb) {
318
+ return {
319
+ name: 'Fleet routing smoke',
320
+ category: 'fleet',
321
+ status: 'warn',
322
+ message: 'fleet-bus not installed — skipped',
323
+ timestamp: now(),
324
+ durationMs: Date.now() - start,
325
+ };
326
+ }
327
+ const { enforceRouting, createFleetMessage, getRoutingRule } = fb;
328
+ const violations = [];
329
+ for (const tc of PATENT_ROUTING_CASES) {
330
+ const msg = createFleetMessage(tc.from, tc.to, tc.method, {});
331
+ const decision = enforceRouting(msg);
332
+ if (decision.allowed !== tc.expectAllowed) {
333
+ violations.push(`${tc.label}: expected ${tc.expectAllowed ? 'allow' : 'block'}, got ${decision.allowed ? 'allow' : 'block'}`);
334
+ }
335
+ }
336
+ const allAgents = ['grillo', 'jessie', 'noah', 'nole', 'mighty-mark', 'sam'];
337
+ const missingRules = allAgents.filter((a) => !getRoutingRule(a));
338
+ if (missingRules.length > 0) {
339
+ violations.push(`Missing routing rules: ${missingRules.join(', ')}`);
340
+ }
341
+ if (violations.length > 0) {
342
+ return {
343
+ name: 'Fleet routing smoke',
344
+ category: 'fleet',
345
+ status: 'fail',
346
+ message: violations.join('; '),
347
+ timestamp: now(),
348
+ durationMs: Date.now() - start,
349
+ };
350
+ }
351
+ return {
352
+ name: 'Fleet routing smoke',
353
+ category: 'fleet',
354
+ status: 'pass',
355
+ message: `${PATENT_ROUTING_CASES.length} routing rules + ${allAgents.length} agent rules verified`,
356
+ timestamp: now(),
357
+ durationMs: Date.now() - start,
358
+ };
359
+ }
360
+ /**
361
+ * #38 — Serialization roundtrip smoke test.
362
+ *
363
+ * Creates a FleetMessage, serializes it for transport, deserializes it,
364
+ * and verifies the roundtrip preserves identity.
365
+ */
366
+ export async function checkFleetSerializationSmoke(ctx) {
367
+ const start = Date.now();
368
+ const fb = await loadFleetBus();
369
+ if (!fb) {
370
+ return {
371
+ name: 'Fleet serialization smoke',
372
+ category: 'fleet',
373
+ status: 'warn',
374
+ message: 'fleet-bus not installed — skipped',
375
+ timestamp: now(),
376
+ durationMs: Date.now() - start,
377
+ };
378
+ }
379
+ const { createFleetMessage, serializeForTransport, deserializeFromTransport, isFleetMessage, extractFleetMessage, } = fb;
380
+ const errors = [];
381
+ const msg = createFleetMessage('mighty-mark', 'jessie', 'health/alert', { level: 'warn' });
382
+ if (!msg.id || !msg.nonce || msg.version !== '1.0') {
383
+ errors.push('createFleetMessage missing required fields');
384
+ }
385
+ const serialized = serializeForTransport(msg);
386
+ if (!serialized.startsWith('%%FLEET%%')) {
387
+ errors.push('serialized message missing %%FLEET%% prefix');
388
+ }
389
+ if (!isFleetMessage(serialized)) {
390
+ errors.push('isFleetMessage failed to detect fleet message');
391
+ }
392
+ if (isFleetMessage('Hello, world!')) {
393
+ errors.push('isFleetMessage false positive on plain text');
394
+ }
395
+ const restored = deserializeFromTransport(serialized);
396
+ if (!restored) {
397
+ errors.push('deserializeFromTransport returned null');
398
+ }
399
+ else {
400
+ if (restored.id !== msg.id)
401
+ errors.push('roundtrip: id mismatch');
402
+ if (restored.from !== msg.from)
403
+ errors.push('roundtrip: from mismatch');
404
+ if (restored.to !== msg.to)
405
+ errors.push('roundtrip: to mismatch');
406
+ if (restored.method !== msg.method)
407
+ errors.push('roundtrip: method mismatch');
408
+ }
409
+ const extracted = extractFleetMessage({ content: serialized });
410
+ if (!extracted || extracted.id !== msg.id) {
411
+ errors.push('extractFleetMessage failed on hook event');
412
+ }
413
+ if (errors.length > 0) {
414
+ return {
415
+ name: 'Fleet serialization smoke',
416
+ category: 'fleet',
417
+ status: 'fail',
418
+ message: errors.join('; '),
419
+ timestamp: now(),
420
+ durationMs: Date.now() - start,
421
+ };
422
+ }
423
+ return {
424
+ name: 'Fleet serialization smoke',
425
+ category: 'fleet',
426
+ status: 'pass',
427
+ message: 'create → serialize → detect → deserialize → extract OK',
428
+ timestamp: now(),
429
+ durationMs: Date.now() - start,
430
+ };
431
+ }
432
+ /**
433
+ * #39 — Card consistency smoke test.
434
+ *
435
+ * Compares on-disk agent cards against the pre-defined card constants
436
+ * exported by fleet-bus. Checks agentId, role, and communicationMode.
437
+ */
438
+ export async function checkFleetCardConsistency(ctx) {
439
+ const start = Date.now();
440
+ const fb = await loadFleetBus();
441
+ if (!fb) {
442
+ return {
443
+ name: 'Fleet card consistency',
444
+ category: 'fleet',
445
+ status: 'warn',
446
+ message: 'fleet-bus not installed — skipped',
447
+ timestamp: now(),
448
+ durationMs: Date.now() - start,
449
+ };
450
+ }
451
+ const cardsDir = path.join(getFleetBusDir(ctx), 'cards');
452
+ if (!fs.existsSync(cardsDir)) {
453
+ return {
454
+ name: 'Fleet card consistency',
455
+ category: 'fleet',
456
+ status: 'warn',
457
+ message: 'Cards directory not found — cannot compare',
458
+ timestamp: now(),
459
+ durationMs: Date.now() - start,
460
+ };
461
+ }
462
+ const predefinedCards = {
463
+ grillo: fb.GRILLO_CARD,
464
+ noah: fb.NOAH_CARD,
465
+ nole: fb.NOLE_CARD,
466
+ 'mighty-mark': fb.MIGHTY_MARK_CARD,
467
+ };
468
+ const mismatches = [];
469
+ let compared = 0;
470
+ for (const [agentId, expected] of Object.entries(predefinedCards)) {
471
+ const diskPath = path.join(cardsDir, `${agentId}.json`);
472
+ if (!fs.existsSync(diskPath))
473
+ continue;
474
+ try {
475
+ const disk = JSON.parse(fs.readFileSync(diskPath, 'utf-8'));
476
+ compared++;
477
+ if (disk.role !== expected.role) {
478
+ mismatches.push(`${agentId}: role ${disk.role} ≠ ${expected.role}`);
479
+ }
480
+ if (disk.communicationMode !== expected.communicationMode) {
481
+ mismatches.push(`${agentId}: mode ${disk.communicationMode} ≠ ${expected.communicationMode}`);
482
+ }
483
+ if (disk.authLevel !== expected.authLevel) {
484
+ mismatches.push(`${agentId}: auth ${disk.authLevel} ≠ ${expected.authLevel}`);
485
+ }
486
+ }
487
+ catch {
488
+ mismatches.push(`${agentId}: card unreadable`);
489
+ }
490
+ }
491
+ if (compared === 0) {
492
+ return {
493
+ name: 'Fleet card consistency',
494
+ category: 'fleet',
495
+ status: 'warn',
496
+ message: 'No on-disk cards to compare',
497
+ timestamp: now(),
498
+ durationMs: Date.now() - start,
499
+ };
500
+ }
501
+ if (mismatches.length > 0) {
502
+ return {
503
+ name: 'Fleet card consistency',
504
+ category: 'fleet',
505
+ status: 'fail',
506
+ message: mismatches.join('; '),
507
+ timestamp: now(),
508
+ durationMs: Date.now() - start,
509
+ };
510
+ }
511
+ return {
512
+ name: 'Fleet card consistency',
513
+ category: 'fleet',
514
+ status: 'pass',
515
+ message: `${compared} cards match pre-defined constants (role, mode, auth)`,
516
+ timestamp: now(),
517
+ durationMs: Date.now() - start,
518
+ };
519
+ }
520
+ /** Run all 7 fleet health checks. */
521
+ export async function runFleetChecks(ctx) {
522
+ return [
523
+ await checkFleetCardsCurrent(ctx),
524
+ await checkFleetAuditIntegrity(ctx),
525
+ await checkFleetBusLoaded(ctx),
526
+ await checkFleetMessageFlow(ctx),
527
+ await checkFleetRoutingSmoke(ctx),
528
+ await checkFleetSerializationSmoke(ctx),
529
+ await checkFleetCardConsistency(ctx),
530
+ ];
531
+ }
532
+ //# sourceMappingURL=fleet-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-health.js","sourceRoot":"","sources":["../../src/checks/fleet-health.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  /** Overall system health classification. */
5
5
  export type HealthStatus = 'GREEN' | 'YELLOW' | 'RED';
6
6
  /** Check category — the six pillars of health monitoring. */
7
- export type CheckCategory = 'gateway' | 'agents' | 'system' | 'api' | 'data' | 'memory';
7
+ export type CheckCategory = 'gateway' | 'agents' | 'system' | 'api' | 'data' | 'memory' | 'fleet';
8
8
  /** Severity level for individual checks and incidents. */
9
9
  export type Severity = 'critical' | 'high' | 'medium' | 'low';
10
10
  /** Status of an individual check. */
@@ -1 +1 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/types/health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEtD,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAExF,0DAA0D;AAC1D,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9D,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/types/health.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,4CAA4C;AAC5C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEtD,6DAA6D;AAC7D,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAElG,0DAA0D;AAC1D,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE9D,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,eAAe,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiassesstech/mighty-mark",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "System Health Sentinel for AI Assess Tech Fleet — autonomous monitoring, watchdog recovery, and fleet infrastructure oversight.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",