Skip to content

Commit 566fa37

Browse files
author
Jonathan D.A. Jewell
committed
chore: sync
1 parent 1c6653c commit 566fa37

File tree

4,917 files changed

+32648
-2558
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

4,917 files changed

+32648
-2558
lines changed

.clusterfuzzlite/Dockerfile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
FROM gcr.io/oss-fuzz-base/base-builder-rust
3+
4+
# Copy vext source
5+
COPY . $SRC/vext
6+
WORKDIR $SRC/vext
7+
8+
# Build script will be executed by ClusterFuzzLite
9+
COPY .clusterfuzzlite/build.sh $SRC/

.clusterfuzzlite/build.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash -eu
2+
# SPDX-License-Identifier: PMPL-1.0-or-later
3+
4+
cd $SRC/vext
5+
6+
# Build fuzz targets with cargo-fuzz
7+
cargo +nightly fuzz build --release
8+
9+
# Copy fuzz targets to output
10+
for target in $(cargo +nightly fuzz list); do
11+
cp fuzz/target/x86_64-unknown-linux-gnu/release/$target $OUT/
12+
done

.clusterfuzzlite/project.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# SPDX-License-Identifier: AGPL-3.0-or-later
2+
3+
homepage: "https://github.com/hyperpolymath/vext"
4+
language: rust
5+
primary_contact: "jonathan.jewell@open.ac.uk"
6+
auto_ccs:
7+
- "jonathan.jewell@open.ac.uk"
8+
sanitizers:
9+
- address
10+
- undefined
11+
- memory

