ucode-agent 1.54.0 → 1.57.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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A coding agent that lives in your terminal. It reads your code, edits it, runs
4
4
  your commands, and keeps every conversation on disk. It runs on NVIDIA,
5
- Cohere, Nex AGI, DeepSeek and Qwen models, all of them free.
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:
@@ -87,9 +87,9 @@ Needs Node 22 or newer.
87
87
 
88
88
  ## The models
89
89
 
90
- Eight, and no picker full of names nobody recognises. NVIDIA, Cohere, Nex AGI,
91
- DeepSeek and Qwen all serve capable models free, and all handle tool calling
92
- properly, which is the thing an agent actually depends on.
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 properly, which is
92
+ the thing an agent actually depends on.
93
93
 
94
94
  | Model | Context | For |
95
95
  | --- | --- | --- |
@@ -99,8 +99,6 @@ properly, which is the thing an agent actually depends on.
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
101
  | Nex N2.5 Pro | 262k | new agentic coder, on trial — can stall on big builds |
102
- | DeepSeek V4 Flash | 1M | fast DeepSeek coder, on trial |
103
- | Qwen 3.8 | 262k | compact Qwen coder, on trial |
104
102
 
105
103
  `/model` shows them and switches. `ucode -m cohere/north-mini-code:free`
106
104
  starts on one.
@@ -173,6 +171,14 @@ where the time actually went:
173
171
  - A file-write whose JSON is malformed — a missing comma, an unescaped quote in
174
172
  the code, raw line breaks — is repaired instead of thrown away with all its
175
173
  output.
