@legna-lnc/legnacode 1.4.2 → 1.4.4

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 (3) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +64 -0
  3. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -2,6 +2,42 @@
2
2
 
3
3
  All notable changes to LegnaCode CLI will be documented in this file.
4
4
 
5
+ ## [1.4.4] - 2026-04-11
6
+
7
+ ### Improvements
8
+
9
+ - **状态提示改为 spinner 行显示** — autocompact / output truncated / interrupted 等状态信息不再以系统消息插入对话,改为在 spinner 动画行临时显示,一闪而过不污染上下文
10
+ - **ToolUseContext 新增 setSpinnerMessage** — 通用的 spinner 文本回调,query loop 可随时更新 spinner 状态
11
+ - **LegnaCode vs Claude Code 对比文档** — 新增 [COMPARISON.md](./COMPARISON.md),9 大类 60+ 项逐条对比
12
+
13
+ ## [1.4.3] - 2026-04-11
14
+
15
+ ### Features
16
+
17
+ - **mempalace 记忆架构融合** — 移植 mempalace 的核心记忆系统,纯 TypeScript 实现,零外部依赖:
18
+ - **DrawerStore** — SQLite 持久化向量记忆存储 + WAL 审计日志,确定性 drawer ID(sha256 幂等 upsert)
19
+ - **TF-IDF 向量化器** — 纯 TS 实现(Porter 词干 + 余弦相似度),<10K drawer 搜索 <5ms
20
+ - **4 层记忆栈** — L0 identity (~100 token) + L1 top drawers (~500-800 token) 每轮加载,L2/L3 按需召回。每轮 token 从 ~8K 降到 ~800(节省 ~88%)
21
+ - **时序知识图谱** — SQLite 实体-关系存储,支持带有效期的三元组和时间点查询
22
+ - **Room 自动分类** — 6 类(facts/decisions/events/discoveries/preferences/advice)关键词评分
23
+ - **交换对提取器** — Q+A 配对分块 + 5 类标记评分(decisions/preferences/milestones/problems/emotional)
24
+ - **自动迁移** — 首次启动自动将现有 .legna/memory/*.md 文件迁移到 DrawerStore
25
+ - **PreCompact 记忆保存** — 压缩前自动提取高价值交换对到 DrawerStore,防止记忆丢失
26
+
27
+ ### Architecture
28
+
29
+ - 新增 `src/memdir/vectorStore/` — 完整的向量记忆系统(8 个文件)
30
+ - `types.ts` — Drawer、SearchResult、MetadataFilter 类型
31
+ - `tfidfVectorizer.ts` — TF-IDF + Porter 词干 + 余弦相似度
32
+ - `drawerStore.ts` — SQLite 持久化 + WAL + 向量搜索
33
+ - `roomDetector.ts` — 内容自动分类
34
+ - `layeredStack.ts` — 4 层记忆栈
35
+ - `knowledgeGraph.ts` — 时序知识图谱
36
+ - `exchangeExtractor.ts` — 交换对提取 + 标记评分
37
+ - `migration.ts` — .md → DrawerStore 自动迁移
38
+ - 升级 `src/memdir/providers/FileMemoryProvider.ts` — DrawerStore + LayeredStack 后端
39
+ - 接线 `src/services/compact/autoCompact.ts` — 压缩前调用 onPreCompress
40
+
5
41
  ## [1.4.2] - 2026-04-11
6
42
 
7
43
  ### Features
package/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  LegnaCode 是一个基于 Anthropic Claude 的智能终端编程助手,让你直接在命令行中与 AI 协作完成软件工程任务——编辑文件、执行命令、搜索代码、管理 Git 工作流等。
6
6
 
7
+ > 📊 **与 Claude Code 原版的详细对比** → [COMPARISON.md](./COMPARISON.md)
8
+
7
9
  ---
8
10
 
9
11
  ## 更新日志
@@ -12,6 +14,8 @@ LegnaCode 是一个基于 Anthropic Claude 的智能终端编程助手,让你
12
14
 
13
15
  | 版本 | 日期 | 摘要 |
14
16
  |------|------|------|
17
+ | [1.4.4](./CHANGELOG.md#144---2026-04-11) | 2026-04-11 | 状态提示改为 spinner 行显示(不污染对话),新增功能对比文档 |
18
+ | [1.4.3](./CHANGELOG.md#143---2026-04-11) | 2026-04-11 | mempalace 记忆架构融合(DrawerStore + TF-IDF 向量搜索 + 4 层记忆栈 + 时序知识图谱),token 节省 ~88% |
15
19
  | [1.4.2](./CHANGELOG.md#142---2026-04-11) | 2026-04-11 | 进度反馈增强(消除 8 个静默代码路径),verbose 默认开启,Token/Timer 即时显示,中断原因可见 |
16
20
  | [1.4.0](./CHANGELOG.md#140---2026-04-11) | 2026-04-11 | MiniMax 深度原生兼容(6 个多模态工具),RPC 子进程工具执行,Memory Provider 插件系统,智能模型路由,自主技能检测,上下文压缩增强,跨会话记忆搜索 |
17
21
  | [1.3.7](./CHANGELOG.md#137---2026-04-09) | 2026-04-09 | Resume 会话检测修复,Interrupted 诊断日志,后台任务状态可见性增强 |
@@ -237,6 +241,66 @@ legna migrate --dry-run
237
241
  | `CLAUDE_CODE_USE_BEDROCK` | 使用 AWS Bedrock 后端 |
238
242
  | `CLAUDE_CODE_USE_VERTEX` | 使用 GCP Vertex 后端 |
239
243
  | `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 设为 `0` 禁用语法高亮 |
244
+ | `MINIMAX_API_KEY` | MiniMax API 密钥(启用多模态工具) |
245
+ | `MINIMAX_REGION` | MiniMax 区域:`global`(默认)或 `cn` |
246
+ | `MINIMAX_BASE_URL` | 自定义 MiniMax API 地址(覆盖区域默认值) |
247
+
248
+ ---
249
+
250
+ ## MiniMax 多模态集成
251
+
252
+ 当使用 MiniMax 模型(`ANTHROPIC_BASE_URL` 指向 `api.minimax.io` 或 `api.minimaxi.com`)且配置了 `MINIMAX_API_KEY` 时,LegnaCode 自动注册 6 个多模态原生工具,AI 可以直接调用。
253
+
254
+ ### 配置
255
+
256
+ ```bash
257
+ # 方式一:环境变量
258
+ export MINIMAX_API_KEY="your-api-key"
259
+ export MINIMAX_REGION="global" # 或 "cn"
260
+
261
+ # 方式二:交互式配置(持久化到 ~/.legna/minimax-credentials.json)
262
+ legna
263
+ > /auth-minimax your-api-key
264
+ ```
265
+
266
+ API key 获取:[MiniMax 国际站](https://platform.minimax.io) 或 [MiniMax 国内站](https://platform.minimaxi.com)
267
+
268
+ ### 多模态工具
269
+
270
+ | 工具 | 功能 | 示例 |
271
+ |------|------|------|
272
+ | `MiniMaxImageGenerate` | 文字生成图像 | "生成一张赛博朋克风格的城市夜景" |
273
+ | `MiniMaxVideoGenerate` | 文字/图像生成视频 | "把这张图片做成一段 5 秒的动画" |
274
+ | `MiniMaxSpeechSynthesize` | 文字转语音 | "把这段文字转成语音朗读" |
275
+ | `MiniMaxMusicGenerate` | 文字生成音乐 | "生成一段轻快的钢琴背景音乐" |
276
+ | `MiniMaxVisionDescribe` | 图像理解分析 | "描述这张图片的内容" |
277
+ | `MiniMaxWebSearch` | 网页搜索 | "搜索最新的 TypeScript 5.x 特性" |
278
+
279
+ 工具仅在使用 MiniMax 模型时自动启用,不影响其他模型的工具列表。
280
+
281
+ ### 多模态工作流
282
+
283
+ AI 可以自动编排多个工具完成复杂任务:
284
+
285
+ ```
286
+ 用户:帮我做一个项目宣传视频
287
+
288
+ AI 自动编排:
289
+ 1. 分析项目 README,提取核心卖点
290
+ 2. MiniMaxImageGenerate → 生成关键帧图片
291
+ 3. MiniMaxVideoGenerate → 基于关键帧生成视频
292
+ 4. MiniMaxSpeechSynthesize → 生成旁白配音
293
+ 5. 返回所有生成资源的 URL
294
+ ```
295
+
296
+ ### Schema 导出
297
+
298
+ MiniMax 工具的 schema 可以导出为 Anthropic 兼容格式,用于外部集成:
299
+
300
+ ```typescript
301
+ import { exportMiniMaxToolSchemasJSON } from './src/tools/MiniMaxTools/schemaExport.js'
302
+ console.log(exportMiniMaxToolSchemasJSON())
303
+ ```
240
304
 
241
305
  ---
242
306
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@legna-lnc/legnacode",
3
- "version": "1.4.2",
3
+ "version": "1.4.4",
4
4
  "description": "LegnaCode — legna.lnc's official CLI for coding assistance",
5
5
  "type": "module",
6
6
  "bin": {
@@ -142,11 +142,11 @@
142
142
  "bun": ">=1.2.0"
143
143
  },
144
144
  "optionalDependencies": {
145
- "@legna-lnc/legnacode-darwin-arm64": "1.4.2",
146
- "@legna-lnc/legnacode-darwin-x64": "1.4.2",
147
- "@legna-lnc/legnacode-linux-x64": "1.4.2",
148
- "@legna-lnc/legnacode-linux-arm64": "1.4.2",
149
- "@legna-lnc/legnacode-win32-x64": "1.4.2",
150
- "@legna-lnc/legnacode-win32-ia32": "1.4.2"
145
+ "@legna-lnc/legnacode-darwin-arm64": "1.4.4",
146
+ "@legna-lnc/legnacode-darwin-x64": "1.4.4",
147
+ "@legna-lnc/legnacode-linux-x64": "1.4.4",
148
+ "@legna-lnc/legnacode-linux-arm64": "1.4.4",
149
+ "@legna-lnc/legnacode-win32-x64": "1.4.4",
150
+ "@legna-lnc/legnacode-win32-ia32": "1.4.4"
151
151
  }
152
152
  }