@monoes/monomindcli 1.15.6 → 1.16.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 (164) hide show
  1. package/.claude/agents/github/repo-architect.md +1 -1
  2. package/.claude/agents/specialists/integration-architect.md +6 -6
  3. package/.claude/commands/hive-mind/hive-mind-init.md +1 -1
  4. package/.claude/commands/hive-mind/hive-mind-memory.md +1 -1
  5. package/.claude/commands/mastermind/brain.md +11 -11
  6. package/.claude/commands/mastermind/master.md +4 -4
  7. package/.claude/commands/mastermind/memory.md +6 -6
  8. package/.claude/commands/memory/README.md +4 -4
  9. package/.claude/commands/truth/start.md +3 -3
  10. package/.claude/helpers/extras-registry.json +2 -2
  11. package/.claude/helpers/skill-registry.json +26 -26
  12. package/.claude/helpers/statusline.cjs +8 -8
  13. package/.claude/skills/agentic-jujutsu/SKILL.md +3 -3
  14. package/.claude/skills/mastermind/_protocol.md +8 -8
  15. package/README.md +6 -6
  16. package/dist/src/__tests__/browse-analyzer.test.js +18 -1
  17. package/dist/src/__tests__/browse-analyzer.test.js.map +1 -1
  18. package/dist/src/commands/agent.js +2 -2
  19. package/dist/src/commands/agent.js.map +1 -1
  20. package/dist/src/commands/autopilot.js +1 -1
  21. package/dist/src/commands/autopilot.js.map +1 -1
  22. package/dist/src/commands/completions.d.ts.map +1 -1
  23. package/dist/src/commands/completions.js +2 -21
  24. package/dist/src/commands/completions.js.map +1 -1
  25. package/dist/src/commands/config.js +1 -1
  26. package/dist/src/commands/hive-mind.js +1 -1
  27. package/dist/src/commands/hooks-coverage-commands.js +31 -31
  28. package/dist/src/commands/hooks-coverage-commands.js.map +1 -1
  29. package/dist/src/commands/hooks-routing-commands.js +1 -1
  30. package/dist/src/commands/hooks-routing-commands.js.map +1 -1
  31. package/dist/src/commands/hooks.js +1 -1
  32. package/dist/src/commands/hooks.js.map +1 -1
  33. package/dist/src/commands/index.d.ts +0 -1
  34. package/dist/src/commands/index.d.ts.map +1 -1
  35. package/dist/src/commands/index.js +0 -4
  36. package/dist/src/commands/index.js.map +1 -1
  37. package/dist/src/commands/init.js +8 -8
  38. package/dist/src/commands/init.js.map +1 -1
  39. package/dist/src/commands/memory.d.ts +1 -1
  40. package/dist/src/commands/memory.d.ts.map +1 -1
  41. package/dist/src/commands/memory.js +138 -28
  42. package/dist/src/commands/memory.js.map +1 -1
  43. package/dist/src/commands/migrate.js +2 -2
  44. package/dist/src/commands/neural.js +1 -1
  45. package/dist/src/commands/neural.js.map +1 -1
  46. package/dist/src/commands/swarm.js +1 -1
  47. package/dist/src/commands/swarm.js.map +1 -1
  48. package/dist/src/config-adapter.d.ts.map +1 -1
  49. package/dist/src/config-adapter.js +8 -8
  50. package/dist/src/config-adapter.js.map +1 -1
  51. package/dist/src/index.js +1 -1
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/init/claudemd-generator.js +2 -2
  54. package/dist/src/init/executor.js +16 -16
  55. package/dist/src/init/executor.js.map +1 -1
  56. package/dist/src/init/shared-instructions-generator.d.ts +1 -1
  57. package/dist/src/init/shared-instructions-generator.js +1 -1
  58. package/dist/src/init/statusline-generator.d.ts +1 -1
  59. package/dist/src/init/statusline-generator.js +8 -8
  60. package/dist/src/init/types.d.ts +3 -3
  61. package/dist/src/init/types.d.ts.map +1 -1
  62. package/dist/src/init/types.js +3 -3
  63. package/dist/src/init/types.js.map +1 -1
  64. package/dist/src/mcp-client.d.ts.map +1 -1
  65. package/dist/src/mcp-client.js +1 -8
  66. package/dist/src/mcp-client.js.map +1 -1
  67. package/dist/src/mcp-tools/autopilot-tools.js +3 -3
  68. package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
  69. package/dist/src/mcp-tools/daa-tools.js +13 -13
  70. package/dist/src/mcp-tools/daa-tools.js.map +1 -1
  71. package/dist/src/mcp-tools/guidance-tools.js +4 -4
  72. package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
  73. package/dist/src/mcp-tools/hive-mind-tools.js +4 -4
  74. package/dist/src/mcp-tools/hive-mind-tools.js.map +1 -1
  75. package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
  76. package/dist/src/mcp-tools/hooks-intelligence.js +1 -0
  77. package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
  78. package/dist/src/mcp-tools/hooks-routing.js +23 -23
  79. package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
  80. package/dist/src/mcp-tools/index.d.ts +0 -1
  81. package/dist/src/mcp-tools/index.d.ts.map +1 -1
  82. package/dist/src/mcp-tools/index.js +0 -2
  83. package/dist/src/mcp-tools/index.js.map +1 -1
  84. package/dist/src/mcp-tools/memory-tools.d.ts +22 -6
  85. package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
  86. package/dist/src/mcp-tools/memory-tools.js +553 -505
  87. package/dist/src/mcp-tools/memory-tools.js.map +1 -1
  88. package/dist/src/mcp-tools/progress-tools.js +1 -1
  89. package/dist/src/mcp-tools/progress-tools.js.map +1 -1
  90. package/dist/src/mcp-tools/system-tools.js +5 -5
  91. package/dist/src/mcp-tools/system-tools.js.map +1 -1
  92. package/dist/src/mcp-tools/transfer-tools.d.ts +1 -1
  93. package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
  94. package/dist/src/mcp-tools/transfer-tools.js +1 -156
  95. package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
  96. package/dist/src/memory/embedding-operations.js +3 -3
  97. package/dist/src/memory/embedding-operations.js.map +1 -1
  98. package/dist/src/memory/hnsw-operations.js +5 -5
  99. package/dist/src/memory/hnsw-operations.js.map +1 -1
  100. package/dist/src/memory/intelligence.js +2 -2
  101. package/dist/src/memory/intelligence.js.map +1 -1
  102. package/dist/src/memory/memory-bridge.d.ts +86 -234
  103. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  104. package/dist/src/memory/memory-bridge.js +455 -1702
  105. package/dist/src/memory/memory-bridge.js.map +1 -1
  106. package/dist/src/memory/memory-crud.js +3 -3
  107. package/dist/src/memory/memory-crud.js.map +1 -1
  108. package/dist/src/memory/memory-initializer.d.ts +1 -1
  109. package/dist/src/memory/memory-initializer.js +5 -5
  110. package/dist/src/memory/memory-initializer.js.map +1 -1
  111. package/dist/src/memory/memory-read.js +4 -4
  112. package/dist/src/memory/memory-read.js.map +1 -1
  113. package/dist/src/suggest.js +0 -1
  114. package/dist/src/suggest.js.map +1 -1
  115. package/dist/src/types.d.ts +1 -1
  116. package/dist/src/ui/dashboard.html +41 -5
  117. package/dist/src/ui/orgs.html +91 -5
  118. package/dist/src/ui/server.mjs +44 -0
  119. package/dist/src/update/validator.d.ts.map +1 -1
  120. package/dist/src/update/validator.js +1 -3
  121. package/dist/src/update/validator.js.map +1 -1
  122. package/dist/tsconfig.tsbuildinfo +1 -1
  123. package/package.json +4 -4
  124. package/dist/src/commands/plugins.d.ts +0 -11
  125. package/dist/src/commands/plugins.d.ts.map +0 -1
  126. package/dist/src/commands/plugins.js +0 -799
  127. package/dist/src/commands/plugins.js.map +0 -1
  128. package/dist/src/plugins/manager.d.ts +0 -133
  129. package/dist/src/plugins/manager.d.ts.map +0 -1
  130. package/dist/src/plugins/manager.js +0 -498
  131. package/dist/src/plugins/manager.js.map +0 -1
  132. package/dist/src/plugins/store/discovery.d.ts +0 -88
  133. package/dist/src/plugins/store/discovery.d.ts.map +0 -1
  134. package/dist/src/plugins/store/discovery.js +0 -650
  135. package/dist/src/plugins/store/discovery.js.map +0 -1
  136. package/dist/src/plugins/store/index.d.ts +0 -76
  137. package/dist/src/plugins/store/index.d.ts.map +0 -1
  138. package/dist/src/plugins/store/index.js +0 -141
  139. package/dist/src/plugins/store/index.js.map +0 -1
  140. package/dist/src/plugins/store/search.d.ts +0 -46
  141. package/dist/src/plugins/store/search.d.ts.map +0 -1
  142. package/dist/src/plugins/store/search.js +0 -231
  143. package/dist/src/plugins/store/search.js.map +0 -1
  144. package/dist/src/plugins/store/types.d.ts +0 -274
  145. package/dist/src/plugins/store/types.d.ts.map +0 -1
  146. package/dist/src/plugins/store/types.js +0 -7
  147. package/dist/src/plugins/store/types.js.map +0 -1
  148. package/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  149. package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +0 -1
  150. package/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  151. package/dist/src/plugins/tests/demo-plugin-store.js.map +0 -1
  152. package/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  153. package/dist/src/plugins/tests/standalone-test.d.ts.map +0 -1
  154. package/dist/src/plugins/tests/standalone-test.js +0 -188
  155. package/dist/src/plugins/tests/standalone-test.js.map +0 -1
  156. package/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  157. package/dist/src/plugins/tests/test-plugin-store.d.ts.map +0 -1
  158. package/dist/src/plugins/tests/test-plugin-store.js +0 -206
  159. package/dist/src/plugins/tests/test-plugin-store.js.map +0 -1
  160. package/dist/src/services/registry-api.d.ts +0 -58
  161. package/dist/src/services/registry-api.d.ts.map +0 -1
  162. package/dist/src/services/registry-api.js +0 -199
  163. package/dist/src/services/registry-api.js.map +0 -1
  164. package/scripts/publish-registry.ts +0 -339
