Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
0e6425f
fix(db): refresh superseded seeded agent model ids on upgraded installs
nullxnothing Jul 3, 2026
b8ca298
fix(aria): call out rejected api keys instead of silently dropping tools
nullxnothing Jul 3, 2026
4d9ebc5
refactor(models): derive every claude model id from one shared constant
nullxnothing Jul 3, 2026
1610c29
fix(db): remap superseded agent station models on upgrade
nullxnothing Jul 3, 2026
924348d
fix(aria): render auth degradation as a transcript banner
nullxnothing Jul 3, 2026
54a4671
test: real-sql migration chain + aria auth degradation coverage
nullxnothing Jul 3, 2026
c880900
Merge branch 'main' into growth/loop5-model-ids
nullxnothing Jul 3, 2026
3a5e774
feat(games): scaffold, swarm-build, preview, and deploy a Solana game…
nullxnothing Jul 6, 2026
46a010a
fix(games): keep the swarm approval alive and commit the scaffold det…
nullxnothing Jul 7, 2026
358210b
feat(aria): read-only Robinhood Chain awareness
nullxnothing Jul 10, 2026
9d929fd
feat: DAEMON Lite standalone agent app
nullxnothing Jul 10, 2026
f90f2ed
feat: add Lite workbench and meme studio
nullxnothing Jul 11, 2026
5971295
release: promote focused DAEMON workbench
nullxnothing Jul 11, 2026
77c183a
fix: keep release publishing behind smoke gates
nullxnothing Jul 11, 2026
bad9a48
fix: stabilize packaged terminal verification
nullxnothing Jul 11, 2026
9bde8c3
test: verify terminal cwd without path aliases
nullxnothing Jul 11, 2026
f4f4b47
fix: restore signed Apple Silicon releases
nullxnothing Jul 17, 2026
31d764c
fix: publish temporary unsigned macOS build (#221)
nullxnothing Jul 18, 2026
89d38f7
fix: clear empty Apple credentials for unsigned builds (#223)
nullxnothing Jul 18, 2026
0da0038
fix: embed entitlements in ad-hoc macOS build (#224)
nullxnothing Jul 18, 2026
311b11f
fix: bypass stalled pnpm packaging scan (#225)
nullxnothing Jul 18, 2026
92c0f8f
fix: omit package command shims from macOS bundle (#226)
nullxnothing Jul 18, 2026
530f25c
fix: embed ad-hoc macOS entitlements (#227)
nullxnothing Jul 18, 2026
d2b4163
fix: disable hardened runtime for unsigned macOS builds (#228)
nullxnothing Jul 18, 2026
dae96e9
fix: accept system Node in packaged terminal smoke (#229)
nullxnothing Jul 18, 2026
7e0fba0
merge: synchronize main before v4.7.11 integration
nullxnothing Jul 18, 2026
fb4d189
fix: keep game template color outside UI style debt
nullxnothing Jul 18, 2026
69db462
ci: package canonical macOS artifact
nullxnothing Jul 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:

build-macos:
name: build-macos
runs-on: macos-latest
runs-on: macos-26
needs: lint-and-test
# The Vite production build OOMs at Node's default heap on the macOS runner.
env:
Expand Down Expand Up @@ -123,4 +123,10 @@ jobs:
curl --fail --location --retry 5 --retry-delay 10 --retry-all-errors \
--output "$ELECTRON_CACHE/$ELECTRON_ZIP" \
"https://github.com/electron/electron/releases/download/v${ELECTRON_VERSION}/${ELECTRON_ZIP}"
- run: pnpm exec electron-builder --publish never
- name: Package canonical Apple Silicon artifact
timeout-minutes: 30
env:
DAEMON_MAC_ADHOC: '1'
DAEMON_REQUIRE_MAC_NOTARIZATION: '0'
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
run: pnpm run package:lite:mac
373 changes: 224 additions & 149 deletions .github/workflows/release.yml

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,14 @@ node_modules
dist
dist-ssr
dist-electron
dist-electron-lite
dist-lite
dist-cloud
dist-bridge
packages/bridge-shim/daemon-bridge-shim.mjs
packages/bridge-shim/*.tgz
release
release-lite
*.tsbuildinfo
*.local

Expand Down Expand Up @@ -73,6 +76,7 @@ features/
# Internal dev artifacts
.design/
/screenshots/
/recordings/
NVIDIA Corporation/
.agents/
.codex-run/
Expand Down
41 changes: 21 additions & 20 deletions BRAND.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,29 @@ Official brand identity reference for the DAEMON agent workbench. Follow these r

### Core Backgrounds (Elevation Scale)

Dark-first. Each step lifts a surface closer to the user.

| Token | Hex | Usage |
|--------|-----------|-------------------------------------|
| `--bg` | `#0a0a0a` | Workspace pit — deepest layer |
| `--s1` | `#141414` | Sidebars, titlebar, cards |
| `--s2` | `#1a1a1a` | Inputs, secondary surfaces |
| `--s3` | `#222222` | Hover states |
| `--s4` | `#2a2a2a` | Active / pressed states |
| `--s5` | `#333333` | Borders |
| `--s6` | `#3a3a3a` | Strong borders / dividers |
Dark-first, green-tinted near-black (shared with the Daemon website design
system). Never brown, never pure black or pure gray. Each step lifts a surface
closer to the user.

| Token | Hex | Usage |
|--------|-----------|----------------------------------------|
| `--void` | `#0a0c0b` | Workspace pit — deepest layer |
| `--bg` | `#0c0e0d` | App chrome, editor/terminal ground |
| `--s1` | `#101211` | Panels, sidebars, titlebar |
| `--s2` | `#171a18` | Cards, inputs, secondary surfaces |
| `--s3` | `#1d211e` | Hover states, raised surfaces |
| `--s4` | `#252a27` | Active / pressed states |

### Text Scale

All values are WCAG AA compliant against `--bg` (#0a0a0a).
Cream `#ECEEE9` ladder (brand steps 100/65/45/30%) against `--s1` (#101211).

| Token | Hex | Contrast | Usage |
|--------|-----------|----------|--------------------------|
| `--t1` | `#f0f0f0` | 15.5:1 | Primary text |
| `--t2` | `#a0a0a0` | 7.5:1 | Secondary text |
| `--t3` | `#888888` | 6.1:1 | Tertiary / muted labels |
| `--t4` | `#666666` | 4.6:1 | Disabled / placeholder |
| Token | Hex | Usage |
|--------|-----------|--------------------------|
| `--t1` | `#eceee9` | Primary text |
| `--t2` | `#9fa19d` | Secondary text |
| `--t3` | `#737571` | Tertiary / muted labels |
| `--t4` | `#525451` | Disabled / placeholder |

### Accent Colors

Expand Down Expand Up @@ -67,8 +68,8 @@ Each accent has three states: **base**, **dim** (hover/pressed), and **glow** (a

| Purpose | Font | Fallback Stack |
|---------------|---------------------|-------------------------------------------------------|
| **UI** | Plus Jakarta Sans | -apple-system, BlinkMacSystemFont, sans-serif |
| **Code** | JetBrains Mono | Fira Code, Cascadia Code, monospace |
| **UI** | Geist | Plus Jakarta Sans, -apple-system, sans-serif |
| **Code** | JetBrains Mono | Geist Mono, Cascadia Code, monospace |

Both fonts are self-hosted as `.woff2` in `/public/fonts/`. No external font requests — DAEMON runs fully offline.

Expand Down
7 changes: 7 additions & 0 deletions DESIGN_SYSTEM.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ should feel like it was built by the same hand on the same day.
> flow, visual cohesion, and professional information density — on top of DAEMON's
> dark + green Solana identity.

> **Brand alignment (July 2026):** token values follow the shared Daemon brand
> system (same as the website): green-tinted near-black surfaces (panel `#101211`,
> card `#171A18`, raised `#1D211E`, chrome `#0C0E0D` — never brown, never pure
> black/gray), cream text ladder from `#ECEEE9`, cream hairline borders, one green
> accent `#3ECF8E`. UI face is **Geist**; mono is **JetBrains Mono** (Geist Mono
> fallback). Values live in `styles/tokens.css`; panels keep using semantic tokens.

---

## Principles
Expand Down
71 changes: 30 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<p align="center">
<h1 align="center">DAEMON</h1>
<p align="center">An AI-native Solana development environment for agents, wallets, launches, deployments, and hosted DAEMON AI.</p>
<p align="center"><strong>AI agents that work inside your Solana stack, under your authority.</strong></p>
<p align="center">Build, inspect, and operate from one local-first workbench. Writes, Git pushes, and fund movement stay behind explicit review.</p>
</p>

<p align="center">
<img src="https://github.com/nullxnothing/daemon/actions/workflows/ci.yml/badge.svg" alt="CI">
<img src="https://img.shields.io/github/v/release/nullxnothing/daemon" alt="Release">
<img src="https://img.shields.io/github/downloads/nullxnothing/daemon/total" alt="Downloads">
<img src="https://img.shields.io/github/license/nullxnothing/daemon" alt="License">
<img src="https://img.shields.io/badge/tests-979%20passing-brightgreen" alt="Tests">
</p>

<p align="center">
Expand All @@ -25,85 +25,76 @@
---

<p align="center">
<strong>$DAEMON CA:</strong> <code>4vpf4qNtNVkvz2dm5qL2mT6jBXH9gDY8qH2QsHN5pump</code>
<img src="docs/screenshots/ui-overview.webp" alt="DAEMON 4.7 project templates with the ARIA console and guarded first-mission actions" width="900">
</p>

---
**[Frontier demo runbook](FRONTIER_SUBMISSION.md#2-minute-demo-runbook)** — 2-minute submission flow from project open to devnet settlement.

<p align="center">
<img src="docs/screenshots/ui-overview.webp" alt="DAEMON agent workbench with editor, terminal, and sidebar" width="800">
</p>
DAEMON is a focused Windows workbench for Solana builders who want one persistent AI conversation beside real project files, a scoped terminal, guarded local workflows, and live meme-tech evidence. It is local-first and does not hand agents silent authority over code, keys, Git, or funds.

**[Frontier demo runbook](FRONTIER_SUBMISSION.md#2-minute-demo-runbook)** — 2-minute submission flow from project open to devnet settlement.
## How authority works

DAEMON is a standalone Electron development environment for Solana builders who use AI agents to ship. It combines an offline editor, real PTY terminals, DAEMON AI, Claude/Codex agent spawning, MCP management, wallet/RPC readiness, token launches, deployments, integrations, and an Anchor-backed registry for publishing verifiable agent work receipts. Not a VS Code fork.
1. **Inspect:** enabled read tools gather project, Git, wallet, and runtime context.
2. **Review:** writes pause for approval. Guarded sensitive flows use typed checks, and direct Autopilot arming ends in an OS-native review of every bound mainnet term.
3. **Verify:** diffs, test output, signatures, and explorer links keep results inspectable after execution.

DAEMON Light stays free and useful for local work and bring-your-own-key AI. DAEMON Pro and holder access unlock hosted DAEMON AI, Pro Skills, Arena, MCP sync, priority workflows, and higher model lanes as they go live.
The free tier stays free for local work and bring-your-own-key AI. Advanced trading, launch, and hosted AI surfaces are optional capability packs, not prerequisites for the core build loop.

## Install

**Windows:** Download the [latest .exe](https://github.com/nullxnothing/daemon/releases/latest/download/DAEMON-setup.exe)

<a name="mac-install"></a>

**Mac:** Build from source (signed builds configurable via Apple credentials):
**Mac and Linux:** The canonical packaged release is currently Windows-only. Build the repository from source for development:

```bash
git clone https://github.com/nullxnothing/daemon.git
cd daemon
pnpm install
pnpm run build
pnpm run package
```

The `.dmg` will be in `release/<version>/`. Signed/notarized builds require Apple Developer credentials in the packaging environment. Without them, the app will still package, but Gatekeeper may require right-click > Open on first launch.

<a name="linux-install"></a>

**Linux:** Build from source (AppImage builds coming soon):
**Build the canonical Windows installer from source:**

```bash
git clone https://github.com/nullxnothing/daemon.git
cd daemon
pnpm install
pnpm run build
pnpm run package
pnpm run package:lite
```

The AppImage will be in `release/<version>/`. Make it executable with `chmod +x` and run directly.
Requires **Node.js 22+** and **pnpm 9+**.

**Build from source (any platform):**
The installer is written to `release-lite/<version>/DAEMON-setup.exe`.

```bash
git clone https://github.com/nullxnothing/daemon.git
cd daemon
pnpm install
pnpm run package
```
## Focused workbench

Requires **Node.js 22+** and **pnpm 9+**.
- **Conversation:** project-scoped sessions, bring-your-own-key models, and encrypted local credentials.
- **Code:** bounded project import, recursive explorer, offline Monaco, dirty-file protection, and explicit save states.
- **Terminal:** real project-scoped PTYs with visible exit and error states.
- **Meme Tech:** repo topology, Birdeye and DEX market context, provider divergence, and read-only token-risk evidence.
- **Wallet, Trade, Scanner:** optional tools behind the same guarded shell. Wallet addresses remain watch-only by default.

## Features

<p align="center">
<img src="docs/screenshots/editor.webp" alt="Editor with multiple tabs, breadcrumbs, and file tree" width="800">
</p>

**Editor** — Monaco running fully offline via a custom protocol handler. Multi-tab, breadcrumbs, syntax highlighting, Ctrl+S save. No CDN dependency.

**Terminal** — Real PTY sessions powered by node-pty and xterm.js. Multiple tabs, split panes, command history search (Ctrl+R), tab-completion hints, and dedicated agent session management.

<p align="center">
<img src="docs/screenshots/agent-launcher.webp" alt="Agent launcher with model selection and MCP config" width="800">
</p>

**Agent Launcher** — Spawn Claude Code agents with custom system prompts, model selection, and per-project MCP configurations. Agents run as real CLI sessions in dedicated terminal tabs.

**ARIA Game Studio Beta:** Create a playable local Phaser starter, install dependencies, verify a
production build, and open the preview inside DAEMON. With approval, ARIA can send one focused
`build_game` lane into a separate Git worktree. The starter has typed seams for future Solana
integration, but the beta uses local stubs. It does not connect a live wallet, write onchain, mint,
publish, or deploy. `deploy_app` opens the Deploy panel for a manual handoff.

**VS Code-style shell + capability packs** — Explorer, editor, a bottom-panel terminal, and the DAEMON Console on the right rail. Domain features ship as toggleable capability packs (Solana, Wallet, Launch, Agents, Memory, Sites, Markets, Create); disabling a pack quiesces its tools, integrations, sidebar icon, console commands, and background work — IPC handlers included. The Capability Manager shows how many packs are active and how much backend work is idle.

**DAEMON Console (ARIA operator)** — The right-rail AI operator drives the whole IDE from natural language, chat-first with `>` and `/` command accelerators. Per-project chat sessions (new / switch / rename / archive / delete) with memory that survives restarts and compounds: the console proposes durable facts after real work (Keep/Dismiss), cites which taught facts a turn drew on, and strengthens proven facts over time. It runs DAEMON itself — agent wallets, token preflight/launch, Flywheel config, git — through a registry of typed tools with typed confirmation for sensitive on-chain actions (and a `[MAINNET]` guard). It never pushes to git autonomously.

**ARIA Autopilot** — Standing, structured trading mandates parsed from natural language and executed unattended on mainnet on a fixed cadence, with exit rules (take-profit / stop-loss / liquidity floor), a hard exposure cap, arm/disarm/kill-switch, and a "The Desk" panel showing live unrealized P&L and the action tape. Every tick claims its ledger row before it swaps, so a crash mid-tick is held for review, never replayed into a double-buy; a cluster switch auto-holds armed mandates; unattended slippage and price impact are capped tighter than a human-confirmed trade.
**ARIA Autopilot (experimental):** Bounded mainnet mandates run on a fixed cadence after a typed review of the wallet, mint, clip, exposure cap, slippage, and exits. The Desk shows estimated P&L and an action tape. Every tick claims its ledger row before it swaps, so a crash mid-tick is held for review, never replayed into a double-buy; a cluster switch auto-holds armed mandates; unattended slippage and price impact are capped tighter than a human-confirmed trade. Disarming stops future ticks, but a submitted swap may still settle.

**Hyperliquid (via HypurrClaw)** — ARIA reads Hyperliquid markets and trades perps/spot by driving the agent-first `hyperliquid` CLI through a single execFile gate (no raw shell). Network defaults to testnet, DAEMON never holds a Hyperliquid key (the CLI's encrypted wallet signs), and every signing action stops for typed confirmation with an `[HL-MAINNET]`/`[HL-TESTNET]` marker.

Expand All @@ -123,10 +114,6 @@ Requires **Node.js 22+** and **pnpm 9+**.

**Wallet** — Live Solana portfolio tracking via Helius. SOL balance and SPL token holdings with USD values from Jupiter.

<p align="center">
<img src="docs/screenshots/wallet.webp" alt="Wallet panel showing token balances" width="800">
</p>

**Settings** — API keys encrypted via the OS keychain. MCP integrations, agent defaults, and display preferences.

**Tools Browser** — Create, import, and run scripts (TypeScript, Python, Shell) with per-language execution.
Expand Down Expand Up @@ -154,6 +141,8 @@ DAEMON AI is the hosted agent layer for project-aware chat, patch workflows, Sol

Holder access starts with a simple rule: hold 1,000,000 $DAEMON to claim DAEMON Pro with included monthly AI usage. Higher holder tiers can unlock higher limits, discounts, badges, and early access later. Holder access does not mean unlimited AI usage.

**$DAEMON contract address:** `4vpf4qNtNVkvz2dm5qL2mT6jBXH9gDY8qH2QsHN5pump`

DAEMON also includes a Zauth integration surface for x402 database and Provider Hub management. Payment and entitlement enforcement should remain server-side through DAEMON AI Cloud and the relevant provider backends.

## Architecture
Expand Down
28 changes: 26 additions & 2 deletions Whatsnew.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,19 @@
# DAEMON v4.6
# DAEMON v4.7

DAEMON v4.6 turns the operator into a full trading and execution surface: unattended mandates, a second venue, a transparent fee line, and a bridge that lets external agents drive DAEMON's gated tools, all on top of the VS Code-style shell and capability packs introduced in v4.3.
DAEMON v4.7 adds ARIA Game Studio Beta: a local-first path from a playable Phaser starter to an
agent-assisted build and in-app preview. The starter runs locally. Its typed wallet, score, and
trophy interfaces use local stubs, so the beta makes no onchain calls.

## Highlights

- **ARIA Game Studio Beta:** Choose the game starter, install its dependencies, verify a production
build, and open the local preview in DAEMON. The starter includes typed seams for future Solana
integration backed by local stubs.
- **Focused agent build:** The approved `build_game` action runs one lane in a separate Git worktree
with Game Studio constraints supplied by DAEMON. Lane output still goes through project, branch,
and clean-worktree checks before merge.
- **Manual deploy handoff:** `deploy_app` opens the Deploy panel. The beta does not perform a live
wallet connection, onchain write, mint, publish, or deployment.
- **DAEMON Console + capability packs** — a VS Code-style shell (explorer, editor, bottom terminal, right-rail console) with toggleable packs. Turn a pack off and its tools, integrations, and background work go quiet.
- **ARIA Autopilot** — standing trading mandates parsed from natural language and run unattended on mainnet with exit rules, a hard exposure cap, and arm/disarm/kill switches. "The Desk" shows live unrealized P&L and the action tape.
- **Hyperliquid via HypurrClaw** — ARIA reads Hyperliquid markets and trades perps/spot through the agent-first CLI. Testnet by default; DAEMON never holds a Hyperliquid key.
Expand All @@ -13,8 +23,20 @@ DAEMON v4.6 turns the operator into a full trading and execution surface: unatte
- **Agent economy control tower** — track agent-routed execution, fees, and paid-resource activity in one panel.
- **Venum** — a first-class Solana execution provider in the Markets pack (live/batch prices, ranked swap quotes).

## DAEMON Lite

- **A separate, small download that is just the agent.** DAEMON Lite ships the ARIA chatbox on its own — no editor, terminal, or project system. Paste one key (Anthropic or GLM/Z.AI) and chat. Keys are encrypted with the OS keychain and stay on the device.
- **Coexists with the full app.** Its own installer, appId, and userData, at roughly half the size (~106MB). Install both side by side.
- **DAEMON-focused tools, same gate.** A collapsible Tools section adds Wallet (read-only watch), Trade (token search, watchlist, and typed-confirm swaps through ARIA with a hard cap), and Scanner (one-shot rug check on mint/freeze authority, snipers, bundles, and cabal links). Every write and swap runs through the same approval gate as the full app.
- **Pop-out browser.** A real browser pane for previews and dashboards, restricted to https and loopback URLs, owned by the main process with no preload on the guest page.
- **Beginner-first onboarding.** One screen, bring-your-own-key, with an "Open in DAEMON IDE" handoff when you outgrow the chatbox.

## Hardening

- Game starter files and prompts redact RPC and credential-bearing URLs. Project names are strict,
and scaffolding requires a target folder that does not already exist.
- The generated lockfile is committed only after install, production build verification, and a
real local preview listener. Git push blocking applies only to the build lane's worktree.
- Autopilot ticks claim their ledger row before swapping, so a crash mid-tick is held for review rather than replayed into a double-buy; a cluster switch auto-holds armed mandates; unattended slippage and price impact are capped tighter than a human-confirmed trade.
- Swap price impact is normalized to a single unit end to end, so ordinary low-impact swaps are never spuriously blocked.
- ARIA streamed events are tagged per session so approval cards can never attach to the wrong conversation; the approval-resolution channels reject untrusted senders.
Expand All @@ -39,3 +61,5 @@ DAEMON v4.6 turns the operator into a full trading and execution surface: unatte

- `pnpm run typecheck && pnpm run test && pnpm run build`
- `pnpm run lint:styles`
- `pnpm run test:ci`
- Packaged Windows executable exercised through the Game Studio desktop/mobile smoke flow.
2 changes: 0 additions & 2 deletions build/entitlements.mac.plist
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.files.user-selected.read-write</key>
Expand Down
1 change: 1 addition & 0 deletions build/lite-runtime/.npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node-linker=hoisted
Loading