@aiassesstech/mighty-mark 0.3.42 → 0.4.1

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,5 +1,5 @@
1
1
  /**
2
- * API connectivity checks — Anthropic, Telegram, Ethereum RPC.
2
+ * API connectivity checks — Anthropic, Telegram, Ethereum RPC, GOG.
3
3
  */
4
4
  import type { CheckResult } from '../types/health.js';
5
5
  import { type CheckContext } from './check-context.js';
@@ -9,6 +9,16 @@ export declare function checkAnthropicApi(ctx?: CheckContext): Promise<CheckResu
9
9
  export declare function checkTelegramApi(token?: string, ctx?: CheckContext): Promise<CheckResult>;
10
10
  /** Check #22: Ethereum RPC reachable. */
11
11
  export declare function checkEthereumRpc(ctx?: CheckContext): Promise<CheckResult>;
12
+ /**
13
+ * Check #63: GOG token valid — Google Workspace access for Jessie.
14
+ *
15
+ * Runs `gog gmail search` to verify the OAuth token is still valid.
16
+ * On failure, the message includes the recovery command so the alert
17
+ * is immediately actionable.
18
+ *
19
+ * @see SPEC-GOG-TOKEN-RESILIENCE-1.0.md
20
+ */
21
+ export declare function checkGogToken(ctx?: CheckContext): Promise<CheckResult>;
12
22
  /** Run all API connectivity checks. */
13
23
  export declare function runApiChecks(telegramToken?: string, ctx?: CheckContext): Promise<CheckResult[]>;
14
24
  //# sourceMappingURL=api-connectivity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-connectivity.d.ts","sourceRoot":"","sources":["../../src/checks/api-connectivity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAkC3F,4DAA4D;AAC5D,wBAAsB,iBAAiB,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BhF;AAED,6CAA6C;AAC7C,wBAAsB,gBAAgB,CACpC,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,CAAC,CAsBtB;AAED,yCAAyC;AACzC,wBAAsB,gBAAgB,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAuB/E;AAED,uCAAuC;AACvC,wBAAsB,YAAY,CAChC,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,EAAE,CAAC,CAMxB"}
