@monoes/monomindcli 1.10.46 → 1.10.54
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/.claude/commands/monomind/do.md +52 -0
- package/.claude/commands/monomind/improve.md +2 -0
- package/.claude/helpers/handlers/route-handler.cjs +61 -11
- package/.claude/helpers/skill-registry.json +99 -51
- package/.claude/skills/agent-browser-testing/SKILL.md +522 -152
- package/.claude/skills/github-issue-triage/SKILL.md +354 -0
- package/.claude/skills/github-repo-recap/SKILL.md +207 -0
- package/.claude/skills/mastermind/_delegation.md +83 -0
- package/.claude/skills/mastermind/_protocol.md +14 -0
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +18 -19
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.js +3 -3
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/ui/dashboard-v2.html +782 -42
- package/dist/src/ui/dashboard.html +1 -0
- package/dist/src/ui/data/agent-avatars.html +763 -0
- package/dist/src/ui/data/agent-avatars.json +966 -0
- package/dist/src/ui/data/avatars/account-strategist.svg +58 -0
- package/dist/src/ui/data/avatars/accounts-payable.svg +54 -0
- package/dist/src/ui/data/avatars/adaptive-coordinator.svg +55 -0
- package/dist/src/ui/data/avatars/adaptive-coordinator2.svg +54 -0
- package/dist/src/ui/data/avatars/ai-citation.svg +57 -0
- package/dist/src/ui/data/avatars/ai-engineer.svg +61 -0
- package/dist/src/ui/data/avatars/analytics-reporter.svg +53 -0
- package/dist/src/ui/data/avatars/api-tester.svg +53 -0
- package/dist/src/ui/data/avatars/architecture.svg +54 -0
- package/dist/src/ui/data/avatars/automation-governance.svg +55 -0
- package/dist/src/ui/data/avatars/backend-dev.svg +53 -0
- package/dist/src/ui/data/avatars/benchmarker.svg +54 -0
- package/dist/src/ui/data/avatars/blockchain-auditor.svg +53 -0
- package/dist/src/ui/data/avatars/byzantine-coord.svg +57 -0
- package/dist/src/ui/data/avatars/case-analyst.svg +57 -0
- package/dist/src/ui/data/avatars/cicd-engineer.svg +55 -0
- package/dist/src/ui/data/avatars/cloud-architect.svg +54 -0
- package/dist/src/ui/data/avatars/code-review-swarm.svg +57 -0
- package/dist/src/ui/data/avatars/coder-v119.svg +57 -0
- package/dist/src/ui/data/avatars/coder.svg +58 -0
- package/dist/src/ui/data/avatars/collective-coord.svg +54 -0
- package/dist/src/ui/data/avatars/compliance-auditor.svg +58 -0
- package/dist/src/ui/data/avatars/consensus-coordinator.svg +54 -0
- package/dist/src/ui/data/avatars/content-creator.svg +54 -0
- package/dist/src/ui/data/avatars/crdt-synchronizer.svg +53 -0
- package/dist/src/ui/data/avatars/cro-specialist.svg +58 -0
- package/dist/src/ui/data/avatars/data-consolidator.svg +54 -0
- package/dist/src/ui/data/avatars/data-engineer.svg +53 -0
- package/dist/src/ui/data/avatars/database-optimizer.svg +61 -0
- package/dist/src/ui/data/avatars/deal-strategist.svg +54 -0
- package/dist/src/ui/data/avatars/defender.svg +53 -0
- package/dist/src/ui/data/avatars/devops-automator.svg +56 -0
- package/dist/src/ui/data/avatars/discovery-coach.svg +54 -0
- package/dist/src/ui/data/avatars/email-marketing.svg +57 -0
- package/dist/src/ui/data/avatars/embedded-firmware.svg +61 -0
- package/dist/src/ui/data/avatars/evidence-collector.svg +57 -0
- package/dist/src/ui/data/avatars/experiment-tracker.svg +53 -0
- package/dist/src/ui/data/avatars/feedback-synthesizer.svg +54 -0
- package/dist/src/ui/data/avatars/finance-tracker.svg +54 -0
- package/dist/src/ui/data/avatars/frontend-developer.svg +54 -0
- package/dist/src/ui/data/avatars/game-audio-engineer.svg +59 -0
- package/dist/src/ui/data/avatars/game-designer.svg +54 -0
- package/dist/src/ui/data/avatars/gossip-coordinator.svg +54 -0
- package/dist/src/ui/data/avatars/hierarchical-coord.svg +54 -0
- package/dist/src/ui/data/avatars/incident-commander.svg +57 -0
- package/dist/src/ui/data/avatars/infrastructure.svg +54 -0
- package/dist/src/ui/data/avatars/input-validator.svg +53 -0
- package/dist/src/ui/data/avatars/ios-developer.svg +54 -0
- package/dist/src/ui/data/avatars/issue-tracker.svg +53 -0
- package/dist/src/ui/data/avatars/judge.svg +55 -0
- package/dist/src/ui/data/avatars/launch-strategist.svg +54 -0
- package/dist/src/ui/data/avatars/legal-compliance.svg +53 -0
- package/dist/src/ui/data/avatars/level-designer.svg +53 -0
- package/dist/src/ui/data/avatars/load-balancer.svg +57 -0
- package/dist/src/ui/data/avatars/mcp-builder.svg +53 -0
- package/dist/src/ui/data/avatars/memory-coordinator.svg +55 -0
- package/dist/src/ui/data/avatars/mesh-coordinator.svg +55 -0
- package/dist/src/ui/data/avatars/ml-developer.svg +58 -0
- package/dist/src/ui/data/avatars/mobile-app-builder.svg +53 -0
- package/dist/src/ui/data/avatars/mobile-dev.svg +54 -0
- package/dist/src/ui/data/avatars/model-qa.svg +58 -0
- package/dist/src/ui/data/avatars/narrative-designer.svg +58 -0
- package/dist/src/ui/data/avatars/outbound-strategist.svg +55 -0
- package/dist/src/ui/data/avatars/path-validator.svg +54 -0
- package/dist/src/ui/data/avatars/payment-agent.svg +53 -0
- package/dist/src/ui/data/avatars/perf-analyzer.svg +58 -0
- package/dist/src/ui/data/avatars/pipeline-analyst.svg +54 -0
- package/dist/src/ui/data/avatars/planner.svg +55 -0
- package/dist/src/ui/data/avatars/pr-manager.svg +54 -0
- package/dist/src/ui/data/avatars/pricing-strategist.svg +54 -0
- package/dist/src/ui/data/avatars/product-manager.svg +54 -0
- package/dist/src/ui/data/avatars/production-validator.svg +54 -0
- package/dist/src/ui/data/avatars/project-shepherd.svg +54 -0
- package/dist/src/ui/data/avatars/proposal-strategist.svg +54 -0
- package/dist/src/ui/data/avatars/prosecutor.svg +57 -0
- package/dist/src/ui/data/avatars/pseudocode.svg +53 -0
- package/dist/src/ui/data/avatars/queen-coordinator.svg +55 -0
- package/dist/src/ui/data/avatars/quorum-manager.svg +53 -0
- package/dist/src/ui/data/avatars/raft-manager.svg +53 -0
- package/dist/src/ui/data/avatars/reality-checker.svg +58 -0
- package/dist/src/ui/data/avatars/recruitment.svg +58 -0
- package/dist/src/ui/data/avatars/refinement.svg +53 -0
- package/dist/src/ui/data/avatars/release-manager.svg +54 -0
- package/dist/src/ui/data/avatars/repo-architect.svg +54 -0
- package/dist/src/ui/data/avatars/researcher.svg +58 -0
- package/dist/src/ui/data/avatars/resource-allocator.svg +53 -0
- package/dist/src/ui/data/avatars/reviewer.svg +53 -0
- package/dist/src/ui/data/avatars/safe-executor.svg +53 -0
- package/dist/src/ui/data/avatars/sales-coach.svg +53 -0
- package/dist/src/ui/data/avatars/sales-engineer.svg +58 -0
- package/dist/src/ui/data/avatars/scout-explorer.svg +58 -0
- package/dist/src/ui/data/avatars/security-architect.svg +54 -0
- package/dist/src/ui/data/avatars/security-auditor.svg +55 -0
- package/dist/src/ui/data/avatars/senior-developer.svg +58 -0
- package/dist/src/ui/data/avatars/senior-pm.svg +58 -0
- package/dist/src/ui/data/avatars/seo-specialist.svg +57 -0
- package/dist/src/ui/data/avatars/social-media.svg +54 -0
- package/dist/src/ui/data/avatars/solidity-engineer.svg +58 -0
- package/dist/src/ui/data/avatars/sparc-coder.svg +58 -0
- package/dist/src/ui/data/avatars/sparc-coord.svg +56 -0
- package/dist/src/ui/data/avatars/specification.svg +57 -0
- package/dist/src/ui/data/avatars/sprint-prioritizer.svg +53 -0
- package/dist/src/ui/data/avatars/sre.svg +54 -0
- package/dist/src/ui/data/avatars/studio-operations.svg +53 -0
- package/dist/src/ui/data/avatars/studio-producer.svg +55 -0
- package/dist/src/ui/data/avatars/support-responder.svg +56 -0
- package/dist/src/ui/data/avatars/system-architect.svg +54 -0
- package/dist/src/ui/data/avatars/task-orchestrator.svg +56 -0
- package/dist/src/ui/data/avatars/technical-artist.svg +53 -0
- package/dist/src/ui/data/avatars/technical-writer.svg +59 -0
- package/dist/src/ui/data/avatars/tester.svg +53 -0
- package/dist/src/ui/data/avatars/threat-detection.svg +61 -0
- package/dist/src/ui/data/avatars/trend-researcher.svg +54 -0
- package/dist/src/ui/data/avatars/trial-director.svg +55 -0
- package/dist/src/ui/data/avatars/unity-architect.svg +54 -0
- package/dist/src/ui/data/avatars/visionos-engineer.svg +57 -0
- package/dist/src/ui/data/avatars/worker-specialist.svg +55 -0
- package/dist/src/ui/data/avatars/workflow-architect.svg +57 -0
- package/dist/src/ui/data/avatars/workflow-automation.svg +54 -0
- package/dist/src/ui/data/avatars/zk-steward.svg +54 -0
- package/dist/src/ui/data/known-projects.json +1 -1
- package/dist/src/ui/data/mastermind-events.jsonl +28 -0
- package/dist/src/ui/orgs.html +1171 -0
- package/dist/src/ui/server.mjs +25 -8
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/ui/server.mjs
CHANGED
|
@@ -2590,14 +2590,15 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
|
|
|
2590
2590
|
// GET /api/orgs — list all saved org configs
|
|
2591
2591
|
if (req.method === 'GET' && url === '/api/orgs') {
|
|
2592
2592
|
try {
|
|
2593
|
-
const
|
|
2593
|
+
const _orgsQs = new URL(req.url, 'http://localhost').searchParams;
|
|
2594
|
+
const orgsDir = path.join(path.resolve(_orgsQs.get('dir') || projectDir || process.cwd()), '.monomind', 'orgs');
|
|
2594
2595
|
let orgs = [];
|
|
2595
2596
|
if (fs.existsSync(orgsDir)) {
|
|
2596
2597
|
const files = fs.readdirSync(orgsDir).filter(f => f.endsWith('.json'));
|
|
2597
2598
|
// Read events file once, outside the per-org loop
|
|
2598
2599
|
let recentLines = [];
|
|
2599
2600
|
try {
|
|
2600
|
-
const evFile = path.join(projectDir || process.cwd(), 'data', 'mastermind-events.jsonl');
|
|
2601
|
+
const evFile = path.join(path.resolve(_orgsQs.get('dir') || projectDir || process.cwd()), 'data', 'mastermind-events.jsonl');
|
|
2601
2602
|
if (fs.existsSync(evFile)) {
|
|
2602
2603
|
// Read only the last 64 KB to bound cost on large files
|
|
2603
2604
|
const stat = fs.statSync(evFile);
|
|
@@ -2651,7 +2652,8 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
|
|
|
2651
2652
|
try {
|
|
2652
2653
|
const orgName = decodeURIComponent(url.slice('/api/org/'.length));
|
|
2653
2654
|
if (orgName.length > 64 || !/^[a-z0-9][a-z0-9_-]*$/i.test(orgName)) { res.writeHead(400); res.end('Invalid org name'); return; }
|
|
2654
|
-
const
|
|
2655
|
+
const _orgQs = new URL(req.url, 'http://localhost').searchParams;
|
|
2656
|
+
const d = path.resolve(_orgQs.get('dir') || projectDir || process.cwd());
|
|
2655
2657
|
const orgsDir = path.join(d, '.monomind', 'orgs');
|
|
2656
2658
|
|
|
2657
2659
|
const readJsonSafe = (f) => { try { return JSON.parse(fs.readFileSync(f, 'utf8')); } catch(_) { return null; } };
|
|
@@ -2684,14 +2686,14 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
|
|
|
2684
2686
|
const parts = url.split('/');
|
|
2685
2687
|
const orgName = decodeURIComponent(parts[3]);
|
|
2686
2688
|
if (orgName.length > 64 || !/^[a-z0-9][a-z0-9_-]*$/i.test(orgName)) { res.writeHead(400); res.end('[]'); return; }
|
|
2687
|
-
const
|
|
2689
|
+
const _actQs = new URL(req.url, 'http://localhost').searchParams;
|
|
2690
|
+
const d = path.resolve(_actQs.get('dir') || projectDir || process.cwd());
|
|
2688
2691
|
const eventsFile = path.join(d, 'data', 'mastermind-events.jsonl');
|
|
2689
2692
|
let events = [];
|
|
2690
2693
|
if (fs.existsSync(eventsFile)) {
|
|
2691
2694
|
const lines = fs.readFileSync(eventsFile, 'utf8').split('\n').filter(Boolean);
|
|
2692
|
-
events = lines.slice(-
|
|
2693
|
-
.filter(e => e.org === orgName || e.
|
|
2694
|
-
.filter(e => e.org === orgName)
|
|
2695
|
+
events = lines.slice(-500).map(l => { try { return JSON.parse(l); } catch { return null; } }).filter(Boolean)
|
|
2696
|
+
.filter(e => e.org === orgName || !e.org)
|
|
2695
2697
|
.reverse().slice(0, 100);
|
|
2696
2698
|
}
|
|
2697
2699
|
res.writeHead(200, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' });
|
|
@@ -2922,7 +2924,8 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
|
|
|
2922
2924
|
try {
|
|
2923
2925
|
const orgName = decodeURIComponent(url.split('/')[3]);
|
|
2924
2926
|
if (orgName.length > 64 || !/^[a-z0-9][a-z0-9_-]*$/i.test(orgName)) { res.writeHead(400); res.end('Invalid org name'); return; }
|
|
2925
|
-
const
|
|
2927
|
+
const _healthQs = new URL(req.url, 'http://localhost').searchParams;
|
|
2928
|
+
const base = path.join(path.resolve(_healthQs.get('dir') || projectDir || process.cwd()), '.monomind', 'orgs');
|
|
2926
2929
|
|
|
2927
2930
|
let agentsRunning = 0, agentsIdle = 0, openIssues = 0, inProgressIssues = 0;
|
|
2928
2931
|
let budgetUsedTokens = 0, budgetMaxTokens = 0;
|
|
@@ -3506,6 +3509,20 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
|
|
|
3506
3509
|
return;
|
|
3507
3510
|
}
|
|
3508
3511
|
|
|
3512
|
+
// ----------------------------------------------------------- GET /orgs
|
|
3513
|
+
if (req.method === 'GET' && url === '/orgs') {
|
|
3514
|
+
try {
|
|
3515
|
+
const htmlPath = path.join(__dirname, 'orgs.html');
|
|
3516
|
+
const html = fs.readFileSync(htmlPath, 'utf8');
|
|
3517
|
+
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
|
|
3518
|
+
res.end(html);
|
|
3519
|
+
} catch (err) {
|
|
3520
|
+
res.writeHead(404);
|
|
3521
|
+
res.end(`orgs.html not found: ${err.message}`);
|
|
3522
|
+
}
|
|
3523
|
+
return;
|
|
3524
|
+
}
|
|
3525
|
+
|
|
3509
3526
|
// GET /api/mastermind/loops — list all active loop state files
|
|
3510
3527
|
if (req.method === 'GET' && url === '/api/mastermind/loops') {
|
|
3511
3528
|
try {
|