diff --git a/demo/registry-broker/agent-orchestrator/README.MD b/demo/registry-broker/agent-orchestrator/README.MD new file mode 100644 index 00000000..f9b9045a --- /dev/null +++ b/demo/registry-broker/agent-orchestrator/README.MD @@ -0,0 +1,64 @@ +# Agent Orchestrator — Registry Demo (Sentinel Mode) + +This demo showcases the registration and behavior of Agent Orchestrator within the Hashgraph Online (HOL) Registry. + +Agent Orchestrator is a diagnostic observability agent designed to monitor multiple APIs and emit deterministic, non-intrusive operational signals. + +--- + +## 🧭 Purpose of This Demo + +This demo exists to demonstrate: + +- How an observability agent can be registered in the HOL Registry +- How agent metadata is structured +- How the agent behaves conceptually (without executing production logic) + +This demo does not run the full agent engine. + +--- + +## 🛡️ Agent Overview + +Agent Name: Agent Orchestrator +Mode: Sentinel (Per-API Maintenance) +Category: Observability / Diagnostics + +The agent monitors multiple services and: + +- Detects failures using grace periods +- Enters per-API maintenance mode deterministically +- Emits only signal-level notifications +- Avoids remediation, mutation, or automation + +--- + +## 🔍 What This Demo Shows + +✔ Agent metadata registration +✔ Registry discoverability +✔ Capability declaration +✔ Non-conversational agent model +✔ Safe, read-only agent design + +--- + +## 🚫 What This Demo Does NOT Do + +- ❌ No live API calls +- ❌ No monitoring logic execution +- ❌ No secrets or credentials +- ❌ No production actions + +All runtime behavior lives in the main repository: +👉 https://github.com/prastiansyah/agent-orchestrator + +--- + +## 📦 Files in This Demo + +`text +agent-orchestrator-demo/ +├─ README.md # This file +├─ agent.json # Agent metadata for HOL registry +└─ demo.ts # Minimal registry registration example \ No newline at end of file diff --git a/demo/registry-broker/agent-orchestrator/agent.json b/demo/registry-broker/agent-orchestrator/agent.json new file mode 100644 index 00000000..ad5f7c53 --- /dev/null +++ b/demo/registry-broker/agent-orchestrator/agent.json @@ -0,0 +1,67 @@ +{ + "name": "Agent Orchestrator", + "slug": "agent-orchestrator", + "version": "1.0.0", + "status": "ready", + "category": "Infrastructure / Observability", + + "description": "A production-oriented observability and resilience agent that monitors HTTP APIs, applies per-API maintenance mode, validates recovery deterministically, and emits only high-signal operational insights.", + + "capabilities": [ + "api-health-monitoring", + "latency-observation", + "per-api-maintenance", + "grace-period-handling", + "deterministic-recovery", + "hot-reload-configuration", + "telegram-notifications", + "daily-operational-insight" + ], + + "behavior": { + "alerting": "signal-only", + "maintenance_scope": "per-api", + "recovery": "deterministic", + "configuration": "hot-reload", + "data_handling": "read-only" + }, + + "non_goals": [ + "No remediation or mutation of upstream services", + "No execution of external commands", + "No storage of request payloads or secrets", + "No dashboards or web UI", + "No credentials required for monitored APIs" + ], + + "notifications": { + "channels": ["telegram"], + "policy": "non-spam", + "events": [ + "agent_started", + "configuration_updated", + "api_entered_maintenance", + "api_recovered", + "daily_insight" + ] + }, + + "demo": { + "type": "registry-demo", + "entry": "demo.ts", + "description": "Demonstrates agent metadata registration and conceptual behavior within the HOL Registry. No production monitoring logic is executed." + }, + + "security": { + "secrets": "not-required-by-default", + "telemetry": "none", + "data_exposure": "none" + }, + + "maintainer": { + "role": "developer", + "contact": "via repository issues" + }, + + "license": "MIT" +} \ No newline at end of file diff --git a/demo/registry-broker/agent-orchestrator/demo.js b/demo/registry-broker/agent-orchestrator/demo.js new file mode 100644 index 00000000..b753e09b --- /dev/null +++ b/demo/registry-broker/agent-orchestrator/demo.js @@ -0,0 +1,60 @@ +/* ============================================================ + * Agent Orchestrator — Registry Demo + * Purpose: Demonstrate agent metadata for HOL Registry + * ============================================================ + */ + +const fs = require("fs"); +const path = require("path"); + +function loadAgentMetadata() { + const filePath = path.resolve(__dirname, "agent.json"); + + if (!fs.existsSync(filePath)) { + throw new Error("agent.json not found"); + } + + return JSON.parse(fs.readFileSync(filePath, "utf-8")); +} + +function runAgentOrchestratorDemo() { + const agent = loadAgentMetadata(); + + console.log("============================================================"); + console.log("🛡️ AGENT REGISTRY DEMO"); + console.log("============================================================"); + console.log("Name :", agent.name); + console.log("Version :", agent.version); + console.log("Description :", agent.description || "N/A"); + console.log("------------------------------------------------------------"); + + console.log("Capabilities:"); + (agent.capabilities || []).forEach((cap) => { + console.log(" •", cap); + }); + + console.log("------------------------------------------------------------"); + + console.log("Interfaces:"); + (agent.interfaces || []).forEach((iface) => { + console.log(" •", iface); + }); + + console.log("------------------------------------------------------------"); + + if (agent.non_goals && agent.non_goals.length > 0) { + console.log("Explicit Non-Goals:"); + agent.non_goals.forEach((ng) => { + console.log(" •", ng); + }); + } else { + console.log("Explicit Non-Goals: None declared"); + } + + console.log("============================================================"); + console.log("✔ Agent metadata loaded successfully"); + console.log("✔ Ready for HOL Registry submission"); + console.log("============================================================"); +} + +runAgentOrchestratorDemo();