@eugene218/noxdev 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/dashboard/api/server.js +2 -2
- package/dist/dashboard/assets/index-CiAjd0j2.js +102 -0
- package/dist/dashboard/index.html +1 -1
- package/dist/index.js +975 -350
- package/docker/Dockerfile +26 -0
- package/package.json +5 -2
- package/templates/demo-tasks.md +168 -0
- package/dist/dashboard/assets/index-DH8xJMbY.js +0 -102
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
FROM ubuntu:24.04
|
|
2
|
+
ENV DEBIAN_FRONTEND=noninteractive
|
|
3
|
+
|
|
4
|
+
RUN apt-get update && apt-get install -y \
|
|
5
|
+
curl \
|
|
6
|
+
git \
|
|
7
|
+
sudo \
|
|
8
|
+
ca-certificates \
|
|
9
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
10
|
+
|
|
11
|
+
# Node.js 22 LTS
|
|
12
|
+
RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
|
|
13
|
+
&& apt-get install -y nodejs \
|
|
14
|
+
&& npm install -g pnpm
|
|
15
|
+
|
|
16
|
+
# Claude Code CLI via npm (works in non-interactive Docker builds)
|
|
17
|
+
RUN npm install -g @anthropic-ai/claude-code
|
|
18
|
+
|
|
19
|
+
# Non-root user (unused at runtime — host UID/GID + HOME=/tmp override via --user flag)
|
|
20
|
+
# Kept for standalone `docker run noxdev-runner` debugging without --user flag
|
|
21
|
+
RUN useradd -m -s /bin/bash runner \
|
|
22
|
+
&& echo "runner ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
|
|
23
|
+
|
|
24
|
+
USER runner
|
|
25
|
+
WORKDIR /workspace
|
|
26
|
+
ENV HOME=/home/runner
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eugene218/noxdev",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Autonomous overnight coding agent orchestrator — ship code while you sleep",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -19,11 +19,13 @@
|
|
|
19
19
|
},
|
|
20
20
|
"homepage": "https://github.com/eugeneorlov/noxdev",
|
|
21
21
|
"engines": {
|
|
22
|
-
"node": ">=
|
|
22
|
+
"node": ">=20.0.0 <23.0.0"
|
|
23
23
|
},
|
|
24
24
|
"files": [
|
|
25
25
|
"dist/",
|
|
26
26
|
"scripts/",
|
|
27
|
+
"docker/",
|
|
28
|
+
"templates/",
|
|
27
29
|
"README.md",
|
|
28
30
|
"LICENSE"
|
|
29
31
|
],
|
|
@@ -32,6 +34,7 @@
|
|
|
32
34
|
"noxdev": "./dist/index.js"
|
|
33
35
|
},
|
|
34
36
|
"scripts": {
|
|
37
|
+
"prebuild": "mkdir -p docker && cp ../../docker/Dockerfile docker/Dockerfile",
|
|
35
38
|
"build": "tsup",
|
|
36
39
|
"postbuild": "rm -rf dist/scripts && cp -r scripts dist/scripts && rm -rf dist/dashboard && cp -r ../dashboard/dist dist/dashboard",
|
|
37
40
|
"lint": "tsc --noEmit",
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# noxdev demo — your first autonomous build
|
|
2
|
+
|
|
3
|
+
# This is a baked-in demo task spec shipped with noxdev.
|
|
4
|
+
# It transforms a fresh Vite + React + TypeScript scaffold into a
|
|
5
|
+
# polished welcome page, built entirely by an autonomous agent.
|
|
6
|
+
#
|
|
7
|
+
# Estimated runtime: 2-3 minutes total
|
|
8
|
+
# Gate: pnpm build must pass after each task
|
|
9
|
+
|
|
10
|
+
## T1: Replace the Vite starter App with a noxdev welcome page
|
|
11
|
+
- STATUS: pending
|
|
12
|
+
- FILES: src/App.tsx, src/App.css
|
|
13
|
+
- VERIFY: pnpm build && grep -q "noxdev" src/App.tsx && ! grep -q "viteLogo" src/App.tsx
|
|
14
|
+
- CRITIC: skip
|
|
15
|
+
- PUSH: auto
|
|
16
|
+
- SPEC: Replace the contents of src/App.tsx and src/App.css to create a
|
|
17
|
+
centered welcome page that demonstrates noxdev's spec-driven workflow.
|
|
18
|
+
|
|
19
|
+
REQUIREMENTS for src/App.tsx:
|
|
20
|
+
- Remove ALL Vite starter content: viteLogo import, reactLogo import,
|
|
21
|
+
useState counter, the entire default JSX with logos and counter button.
|
|
22
|
+
- Do NOT keep any reference to viteLogo, reactLogo, or the count state.
|
|
23
|
+
- Replace with a single functional component that renders:
|
|
24
|
+
- A main container div with className "app-container"
|
|
25
|
+
- An owl emoji 🦉 inside a div with className "app-owl"
|
|
26
|
+
- An h1 with the text "noxdev demo"
|
|
27
|
+
- A subtitle paragraph with className "app-subtitle":
|
|
28
|
+
"This page was built by an autonomous agent while you watched."
|
|
29
|
+
- A "What just happened" section with className "app-explainer":
|
|
30
|
+
- h2 with text "What just happened?"
|
|
31
|
+
- A paragraph explaining: "You ran one command. noxdev spun up a
|
|
32
|
+
Docker container, fed a task spec to Claude Code, captured the
|
|
33
|
+
diff, and committed the result. No clicks. No typing. Just specs."
|
|
34
|
+
- A footer paragraph with className "app-footer":
|
|
35
|
+
"Welcome to spec-driven development."
|
|
36
|
+
|
|
37
|
+
REQUIREMENTS for src/App.css:
|
|
38
|
+
- Replace the ENTIRE file. Remove all default Vite styles.
|
|
39
|
+
- Use CSS variables at the top for the color palette:
|
|
40
|
+
--bg: #0a0a12 (deep near-black)
|
|
41
|
+
--surface: #161623
|
|
42
|
+
--text: #e4e4ef
|
|
43
|
+
--muted: #9494a8
|
|
44
|
+
--gold: #C9A84C (noxdev brand color)
|
|
45
|
+
--border: #2a2a3e
|
|
46
|
+
- Body / .app-container styles:
|
|
47
|
+
- body: background var(--bg), color var(--text), system font stack
|
|
48
|
+
(-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif)
|
|
49
|
+
- margin 0, min-height 100vh
|
|
50
|
+
- .app-container: max-width 640px, margin 0 auto, padding 80px 24px,
|
|
51
|
+
text-align center
|
|
52
|
+
- .app-owl: font-size 80px, margin-bottom 24px, line-height 1
|
|
53
|
+
- h1: font-size 48px, font-weight 700, color var(--gold),
|
|
54
|
+
margin 0 0 16px 0, letter-spacing -0.02em
|
|
55
|
+
- .app-subtitle: font-size 18px, color var(--muted), margin 0 0 64px 0,
|
|
56
|
+
line-height 1.5
|
|
57
|
+
- .app-explainer: background var(--surface), border 1px solid var(--border),
|
|
58
|
+
border-radius 12px, padding 32px, margin-bottom 48px, text-align left
|
|
59
|
+
- .app-explainer h2: font-size 20px, color var(--gold),
|
|
60
|
+
margin 0 0 12px 0, font-weight 600
|
|
61
|
+
- .app-explainer p: font-size 15px, color var(--text), margin 0,
|
|
62
|
+
line-height 1.6
|
|
63
|
+
- .app-footer: font-size 14px, color var(--muted), font-style italic,
|
|
64
|
+
margin 0
|
|
65
|
+
|
|
66
|
+
Do NOT add any imports beyond React. Do NOT add useState, useEffect,
|
|
67
|
+
or any hooks. This is a purely static welcome page.
|
|
68
|
+
Do NOT delete src/main.tsx or src/index.css — leave those alone.
|
|
69
|
+
|
|
70
|
+
## T2: Clean up Vite starter assets
|
|
71
|
+
- STATUS: pending
|
|
72
|
+
- FILES: src/index.css, public/vite.svg, src/assets/react.svg
|
|
73
|
+
- VERIFY: pnpm build && ! grep -q "vite.svg" index.html
|
|
74
|
+
- CRITIC: skip
|
|
75
|
+
- PUSH: auto
|
|
76
|
+
- SPEC: Remove the leftover Vite starter assets and update index.css.
|
|
77
|
+
|
|
78
|
+
STEPS:
|
|
79
|
+
1. Replace the contents of src/index.css with a minimal reset:
|
|
80
|
+
```css
|
|
81
|
+
:root {
|
|
82
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",
|
|
83
|
+
Roboto, Oxygen, Ubuntu, sans-serif;
|
|
84
|
+
line-height: 1.5;
|
|
85
|
+
font-weight: 400;
|
|
86
|
+
color-scheme: dark;
|
|
87
|
+
}
|
|
88
|
+
* {
|
|
89
|
+
box-sizing: border-box;
|
|
90
|
+
}
|
|
91
|
+
body {
|
|
92
|
+
margin: 0;
|
|
93
|
+
min-width: 320px;
|
|
94
|
+
min-height: 100vh;
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
2. Delete the file public/vite.svg (it is no longer used).
|
|
98
|
+
Use rm public/vite.svg
|
|
99
|
+
3. Delete the file src/assets/react.svg (it is no longer used).
|
|
100
|
+
Use rm src/assets/react.svg
|
|
101
|
+
4. If src/assets/ is now empty, remove it with rmdir src/assets
|
|
102
|
+
5. Update index.html in the project root: change the <link rel="icon">
|
|
103
|
+
line from href="/vite.svg" to href="data:," (an empty data URI).
|
|
104
|
+
This removes the broken favicon reference without needing a new file.
|
|
105
|
+
6. Update the <title> in index.html from "Vite + React + TS" to
|
|
106
|
+
"noxdev demo".
|
|
107
|
+
|
|
108
|
+
Do NOT touch src/main.tsx, package.json, vite.config.ts, or tsconfig.json.
|
|
109
|
+
|
|
110
|
+
## T3: Add a brief README explaining what noxdev built
|
|
111
|
+
- STATUS: pending
|
|
112
|
+
- FILES: README.md
|
|
113
|
+
- VERIFY: pnpm build && grep -q "noxdev" README.md
|
|
114
|
+
- CRITIC: skip
|
|
115
|
+
- PUSH: auto
|
|
116
|
+
- SPEC: Replace the default Vite README.md with a short explanation of
|
|
117
|
+
what just happened in this demo.
|
|
118
|
+
|
|
119
|
+
Replace the entire contents of README.md with exactly this markdown:
|
|
120
|
+
|
|
121
|
+
# noxdev demo
|
|
122
|
+
|
|
123
|
+
This project was built by an autonomous agent using
|
|
124
|
+
[noxdev](https://github.com/eugeneorlov/noxdev).
|
|
125
|
+
|
|
126
|
+
## What happened
|
|
127
|
+
|
|
128
|
+
You ran `noxdev demo`. noxdev:
|
|
129
|
+
|
|
130
|
+
1. Scaffolded a fresh Vite + React + TypeScript project
|
|
131
|
+
2. Initialized a git repository with an initial commit
|
|
132
|
+
3. Registered the project with noxdev
|
|
133
|
+
4. Spun up a Docker container with Claude Code inside
|
|
134
|
+
5. Fed a task spec to the agent
|
|
135
|
+
6. Captured the resulting diff
|
|
136
|
+
7. Committed the changes to a worktree branch
|
|
137
|
+
|
|
138
|
+
All without you typing a single line of code.
|
|
139
|
+
|
|
140
|
+
## Run it locally
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
pnpm install
|
|
144
|
+
pnpm dev
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Open http://localhost:5173 in your browser.
|
|
148
|
+
|
|
149
|
+
## What is spec-driven development?
|
|
150
|
+
|
|
151
|
+
Instead of writing code, you write specifications. A specification
|
|
152
|
+
describes what the agent should build, which files to touch, and how
|
|
153
|
+
to verify the result. The agent reads the spec and produces code.
|
|
154
|
+
|
|
155
|
+
See `TASKS.md` in the project root for the specs that built this page.
|
|
156
|
+
|
|
157
|
+
## Next steps
|
|
158
|
+
|
|
159
|
+
- Edit `TASKS.md` to add your own task
|
|
160
|
+
- Run `noxdev run noxdev-demo` to execute new tasks
|
|
161
|
+
- Run `noxdev dashboard` to see the visual review interface
|
|
162
|
+
- Read the noxdev docs to learn the full workflow
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
*Built with noxdev. Ship code while you sleep.* 🦉
|
|
167
|
+
|
|
168
|
+
Do NOT touch any other files.
|