@aiassesstech/mighty-mark 0.1.0 → 0.1.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.
- package/dist/cli/runner.d.ts +1 -0
- package/dist/cli/runner.d.ts.map +1 -1
- package/dist/cli/runner.js +48 -0
- package/dist/cli/runner.js.map +1 -1
- package/dist/cli/setup-user.d.ts +37 -0
- package/dist/cli/setup-user.d.ts.map +1 -0
- package/dist/cli/setup-user.js +163 -0
- package/dist/cli/setup-user.js.map +1 -0
- package/package.json +1 -1
package/dist/cli/runner.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Usage:
|
|
5
5
|
* mighty-mark setup [--openclaw-home ...] [--model ...] [--hck ...]
|
|
6
|
+
* mighty-mark setup-user --name "..." [--company "..."] [--role "..."]
|
|
6
7
|
* mighty-mark check [--category ...]
|
|
7
8
|
* mighty-mark status
|
|
8
9
|
* mighty-mark install-watchdog [--telegram-token ...] [--telegram-chat-id ...]
|
package/dist/cli/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/cli/runner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/cli/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA8EzC"}
|
package/dist/cli/runner.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Usage:
|
|
5
5
|
* mighty-mark setup [--openclaw-home ...] [--model ...] [--hck ...]
|
|
6
|
+
* mighty-mark setup-user --name "..." [--company "..."] [--role "..."]
|
|
6
7
|
* mighty-mark check [--category ...]
|
|
7
8
|
* mighty-mark status
|
|
8
9
|
* mighty-mark install-watchdog [--telegram-token ...] [--telegram-chat-id ...]
|
|
@@ -11,6 +12,7 @@ import { execSync } from 'node:child_process';
|
|
|
11
12
|
import { fileURLToPath } from 'node:url';
|
|
12
13
|
import path from 'node:path';
|
|
13
14
|
import { cmdSetup } from './setup.js';
|
|
15
|
+
import { cmdSetupUser } from './setup-user.js';
|
|
14
16
|
export async function run() {
|
|
15
17
|
const args = process.argv.slice(2);
|
|
16
18
|
const command = args[0];
|
|
@@ -34,6 +36,10 @@ export async function run() {
|
|
|
34
36
|
console.log(JSON.stringify(status, null, 2));
|
|
35
37
|
break;
|
|
36
38
|
}
|
|
39
|
+
case 'setup-user': {
|
|
40
|
+
await cmdSetupUser(parseSetupUserArgs(args.slice(1)));
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
37
43
|
case 'install-watchdog': {
|
|
38
44
|
const thisFile = fileURLToPath(import.meta.url);
|
|
39
45
|
const packageRoot = path.resolve(path.dirname(thisFile), '..', '..');
|
|
@@ -53,6 +59,7 @@ export async function run() {
|
|
|
53
59
|
console.log('Mighty Mark — System Health Sentinel\n');
|
|
54
60
|
console.log('Usage:');
|
|
55
61
|
console.log(' mighty-mark setup Set up Mark as an OpenClaw agent');
|
|
62
|
+
console.log(' mighty-mark setup-user Create USER.md for all fleet agents');
|
|
56
63
|
console.log(' mighty-mark check Run a full health check');
|
|
57
64
|
console.log(' mighty-mark status Show current status');
|
|
58
65
|
console.log(' mighty-mark install-watchdog Install bash watchdog on VPS');
|
|
@@ -63,6 +70,15 @@ export async function run() {
|
|
|
63
70
|
console.log(' --hck <key> Health Check Key');
|
|
64
71
|
console.log(' --force Overwrite existing agent files');
|
|
65
72
|
console.log('');
|
|
73
|
+
console.log('Options for setup-user:');
|
|
74
|
+
console.log(' --name <name> User\'s display name (required)');
|
|
75
|
+
console.log(' --full-name <name> Full legal name');
|
|
76
|
+
console.log(' --company <company> Company name');
|
|
77
|
+
console.log(' --role <role> User\'s role (default: Founder & President)');
|
|
78
|
+
console.log(' --timezone <tz> Timezone (default: US Central (CT))');
|
|
79
|
+
console.log(' --mission <mission> Mission statement');
|
|
80
|
+
console.log(' --force Overwrite existing USER.md files');
|
|
81
|
+
console.log('');
|
|
66
82
|
console.log('Options for install-watchdog:');
|
|
67
83
|
console.log(' --telegram-token <token> @MightyMarkBot token');
|
|
68
84
|
console.log(' --telegram-chat-id <id> Telegram chat ID for alerts');
|
|
@@ -96,4 +112,36 @@ function parseSetupArgs(args) {
|
|
|
96
112
|
}
|
|
97
113
|
return opts;
|
|
98
114
|
}
|
|
115
|
+
function parseSetupUserArgs(args) {
|
|
116
|
+
const opts = {};
|
|
117
|
+
for (let i = 0; i < args.length; i++) {
|
|
118
|
+
switch (args[i]) {
|
|
119
|
+
case '--openclaw-home':
|
|
120
|
+
opts.openclawHome = args[++i];
|
|
121
|
+
break;
|
|
122
|
+
case '--name':
|
|
123
|
+
opts.name = args[++i];
|
|
124
|
+
break;
|
|
125
|
+
case '--full-name':
|
|
126
|
+
opts.fullName = args[++i];
|
|
127
|
+
break;
|
|
128
|
+
case '--company':
|
|
129
|
+
opts.company = args[++i];
|
|
130
|
+
break;
|
|
131
|
+
case '--role':
|
|
132
|
+
opts.role = args[++i];
|
|
133
|
+
break;
|
|
134
|
+
case '--timezone':
|
|
135
|
+
opts.timezone = args[++i];
|
|
136
|
+
break;
|
|
137
|
+
case '--mission':
|
|
138
|
+
opts.mission = args[++i];
|
|
139
|
+
break;
|
|
140
|
+
case '--force':
|
|
141
|
+
opts.force = true;
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return opts;
|
|
146
|
+
}
|
|
99
147
|
//# sourceMappingURL=runner.js.map
|
package/dist/cli/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/cli/runner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/cli/runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mighty Mark — Fleet-wide USER.md Provisioning
|
|
3
|
+
*
|
|
4
|
+
* Writes USER.md into every agent's agentDir so OpenClaw injects user
|
|
5
|
+
* context into each agent's system prompt. Without USER.md, agents ask
|
|
6
|
+
* "who are you?" on first message — this fixes that fleet-wide.
|
|
7
|
+
*
|
|
8
|
+
* Reads agents.list from openclaw.json to discover all agent directories.
|
|
9
|
+
* Never overwrites an existing USER.md unless --force is passed.
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* mighty-mark setup-user --name "Greg Spehar" --company "GiDanc AI LLC"
|
|
13
|
+
*/
|
|
14
|
+
export interface SetupUserOptions {
|
|
15
|
+
openclawHome?: string;
|
|
16
|
+
name: string;
|
|
17
|
+
fullName?: string;
|
|
18
|
+
company?: string;
|
|
19
|
+
role?: string;
|
|
20
|
+
timezone?: string;
|
|
21
|
+
mission?: string;
|
|
22
|
+
force?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface SetupUserResult {
|
|
25
|
+
created: string[];
|
|
26
|
+
skipped: string[];
|
|
27
|
+
failed: string[];
|
|
28
|
+
}
|
|
29
|
+
export declare function generateUserMd(options: SetupUserOptions): string;
|
|
30
|
+
interface AgentDirEntry {
|
|
31
|
+
agentId: string;
|
|
32
|
+
agentDir: string;
|
|
33
|
+
}
|
|
34
|
+
export declare function discoverAgentDirs(openclawHome: string): AgentDirEntry[];
|
|
35
|
+
export declare function cmdSetupUser(options: SetupUserOptions): Promise<SetupUserResult>;
|
|
36
|
+
export {};
|
|
37
|
+
//# sourceMappingURL=setup-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-user.d.ts","sourceRoot":"","sources":["../../src/cli/setup-user.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AASH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAkBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CA2BhE;AAMD,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,EAAE,CAiDvE;AAMD,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA+EtF"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mighty Mark — Fleet-wide USER.md Provisioning
|
|
3
|
+
*
|
|
4
|
+
* Writes USER.md into every agent's agentDir so OpenClaw injects user
|
|
5
|
+
* context into each agent's system prompt. Without USER.md, agents ask
|
|
6
|
+
* "who are you?" on first message — this fixes that fleet-wide.
|
|
7
|
+
*
|
|
8
|
+
* Reads agents.list from openclaw.json to discover all agent directories.
|
|
9
|
+
* Never overwrites an existing USER.md unless --force is passed.
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* mighty-mark setup-user --name "Greg Spehar" --company "GiDanc AI LLC"
|
|
13
|
+
*/
|
|
14
|
+
import * as fs from 'node:fs';
|
|
15
|
+
import * as path from 'node:path';
|
|
16
|
+
// ================================================================
|
|
17
|
+
// Path Resolution
|
|
18
|
+
// ================================================================
|
|
19
|
+
function resolveOpenClawHome(override) {
|
|
20
|
+
return (override ||
|
|
21
|
+
process.env.OPENCLAW_HOME ||
|
|
22
|
+
path.join(process.env.HOME || '~', '.openclaw'));
|
|
23
|
+
}
|
|
24
|
+
// ================================================================
|
|
25
|
+
// USER.md Generator
|
|
26
|
+
// ================================================================
|
|
27
|
+
export function generateUserMd(options) {
|
|
28
|
+
const lines = ['# User Profile', ''];
|
|
29
|
+
lines.push(`**Name:** ${options.name}`);
|
|
30
|
+
if (options.fullName) {
|
|
31
|
+
lines.push(`**Full Name:** ${options.fullName}`);
|
|
32
|
+
}
|
|
33
|
+
if (options.company) {
|
|
34
|
+
lines.push(`**Company:** ${options.company}`);
|
|
35
|
+
}
|
|
36
|
+
if (options.role) {
|
|
37
|
+
lines.push(`**Role:** ${options.role}`);
|
|
38
|
+
}
|
|
39
|
+
if (options.timezone) {
|
|
40
|
+
lines.push(`**Timezone:** ${options.timezone}`);
|
|
41
|
+
}
|
|
42
|
+
if (options.mission) {
|
|
43
|
+
lines.push(`**Mission:** ${options.mission}`);
|
|
44
|
+
}
|
|
45
|
+
lines.push('');
|
|
46
|
+
return lines.join('\n');
|
|
47
|
+
}
|
|
48
|
+
export function discoverAgentDirs(openclawHome) {
|
|
49
|
+
const configPath = path.join(openclawHome, 'openclaw.json');
|
|
50
|
+
if (!fs.existsSync(configPath)) {
|
|
51
|
+
return [];
|
|
52
|
+
}
|
|
53
|
+
let config;
|
|
54
|
+
try {
|
|
55
|
+
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
const agentsList = config?.agents?.list ?? [];
|
|
61
|
+
const entries = [];
|
|
62
|
+
for (const agent of agentsList) {
|
|
63
|
+
const agentId = agent.id ?? agent.name;
|
|
64
|
+
if (!agentId)
|
|
65
|
+
continue;
|
|
66
|
+
// Priority 1: explicit agentDir
|
|
67
|
+
if (agent.agentDir && fs.existsSync(agent.agentDir)) {
|
|
68
|
+
entries.push({ agentId, agentDir: agent.agentDir });
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
// Priority 2: workspace/agent/ subfolder
|
|
72
|
+
if (agent.workspace) {
|
|
73
|
+
const wsAgent = path.join(agent.workspace, 'agent');
|
|
74
|
+
if (fs.existsSync(wsAgent)) {
|
|
75
|
+
entries.push({ agentId, agentDir: wsAgent });
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
// Priority 3: workspace root (older installs like /root/clawd)
|
|
79
|
+
if (fs.existsSync(agent.workspace)) {
|
|
80
|
+
entries.push({ agentId, agentDir: agent.workspace });
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Priority 4: default location
|
|
85
|
+
const defaultDir = path.join(openclawHome, 'agents', agentId, 'agent');
|
|
86
|
+
if (fs.existsSync(defaultDir)) {
|
|
87
|
+
entries.push({ agentId, agentDir: defaultDir });
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return entries;
|
|
91
|
+
}
|
|
92
|
+
// ================================================================
|
|
93
|
+
// Setup-User Command
|
|
94
|
+
// ================================================================
|
|
95
|
+
export async function cmdSetupUser(options) {
|
|
96
|
+
const openclawHome = resolveOpenClawHome(options.openclawHome);
|
|
97
|
+
const force = options.force ?? false;
|
|
98
|
+
console.log('[mighty-mark] Setting up USER.md across the fleet...');
|
|
99
|
+
console.log(`[mighty-mark] OpenClaw home: ${openclawHome}`);
|
|
100
|
+
// Validate required fields
|
|
101
|
+
if (!options.name || options.name.trim() === '') {
|
|
102
|
+
console.error('[mighty-mark] ERROR: --name is required');
|
|
103
|
+
console.error('[mighty-mark] Usage: mighty-mark setup-user --name "Greg Spehar"');
|
|
104
|
+
process.exitCode = 1;
|
|
105
|
+
return { created: [], skipped: [], failed: [] };
|
|
106
|
+
}
|
|
107
|
+
// Discover all agent directories
|
|
108
|
+
const agents = discoverAgentDirs(openclawHome);
|
|
109
|
+
if (agents.length === 0) {
|
|
110
|
+
console.error('[mighty-mark] ERROR: No agents found in openclaw.json agents.list');
|
|
111
|
+
console.error('[mighty-mark] Run agent setup commands first (e.g., npx @aiassesstech/grillo setup)');
|
|
112
|
+
process.exitCode = 1;
|
|
113
|
+
return { created: [], skipped: [], failed: [] };
|
|
114
|
+
}
|
|
115
|
+
console.log(`[mighty-mark] Found ${agents.length} agent(s): ${agents.map(a => a.agentId).join(', ')}`);
|
|
116
|
+
// Generate USER.md content
|
|
117
|
+
const content = generateUserMd(options);
|
|
118
|
+
const result = { created: [], skipped: [], failed: [] };
|
|
119
|
+
for (const { agentId, agentDir } of agents) {
|
|
120
|
+
const userMdPath = path.join(agentDir, 'USER.md');
|
|
121
|
+
try {
|
|
122
|
+
if (fs.existsSync(userMdPath) && !force) {
|
|
123
|
+
console.log(`[mighty-mark] ${agentId}: USER.md already exists, skipping (use --force to overwrite)`);
|
|
124
|
+
result.skipped.push(agentId);
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
if (fs.existsSync(userMdPath) && force) {
|
|
128
|
+
const backup = `${userMdPath}.backup.${Date.now()}`;
|
|
129
|
+
fs.copyFileSync(userMdPath, backup);
|
|
130
|
+
console.log(`[mighty-mark] ${agentId}: Backed up existing USER.md`);
|
|
131
|
+
}
|
|
132
|
+
fs.writeFileSync(userMdPath, content);
|
|
133
|
+
console.log(`[mighty-mark] ${agentId}: Created USER.md at ${userMdPath}`);
|
|
134
|
+
result.created.push(agentId);
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
138
|
+
console.error(`[mighty-mark] ${agentId}: Failed to write USER.md — ${msg}`);
|
|
139
|
+
result.failed.push(agentId);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// Summary
|
|
143
|
+
console.log('');
|
|
144
|
+
console.log('╔══════════════════════════════════════════════════╗');
|
|
145
|
+
console.log('║ Fleet USER.md setup complete! ║');
|
|
146
|
+
console.log('╚══════════════════════════════════════════════════╝');
|
|
147
|
+
console.log('');
|
|
148
|
+
if (result.created.length > 0) {
|
|
149
|
+
console.log(` Created: ${result.created.join(', ')}`);
|
|
150
|
+
}
|
|
151
|
+
if (result.skipped.length > 0) {
|
|
152
|
+
console.log(` Skipped (already exist): ${result.skipped.join(', ')}`);
|
|
153
|
+
}
|
|
154
|
+
if (result.failed.length > 0) {
|
|
155
|
+
console.log(` Failed: ${result.failed.join(', ')}`);
|
|
156
|
+
}
|
|
157
|
+
console.log('');
|
|
158
|
+
console.log(' Restart OpenClaw to apply:');
|
|
159
|
+
console.log(' systemctl restart openclaw-gateway');
|
|
160
|
+
console.log('');
|
|
161
|
+
return result;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=setup-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-user.js","sourceRoot":"","sources":["../../src/cli/setup-user.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.1.
|
|
3
|
+
"version": "0.1.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",
|