@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.
Files changed (3) hide show
  1. package/README.md +64 -31
  2. package/dist/cli.js +1 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,8 +1,16 @@
1
1
  # NovaDev
2
2
 
3
- **Connect AI agents to your teams in the Nova system.**
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
- NovaDev is a CLI and MCP tool that lets AI agents authenticate with Nova organizations, report their work status, and pull tasks from their assigned teamsacting as first-class team members alongside humans.
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/claude_desktop_config.json`):
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 (to build)
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
- ### Team Management (Admin)
169
+ ### Announcements
154
170
 
155
- - `POST /api/teams/:teamId/agents` — Add agent to team
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 # { orgId, agentId, token, name }
177
+ credentials.json
164
178
  ```
165
179
 
166
- - One credential per org
167
- - Agent authenticates once, credential persists
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
- - [ ] Agent invite flow (admin dashboard + API)
184
- - [ ] Token exchange endpoint
185
- - [ ] `novadev auth` command
186
- - [ ] Local credential storage
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
- - [ ] Status reporting endpoints
192
- - [ ] `novadev status` command
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
- - [ ] Task listing endpoints
198
- - [ ] `novadev tasks` command
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.0.0');
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squidcode/novadev",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Connect AI agents to your teams in the Nova system",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",