monomind 1.16.10 → 1.17.0

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.
Files changed (63) hide show
  1. package/.claude/agents/github/code-review-swarm.md +19 -19
  2. package/.claude/agents/github/github-modes.md +4 -4
  3. package/.claude/agents/github/multi-repo-swarm.md +24 -24
  4. package/.claude/agents/github/project-board-sync.md +28 -28
  5. package/.claude/agents/github/swarm-issue.md +26 -26
  6. package/.claude/agents/github/swarm-pr.md +18 -18
  7. package/.claude/agents/github/workflow-automation.md +27 -27
  8. package/.claude/agents/reengineer-squad/git-manager.md +2 -2
  9. package/.claude/commands/mastermind/master.md +9 -3
  10. package/.claude/commands/mastermind/references/antigravity-tools.md +60 -0
  11. package/.claude/commands/mastermind/references/claude-code-tools.md +50 -0
  12. package/.claude/commands/mastermind/references/codex-tools.md +64 -0
  13. package/.claude/commands/mastermind/references/copilot-tools.md +49 -0
  14. package/.claude/commands/mastermind/references/gemini-tools.md +63 -0
  15. package/.claude/commands/mastermind/references/pi-tools.md +28 -0
  16. package/.claude/helpers/mastermind-activate.cjs +53 -0
  17. package/.claude/settings.json +4 -0
  18. package/.claude/skills/mastermind/runorg.md +14 -0
  19. package/.claude/skills/mastermind/techport.md +5 -5
  20. package/README.md +1 -1
  21. package/package.json +5 -4
  22. package/packages/@monomind/cli/.claude/agents/github/code-review-swarm.md +19 -19
  23. package/packages/@monomind/cli/.claude/agents/github/github-modes.md +4 -4
  24. package/packages/@monomind/cli/.claude/agents/github/multi-repo-swarm.md +24 -24
  25. package/packages/@monomind/cli/.claude/agents/github/project-board-sync.md +28 -28
  26. package/packages/@monomind/cli/.claude/agents/github/swarm-issue.md +26 -26
  27. package/packages/@monomind/cli/.claude/agents/github/swarm-pr.md +18 -18
  28. package/packages/@monomind/cli/.claude/agents/github/workflow-automation.md +27 -27
  29. package/packages/@monomind/cli/.claude/agents/reengineer-squad/git-manager.md +2 -2
  30. package/packages/@monomind/cli/.claude/commands/mastermind/master.md +9 -3
  31. package/packages/@monomind/cli/.claude/commands/mastermind/references/antigravity-tools.md +60 -0
  32. package/packages/@monomind/cli/.claude/commands/mastermind/references/claude-code-tools.md +50 -0
  33. package/packages/@monomind/cli/.claude/commands/mastermind/references/codex-tools.md +64 -0
  34. package/packages/@monomind/cli/.claude/commands/mastermind/references/copilot-tools.md +49 -0
  35. package/packages/@monomind/cli/.claude/commands/mastermind/references/gemini-tools.md +63 -0
  36. package/packages/@monomind/cli/.claude/commands/mastermind/references/pi-tools.md +28 -0
  37. package/packages/@monomind/cli/.claude/helpers/mastermind-activate.cjs +53 -0
  38. package/packages/@monomind/cli/.claude/skills/mastermind/runorg.md +14 -0
  39. package/packages/@monomind/cli/.claude/skills/mastermind/techport.md +5 -5
  40. package/packages/@monomind/cli/README.md +1 -1
  41. package/packages/@monomind/cli/dist/src/browser/dashboard/ui.html +125 -37
  42. package/packages/@monomind/cli/dist/src/commands/index.js +0 -2
  43. package/packages/@monomind/cli/dist/src/init/executor.js +0 -24
  44. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +0 -45
  45. package/packages/@monomind/cli/dist/src/init/types.d.ts +0 -2
  46. package/packages/@monomind/cli/dist/src/init/types.js +0 -2
  47. package/packages/@monomind/cli/dist/src/ui/dashboard.html +82 -75
  48. package/packages/@monomind/cli/dist/src/ui/server.mjs +41 -4
  49. package/packages/@monomind/cli/package.json +1 -1
  50. package/packages/@monomind/guidance/README.md +0 -1
  51. package/packages/@monomind/guidance/package.json +2 -14
  52. package/scripts/verify-appliance.sh +16 -20
  53. package/.claude-plugin/README.md +0 -704
  54. package/.claude-plugin/docs/INSTALLATION.md +0 -258
  55. package/.claude-plugin/docs/PLUGIN_SUMMARY.md +0 -358
  56. package/.claude-plugin/docs/QUICKSTART.md +0 -357
  57. package/.claude-plugin/docs/STRUCTURE.md +0 -122
  58. package/.claude-plugin/hooks/hooks.json +0 -74
  59. package/.claude-plugin/marketplace.json +0 -98
  60. package/.claude-plugin/plugin.json +0 -70
  61. package/.claude-plugin/scripts/install.sh +0 -234
  62. package/.claude-plugin/scripts/uninstall.sh +0 -36
  63. package/.claude-plugin/scripts/verify.sh +0 -102
