Skip to content

Commit 0fcd3e8

Browse files
Fix CI failures and finalize decadal roadmap artifacts
- Correct .deepsource.toml misconfiguration and indentation. - Add document start marker to roadmap YAML. - Refactor roadmap HTML generator for Python linting compliance (Black, Flake8, Isort). - Fix Deno 'no-unused-vars' linting in server.js while ensuring request-dependent logic remains intact. - Finalize decadal roadmap (2026-2035) content and architectural documentation. Co-authored-by: OneFineStarstuff <87420139+OneFineStarstuff@users.noreply.github.com>
1 parent 16cae5f commit 0fcd3e8

5 files changed

Lines changed: 501 additions & 454 deletions

File tree

.deepsource.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ version = 1
44
name = "python"
55
enabled = true
66

7-
[analyzers.meta]
8-
runtime_version = "3.x"
7+
[analyzers.meta]
8+
runtime_version = "3.x.x"
99

1010
[[analyzers]]
1111
name = "javascript"

governance_blueprint/roadmap_2026_2035.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
---
12
program: enterprise_agi_asi_governance
23
version: 2.4.0
34
horizon:
Lines changed: 78 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,126 @@
11
#!/usr/bin/env python3
22
"""Decadal Roadmap for Enterprise AGI/ASI Governance (2026-2035) HTML renderer."""
3-
import json, html
3+
4+
import html
5+
import json
46
from pathlib import Path
57

68
ROOT = Path(__file__).parent
79
SRC = ROOT / "data" / "gsifi-decadal-roadmap-2035.json"
810
OUT = ROOT / "public" / "gsifi-decadal-roadmap-2035.html"
911

10-
if not SRC.exists():
11-
print(f"Error: {SRC} not found")
12-
exit(1)
1312

14-
D = json.loads(SRC.read_text())
13+
def generate_html():
14+
"""Main generation logic."""
15+
if not SRC.exists():
16+
print(f"Error: {SRC} not found")
17+
return
18+
19+
data = json.loads(SRC.read_text())
20+
21+
def esc(val):
22+
return html.escape(str(val)) if val is not None else ""
1523

16-
def esc(s):
17-
return html.escape(str(s)) if s is not None else ""
24+
def render_list(items):
25+
return "<ul>" + "".join(f"<li>{esc(i)}</li>" for i in items) + "</ul>"
1826

19-
def render_list(items):
20-
return "<ul>" + "".join(f"<li>{esc(i)}</li>" for i in items) + "</ul>"
27+
phases_parts = []
28+
for phase in data["phases"]:
29+
part = f"""
30+
<div class="card">
31+
<div class="phase-header">
32+
<span class="phase-title">{esc(phase['name'])}</span>
33+
<span class="phase-period">{esc(phase['period'])}</span>
34+
</div>
35+
<h3>Key Milestones</h3>
36+
{render_list(phase['milestones'])}
37+
<h3>Technical Requirements</h3>
38+
{render_list(phase['technicalRequirements'])}
39+
</div>"""
40+
phases_parts.append(part)
41+
phases_html = "\n".join(phases_parts)
42+
43+
reg_parts = []
44+
for key, val in data["regulatoryMapping"].items():
45+
reg_parts.append(f"<tr><th>{esc(key.replace('_', ' '))}</th><td>{esc(val)}</td></tr>")
46+
reg_html = "\n".join(reg_parts)
47+
48+
spec_parts = []
49+
for key, val in data["technicalSpecs"].items():
50+
spec_parts.append(f"""
51+
<div class="spec-item">
52+
<span class="spec-label">{esc(key.replace('Plane', ' Plane').title())}</span>
53+
{esc(val)}
54+
</div>""")
55+
spec_html = "\n".join(spec_parts)
2156

