@orangepro/orangepro-mcp 0.2.19 → 0.2.21
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/dist/local/operations.js
CHANGED
|
@@ -1825,7 +1825,7 @@ export async function opGenerate(root, opts = {}, deps = defaultDeps()) {
|
|
|
1825
1825
|
// the only command that can surface them. Display-only refresh; a render
|
|
1826
1826
|
// failure must never fail generate.
|
|
1827
1827
|
try {
|
|
1828
|
-
opBehaviorCoverageHtml(root, `${WORKSPACE_DIR}/behavior-coverage.html
|
|
1828
|
+
opBehaviorCoverageHtml(root, `${WORKSPACE_DIR}/behavior-coverage.html`, undefined, { persistBaseline: false });
|
|
1829
1829
|
}
|
|
1830
1830
|
catch {
|
|
1831
1831
|
/* best-effort report refresh */
|
|
@@ -190,6 +190,8 @@ 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-chip.dc-click{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;transition:opacity .15s}
|
|
194
|
+
.delta-chip.dc-click:hover{opacity:.7}
|
|
193
195
|
.delta-hero{margin:14px 0 0;border-radius:9px;padding:14px 18px;font-size:13px;line-height:1.5}
|
|
194
196
|
.delta-hero.dh-alert{background:var(--rbg);border:1px solid var(--rbd);color:var(--ink)}
|
|
195
197
|
.delta-hero.dh-clear{background:var(--gbg);border:1px solid var(--gbd);color:var(--ink2)}
|
|
@@ -202,6 +204,12 @@ nav.tabs{display:flex;gap:2px;margin:18px 0 0;border-bottom:1px solid var(--bd)}
|
|
|
202
204
|
.delta-hero .dh-dropped{color:var(--green)}
|
|
203
205
|
.delta-hero .dh-dropped::before{content:"\\2713 ";}
|
|
204
206
|
.delta-hero .dh-stat{display:inline-flex;gap:12px;margin-top:8px;font-size:12px;font-weight:600;color:var(--muted)}
|
|
207
|
+
.delta-hero .dh-link{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;transition:color .15s}
|
|
208
|
+
.delta-hero .dh-link:hover{color:var(--orange)}
|
|
209
|
+
.delta-hero .dh-stat .dh-stat-link{cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:2px;transition:color .15s}
|
|
210
|
+
.delta-hero .dh-stat .dh-stat-link:hover{color:var(--orange)}
|
|
211
|
+
.risk-card.highlight-pulse{animation:riskPulse .6s ease 2}
|
|
212
|
+
@keyframes riskPulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 0 3px var(--orange)}}
|
|
205
213
|
.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}
|
|
206
214
|
.beh-empty p{margin:0}
|
|
207
215
|
.risk-ep{font-family:var(--mono);font-size:13px;margin:0 0 6px}
|
|
@@ -418,18 +426,45 @@ const D=window.DATA,$=(s)=>document.querySelector(s);
|
|
|
418
426
|
return;
|
|
419
427
|
}
|
|
420
428
|
var chips=[];
|
|
421
|
-
function chip(txt,cls){chips.push('<span class="delta-chip '+(cls||'')+'">'+txt+'</span>');}
|
|
429
|
+
function chip(txt,cls,dataAttr){chips.push('<span class="delta-chip '+(cls||'')+(dataAttr?' dc-click':'')+'"'+(dataAttr?' '+dataAttr:'')+'>'+txt+'</span>');}
|
|
422
430
|
chip('Since '+ago+':','dc-none');
|
|
423
431
|
if(d.totalDelta)chip((d.totalDelta>0?'+':'')+d.totalDelta+' behaviors');
|
|
424
|
-
if(d.provenDelta)chip((d.provenDelta>0?'+':'')+d.provenDelta+' proven',d.provenDelta>0?'dc-up':'dc-risk');
|
|
425
|
-
if(d.associatedDelta)chip((d.associatedDelta>0?'+':'')+d.associatedDelta+' test signal');
|
|
432
|
+
if(d.provenDelta)chip((d.provenDelta>0?'+':'')+d.provenDelta+' proven',d.provenDelta>0?'dc-up':'dc-risk','data-action="proven"');
|
|
433
|
+
if(d.associatedDelta)chip((d.associatedDelta>0?'+':'')+d.associatedDelta+' test signal','','data-action="signal"');
|
|
426
434
|
if(d.generatedDelta)chip((d.generatedDelta>0?'+':'')+d.generatedDelta+' generated tests',d.generatedDelta>0?'dc-up':'');
|
|
427
|
-
d.newRisks.slice(0,3).forEach(function(p){chip('new in top-20: '+p.slice(0,40),'dc-risk');});
|
|
435
|
+
d.newRisks.slice(0,3).forEach(function(p){chip('new in top-20: '+p.slice(0,40),'dc-risk','data-path="'+p.replace(/"/g,'"')+'"');});
|
|
428
436
|
if(d.newRisks.length>3)chip('+'+(d.newRisks.length-3)+' more new risks','dc-risk');
|
|
429
437
|
d.droppedRisks.slice(0,2).forEach(function(p){chip('left top-20: '+p.slice(0,40),'dc-up');});
|
|
430
438
|
el2.innerHTML='<div class="delta-wrap">'+chips.join('')+'</div>';
|
|
439
|
+
el2.addEventListener('click',function(e){
|
|
440
|
+
var c=e.target.closest('[data-path]');
|
|
441
|
+
if(c){scrollToRisk(c.getAttribute('data-path'));return;}
|
|
442
|
+
var a=e.target.closest('[data-action]');
|
|
443
|
+
if(a){
|
|
444
|
+
var act=a.getAttribute('data-action');
|
|
445
|
+
if(act==='signal'){
|
|
446
|
+
var btab=document.querySelector('[data-tab="behaviors"]');
|
|
447
|
+
if(btab)btab.click();
|
|
448
|
+
return;
|
|
449
|
+
}
|
|
450
|
+
var t=D.risks.find(function(r){return r.tags&&r.tags.some(function(tg){return act==='proven'?(tg[0]==='Proven'||tg[0]==='Dynamically Proven'):(tg[0]==='Has tests'||tg[0]==='Test signal');});});
|
|
451
|
+
if(t)scrollToRisk(t.path);
|
|
452
|
+
}
|
|
453
|
+
});
|
|
431
454
|
})();
|
|
432
|
-
// ── Delta Hero: prominent simple-mode section ──
|
|
455
|
+
// ── Delta Hero: prominent simple-mode section (clickable) ──
|
|
456
|
+
function scrollToRisk(path){
|
|
457
|
+
if(!path)return;
|
|
458
|
+
var id='risk-'+path.replace(/[^a-zA-Z0-9]/g,'-');
|
|
459
|
+
var tab=document.querySelector('[data-tab="risks"]');
|
|
460
|
+
if(tab)tab.click();
|
|
461
|
+
// Reset filter to "all" so the target card is visible
|
|
462
|
+
if(typeof activeRiskFilter!=='undefined'){activeRiskFilter='all';renderRiskFilters();renderRisks();}
|
|
463
|
+
setTimeout(function(){
|
|
464
|
+
var el=document.getElementById(id);
|
|
465
|
+
if(el){el.scrollIntoView({behavior:'smooth',block:'center'});el.classList.add('highlight-pulse');setTimeout(function(){el.classList.remove('highlight-pulse')},2400);}
|
|
466
|
+
},150);
|
|
467
|
+
}
|
|
433
468
|
(function(){
|
|
434
469
|
var hero=document.getElementById("delta-hero");
|
|
435
470
|
var d=D.delta;
|
|
@@ -447,7 +482,7 @@ const D=window.DATA,$=(s)=>document.querySelector(s);
|
|
|
447
482
|
headline=d.newRisks.length+' new blind spot'+(d.newRisks.length>1?'s':'')+' since last scan';
|
|
448
483
|
hero.className="delta-hero simple-only dh-alert";
|
|
449
484
|
parts.push('<ul class="dh-list">');
|
|
450
|
-
d.newRisks.forEach(function(r){parts.push('<li class="dh-new">'+r.slice(0,60)+'</li>');});
|
|
485
|
+
d.newRisks.forEach(function(r){parts.push('<li class="dh-new dh-link" data-path="'+r.replace(/"/g,'"')+'">' +r.slice(0,60)+'</li>');});
|
|
451
486
|
parts.push('</ul>');
|
|
452
487
|
} else {
|
|
453
488
|
headline="Your codebase changed since last scan";
|
|
@@ -455,15 +490,21 @@ const D=window.DATA,$=(s)=>document.querySelector(s);
|
|
|
455
490
|
}
|
|
456
491
|
if(d.droppedRisks.length>0){
|
|
457
492
|
parts.push('<ul class="dh-list">');
|
|
458
|
-
d.droppedRisks.forEach(function(r){parts.push('<li class="dh-dropped"
|
|
493
|
+
d.droppedRisks.forEach(function(r){parts.push('<li class="dh-dropped">\\u2713 Resolved: '+r.slice(0,60)+'</li>');});
|
|
459
494
|
parts.push('</ul>');
|
|
460
495
|
}
|
|
461
496
|
var stats=[];
|
|
462
497
|
if(d.totalDelta)stats.push((d.totalDelta>0?'+':'')+d.totalDelta+' behaviors');
|
|
463
|
-
if(d.provenDelta)stats.push((d.provenDelta>0?'+':'')+d.provenDelta+' proven');
|
|
498
|
+
if(d.provenDelta)stats.push('<span class="dh-stat-link" data-action="proven">'+((d.provenDelta>0?'+':'')+d.provenDelta+' proven')+'</span>');
|
|
464
499
|
if(d.generatedDelta)stats.push((d.generatedDelta>0?'+':'')+d.generatedDelta+' tests generated');
|
|
465
500
|
if(stats.length)parts.push('<div class="dh-stat">'+stats.join(' \\u00B7 ')+'</div>');
|
|
466
501
|
hero.innerHTML='<h3>'+headline+'</h3>'+parts.join('');
|
|
502
|
+
hero.addEventListener('click',function(e){
|
|
503
|
+
var li=e.target.closest('[data-path]');
|
|
504
|
+
if(li){scrollToRisk(li.getAttribute('data-path'));return;}
|
|
505
|
+
var stat=e.target.closest('[data-action="proven"]');
|
|
506
|
+
if(stat){var pr=D.risks.find(function(r){return r.tags&&r.tags.some(function(t){return t[0]==='Proven'||t[0]==='Dynamically Proven'});});if(pr)scrollToRisk(pr.path);}
|
|
507
|
+
});
|
|
467
508
|
})();
|
|
468
509
|
// ── System map: deterministic hero drawn from D.mapModel ──
|
|
469
510
|
(function(){
|
|
@@ -876,7 +917,7 @@ function riskCardHtml(r){
|
|
|
876
917
|
}
|
|
877
918
|
function renderRisks(){
|
|
878
919
|
riskList.innerHTML="";
|
|
879
|
-
D.risks.filter(riskMatchesFilter).forEach(r=>
|
|
920
|
+
D.risks.filter(riskMatchesFilter).forEach(r=>{const card=el("div","risk-card",riskCardHtml(r));card.setAttribute("data-path",r.path);card.id="risk-"+r.path.replace(/[^a-zA-Z0-9]/g,"-");riskList.append(card);});
|
|
880
921
|
if(activeRiskFilter==="all"&&D.generatedTotal){
|
|
881
922
|
const hiddenGeneratedFlows=Math.max(0,generatedRiskCount-D.risks.filter(riskMatchesFilter).length);
|
|
882
923
|
const remainingRiskFlows=Math.max(0,D.risks.length-generatedRiskCount);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orangepro/orangepro-mcp",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.21",
|
|
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",
|