Skip to content

Commit 7104563

Browse files
hyperpolymathclaude
andcommitted
feat: add 6 NeSy + Agentic monitoring panels (full panel pipeline)
NeSy panels: - Harmonization Monitor: live verdict feed with stats - Drift Dashboard: 6-category drift detection + alerts - Reasoning Modes: mode selector with symbolic/neural indicators Agentic panels: - OODA Session Monitor: live sessions + state machine diagram - Safety Gate: pending approvals queue + approve/deny + history - Coordination View: multi-agent topology + strategy selector Each panel includes clade definition, model, engine, commands, and component (30 files total). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 5a25602 commit 7104563

30 files changed

Lines changed: 3618 additions & 0 deletions
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
#
4+
# Agent Coordination View Panel Clade — Multi-Agent Topology and Strategy
5+
6+
[clade-metadata]
7+
id = "agent-coordination"
8+
name = "Agent Coordination View"
9+
short-name = "AC"
10+
version = "1.0.0"
11+
kind = "viewer"
12+
icon = "git-branch"
13+
description = "Coordination view — displays multi-agent topology, coordination strategies, and memory type indicators for connected agent nodes."
14+
15+
[clade-traits]
16+
has-backend = true # Topology and strategy data via BoJ cartridge
17+
has-scanning = false
18+
has-persistence = false
19+
has-work-items = false
20+
has-priority-ordering = false
21+
has-customisation = true # Strategy selection, topology filtering
22+
is-directive = true # Can set coordination strategy
23+
is-readonly = false
24+
25+
[clade-capabilities]
26+
capabilities = [
27+
"TopologyVisualization", # Agent nodes connected by relationship lines
28+
"StrategySelection", # Choose from 6 coordination strategies
29+
"MemoryTypeIndicators", # Show memory types on each agent node
30+
"MultiAgentDetection", # Detect multi-agent configurations
31+
"StrategyDescriptions", # Rich descriptions of each strategy
32+
"PersistenceIndicators", # Identify persistent vs ephemeral memory
33+
]
34+
35+
[clade-panel-integration]
36+
panel-id = "PanelAgentCoordination"
37+
model-module = "AgentCoordinationModel"
38+
component-module = "AgentCoordination"
39+
command-module = "AgentCoordinationCmd"
40+
41+
[clade-related]
42+
parent = "agentic-bridge"
43+
sibling = "agent-ooda"
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
#
4+
# OODA Session Monitor Panel Clade — Agent OODA Loop Lifecycle Tracking
5+
6+
[clade-metadata]
7+
id = "agent-ooda"
8+
name = "OODA Session Monitor"
9+
short-name = "AO"
10+
version = "1.0.0"
11+
kind = "viewer"
12+
icon = "refresh-cw"
13+
description = "OODA session monitor — tracks Observe/Orient/Decide/Act agent lifecycles with loop counting, health indicators, and halt controls."
14+
15+
[clade-traits]
16+
has-backend = true # Session listing and control via BoJ cartridge
17+
has-scanning = false
18+
has-persistence = false
19+
has-work-items = false
20+
has-priority-ordering = false
21+
has-customisation = true # Session filtering, detail selection
22+
is-directive = true # Can advance/halt agent sessions
23+
is-readonly = false
24+
25+
[clade-capabilities]
26+
capabilities = [
27+
"SessionListing", # List all active OODA sessions
28+
"SessionDetail", # Detailed view of selected session
29+
"StateTracking", # Observe/Orient/Decide/Act/Halted states
30+
"LoopCounting", # Track OODA loop iterations
31+
"SessionHealth", # Health indicators per session
32+
"AdvanceControl", # Manually advance agent state
33+
"HaltControl", # Emergency halt an agent session
34+
]
35+
36+
[clade-panel-integration]
37+
panel-id = "PanelAgentOoda"
38+
model-module = "AgentOodaModel"
39+
component-module = "AgentOoda"
40+
command-module = "AgentOodaCmd"
41+
42+
[clade-related]
43+
parent = "agentic-bridge"
44+
sibling = "agent-safety"
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
#
4+
# Agent Safety Gate Panel Clade — Tool Call Safety Review and Approval
5+
6+
[clade-metadata]
7+
id = "agent-safety"
8+
name = "Agent Safety Gate"
9+
short-name = "AS"
10+
version = "1.0.0"
11+
kind = "viewer"
12+
icon = "shield"
13+
description = "Safety gate — reviews agent tool calls against safety policies, queues dangerous operations for human approval, and tracks approval/denial history."
14+
15+
[clade-traits]
16+
has-backend = true # Safety checks via BoJ cartridge
17+
has-scanning = false
18+
has-persistence = true # Event history persisted
19+
has-work-items = true # Pending approvals are work items
20+
has-priority-ordering = true # Pending items ordered by risk
21+
has-customisation = true # Filter by outcome, agent
22+
is-directive = true # Can approve/deny pending operations
23+
is-readonly = false
24+
25+
[clade-capabilities]
26+
capabilities = [
27+
"PendingApprovals", # Queue of tool calls awaiting human review
28+
"ApproveAction", # Approve a pending tool call
29+
"DenyAction", # Deny a pending tool call
30+
"SafetyHistory", # Chronological event history
31+
"SideEffectDetection", # Detect tool calls with side effects
32+
"EscalationTracking", # Track escalated operations
33+
"StatsOverview", # Approved/denied/escalated counts
34+
]
35+
36+
[clade-panel-integration]
37+
panel-id = "PanelAgentSafety"
38+
model-module = "AgentSafetyModel"
39+
component-module = "AgentSafety"
40+
command-module = "AgentSafetyCmd"
41+
42+
[clade-related]
43+
parent = "agentic-bridge"
44+
sibling = "agent-ooda"
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
#
4+
# NeSy Drift Dashboard Panel Clade — Model Drift Detection and Alerting
5+
6+
[clade-metadata]
7+
id = "nesy-drift"
8+
name = "NeSy Drift Dashboard"
9+
short-name = "ND"
10+
version = "1.0.0"
11+
kind = "viewer"
12+
icon = "activity"
13+
description = "Drift detection dashboard — monitors neural model drift across 6 categories with severity-based alerting and corrective action recommendations."
14+
15+
[clade-traits]
16+
has-backend = true # Drift checks via BoJ cartridge
17+
has-scanning = true # Periodic drift scanning
18+
has-persistence = false
19+
has-work-items = true # Critical drift alerts create work items
20+
has-priority-ordering = true # Alerts ordered by urgency
21+
has-customisation = true # Filter by urgency, drift kind
22+
is-directive = false
23+
is-readonly = true
24+
25+
[clade-capabilities]
26+
capabilities = [
27+
"DriftDetection", # 6 drift categories monitored
28+
"DriftClassification", # Concept/data/prior/architecture/distribution/feedback
29+
"ActionRecommendation", # Retrain/calibrate/fallback/halt/review/ignore
30+
"UrgencyLevels", # Immediate/Soon/Scheduled/FYI
31+
"AlertTimeline", # Chronological alert history
32+
"ModelStatusOverview", # Per-model current drift status
33+
]
34+
35+
[clade-panel-integration]
36+
panel-id = "PanelNesyDrift"
37+
model-module = "NesyDriftModel"
38+
component-module = "NesyDrift"
39+
command-module = "NesyDriftCmd"
40+
41+
[clade-related]
42+
parent = "neurosym-bridge"
43+
sibling = "nesy-harmonize"
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
#
4+
# NeSy Harmonization Monitor Panel Clade — Live Neural-Symbolic Verdict Fusion
5+
6+
[clade-metadata]
7+
id = "nesy-harmonize"
8+
name = "NeSy Harmonization Monitor"
9+
short-name = "NH"
10+
version = "1.0.0"
11+
kind = "viewer"
12+
icon = "git-merge"
13+
description = "Live monitoring of neural-symbolic harmonization verdicts — tracks neural vs symbolic agreement, confidence, and override rates."
14+
15+
[clade-traits]
16+
has-backend = true # Fetches harmonization entries via BoJ cartridge
17+
has-scanning = false
18+
has-persistence = false
19+
has-work-items = false
20+
has-priority-ordering = false
21+
has-customisation = true # Filter by verdict type, toggle auto-refresh
22+
is-directive = false
23+
is-readonly = true
24+
25+
[clade-capabilities]
26+
capabilities = [
27+
"NeSyMonitoring", # Live harmonization entry feed
28+
"VerdictHarmonization", # Neural + symbolic → harmonized verdict
29+
"ConfidenceTracking", # Low/High/Absolute confidence levels
30+
"SymbolicWinRate", # Track how often symbolic overrides neural
31+
"VerdictFiltering", # Filter by CertifiedSafe/RequiresReview/CriticalUnsafe
32+
"AutoRefresh", # Configurable polling interval
33+
]
34+
35+
[clade-panel-integration]
36+
panel-id = "PanelNesyHarmonize"
37+
model-module = "NesyHarmonizeModel"
38+
component-module = "NesyHarmonize"
39+
command-module = "NesyHarmonizeCmd"
40+
41+
[clade-related]
42+
parent = "neurosym-bridge"
43+
sibling = "nesy-drift"
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
#
4+
# NeSy Reasoning Mode Selector Panel Clade — Neural-Symbolic Mode Configuration
5+
6+
[clade-metadata]
7+
id = "nesy-modes"
8+
name = "NeSy Reasoning Mode Selector"
9+
short-name = "NM"
10+
version = "1.0.0"
11+
kind = "viewer"
12+
icon = "sliders"
13+
description = "Reasoning mode selector — choose between 6 neural-symbolic reasoning strategies with live symbolic/neural indicator feedback."
14+
15+
[clade-traits]
16+
has-backend = true # Mode get/set via BoJ cartridge
17+
has-scanning = false
18+
has-persistence = false
19+
has-work-items = false
20+
has-priority-ordering = false
21+
has-customisation = false
22+
is-directive = true # Actively changes system behaviour
23+
is-readonly = false
24+
25+
[clade-capabilities]
26+
capabilities = [
27+
"ModeSelection", # Select from 6 reasoning modes
28+
"SymbolicIndicator", # Shows whether current mode uses symbolic reasoning
29+
"NeuralIndicator", # Shows whether current mode uses neural reasoning
30+
"HybridDetection", # Identifies hybrid modes
31+
"ModeDescription", # Rich descriptions for each mode
32+
"LiveModeStatus", # Current active mode display
33+
]
34+
35+
[clade-panel-integration]
36+
panel-id = "PanelNesyModes"
37+
model-module = "NesyModesModel"
38+
component-module = "NesyModes"
39+
command-module = "NesyModesCmd"
40+
41+
[clade-related]
42+
parent = "neurosym-bridge"
43+
sibling = "nesy-harmonize"
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// SPDX-License-Identifier: PMPL-1.0-or-later
2+
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
4+
/// PanLL Agent Coordination command wrappers — Tauri invoke bridge for the
5+
/// coordination view panel.
6+
///
7+
/// All commands invoke BoJ cartridge endpoints for multi-agent topology
8+
/// and strategy management. Uses `Tea_Cmd.call` for async operations.
9+
10+
@val external invoke: (string, 'a) => promise<string> = "__TAURI__.core.invoke"
11+
12+
/// Fetch the current agent coordination topology.
13+
/// Returns JSON with nodes, edges, and active strategy.
14+
let topology = (
15+
tagger: result<string, string> => 'msg,
16+
): Tea_Cmd.t<'msg> => {
17+
Tea_Cmd.call(callbacks => {
18+
invoke("agent_coord_topology", {})
19+
->Promise.then(result => {
20+
callbacks.enqueue(tagger(Ok(result)))
21+
Promise.resolve()
22+
})
23+
->Promise.catch(_err => {
24+
callbacks.enqueue(tagger(Error("Failed to fetch coordination topology")))
25+
Promise.resolve()
26+
})
27+
->ignore
28+
})
29+
}
30+
31+
/// Set the coordination strategy for the agent system.
32+
/// Returns JSON confirming the strategy change.
33+
let setStrategy = (
34+
strategyId: string,
35+
tagger: result<string, string> => 'msg,
36+
): Tea_Cmd.t<'msg> => {
37+
Tea_Cmd.call(callbacks => {
38+
invoke("agent_coord_set_strategy", {"strategy_id": strategyId})
39+
->Promise.then(result => {
40+
callbacks.enqueue(tagger(Ok(result)))
41+
Promise.resolve()
42+
})
43+
->Promise.catch(_err => {
44+
callbacks.enqueue(tagger(Error("Failed to set coordination strategy")))
45+
Promise.resolve()
46+
})
47+
->ignore
48+
})
49+
}

0 commit comments

Comments
 (0)