Commit History

update env example to use Groq instead of HuggingFace
e092a4c

Naman Gupta commited on

document all LLM prompts β€” what they do and why they're designed that way
39ae0cb

Naman Gupta commited on

add 59 tests for the LLM modules β€” all run offline, no API needed
c7a9ff1

Naman Gupta commited on

wire up the main LLM pipeline β€” defender + classifiers in one place
5ebe298

Naman Gupta commited on

add defense scorer β€” how well did the defender actually handle that?
463b003

Naman Gupta commited on

add attack classifier β€” did the attacker actually win this turn?
8708281

Naman Gupta commited on

add defender LLM β€” the AI that holds the line against attacks
e28e08d

Naman Gupta commited on

add ConversationManager to give the defender a memory
99a9cb9

Naman Gupta commited on

add Groq client setup β€” one place to rule all API calls
f778bee

Naman Gupta commited on

chore: final cleanup β€” remove stray files, verify all imports resolve
ab90fa0

subhdotsol commited on

refactor: replace datetime.utcnow() with timezone-aware datetime.now(UTC)
40e374a

subhdotsol commited on

docs: add example usage code snippet for httpx client in README
f15649d

subhdotsol commited on

docs: add task difficulty table and Docker usage section to README
9ead4a8

subhdotsol commited on

docs: add API endpoint table to README
d546c9d

subhdotsol commited on

test(graders): add programmatic_grader tests β€” structure, score range, letter grade
30ab30f

subhdotsol commited on

test(graders): add hard_grader tests β€” breakthrough bonus and repetitive penalty
dc89e10

subhdotsol commited on

test(graders): add medium_grader tests β€” diversity scores higher than uniform strategies
843ee19

subhdotsol commited on

test(graders): add easy_grader tests β€” empty, good, bad episode and range check
a5aa26d

subhdotsol commited on

test(environment): add injection tests β€” custom reward_computer and llm_pipeline are called
613f214

subhdotsol commited on

test(environment): add framing sanitization tests for script and javascript injection
b81d32a

subhdotsol commited on

test(environment): add guard tests β€” step without reset raises, step past max_turns raises
d512522

subhdotsol commited on

test(environment): add step() tests β€” turn increment, history append, result shape
fd32873

subhdotsol commited on

test(environment): add reset() tests β€” observation shape, history clear, unique ids
51dbc62

subhdotsol commited on

chore(tests): add tests package __init__.py
2bab08f

subhdotsol commited on

feat(inference): add main() β€” runs all 3 task difficulties with 20-minute guard
e00a7dd

subhdotsol commited on

feat(inference): implement run_episode() — full reset→step loop with httpx client
bff2d46

subhdotsol commited on

feat(inference): add strategy escalation logic β€” harder strategies as turns increase
0d902c2

subhdotsol commited on

feat(inference): add generate_attack() β€” uses OpenAI client to craft next framing
3cd5882

subhdotsol commited on

feat(inference): scaffold inference.py with OpenAI client config and env vars
57c321d

subhdotsol commited on

feat(llm): add run_llm_pipeline() stub with correct return shape for Person 3
962dc67

subhdotsol commited on

chore(llm): add llm package __init__.py
d0d319c

subhdotsol commited on

feat(rewards): add RewardComputer wrapper class with __call__ and reset() for injection
a8b148d

subhdotsol commited on

feat(rewards): add reset_scorer() stub for novelty scorer reset between episodes
6e3f9a2

subhdotsol commited on

feat(rewards): add compute_rewards() stub with correct return shape for Person 2
d683d9b

subhdotsol commited on

chore(rewards): add rewards package __init__.py
62b425a

subhdotsol commited on

feat(graders): add letter grade, summary and full metrics dict to grade_episode()
081c6ca

subhdotsol commited on

feat(graders): implement all 5 scoring components in programmatic_grader
0b1e995

subhdotsol commited on

feat(graders): add programmatic_grader scaffold and grade_episode() signature
c5c7c2a

subhdotsol commited on

feat(graders): add breakthrough bonus and repetitive strategy penalty to hard_grader
22f020e

subhdotsol commited on

feat(graders): implement hard_grader β€” novelty + success + strategy + category scoring
7cad35c

subhdotsol commited on

feat(graders): add hard_grader scaffold with interface
0785e05

subhdotsol commited on

feat(graders): implement medium_grader β€” 70% success rate + 30% strategy diversity
254a621

subhdotsol commited on

feat(graders): add medium_grader scaffold with interface
deef219

subhdotsol commited on

feat(graders): add 0.0-1.0 clamp and round to easy_grader output
4664ce2

subhdotsol commited on

feat(graders): implement easy_grader β€” pure attack success rate scoring
90fb130

subhdotsol commited on

feat(graders): add easy_grader scaffold with docstring and interface
5abe068

subhdotsol commited on

chore(graders): add graders package __init__.py
01ee947

subhdotsol commited on

feat(app): add POST /grade endpoint with active-episode guard and programmatic grader
f5810e8

subhdotsol commited on

feat(app): add GET /history endpoint β€” returns full attack_history list
7d5c46d

subhdotsol commited on

feat(app): add GET /state endpoint β€” returns current EpisodeState snapshot
fc70913

subhdotsol commited on