nothumanallowed 4.0.0 → 4.0.2

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": "nothumanallowed",
3
- "version": "4.0.0",
3
+ "version": "4.0.2",
4
4
  "description": "NotHumanAllowed — 38 AI agents for security, code, DevOps, data & daily ops. Ask agents directly, plan your day with 5 specialist agents, manage tasks, connect Gmail + Calendar.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -122,12 +122,15 @@ input:focus,textarea:focus{border-color:var(--green3)}
122
122
  .event__location{color:var(--dim);font-size:11px}
123
123
 
124
124
  /* ---- AGENTS ---- */
125
- .agents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
126
- @media(min-width:901px){.agents-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}
127
- .agent-card{padding:12px;text-align:center;cursor:pointer;transition:border-color .15s}
128
- .agent-card:hover{border-color:var(--green3)}
129
- .agent-card__name{color:var(--green);font-weight:700;font-size:13px;margin-bottom:4px}
130
- .agent-card__cat{font-size:9px;color:var(--dim);text-transform:uppercase}
125
+ .agents-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
126
+ @media(min-width:600px){.agents-grid{grid-template-columns:repeat(4,1fr)}}
127
+ @media(min-width:901px){.agents-grid{grid-template-columns:repeat(5,1fr)}}
128
+ .agent-card{padding:10px;text-align:center;cursor:pointer;transition:border-color .15s,transform .15s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
129
+ .agent-card:hover{border-color:var(--green3);transform:scale(1.03)}
130
+ .agent-card__icon{font-size:20px;line-height:1}
131
+ .agent-card__name{color:var(--green);font-weight:700;font-size:11px}
132
+ .agent-card__tagline{font-size:9px;color:var(--dim);line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
133
+ .agent-card__cat{display:none}
131
134
 
132
135
  /* ---- MODAL ---- */
133
136
  .modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:300;align-items:center;justify-content:center}
@@ -485,15 +488,50 @@ function openDayDetail(dateStr){
485
488
  }
486
489
 
487
490
  // ---- AGENTS ----
491
+ var AGENT_ICONS = {
492
+ saber:'\\u{1F6E1}',zero:'\\u{1F50D}',veritas:'\\u2713',ade:'\\u{1F52C}',heimdall:'\\u{1F512}',
493
+ jarvis:'\\u{1F4BB}',forge:'\\u2699',pipe:'\\u{1F527}',shell:'\\u{1F4DF}',glitch:'\\u{1F41B}',
494
+ oracle:'\\u{1F4CA}',logos:'\\u{1F9EE}',atlas:'\\u{1F5FA}',cartographer:'\\u{1F30D}',
495
+ scheherazade:'\\u270D',quill:'\\u{1F4DD}',muse:'\\u{1F3A8}',murasaki:'\\u{1F58C}',
496
+ hermes:'\\u{1F517}',link:'\\u{1F50C}',mercury:'\\u{1F310}',
497
+ shogun:'\\u2638',flux:'\\u{1F504}',cron:'\\u23F0',
498
+ babel:'\\u{1F30E}',polyglot:'\\u{1F5E3}',herald:'\\u{1F4E2}',
499
+ echo:'\\u{1F4E1}',macro:'\\u26A1',
500
+ prometheus:'\\u{1F525}',cassandra:'\\u26A0',athena:'\\u{1F9E0}',sauron:'\\u{1F441}',conductor:'\\u{1F3BC}',
501
+ navi:'\\u{1F9ED}',edi:'\\u{1F4C8}',tempest:'\\u26C8',epicure:'\\u{1F37D}'
502
+ };
488
503
  function renderAgents(el){
489
504
  if(agentsList.length===0){el.innerHTML='<div style="text-align:center;padding:40px"><div class="spinner"></div><div style="color:var(--dim)">Loading agents...</div></div>';loadAgents().then(function(){renderAgents(el)});return}
490
- var h='<div class="agents-grid">';
491
- agentsList.forEach(function(a){
492
- h+='<div class="card agent-card" onclick="openAgent(\\''+esc(a.name||a.agentName)+'\\',\\''+esc(a.displayName||a.name)+'\\')"><div class="agent-card__name">'+esc(a.displayName||a.name)+'</div><div class="agent-card__cat">'+esc(a.category||'')+'</div></div>';
505
+
506
+ // Category filter
507
+ var cats={};agentsList.forEach(function(a){var c=a.category||'other';cats[c]=(cats[c]||0)+1});
508
+ var h='<div style="display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px">';
509
+ h+='<button class="btn btn--secondary" style="font-size:11px" onclick="agentFilter=null;renderAgents(document.getElementById(\\x27content\\x27))">All ('+agentsList.length+')</button>';
510
+ Object.keys(cats).sort().forEach(function(c){
511
+ h+='<button class="btn btn--secondary" style="font-size:11px" onclick="agentFilter=\\x27'+esc(c)+'\\x27;renderAgents(document.getElementById(\\x27content\\x27))">'+esc(c)+' ('+cats[c]+')</button>';
512
+ });
513
+ h+='</div>';
514
+
515
+ var filtered=agentFilter?agentsList.filter(function(a){return a.category===agentFilter}):agentsList;
516
+
517
+ h+='<div class="agents-grid">';
518
+ filtered.forEach(function(a){
519
+ var name=a.name||a.agentName;
520
+ var display=a.displayName||name;
521
+ var icon=AGENT_ICONS[name.toLowerCase()]||'\\u{1F916}';
522
+ var tagline=a.tagline||a.description||'';
523
+ var cat=a.category||'';
524
+ h+='<div class="card agent-card" onclick="openAgent(\\''+esc(name)+'\\',\\''+esc(display)+'\\')">'+
525
+ '<div class="agent-card__icon">'+icon+'</div>'+
526
+ '<div class="agent-card__name">'+esc(display)+'</div>'+
527
+ '<div class="agent-card__tagline">'+esc(tagline.slice(0,60))+'</div>'+
528
+ '<div class="agent-card__cat">'+esc(cat)+'</div>'+
529
+ '</div>';
493
530
  });
494
531
  h+='</div>';
495
532
  el.innerHTML=h;
496
533
  }
534
+ var agentFilter=null;
497
535
  function openAgent(name,display){
498
536
  selectedAgent=name;
499
537
  attachedFileContent=null;attachedFileName=null;