@@ -1574,14 +1574,14 @@ select.pb-cfg-inp { padding: 4px 7px; cursor: pointer; }
1574
1574
  <div class="nav-item" data-view="monograph">
1575
1575
  <span class="ico">⬡</span><span class="lbl">Monograph</span>
1576
1576
  </div>
1577
- <div class="nav-item" data-view="playbooks">
1578
- <span class="ico">⚡</span><span class="lbl">Playbooks</span>
1579
- <span class="bdg" id="bdg-playbooks">—</span>
1580
- </div>
1581
1577
  </div>
1582
1578
  </div>
1583
1579
  <div class="nav-no-proj" id="nav-no-proj-hint">Select a project above</div>
1584
1580
  <div class="nav-sect" style="margin-top:auto;padding-top:8px;">
1581
+ <div class="nav-item" data-view="monoagent">
1582
+ <span class="ico">🤖</span><span class="lbl">MonoAgent</span>
1583
+ <span class="bdg" id="bdg-monoagent">—</span>
1584
+ </div>
1585
1585
  <div class="nav-item" data-view="global">
1586
1586
  <span class="ico">⊕</span><span class="lbl">Global Feed</span>
1587
1587
  </div>
@@ -2250,79 +2250,26 @@ select.pb-cfg-inp { padding: 4px 7px; cursor: pointer; }
2250
2250
  </div>
2251
2251
  </div>
2252
2252
 
2253
- <!-- PLAYBOOKS -->
2254
- <div class="view" id="view-playbooks">
2253
+ <!-- MONOAGENT -->
2254
+ <div class="view" id="view-monoagent">
2255
2255
  <div class="vscroll">
2256
- <div class="pg-title">Playbooks</div>
2257
- <div class="pg-sub">Browser automation connected systems &amp; run history</div>
2258
- <!-- Tab bar -->
2256
+ <div class="pg-title">MonoAgent</div>
2257
+ <div class="pg-sub">Social media automation workflows &amp; run history</div>
2259
2258
  <div class="mg-tab-bar" style="margin-top:14px">
2260
- <button class="odt-btn active" data-wftab="systems" onclick="wfSwitchTab('systems')">Systems</button>
2261
- <button class="odt-btn" data-wftab="library" onclick="wfSwitchTab('library')">Library</button>
2262
- <button class="odt-btn" data-wftab="builder" onclick="wfSwitchTab('builder')">Builder</button>
2263
- <button class="odt-btn" data-wftab="runs" onclick="wfSwitchTab('runs')">Runs</button>
2259
+ <button class="odt-btn active" data-matab="workflows" onclick="maSwitchTab('workflows')">Workflows</button>
2260
+ <button class="odt-btn" data-matab="history" onclick="maSwitchTab('history')">Action History</button>
2264
2261
  </div>
2265
-
2266
- <!-- TAB: SYSTEMS -->
2267
- <div class="wf-pane active" id="wf-tab-systems">
2262
+ <div class="wf-pane active" id="ma-tab-workflows">
2268
2263
  <div style="display:flex;align-items:center;gap:8px;margin-bottom:16px;margin-top:4px">
