ironcode-ai 1.17.5 → 1.18.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 +96 -40
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -24,19 +24,42 @@
|
|
|
24
24
|
|
|
25
25
|
## What's New
|
|
26
26
|
|
|
27
|
+
### v1.17.6 — AI SDK v6 ModelRef Migration
|
|
28
|
+
|
|
29
|
+
**Completed ModelRef migration as part of AI SDK v6 upgrade:**
|
|
30
|
+
|
|
31
|
+
- **Schema migration** — Migrated model references from object format `{ providerID: string, modelID: string }` to string-based `ModelRef` format (`"provider:model"`) throughout the codebase
|
|
32
|
+
- **Parser/formatter utilities** — All code now uses `ProviderRegistry.parse(modelRef)` to extract components and `ProviderRegistry.format(providerID, modelID)` to create ModelRef strings
|
|
33
|
+
- **Runtime compatibility** — Added `ensureModelRef()` helper to handle legacy object formats gracefully during transition
|
|
34
|
+
- **Bug fixes** — Fixed `ProviderModelNotFoundError` with undefined values caused by incomplete migration; fixed `Provider.defaultModel()` to return strings consistently
|
|
35
|
+
|
|
36
|
+
**Technical details:**
|
|
37
|
+
|
|
38
|
+
- Updated schemas in `message-v2.ts`: User, Assistant, and SubtaskPart now use `model: z.string()` instead of separate modelID/providerID fields
|
|
39
|
+
- Migrated 24 files including session handling, compaction, summary, task/plan tools, telegram bot, and SDK types
|
|
40
|
+
- Zero breaking changes for end users
|
|
41
|
+
|
|
42
|
+
### v1.17.5 — Voice Message Support
|
|
43
|
+
|
|
44
|
+
- **Voice messages** — Send voice messages to the Telegram bot; audio is automatically transcribed via Groq Whisper and forwarded to the agent
|
|
45
|
+
- **BM25 improvements** — Updated `STOP_WORDS` to retain method-prefix tokens (`get`/`set`/`is`/`has`/`new`) for more accurate code search
|
|
46
|
+
|
|
27
47
|
### v1.17.3 — Rust Rule Engine Migration
|
|
28
|
-
|
|
29
|
-
- **
|
|
30
|
-
- **
|
|
48
|
+
|
|
49
|
+
- **Permission Rule Engine** — `PermissionNext.evaluate()` and `disabled()` migrated to Rust; entire ruleset batched into a single FFI call instead of N JS roundtrips
|
|
50
|
+
- **File Ignore Matching** — `FileIgnore.match()` migrated to Rust using `globset` compiled regex, faster than per-call `Bun.Glob` allocation
|
|
51
|
+
- **Dead code removed** — `permission/arity.ts` (BashArity) removed, replaced by `extractPrefixFFI` (Rust)
|
|
31
52
|
|
|
32
53
|
### v1.17.2 — Telegram Enhancement
|
|
33
|
-
|
|
34
|
-
-
|
|
35
|
-
- **
|
|
54
|
+
|
|
55
|
+
- **`/init` command** — Analyze a project and generate `AGENTS.md` directly from the Telegram bot
|
|
56
|
+
- **Code diff streaming** — `/diff` shows all changed files in the current session
|
|
57
|
+
- **Session management UI** — `/sessions` with inline switch buttons
|
|
36
58
|
|
|
37
59
|
### v1.17.0 — AI SDK v6
|
|
38
|
-
|
|
39
|
-
-
|
|
60
|
+
|
|
61
|
+
- Upgraded to AI SDK v6 with full support for new providers
|
|
62
|
+
- Improved terminal UX
|
|
40
63
|
|
|
41
64
|
---
|
|
42
65
|
|
|
@@ -51,7 +74,8 @@ IronCode is a **high-performance CLI AI coding agent** — a fork of [OpenCode](
|
|
|
51
74
|
- 🎯 **Git Source Control** — Stage, commit, diff, push without leaving the TUI
|
|
52
75
|
- 🔍 **Code Changes Panel** — Diff viewer with inline comments and hunk revert
|
|
53
76
|
- 🔎 **Local Code Search** — BM25 + tree-sitter semantic search, offline, zero latency
|
|
54
|
-
- 📱 **Telegram Integration** — Control IronCode remotely from your phone
|
|
77
|
+
- 📱 **Telegram Integration** — Control IronCode remotely from your phone, including voice messages
|
|
78
|
+
- 🎤 **Voice Input** — Send voice messages via Telegram; transcribed automatically via Groq Whisper
|
|
55
79
|
- 💻 **Built-in Terminal** — Fish-style autosuggest, tab completion, syntax highlighting
|
|
56
80
|
- 📝 **External Editor** — Opens `$EDITOR`/nvim with auto-install if missing
|
|
57
81
|
- 🏠 **100% Local** — No cloud services, works completely offline
|
|
@@ -59,17 +83,17 @@ IronCode is a **high-performance CLI AI coding agent** — a fork of [OpenCode](
|
|
|
59
83
|
|
|
60
84
|
### Performance (Native Rust Components)
|
|
61
85
|
|
|
62
|
-
| Operation
|
|
63
|
-
|
|
64
|
-
| PTY/Terminal
|
|
65
|
-
| Edit Tool
|
|
66
|
-
| Bash Parser
|
|
67
|
-
| Archive extraction
|
|
68
|
-
| Grep search
|
|
69
|
-
| File read
|
|
70
|
-
| Git operations
|
|
71
|
-
| Permission evaluation | **N× fewer FFI calls**
|
|
72
|
-
| File ignore matching
|
|
86
|
+
| Operation | Speedup | Notes |
|
|
87
|
+
| --------------------- | ---------------------------------- | ---------------------------------------------------------- |
|
|
88
|
+
| PTY/Terminal | **15x faster** | Zero-copy ring buffer |
|
|
89
|
+
| Edit Tool | **2–6x faster** | 9 smart replacement strategies |
|
|
90
|
+
| Bash Parser | **50–100x faster** | Native tree-sitter vs WASM |
|
|
91
|
+
| Archive extraction | **3–5x faster** | s-zip streaming reader |
|
|
92
|
+
| Grep search | **90–99% less memory** | Streams GB-sized files |
|
|
93
|
+
| File read | **1.5x faster, 99.7% less memory** | 64KB buffer + pre-allocation |
|
|
94
|
+
| Git operations | **1.8x faster** | libgit2, no process spawning |
|
|
95
|
+
| Permission evaluation | **N× fewer FFI calls** | Entire ruleset in 1 native call vs N roundtrips |
|
|
96
|
+
| File ignore matching | **Faster glob matching** | Compiled `globset` regex vs per-call `Bun.Glob` allocation |
|
|
73
97
|
|
|
74
98
|
---
|
|
75
99
|
|
|
@@ -117,16 +141,35 @@ ironcode auth login
|
|
|
117
141
|
|
|
118
142
|
### Key Commands
|
|
119
143
|
|
|
120
|
-
| Command
|
|
121
|
-
|
|
122
|
-
| `/git`
|
|
123
|
-
| `/terminal` | Open built-in terminal
|
|
124
|
-
| `/editor`
|
|
125
|
-
| `/review`
|
|
126
|
-
| `/init`
|
|
127
|
-
| `Tab`
|
|
128
|
-
| `Ctrl+
|
|
129
|
-
| `Ctrl+X
|
|
144
|
+
| Command | Description |
|
|
145
|
+
| ----------- | -------------------------------------- |
|
|
146
|
+
| `/git` | Open Git source control panel |
|
|
147
|
+
| `/terminal` | Open built-in terminal |
|
|
148
|
+
| `/editor` | Open file in `$EDITOR` |
|
|
149
|
+
| `/review` | Open code changes panel |
|
|
150
|
+
| `/init` | Create `AGENTS.md` for the project |
|
|
151
|
+
| `Tab` | Switch between agents (build / plan) |
|
|
152
|
+
| `Ctrl+T` | Cycle model variants (low/medium/high) |
|
|
153
|
+
| `Ctrl+X I` | Git panel shortcut |
|
|
154
|
+
| `Ctrl+X R` | Code changes panel shortcut |
|
|
155
|
+
|
|
156
|
+
### Model Variants & Thinking
|
|
157
|
+
|
|
158
|
+
IronCode supports **model variants** that control the quality/speed tradeoff:
|
|
159
|
+
|
|
160
|
+
- **low** — Faster responses, lower cost, suitable for simple tasks
|
|
161
|
+
- **medium** — Balanced performance and quality
|
|
162
|
+
- **high** — Best quality, includes extended thinking/reasoning output (default)
|
|
163
|
+
- **thinking** — Extended reasoning mode for complex problems
|
|
164
|
+
|
|
165
|
+
Press **`Ctrl+T`** to cycle between available variants. The status bar shows the current variant with indicators:
|
|
166
|
+
|
|
167
|
+
- `high 🧠` — High quality with thinking enabled
|
|
168
|
+
- `thinking 🧠` — Thinking variant with extended reasoning
|
|
169
|
+
- `medium` — Medium quality
|
|
170
|
+
- `low` — Low cost, faster responses
|
|
171
|
+
|
|
172
|
+
**Thinking mode** shows the model's internal reasoning process before generating the final response, helping with complex problem-solving and understanding the model's decision-making process.
|
|
130
173
|
|
|
131
174
|
---
|
|
132
175
|
|
|
@@ -138,8 +181,9 @@ Control IronCode remotely via Telegram — send tasks from your phone, get live
|
|
|
138
181
|
# Install
|
|
139
182
|
bun install -g @ironcode-ai/telegram
|
|
140
183
|
|
|
141
|
-
# Configure
|
|
184
|
+
# Configure
|
|
142
185
|
ironcode-telegram setup
|
|
186
|
+
# Enter: Bot Token (from @BotFather), model, and optionally a Groq API key for voice support
|
|
143
187
|
|
|
144
188
|
# Run from your project directory
|
|
145
189
|
cd your-project
|
|
@@ -148,14 +192,26 @@ ironcode-telegram
|
|
|
148
192
|
|
|
149
193
|
**Bot commands:**
|
|
150
194
|
|
|
151
|
-
| Command
|
|
152
|
-
|
|
153
|
-
| `/new`
|
|
154
|
-
| `/sessions`
|
|
155
|
-
| `/info`
|
|
156
|
-
| `/init`
|
|
157
|
-
| `/diff`
|
|
158
|
-
| _(
|
|
195
|
+
| Command | Description |
|
|
196
|
+
| ----------------- | ------------------------------------------------- |
|
|
197
|
+
| `/new` | Start a new session |
|
|
198
|
+
| `/sessions` | List sessions with inline switch buttons |
|
|
199
|
+
| `/info` | Current session details and file change stats |
|
|
200
|
+
| `/init` | Analyze project and create `AGENTS.md` |
|
|
201
|
+
| `/diff` | Show all file changes in the current session |
|
|
202
|
+
| _(text message)_ | Send a prompt — streams the response live |
|
|
203
|
+
| _(voice message)_ | Transcribed via Groq Whisper and sent as a prompt |
|
|
204
|
+
|
|
205
|
+
### Voice Message Setup
|
|
206
|
+
|
|
207
|
+
To enable voice input, add a [Groq API key](https://console.groq.com) (free tier: 28,800 seconds/day) during setup:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
ironcode-telegram setup
|
|
211
|
+
# Groq API Key (for voice transcription, optional): gsk_...
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Once configured, send any voice message to the bot — it will transcribe the audio and process it as a text prompt automatically.
|
|
159
215
|
|
|
160
216
|
See [`packages/telegram/README.md`](./packages/telegram/README.md) for full setup docs including PM2/systemd server deployment.
|
|
161
217
|
|
|
@@ -192,7 +248,7 @@ bun dev
|
|
|
192
248
|
|
|
193
249
|
- **CLI/TUI**: TypeScript + Bun
|
|
194
250
|
- **Native Performance Layer**: Rust via FFI — PTY, edit, grep, glob, git, archive, bash parser, BM25 search, wildcard matching, RETE command prefix, permission rule engine, file ignore matching, system stats
|
|
195
|
-
- **Telegram Bot**: `@ironcode-ai/telegram` — grammy + `@ironcode-ai/sdk`
|
|
251
|
+
- **Telegram Bot**: `@ironcode-ai/telegram` — grammy + `@ironcode-ai/sdk` + Groq Whisper for voice transcription
|
|
196
252
|
|
|
197
253
|
---
|
|
198
254
|
|
package/package.json
CHANGED
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
"scripts": {
|
|
7
7
|
"postinstall": "bun ./postinstall.mjs || node ./postinstall.mjs"
|
|
8
8
|
},
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.18.0",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"optionalDependencies": {
|
|
12
|
-
"ironcode-linux-x64-baseline": "1.
|
|
13
|
-
"ironcode-linux-x64-modern": "1.
|
|
14
|
-
"ironcode-linux-x64-baseline-musl": "1.
|
|
15
|
-
"ironcode-windows-x64-modern": "1.
|
|
16
|
-
"ironcode-darwin-arm64": "1.
|
|
12
|
+
"ironcode-linux-x64-baseline": "1.18.0",
|
|
13
|
+
"ironcode-linux-x64-modern": "1.18.0",
|
|
14
|
+
"ironcode-linux-x64-baseline-musl": "1.18.0",
|
|
15
|
+
"ironcode-windows-x64-modern": "1.18.0",
|
|
16
|
+
"ironcode-darwin-arm64": "1.18.0"
|
|
17
17
|
}
|
|
18
18
|
}
|