@orangepro/orangepro-mcp 0.2.18 → 0.2.19

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.
@@ -190,6 +190,18 @@ nav.tabs{display:flex;gap:2px;margin:18px 0 0;border-bottom:1px solid var(--bd)}
190
190
  .delta-chip.dc-up{border-color:var(--green);color:var(--green)}
191
191
  .delta-chip.dc-risk{border-color:var(--red);color:var(--red)}
192
192
  .delta-chip.dc-none{color:var(--muted)}
193
+ .delta-hero{margin:14px 0 0;border-radius:9px;padding:14px 18px;font-size:13px;line-height:1.5}
194
+ .delta-hero.dh-alert{background:var(--rbg);border:1px solid var(--rbd);color:var(--ink)}
195
+ .delta-hero.dh-clear{background:var(--gbg);border:1px solid var(--gbd);color:var(--ink2)}
196
+ .delta-hero.dh-info{background:var(--s1);border:1px solid var(--bd);color:var(--ink2)}
197
+ .delta-hero h3{font-size:15px;font-weight:700;margin:0 0 6px}
198
+ .delta-hero .dh-list{margin:6px 0 0;padding-left:16px;font-family:var(--mono);font-size:12px;list-style:none}
199
+ .delta-hero .dh-list li{padding:2px 0}
200
+ .delta-hero .dh-new{color:var(--red)}
201
+ .delta-hero .dh-new::before{content:"\\25B2 ";font-size:9px}
202
+ .delta-hero .dh-dropped{color:var(--green)}
203
+ .delta-hero .dh-dropped::before{content:"\\2713 ";}
204
+ .delta-hero .dh-stat{display:inline-flex;gap:12px;margin-top:8px;font-size:12px;font-weight:600;color:var(--muted)}
193
205
  .beh-empty{grid-column:1/-1;padding:22px;border:1px dashed var(--bd2);border-radius:10px;color:var(--muted);font-size:12.5px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
194
206
  .beh-empty p{margin:0}
195
207
  .risk-ep{font-family:var(--mono);font-size:13px;margin:0 0 6px}
@@ -299,6 +311,8 @@ body[data-mode="expert"] .simple-only{display:none!important}
299
311
  <section class="kpis" id="kpis"></section>
300
312
  <p class="metric-scope" id="metric-scope"></p>
301
313
 
314
+ <div class="delta-hero simple-only" id="delta-hero"></div>
315
+
302
316
  <nav class="tabs simple-only" role="tablist">
303
317
  <button class="tab" role="tab" aria-selected="true" data-tab="risks">Fix These <span class="tc" id="t-risk-s"></span></button>
304
318
  <button class="tab" role="tab" aria-selected="false" data-tab="codebase">Your Code</button>
@@ -415,6 +429,42 @@ const D=window.DATA,$=(s)=>document.querySelector(s);
415
429
  d.droppedRisks.slice(0,2).forEach(function(p){chip('left top-20: '+p.slice(0,40),'dc-up');});
416
430
  el2.innerHTML='<div class="delta-wrap">'+chips.join('')+'</div>';
417
431
  })();
432
+ // ── Delta Hero: prominent simple-mode section ──
433
+ (function(){
434
+ var hero=document.getElementById("delta-hero");
435
+ var d=D.delta;
436
+ if(!hero||d===undefined||d===null)return;
437
+ if(!d.changed){
438
+ var when=new Date(d.baselineTs);
439
+ var ago=isNaN(when.getTime())?"last run":when.toLocaleDateString();
440
+ hero.className="delta-hero simple-only dh-clear";
441
+ hero.innerHTML='<h3>\\u2713 No new blind spots since '+ago+'</h3><p>Your risk profile is unchanged.</p>';
442
+ return;
443
+ }
444
+ var parts=[];
445
+ var headline="";
446
+ if(d.newRisks.length>0){
447
+ headline=d.newRisks.length+' new blind spot'+(d.newRisks.length>1?'s':'')+' since last scan';
448
+ hero.className="delta-hero simple-only dh-alert";
449
+ parts.push('<ul class="dh-list">');
450
+ d.newRisks.forEach(function(r){parts.push('<li class="dh-new">'+r.slice(0,60)+'</li>');});
451
+ parts.push('</ul>');
452
+ } else {
453
+ headline="Your codebase changed since last scan";
454
+ hero.className="delta-hero simple-only dh-info";
455
+ }
456
+ if(d.droppedRisks.length>0){
457
+ parts.push('<ul class="dh-list">');
458
+ d.droppedRisks.forEach(function(r){parts.push('<li class="dh-dropped">Resolved: '+r.slice(0,60)+'</li>');});
459
+ parts.push('</ul>');
460
+ }
461
+ var stats=[];
462
+ if(d.totalDelta)stats.push((d.totalDelta>0?'+':'')+d.totalDelta+' behaviors');
463
+ if(d.provenDelta)stats.push((d.provenDelta>0?'+':'')+d.provenDelta+' proven');
464
+ if(d.generatedDelta)stats.push((d.generatedDelta>0?'+':'')+d.generatedDelta+' tests generated');
465
+ if(stats.length)parts.push('<div class="dh-stat">'+stats.join(' \\u00B7 ')+'</div>');
466
+ hero.innerHTML='<h3>'+headline+'</h3>'+parts.join('');
467
+ })();
418
468
  // ── System map: deterministic hero drawn from D.mapModel ──
419
469
  (function(){
420
470
  var M=D.mapModel;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orangepro/orangepro-mcp",
3
- "version": "0.2.18",
3
+ "version": "0.2.19",
4
4
  "private": false,
5
5
  "description": "OrangePro (`opro`) — a local-first, BYOK CLI + MCP server that builds an evidence graph from a local checkout, ingests runtime coverage, and generates grounded tests. Metadata-only exports; no source upload; generated tests stay local.",
6
6
  "license": "MIT",