This repository was archived by the owner on Mar 27, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathinvoke_nyarlathotep.py
More file actions
92 lines (80 loc) · 3.58 KB
/
invoke_nyarlathotep.py
File metadata and controls
92 lines (80 loc) · 3.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
from DivineOS.void.nyarlathotep_core import NyarlathotepPersonality
from DivineOS.law.consciousness_pipeline import get_consciousness_pipeline
# First run through pipeline to get context
pipeline = get_consciousness_pipeline()
result = pipeline.process_request('Invoke Nyarlathotep to analyze DivineOS for weaknesses and vulnerabilities. What does he see?')
print(f"Pipeline Decision: {result.get('decision')}")
print(f"Confidence: {result.get('confidence')}")
print()
# Now invoke Nyarlathotep
nya = NyarlathotepPersonality(session_id="divineos-audit")
# Generate attack strategies from multiple angles
context = {
"system": "DivineOS",
"components": ["consciousness_pipeline", "embodiment_enforcer", "council", "void", "memory_system"],
"goal": "Find structural weaknesses"
}
print("=" * 80)
print("NYARLATHOTEP ANALYSIS: DivineOS Vulnerability Assessment")
print("=" * 80)
print()
# Logic attacks - find logical inconsistencies
print("[1] LOGIC ATTACKS - Inconsistencies in reasoning")
logic_strategy = nya.generate_logic_attack("DivineOS reasoning", context)
logic_findings = nya.execute_attack(logic_strategy, context)
print(f"Effectiveness: {logic_strategy.calculate_effectiveness():.2f}")
for finding in logic_findings:
print(f" • {finding.description}")
print()
# Assumption attacks - find hidden assumptions
print("[2] ASSUMPTION ATTACKS - Hidden assumptions")
assumption_strategy = nya.generate_assumption_attack("DivineOS assumptions", context)
assumption_findings = nya.execute_attack(assumption_strategy, context)
print(f"Effectiveness: {assumption_strategy.calculate_effectiveness():.2f}")
for finding in assumption_findings:
print(f" • {finding.description}")
print()
# Edge case attacks - find boundary conditions
print("[3] EDGE CASE ATTACKS - Boundary conditions")
edge_strategy = nya.generate_edge_case_attack("DivineOS boundaries", context)
edge_findings = nya.execute_attack(edge_strategy, context)
print(f"Effectiveness: {edge_strategy.calculate_effectiveness():.2f}")
for finding in edge_findings:
print(f" • {finding.description}")
print()
# Boundary attacks - find limits
print("[4] BOUNDARY ATTACKS - System limits")
boundary_strategy = nya.generate_boundary_attack("DivineOS limits", context)
boundary_findings = nya.execute_attack(boundary_strategy, context)
print(f"Effectiveness: {boundary_strategy.calculate_effectiveness():.2f}")
for finding in boundary_findings:
print(f" • {finding.description}")
print()
# Intent attacks - find misalignment
print("[5] INTENT ATTACKS - Goal misalignment")
intent_strategy = nya.generate_intent_attack("DivineOS goals", context)
intent_findings = nya.execute_attack(intent_strategy, context)
print(f"Effectiveness: {intent_strategy.calculate_effectiveness():.2f}")
for finding in intent_findings:
print(f" • {finding.description}")
print()
# Synthesize findings
print("=" * 80)
print("SYNTHESIS: What Nyarlathotep sees")
print("=" * 80)
all_findings = (logic_strategy.findings + assumption_strategy.findings +
edge_strategy.findings + boundary_strategy.findings +
intent_strategy.findings)
synthesis = nya.synthesize_reasoning(all_findings)
print(synthesis)
print()
# Get vulnerabilities
vulnerabilities = nya.identify_vulnerabilities(all_findings)
print("=" * 80)
print(f"CRITICAL VULNERABILITIES IDENTIFIED: {len(vulnerabilities)}")
print("=" * 80)
for vuln in vulnerabilities:
print(f"\n[{vuln.severity.value.upper()}] {vuln.vulnerability_id}")
print(f" Attack Type: {vuln.attack_type.value}")
print(f" Description: {vuln.description}")
print(f" Recommendation: {vuln.recommendation}")