From b04d48fa635a828487e5fb91b25a8ce82f41a622 Mon Sep 17 00:00:00 2001 From: Rob Colbert Date: Thu, 30 Apr 2026 08:00:00 -0400 Subject: [PATCH] doc updates --- docs/philosophy.md | 40 +++++++++++++++++++++++++++++++ docs/support.md | 30 +++++++++++++++++++++++ gadget-code/docs/drone-manager.md | 38 +++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 docs/philosophy.md create mode 100644 docs/support.md create mode 100644 gadget-code/docs/drone-manager.md diff --git a/docs/philosophy.md b/docs/philosophy.md new file mode 100644 index 0000000..52bff52 --- /dev/null +++ b/docs/philosophy.md @@ -0,0 +1,40 @@ +# The Philosophy of Gadget Code + +The primary goal of this system is making the process of agentic software engineering entirely observable. And it does that while looking industrial, modern, and high-tech. + +## What Is Gadget Code? + +Gadget Code is a self-hosted, open source, Enterprise-tier Agentic Integrated Development Environment (AIDE). It is a tool used for practicing Computer Science. This includes services for: + +1. Project management +2. Infrastructure management and monitoring +3. AI agent-assisted and accelerated software development +4. Automation and orchestration + +A variety of people will use Gadget Code in a variety of ways to work primarily on software projects, but also other tasks and goals. + +- **Project managers** will have the kind of insight that's simply impoisslbe to have in other systems that can't have a conversation about what's going on inside of them. +- **Developers** will edit code by hand, or by describing intent to their hand-tuned agents. Plural. +- **Quality Assurance (QA)** professionals receive a dedicated MODE for developing and executuing tests, documentting bugs, or (sometimes) using Gadget to simply fix them and move on. +- **Operations (NOC, DevOps, etc.)** also receives a dedicated mode for orchestrating and automating your hosting infrastructure, securing it, hardening it, monitoring it, and scaling it. +- Tinkerers and people who want to explore and extend Gadget Code itself ALSO receive a dedicated mode that's been tuned for hacking on the platform itself. + +If we have data, and that data isn't literally a security secret, we display the data. And we display it in a way that is aesthetically pleasing, well-organized, and actionable. + +If the user _can_ adjust a value or setting, we let them. The User is a credentialed software developer or learner. They're not a "consumer" visiting a social media or news site. They're practicing Computer Science. So we are building tools for them. + +## What Gadget Code Isn't + +Gadget Code is not a "vibe coding" environment. We don't say things like, "The code isn't even there, man," or, "Don't even read the code." Those concepts came from unserious people - who don't know what they're doing - speaking out of turn. The entire initiative is nothing more than that. "Vibe coding" is marketing hype. + +We avoid that. Because Gadget Code isn't marketing hype. Gadget is a serious AIDE that includes a very, VERY helpful assistant named Gadget. And it works. + +We don't even _have_ an X account. We're not even _on_ GitHub. We don't _have_ a YouTube channel. We don't _have_ a marketing department. There are zero "social media interns" working here. We don't have a Trust & Safety Department. + +## You Fork And Own It + +There is no `CODE_OF_CONDUCT.md` document in this repository and the project's creator, [Rob Colbert](https://gab.com/rob_colbert), can be found on Gab.com if you need to contact him. But you shouldn't need to contact him. + +This project is designed to be forked and owned by you, and is fully equipped for agentic engineering _internally_ with a mode dedicated to that purpose. + +We don't think about operating this project as a product because it isn't one. It's a tool. diff --git a/docs/support.md b/docs/support.md new file mode 100644 index 0000000..3b79a84 --- /dev/null +++ b/docs/support.md @@ -0,0 +1,30 @@ +# Gadget Code Financial Support + +The [Gadget Agent](https://g4dge7.com), which runs in a sidecar in your browser, is different. Gadget offsers an affordable monthly subscription or pay-as-you-go/metered use, and has that monetization strategy by exchanging value for value in the browser for many people. I use proceeds from that to fund this. + +Gadget Code is the tool that built that. + +## Donating/Tipping + +If you want to support **Gadget Code** financially, or you just want to send a "tip" you can: + +- Use my Gab AI affiliate link https://gab.ai/?ref=c7182f6e to sign up for a Gab AI account, and connect it as a provider here in Gadget Code. +- Donate USD FIAT at: https://www.givesendgo.com/gadget-ai +- Send cryptobits: + - BTC: bc1q8pexwn06ssccspv94vsh9der9mr6muqhq487w6 + - ETH: 0xd4Ee3C587581cF3f2318b4bc81E1b72D7EdF09f0 + - Tether USD (USDT): 0xd4Ee3C587581cF3f2318b4bc81E1b72D7EdF09f0 + +My Gab AI affiliate link is the easiest way to benefit both me and you. I'll get some credits, you'll get some credits, and Gab gets the support it needs to build and grow. That's literally so much winning that you might even get sick of all the winning. It's more winning than anyone's ever seen before. Thank you for your attention to this matter. + +## Hosting + +If you want a Gadget Code environment, but do not want to _operate_ a Gadget Code environment (understandable), you can purchase environment hosting. Email rob@digitaltelepresence.com for more information. + +DTP Technologies can set up an environment for you, work with you to configure it on your domain, and keep it updated automatically going forward. You bring your own inference provider(s) and can self-host them. + +If you are running your own industrial GPUs, we will work with you to configure the routing and secure tunnels you'll need for our cloud-based hosts to communicate with your GPUs. + +## Contracting + +You can hire Rob rob@digitaltelepresence.com to consult with you and help you deploy and manage your Gadget Code deployment. diff --git a/gadget-code/docs/drone-manager.md b/gadget-code/docs/drone-manager.md new file mode 100644 index 0000000..4fd86df --- /dev/null +++ b/gadget-code/docs/drone-manager.md @@ -0,0 +1,38 @@ +# Gadget Code Drone Manager + +Drone Manager is a view accessible from the Authenticated Home view as a cog icon link added to the Drones list in the right sidebar with a hover label of "Drone Manager". + +The user selects the cog icon to navigate to the Drone Manager view. + +The Drone Manager view presents the User's entire unfiltered list of drones as two separate lists: + +- Online drones (Available or Busy) +- Offline drones + +The Drone List should be a flex column that is split 50/50 vertically with the online drones on top and offline drones on the bottom. The lists scroll within their panel. The whole sidebar does not scroll. The user can select a drone in either list to load the drone's details in the content area of the view. + +The user may only select one drone. They cannot have a selected item in both lists at the same time. So if they select an item in one list, clear the selection from the other list (and vice versa). Or, implement selectedDrone as a property on the view, which would be very useful throughout the whole view, and have both lists update their selected item based on this value. + +The User cannot delete a DroneRegistration record. They are tied to data throughout the platform. And we are not yet ready to author the delete operation. + +The User _can_ change the status of a drone to `DroneStatus.Offline` if it isn't offline. This lets the User either remove a failed drone from a list it shouldn't be in, or trigger the drone to terminate if it's still running. + +## Drone Termination + +The User changing a drone's status to Offline means they want the Drone to terminate. We will need to extend [Socket Protocol](../../docs/socket-protocol.md) to add the `requestTermination` message - which takes no parameters. + +When a drone receives the `requestTermination` message, it does no state validation and doesn't worry about whether it's currently running an Agentic Workflow Loop, performing some other action(s), or idle. gadget-drone simply sends itself a SIGINT so that the handler in hookProcessSignals does it's job and shuts the drone down. + +The drone _should_ update it's own status to Offline during this processing. We check for this to happen within 10 seconds. If it doesn't happen within 10 seconds, we set the registration to Offline and tell the user we timed out waiting for the drone to shut down, and have marked it Offline by force. + +An online drone will display a Terminate button in the info panel for the User to select if they want to terminate the drone process. If the drone is known to be working on something, we confirm with, "Are you sure you want to terminate the drone? Any work or operations current in progress may be lost." If the drone is idle (no session lock) we send the `requestTerminate` message without confirmation. + +## Drone Monitor + +When a drone is selected and we populate the content area with information about the drone, the next row of the view is the Drone Monitor, which is backed by the [DroneMonitor](../src/models/drone-monitor.ts) model. + +The monitor wants to be a high-tech-looking display of memory use history, and ai operations per minute. + +The `logs` parameter is used for tracking memory use in the logging system and should be graphed to monitor log data production. + +The monitor updates chart data once per minute. Live updates arriving on the dron's socket are monitored in the view in real-time.