@slenderbuilds/niti 0.4.3 → 0.4.5
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 +8 -12
- package/bin/niti-core.js +2 -3
- package/bin/niti.js +2 -3
- package/bin/resolve.js +17 -0
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -130,18 +130,14 @@ model or message it mid-task. Approvals can be answered here too.
|
|
|
130
130
|
|
|
131
131
|
`/graph` maps your project's imports — or, in **Models** mode, the team talking in real time.
|
|
132
132
|
|
|
133
|
-
<
|
|
134
|
-
<
|
|
135
|
-
|
|
136
|
-
<
|
|
137
|
-
<
|
|
138
|
-
|
|
139
|
-
<
|
|
140
|
-
<
|
|
141
|
-
<td align="center"><sub>Hover to trace a file's imports</sub></td>
|
|
142
|
-
<td align="center"><sub>Models mode: the team, live</sub></td>
|
|
143
|
-
</tr>
|
|
144
|
-
</table>
|
|
133
|
+
<img src="readme_images/graph-project.png" alt="project mode: every file, colored by directory" width="100%">
|
|
134
|
+
<p align="center"><sub><b>Project mode</b> — every file, colored by directory</sub></p>
|
|
135
|
+
|
|
136
|
+
<img src="readme_images/graph-focus.png" alt="hovering a file highlights what it imports and what imports it" width="100%">
|
|
137
|
+
<p align="center"><sub><b>Hover</b> — trace what a file imports and what imports it</sub></p>
|
|
138
|
+
|
|
139
|
+
<img src="readme_images/graph-models.png" alt="models mode: each agent, colored by status" width="100%">
|
|
140
|
+
<p align="center"><sub><b>Models mode</b> — the team talking, live</sub></p>
|
|
145
141
|
|
|
146
142
|
Both pages follow the theme you pick in the terminal.
|
|
147
143
|
|
package/bin/niti-core.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// The headless engine/scripting CLI (`niti-core "task"`, `serve`, `auth`, …). Same handover as
|
|
3
3
|
// bin/niti.js — the TUI spawns this binary directly as a sibling, without going through Node.
|
|
4
|
-
import {
|
|
5
|
-
import { binPath } from "./resolve.js";
|
|
4
|
+
import { run } from "./resolve.js";
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
run("niti-core");
|
package/bin/niti.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// The interactive TUI. Node runs this shim; everything after the handover is Go and Bun.
|
|
3
|
-
import {
|
|
4
|
-
import { binPath } from "./resolve.js";
|
|
3
|
+
import { run } from "./resolve.js";
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
run("niti");
|
package/bin/resolve.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
|
+
import { spawnSync } from "node:child_process";
|
|
3
|
+
import { constants } from "node:os";
|
|
2
4
|
|
|
3
5
|
const require = createRequire(import.meta.url);
|
|
4
6
|
|
|
@@ -30,3 +32,18 @@ export function binPath(exe) {
|
|
|
30
32
|
process.exit(1);
|
|
31
33
|
}
|
|
32
34
|
}
|
|
35
|
+
|
|
36
|
+
// Hand over to the real binary and mirror how it ended. The shims used to exit with `status ?? 1`,
|
|
37
|
+
// which turned "could not execute it" (missing exec bit, bad architecture, antivirus quarantine)
|
|
38
|
+
// into a silent exit 1 — no output at all — and a crash by signal into an unexplained 1.
|
|
39
|
+
export function run(exe) {
|
|
40
|
+
const path = binPath(exe);
|
|
41
|
+
const r = spawnSync(path, process.argv.slice(2), { stdio: "inherit" });
|
|
42
|
+
if (r.error) {
|
|
43
|
+
console.error(`niti: could not run ${path}: ${r.error.message}`);
|
|
44
|
+
if (r.error.code === "EACCES") console.error(` try: chmod +x "${path}"`);
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
if (r.signal) process.exit(128 + (constants.signals[r.signal] ?? 0));
|
|
48
|
+
process.exit(r.status ?? 1);
|
|
49
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slenderbuilds/niti",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
4
4
|
"description": "A terminal CLI that runs multiple AI coding agents from different LLM providers concurrently on one project.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -54,11 +54,11 @@
|
|
|
54
54
|
"access": "public"
|
|
55
55
|
},
|
|
56
56
|
"optionalDependencies": {
|
|
57
|
-
"niti-darwin-arm64": "0.4.
|
|
58
|
-
"niti-darwin-x64": "0.4.
|
|
59
|
-
"niti-linux-arm64": "0.4.
|
|
60
|
-
"niti-linux-x64": "0.4.
|
|
61
|
-
"niti-win32-x64": "0.4.
|
|
57
|
+
"niti-darwin-arm64": "0.4.5",
|
|
58
|
+
"niti-darwin-x64": "0.4.5",
|
|
59
|
+
"niti-linux-arm64": "0.4.5",
|
|
60
|
+
"niti-linux-x64": "0.4.5",
|
|
61
|
+
"niti-win32-x64": "0.4.5"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@anthropic-ai/sdk": "^0.115.0",
|