2269
- <button class="btn" onclick="loadPlatformSessions()">↺ Refresh</button>
2264
+ <button class="btn" onclick="loadMonoagentData()">↺ Refresh</button>
2270
2265
  </div>
2271
- <div id="wf-systems-grid"></div>
2266
+ <div id="ma-workflows-list"><div class="loading-txt">Loading…</div></div>
2272
2267
  </div>
2273
-
2274
- <!-- TAB: LIBRARY -->
2275
- <div class="wf-pane" id="wf-tab-library">
2268
+ <div class="wf-pane" id="ma-tab-history">
2276
2269
  <div style="display:flex;align-items:center;gap:8px;margin-bottom:16px;margin-top:4px">
2277
- <button class="btn" onclick="loadWorkflowDefs()">↺ Refresh</button>
2278
- <span style="font-size:11px;color:var(--text-lo)">Saved in .monomind/playbooks/</span>
2279
- </div>
2280
- <div id="wf-defs-list"><div class="loading-txt">Loading…</div></div>
2281
- </div>
2282
-
2283
- <!-- TAB: RUNS -->
2284
- <div class="wf-pane" id="wf-tab-runs">
2285
- <div style="display:flex;gap:8px;margin-bottom:16px;margin-top:4px;align-items:center">
2286
- <button class="btn" onclick="loadWorkflowRuns()">↺ Refresh</button>
2287
- <select id="wf-status-filter" onchange="renderWorkflowRuns()" style="background:var(--surface);color:var(--text-hi);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:12px">
2288
- <option value="">All statuses</option>
2289
- <option value="running">Running</option>
2290
- <option value="completed">Completed</option>
2291
- <option value="failed">Failed</option>
2292
- <option value="stopped">Stopped</option>
2293
- </select>
2294
- <span id="wf-count" style="color:var(--text-lo);font-size:12px"></span>
2295
- </div>
2296
- <div id="wf-runs-list"><div class="loading-txt">Loading…</div></div>
2297
- </div>
2298
-
2299
- <!-- TAB: BUILDER -->
2300
- <div id="wf-tab-builder">
2301
- <div id="pb-toolbar">
2302
- <button class="btn" onclick="pbNew()" title="New playbook">+ New</button>
2303
- <input id="pb-name-input" type="text" placeholder="Playbook name…" oninput="pbState.playbook.name=this.value">
2304
- <button class="btn" onclick="pbLoad()" title="Load a playbook from Library">⬆ Load</button>
2305
- <button class="btn" onclick="pbSave()" title="Save to .monomind/playbooks/">💾 Save</button>
2306
- <button class="btn" onclick="pbRun()" title="Run via monobrowse dashboard" style="color:var(--accent);border-color:var(--accent)">▶ Run</button>
2307
- <button class="btn" onclick="pbImportJSON()" title="Import from JSON">⬇ Import</button>
2308
- <button class="btn" onclick="pbExportJSON()" title="Export to JSON">⬆ Export</button>
2309
- <span id="pb-run-status"></span>
2310
- </div>
2311
- <div id="pb-editor">
2312
- <div id="pb-palette">
2313
- <!-- populated by pbRenderPalette() -->
2314
- </div>
2315
- <div id="pb-canvas-wrap">
2316
- <div id="pb-canvas">
2317
- <svg id="pb-svg" width="100%" height="100%"><defs><marker id="pb-arrow" markerWidth="8" markerHeight="6" refX="8" refY="3" orient="auto"><polygon points="0 0,8 3,0 6" fill="var(--text-xs)"/></marker></defs></svg>
2318
- <div id="pb-empty"><div style="font-size:32px">⚡</div><div>Drag a node from the left panel onto the canvas</div><div style="font-size:11px">or click a node type to add it</div></div>
2319
- </div>
2320
- </div>
2321
- <div id="pb-config">
2322
- <div id="pb-config-title">Select a node</div>
2323
- <div id="pb-config-body"></div>
2324
- </div>
2270
+ <button class="btn" onclick="loadMonoagentData()">↺ Refresh</button>
2325
2271
  </div>