174
+ - An edit whose `old_string` is slightly off — a middle line remembered wrong,
175
+ escapes written out, a blank line at either end, a different indent — still
176
+ lands, through the fallback matchers from opencode's edit tool. Found in two
177
+ places is still refused, and so is a match far bigger than what was asked
178
+ for. `replace_all` does a rename in one call.
179
+ - A missing file comes back with the lookalikes beside it ("did you mean
180
+ App.jsx?"), and a tool named with the wrong case runs as the tool it means,
181
+ instead of each costing a round trip to learn a spelling.
176
182
  - Every write is parsed on the spot, so a syntax error comes back in the same
177
183
  step rather than a minute later from a failed build.
178
184
  - A failed build that is missing a component or package says exactly which
@@ -469,3 +475,8 @@ The tests need no network and no framework — `node test/run.js` runs them all.
469
475
  ## Licence
470
476
 
471
477
  ISC. Made with ❤️ by om dixit.
478
+
479
+ The edit matchers, the summary template, the context-overflow and transient-error
480
+ patterns and tool-name repair are adapted from
481
+ [opencode](https://opencode.ai) (MIT); see
482
+ [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
@@ -0,0 +1,34 @@
1
+ # Third-party notices
2
+
3
+ ucode adapts logic from the following open-source project.
4
+
5
+ ## opencode
6
+
7
+ Used in `src/tools/fuzzy.js` (the fallback matchers an edit tries when its
8
+ text is not in the file as written), `src/core/window.js` (the anchored
9
+ summary template), and `src/core/provider.js` (the context-overflow and
10
+ transient-error patterns, and tool-name repair).
11
+
12
+ ```
13
+ MIT License
14
+
15
+ Copyright (c) 2025 opencode
16
+
17
+ Permission is hereby granted, free of charge, to any person obtaining a copy
18
+ of this software and associated documentation files (the "Software"), to deal
19
+ in the Software without restriction, including without limitation the rights
20
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
21
+ copies of the Software, and to permit persons to whom the Software is
22
+ furnished to do so, subject to the following conditions:
23
+
24
+ The above copyright notice and this permission notice shall be included in all
25
+ copies or substantial portions of the Software.
26
+
27
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
28
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
30
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
31
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
32
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
33
+ SOFTWARE.
34
+ ```
package/package.json CHANGED
@@ -1,65 +1,64 @@
1
- {
2
- "name": "ucode-agent",
3
- "version": "1.54.0",
4
- "description": "ucode - a terminal coding agent that reads, edits and runs your code, on NVIDIA, Cohere, Nex AGI, DeepSeek and Qwen models.",
5
- "type": "module",
6
- "main": "ucode.js",
7
- "bin": {
8
- "ucode": "ucode.js"
9
- },
10
- "files": [
11
- "ucode.js",
12
- "src/",
13
- "skills/",
14
- "templates/"
15
- ],
16
- "scripts": {
17
- "start": "node ucode.js",
18
- "test": "node test/run.js",
19
- "prepublishOnly": "node scripts/no-bundled-key.js && node test/run.js",
20
- "hooks": "node scripts/install-hooks.js"
21
- },
22
- "repository": {
23
- "type": "git",
24
- "url": "git+https://github.com/sppideey/ucode-agent.git"
25
- },
26
- "bugs": {
27
- "url": "https://github.com/sppideey/ucode-agent/issues"
28
- },
29
- "homepage": "https://github.com/sppideey/ucode-agent#readme",
30
- "engines": {
31
- "node": ">=22"
32
- },
33
- "keywords": [
34
- "agent",
35
- "cli",
36
- "terminal",
37
- "coding-agent",
38
- "llm",
39
- "nvidia",
40
- "nemotron",
41
- "cohere",
42
- "nex-agi",
43
- "deepseek",
44
- "qwen"
45
- ],
46
- "author": "om dixit",
47
- "license": "ISC",
48
- "dependencies": {
49
- "@babel/parser": "^7.29.8",
50
- "chalk": "^6.0.0",
51
- "dotenv": "^17.4.2",
52
- "jsonrepair": "^3.15.0",
53
- "marked": "^15.0.12",
54
- "marked-terminal": "^7.3.0",
55
- "openai": "^7.4.0",
56
- "playwright-core": "^1.63.0"
57
- },
58
- "devDependencies": {
59
- "@types/node": "^26.5.1",
60
- "typescript": "^5.9.3"
61
- },
62
- "publishConfig": {
63
- "access": "public"
64
- }
65
- }
1
+ {
2
+ "name": "ucode-agent",
3
+ "version": "1.57.0",
4
+ "description": "ucode - a terminal coding agent that reads, edits and runs your code, on NVIDIA, Cohere and Nex AGI models.",
5
+ "type": "module",
6
+ "main": "ucode.js",
7
+ "bin": {
8
+ "ucode": "ucode.js"
9
+ },
10
+ "files": [
11
+ "ucode.js",
12
+ "src/",
13
+ "skills/",
14
+ "templates/",
15
+ "THIRD_PARTY_NOTICES.md"
16
+ ],
17
+ "scripts": {
18
+ "start": "node ucode.js",
19
+ "test": "node test/run.js",
20
+ "prepublishOnly": "node scripts/no-bundled-key.js && node test/run.js",
21
+ "hooks": "node scripts/install-hooks.js"
22
+ },
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "git+https://github.com/sppideey/ucode-agent.git"
26
+ },
27
+ "bugs": {
28
+ "url": "https://github.com/sppideey/ucode-agent/issues"
29
+ },
30
+ "homepage": "https://github.com/sppideey/ucode-agent#readme",
31
+ "engines": {
32
+ "node": ">=22"
33
+ },
34
+ "keywords": [
35
+ "agent",
36
+ "cli",
37
+ "terminal",
38
+ "coding-agent",
39
+ "llm",
40
+ "nvidia",
41
+ "nemotron",
42
+ "cohere",
43
+ "nex-agi"
44
+ ],
45
+ "author": "om dixit",
46
+ "license": "ISC",
47
+ "dependencies": {
48
+ "@babel/parser": "^7.29.8",
49
+ "chalk": "^6.0.0",
50
+ "dotenv": "^17.4.2",
51
+ "jsonrepair": "^3.15.0",
52
+ "marked": "^15.0.12",
53
+ "marked-terminal": "^7.3.0",
54
+ "openai": "^7.4.0",
55
+ "playwright-core": "^1.63.0"
56
+ },
57
+ "devDependencies": {
58
+ "@types/node": "^26.5.1",
59
+ "typescript": "^5.9.3"
60
+ },
61
+ "publishConfig": {
62
+ "access": "public"
63
+ }
64
+ }