Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
File renamed without changes.
File renamed without changes.
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Keep cross-platform launch scripts usable after Windows checkouts.
*.sh text eol=lf
bin/nova text eol=lf
config/.zshrc text eol=lf
config/.novarc text eol=lf
48 changes: 48 additions & 0 deletions .github/workflows/download-smoke.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: download-smoke

on:
push:
branches: [main]
pull_request:
workflow_dispatch:

jobs:
fresh-checkout:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.12"

- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: desktop/package-lock.json

- name: Install backend
run: python -m pip install -e .[dev]

- name: Install desktop
working-directory: desktop
run: npm ci

- name: Test backend
run: python -m pytest tests -q

- name: Test desktop
working-directory: desktop
run: npm test

- name: Package release zips
run: |
python scripts/package_windows_program.py
python scripts/package_macos_shell.py

- name: Upload source packages
uses: actions/upload-artifact@v4
with:
name: nova-download-ready-source-zips
path: dist/*.zip
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,23 @@ venv/
*.pyc
.pytest_cache/

# Packaged binaries/build artifacts - do not commit generated executables.
*.exe
*.msi
*.msix
*.appx
*.appxbundle
*.pyd
*.dll
*.so
*.dylib

# Editor
.idea/
*.swp

# Nova runtime artifacts
.runtime/
.nova/sessions/
agent.db
*.sqlite
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
103 changes: 103 additions & 0 deletions GITHUB-10-MINUTE-START.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# GitHub 10-Minute Start

This repo is designed so someone can download it from GitHub and get the
governed Node backend plus Nova Desktop running without hunting for extra
project files.

## What You Get

- `nova/` - local Python lawful runtime
- `nova/node` - governed Node backend, tool registry, receipts, replay, evidence, and manifests
- `desktop/` - Electron + Monaco desktop program
- `quickstart.ps1` - Windows one-command setup
- `quickstart.sh` - macOS/Linux one-command setup
- `.github/workflows/download-smoke.yml` - GitHub Actions proof that a fresh checkout installs and tests

## Option A: Download ZIP

1. Open the GitHub repo page.
2. Click **Code**.
3. Click **Download ZIP**.
4. Extract it somewhere writable.
5. Open a terminal in the extracted folder.

## Option B: Clone

```bash
git clone https://github.com/warheart1984-ctrl/agentic-coding-agent.git
cd agentic-coding-agent
```

If this is published under a different repo name, use that URL instead. The
scripts do not depend on the repo folder name.

## Windows

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File .\quickstart.ps1
```

The script installs the Python backend into `.venv`, installs the desktop npm
dependencies, verifies the backend, starts `python -m nova.api`, then launches
the desktop with `npm start`.

Useful manual commands:

```powershell
.\.venv\Scripts\python.exe -m nova.api
cd desktop
npm start
```

## macOS / Linux

```bash
chmod +x quickstart.sh bin/nova setup/*.sh
./quickstart.sh
```

The script installs the Python backend into `.venv`, installs the desktop npm
dependencies, verifies the backend, starts `python -m nova.api`, then launches
the desktop with `npm start`.

## Verify It Is Working

Backend:

```bash
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/node/status
```

Desktop:

- Node URL should be `http://127.0.0.1:8080`.
- The heartbeat should show online.
- The tool registry should list `code` and `wire`.
- Receipts and replay/evidence surfaces should populate after a governed tool call.

## Ten-Minute Path

For a normal fresh machine with Python 3.10+ and Node.js 20+ already installed:

1. Download ZIP or `git clone`.
2. Run the matching quickstart script.
3. Wait for Python and npm installs.
4. Confirm `/node/status`.
5. Use Nova Desktop.

If Python or Node is missing, install those first:

- Python 3.12: https://www.python.org/downloads/
- Node.js 20 LTS: https://nodejs.org/

## Publish Rule

Commit source, docs, tests, package manifests, and lockfiles. Do not commit:

- `.venv/`
- `node_modules/`
- `.runtime/`
- generated `dist/`
- secrets or `.env` files
- compiled `.exe` installers unless explicitly requested
74 changes: 74 additions & 0 deletions MACOS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Lawful Nova Shell on macOS

This package is a source-only macOS shell distribution. It does not include
secrets, model weights, virtual environments, runtime logs, or generated desktop
build artifacts.

## Requirements

- macOS 13 or newer
- Xcode Command Line Tools
- Homebrew
- Python 3.10 or newer, with Python 3.12 recommended
- Node.js 20, installed by the bootstrap if `nvm` is available
- `zsh` or `bash`

## Install

From the extracted `lawful-nova-shell` folder:

```bash
chmod +x bin/nova setup/*.sh
setup/bootstrap.sh --non-interactive
```

The bootstrap creates or reuses `.venv`, installs the package in editable mode,
links the shell config, and writes `LAWFUL_NOVA_REPO_ROOT` into `~/.novarc`.

## Verify

```bash
setup/verify.sh
bin/nova health --json
```

The verifier checks the repo-local Python, the repo-local `bin/nova` shim,
configured Nova paths, optional Docker availability, and the in-process lawful
LLM health path.

## Daily Use

```bash
source ~/.zshrc
nova-chat
bin/nova run "summarize the current workspace"
```

If the Nova API is not already running, start the local API from another shell:

```bash
scripts/start-nova-stack.sh --api-only
```

## Apple Silicon Notes

NVIDIA GPU acceleration is Linux-only. On Apple Silicon, use local CPU or an
MPS-capable model backend and set this in `~/.novarc` when appropriate:

```bash
export NOVA_GPU_DEVICE="mps"
```

## Archive Contents

The macOS zip intentionally excludes:

- `.venv/`
- `.runtime/`
- `dist/`
- `desktop/`
- `node_modules/`
- `__pycache__/`
- local logs and secret files

The archive preserves executable bits for `bin/nova` and shell scripts.
Loading
Loading