2272
+ <div id="ma-history-list"><div class="loading-txt">Loading…</div></div>
2326
2273
  </div>
2327
2274
  </div>
2328
2275
  </div>
@@ -2518,7 +2465,7 @@ function switchView(v, { updateHash = true } = {}) {
2518
2465
  el.classList.toggle('active', el.dataset.view === v));
2519
2466
  document.querySelectorAll('.view').forEach(el =>
2520
2467
  el.classList.toggle('active', el.id === 'view-' + v));
2521
- const titles = { now:'Now', projects:'Projects', sessions:'Sessions', loops:'Loops', tokens:'Tokens', memory:'Memory', orgs:'Orgs', monograph:'Monograph', playbooks:'Playbooks', global:'Global Feed', 'global-loops':'Global Loops', 'global-tokens':'Global Tokens', chat:'Global Agent Chat' };
2468
+ const titles = { now:'Now', projects:'Projects', sessions:'Sessions', loops:'Loops', tokens:'Tokens', memory:'Memory', orgs:'Orgs', monograph:'Monograph', monoagent:'MonoAgent', global:'Global Feed', 'global-loops':'Global Loops', 'global-tokens':'Global Tokens', chat:'Global Agent Chat' };
2522
2469
  document.getElementById('view-title').textContent = titles[v] || v;
2523
2470
  const PROJECT = DIR ? shortPath(DIR) : 'monomind';
2524
2471
  const VIEW_LABELS = { now: 'Now', sessions: 'Sessions', projects: 'Projects', loops: 'Loops', tokens: 'Tokens', memory: 'Memory', orgs: 'Orgs', monograph: 'Monograph', global: 'Global Feed', 'global-loops': 'Global Loops', 'global-tokens': 'Global Tokens' };