.github/workflows/stress-test.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# SPDX-License-Identifier: AGPL-3.0-or-later
2+
name: Stress Testing
3+
on:
4+
schedule:
5+
- cron: '0 3 * * 1' # Weekly Monday 3am UTC
6+
workflow_dispatch:
7+
permissions: read-all
8+
jobs:
9+
stress-test:
10+
runs-on: ubuntu-latest
11+
timeout-minutes: 60
12+
steps:
13+
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
14+
15+
- name: Install Rust toolchain
16+
uses: dtolnay/rust-toolchain@stable
17+
18+
- name: Install stress testing tools
19+
run: |
20+
sudo apt-get update
21+
sudo apt-get install -y stress-ng valgrind
22+
23+
- name: Build release
24+
run: cargo build --release --all-features
25+
26+
- name: Concurrent operations stress test
27+
run: |
28+
# Run binary with high concurrency
29+
for i in {1..100}; do
30+
timeout 1s ./target/release/* &
31+
done
32+
wait
33+
34+
- name: Memory pressure test
35+
run: |
36+
# Run under memory constraints
37+
ulimit -v 512000 # 500MB virtual memory limit
38+
cargo test --release
39+
40+
- name: Long-running scenario test
41+
run: |
42+
# Test for memory leaks over time
43+
timeout 300s valgrind --leak-check=full --error-exitcode=1 \
44+
./target/release/* || true
45+
46+
- name: Stress test with stress-ng
47+
run: |
48+
# CPU and I/O stress
49+
stress-ng --cpu 4 --io 2 --timeout 60s &
50+
STRESS_PID=$!
51+
cargo test --release
52+
kill $STRESS_PID || true

.machine_readable/6scm/STATE.scm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
;; SPDX-License-Identifier: PMPL-1.0
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
22
;; STATE.scm - Project state for glambot
33

44
(state

.tool-versions

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
rust 1.70
2+
just 1.30.0

AGENTIC.scm

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
;; SPDX-License-Identifier: PMPL-1.0-or-later
2+
;; AGENTIC.scm - Agentic AI integration documentation for glambot
3+
4+
(define-module (hyperpolymath glambot agentic)
5+
:version "1.0.0"
6+
:description "Agentic AI integration patterns for glambot presentation enforcement"
7+
:export (agentic-capabilities interaction-patterns))
8+
9+
(define (agentic-capabilities)
10+
'((autonomous-presentation-fixing
11+
(description . "AI agent automatically improves presentation quality")
12+
(interface
13+
(command . "glambot audit")
14+
(output . "structured findings with file locations")
15+
(parseable . #t))
16+
(agent-actions
17+
("Parse audit output for accessibility violations"
18+
"Generate descriptive alt text for images using vision models"
19+
"Automatically wrap long lines in documentation"
20+
"Add missing meta tags with project-specific content"
21+
"Fix heading hierarchy (h1 → h2 → h3)"
22+
"Make links descriptive (replace 'click here' with context)"
23+
"Re-run audit to verify fixes")))
24+
25+
(vision-model-integration
26+
(description . "Use vision AI to generate alt text")
27+
(workflow
28+
("1. Agent detects image without alt text"
29+
"2. Pass image to vision model (GPT-4V, Claude 3)"
30+
"3. Model describes image content"
31+
"4. Agent refines description for accessibility"
32+
"5. Insert alt text in appropriate syntax (MD/ADoc)"
33+
"6. Validate with glambot accessibility"))
34+
(examples
35+
((architecture-diagram
36+
(raw-description . "A flowchart showing boxes and arrows")
37+
(refined-alt-text . "Architecture diagram showing vext IRC daemon connecting to IRC server via TLS, with git hooks triggering notifications"))
38+
(logo
39+
(raw-description . "A stylized letter H with geometric shapes")
40+
(refined-alt-text . "Hyperpolymath logo")))))
41+
42+
(interactive-polishing
43+
(description . "AI agent guides user through presentation improvements")
44+
(workflow
45+
("1. Agent runs audit and prioritizes findings"
46+
"2. Shows highest-impact issues first (accessibility errors)"
47+
"3. For each issue, suggests specific fix with example"
48+
"4. User reviews and approves suggested fixes"
49+
"5. Agent applies fixes and re-validates"
50+
"6. Generates before/after presentation quality report")))
51+
52+
(continuous-monitoring
53+
(description . "Agent monitors presentation quality during development")
54+
(capabilities
55+
("Watch for new images added - check for alt text immediately"
56+
"Detect long lines as files are edited"
57+
"Validate JSON/YAML on save"
58+
"Alert when meta tags missing from new docs"
59+
"Track presentation quality score over time")))))
60+
61+
(define (interaction-patterns)
62+
'((command-line-integration
63+
(description . "Agent invokes glambot via CLI")
64+
(examples
65+
("glambot audit # Full presentation audit"
66+
"glambot visual # Only visual polish checks"
67+
"glambot accessibility # Only WCAG accessibility"
68+
"glambot seo # Only SEO checks"
69+
"glambot machine # Only machine-readability"
70+
"glambot fix --only visual # Auto-fix visual issues")))
71+
72+
(structured-output-parsing
73+
(description . "Agent parses glambot output for decision-making")
74+
(finding-structure
75+
(analyzer . "visual | accessibility | seo | machine")
76+
(code . "VIS-001, ACC-001, SEO-001, MACH-001")
77+
(severity . "Error | Warning | Info")
78+
(message . "Human-readable description")
79+
(file . "Path to file with issue")
80+
(suggestion . "How to fix"))
81+
(agent-parsing-logic
82+
("Extract all ERROR findings - highest priority"
83+
"Group by analyzer to see which area needs most work"
84+
"Prioritize accessibility errors over visual warnings"
85+
"Check file paths to batch similar fixes together")))
86+
87+
(ai-generated-fixes
88+
(description . "Agent generates context-aware presentation fixes")
89+
(fix-strategies
90+
((missing-alt-text
91+
(detection . "ACC-001 finding")
92+
(fix . "Use vision model to generate descriptive alt text"))
93+
(long-lines
94+
(detection . "VIS-005 finding")
95+
(fix . "Automatically wrap at word boundaries, preserve code blocks"))
96+
(missing-meta-tags
97+
(detection . "SEO-002 finding")
98+
(fix . "Generate meta description from README summary"))
99+
(non-descriptive-links
100+
(detection . "ACC-003 finding")
101+
(fix . "Replace link text with surrounding context"))
102+
(invalid-json
103+
(detection . "MACH-001 finding")
104+
(fix . "Parse error, suggest syntax fix")))))
105+
106+
(hypatia-integration
107+
(description . "Agent coordinates glambot with finishingbot via hypatia")
108+
(workflow
109+
("1. finishingbot validates release readiness"
110+
"2. glambot validates presentation quality"
111+
"3. hypatia orchestrates both bots"
112+
"4. Combined report shows functional + presentation status"
113+
"5. Release only if both bots pass")))))
114+
115+
(define (agent-personas)
116+
'((accessibility-advocate
117+
(role . "Ensures WCAG compliance for all users")
118+
(priorities
119+
("All images have alt text"
120+
"Heading hierarchy is logical"
121+
"Links are descriptive"
122+
"Color contrast is sufficient"))
123+
(strictness . "Blocks release for accessibility errors"))
124+
125+
(seo-optimizer
126+
(role . "Improves discoverability and social sharing")
127+
(suggestions
128+
("Add meta description"
129+
"Include keywords"
130+
"Add OpenGraph tags"
131+
"Optimize title tags"))
132+
(strictness . "Suggests improvements, doesn't block"))
133+
134+
(visual-designer
135+
(role . "Ensures professional visual presentation")
136+
(checks
137+
("README has clear structure"
138+
"Badges present and well-organized"
139+
"Line length readable"
140+
"Logo present and accessible"))
141+
(strictness . "Warns about visual issues, doesn't block"))))

0 commit comments

Comments
 (0)