@njeybe/nativ 2.0.0 → 2.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/CHANGELOG.md +13 -0
- package/README.md +7 -13
- package/dist/commands/doctor.js +7 -0
- package/package.json +1 -9
- package/plugin/.claude-plugin/plugin.json +1 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.0.2
|
|
4
|
+
|
|
5
|
+
- **`nativ doctor` no longer reports a failure on a brand-new project.** Right after `nativ init`, Claude Code lists the project's `nativ` MCP server as "Pending approval" until you approve it, which is the expected first state. Doctor showed it as a red failure and exited 1. It is now a warning that tells you to open `claude` in the folder and approve the server; a server that genuinely fails to connect is still a failure.
|
|
6
|
+
|
|
7
|
+
## 2.0.1
|
|
8
|
+
|
|
9
|
+
Documentation and package metadata only; no behaviour changes.
|
|
10
|
+
|
|
11
|
+
- **npm is the only install path.** The source repository is private, so the instructions for `npm install -g github:…` and for adding the plugin marketplace were removed from the README and the installation guide. `nativ setup` is the complete route: it writes the agents, the enforcement hook, the MCP entry and the permission rules, which a plugin cannot ship.
|
|
12
|
+
- The plugin files still ship inside the package (`plugin/`) and can be tried for one session with `claude --plugin-dir`.
|
|
13
|
+
- `package.json` no longer declares `repository`, `homepage` or `bugs`, so the npm page has no dead links.
|
|
14
|
+
- The 2.0.0 entry below still mentions the plugin marketplace; that route is not available outside the private repository.
|
|
15
|
+
|
|
3
16
|
## 2.0.0
|
|
4
17
|
|
|
5
18
|
nativ is now role-based and Claude-first. The roles (architect, project manager, worker, verifier) are fixed; the model behind each one is configurable, and Claude Code is the default host for all of them. Antigravity and Gemini still work as an optional architect.
|
package/README.md
CHANGED
|
@@ -36,17 +36,14 @@ Why it works:
|
|
|
36
36
|
|
|
37
37
|
### 1. Install
|
|
38
38
|
|
|
39
|
-
You need Node.js 20 or newer and Git.
|
|
39
|
+
You need Node.js 20 or newer and Git.
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
# From npm
|
|
43
42
|
npm install -g @njeybe/nativ
|
|
44
|
-
|
|
45
|
-
# Or straight from GitHub (builds on install, about a minute)
|
|
46
|
-
npm install -g github:njeybe/nativ
|
|
43
|
+
nativ --version
|
|
47
44
|
```
|
|
48
45
|
|
|
49
|
-
|
|
46
|
+
The package is `@njeybe/nativ`; the command is `nativ`. More options, including running it without installing, are in [docs/installation.md](docs/installation.md).
|
|
50
47
|
|
|
51
48
|
### 2. Set up a project
|
|
52
49
|
|
|
@@ -69,14 +66,11 @@ Setup **merges**: it never overwrites your own settings, hooks, MCP servers or e
|
|
|
69
66
|
|
|
70
67
|
Open Claude Code in the folder once and accept the workspace trust dialog. Until you do, Claude Code ignores the project's `permissions.allow` entries.
|
|
71
68
|
|
|
72
|
-
### 3.
|
|
69
|
+
### 3. About the Claude Code plugin
|
|
73
70
|
|
|
74
|
-
|
|
75
|
-
/plugin marketplace add njeybe/nativ
|
|
76
|
-
/plugin install nativ@nativ
|
|
77
|
-
```
|
|
71
|
+
You do not need the plugin. `nativ setup` writes the same agents, enforcement hook and MCP entry into your project, and also the permission rules that deny `nativ task unlock` and `nativ db sync`, block reading `.env*` files, and make Claude Code ask before any write under `.ai/`. **A plugin cannot ship permission rules**, so `nativ setup` is the complete route.
|
|
78
72
|
|
|
79
|
-
The plugin
|
|
73
|
+
The plugin files ship inside the package (`plugin/`). To try them for a single Claude Code session, point `claude --plugin-dir` at that folder under your global `node_modules` (`npm root -g` prints its location).
|
|
80
74
|
|
|
81
75
|
### 4. Work
|
|
82
76
|
|
|
@@ -96,7 +90,7 @@ Run it after updating Claude Code or nativ. It also asks Claude Code itself whet
|
|
|
96
90
|
### 6. Update
|
|
97
91
|
|
|
98
92
|
```bash
|
|
99
|
-
npm install -g @njeybe/nativ@latest
|
|
93
|
+
npm install -g @njeybe/nativ@latest
|
|
100
94
|
nativ update # in each project
|
|
101
95
|
nativ doctor
|
|
102
96
|
```
|
package/dist/commands/doctor.js
CHANGED
|
@@ -38,6 +38,13 @@ export function analyzeMcpList(text) {
|
|
|
38
38
|
else if (/Connected/.test(line)) {
|
|
39
39
|
checks.push({ id: 'mcp-connected', status: 'ok', message: `Claude Code connects to the nativ MCP server (${line.replace(/\s+-\s+.*$/, '').trim()})` });
|
|
40
40
|
}
|
|
41
|
+
else if (/Pending approval/i.test(line)) {
|
|
42
|
+
// A new project's .mcp.json is not started until the user approves it. That is the expected first state.
|
|
43
|
+
checks.push({ id: 'mcp-pending', status: 'warn', message: 'The nativ MCP server is waiting for your approval. Open `claude` in this folder and approve it; nothing is wrong with the setup.' });
|
|
44
|
+
}
|
|
45
|
+
else if (/Needs authentication/i.test(line)) {
|
|
46
|
+
checks.push({ id: 'mcp-auth', status: 'warn', message: `Claude Code says the nativ MCP server needs authentication: ${line.trim()}` });
|
|
47
|
+
}
|
|
41
48
|
else {
|
|
42
49
|
checks.push({ id: 'mcp-connected', status: 'fail', message: `Claude Code lists the nativ MCP server but it is not connected: ${line.trim()}` });
|
|
43
50
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@njeybe/nativ",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "Role-based multi-agent workflow harness: Claude Code by default, other AI agents pluggable",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -24,14 +24,6 @@
|
|
|
24
24
|
"start": "node bin/cli.js",
|
|
25
25
|
"test": "node tests/test-task-router.mjs && node tests/test-contract-generator.mjs && node tests/test-verify-gatekeeper.mjs && node tests/test-mcp-server.mjs && node tests/test-data-studio.mjs && node tests/test-fragmented-env.mjs && node tests/test-env-example-detection.mjs && node tests/test-contract-governor.mjs && node tests/test-worktree-lifecycle.mjs && node tests/test-agent-supervisor.mjs && node tests/test-concurrency-locks.mjs && node tests/test-telemetry-engine.mjs && node tests/test-benchmark-suite.mjs && node tests/test-providers.mjs && node tests/test-tier1-liaison.mjs && node tests/test-enforcement.mjs && node tests/test-setup-doctor.mjs && node tests/test-update.mjs && node tests/test-validate.mjs && node tests/test-plugin-manifest.mjs && node tests/test-v2-e2e.mjs && npx tsx tests/test-studio-pipeline-api.mjs && npx tsx tests/test-studio-light-ui.mjs"
|
|
26
26
|
},
|
|
27
|
-
"repository": {
|
|
28
|
-
"type": "git",
|
|
29
|
-
"url": "git+https://github.com/njeybe/nativ.git"
|
|
30
|
-
},
|
|
31
|
-
"homepage": "https://github.com/njeybe/nativ#readme",
|
|
32
|
-
"bugs": {
|
|
33
|
-
"url": "https://github.com/njeybe/nativ/issues"
|
|
34
|
-
},
|
|
35
27
|
"keywords": [
|
|
36
28
|
"ai",
|
|
37
29
|
"agent",
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nativ",
|
|
3
3
|
"displayName": "nativ",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.2",
|
|
5
5
|
"description": "Role-based multi-agent workflow for Claude Code: architect, worker and verifier agents, task-scope enforcement, and the nativ MCP server.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "JB Natividad"
|
|
8
8
|
},
|
|
9
|
-
"homepage": "https://github.com/njeybe/nativ",
|
|
10
|
-
"repository": "https://github.com/njeybe/nativ",
|
|
11
9
|
"license": "MIT",
|
|
12
10
|
"keywords": [
|
|
13
11
|
"multi-agent",
|