@axiomatic-labs/claudeflow 2.13.80 → 2.13.82

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.
Files changed (2) hide show
  1. package/lib/panel.js +12 -2
  2. package/package.json +1 -1
package/lib/panel.js CHANGED
@@ -784,7 +784,7 @@ details[open] summary { padding-bottom: 8px; border-bottom: 1px solid var(--bord
784
784
  .btn-warn { background: var(--panel); border: 1px solid rgba(245,194,52,0.5); color: var(--warn, #f5c234); padding: 6px 12px; border-radius: 6px; cursor: pointer; font: inherit; }
785
785
  .btn-warn:hover { border-color: var(--warn, #f5c234); background: rgba(245,194,52,0.08); }
786
786
  .btn-warn:disabled { opacity: 0.4; cursor: not-allowed; }
787
- .logs-clear-btn { margin-left: auto; color: var(--err); border-color: rgba(248,81,73,0.4); }
787
+ .logs-clear-btn { margin-left: auto; background: var(--panel); color: var(--err); border: 1px solid rgba(248,81,73,0.4); padding: 6px 12px; border-radius: 6px; cursor: pointer; font: inherit; font-size: 12px; }
788
788
  .logs-clear-btn:hover { border-color: var(--err); background: rgba(248,81,73,0.08); }
789
789
  .logs-clear-btn:disabled { opacity: 0.4; cursor: not-allowed; color: var(--muted); border-color: var(--border); }
790
790
  .logs-clear-btn:disabled:hover { border-color: var(--border); background: var(--panel); }
@@ -1037,6 +1037,16 @@ function severityFor(id) {
1037
1037
  if (s.observer.servers && s.observer.servers.some((sr) => sr.status === 'unhealthy' || sr.status === 'exited')) return 'warn';
1038
1038
  return 'ok';
1039
1039
  }
1040
+ case 'validators': {
1041
+ if (!s.validators || !s.validators.available) return 'info';
1042
+ // Block > error > pass > skip. Block is the actionable state — the
1043
+ // hook actually halted the agent. Surface it the same way Observer
1044
+ // surfaces unresolved incidents (warn = amber dot in the nav).
1045
+ if (s.validators.stats && s.validators.stats.block > 0) return 'warn';
1046
+ if (s.validators.stats && s.validators.stats.error > 0) return 'warn';
1047
+ if (s.validators.stats && s.validators.stats.pass > 0) return 'ok';
1048
+ return 'info';
1049
+ }
1040
1050
  case 'setupContext': return !s.setupContext.exists ? 'err' : (s.setupContext.toolingComplete ? 'ok' : 'warn');
1041
1051
  case 'activeRun': return s.activeRun.active ? 'info' : 'info';
1042
1052
  case 'doctor': return s.doctor.issueCount > 0 ? 'warn' : 'ok';
@@ -1748,7 +1758,7 @@ function renderValidators() {
1748
1758
  </div>\`;
1749
1759
 
1750
1760
  return \`<h2>Validators
1751
- <button id="clear-validators" class="btn btn-ghost" style="float:right;font-size:12px;" data-scope="\${escapeHtml(validatorsScopeFilter)}">\${clearLabel}</button>
1761
+ <button id="clear-validators" class="logs-clear-btn" style="float:right;" data-scope="\${escapeHtml(validatorsScopeFilter)}">\${clearLabel}</button>
1752
1762
  </h2>
1753
1763
  <p class="muted" style="margin-top:0;">Last updated \${formatRelativeTime(v.updated_at)} · \${v.stats.total} total run(s): \${v.stats.pass} pass, \${v.stats.block} block, \${v.stats.skip} skip, \${v.stats.error} error.</p>
1754
1764
  <div class="card" style="padding:10px 14px;margin:12px 0;">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axiomatic-labs/claudeflow",
3
- "version": "2.13.80",
3
+ "version": "2.13.82",
4
4
  "description": "Claudeflow — AI-powered development toolkit for Claude Code. Skills, agents, hooks, and quality gates that ship production apps.",
5
5
  "bin": {
6
6
  "claudeflow": "./bin/cli.js"