1
+ {"version":3,"file":"api-connectivity.d.ts","sourceRoot":"","sources":["../../src/checks/api-connectivity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAA4C,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAkCjG,4DAA4D;AAC5D,wBAAsB,iBAAiB,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA+BhF;AAED,6CAA6C;AAC7C,wBAAsB,gBAAgB,CACpC,KAAK,CAAC,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,CAAC,CAsBtB;AAED,yCAAyC;AACzC,wBAAsB,gBAAgB,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAuB/E;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA6E5E;AAED,uCAAuC;AACvC,wBAAsB,YAAY,CAChC,aAAa,CAAC,EAAE,MAAM,EACtB,GAAG,CAAC,EAAE,YAAY,GACjB,OAAO,CAAC,WAAW,EAAE,CAAC,CAOxB"}
@@ -1,10 +1,10 @@
1
1
  /**
2
- * API connectivity checks — Anthropic, Telegram, Ethereum RPC.
2
+ * API connectivity checks — Anthropic, Telegram, Ethereum RPC, GOG.
3
3
  */
4
4
  import fs from 'node:fs';
5
5
  import path from 'node:path';
6
6
  import { DEFAULT_API_TIMEOUT_MS } from '../config/defaults.js';
7
- import { fetchUrl, now, resolveOpenClawHome } from './check-context.js';
7
+ import { exec, fetchUrl, now, resolveOpenClawHome } from './check-context.js';
8
8
  /** Read the Anthropic API key from openclaw.json provider config or env. */
9
9
  function resolveAnthropicKey() {
10
10
  if (process.env.ANTHROPIC_API_KEY)
@@ -108,12 +108,91 @@ export async function checkEthereumRpc(ctx) {
108
108
  return { name: 'Ethereum RPC reachable', category: 'api', status: 'warn', message: 'Ethereum RPC unreachable', timestamp: now(), durationMs: Date.now() - start };
109
109
  }
110
110
  }
111
+ /**
112
+ * Check #63: GOG token valid — Google Workspace access for Jessie.
113
+ *
114
+ * Runs `gog gmail search` to verify the OAuth token is still valid.
115
+ * On failure, the message includes the recovery command so the alert
116
+ * is immediately actionable.
117
+ *
118
+ * @see SPEC-GOG-TOKEN-RESILIENCE-1.0.md
119
+ */
120
+ export async function checkGogToken(ctx) {
121
+ const start = Date.now();
122
+ const gogAccount = process.env.GOG_ACCOUNT ?? 'gidanc.defend.good@gmail.com';
123
+ const gogKeyringPw = process.env.GOG_KEYRING_PASSWORD ?? '';
124
+ if (!gogKeyringPw && !ctx) {
125
+ return {
126
+ name: 'GOG token valid',
127
+ category: 'api',
128
+ status: 'warn',
129
+ message: 'GOG_KEYRING_PASSWORD not configured — GOG health check skipped',
130
+ timestamp: now(),
131
+ durationMs: Date.now() - start,
132
+ };
133
+ }
134
+ try {
135
+ const output = exec(`GOG_KEYRING_PASSWORD="${gogKeyringPw}" ` +
136
+ `GOG_ACCOUNT="${gogAccount}" ` +
137
+ `gog gmail search "newer_than:7d" --max 1 2>&1`, ctx);
138
+ if (output.includes('invalid_grant')) {
139
+ return {
140
+ name: 'GOG token valid',
141
+ category: 'api',
142
+ status: 'fail',
143
+ message: 'GOG token expired — Jessie has no Google access. Run: /usr/local/bin/gog-reauth.sh',
144
+ timestamp: now(),
145
+ durationMs: Date.now() - start,
146
+ };
147
+ }
148
+ return {
149
+ name: 'GOG token valid',
150
+ category: 'api',
151
+ status: 'pass',
152
+ message: `Google Workspace access confirmed (${gogAccount})`,
153
+ timestamp: now(),
154
+ durationMs: Date.now() - start,
155
+ };
156
+ }
157
+ catch (err) {
158
+ const message = err instanceof Error ? err.message : String(err);
159
+ if (message.includes('ENOENT') || message.includes('not found') || message.includes('gog:')) {
160
+ return {
161
+ name: 'GOG token valid',
162
+ category: 'api',
163
+ status: 'warn',
164
+ message: 'gog binary not found — GOG health check unavailable',
165
+ timestamp: now(),
166
+ durationMs: Date.now() - start,
167
+ };
168
+ }
169
+ if (message.includes('invalid_grant')) {
170
+ return {
171
+ name: 'GOG token valid',
172
+ category: 'api',
173
+ status: 'fail',
174
+ message: 'GOG token expired — Jessie has no Google access. Run: /usr/local/bin/gog-reauth.sh',
175
+ timestamp: now(),
176
+ durationMs: Date.now() - start,
177
+ };
178
+ }
179
+ return {
180
+ name: 'GOG token valid',
181
+ category: 'api',
182
+ status: 'fail',
183
+ message: `GOG check failed: ${message.slice(0, 200)}`,
184
+ timestamp: now(),
185
+ durationMs: Date.now() - start,
186
+ };
187
+ }
188
+ }
111
189
  /** Run all API connectivity checks. */
112
190
  export async function runApiChecks(telegramToken, ctx) {
113
191
  return [
114
192
  await checkAnthropicApi(ctx),
115
193
  await checkTelegramApi(telegramToken, ctx),
116
194
  await checkEthereumRpc(ctx),
195
+ await checkGogToken(ctx),
117
196
  ];
118
197
  }
119
198
  //# sourceMappingURL=api-connectivity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-connectivity.js","sourceRoot":"","sources":["../../src/checks/api-connectivity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-connectivity.js","sourceRoot":"","sources":["../../src/checks/api-connectivity.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aiassesstech/mighty-mark",
3
- "version": "0.3.42",
3
+ "version": "0.4.1",
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",
@@ -20,6 +20,7 @@
20
20
  "src/watchdog",
21
21
  "src/watchdog/fleet-backup",
22
22
  "src/watchdog/fleet-backup/test",
23
+ "src/scripts",
23
24
  "README.md",
24
25
  "LICENSE",
25
26
  "CHANGELOG.md"
@@ -0,0 +1,91 @@
1
+ #!/bin/bash
2
+ # GOG Re-Authentication Helper
3
+ # Usage: /usr/local/bin/gog-reauth.sh
4
+ #
5
+ # Prerequisites: socat must be installed (apt install -y socat)
6
+ # Tailscale must be running and connected
7
+ #
8
+ # @see SPEC-GOG-TOKEN-RESILIENCE-1.0.md Section 5.1
9
+
10
+ set -e
11
+
12
+ TAILSCALE_IP="100.92.178.114"
13
+ GOG_ACCOUNT="gidanc.defend.good@gmail.com"
14
+ GOG_SERVICES="gmail,calendar,drive,contacts,docs,sheets"
15
+ export GOG_KEYRING_PASSWORD=test123
16
+
17
+ echo "========================================"
18
+ echo " GOG Re-Authentication Helper"
19
+ echo "========================================"
20
+ echo ""
21
+
22
+ # Kill any existing socat forwarding
23
+ pkill -f "socat.*bind=$TAILSCALE_IP" 2>/dev/null || true
24
+
25
+ # Start GOG auth in background
26
+ gog auth login \
27
+ --account="$GOG_ACCOUNT" \
28
+ --services="$GOG_SERVICES" \
29
+ --force-consent &
30
+ GOG_PID=$!
31
+
32
+ # Wait for GOG to start its HTTP server
33
+ sleep 3
34
+
35
+ # Find the port GOG chose
36
+ PORT=$(ss -tlnp | grep "pid=$GOG_PID" | grep -oP ':([0-9]+)' | head -1 | tr -d ':')
37
+
38
+ if [ -z "$PORT" ]; then
39
+ echo "ERROR: Could not detect GOG auth port."
40
+ echo "Check if GOG auth is running and try manually."
41
+ kill $GOG_PID 2>/dev/null
42
+ exit 1
43
+ fi
44
+
45
+ echo "GOG auth server running on port: $PORT"
46
+ echo ""
47
+
48
+ # Start socat to forward Tailscale IP to localhost
49
+ socat TCP-LISTEN:$PORT,bind=$TAILSCALE_IP,fork TCP:127.0.0.1:$PORT &
50
+ SOCAT_PID=$!
51
+
52
+ echo "========================================"
53
+ echo " STEP 1: Open this URL in your browser:"
54
+ echo ""
55
+ echo " http://$TAILSCALE_IP:$PORT"
56
+ echo ""
57
+ echo " STEP 2: Click the account card to re-authorize"
58
+ echo ""
59
+ echo " STEP 3: After Google consent screen, the callback"
60
+ echo " URL will show 127.0.0.1 — change it to:"
61
+ echo " $TAILSCALE_IP"
62
+ echo " and press Enter"
63
+ echo ""
64
+ echo " STEP 4: You should see 'You're connected'"
65
+ echo "========================================"
66
+ echo ""
67
+ echo "Waiting for authentication to complete..."
68
+ echo "Press Ctrl+C when done."
69
+
70
+ # Wait for GOG to finish (|| true prevents set -e from killing the script
71
+ # when GOG exits non-zero after browser callback completes)
72
+ wait $GOG_PID 2>/dev/null || true
73
+
74
+ # Cleanup
75
+ kill $SOCAT_PID 2>/dev/null || true
76
+
77
+ echo ""
78
+ echo "Authentication complete. Testing..."
79
+
80
+ # Smoke test
81
+ export GOG_ACCOUNT="$GOG_ACCOUNT"
82
+ RESULT=$(gog gmail search "newer_than:1d" --max 1 2>&1)
83
+
84
+ if echo "$RESULT" | grep -q "invalid_grant"; then
85
+ echo "FAILED: Token still invalid. Try again."
86
+ exit 1
87
+ else
88
+ echo "SUCCESS: GOG is working. Jessie has Google access."
89
+ echo ""
90
+ echo "$RESULT"
91
+ fi
@@ -287,8 +287,25 @@ if [ -f /etc/cron.d/fleet-backup ]; then
287
287
  echo " Removed: /etc/cron.d/fleet-backup (now orchestrated by Mighty Mark)"
288
288
  fi
289
289
 
290
- # ── Step 7: Initialize state ──
291
- echo "[7/8] Initializing state files..."
290
+ # ── Step 7: Install GOG re-auth script ──
291
+ echo "[7/9] Installing GOG re-auth script..."
292
+
293
+ GOG_REAUTH_SRC="${SOURCE_DIR}/../scripts/gog-reauth.sh"
294
+ GOG_REAUTH_DEST="/usr/local/bin/gog-reauth.sh"
295
+
296
+ if [ "$DRY_RUN" = true ]; then
297
+ echo " [DRY RUN] Would install ${GOG_REAUTH_DEST}"
298
+ elif [ -f "$GOG_REAUTH_SRC" ]; then
299
+ cp "$GOG_REAUTH_SRC" "$GOG_REAUTH_DEST"
300
+ chmod 700 "$GOG_REAUTH_DEST"
301
+ echo " Installed: ${GOG_REAUTH_DEST} (permissions: 700)"
302
+ else
303
+ echo " Skipped — gog-reauth.sh not found in package"
304
+ echo " Expected at: ${GOG_REAUTH_SRC}"
305
+ fi
306
+
307
+ # ── Step 8: Initialize state ──
308
+ echo "[8/9] Initializing state files..."
292
309
 
293
310
  if [ "$DRY_RUN" = true ]; then
294
311
  echo " [DRY RUN] Would initialize state files"
@@ -301,8 +318,8 @@ else
301
318
  fi
302
319
  fi
303
320
 
304
- # ── Step 8: Test Telegram connectivity ──
305
- echo "[8/8] Testing Telegram connectivity..."
321
+ # ── Step 9: Test Telegram connectivity ──
322
+ echo "[9/9] Testing Telegram connectivity..."
306
323
 
307
324
  if [ "$DRY_RUN" = true ]; then
308
325
  echo " [DRY RUN] Would test Telegram API"