@@ -340,6 +340,14 @@ html, body { height: 100%; background: var(--bg); color: var(--text-hi); font-fa
340
340
  #odt-chat-feed::-webkit-scrollbar { width:4px; }
341
341
  #odt-chat-feed::-webkit-scrollbar-thumb { background:var(--border); border-radius:2px; }
342
342
  #odt-chat-empty { font-size:11px; color:var(--text-lo); text-align:center; padding:32px 0; line-height:2; }
343
+ #odt-chat-compose { display:flex; gap:6px; padding:8px 12px; border-top:1px solid var(--border); flex-shrink:0; }
344
+ #odt-chat-input { flex:1; background:var(--surface); color:var(--text); border:1px solid var(--border); border-radius:4px; font-size:11px; font-family:var(--mono); padding:5px 8px; resize:none; min-height:28px; max-height:80px; line-height:1.4; }
345
+ #odt-chat-input:focus { outline:none; border-color:var(--accent); }
346
+ #odt-chat-send-btn { font-size:8px; letter-spacing:1.5px; padding:4px 10px; border-radius:3px; border:1px solid oklch(62% 0.2 186 / 0.4); color:oklch(62% 0.2 186); background:transparent; cursor:pointer; font-family:inherit; flex-shrink:0; align-self:flex-end; }
347
+ #odt-chat-send-btn:hover:not(:disabled) { background:oklch(62% 0.2 186 / 0.12); }
348
+ #odt-chat-send-btn:disabled { opacity:0.3; cursor:default; }
349
+ .cv-user-msg { align-self:flex-end; }
350
+ .cv-user-msg .cv-bub { background:oklch(20% 0.06 220); border-left:none; border-right:2px solid oklch(62% 0.2 186); }
343
351
  .odt-mode-btn {
344
352
  font-family: inherit; font-size: 7px; letter-spacing: 1.5px;
345
353
  padding: 2px 7px; border-radius: 3px; cursor: pointer;
@@ -7246,6 +7254,10 @@ async function v2RenderOrgChat() {
7246
7254
  <div id="odt-chat-excerpt" class="cv-excerpt-banner"></div>
7247
7255
  <div id="odt-chat-feed">
7248
7256
  <div id="odt-chat-empty">Select a session to see agent communications.<br><span style="font-size:10px;opacity:0.5">Sessions appear after the first /mastermind:runorg</span></div>
7257
+ </div>
7258
+ <div id="odt-chat-compose">
7259
+ <textarea id="odt-chat-input" rows="1" placeholder="Send a message to the org…" onkeydown="if(event.key==='Enter'&&!event.shiftKey){event.preventDefault();odtSendChatMessage();}"></textarea>
7260
+ <button id="odt-chat-send-btn" onclick="odtSendChatMessage()" disabled>SEND</button>
7249
7261
  </div>`;
7250
7262
  }
7251
7263
 
@@ -7627,18 +7639,39 @@ function _odtPopulateChatSel() {
7627
7639
  }
7628
7640
  }
7629
7641
 
7642
+ window.odtSendChatMessage = async function() {
7643
+ const inp = document.getElementById('odt-chat-input');
7644
+ const btn = document.getElementById('odt-chat-send-btn');
7645
+ if (!inp || !_v2SelOrg) return;
7646
+ const text = inp.value.trim();
7647
+ if (!text) return;
7648
+ inp.value = '';
7649
+ btn.disabled = true;
7650
+ try {
7651
+ await fetch('/api/orgs/'+encodeURIComponent(_v2SelOrg)+'/chat', { method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify({ text, runId: _odtChatCurrentId || null }) });
7652
+ } catch(e) {
7653
+ inp.value = text;
7654
+ } finally {
7655
+ btn.disabled = false;
7656
+ inp.focus();
7657
+ }
7658
+ };
7659
+
7630
7660
  window.odtChatSelectSession = async function(id) {
7631
7661
  _odtChatCurrentId = id;
7632
7662
  _odtChatCurrentAgent = 'all';
7633
7663
  const feed = document.getElementById('odt-chat-feed');
7634
7664
  const emptyEl = document.getElementById('odt-chat-empty');
7635
7665
  const bar = document.getElementById('odt-chat-agent-bar');
7666
+ const sendBtn = document.getElementById('odt-chat-send-btn');
7636
7667
  feed.querySelectorAll('.cv-msg, .cv-session-hdr').forEach(e => e.remove());
7637
7668
  if (!id) {
7638
7669
  if (emptyEl) emptyEl.style.display = 'block';
7639
7670
  if (bar) bar.style.display = 'none';
7671
+ if (sendBtn) sendBtn.disabled = true;
7640
7672
  return;
7641
7673
  }
7674
+ if (sendBtn) sendBtn.disabled = false;
7642
7675
 
7643
7676
  // ── Run group path: render merged events from all runs in the group ──
7644
7677
  if (id.startsWith('rgrp:') && _odtRunGroups[id]) {
@@ -7991,12 +8024,12 @@ function _odtAppendEvent(ev, animate) {
7991
8024
  const _isSummaryType = _evType === 'agent:spawn' || _evType === 'agent:complete' ||
7992
8025
  _evType === 'agent:edit' || _evType === 'org:comms' || _evType === 'org:error' ||
7993
8026
  _evType === 'run:start' || _evType === 'run:complete' || _evType === 'org:start' ||
7994
- _evType === 'org:checkpoint' || _evType === 'run:cycle:complete' || _evType === 'org:complete' || _evType === 'org:stop';
7995
- const _isDetailedType = _isSummaryType || _evType === 'agent:bash' ||
7996
- _evType === 'agent:browse' || _evType === 'agent:read:batch' || _evType === 'agent:usage' ||
7997
- _evType === 'agent:result' || _evType === 'file:write' || _evType === 'org:agent:online';
8027
+ _evType === 'org:checkpoint' || _evType === 'run:cycle:complete' || _evType === 'org:complete' || _evType === 'org:stop' ||
8028
+ _evType === 'user:message';
8029
+ // detailed: show all except pure noise (inverted new event types auto-visible)
8030
+ const _isNoiseType = _evType === 'agent:usage' || _evType === 'loop:tick';
7998
8031
  if (_odtChatMode === 'summary' && !_isSummaryType) return;
7999
- if (_odtChatMode === 'detailed' && !_isDetailedType) return;
8032
+ if (_odtChatMode === 'detailed' && _isNoiseType) return;
8000
8033
  // raw: show everything
8001
8034
  const feed = document.getElementById('odt-chat-feed');
8002
8035
  if (!feed) return;
@@ -8073,6 +8106,9 @@ function _odtAppendEvent(ev, animate) {
8073
8106
  el.classList.add('cv-err');
8074
8107
  } else if (ev.type === 'org:agent:offline') {
8075
8108
  el = mkCVSys('◌ ' + esc(ev.title || ev.role || '?') + ' offline', ts);
8109
+ } else if (ev.type === 'user:message') {
8110
+ el = mkCVAgent('you', ev.text || ev.msg || ev.message || '', ts, 'user:message');
8111
+ el.classList.add('cv-user-msg');
8076
8112
  } else {
8077
8113
  el = mkCVSys(esc(ev.type || 'event'), ts);
8078
8114
  }
@@ -254,12 +254,15 @@ html, body {
254
254
  .tab-btn:hover { color: var(--muted); }
255
255
  .tab-btn.active { color: var(--teal); border-bottom-color: var(--teal); }
256
256
 
257
- #main-body { flex: 1; overflow-y: auto; overflow-x: hidden; }
257
+ #main-body { flex: 1; overflow-y: auto; overflow-x: hidden; min-height: 0; }
258
258
  #main-body::-webkit-scrollbar { width: 4px; }
259
259
  #main-body::-webkit-scrollbar-thumb { background: var(--teal-dim); border-radius: 2px; }
260
+ /* Chat tab needs a non-scrolling bounded container so compose stays visible */
261
+ #main-body.chat-active { overflow: hidden; display: flex; flex-direction: column; }
260
262
 
261
263
  .tab-pane { display: none; }
262
264
  .tab-pane.active { display: block; }
265
+ #main-body.chat-active #tab-chat { display: flex; flex-direction: column; flex: 1; min-height: 0; }
263
266
 
264
267
  /* ── Empty / no-selection state ─────────────────────────────────── */
265
268
  #no-org-state {
@@ -421,7 +424,7 @@ html, body {
421
424
 
422
425
  /* ── Chat tab ───────────────────────────────────────────────────── */
423
426
  #chat-pane {
424
- display: flex; flex-direction: column; height: 100%;
427
+ display: flex; flex-direction: column; flex: 1; min-height: 0;
425
428
  overflow: hidden;
426
429
  }
427
430
  #chat-session-bar {
@@ -491,6 +494,39 @@ html, body {
491
494
  .cmsg.csys { align-self: center; max-width: 100%; }
492
495
  .cmsg.cagent { align-self: flex-start; }
493
496
  .cmsg.cic { align-self: flex-start; }
497
+ .cmsg.cuser { align-self: flex-end; }
498
+ .cmsg.cuser .cbubble {
499
+ background: oklch(14% 0.022 250);
500
+ border: 1px solid oklch(68% 0.18 250 / 0.28);
501
+ border-radius: 8px 2px 8px 8px;
502
+ padding: 7px 11px; color: oklch(80% 0.010 250);
503
+ font-size: 11px; line-height: 1.6;
504
+ word-break: break-word; white-space: pre-wrap;
505
+ }
506
+ #chat-compose {
507
+ display: flex; gap: 6px; align-items: flex-end;
508
+ padding: 8px 20px 12px;
509
+ border-top: 1px solid var(--border);
510
+ flex-shrink: 0;
511
+ }
512
+ #chat-compose-input {
513
+ flex: 1; background: oklch(10% 0.012 186);
514
+ border: 1px solid var(--border); border-radius: 4px;
515
+ color: var(--text); font-family: var(--mono); font-size: 11px;
516
+ padding: 6px 9px; resize: none; min-height: 32px; max-height: 120px;
517
+ line-height: 1.5; outline: none;
518
+ }
519
+ #chat-compose-input:focus { border-color: var(--teal-dim); }
520
+ #chat-compose-input::placeholder { color: var(--dim); }
521
+ #chat-send-btn {
522
+ background: oklch(14% 0.022 186); border: 1px solid var(--teal-dim);
523
+ color: var(--teal); border-radius: 4px; padding: 5px 12px;
524
+ font-family: var(--mono); font-size: 9px; letter-spacing: 1px;
525
+ cursor: pointer; flex-shrink: 0; align-self: flex-end;
526
+ transition: background 0.15s, border-color 0.15s;
527
+ }
528
+ #chat-send-btn:hover { background: oklch(62% 0.20 186 / 0.12); border-color: var(--teal); }
529
+ #chat-send-btn:disabled { opacity: 0.35; cursor: default; }
494
530
 
495
531
  @keyframes cmsg-in { from{opacity:0;transform:translateY(3px)} to{opacity:1;transform:none} }
496
532
  .cmsg.new { animation: cmsg-in 0.18s ease-out; }
@@ -914,6 +950,10 @@ html, body {
914
950
  <div id="chat-feed-wrap">
915
951
  <div id="chat-feed-empty">Select a session above to see agent communications.</div>
916
952
  </div>
953
+ <div id="chat-compose">
954
+ <textarea id="chat-compose-input" rows="1" placeholder="Send a message to the org…" onkeydown="chatComposeKey(event)"></textarea>
955
+ <button id="chat-send-btn" onclick="sendChatMessage()" disabled>SEND</button>
956
+ </div>
917
957
  </div>
918
958
  </div>
919
959
 
@@ -956,7 +996,7 @@ let currentTab = 'chart';
956
996
  let chatRenderMode = localStorage.getItem('chatRenderMode') || 'summary';
957
997
 
958
998
  // Phase 3: Chat render mode — Summary / Detailed / Raw
959
- const CHAT_SUMMARY_TYPES = new Set(['session:start','session:complete','domain:dispatch','domain:complete','agent:spawn','agent:complete','agent:edit','org:comms','loop:start','loop:complete','org:artifact','agent:message','intercom']);
999
+ const CHAT_SUMMARY_TYPES = new Set(['session:start','session:complete','domain:dispatch','domain:complete','agent:spawn','agent:complete','agent:edit','org:comms','loop:start','loop:complete','org:artifact','agent:message','intercom','user:message']);
960
1000
  const CHAT_DETAILED_TYPES = new Set([...CHAT_SUMMARY_TYPES,'agent:bash','agent:bash:result','agent:browse','agent:read','agent:read:batch']);
961
1001
  function setChatMode(mode) {
962
1002
  chatRenderMode = mode;
@@ -1029,6 +1069,8 @@ window.switchTab = function(tab) {
1029
1069
  document.querySelectorAll('.tab-pane').forEach(p => p.classList.remove('active'));
1030
1070
  const pane = document.getElementById('tab-' + tab);
1031
1071
  if (pane) pane.classList.add('active');
1072
+ const mainBody = document.getElementById('main-body');
1073
+ if (mainBody) mainBody.classList.toggle('chat-active', tab === 'chat');
1032
1074
  if (tab === 'chat') renderChatTab();
1033
1075
  else if (orgDetailData) renderTab(tab);
1034
1076
  };
@@ -1638,12 +1680,15 @@ window.selectChatSession = function(id) {
1638
1680
  const feed = document.getElementById('chat-feed-wrap');
1639
1681
  const empty = document.getElementById('chat-feed-empty');
1640
1682
  const bar = document.getElementById('chat-agent-bar');
1683
+ const sendBtn = document.getElementById('chat-send-btn');
1641
1684
  if (!id) {
1642
1685
  feed.querySelectorAll('.cmsg').forEach(e=>e.remove());
1643
1686
  if (empty) empty.style.display = 'block';
1644
1687
  if (bar) bar.style.display = 'none';
1688
+ if (sendBtn) sendBtn.disabled = true;
1645
1689
  return;
1646
1690
  }
1691
+ if (sendBtn) sendBtn.disabled = false;
1647
1692
  const sess = chatSessions.find(s => s.id === id);
1648
1693
  if (!sess) return;
1649
1694
  feed.querySelectorAll('.cmsg').forEach(e=>e.remove());
@@ -1748,12 +1793,16 @@ function appendChatEvent(ev, animate) {
1748
1793
  el = mkAgent(ev.agent||'agent', esc(ev.text||''), ts, dc(ev.domain), null);
1749
1794
  } else if (ev.type === 'intercom') {
1750
1795
  el = mkIntercom(ev.from, ev.to, esc(ev.msg||''), ts);
1796
+ } else if (ev.type === 'user:message') {
1797
+ el = mkUser(esc(ev.text||ev.msg||''), ts);
1751
1798
  } else if (ev.type === 'loop:start') {
1752
1799
  el = mkSys(`🔁 Loop: ${esc(ev.command||'')} (${ev.repeat||'?'} runs)`, ts);
1753
1800
  } else if (ev.type === 'loop:complete') {
1754
1801
  el = mkSys(`🔁 Loop done: ${esc(ev.command||'')} — ${ev.ranReps||'?'} run(s)`, ts);
1755
- } else if (ev.type === 'org:artifact' && ev.artifact) {
1756
- el = mkArtifact(ev.artifact, ts);
1802
+ } else if (ev.type === 'org:artifact') {
1803
+ const _art = ev.artifact || (ev.path ? { path: ev.path, label: ev.label, mimeType: ev.mimeType } : null);
1804
+ if (_art) el = mkArtifact(_art, ts);
1805
+ else el = mkSys(`📄 artifact: ${esc(ev.label||ev.path||'file')}`, ts);
1757
1806
  } else {
1758
1807
  el = mkSys(`<span style="opacity:0.4">${esc(ev.type)}${ev.domain?' ['+esc(ev.domain)+']':''}</span>`, ts);
1759
1808
  }
@@ -1795,6 +1844,43 @@ function mkArtifact(art, ts) {
1795
1844
  return el;
1796
1845
  }
1797
1846
 
1847
+ function mkUser(text, ts) {
1848
+ const el = document.createElement('div');
1849
+ el.className = 'cmsg cuser';
1850
+ el.innerHTML = `<div class="cmsg-meta" style="justify-content:flex-end"><span class="cts">${ts}</span><span class="ctag" style="border-color:oklch(68% 0.18 250 / 0.35);color:oklch(68% 0.14 250)">you</span></div><div class="cbubble">${text}</div>`;
1851
+ return el;
1852
+ }
1853
+
1854
+ async function sendChatMessage() {
1855
+ const input = document.getElementById('chat-compose-input');
1856
+ const btn = document.getElementById('chat-send-btn');
1857
+ const text = (input?.value || '').trim();
1858
+ if (!text || !selectedOrg) return;
1859
+ btn.disabled = true;
1860
+ input.value = '';
1861
+ input.style.height = '';
1862
+ try {
1863
+ await fetch(`/api/orgs/${encodeURIComponent(selectedOrg)}/chat`, {
1864
+ method: 'POST',
1865
+ headers: { 'Content-Type': 'application/json' },
1866
+ body: JSON.stringify({ text }),
1867
+ });
1868
+ } catch(_) {}
1869
+ btn.disabled = false;
1870
+ input.focus();
1871
+ }
1872
+
1873
+ function chatComposeKey(e) {
1874
+ if (e.key === 'Enter' && !e.shiftKey) {
1875
+ e.preventDefault();
1876
+ sendChatMessage();
1877
+ }
1878
+ // Auto-resize
1879
+ const ta = e.target;
1880
+ ta.style.height = 'auto';
1881
+ ta.style.height = Math.min(ta.scrollHeight, 120) + 'px';
1882
+ }
1883
+
1798
1884
  async function viewArtifact(filePath, label) {
1799
1885
  const orgName = selectedOrg;
1800
1886
  if (!orgName || !filePath) return;
@@ -5745,6 +5745,50 @@ export async function startServer({ port = 4242, projectDir, openBrowser = true
5745
5745
  return;
5746
5746
  }
5747
5747
 
5748
+ // ---- POST /api/orgs/:name/chat — user sends a message to a running org ----
5749
+ if (req.method === 'POST' && /^\/api\/orgs\/[a-z0-9][a-z0-9_-]{0,63}\/chat$/i.test(url)) {
5750
+ let _chBody = '';
5751
+ for await (const chunk of req) { _chBody += chunk; if (_chBody.length > 65536) { req.destroy(); break; } }
5752
+ try {
5753
+ const _chOrgName = decodeURIComponent(url.split('/')[3]);
5754
+ if (_chOrgName.length > 64 || !/^[a-z0-9][a-z0-9_-]*$/i.test(_chOrgName)) {
5755
+ res.writeHead(400, { 'Content-Type': 'application/json' }); res.end(JSON.stringify({ error: 'Invalid org name' })); return;
5756
+ }
5757
+ let _chPayload = {};
5758
+ try { _chPayload = JSON.parse(_chBody); } catch(_) {}
5759
+ const _chText = String(_chPayload.text || '').trim().slice(0, 4096);
5760
+ if (!_chText) { res.writeHead(400, { 'Content-Type': 'application/json' }); res.end(JSON.stringify({ error: 'text is required' })); return; }
5761
+ const _chRoot = projectDir || process.cwd();
5762
+ const _chMonoDir = _getGitMonomindDir(_chRoot) || path.join(_chRoot, '.monomind');
5763
+ const _chRunId = activeOrgRuns.get(_chOrgName) || _getActiveRunId(_chOrgName, _chRoot);
5764
+ const _chEvent = { type: 'user:message', org: _chOrgName, runId: _chRunId || null, text: _chText, ts: Date.now() };
5765
+ // Write to run JSONL if active run exists
5766
+ if (_chRunId) {
5767
+ const _chRunFile = path.join(_chMonoDir, 'orgs', _chOrgName, 'runs', `${_chRunId}.jsonl`);
5768
+ if (fs.existsSync(_chRunFile)) await appendToFile(_chRunFile, JSON.stringify(_chEvent) + '\n');
5769
+ }
5770
+ // Write to mailbox file so boss agent can pick up on next cycle
5771
+ const _chMailbox = path.join(_chRoot, '.monomind', 'orgs', `${_chOrgName}-threads.json`);
5772
+ try {
5773
+ let _chThreads = { messages: [] };
5774
+ if (fs.existsSync(_chMailbox)) { try { _chThreads = JSON.parse(fs.readFileSync(_chMailbox, 'utf8')); } catch(_) {} }
5775
+ if (!Array.isArray(_chThreads.messages)) _chThreads.messages = [];
5776
+ _chThreads.messages.push({ text: _chText, ts: _chEvent.ts, status: 'pending' });
5777
+ fs.writeFileSync(_chMailbox, JSON.stringify(_chThreads, null, 2));
5778
+ } catch(_) {}
5779
+ // Broadcast to SSE stream clients
5780
+ broadcastMm(_chEvent);
5781
+ const _chFwdClients = runStreamClients.get(_chOrgName);
5782
+ if (_chFwdClients && _chFwdClients.size > 0) {
5783
+ const _chLine = `data: ${JSON.stringify(_chEvent)}\n\n`;
5784
+ for (const _cl of _chFwdClients) { try { _cl.write(_chLine); } catch(_) { _chFwdClients.delete(_cl); } }
5785
+ }
5786
+ res.writeHead(200, { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' });
5787
+ res.end(JSON.stringify({ ok: true }));
5788
+ } catch (e) { res.writeHead(500, { 'Content-Type': 'application/json' }); res.end(JSON.stringify({ error: e.message })); }
5789
+ return;
5790
+ }
5791
+
5748
5792
  // ------------------------------------------------------------------ 404
5749
5793
  res.writeHead(404, { 'Content-Type': 'text/plain' });
5750
5794
  res.end('Not found');
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/update/validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AA0DD,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,gBAAgB,CA0FlB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC7D,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,gBAAgB,CA+ClB"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/update/validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAwDD,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,gBAAgB,CA0FlB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC7D,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,gBAAgB,CA+ClB"}
@@ -35,9 +35,7 @@ function isSafePackageName(p) {
35
35
  }
36
36
  // Known compatibility matrix between monomind packages
37
37
  const COMPATIBILITY_MATRIX = {
38
- '@monomind/cli': {
39
- '@monomind/security': { minVersion: '3.0.0-alpha.1' },
40
- },
38
+ '@monomind/cli': {},
41
39
  '@monoes/monomindcli': {
42
40
  'monofence-ai': { minVersion: '1.0.0' },
43
41
  },
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/update/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../src/update/validator.ts"],"names":[],"mappings":"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"}