@monoes/monomindcli 2.9.20 → 2.9.22
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/helpers/control-start.cjs +7 -1
- package/.claude/skills/mastermind-createorg/SKILL.md +26 -3
- package/dist/src/commands/events.d.ts +9 -0
- package/dist/src/commands/events.d.ts.map +1 -0
- package/dist/src/commands/events.js +89 -0
- package/dist/src/commands/events.js.map +1 -0
- package/dist/src/commands/index.d.ts +1 -1
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +2 -1
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts +21 -0
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +88 -6
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +20 -0
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/orgrt/approvals.d.ts +16 -1
- package/dist/src/orgrt/approvals.d.ts.map +1 -1
- package/dist/src/orgrt/approvals.js +44 -2
- package/dist/src/orgrt/approvals.js.map +1 -1
- package/dist/src/orgrt/copilot-runner.d.ts +14 -0
- package/dist/src/orgrt/copilot-runner.d.ts.map +1 -0
- package/dist/src/orgrt/copilot-runner.js +250 -0
- package/dist/src/orgrt/copilot-runner.js.map +1 -0
- package/dist/src/orgrt/crush-runner.d.ts +24 -0
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -0
- package/dist/src/orgrt/crush-runner.js +251 -0
- package/dist/src/orgrt/crush-runner.js.map +1 -0
- package/dist/src/orgrt/daemon.d.ts +40 -1
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +68 -4
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/grok-runner.d.ts +18 -0
- package/dist/src/orgrt/grok-runner.d.ts.map +1 -0
- package/dist/src/orgrt/grok-runner.js +323 -0
- package/dist/src/orgrt/grok-runner.js.map +1 -0
- package/dist/src/orgrt/pi-rpc-runner.d.ts +68 -0
- package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -0
- package/dist/src/orgrt/pi-rpc-runner.js +400 -0
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -0
- package/dist/src/orgrt/pi-runner.d.ts +16 -0
- package/dist/src/orgrt/pi-runner.d.ts.map +1 -0
- package/dist/src/orgrt/pi-runner.js +264 -0
- package/dist/src/orgrt/pi-runner.js.map +1 -0
- package/dist/src/orgrt/qwen-runner.d.ts +18 -0
- package/dist/src/orgrt/qwen-runner.d.ts.map +1 -0
- package/dist/src/orgrt/qwen-runner.js +267 -0
- package/dist/src/orgrt/qwen-runner.js.map +1 -0
- package/dist/src/orgrt/session.js +1 -1
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/types.d.ts +21 -0
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +9 -2
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/orgrt/usage-proxy.d.ts +32 -0
- package/dist/src/orgrt/usage-proxy.d.ts.map +1 -0
- package/dist/src/orgrt/usage-proxy.js +226 -0
- package/dist/src/orgrt/usage-proxy.js.map +1 -0
- package/dist/src/ui/dashboard.html +63 -0
- package/dist/src/ui/orgs.html +8 -1
- package/dist/src/ui/routes-org.mjs +26 -0
- package/dist/src/utils/resource-governor.d.ts.map +1 -1
- package/dist/src/utils/resource-governor.js +11 -2
- package/dist/src/utils/resource-governor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/src/ui/orgs.html
CHANGED
|
@@ -1406,7 +1406,14 @@ function renderTab(tab) {
|
|
|
1406
1406
|
function renderChart() {
|
|
1407
1407
|
const d = orgDetailData;
|
|
1408
1408
|
const roles = Array.isArray(d.roles) ? d.roles : [];
|
|
1409
|
-
|
|
1409
|
+
// Structural report lines come straight from each role's reports_to (the
|
|
1410
|
+
// authoritative chain also shown in the Roles tab) — declared communication
|
|
1411
|
+
// edges (command/feedback/handoff busses) don't reflect who actually reports
|
|
1412
|
+
// to whom, e.g. a hierarchical topology's queen commanding every worker directly.
|
|
1413
|
+
const reportEdges = roles
|
|
1414
|
+
.filter(r => r.reports_to && r.reports_to !== r.id)
|
|
1415
|
+
.map(r => ({ from: r.id, to: r.reports_to, type: 'report' }));
|
|
1416
|
+
const comms = reportEdges.concat(Array.isArray(d.communication) ? d.communication : []);
|
|
1410
1417
|
const running = !!(allOrgs.find(o => o.name === selectedOrg) || {}).running;
|
|
1411
1418
|
|
|
1412
1419
|
// Meta bar
|
|
@@ -878,6 +878,32 @@ if (req.method === 'GET' && url.match(/^\/api\/org\/[a-z0-9][a-z0-9_-]{0,63}\/ap
|
|
|
878
878
|
return true;
|
|
879
879
|
}
|
|
880
880
|
|
|
881
|
+
// GET /api/org/:name/gates — decision gate log (read-only explorer; resolving stays
|
|
882
|
+
// CLI-only via `org gate-approve`/`gate-reject`, which needs the daemon's
|
|
883
|
+
// x-monomind-cred auth header for live delivery — out of scope for a read-only view)
|
|
884
|
+
if (req.method === 'GET' && url.match(/^\/api\/org\/[a-z0-9][a-z0-9_-]{0,63}\/gates(\?.*)?$/i)) {
|
|
885
|
+
try {
|
|
886
|
+
const orgName = decodeURIComponent(url.split('/')[3].split('?')[0]);
|
|
887
|
+
if (orgName.length > 64 || !/^[a-z0-9][a-z0-9_-]*$/i.test(orgName)) { res.writeHead(400); res.end('Invalid org name'); return true; }
|
|
888
|
+
const _gatesQs = new URL(req.url, 'http://localhost').searchParams;
|
|
889
|
+
const base = path.join(path.resolve(_gatesQs.get('dir') || ctx.projectDir || process.cwd()), '.monomind', 'orgs');
|
|
890
|
+
const readJsonSafe = (f) => { try { return JSON.parse(fs.readFileSync(f, 'utf8')); } catch(_) { return null; } };
|
|
891
|
+
const data = readJsonSafe(path.join(base, orgName, 'gates.json')) || { gates: [] };
|
|
892
|
+
const gates = (data.gates || [])
|
|
893
|
+
.sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0))
|
|
894
|
+
.map(g => ({
|
|
895
|
+
id: g.id, name: g.name, description: g.description, roleId: g.roleId,
|
|
896
|
+
status: g.status || 'pending', createdAt: g.createdAt || null,
|
|
897
|
+
resolvedBy: g.resolvedBy || null, resolvedAt: g.resolvedAt || null,
|
|
898
|
+
resolution: g.resolution || null,
|
|
899
|
+
}));
|
|
900
|
+
const pending = gates.filter(g => g.status === 'pending').length;
|
|
901
|
+
res.writeHead(200, { 'Content-Type': 'application/json', ...(corsOrigin ? { 'Access-Control-Allow-Origin': corsOrigin } : {}) });
|
|
902
|
+
res.end(JSON.stringify({ gates, pending }));
|
|
903
|
+
} catch(_) { res.writeHead(500); res.end('{"gates":[],"pending":0}'); }
|
|
904
|
+
return true;
|
|
905
|
+
}
|
|
906
|
+
|
|
881
907
|
// GET /api/questions?dir=<ctx.projectDir> — list ask_human questions (pending and
|
|
882
908
|
// answered) for every org in one project. Mirrors the existing -approvals.json
|
|
883
909
|
// sidecar convention, but reads this feature's .monomind/orgs/<org>/questions.json
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-governor.d.ts","sourceRoot":"","sources":["../../../src/utils/resource-governor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,eAAe,EAAE,MAAM,CAAC;IACxB,+FAA+F;IAC/F,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;CACxB;AAYD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAExE;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAElD;AAED;;4EAE4E;AAC5E,wBAAgB,oBAAoB,IAAI,MAAM,CAgB7C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"resource-governor.d.ts","sourceRoot":"","sources":["../../../src/utils/resource-governor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,eAAe,EAAE,MAAM,CAAC;IACxB,+FAA+F;IAC/F,eAAe,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;CACxB;AAYD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAExE;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAElD;AAED;;4EAE4E;AAC5E,wBAAgB,oBAAoB,IAAI,MAAM,CAgB7C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAY1C;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,cAAc,IAAI,aAAa,CAuB9C;AAED,sFAAsF;AACtF,wBAAsB,eAAe,CAAC,SAAS,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,CAQhF;AAED;;;mEAGmE;AACnE,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAoB9F"}
|
|
@@ -38,10 +38,16 @@ export function getAvailableMemBytes() {
|
|
|
38
38
|
return freemem();
|
|
39
39
|
}
|
|
40
40
|
export function countSdkProcesses() {
|
|
41
|
+
// pgrep doesn't exist on native Windows — every call would fail (and, since
|
|
42
|
+
// execSync inherits stderr by default, print "'pgrep' is not recognized..."
|
|
43
|
+
// to the console on every lazy role spawn that hits this check). The
|
|
44
|
+
// concurrency cap it feeds just isn't enforceable there; treat as unknown.
|
|
45
|
+
if (platform() === 'win32')
|
|
46
|
+
return 0;
|
|
41
47
|
try {
|
|
42
48
|
// Match only actual SDK agent binaries (have --output-format in argv),
|
|
43
49
|
// not processes that merely reference the SDK package path.
|
|
44
|
-
const out = execSync('pgrep -f "claude-agent-sdk.*--output-format"', { encoding: 'utf8', timeout: 5000 });
|
|
50
|
+
const out = execSync('pgrep -f "claude-agent-sdk.*--output-format"', { encoding: 'utf8', timeout: 5000, stdio: ['ignore', 'pipe', 'ignore'] });
|
|
45
51
|
return out.trim().split('\n').filter(Boolean).length;
|
|
46
52
|
}
|
|
47
53
|
catch {
|
|
@@ -87,8 +93,11 @@ export async function waitForCapacity(timeoutMs = 60_000) {
|
|
|
87
93
|
* @param ownerPid Only kill SDK processes whose parent is this PID.
|
|
88
94
|
* Prevents killing agents from OTHER monomind org processes. */
|
|
89
95
|
export function reapOrphanedSdkProcesses(protectedPids, ownerPid) {
|
|
96
|
+
// ps doesn't exist on native Windows — same rationale as countSdkProcesses above.
|
|
97
|
+
if (platform() === 'win32')
|
|
98
|
+
return 0;
|
|
90
99
|
try {
|
|
91
|
-
const out = execSync('ps -eo pid,ppid,command', { encoding: 'utf8', timeout: 5000 });
|
|
100
|
+
const out = execSync('ps -eo pid,ppid,command', { encoding: 'utf8', timeout: 5000, stdio: ['ignore', 'pipe', 'ignore'] });
|
|
92
101
|
let reaped = 0;
|
|
93
102
|
for (const line of out.split('\n')) {
|
|
94
103
|
if (!line.includes('claude-agent-sdk') || !line.includes('--output-format'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-governor.js","sourceRoot":"","sources":["../../../src/utils/resource-governor.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"resource-governor.js","sourceRoot":"","sources":["../../../src/utils/resource-governor.ts"],"names":[],"mappings":"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"}
|