monomind 1.15.0 → 1.15.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monomind",
|
|
3
|
-
"version": "1.15.
|
|
3
|
+
"version": "1.15.1",
|
|
4
4
|
"description": "Monomind - Enterprise AI agent orchestration for Claude Code. Deploy 60+ specialized agents in coordinated swarms with self-learning, fault-tolerant consensus, vector memory, and MCP integration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -61,8 +61,7 @@
|
|
|
61
61
|
"dependencies": {
|
|
62
62
|
"semver": "^7.6.0",
|
|
63
63
|
"@monoes/monograph": "^1.2.1",
|
|
64
|
-
"@monoes/monobrowse": "^1.0.0"
|
|
65
|
-
"@monoes/monoplaybook": "^1.0.0"
|
|
64
|
+
"@monoes/monobrowse": "^1.0.0"
|
|
66
65
|
},
|
|
67
66
|
"overrides": {
|
|
68
67
|
"hono": ">=4.12.21",
|
|
@@ -153,4 +152,4 @@
|
|
|
153
152
|
"access": "public",
|
|
154
153
|
"tag": "latest"
|
|
155
154
|
}
|
|
156
|
-
}
|
|
155
|
+
}
|
|
@@ -8164,7 +8164,7 @@ function _odtHandleLiveEvent(ev) {
|
|
|
8164
8164
|
}
|
|
8165
8165
|
} else if (runSess) {
|
|
8166
8166
|
(runSess.events = runSess.events || []).push(ev);
|
|
8167
|
-
if (runSess._runMeta) runSess._runMeta.eventCount = (runSess._runMeta.eventCount || 0) + 1;
|
|
8167
|
+
if (runSess._runMeta) { runSess._runMeta.eventCount = (runSess._runMeta.eventCount || 0) + 1; if (runSess._runMeta.eventCount % 5 === 0) _odtPopulateChatSel(); }
|
|
8168
8168
|
if (ev.type === 'run:cycle:complete' || ev.type === 'org:checkpoint') { if (runSess._runMeta) runSess._runMeta.cycleCount = (runSess._runMeta.cycleCount || 0) + 1; _odtPopulateChatSel(); }
|
|
8169
8169
|
// Backfill prompt from first boss directive when run:start had no goal field
|
|
8170
8170
|
if (!runSess.prompt && ev.type === 'org:comms' && (ev.from === 'boss' || ev.role === 'boss') && ev.msg) {
|
|
@@ -5043,6 +5043,22 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
|
|
|
5043
5043
|
}
|
|
5044
5044
|
}
|
|
5045
5045
|
runs.sort((a, b) => (b.startedAt || 0) - (a.startedAt || 0));
|
|
5046
|
+
// Threads fallback: if no run files found, synthesize a run from the org threads file
|
|
5047
|
+
// so orgs whose boss never emitted runId-tagged events still show in the chat dropdown.
|
|
5048
|
+
if (runs.length === 0) {
|
|
5049
|
+
for (const _rpd of _rProjDirs) {
|
|
5050
|
+
const _tf = path.join(_rpd, '.monomind', 'orgs', `${_rOrgName}-threads.jsonl`);
|
|
5051
|
+
if (!fs.existsSync(_tf)) continue;
|
|
5052
|
+
const _tLines = fs.readFileSync(_tf, 'utf8').split('\n').filter(Boolean);
|
|
5053
|
+
if (!_tLines.length) continue;
|
|
5054
|
+
const _tEvs = _tLines.map(l => { try { return JSON.parse(l); } catch { return null; } }).filter(Boolean);
|
|
5055
|
+
if (!_tEvs.length) continue;
|
|
5056
|
+
const _firstTs = _tEvs[0].ts ? (typeof _tEvs[0].ts === 'number' ? _tEvs[0].ts : new Date(_tEvs[0].ts).getTime()) : Date.now();
|
|
5057
|
+
const _lastTs = _tEvs[_tEvs.length-1].ts ? (typeof _tEvs[_tEvs.length-1].ts === 'number' ? _tEvs[_tEvs.length-1].ts : new Date(_tEvs[_tEvs.length-1].ts).getTime()) : _firstTs;
|
|
5058
|
+
runs.push({ id: `threads-${_rOrgName}`, orgName: _rOrgName, goal: `${_rOrgName} threads`, status: 'complete', startedAt: _firstTs, endedAt: _lastTs, eventCount: _tEvs.length, _threadsFile: _tf });
|
|
5059
|
+
break;
|
|
5060
|
+
}
|
|
5061
|
+
}
|
|
5046
5062
|
res.writeHead(200, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Cache-Control': 'no-cache' });
|
|
5047
5063
|
res.end(JSON.stringify(runs));
|
|
5048
5064
|
} catch (_) { res.writeHead(500); res.end('[]'); }
|
|
@@ -5060,6 +5076,21 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
|
|
|
5060
5076
|
_rvRunId.length > 80 || !/^[a-z0-9][a-z0-9_-]*$/i.test(_rvRunId)) { res.writeHead(400); res.end('{"error":"Invalid org or run id"}'); return; }
|
|
5061
5077
|
const _rvExplicitDir = _rvQs.get('dir');
|
|
5062
5078
|
const _rvServerRoot = path.resolve(_rvExplicitDir || projectDir || process.cwd());
|
|
5079
|
+
// Threads fallback: threads-${orgName} is a synthetic runId served from threads file
|
|
5080
|
+
if (_rvRunId === `threads-${_rvOrgName}`) {
|
|
5081
|
+
const _rvProjDirsT = new Set([_rvServerRoot]);
|
|
5082
|
+
if (!_rvExplicitDir) { try { JSON.parse(fs.readFileSync(path.join(_rvServerRoot, 'data', 'known-projects.json'), 'utf8')).forEach(p => _rvProjDirsT.add(p)); } catch(_) {} }
|
|
5083
|
+
for (const _rvpd of _rvProjDirsT) {
|
|
5084
|
+
const _tf = path.join(_rvpd, '.monomind', 'orgs', `${_rvOrgName}-threads.jsonl`);
|
|
5085
|
+
if (!fs.existsSync(_tf)) continue;
|
|
5086
|
+
const _tLines = fs.readFileSync(_tf, 'utf8').split('\n').filter(Boolean);
|
|
5087
|
+
const _tEvs = _tLines.map(l => { try { const e = JSON.parse(l); return { type: 'org:comms', from: e.role || e.from || 'agent', to: e.to || 'all', msg: e.message || e.msg || '', ts: e.ts ? (typeof e.ts === 'number' ? e.ts : new Date(e.ts).getTime()) : Date.now(), org: _rvOrgName, runId: _rvRunId }; } catch { return null; } }).filter(Boolean);
|
|
5088
|
+
res.writeHead(200, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' });
|
|
5089
|
+
res.end(JSON.stringify(_tEvs));
|
|
5090
|
+
return;
|
|
5091
|
+
}
|
|
5092
|
+
res.writeHead(404); res.end('{"error":"threads file not found"}'); return;
|
|
5093
|
+
}
|
|
5063
5094
|
// Search across known projects
|
|
5064
5095
|
const _rvProjDirs = new Set([_rvServerRoot]);
|
|
5065
5096
|
if (!_rvExplicitDir) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@monoes/monomindcli",
|
|
3
|
-
"version": "1.15.
|
|
3
|
+
"version": "1.15.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Monomind CLI - Enterprise AI agent orchestration with 60+ specialized agents, swarm coordination, MCP server, self-learning hooks, and vector memory for Claude Code",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -89,8 +89,7 @@
|
|
|
89
89
|
"ws": "^8.21.0",
|
|
90
90
|
"@noble/ed25519": "^2.1.0",
|
|
91
91
|
"@monoes/monograph": "^1.2.1",
|
|
92
|
-
"@monoes/monobrowse": "^1.0.1"
|
|
93
|
-
"@monoes/monoplaybook": "^1.0.1"
|
|
92
|
+
"@monoes/monobrowse": "^1.0.1"
|
|
94
93
|
},
|
|
95
94
|
"optionalDependencies": {
|
|
96
95
|
"sql.js": "^1.14.1",
|
|
@@ -107,4 +106,4 @@
|
|
|
107
106
|
"access": "public",
|
|
108
107
|
"tag": "latest"
|
|
109
108
|
}
|
|
110
|
-
}
|
|
109
|
+
}
|