monomind 2.1.0 → 2.1.4
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/README.md +77 -94
- package/package.json +3 -3
- package/packages/@monomind/cli/.claude/commands/mastermind/createorg.md +8 -9
- package/packages/@monomind/cli/.claude/helpers/handlers/capture-handler.cjs +24 -10
- package/packages/@monomind/cli/.claude/helpers/handlers/gates-handler.cjs +2 -2
- package/packages/@monomind/cli/.claude/helpers/handlers/route-handler.cjs +29 -0
- package/packages/@monomind/cli/.claude/helpers/handlers/session-handler.cjs +35 -23
- package/packages/@monomind/cli/.claude/helpers/hook-handler.cjs +21 -0
- package/packages/@monomind/cli/.claude/helpers/utils/monograph.cjs +73 -2
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/createorg.md +91 -701
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/org-settings.md +46 -47
- package/packages/@monomind/cli/.claude/skills/mastermind-skills/runorg.md +12 -1
- package/packages/@monomind/cli/README.md +77 -94
- package/packages/@monomind/cli/dist/src/browser/workflow/store.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/commands/browse.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/commands/doctor-env-checks.js +5 -0
- package/packages/@monomind/cli/dist/src/commands/org.js +46 -29
- package/packages/@monomind/cli/dist/src/commands/platforms.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/init/executor.js +30 -6
- package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.d.ts +8 -8
- package/packages/@monomind/cli/dist/src/mcp-tools/coherence/types.d.ts +31 -31
- package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +5 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +28 -3
- package/packages/@monomind/cli/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts +36 -36
- package/packages/@monomind/cli/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +4 -4
- package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.d.ts +12 -0
- package/packages/@monomind/cli/dist/src/memory/sona-optimizer.d.ts +12 -0
- package/packages/@monomind/cli/dist/src/orgrt/broker.d.ts +3 -1
- package/packages/@monomind/cli/dist/src/orgrt/broker.js +8 -3
- package/packages/@monomind/cli/dist/src/orgrt/bus.d.ts +5 -1
- package/packages/@monomind/cli/dist/src/orgrt/bus.js +5 -1
- package/packages/@monomind/cli/dist/src/orgrt/daemon.d.ts +35 -1
- package/packages/@monomind/cli/dist/src/orgrt/daemon.js +190 -21
- package/packages/@monomind/cli/dist/src/orgrt/forwarder.js +47 -10
- package/packages/@monomind/cli/dist/src/orgrt/inbox.d.ts +11 -0
- package/packages/@monomind/cli/dist/src/orgrt/inbox.js +56 -0
- package/packages/@monomind/cli/dist/src/orgrt/policy.d.ts +5 -1
- package/packages/@monomind/cli/dist/src/orgrt/policy.js +58 -5
- package/packages/@monomind/cli/dist/src/orgrt/server.d.ts +3 -2
- package/packages/@monomind/cli/dist/src/orgrt/server.js +31 -40
- package/packages/@monomind/cli/dist/src/orgrt/session.d.ts +11 -1
- package/packages/@monomind/cli/dist/src/orgrt/session.js +32 -1
- package/packages/@monomind/cli/dist/src/orgrt/test-loop.js +8 -8
- package/packages/@monomind/cli/dist/src/orgrt/types.d.ts +53 -53
- package/packages/@monomind/cli/dist/src/output.d.ts +29 -29
- package/packages/@monomind/cli/dist/src/output.js +10 -2
- package/packages/@monomind/cli/dist/src/pricing/model-pricing.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/types.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/ui/collector.mjs +20 -5
- package/packages/@monomind/cli/dist/src/ui/dashboard.html +465 -500
- package/packages/@monomind/cli/dist/src/ui/orgs-files.js +192 -0
- package/packages/@monomind/cli/dist/src/ui/orgs.html +21 -52
- package/packages/@monomind/cli/dist/src/ui/server.mjs +174 -164
- package/packages/@monomind/cli/package.json +12 -16
- package/packages/@monomind/cli/scripts/publish.sh +6 -0
- package/scripts/generate-agent-avatars.mjs +3 -3
- package/packages/@monomind/cli/dist/src/orgrt/live.html +0 -56
|
@@ -9,6 +9,25 @@ const { _getRecentEdits } = require('./telemetry.cjs');
|
|
|
9
9
|
|
|
10
10
|
const CWD = process.env.CLAUDE_PROJECT_DIR || process.cwd();
|
|
11
11
|
|
|
12
|
+
// @monoes/monograph is "type":"module" with an exports map that has no
|
|
13
|
+
// "require" condition — a bare `require('@monoes/monograph')` (or
|
|
14
|
+
// require() of its package directory) always throws "No exports main
|
|
15
|
+
// defined", regardless of whether the package is actually installed.
|
|
16
|
+
// require()-ing the package's *resolved entry file* directly bypasses the
|
|
17
|
+
// exports-map restriction and works via Node's require(esm) support (this
|
|
18
|
+
// codebase targets Node 20+, which has it). Reads the entry path from the
|
|
19
|
+
// package's own package.json instead of hardcoding "dist/src/index.js" so
|
|
20
|
+
// this survives a future monograph dist-layout change.
|
|
21
|
+
function _resolvePkgEntryFile(pkgDir) {
|
|
22
|
+
try {
|
|
23
|
+
var pkg = JSON.parse(fs.readFileSync(path.join(pkgDir, 'package.json'), 'utf-8'));
|
|
24
|
+
var entry = (pkg.exports && pkg.exports['.'] && (pkg.exports['.'].import || pkg.exports['.'].default)) || pkg.main;
|
|
25
|
+
if (!entry) return null;
|
|
26
|
+
var full = path.join(pkgDir, entry);
|
|
27
|
+
return fs.existsSync(full) ? full : null;
|
|
28
|
+
} catch (e) { return null; }
|
|
29
|
+
}
|
|
30
|
+
|
|
12
31
|
function _requireMonograph() {
|
|
13
32
|
var candidates = [
|
|
14
33
|
path.join(CWD, 'node_modules/.pnpm/node_modules/@monoes/monograph'),
|
|
@@ -16,9 +35,21 @@ function _requireMonograph() {
|
|
|
16
35
|
path.join(CWD, 'node_modules/@monoes/monograph'),
|
|
17
36
|
];
|
|
18
37
|
for (var i = 0; i < candidates.length; i++) {
|
|
19
|
-
|
|
38
|
+
var entry = fs.existsSync(candidates[i]) ? _resolvePkgEntryFile(candidates[i]) : null;
|
|
39
|
+
if (entry) { try { return require(entry); } catch (e) {} }
|
|
40
|
+
}
|
|
41
|
+
// Ancestor-directory search — the equivalent of bare `require('@monoes/
|
|
42
|
+
// monograph')`'s own node_modules walk, needed since that call form can
|
|
43
|
+
// never succeed against this package's exports map.
|
|
44
|
+
var dir = CWD;
|
|
45
|
+
for (;;) {
|
|
46
|
+
var pkgDir = path.join(dir, 'node_modules', '@monoes', 'monograph');
|
|
47
|
+
var entry = fs.existsSync(pkgDir) ? _resolvePkgEntryFile(pkgDir) : null;
|
|
48
|
+
if (entry) { try { return require(entry); } catch (e) {} break; }
|
|
49
|
+
var parent = path.dirname(dir);
|
|
50
|
+
if (parent === dir) break;
|
|
51
|
+
dir = parent;
|
|
20
52
|
}
|
|
21
|
-
try { return require('@monoes/monograph'); } catch(e) {}
|
|
22
53
|
return null;
|
|
23
54
|
}
|
|
24
55
|
|
|
@@ -257,6 +288,44 @@ function _recordGraphTelemetry(event) {
|
|
|
257
288
|
} catch (e) { /* non-fatal */ }
|
|
258
289
|
}
|
|
259
290
|
|
|
291
|
+
// ─── Graph gate ─────────────────────────────────────────────────────────────
|
|
292
|
+
// The pre-search/pre-bash heuristic assist above silently resolves Grep/Bash
|
|
293
|
+
// patterns against the graph and counts that as a "graph win" even when the
|
|
294
|
+
// agent never actually called monograph_query — so the graph-usage % can look
|
|
295
|
+
// healthy while zero real monograph_call events ever fire. This gate forces
|
|
296
|
+
// at least one real monograph_query/monograph_suggest call per session before
|
|
297
|
+
// Grep/Glob/bash grep|find are allowed, by hard-blocking (exitCode 2) the
|
|
298
|
+
// first such call each session. Capped at ONE block per session (never a
|
|
299
|
+
// second) so a subagent with no monograph MCP tool access can't deadlock.
|
|
300
|
+
function _graphGateStateFile() {
|
|
301
|
+
return path.join(CWD, '.monomind', 'graph-gate-state.json');
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
function _graphGateMarkQueried(sessionId) {
|
|
305
|
+
if (!sessionId) return;
|
|
306
|
+
try {
|
|
307
|
+
fs.mkdirSync(path.join(CWD, '.monomind'), { recursive: true });
|
|
308
|
+
fs.writeFileSync(_graphGateStateFile(), JSON.stringify({ sessionId: sessionId, queried: true }));
|
|
309
|
+
} catch (e) { /* non-fatal */ }
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
function _graphGateShouldBlock(sessionId) {
|
|
313
|
+
if (!sessionId || !_isGraphFresh()) return false;
|
|
314
|
+
var f = _graphGateStateFile();
|
|
315
|
+
var d = {};
|
|
316
|
+
try { d = JSON.parse(fs.readFileSync(f, 'utf-8')); } catch (e) {}
|
|
317
|
+
if (typeof d !== 'object' || d === null || d.sessionId !== sessionId) {
|
|
318
|
+
d = { sessionId: sessionId, queried: false, blockedOnce: false };
|
|
319
|
+
}
|
|
320
|
+
if (d.queried || d.blockedOnce) return false;
|
|
321
|
+
d.blockedOnce = true;
|
|
322
|
+
try {
|
|
323
|
+
fs.mkdirSync(path.join(CWD, '.monomind'), { recursive: true });
|
|
324
|
+
fs.writeFileSync(f, JSON.stringify(d));
|
|
325
|
+
} catch (e) { return false; }
|
|
326
|
+
return true;
|
|
327
|
+
}
|
|
328
|
+
|
|
260
329
|
function _injectCompactGraphMap() {
|
|
261
330
|
try {
|
|
262
331
|
var db = _openMonographDb();
|
|
@@ -476,5 +545,7 @@ module.exports = {
|
|
|
476
545
|
_injectCompactGraphMap,
|
|
477
546
|
_findAffectedTests,
|
|
478
547
|
_maybeRebuildMonograph,
|
|
548
|
+
_graphGateShouldBlock,
|
|
549
|
+
_graphGateMarkQueried,
|
|
479
550
|
injectGodNodesContext,
|
|
480
551
|
};
|