@orangepro/orangepro-mcp 0.2.19 → 0.2.20
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,37 @@ 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
|
+
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');});});
|
|
446
|
+
if(t)scrollToRisk(t.path);
|
|
447
|
+
}
|
|
448
|
+
});
|
|
431
449
|
})();
|
|
432
|
-
// ── Delta Hero: prominent simple-mode section ──
|
|
450
|
+
// ── Delta Hero: prominent simple-mode section (clickable) ──
|
|
451
|
+
function scrollToRisk(path){
|
|
452
|
+
var id='risk-'+path.replace(/[^a-zA-Z0-9]/g,'-');
|
|
453
|
+
var tab=document.querySelector('[data-tab="risks"]');
|
|
454
|
+
if(tab)tab.click();
|
|
455
|
+
setTimeout(function(){
|
|
456
|
+
var el=document.getElementById(id);
|
|
457
|
+
if(el){el.scrollIntoView({behavior:'smooth',block:'center'});el.classList.add('highlight-pulse');setTimeout(function(){el.classList.remove('highlight-pulse')},2400);}
|
|
458
|
+
},150);
|
|
459
|
+
}
|
|
433
460
|
(function(){
|
|
434
461
|
var hero=document.getElementById("delta-hero");
|
|
435
462
|
var d=D.delta;
|
|
@@ -447,7 +474,7 @@ const D=window.DATA,$=(s)=>document.querySelector(s);
|
|
|
447
474
|
headline=d.newRisks.length+' new blind spot'+(d.newRisks.length>1?'s':'')+' since last scan';
|
|
448
475
|
hero.className="delta-hero simple-only dh-alert";
|
|
449
476
|
parts.push('<ul class="dh-list">');
|
|
450
|
-
d.newRisks.forEach(function(r){parts.push('<li class="dh-new">'+r.slice(0,60)+'</li>');});
|
|
477
|
+
d.newRisks.forEach(function(r){parts.push('<li class="dh-new dh-link" data-path="'+r.replace(/"/g,'"')+'">' +r.slice(0,60)+'</li>');});
|
|
451
478
|
parts.push('</ul>');
|
|
452
479
|
} else {
|
|
453
480
|
headline="Your codebase changed since last scan";
|
|
@@ -455,15 +482,21 @@ const D=window.DATA,$=(s)=>document.querySelector(s);
|
|
|
455
482
|
}
|
|
456
483
|
if(d.droppedRisks.length>0){
|
|
457
484
|
parts.push('<ul class="dh-list">');
|
|
458
|
-
d.droppedRisks.forEach(function(r){parts.push('<li class="dh-dropped"
|
|
485
|
+
d.droppedRisks.forEach(function(r){parts.push('<li class="dh-dropped">\\u2713 Resolved: '+r.slice(0,60)+'</li>');});
|
|
459
486
|
parts.push('</ul>');
|
|
460
487
|
}
|
|
461
488
|
var stats=[];
|
|
462
489
|
if(d.totalDelta)stats.push((d.totalDelta>0?'+':'')+d.totalDelta+' behaviors');
|
|
463
|
-
if(d.provenDelta)stats.push((d.provenDelta>0?'+':'')+d.provenDelta+' proven');
|
|
490
|
+
if(d.provenDelta)stats.push('<span class="dh-stat-link" data-action="proven">'+((d.provenDelta>0?'+':'')+d.provenDelta+' proven')+'</span>');
|
|
464
491
|
if(d.generatedDelta)stats.push((d.generatedDelta>0?'+':'')+d.generatedDelta+' tests generated');
|
|
465
492
|
if(stats.length)parts.push('<div class="dh-stat">'+stats.join(' \\u00B7 ')+'</div>');
|
|
466
493
|
hero.innerHTML='<h3>'+headline+'</h3>'+parts.join('');
|
|
494
|
+
hero.addEventListener('click',function(e){
|
|
495
|
+
var li=e.target.closest('[data-path]');
|
|
496
|
+
if(li){scrollToRisk(li.getAttribute('data-path'));return;}
|
|
497
|
+
var stat=e.target.closest('[data-action="proven"]');
|
|
498
|
+
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);}
|
|
499
|
+
});
|
|
467
500
|
})();
|
|
468
501
|
// ── System map: deterministic hero drawn from D.mapModel ──
|
|
469
502
|
(function(){
|
|
@@ -876,7 +909,7 @@ function riskCardHtml(r){
|
|
|
876
909
|
}
|
|
877
910
|
function renderRisks(){
|
|
878
911
|
riskList.innerHTML="";
|
|
879
|
-
D.risks.filter(riskMatchesFilter).forEach(r=>
|
|
912
|
+
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
913
|
if(activeRiskFilter==="all"&&D.generatedTotal){
|
|
881
914
|
const hiddenGeneratedFlows=Math.max(0,generatedRiskCount-D.risks.filter(riskMatchesFilter).length);
|
|
882
915
|
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.20",
|
|
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",
|