ucode-agent 1.45.0 → 1.48.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 +7 -5
- package/package.json +4 -3
- package/src/core/history.js +6 -1
- package/src/core/loop.js +3014 -2885
- package/src/core/provider.js +994 -924
- package/src/core/relink.js +2 -1
- package/src/tools/blocks.js +2 -2
- package/src/tools/files.js +750 -743
- package/src/tools/rename.js +2 -2
- package/src/tools/scaffold.js +502 -502
- package/src/tools/shared.js +469 -389
- package/src/tools/shell.js +844 -818
- package/ucode.js +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# ucode
|
|
2
2
|
|
|
3
3
|
A coding agent that lives in your terminal. It reads your code, edits it, runs
|
|
4
|
-
your commands, and keeps every conversation on disk. It runs on NVIDIA
|
|
5
|
-
Cohere models, all of them free.
|
|
4
|
+
your commands, and keeps every conversation on disk. It runs on NVIDIA,
|
|
5
|
+
Cohere and Nex AGI models, all of them free.
|
|
6
6
|
|
|
7
7
|
It opens on a quiet screen — the name, the place to type, and the version in the
|
|
8
8
|
corner:
|
|
@@ -27,7 +27,7 @@ corner:
|
|
|
27
27
|
add a dark mode toggle that remembers the choice
|
|
28
28
|
|
|
29
29
|
|
|
30
|
-
v1.
|
|
30
|
+
v1.46.0
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
A light crosses the wordmark once as it opens, and the three lines under the box
|
|
@@ -87,8 +87,8 @@ Needs Node 22 or newer.
|
|
|
87
87
|
|
|
88
88
|
## The models
|
|
89
89
|
|
|
90
|
-
|
|
91
|
-
serve capable models free, and
|
|
90
|
+
Six, and no picker full of names nobody recognises. NVIDIA, Cohere and Nex AGI
|
|
91
|
+
all serve capable models free, and all handle tool calling
|
|
92
92
|
properly, which is the thing an agent actually depends on.
|
|
93
93
|
|
|
94
94
|
| Model | Context | For |
|
|
@@ -98,6 +98,7 @@ properly, which is the thing an agent actually depends on.
|
|
|
98
98
|
| Nemotron 3 Super | 262k | strong all-rounder, quick to start |
|
|
99
99
|
| Nemotron 3 Nano Omni | 256k | small, fast, reasoning tuned |
|
|
100
100
|
| **North Mini Code** ★ | 256k | the default — built for code and interface work, quick to answer |
|
|
101
|
+
| Nex N2.5 Pro | 262k | new agentic coder, on trial — can stall on big builds |
|
|
101
102
|
|
|
102
103
|
`/model` shows them and switches. `ucode -m cohere/north-mini-code:free`
|
|
103
104
|
starts on one.
|
|
@@ -415,6 +416,7 @@ ucode [options]
|
|
|
415
416
|
Environment overrides: `UCODE_MODEL`, `UCODE_WORKER_MODEL` (a faster model for
|
|
416
417
|
parallel workers), `UCODE_WORKER_STEPS`, `UCODE_MAX_CONTEXT_TOKENS`,
|
|
417
418
|
`UCODE_MAX_STEPS`, `UCODE_MAX_TOOL_OUTPUT`, `UCODE_REQUEST_TIMEOUT_MS`,
|
|
419
|
+
`UCODE_STALL_MS` (how long a silent reply is waited on before asking again, 60s),
|
|
418
420
|
`UCODE_BASE_URL`, `UCODE_NO_UPDATE`.
|
|
419
421
|
|
|
420
422
|
Web search needs a Tavily key — free, 1000 searches a month, no card. Without
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ucode-agent",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "ucode - a terminal coding agent that reads, edits and runs your code, on NVIDIA and
|
|
3
|
+
"version": "1.48.0",
|
|
4
|
+
"description": "ucode - a terminal coding agent that reads, edits and runs your code, on NVIDIA, Cohere and Nex AGI models.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "ucode.js",
|
|
7
7
|
"bin": {
|
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
"llm",
|
|
39
39
|
"nvidia",
|
|
40
40
|
"nemotron",
|
|
41
|
-
"cohere"
|
|
41
|
+
"cohere",
|
|
42
|
+
"nex-agi"
|
|
42
43
|
],
|
|
43
44
|
"author": "om dixit",
|
|
44
45
|
"license": "ISC",
|
package/src/core/history.js
CHANGED
|
@@ -100,7 +100,12 @@ export async function save(session, { home = HOME } = {}) {
|
|
|
100
100
|
const temp = `${target}.${process.pid}.tmp`;
|
|
101
101
|
|
|
102
102
|
try {
|
|
103
|
-
|
|
103
|
+
// Compact, not pretty. The whole file is rewritten after every tool
|
|
104
|
+
// result, and on a long build with file contents in it the indentation was
|
|
105
|
+
// roughly half of what got written each time — for a file read by programs,
|
|
106
|
+
// not by people. `node -e "console.log(require('./x.json').messages)"` or
|
|
107
|
+
// /resume reads it either way.
|
|
108
|
+
await fs.writeFile(temp, JSON.stringify(session), 'utf8');
|
|
104
109
|
await fs.rename(temp, target);
|
|
105
110
|
} catch (err) {
|
|
106
111
|
await fs.rm(temp, { force: true }).catch(() => {});
|