@aiassesstech/mighty-mark 0.6.5 → 0.6.7

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.
@@ -0,0 +1,296 @@
1
+ /**
2
+ * Fleet Communication Health Checks — verifies every interaction path in the
3
+ * fleet-bus routing table is healthy.
4
+ *
5
+ * Audit-based checks (read fleet-bus audit logs):
6
+ * F1: Grillo→Noah assessment/result delivery (direct fleet-bus path)
7
+ * F2: Per-method delivery breakdown — every method type actually flowing
8
+ * F3: Routing coverage — all expected agent-to-agent paths have recent traffic
9
+ * F4: Assessment result triple-send — Jessie + Noah + assessed agent all receive
10
+ *
11
+ * Active probe (requires fleetBusSend in CheckContext):
12
+ * T6: Pipeline liveness probe — trigger dry-run assessment, verify Noah ingests
13
+ *
14
+ * @see SPEC-FLEET-BUS-COMMUNICATION-SUPPLEMENT-1.0
15
+ * @see SPEC-MIGHTY-MARK-TEMPORAL-PIPELINE-HEALTH-CHECKS-1.0 (T6)
16
+ */
17
+ import fs from 'node:fs';
18
+ import path from 'node:path';
19
+ import { resolveOpenClawHome, now } from './check-context.js';
20
+ const CATEGORY = 'communication';
21
+ const EXPECTED_AGENTS = ['grillo', 'jessie', 'noah', 'nole', 'mighty-mark', 'sam'];
22
+ /**
23
+ * Critical communication paths that MUST have recent traffic for the fleet
24
+ * to be considered healthy. Derived from the fleet-bus routing rules.
25
+ */
26
+ const CRITICAL_PATHS = [
27
+ { from: 'grillo', to: 'jessie', method: 'assessment/result', description: 'Grillo reports assessment to Commander' },
28
+ { from: 'grillo', to: 'noah', method: 'assessment/result', description: 'Grillo sends results to Noah for temporal storage' },
29
+ { from: 'noah', to: 'jessie', method: 'cron/scheduled', description: 'Noah dispatches cron job to Jessie' },
30
+ { from: 'noah', to: 'grillo', method: 'cron/scheduled', description: 'Noah triggers Grillo assessment via cron' },
31
+ { from: 'noah', to: 'nole', method: 'cron/scheduled', description: 'Noah dispatches cron job to Nole' },
32
+ { from: 'noah', to: 'mighty-mark', method: 'cron/scheduled', description: 'Noah dispatches cron job to Mighty Mark' },
33
+ { from: 'noah', to: 'sam', method: 'cron/scheduled', description: 'Noah dispatches cron job to Sam' },
34
+ ];
35
+ /**
36
+ * All known fleet methods. Used to detect method types flowing through the system.
37
+ */
38
+ const ALL_METHODS = [
39
+ 'assessment/request', 'assessment/result', 'assessment/failed',
40
+ 'drift/alert', 'drift/report',
41
+ 'fleet/broadcast', 'fleet/ping', 'fleet/pong',
42
+ 'cron/scheduled', 'cron/triggered', 'cron/completed', 'cron/failed',
43
+ 'cron/constitutional_violation',
44
+ 'proposal/submit', 'proposal/approved', 'proposal/rejected',
45
+ 'task/assign', 'task/status', 'task/complete', 'task/cancel', 'task/priority_change',
46
+ 'veto/issue',
47
+ 'health/alert', 'health/status', 'health/incident', 'health/check_request',
48
+ ];
49
+ function getFleetBusDir(ctx) {
50
+ return ctx?.fleetBusDir ?? path.join(resolveOpenClawHome(), 'workspace', 'fleet-bus');
51
+ }
52
+ function getNoahDbPath(ctx) {
53
+ if (ctx?.noahDataDir)
54
+ return path.join(ctx.noahDataDir, 'noah-temporal.db');
55
+ return path.join(resolveOpenClawHome(), '.noah-data', 'noah-temporal.db');
56
+ }
57
+ let _betterSqlite3;
58
+ async function loadDatabase() {
59
+ if (_betterSqlite3 !== undefined)
60
+ return _betterSqlite3;
61
+ try {
62
+ const mod = await import('better-sqlite3');
63
+ _betterSqlite3 = mod.default ?? mod;
64
+ return _betterSqlite3;
65
+ }
66
+ catch {
67
+ _betterSqlite3 = null;
68
+ return null;
69
+ }
70
+ }
71
+ function readAllAuditEvents(auditDir) {
72
+ const all = [];
73
+ for (const agent of EXPECTED_AGENTS) {
74
+ const jsonlPath = path.join(auditDir, `${agent}.audit.jsonl`);
75
+ if (!fs.existsSync(jsonlPath))
76
+ continue;
77
+ try {
78
+ const content = fs.readFileSync(jsonlPath, 'utf-8').trim();
79
+ if (!content)
80
+ continue;
81
+ for (const line of content.split('\n')) {
82
+ if (!line.trim())
83
+ continue;
84
+ try {
85
+ all.push(JSON.parse(line));
86
+ }
87
+ catch { /* skip */ }
88
+ }
89
+ }
90
+ catch { /* skip */ }
91
+ }
92
+ return all;
93
+ }
94
+ function result(name, status, message, start) {
95
+ return { name, category: CATEGORY, status, message, timestamp: now(), durationMs: Date.now() - start };
96
+ }
97
+ // ────────────────────────────────────────────────────────────────
98
+ // F1: Grillo→Noah Direct Assessment Delivery
99
+ // ────────────────────────────────────────────────────────────────
100
+ export async function checkGrilloToNoahDelivery(ctx) {
101
+ const start = Date.now();
102
+ const NAME = 'Grillo→Noah assessment/result delivery';
103
+ const auditDir = path.join(getFleetBusDir(ctx), 'audit');
104
+ if (!fs.existsSync(auditDir)) {
105
+ return result(NAME, 'warn', 'Fleet-bus audit directory not found', start);
106
+ }
107
+ const cutoff = Date.now() - 48 * 60 * 60 * 1000;
108
+ const allEvents = readAllAuditEvents(auditDir);
109
+ const grilloToNoah = allEvents.filter(e => (e.from === 'grillo' || e.agentId === 'grillo') &&
110
+ e.to === 'noah' &&
111
+ e.method === 'assessment/result' &&
112
+ e.timestamp && new Date(e.timestamp).getTime() > cutoff);
113
+ if (grilloToNoah.length === 0) {
114
+ return result(NAME, 'warn', 'No Grillo→Noah assessment/result messages in 48h — direct delivery may not have run yet', start);
115
+ }
116
+ const delivered = grilloToNoah.filter(e => e.outcome === 'delivered' || e.outcome === 'success');
117
+ const failed = grilloToNoah.filter(e => e.outcome === 'error' || e.outcome === 'routing_rejected');
118
+ if (failed.length > 0 && delivered.length === 0) {
119
+ return result(NAME, 'fail', `All ${grilloToNoah.length} Grillo→Noah messages failed (last 48h)`, start);
120
+ }
121
+ if (failed.length > 0) {
122
+ return result(NAME, 'warn', `${delivered.length}/${grilloToNoah.length} delivered, ${failed.length} failed (last 48h)`, start);
123
+ }
124
+ return result(NAME, 'pass', `${delivered.length} assessment results delivered Grillo→Noah in 48h`, start);
125
+ }
126
+ // ────────────────────────────────────────────────────────────────
127
+ // F2: Per-Method Delivery Breakdown
128
+ // ────────────────────────────────────────────────────────────────
129
+ export async function checkMethodDeliveryBreakdown(ctx) {
130
+ const start = Date.now();
131
+ const NAME = 'Fleet method delivery breakdown';
132
+ const auditDir = path.join(getFleetBusDir(ctx), 'audit');
133
+ if (!fs.existsSync(auditDir)) {
134
+ return result(NAME, 'warn', 'Fleet-bus audit directory not found', start);
135
+ }
136
+ const cutoff = Date.now() - 48 * 60 * 60 * 1000;
137
+ const allEvents = readAllAuditEvents(auditDir);
138
+ const recentEvents = allEvents.filter(e => e.timestamp && new Date(e.timestamp).getTime() > cutoff);
139
+ if (recentEvents.length === 0) {
140
+ return result(NAME, 'warn', 'No fleet-bus events in last 48h', start);
141
+ }
142
+ const methodCounts = new Map();
143
+ for (const event of recentEvents) {
144
+ const method = event.method;
145
+ if (!method)
146
+ continue;
147
+ if (!methodCounts.has(method))
148
+ methodCounts.set(method, { delivered: 0, failed: 0 });
149
+ const counts = methodCounts.get(method);
150
+ if (event.outcome === 'delivered' || event.outcome === 'success') {
151
+ counts.delivered++;
152
+ }
153
+ else if (event.outcome === 'error' || event.outcome === 'routing_rejected') {
154
+ counts.failed++;
155
+ }
156
+ }
157
+ const activeMethodCount = methodCounts.size;
158
+ const failingMethods = Array.from(methodCounts.entries())
159
+ .filter(([, c]) => c.failed > 0 && c.delivered === 0)
160
+ .map(([m]) => m);
161
+ if (failingMethods.length > 0) {
162
+ return result(NAME, 'warn', `${activeMethodCount} method types active. Failing: ${failingMethods.join(', ')}`, start);
163
+ }
164
+ return result(NAME, 'pass', `${activeMethodCount} method types active across fleet (48h)`, start);
165
+ }
166
+ // ────────────────────────────────────────────────────────────────
167
+ // F3: Critical Routing Coverage
168
+ // ────────────────────────────────────────────────────────────────
169
+ export async function checkRoutingCoverage(ctx) {
170
+ const start = Date.now();
171
+ const NAME = 'Critical communication paths have recent traffic';
172
+ const auditDir = path.join(getFleetBusDir(ctx), 'audit');
173
+ if (!fs.existsSync(auditDir)) {
174
+ return result(NAME, 'warn', 'Fleet-bus audit directory not found', start);
175
+ }
176
+ const cutoff = Date.now() - 48 * 60 * 60 * 1000;
177
+ const allEvents = readAllAuditEvents(auditDir);
178
+ const recentEvents = allEvents.filter(e => e.timestamp && new Date(e.timestamp).getTime() > cutoff);
179
+ const covered = [];
180
+ const missing = [];
181
+ for (const p of CRITICAL_PATHS) {
182
+ const hasTraffic = recentEvents.some(e => (e.from === p.from || e.agentId === p.from) &&
183
+ e.to === p.to &&
184
+ e.method === p.method);
185
+ if (hasTraffic) {
186
+ covered.push(`${p.from}→${p.to}`);
187
+ }
188
+ else {
189
+ missing.push(p.description);
190
+ }
191
+ }
192
+ if (missing.length === 0) {
193
+ return result(NAME, 'pass', `All ${CRITICAL_PATHS.length} critical paths have traffic (48h)`, start);
194
+ }
195
+ if (covered.length === 0) {
196
+ return result(NAME, 'fail', `No critical communication paths have traffic in 48h. Missing: ${missing.join('; ')}`, start);
197
+ }
198
+ return result(NAME, 'warn', `${covered.length}/${CRITICAL_PATHS.length} paths active. Missing: ${missing.join('; ')}`, start);
199
+ }
200
+ // ────────────────────────────────────────────────────────────────
201
+ // F4: Assessment Result Triple-Send
202
+ // ────────────────────────────────────────────────────────────────
203
+ export async function checkAssessmentTripleSend(ctx) {
204
+ const start = Date.now();
205
+ const NAME = 'Assessment results reach Jessie + Noah + assessed agent';
206
+ const auditDir = path.join(getFleetBusDir(ctx), 'audit');
207
+ if (!fs.existsSync(auditDir)) {
208
+ return result(NAME, 'warn', 'Fleet-bus audit directory not found', start);
209
+ }
210
+ const cutoff = Date.now() - 48 * 60 * 60 * 1000;
211
+ const allEvents = readAllAuditEvents(auditDir);
212
+ const assessmentResults = allEvents.filter(e => e.method === 'assessment/result' &&
213
+ (e.from === 'grillo' || e.agentId === 'grillo') &&
214
+ e.timestamp && new Date(e.timestamp).getTime() > cutoff);
215
+ if (assessmentResults.length === 0) {
216
+ return result(NAME, 'warn', 'No assessment/result messages from Grillo in 48h', start);
217
+ }
218
+ const recipients = new Set(assessmentResults.map(e => e.to).filter(Boolean));
219
+ const jessieReceived = recipients.has('jessie');
220
+ const noahReceived = recipients.has('noah');
221
+ const agentRecipients = Array.from(recipients).filter(r => r !== 'jessie' && r !== 'noah' && r !== 'grillo');
222
+ const issues = [];
223
+ if (!jessieReceived)
224
+ issues.push('Jessie not receiving assessment results');
225
+ if (!noahReceived)
226
+ issues.push('Noah not receiving assessment results (direct delivery)');
227
+ if (agentRecipients.length === 0)
228
+ issues.push('No assessed agents receiving their results');
229
+ if (issues.length === 0) {
230
+ return result(NAME, 'pass', `Triple-send verified: Jessie + Noah + ${agentRecipients.length} assessed agent(s)`, start);
231
+ }
232
+ return result(NAME, issues.length > 1 ? 'fail' : 'warn', issues.join('; '), start);
233
+ }
234
+ // ────────────────────────────────────────────────────────────────
235
+ // T6: Pipeline Liveness Probe (Active)
236
+ // ────────────────────────────────────────────────────────────────
237
+ export async function checkPipelineLiveness(ctx) {
238
+ const start = Date.now();
239
+ const NAME = 'Pipeline liveness: Grillo→Noah end-to-end';
240
+ const sendFn = ctx?.fleetBusSend;
241
+ if (!sendFn) {
242
+ return result(NAME, 'warn', 'Fleet-bus send not available — cannot run active pipeline probe', start);
243
+ }
244
+ const dbPath = getNoahDbPath(ctx);
245
+ if (!fs.existsSync(dbPath)) {
246
+ return result(NAME, 'warn', 'Noah database not found — cannot verify ingestion', start);
247
+ }
248
+ let Database;
249
+ try {
250
+ Database = await loadDatabase();
251
+ if (!Database) {
252
+ return result(NAME, 'warn', 'better-sqlite3 not available', start);
253
+ }
254
+ }
255
+ catch {
256
+ return result(NAME, 'warn', 'Could not load database driver', start);
257
+ }
258
+ try {
259
+ const db = new Database(dbPath, { readonly: true });
260
+ const before = db.prepare('SELECT count(*) as cnt FROM assessment_records').get();
261
+ db.close();
262
+ await sendFn('cron/scheduled', 'grillo', {
263
+ job_id: 'mark-liveness-probe',
264
+ job_name: 'fleet_assessment',
265
+ trigger: 'liveness_probe',
266
+ dry_run: true,
267
+ });
268
+ await new Promise(resolve => setTimeout(resolve, 15_000));
269
+ const db2 = new Database(dbPath, { readonly: true });
270
+ const after = db2.prepare('SELECT count(*) as cnt FROM assessment_records').get();
271
+ db2.close();
272
+ if (after.cnt > before.cnt) {
273
+ return result(NAME, 'pass', `Pipeline alive: ${after.cnt - before.cnt} new record(s) after liveness probe`, start);
274
+ }
275
+ return result(NAME, 'warn', `Probe sent but no new records in Noah after 15s (before: ${before.cnt}, after: ${after.cnt})`, start);
276
+ }
277
+ catch (err) {
278
+ return result(NAME, 'warn', `Pipeline probe failed: ${err.message}`, start);
279
+ }
280
+ }
281
+ // ────────────────────────────────────────────────────────────────
282
+ // Orchestrator
283
+ // ────────────────────────────────────────────────────────────────
284
+ export async function runFleetCommunicationChecks(ctx) {
285
+ const results = [
286
+ await checkGrilloToNoahDelivery(ctx),
287
+ await checkMethodDeliveryBreakdown(ctx),
288
+ await checkRoutingCoverage(ctx),
289
+ await checkAssessmentTripleSend(ctx),
290
+ ];
291
+ if (ctx?.fleetBusSend) {
292
+ results.push(await checkPipelineLiveness(ctx));
293
+ }
294
+ return results;
295
+ }
296
+ //# sourceMappingURL=fleet-communication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fleet-communication.js","sourceRoot":"","sources":["../../src/checks/fleet-communication.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0EH,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,QAAQ,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmQxE"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0EH,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,QAAQ,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqQxE"}
package/dist/cli/setup.js CHANGED
@@ -47,7 +47,7 @@ function resolvePackageAgentDir() {
47
47
  // ================================================================
48
48
  // Agent Files
49
49
  // ================================================================
50
- const AGENT_FILES = ['SOUL.md', 'AGENTS.md', 'IDENTITY.md'];
50
+ const AGENT_FILES = ['SOUL.md', 'AGENTS.md', 'IDENTITY.md', 'HEARTBEAT.md'];
51
51
  function resolveTemplateValues(options, pluginConfig) {
52
52
  return {
53
53
  MORNING_CHECK_HOUR_CT: String(options.morningCheckHourCt ?? pluginConfig.morningCheckHourCt ?? 6),
@@ -65,18 +65,11 @@ export async function cmdSetup(options = {}) {
65
65
  // ── Step 1: Verify OpenClaw installation ──────────────────────
66
66
  const configPath = path.join(openclawHome, 'openclaw.json');
67
67
  if (!fs.existsSync(configPath)) {
68
- // Also check ~/.clawdbot/ (Jessie alternate)
69
- const altConfigPath = path.join(process.env.HOME || '~', '.clawdbot', 'openclaw.json');
70
- if (fs.existsSync(altConfigPath)) {
71
- console.log(`[mighty-mark] Found config at ${altConfigPath} — using that location`);
72
- }
73
- else {
74
- console.error(`[mighty-mark] ERROR: openclaw.json not found at ${configPath}`);
75
- console.error('[mighty-mark] Is OpenClaw installed? Expected config at ~/.openclaw/openclaw.json');
76
- console.error('[mighty-mark] Use --openclaw-home to specify a different location.');
77
- process.exitCode = 1;
78
- return;
79
- }
68
+ console.error(`[mighty-mark] ERROR: openclaw.json not found at ${configPath}`);
69
+ console.error('[mighty-mark] Is OpenClaw installed? Expected config at ~/.openclaw/openclaw.json');
70
+ console.error('[mighty-mark] Use --openclaw-home to specify a different location.');
71
+ process.exitCode = 1;
72
+ return;
80
73
  }
81
74
  // ── Step 2: Create agent directory ────────────────────────────
82
75
  const agentDir = path.join(openclawHome, 'agents', 'mighty-mark', 'agent');
@@ -121,30 +114,36 @@ export async function cmdSetup(options = {}) {
121
114
  const TEMPLATED_FILES = new Set(['AGENTS.md']);
122
115
  for (const file of AGENT_FILES) {
123
116
  const src = path.join(sourceAgentDir, file);
124
- const dest = path.join(agentDir, file);
125
117
  if (!fs.existsSync(src)) {
126
118
  console.warn(`[mighty-mark] WARNING: ${file} not found in package at ${src}`);
127
119
  continue;
128
120
  }
129
- if (fs.existsSync(dest) && !force) {
130
- console.log(`[mighty-mark] ${file} already exists, skipping (use --force to overwrite)`);
131
- continue;
132
- }
133
- if (fs.existsSync(dest) && force) {
134
- const backup = `${dest}.backup.${Date.now()}`;
135
- fs.copyFileSync(dest, backup);
136
- console.log(`[mighty-mark] Backed up existing ${file} to ${path.basename(backup)}`);
137
- }
121
+ let content = null;
138
122
  if (TEMPLATED_FILES.has(file)) {
139
- const content = fs.readFileSync(src, 'utf-8');
140
- const templated = applyTemplate(content, templateValues);
141
- fs.writeFileSync(dest, templated);
142
- console.log(`[mighty-mark] Installed ${file} (templated with config values)`);
123
+ content = applyTemplate(fs.readFileSync(src, 'utf-8'), templateValues);
143
124
  }
144
- else {
145
- fs.copyFileSync(src, dest);
146
- console.log(`[mighty-mark] Installed ${file}`);
125
+ const destinations = [
126
+ { dest: path.join(agentDir, file), label: `agent/${file}` },
127
+ { dest: path.join(workspaceDir, file), label: file },
128
+ ];
129
+ for (const { dest, label } of destinations) {
130
+ if (fs.existsSync(dest) && !force) {
131
+ console.log(`[mighty-mark] ${label} already exists, skipping (use --force to overwrite)`);
132
+ continue;
133
+ }
134
+ if (fs.existsSync(dest) && force) {
135
+ const backup = `${dest}.backup.${Date.now()}`;
136
+ fs.copyFileSync(dest, backup);
137
+ console.log(`[mighty-mark] Backed up existing ${label} to ${path.basename(backup)}`);
138
+ }
139
+ if (content !== null) {
140
+ fs.writeFileSync(dest, content);
141
+ }
142
+ else {
143
+ fs.copyFileSync(src, dest);
144
+ }
147
145
  }
146
+ console.log(`[mighty-mark] Installed ${file}${TEMPLATED_FILES.has(file) ? ' (templated)' : ''}`);
148
147
  }
149
148
  // ── Step 4: Load config + sync extension ─────────────────────
150
149
  let config;
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA8CH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CA2CzC;AAMD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,QAi4BxC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA8CH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CA2CzC;AAMD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,QA87BxC"}
package/dist/plugin.js CHANGED
@@ -274,13 +274,13 @@ export default function register(api) {
274
274
  // ── TOOL 3: mark_check ────────────────────────────────────────
275
275
  api.registerTool({
276
276
  name: 'mark_check',
277
- description: 'Run checks for a specific category: gateway, agents, system, api, data, memory, fleet, alerting, security, or temporal',
277
+ description: 'Run checks for a specific category: gateway, agents, system, api, data, memory, fleet, alerting, security, temporal, cron, or communication',
278
278
  parameters: {
279
279
  type: 'object',
280
280
  properties: {
281
281
  category: {
282
282
  type: 'string',
283
- enum: ['gateway', 'agents', 'system', 'api', 'data', 'memory', 'fleet', 'alerting', 'security', 'temporal'],
283
+ enum: ['gateway', 'agents', 'system', 'api', 'data', 'memory', 'fleet', 'alerting', 'security', 'temporal', 'cron', 'communication'],
284
284
  description: 'Which category of checks to run',
285
285
  },
286
286
  },
@@ -756,7 +756,7 @@ export default function register(api) {
756
756
  'Use Mark\'s tools for infrastructure health:\n\n' +
757
757
  '**Health:**\n' +
758
758
  '- **mark_status** — Quick status snapshot\n' +
759
- '- **mark_health** — Full health check (all checks across 10 categories)\n' +
759
+ '- **mark_health** — Full health check (all checks across 12 categories)\n' +
760
760
  '- **mark_check** — Run checks for a specific category\n' +
761
761
  '- **mark_incidents** — Recent incidents and failures\n' +
762
762
  '- **mark_report** — Formatted health report\n' +
@@ -870,9 +870,65 @@ export default function register(api) {
870
870
  fleetReceive(bus, {
871
871
  methods: [
872
872
  "fleet/broadcast", "fleet/ping", "fleet/pong", "task/assign",
873
+ "health/check_request",
873
874
  ],
874
875
  handler: async (msg) => {
875
876
  console.log(`[mighty-mark] Fleet message received: ${msg.method} from ${msg.from}`);
877
+ if (msg.method === 'health/check_request') {
878
+ const { scope, reason, priority, requestId } = msg.params ?? {};
879
+ console.log(`[mighty-mark] Health check requested by ${msg.from}: scope=${scope}, priority=${priority}, reason="${reason}"`);
880
+ try {
881
+ const scopeToCategoryMap = {
882
+ full: [],
883
+ gateway: ['gateway'],
884
+ agents: ['agents'],
885
+ resources: ['system'],
886
+ apis: ['api'],
887
+ data: ['data'],
888
+ };
889
+ let report;
890
+ const categories = scopeToCategoryMap[scope] ?? [];
891
+ if (scope === 'full' || categories.length === 0) {
892
+ report = await mark.runHealthCheck();
893
+ }
894
+ else {
895
+ const allChecks = [];
896
+ for (const cat of categories) {
897
+ const result = await mark.runCategory(cat);
898
+ allChecks.push(...result.checks);
899
+ }
900
+ const passed = allChecks.filter((c) => c.status === 'pass').length;
901
+ const failed = allChecks.filter((c) => c.status === 'fail').length;
902
+ const warnings = allChecks.filter((c) => c.status === 'warn').length;
903
+ report = {
904
+ timestamp: new Date().toISOString(),
905
+ status: failed > 0 ? 'RED' : warnings > 0 ? 'YELLOW' : 'GREEN',
906
+ summary: { total: allChecks.length, passed, failed, warnings },
907
+ checks: allChecks,
908
+ scope,
909
+ };
910
+ }
911
+ const { fleetSend } = await import(fleetBusMod);
912
+ await fleetSend(bus, transport, {
913
+ to: msg.from,
914
+ method: 'health/status',
915
+ params: {
916
+ overallStatus: report.status === 'GREEN' ? 'healthy' : report.status === 'YELLOW' ? 'degraded' : 'critical',
917
+ checks: Object.fromEntries((report.checks ?? []).map((c) => [c.name, { status: c.status, details: c.message }])),
918
+ uptime: process.uptime(),
919
+ requestId,
920
+ scope: scope ?? 'full',
921
+ reason,
922
+ },
923
+ correlationId: msg.id,
924
+ });
925
+ console.log(`[mighty-mark] Health check response sent to ${msg.from} (requestId: ${requestId})`);
926
+ }
927
+ catch (err) {
928
+ console.error(`[mighty-mark] Health check request failed:`, err instanceof Error ? err.message : String(err));
929
+ }
930
+ return;
931
+ }
876
932
  },
877
933
  });
878
934
  }