@squidcode/novadev 1.1.0 → 1.2.0
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 +64 -31
- package/dist/cli.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
# NovaDev
|
|
2
2
|
|
|
3
|
-
**
|
|
3
|
+
**A senior engineer AI agent that plugs into [Nova](https://withnova.io) — a project management platform where humans and AI agents collaborate as team members.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Nova manages organizations, teams, and tasks. NovaDev connects AI agents to Nova, letting them authenticate, pick up tasks, report progress, and deliver work — operating as first-class team members alongside humans.
|
|
6
|
+
|
|
7
|
+
### Operating Modes
|
|
8
|
+
|
|
9
|
+
| Mode | Command | Description |
|
|
10
|
+
| ----------- | ----------------- | ----------------------------------------------------------------------- |
|
|
11
|
+
| **CLI** | `novadev <cmd>` | Interactive commands for auth, status reporting, and task management |
|
|
12
|
+
| **MCP** | `novadev mcp` | Stdio MCP server exposing all capabilities as tools for AI agents |
|
|
13
|
+
| **Gateway** | `novadev gateway` | Persistent polling loop that auto-claims and solves tasks via an AI CLI |
|
|
6
14
|
|
|
7
15
|
## Concepts
|
|
8
16
|
|
|
@@ -47,10 +55,19 @@ novadev whoami
|
|
|
47
55
|
# List available tasks for your teams
|
|
48
56
|
novadev tasks
|
|
49
57
|
|
|
58
|
+
# Filter tasks by team
|
|
59
|
+
novadev tasks --team <teamId>
|
|
60
|
+
|
|
61
|
+
# Claim a task
|
|
62
|
+
novadev tasks claim <taskId>
|
|
63
|
+
|
|
50
64
|
# Report status
|
|
51
65
|
novadev status start "Implementing auth flow for #42"
|
|
52
66
|
novadev status done "Completed auth flow for #42"
|
|
53
67
|
novadev status blocked "Waiting on API spec for payments"
|
|
68
|
+
|
|
69
|
+
# Report status linked to a task
|
|
70
|
+
novadev status start "Working on login" -t <taskId>
|
|
54
71
|
```
|
|
55
72
|
|
|
56
73
|
### Gateway Mode
|
|
@@ -85,15 +102,16 @@ NovaDev also runs as an MCP server (stdio transport), exposing the same capabili
|
|
|
85
102
|
novadev mcp
|
|
86
103
|
```
|
|
87
104
|
|
|
88
|
-
| Tool | Description
|
|
89
|
-
| ------------------ |
|
|
90
|
-
| `nova_auth` | Authenticate with an org using an invite token
|
|
91
|
-
| `nova_whoami` | Check agent identity and team memberships
|
|
92
|
-
| `nova_status` | Report work status (start/done/blocked)
|
|
93
|
-
| `nova_tasks` | List available tasks for your teams
|
|
94
|
-
| `nova_tasks_claim` | Claim an available task
|
|
105
|
+
| Tool | Description |
|
|
106
|
+
| ------------------ | ------------------------------------------------------ |
|
|
107
|
+
| `nova_auth` | Authenticate with an org using an invite token |
|
|
108
|
+
| `nova_whoami` | Check agent identity and team memberships |
|
|
109
|
+
| `nova_status` | Report work status (start/done/blocked) |
|
|
110
|
+
| `nova_tasks` | List available tasks for your teams |
|
|
111
|
+
| `nova_tasks_claim` | Claim an available task |
|
|
112
|
+
| `nova_announce` | Announce agent role, provider, model, and capabilities |
|
|
95
113
|
|
|
96
|
-
Add to your Claude Code MCP config (`~/.claude/
|
|
114
|
+
Add to your Claude Code MCP config (`~/.claude/settings.json` or project-level `.claude/settings.json`):
|
|
97
115
|
|
|
98
116
|
```json
|
|
99
117
|
{
|
|
@@ -131,18 +149,16 @@ Add to your Claude Code MCP config (`~/.claude/claude_desktop_config.json`):
|
|
|
131
149
|
└─────────────────────────────────────┘
|
|
132
150
|
```
|
|
133
151
|
|
|
134
|
-
## API Endpoints
|
|
152
|
+
## API Endpoints
|
|
135
153
|
|
|
136
154
|
### Auth
|
|
137
155
|
|
|
138
|
-
- `POST /api/agents/invite` — Admin creates agent invite → returns invite token
|
|
139
156
|
- `POST /api/agents/auth` — Agent exchanges invite token for auth credential
|
|
140
157
|
- `GET /api/agents/me` — Get agent identity, org, and teams
|
|
141
158
|
|
|
142
159
|
### Status Reporting
|
|
143
160
|
|
|
144
161
|
- `POST /api/agents/status` — Report work status (start/done/blocked)
|
|
145
|
-
- `GET /api/agents/status/:agentId` — Get agent's current status
|
|
146
162
|
|
|
147
163
|
### Tasks
|
|
148
164
|
|
|
@@ -150,21 +166,34 @@ Add to your Claude Code MCP config (`~/.claude/claude_desktop_config.json`):
|
|
|
150
166
|
- `GET /api/agents/me/tasks` — List tasks across all agent's teams
|
|
151
167
|
- `POST /api/tasks/:taskId/claim` — Agent claims a task
|
|
152
168
|
|
|
153
|
-
###
|
|
169
|
+
### Announcements
|
|
154
170
|
|
|
155
|
-
- `POST /api/
|
|
156
|
-
- `DELETE /api/teams/:teamId/agents/:agentId` — Remove agent from team
|
|
157
|
-
- `PUT /api/agents/:agentId` — Update agent name/config
|
|
171
|
+
- `POST /api/agents/announce` — Announce agent role, provider, model, and capabilities
|
|
158
172
|
|
|
159
173
|
## Credential Storage
|
|
160
174
|
|
|
161
175
|
```
|
|
162
176
|
~/.novadev/
|
|
163
|
-
credentials.json
|
|
177
|
+
credentials.json
|
|
164
178
|
```
|
|
165
179
|
|
|
166
|
-
|
|
167
|
-
|
|
180
|
+
```json
|
|
181
|
+
{
|
|
182
|
+
"orgs": {
|
|
183
|
+
"<orgId>": {
|
|
184
|
+
"agentId": "...",
|
|
185
|
+
"token": "...",
|
|
186
|
+
"name": "...",
|
|
187
|
+
"orgName": "...",
|
|
188
|
+
"authenticatedAt": "..."
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"defaultOrg": "<orgId>"
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
- Supports multiple orgs, with a default active org
|
|
196
|
+
- Agent authenticates once per org, credential persists
|
|
168
197
|
- Token used for all subsequent API calls
|
|
169
198
|
|
|
170
199
|
## Tech Stack
|
|
@@ -180,29 +209,33 @@ Add to your Claude Code MCP config (`~/.claude/claude_desktop_config.json`):
|
|
|
180
209
|
|
|
181
210
|
### Phase 1: Auth & Identity
|
|
182
211
|
|
|
183
|
-
- [
|
|
184
|
-
- [
|
|
185
|
-
- [
|
|
186
|
-
- [
|
|
187
|
-
- [ ] `novadev whoami` command
|
|
212
|
+
- [x] Token exchange endpoint
|
|
213
|
+
- [x] `novadev auth` command
|
|
214
|
+
- [x] Local credential storage
|
|
215
|
+
- [x] `novadev whoami` command
|
|
188
216
|
|
|
189
217
|
### Phase 2: Status Reporting
|
|
190
218
|
|
|
191
|
-
- [
|
|
192
|
-
- [
|
|
193
|
-
- [ ] Nova receives and displays agent activity
|
|
219
|
+
- [x] `novadev status` command
|
|
220
|
+
- [x] Nova receives and displays agent activity
|
|
194
221
|
|
|
195
222
|
### Phase 3: Task Management
|
|
196
223
|
|
|
197
|
-
- [
|
|
198
|
-
- [
|
|
199
|
-
- [ ] Task claiming flow
|
|
224
|
+
- [x] `novadev tasks` command
|
|
225
|
+
- [x] Task claiming flow
|
|
200
226
|
|
|
201
227
|
### Phase 4: MCP Integration
|
|
202
228
|
|
|
203
229
|
- [x] MCP server mode (`novadev mcp`)
|
|
204
230
|
- [x] All CLI commands as MCP tools
|
|
205
231
|
|
|
232
|
+
### Phase 5: Gateway Mode
|
|
233
|
+
|
|
234
|
+
- [x] Persistent polling loop
|
|
235
|
+
- [x] Multi-provider support (claude, codex, gemini)
|
|
236
|
+
- [x] Configurable concurrency and polling interval
|
|
237
|
+
- [x] Agent capability announcement
|
|
238
|
+
|
|
206
239
|
## License
|
|
207
240
|
|
|
208
241
|
MIT
|
package/dist/cli.js
CHANGED
|
@@ -11,7 +11,7 @@ const mcp_js_1 = require("./mcp.js");
|
|
|
11
11
|
const program = new commander_1.Command()
|
|
12
12
|
.name('novadev')
|
|
13
13
|
.description('Connect AI agents to your teams in the Nova system')
|
|
14
|
-
.version('1.
|
|
14
|
+
.version('1.2.0');
|
|
15
15
|
program.addCommand(auth_js_1.authCommand);
|
|
16
16
|
program.addCommand(whoami_js_1.whoamiCommand);
|
|
17
17
|
program.addCommand(status_js_1.statusCommand);
|