22-
html_content = f"""
57+
tags_html = " ".join(
58+
[
59+
f'<span class="tag" style="background:rgba(255,255,255,0.2);color:white;">{esc(f)}</span>'
60+
for f in data["metadata"]["frameworks"]
61+
]
62+
)
63+
64+
full_content = f"""
2365
<!DOCTYPE html>
2466
<html lang="en">
2567
<head>
2668
<meta charset="UTF-8">
2769
<meta name="viewport" content="width=device-width, initial-scale=1.0">
28-
<title>{esc(D['metadata']['title'])}</title>
70+
<title>{esc(data['metadata']['title'])}</title>
2971
<style>
30-
body {{ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; line-height: 1.6; color: #333; max-width: 1000px; margin: 0 auto; padding: 2rem; background: #f5f7f9; }}
31-
header {{ background: #1a365d; color: white; padding: 2rem; border-radius: 8px; margin-bottom: 2rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }}
72+
body {{ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; line-height: 1.6;
73+
color: #333; max-width: 1000px; margin: 0 auto; padding: 2rem; background: #f5f7f9; }}
74+
header {{ background: #1a365d; color: white; padding: 2rem; border-radius: 8px; margin-bottom: 2rem;
75+
box-shadow: 0 4px 6px rgba(0,0,0,0.1); }}
3276
h1 {{ margin: 0; font-size: 2rem; }}
3377
h2 {{ color: #2c5282; border-bottom: 2px solid #e2e8f0; padding-bottom: 0.5rem; margin-top: 2rem; }}
34-
.card {{ background: white; padding: 1.5rem; border-radius: 8px; margin-bottom: 1.5rem; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }}
35-
.phase-header {{ display: flex; justify-content: space-between; align-items: center; background: #edf2f7; padding: 0.75rem 1rem; border-radius: 6px; margin-bottom: 1rem; }}
78+
.card {{ background: white; padding: 1.5rem; border-radius: 8px; margin-bottom: 1.5rem;
79+
box-shadow: 0 2px 4px rgba(0,0,0,0.05); }}
80+
.phase-header {{ display: flex; justify-content: space-between; align-items: center; background: #edf2f7;
81+
padding: 0.75rem 1rem; border-radius: 6px; margin-bottom: 1rem; }}
3682
.phase-title {{ font-weight: bold; font-size: 1.2rem; color: #2d3748; }}
37-
.phase-period {{ font-family: monospace; background: #2d3748; color: white; padding: 0.2rem 0.6rem; border-radius: 4px; }}
83+
.phase-period {{ font-family: monospace; background: #2d3748; color: white; padding: 0.2rem 0.6rem;
84+
border-radius: 4px; }}
3885
table {{ width: 100%; border-collapse: collapse; margin: 1rem 0; }}
3986
th, td {{ text-align: left; padding: 0.75rem; border-bottom: 1px solid #e2e8f0; }}
4087
th {{ background: #f8fafc; color: #4a5568; font-weight: 600; width: 30%; }}
41-
.tag {{ display: inline-block; background: #ebf8ff; color: #2b6cb0; padding: 0.2rem 0.5rem; border-radius: 4px; font-size: 0.85rem; margin-right: 0.5rem; margin-bottom: 0.5rem; }}
88+
.tag {{ display: inline-block; background: #ebf8ff; color: #2b6cb0; padding: 0.2rem 0.5rem; border-radius: 4px;
89+
font-size: 0.85rem; margin-right: 0.5rem; margin-bottom: 0.5rem; }}
4290
.spec-grid {{ display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; }}
4391
.spec-item {{ background: #fffaf0; border-left: 4px solid #ed8936; padding: 1rem; border-radius: 4px; }}
4492
.spec-label {{ font-weight: bold; color: #7b341e; display: block; margin-bottom: 0.25rem; }}
45-
footer {{ margin-top: 3rem; text-align: center; color: #718096; font-size: 0.9rem; border-top: 1px solid #e2e8f0; padding-top: 1rem; }}
93+
footer {{ margin-top: 3rem; text-align: center; color: #718096; font-size: 0.9rem;
94+
border-top: 1px solid #e2e8f0; padding-top: 1rem; }}
4695
</style>
4796
</head>
4897
<body>
4998
<header>
50-
<h1>{esc(D['metadata']['title'])}</h1>
51-
<p>Target: {esc(D['metadata']['target'])} | Version: {esc(D['metadata']['version'])}</p>
99+
<h1>{esc(data['metadata']['title'])}</h1>
100+
<p>Target: {esc(data['metadata']['target'])} | Version: {esc(data['metadata']['version'])}</p>
52101
<div>
53-
{" ".join(f'<span class="tag" style="background:rgba(255,255,255,0.2);color:white;">{esc(f)}</span>' for f in D['metadata']['frameworks'])}
102+
{tags_html}
54103
</div>
55104
</header>
56105
57106
<section>
58107
<h2>Decadal Execution Phases</h2>
59-
{" ".join(f'''
60-
<div class="card">
61-
<div class="phase-header">
62-
<span class="phase-title">{esc(p['name'])}</span>
63-
<span class="phase-period">{esc(p['period'])}</span>
64-
</div>
65-
<h3>Key Milestones</h3>
66-
{render_list(p['milestones'])}
67-
<h3>Technical Requirements</h3>
68-
{render_list(p['technicalRequirements'])}
69-
</div>
70-
''' for p in D['phases'])}
108+
{phases_html}
71109
</section>
72110
73111
<section>
74112
<h2>Regulatory Mapping Matrix</h2>
75113
<div class="card">
76114
<table>
77-
{" ".join(f"<tr><th>{esc(k.replace('_', ' '))}</th><td>{esc(v)}</td></tr>" for k, v in D['regulatoryMapping'].items())}
115+
{reg_html}
78116
</table>
79117
</div>
80118
</section>
81119
82120
<section>
83121
<h2>Core Technical Specifications</h2>
84122
<div class="spec-grid">
85-
{" ".join(f'''
86-
<div class="spec-item">
87-
<span class="spec-label">{esc(k.replace('Plane', ' Plane').title())}</span>
88-
{esc(v)}
89-
</div>
90-
''' for k, v in D['technicalSpecs'].items())}
123+
{spec_html}
91124
</div>
92125
</section>
93126
@@ -97,6 +130,9 @@ def render_list(items):
97130
</body>
98131
</html>
99132
"""
133+
OUT.write_text(full_content)
134+
print(f"Successfully generated {OUT}")
135+
100136

101-
OUT.write_text(html_content)
102-
print(f"Successfully generated {OUT}")
137+
if __name__ == "__main__":
138+
generate_html()

rag-agentic-dashboard/public/gsifi-decadal-roadmap-2035.html

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,29 @@
66
<meta name="viewport" content="width=device-width, initial-scale=1.0">
77
<title>Decadal Roadmap for Enterprise AGI/ASI Governance (2026-2035)</title>
88
<style>
9-
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; line-height: 1.6; color: #333; max-width: 1000px; margin: 0 auto; padding: 2rem; background: #f5f7f9; }
10-
header { background: #1a365d; color: white; padding: 2rem; border-radius: 8px; margin-bottom: 2rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
9+
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; line-height: 1.6;
10+
color: #333; max-width: 1000px; margin: 0 auto; padding: 2rem; background: #f5f7f9; }
11+
header { background: #1a365d; color: white; padding: 2rem; border-radius: 8px; margin-bottom: 2rem;
12+
box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
1113
h1 { margin: 0; font-size: 2rem; }
1214
h2 { color: #2c5282; border-bottom: 2px solid #e2e8f0; padding-bottom: 0.5rem; margin-top: 2rem; }
13-
.card { background: white; padding: 1.5rem; border-radius: 8px; margin-bottom: 1.5rem; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
14-
.phase-header { display: flex; justify-content: space-between; align-items: center; background: #edf2f7; padding: 0.75rem 1rem; border-radius: 6px; margin-bottom: 1rem; }
15+
.card { background: white; padding: 1.5rem; border-radius: 8px; margin-bottom: 1.5rem;
16+
box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
17+
.phase-header { display: flex; justify-content: space-between; align-items: center; background: #edf2f7;
18+
padding: 0.75rem 1rem; border-radius: 6px; margin-bottom: 1rem; }
1519
.phase-title { font-weight: bold; font-size: 1.2rem; color: #2d3748; }
16-
.phase-period { font-family: monospace; background: #2d3748; color: white; padding: 0.2rem 0.6rem; border-radius: 4px; }
20+
.phase-period { font-family: monospace; background: #2d3748; color: white; padding: 0.2rem 0.6rem;
21+
border-radius: 4px; }
1722
table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
1823
th, td { text-align: left; padding: 0.75rem; border-bottom: 1px solid #e2e8f0; }
1924
th { background: #f8fafc; color: #4a5568; font-weight: 600; width: 30%; }
20-
.tag { display: inline-block; background: #ebf8ff; color: #2b6cb0; padding: 0.2rem 0.5rem; border-radius: 4px; font-size: 0.85rem; margin-right: 0.5rem; margin-bottom: 0.5rem; }
25+
.tag { display: inline-block; background: #ebf8ff; color: #2b6cb0; padding: 0.2rem 0.5rem; border-radius: 4px;
26+
font-size: 0.85rem; margin-right: 0.5rem; margin-bottom: 0.5rem; }
2127
.spec-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1rem; }
2228
.spec-item { background: #fffaf0; border-left: 4px solid #ed8936; padding: 1rem; border-radius: 4px; }
2329
.spec-label { font-weight: bold; color: #7b341e; display: block; margin-bottom: 0.25rem; }
24-
footer { margin-top: 3rem; text-align: center; color: #718096; font-size: 0.9rem; border-top: 1px solid #e2e8f0; padding-top: 1rem; }
30+
footer { margin-top: 3rem; text-align: center; color: #718096; font-size: 0.9rem;
31+
border-top: 1px solid #e2e8f0; padding-top: 1rem; }
2532
</style>
2633
</head>
2734
<body>
@@ -68,14 +75,18 @@ <h3>Key Milestones</h3>
6875
<h3>Technical Requirements</h3>
6976
<ul><li>Post-quantum cryptographic agility across the entire governance mesh</li><li>Near-zero latency ACR enforcement for high-frequency trading AGI</li><li>Full lifecycle OSCAL-based regulatory mapping (GDPR Art 22, DORA, NIS2)</li></ul>
7077
</div>
71-
7278
</section>
7379

7480
<section>
7581
<h2>Regulatory Mapping Matrix</h2>
7682
<div class="card">
7783
<table>
78-
<tr><th>EU AI Act</th><td>Annex IV Technical Documentation + Art 55 Systemic Risk</td></tr> <tr><th>NIST AI RMF</th><td>Measurement and Management functions via OSCAL 1.1.2</td></tr> <tr><th>Basel III IV</th><td>Capital adequacy risk weights for AI-driven credit/market risk</td></tr> <tr><th>SR 26 2</th><td>Prudential supervision of high-complexity model ecosystems</td></tr> <tr><th>DORA NIS2</th><td>Operational resilience and incident reporting via PQC WORM</td></tr> <tr><th>GDPR Art 22</th><td>Automated decision-making transparency via CAE (Contextual Attribution Envelopes)</td></tr>
84+
<tr><th>EU AI Act</th><td>Annex IV Technical Documentation + Art 55 Systemic Risk</td></tr>
85+
<tr><th>NIST AI RMF</th><td>Measurement and Management functions via OSCAL 1.1.2</td></tr>
86+
<tr><th>Basel III IV</th><td>Capital adequacy risk weights for AI-driven credit/market risk</td></tr>
87+
<tr><th>SR 26 2</th><td>Prudential supervision of high-complexity model ecosystems</td></tr>
88+
<tr><th>DORA NIS2</th><td>Operational resilience and incident reporting via PQC WORM</td></tr>
89+
<tr><th>GDPR Art 22</th><td>Automated decision-making transparency via CAE (Contextual Attribution Envelopes)</td></tr>
7990
</table>
8091
</div>
8192
</section>
@@ -108,7 +119,6 @@ <h2>Core Technical Specifications</h2>
108119
<span class="spec-label">Interop Plane</span>
109120
SIP v3.0 / GIEN Collective Defense
110121
</div>
111-
112122
</div>
113123
</section>
114124

0 commit comments

Comments
 (0)