@kenhkl/agent-moss 0.11.0 → 0.11.3

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.
@@ -698,12 +698,28 @@ function render_agents() {
698
698
  el('page-agents').innerHTML = html;
699
699
  }
700
700
  function renderAgentRuleItem(agentId, catName, r) {
701
- const label = r.value || r.pattern || r.keyword || r.path || r.id || JSON.stringify(r).slice(0, 60);
702
- const sub = r.reason || r.risk_level || r.lang || r.desc || r.deny_mode || '';
703
- const removed = r.source_removed ? '<span class="ag-overridden-hint" title="源码已移除该规则">已移除</span>' : '';
701
+ // Agent 定制规则按类别字段不同,分别提取展示维度:
702
+ // builtin_safe_action_types / builtin_safe_skills → value(白名单,无 risk)
703
+ // extra_command_patterns → pattern + risk_level + risk_type + reason
704
+ // extra_injection_keywords → keyword + risk_level + lang
705
+ // extra_sensitive_paths → path + risk_level + desc
706
+ const isValue = catName === 'builtin_safe_action_types' || catName === 'builtin_safe_skills';
707
+ const patternDisplay = r.value || r.pattern || r.keyword || r.path || r.id || JSON.stringify(r).slice(0, 60);
708
+ const reasonDisplay = r.reason || r.desc || r.lang || '';
709
+ const tagLine = (r.builtin !== false ? '<span class="ag-badge ag-badge-builtin" title="源码内置规则">内置</span>' : '<span class="ag-badge ag-badge-custom">自定义</span>')
710
+ + (r.source_removed ? '<span class="ag-badge ag-badge-removed" title="此规则已从默认规则集移除,仅作历史保留">已移除</span>' : '')
711
+ + (isValue ? '' : (riskBadge(r.risk_level) + (r.risk_type ? riskTypeBadge(r.risk_type) : '')));
712
+ const patternLabel = isValue ? '白名单' : (r.path ? '敏感路径' : (r.keyword ? '触发关键词' : (r.pattern ? '规则' : '规则')));
713
+ const reasonLabel = r.reason || r.desc ? '原因' : (r.lang ? '语言' : '说明');
714
+ const tooltip = `${patternLabel}: ${patternDisplay}\n${reasonLabel}: ${reasonDisplay || '(无)'}`;
704
715
  const delBtn = r.builtin ? '' : `<button class="ag-btn ag-btn-ghost ag-btn-sm" onclick="deleteAgentRule('${agentId}','${catName}',${JSON.stringify(r).replace(/"/g,'&quot;')})">删除</button>`;
705
- return `<div class="ag-rule-item">
706
- <div class="ag-rule-name">${escapeHtml(label)} ${removed}${sub ? `<span class="ag-rule-sub">— ${escapeHtml(sub)}</span>` : ''}</div>
716
+ return `<div class="ag-rule-item" title="${escapeHtml(tooltip)}">
717
+ <div class="ag-rule-body">
718
+ <div class="ag-rule-tags">${tagLine}</div>
719
+ <div class="ag-rule-pattern"><span class="ag-rule-field-label">${patternLabel}:</span> ${escapeHtml(patternDisplay)}</div>
720
+ ${reasonDisplay ? `<div class="ag-rule-reason"><span class="ag-rule-field-label">${reasonLabel}:</span> ${escapeHtml(reasonDisplay)}</div>` : ''}
721
+ ${r.id ? `<div class="ag-rule-id">ID: ${escapeHtml(r.id)}</div>` : ''}
722
+ </div>
707
723
  <div class="ag-rule-controls">${toggle(r.enabled, false, `toggleAgentRule('${agentId}','${catName}',${JSON.stringify(r).replace(/"/g,'&quot;')},${!r.enabled})`)}${delBtn}</div>
708
724
  </div>`;
709
725
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenhkl/agent-moss",
3
- "version": "0.11.0",
3
+ "version": "0.11.3",
4
4
  "description": "Multi-layer security analysis engine for AI agents (TypeScript)",
5
5
  "type": "module",
6
6
  "main": "dist/server.js",