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.
Files changed (2) hide show
  1. package/README.md +96 -40
  2. 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
- - **Permission Rule Engine** — `PermissionNext.evaluate()` và `disabled()` migrated to Rust. Toàn bộ ruleset được batch vào 1 FFI call thay vì N roundtrip từ JS
29
- - **File Ignore Matching** — `FileIgnore.match()` migrated to Rust với `globset` compiled regex, nhanh hơn per-call `Bun.Glob` allocation
30
- - **Dead code removed** — `permission/arity.ts` (BashArity) đã xóa, thay bởi `extractPrefixFFI` (Rust) từ trước
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
- - **`/init` command** — Phân tích project và tạo `AGENTS.md` từ bot Telegram
34
- - **Code diff streaming** — `/diff` hiển thị tất cả file thay đổi trong session hiện tại
35
- - **Session management UI** — `/sessions` với inline switch buttons
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
- - Upgrade lên AI SDK v6 với support đầy đủ các provider mới
39
- - Cải thiện UX terminal
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 | Speedup | Notes |
63
- |---|---|---|
64
- | PTY/Terminal | **15x faster** | Zero-copy ring buffer |
65
- | Edit Tool | **2–6x faster** | 9 smart replacement strategies |
66
- | Bash Parser | **50–100x faster** | Native tree-sitter vs WASM |
67
- | Archive extraction | **3–5x faster** | s-zip streaming reader |
68
- | Grep search | **90–99% less memory** | Streams GB-sized files |
69
- | File read | **1.5x faster, 99.7% less memory** | 64KB buffer + pre-allocation |
70
- | Git operations | **1.8x faster** | libgit2, no process spawning |
71
- | Permission evaluation | **N× fewer FFI calls** | Entire ruleset in 1 native call vs N roundtrips |
72
- | File ignore matching | **Faster glob matching** | Compiled `globset` regex vs per-call `Bun.Glob` allocation |
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 | Description |
121
- |---|---|
122
- | `/git` | Open Git source control panel |
123
- | `/terminal` | Open built-in terminal |
124
- | `/editor` | Open file in `$EDITOR` |
125
- | `/review` | Open code changes panel |
126
- | `/init` | Create `AGENTS.md` for the project |
127
- | `Tab` | Switch between agents (build / plan) |
128
- | `Ctrl+X I` | Git panel shortcut |
129
- | `Ctrl+X R` | Code changes panel shortcut |
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 (enter bot token from @BotFather)
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 | Description |
152
- |---|---|
153
- | `/new` | Start a new session |
154
- | `/sessions` | List sessions with inline switch buttons |
155
- | `/info` | Current session details and file change stats |
156
- | `/init` | Analyze project and create `AGENTS.md` |
157
- | `/diff` | Show all file changes in the current session |
158
- | _(any message)_ | Send a prompt — streams the response live |
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.17.5",
9
+ "version": "1.18.0",
10
10
  "license": "MIT",
11
11
  "optionalDependencies": {
12
- "ironcode-linux-x64-baseline": "1.17.5",
13
- "ironcode-linux-x64-modern": "1.17.5",
14
- "ironcode-linux-x64-baseline-musl": "1.17.5",
15
- "ironcode-windows-x64-modern": "1.17.5",
16
- "ironcode-darwin-arm64": "1.17.5"
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
  }