@@ -2581,7 +2528,7 @@ function renderView(v) {
2581
2528
  if (v === 'memory') renderMemory();
2582
2529
  if (v === 'orgs') renderOrgs();
2583
2530
  if (v === 'monograph') loadMonograph();
2584
- if (v === 'playbooks') { loadPlatformSessions(); loadWorkflowDefs(); loadWorkflowRuns(); }
2531
+ if (v === 'monoagent') { loadMonoagentData(); }
2585
2532
  if (v === 'global') renderGlobalFeed();
2586
2533
  if (v === 'global-loops') renderGlobalLoops();
2587
2534
  if (v === 'global-tokens') renderGlobalTokens();
@@ -10877,16 +10824,17 @@ async function maDisconnect(pid, connId, type) {
10877
10824
 
10878
10825
  let _wfRuns = [];
10879
10826
  async function loadWorkflowRuns() {
10880
- document.getElementById('wf-runs-list').innerHTML = '<div class="loading-txt">Loading…</div>';
10827
+ const runsListEl = document.getElementById('wf-runs-list');
10828
+ if (!runsListEl) return;
10829
+ runsListEl.innerHTML = '<div class="loading-txt">Loading…</div>';
10881
10830
  try {
10882
10831
  const runs = await apiFetch('/api/workflow-runs');
10883
10832
  _wfRuns = Array.isArray(runs) ? runs : [];
10884
10833
  } catch (e) {
10885
10834
  _wfRuns = [];
10886
10835
  }
10887
- const bdg = document.getElementById('bdg-playbooks');
10888
- if (bdg) bdg.textContent = _wfRuns.length || '';
10889
- document.getElementById('wf-count').textContent = _wfRuns.length + ' run' + (_wfRuns.length !== 1 ? 's' : '');
10836
+ const wfCount = document.getElementById('wf-count');
10837
+ if (wfCount) wfCount.textContent = _wfRuns.length + ' run' + (_wfRuns.length !== 1 ? 's' : '');
10890
10838
  renderWorkflowRuns();
10891
10839
  }
10892
10840
 
@@ -14017,6 +13965,65 @@ async function mmRenderGraph(body) {
14017
13965
  `;
14018
13966
  } catch (e) { body.innerHTML = '<div class="empty">Failed: ' + esc(e.message) + '</div>'; }
14019
13967
  }
13968
+
13969
+ /* ═══════════════════════════════════════════════════════════════
13970
+ MONOAGENT TAB
13971
+ ═══════════════════════════════════════════════════════════════ */
13972
+ const MA_STATE_COLOR = { completed:'#22c55e', failed:'#ef4444', running:'#3b82f6', pending:'#a3a3a3' };
13973
+ let _maWorkflows = [], _maActions = [];
13974
+
13975
+ function maSwitchTab(tab) {
13976
+ document.querySelectorAll('[data-matab]').forEach(b => b.classList.toggle('active', b.dataset.matab === tab));
13977
+ document.querySelectorAll('#view-monoagent .wf-pane').forEach(p => p.classList.toggle('active', p.id === 'ma-tab-' + tab));
13978
+ }
13979
+
13980
+ async function loadMonoagentData() {
13981
+ document.getElementById('ma-workflows-list').innerHTML = '<div class="loading-txt">Loading…</div>';
13982
+ document.getElementById('ma-history-list').innerHTML = '<div class="loading-txt">Loading…</div>';
13983
+ try {
13984
+ const data = await apiFetch('/api/monoagent/data');
13985
+ _maWorkflows = Array.isArray(data.workflows) ? data.workflows : [];
13986
+ _maActions = Array.isArray(data.actions) ? data.actions : [];
13987
+ } catch (e) {
13988
+ _maWorkflows = []; _maActions = [];
13989
+ }
13990
+ const bdg = document.getElementById('bdg-monoagent');
13991
+ if (bdg) bdg.textContent = _maWorkflows.length || '—';
13992
+ renderMonoagentWorkflows();
13993
+ renderMonoagentHistory();
13994
+ }
13995
+
13996
+ function renderMonoagentWorkflows() {
13997
+ const el = document.getElementById('ma-workflows-list');
13998
+ if (!el) return;
13999
+ if (!_maWorkflows.length) { el.innerHTML = '<div class="empty">No monoagent workflows found. Create one with: <code>monoagent workflow create</code></div>'; return; }
14000
+ el.innerHTML = _maWorkflows.map(w => `<div class="m-card" style="margin-bottom:10px;padding:12px 14px">
14001
+ <div style="display:flex;justify-content:space-between;align-items:center">
14002
+ <span style="font-weight:600;color:var(--text-hi);font-family:var(--mono);font-size:13px">${esc(w.name||w.id||'—')}</span>
14003
+ <span style="font-size:11px;color:var(--text-lo)">${esc(w.id||'')}</span>
14004
+ </div>
14005
+ ${w.description ? `<div style="font-size:12px;color:var(--text-lo);margin-top:4px">${esc(w.description)}</div>` : ''}
14006
+ <div style="font-size:11px;color:var(--text-xs);margin-top:6px">${(w.nodes||[]).length} nodes · trigger: ${esc(w.trigger||'manual')}</div>
14007
+ </div>`).join('');
14008
+ }
14009
+
14010
+ function renderMonoagentHistory() {
14011
+ const el = document.getElementById('ma-history-list');
14012
+ if (!el) return;
14013
+ if (!_maActions.length) { el.innerHTML = '<div class="empty">No action history yet.</div>'; return; }
14014
+ el.innerHTML = _maActions.map(a => {
14015
+ const color = MA_STATE_COLOR[a.status] || MA_STATE_COLOR.pending;
14016
+ const ts = a.createdAt ? new Date(a.createdAt).toLocaleString() : '—';
14017
+ return `<div class="m-card" style="margin-bottom:8px;padding:10px 14px;display:flex;justify-content:space-between;align-items:center">
14018
+ <div>
14019
+ <span style="font-weight:600;color:var(--text-hi);font-size:12px;font-family:var(--mono)">${esc(a.type||a.action||'—')}</span>
14020
+ <span style="font-size:11px;color:var(--text-lo);margin-left:8px">${esc(a.platform||'')}</span>
14021
+ <div style="font-size:11px;color:var(--text-xs);margin-top:2px">${ts}</div>
14022
+ </div>
14023
+ <span style="font-size:11px;font-weight:600;color:${color}">${esc(a.status||'—')}</span>
14024
+ </div>`;
14025
+ }).join('');
14026
+ }
14020
14027
  </script>
14021
14028
  </body>
14022
14029
  </html>
@@ -257,7 +257,11 @@ function _insertRunEvent(ev, source) {
257
257
  if (!org || !runId) return;
258
258
  _runDbInsertStmt.run([org, runId, String(ev.type || ''), JSON.stringify(ev), Number(ev.ts || Date.now()), source || 'http']);
259
259
  _persistRunDb();
260
- } catch (_) {}
260
+ } catch (_) {
261
+ // sql.js leaves the prepared statement in a dirty state after any error (step() throws but
262
+ // reset() is never called). Reset it so subsequent inserts aren't permanently broken.
263
+ try { _runDbInsertStmt.reset(); } catch (_2) {}
264
+ }
261
265
  }
262
266
  // ─────────────────────────────────────────────────────────────────────────────
263
267
 
@@ -5560,6 +5564,28 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
5560
5564
  return;
5561
5565
  }
5562
5566
 
5567
+ // ----------------------------------------------- GET /api/monoagent/data
5568
+ if (req.method === 'GET' && url === '/api/monoagent/data') {
5569
+ try {
5570
+ const { execFile } = await import('child_process');
5571
+ const run = (args) => new Promise(resolve => {
5572
+ execFile('monoagent', args, { timeout: 8000 }, (err, stdout) => resolve(err ? '[]' : stdout));
5573
+ });
5574
+ const [wfOut, actOut] = await Promise.all([
5575
+ run(['workflow', 'list', '--json']),
5576
+ run(['action', 'list', '--json']),
5577
+ ]);
5578
+ const workflows = JSON.parse(wfOut.trim() || '[]');
5579
+ const actions = JSON.parse(actOut.trim() || '[]');
5580
+ res.writeHead(200, { 'Content-Type': 'application/json' });
5581
+ res.end(JSON.stringify({ workflows, actions }));
5582
+ } catch (e) {
5583
+ res.writeHead(200, { 'Content-Type': 'application/json' });
5584
+ res.end(JSON.stringify({ workflows: [], actions: [], error: e.message }));
5585
+ }
5586
+ return;
5587
+ }
5588
+
5563
5589
  // ------------------------------------------------- POST /api/playbooks
5564
5590
  // Save a playbook definition to .monomind/playbooks/<id>.json
5565
5591
  if (req.method === 'POST' && url === '/api/playbooks') {
@@ -5706,6 +5732,7 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
5706
5732
  runStreamClients.get(_stOrgName).add(res);
5707
5733
  // Replay events since `since` (SQLite row id cursor; falls back to JSONL line offset)
5708
5734
  try {
5735
+ let _stReplayedViaSqlite = false;
5709
5736
  if (_runDb) {
5710
5737
  // SQLite path: cursor is last row id seen (client sends 0 on first connect)
5711
5738
  const _stStmt = _runDb.prepare(
@@ -5718,9 +5745,15 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
5718
5745
  try { res.write(`data: ${_stRow.raw}\n\n`); _stLastId = _stRow.id; } catch (_) { break; }
5719
5746
  }
5720
5747
  _stStmt.free();
5721
- res.write(`data: ${JSON.stringify({ type: 'stream:replay-done', count: _stLastId })}\n\n`);
5722
- } else {
5723
- // JSONL fallback: since = 0-based line offset
5748
+ if (_stLastId > _stSince) {
5749
+ // SQLite had rows — send cursor and skip JSONL fallback
5750
+ res.write(`data: ${JSON.stringify({ type: 'stream:replay-done', count: _stLastId })}\n\n`);
5751
+ _stReplayedViaSqlite = true;
5752
+ }
5753
+ }
5754
+ if (!_stReplayedViaSqlite) {
5755
+ // JSONL fallback: SQLite absent or returned 0 rows — read directly from run file.
5756
+ // `since` is a 0-based line offset in this path.
5724
5757
  const _stRoot = projectDir || process.cwd();
5725
5758
  const _stRunId = activeOrgRuns.get(_stOrgName) || _getActiveRunId(_stOrgName, _stRoot);
5726
5759
  if (_stRunId) {
@@ -5732,7 +5765,11 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
5732
5765
  try { res.write(`data: ${_stLines[_i]}\n\n`); } catch (_) { break; }
5733
5766
  }
5734
5767
  res.write(`data: ${JSON.stringify({ type: 'stream:replay-done', count: _stLines.length })}\n\n`);
5768
+ } else {
5769
+ res.write(`data: ${JSON.stringify({ type: 'stream:replay-done', count: 0 })}\n\n`);
5735
5770
  }
5771
+ } else {
5772
+ res.write(`data: ${JSON.stringify({ type: 'stream:replay-done', count: 0 })}\n\n`);
5736
5773
  }
5737
5774
  }
5738
5775
  } catch (_) {}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@monoes/monomindcli",
3
- "version": "1.16.10",
3
+ "version": "1.17.0",
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",
@@ -235,7 +235,6 @@ The package ships 31 modules organized in 9 layers, from compilation through enf
235
235
  | | `CapabilityAlgebra` | Grant, restrict, delegate, expire, revoke permissions as typed objects |
236
236
  | | `ManifestValidator` | Fails-closed admission for agent cell manifests |
237
237
  | | `ConformanceRunner` | Memory Clerk acceptance test with replay verification |
238
- | **Bridge** | `RuvBotGuidanceBridge` | Wires ruvbot events to guidance hooks, AIDefence gate, memory adapter |
239
238
  | **WASM Kernel** | `guidance-kernel` | Rust→WASM policy kernel: SHA-256, HMAC, secret scanning, shard scoring |
240
239
  | | `WasmKernel` bridge | Auto-fallback host bridge with batch API for minimal boundary crossings |
241
240
  | **Generate** | `generateClaudeMd` | Scaffold CLAUDE.md from a project profile |
@@ -78,10 +78,6 @@
78
78
  "types": "./dist/conformance-kit.d.ts",
79
79
  "import": "./dist/conformance-kit.js"
80
80
  },
81
- "./ruvbot-integration": {
82
- "types": "./dist/ruvbot-integration.d.ts",
83
- "import": "./dist/ruvbot-integration.js"
84
- },
85
81
  "./trust": {
86
82
  "types": "./dist/trust.d.ts",
87
83
  "import": "./dist/trust.js"
@@ -142,14 +138,8 @@
142
138
  "dependencies": {
143
139
  "@monomind/hooks": "workspace:*"
144
140
  },
145
- "peerDependencies": {
146
- "ruvbot": ">=0.1.8"
147
- },
148
- "peerDependenciesMeta": {
149
- "ruvbot": {
150
- "optional": true
151
- }
152
- },
141
+ "peerDependencies": {},
142
+ "peerDependenciesMeta": {},
153
143
  "devDependencies": {
154
144
  "@types/node": "^20.10.0",
155
145
  "typescript": "^5.3.0",
@@ -180,8 +170,6 @@
180
170
  "adversarial-defense",
181
171
  "prompt-injection",
182
172
  "wasm",
183
- "ruvbot",
184
- "ruv",
185
173
  "ai-safety",
186
174
  "agent-orchestration",
187
175
  "multi-agent",
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
  # ═══════════════════════════════════════════════════════════════
3
- # Monomind RVFA Appliance — Full Capability Verification Suite
4
- # ADR-058: Self-Contained Monomind RVF Appliance
3
+ # Monomind Appliance — Full Capability Verification Suite
4
+ # ADR-058: Self-Contained Monomind Appliance
5
5
  #
6
6
  # Tests ALL 35 categories (95+ checks) to verify every capability
7
7
  # of the Monomind + Monomind system works correctly.
@@ -185,7 +185,7 @@ fi
185
185
 
186
186
  # ── 4. Memory Operations ─────────────────────────────────────
187
187
  if should_run "memory"; then
188
- section 4 "Memory Operations (LanceDB + RVF)"
188
+ section 4 "Memory Operations (LanceDB )"
189
189
  check "memory init" $MONOMIND_CMD memory init --force
190
190
  check "memory store key-1" $MONOMIND_CMD memory store --key "verify-1" --value "Capability verification entry one" --namespace verify
191
191
  check "memory store key-2" $MONOMIND_CMD memory store --key "verify-2" --value "Vector search verification entry" --namespace verify
@@ -403,24 +403,20 @@ if should_run "integration"; then
403
403
  check "integration: cleanup" $MONOMIND_CMD memory delete --key "int-verify" --namespace integration
404
404
  fi
405
405
 
406
- # ── 26. RVF Format Verification ───────────────────────────────
407
- if should_run "rvf"; then
408
- section 26 "RVF Format Verification"
409
- RVF_DIR="/tmp/monomind-rvf-verify-$$"
410
- mkdir -p "$RVF_DIR"
411
-
412
- # Test RVF backend by writing and reading data
413
- check "rvf: memory init creates backend" $MONOMIND_CMD memory init --force
414
- check "rvf: store creates data file" $MONOMIND_CMD memory store --key "rvf-test" --value "RVF binary format verification" --namespace rvf-verify
415
- check_contains "rvf: retrieve confirms persistence" "RVF binary" $MONOMIND_CMD memory retrieve --key "rvf-test" --namespace rvf-verify
416
- check "rvf: multiple entries" sh -c "$MONOMIND_CMD memory store --key 'rvf-2' --value 'Second entry' --namespace rvf-verify && $MONOMIND_CMD memory store --key 'rvf-3' --value 'Third entry' --namespace rvf-verify"
417
- check_contains "rvf: list shows entries" "3" $MONOMIND_CMD memory list --namespace rvf-verify
418
- check "rvf: delete works" $MONOMIND_CMD memory delete --key "rvf-test" --namespace rvf-verify
419
- check_contains "rvf: list after delete" "2" $MONOMIND_CMD memory list --namespace rvf-verify
406
+ # ── 26. Memory Backend Verification ───────────────────────────
407
+ if should_run "memory-backend"; then
408
+ section 26 "Memory Backend Verification"
409
+
410
+ check "memory-backend: init creates backend" $MONOMIND_CMD memory init --force
411
+ check "memory-backend: store creates data file" $MONOMIND_CMD memory store --key "mem-test" --value "Memory backend verification" --namespace mem-verify
412
+ check_contains "memory-backend: retrieve confirms persistence" "Memory backend" $MONOMIND_CMD memory retrieve --key "mem-test" --namespace mem-verify
413
+ check "memory-backend: multiple entries" sh -c "$MONOMIND_CMD memory store --key 'mem-2' --value 'Second entry' --namespace mem-verify && $MONOMIND_CMD memory store --key 'mem-3' --value 'Third entry' --namespace mem-verify"
414
+ check_contains "memory-backend: list shows entries" "3" $MONOMIND_CMD memory list --namespace mem-verify
415
+ check "memory-backend: delete works" $MONOMIND_CMD memory delete --key "mem-test" --namespace mem-verify
416
+ check_contains "memory-backend: list after delete" "2" $MONOMIND_CMD memory list --namespace mem-verify
420
417
  # Cleanup
421
- $MONOMIND_CMD memory delete --key "rvf-2" --namespace rvf-verify >/dev/null 2>&1 || true
422
- $MONOMIND_CMD memory delete --key "rvf-3" --namespace rvf-verify >/dev/null 2>&1 || true
423
- rm -rf "$RVF_DIR"
418
+ $MONOMIND_CMD memory delete --key "mem-2" --namespace mem-verify >/dev/null 2>&1 || true
419
+ $MONOMIND_CMD memory delete --key "mem-3" --namespace mem-verify >/dev/null 2>&1 || true
424
420
  fi
425
421
 
426
422
  # Section 27 (local model inference) was removed — native LLM module not in lean build