bendi banner

bendi

5 devlogs
4h 48m 21s

the invasion of the CK-12s pose a mental health risk to us students.
chrome extension for agentically automagically automated CK-12 completer
(for mental health purposes only)

This project uses AI

Project uses Gemini 3 Flash from Hack Club AI (the goat) for superior real time intelligence
I used Gemini 3.1 Pro as a key learning resource along the way
No other LLMs were harmed in the making of this project

Demo Repository

Loading README...

technodot
  1. quick bugfixes
  2. readme
  3. final build :)
Attachment
0
technodot

HOLY CRAP THIS WAS ACTUALLY STUPID

all i did was add support to solve questions with images embedded in the HTML.
this should have been easy.
in other frameworks like Python Selenium, you can just call .screenshot() on a DOM element to get a nice and easy PNG screenshot of any html element.
i tried doing that here with the Element Capture API (mozilla, you did NOT cook on ts docs) and it just completely broke and i gave up and burned the evidence
then i used a non-builtin api, the html2canvas api
problem is, literally all the images had cors/csp policies set, preventing the screenshot, so all of them required workarounds
long story short we have the image base64 now
and we just pass it to google/gemini-3-flash-preview our goat
and yeah

now ts works for questions that require analysis of diagrams and stuff yay
i need to sleep

Attachment
0
technodot
  1. Discovered that the agent couldn’t properly handle multi short response questions AT ALL because the return json data structure just wasn’t designed for that.
    a. restructured the json return interface
    b. rewrote the system prompt to match new architecture
    c. revised short response branch of agentic handler to parse and execute the new data format
  2. Add a little badge status in bottom right corner
    a. who doesn’t wanna know what their little ai agent is currently doing?
    b. switches between all the various states, like disabled idle waiting redirecting thinking and answering!
  3. Fixed a very critical bug where i literally called the LLM TWICE as often as necessary
    a. basically after you check a question, you get to review the explanation for your right/wrong answer
    b. this triggers a dom update on the question container, which causes the content script to requery the LLM
    c. it adds 2x overhead and costs 2x as much bc of this stupid dumassery!!!
Attachment
0
technodot
  1. Refactor popup css into a distinct file
    a. done for clarity and tracking purposes
  2. Fixed so that the global extension setting was actually respected
    a. done by just making main update loop break instantly if the extension is disabled. i did NOT choose to disable the setInterval call completely because that means a reload is required to take effect, which pmo and hurts ux
  3. Core logic for agentic automagic automation of CK-12 assignments
    a. each update cycle, we first check if we are already processing an LLM request to avoid duplication
    b. if we’re tryna process a new question, then collect the question text, feed it into LLM with prompt in the background worker, and then execute the answer
    c. then, we scan for all the present buttons and click the ones that we need to proceed with whatever state in the assignment we are in
Attachment
0
technodot
  1. Setup development environment
  2. Learn about the finer details of chrome extension control (popup, content, and background worker scripts, security permissions, content security policy and how it pertains to extensions, etc.)
  3. Brainstormed foundational UI/UX
    a. I was thinking I could have like a little indicator visible on the page to provide better UX to assure the user about what the agent was doing atm
    b. All the setting I think necessary are an enable/disable toggle, and a place to put ts API key
  4. Implemented foundational UI/UX
    a. As I’m sure you can see, the popup UI looks simple and functional, I might just leave it at that
  5. Implemented foundational agentic behavior
    a. Content worker script will automatically detect a CK-12 lesson page and navigate you to the correct assignment page automatically upon load

General Notes:

  • behavior currently does not obey enable/disable setting
Attachment
0