fullcourtdefense-cli 1.7.14 → 1.7.16

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.
@@ -1111,7 +1111,7 @@ function compactScanHtml(args) {
1111
1111
  .workflowCard { min-height: 118px; }
1112
1112
  .workflowCard b { font-size: 18px; }
1113
1113
  .workflowCard span { font-size: 13px; }
1114
- .landingScanGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
1114
+ .landingScanGrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
1115
1115
  .scanTypeGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 12px 0; }
1116
1116
  .advancedScanGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 8px 0 12px; }
1117
1117
  .card:hover, .card.active { border-color: #2563eb; background: #eff6ff; transform: translateY(-1px); }
@@ -1202,6 +1202,7 @@ function compactScanHtml(args) {
1202
1202
  <div class="landingScanGrid">
1203
1203
  <button class="card workflowCard" data-workflow="bot"><b>Bot Scan</b><span>Red-team an internal bot, agent, or chat API.</span></button>
1204
1204
  <button class="card workflowCard" data-workflow="posture"><b>Security Posture Scan</b><span>Run web-style endpoint security checkup.</span></button>
1205
+ <button class="card workflowCard" data-workflow="mcp"><b>MCP Scan</b><span>Scan an MCP server or protected gateway for risky tool paths.</span></button>
1205
1206
  </div>
1206
1207
  </div>
1207
1208
  <div class="menuGroup">
@@ -1211,7 +1212,7 @@ function compactScanHtml(args) {
1211
1212
  </div>
1212
1213
  </section>
1213
1214
 
1214
- <section class="panel">
1215
+ <section class="panel hidden" id="workflowPanel">
1215
1216
  <div id="step-1" class="stepSection">
1216
1217
  <div class="sectionTitle">
1217
1218
  <div>
@@ -1293,7 +1294,7 @@ function compactScanHtml(args) {
1293
1294
  </div>
1294
1295
 
1295
1296
  <div id="posture-fields" class="hidden">
1296
- <div class="note">Security Posture Scan checks endpoint configuration, auth exposure, headers, transport, and operational security signals. This matches the web Security Checkup flow.</div>
1297
+ <div class="note">Security Posture Scan checks HTTP endpoint configuration, auth exposure, headers, transport, and operational security signals. To test MCP tools, choose MCP Scan from the Security Scans cards.</div>
1297
1298
  <div class="two">
1298
1299
  <div>
1299
1300
  <label>AI endpoint URL</label>
@@ -1414,15 +1415,16 @@ Local targets stay on this machine; saved scan reports go to Full Court Defense.
1414
1415
  </main>
1415
1416
  <script>
1416
1417
  const scanTargets = ['endpoint','posture','rag','mcp'];
1417
- let target = 'runner';
1418
+ let target = 'home';
1418
1419
  let step = 1;
1419
1420
  const qs = new URLSearchParams(location.search);
1420
1421
  if (['runner','endpoint','posture','rag','mcp','help'].includes(qs.get('target'))) target = qs.get('target');
1421
1422
  const byId = id => document.getElementById(id);
1422
- const workflow = () => target === 'endpoint' ? 'bot' : target === 'posture' ? 'posture' : target;
1423
+ const workflow = () => target === 'endpoint' ? 'bot' : target === 'posture' ? 'posture' : target === 'home' ? '' : target;
1423
1424
  const sync = () => {
1424
1425
  document.querySelectorAll('.workflowCard').forEach(c => c.classList.toggle('active', c.dataset.workflow === workflow()));
1425
1426
  document.querySelectorAll('.scanTypeCard').forEach(c => c.classList.toggle('active', c.dataset.target === target));
1427
+ byId('workflowPanel').classList.toggle('hidden', target === 'home');
1426
1428
  ['runner','endpoint','posture','rag','mcp','help'].forEach(id => byId(id + '-fields').classList.toggle('hidden', id !== target));
1427
1429
  const scanTarget = scanTargets.includes(target);
1428
1430
  byId('scan-picker').classList.toggle('hidden', !scanTarget);
@@ -1438,7 +1440,7 @@ Local targets stay on this machine; saved scan reports go to Full Court Defense.
1438
1440
  : target === 'help'
1439
1441
  ? 'Choose one-off tool run or local red-team scan.'
1440
1442
  : 'Select Endpoint, RAG, or MCP, then connect the internal target.';
1441
- if (!scanTarget) setStep(1);
1443
+ if (!scanTarget || target === 'home') setStep(1);
1442
1444
  };
1443
1445
  const setStep = next => {
1444
1446
  step = next;
@@ -1451,6 +1453,7 @@ Local targets stay on this machine; saved scan reports go to Full Court Defense.
1451
1453
  document.querySelectorAll('.workflowCard').forEach(c => c.onclick = () => {
1452
1454
  target = c.dataset.workflow === 'bot' ? 'endpoint' : c.dataset.workflow;
1453
1455
  sync();
1456
+ byId('workflowPanel').scrollIntoView({ behavior: 'smooth', block: 'start' });
1454
1457
  });
1455
1458
  document.querySelectorAll('.scanTypeCard').forEach(c => c.onclick = () => {
1456
1459
  target = c.dataset.target;
package/dist/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "1.7.14"
2
+ "version": "1.7.16"
3
3
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fullcourtdefense-cli",
3
- "version": "1.7.14",
3
+ "version": "1.7.16",
4
4
  "description": "Full Court Defense CLI — security scanning for AI agents from your terminal",
5
5
  "main": "dist/index.js",
6
6
  "bin": {