@migor/agentia 0.9.1 → 0.9.2
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/CHANGELOG.md +66 -5
- package/README.md +1 -1
- package/dist/AGENTS.md +13 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,7 +5,64 @@
|
|
|
5
5
|
(0.x 阶段:minor 可含破坏性变更,每个破坏性变更都在对应版本的「迁移」小节里写明)。
|
|
6
6
|
决策的完整证据链在 `docs/spec.md` §10(带时间线的决策日志)。
|
|
7
7
|
|
|
8
|
-
## [
|
|
8
|
+
## [0.9.2] - 2026-09-22
|
|
9
|
+
|
|
10
|
+
> 本版主题(窗口 `0.9.1 → 0.9.2`):**dev 面板的可读性** —— 模型正文按 Markdown 渲染、
|
|
11
|
+
> 滚动分层(整页不滚、只滚该滚的那块)、长正文默认折叠。
|
|
12
|
+
> **无破坏性变更**:框架公共 API 与脚手架模板形态逐字未变。
|
|
13
|
+
|
|
14
|
+
### 新增 · dev 面板的正文 Markdown 渲染
|
|
15
|
+
|
|
16
|
+
- **模型正文按 Markdown 渲染**(最终回复 + 对话视图的助手轮):标题 / 粗斜体 / 行内码 /
|
|
17
|
+
围栏码(带语言标注)/ 列表 / 引用 / 分隔线 / 链接。此前是一整块 `<pre>` 纯文本,
|
|
18
|
+
长回复里的列表与代码块糊成一坨。
|
|
19
|
+
- 解析器是**自己写的**(`packages/cli/src/markdown.ts`,纯逻辑、零依赖、带单测):
|
|
20
|
+
引 `marked` + `DOMPurify` 等于把两份第三方产物塞进 dev 链路,而且它们**没法被本仓单测验证**;
|
|
21
|
+
这套子集不到 200 行,每条规则都有用例。安全前提是**按构造不产生 HTML** —— 解析器只产出
|
|
22
|
+
token 树(没有「HTML 透传」这一类),渲染层只准用 `createElement` / `textContent`
|
|
23
|
+
⇒ 模型输出里的 `<script>` 只会是字面文本。链接协议过白名单(`http` / `https` / `mailto`),
|
|
24
|
+
不合法(`javascript:` 等)**整条降级成字面文本**(连 `[]()` 一起显示)。用户轮保持字面 ——
|
|
25
|
+
那是「我打的字」,按 Markdown 重排会像面板改过我的输入。
|
|
26
|
+
|
|
27
|
+
### 变更 · 面板滚动分层:整页不滚,只滚该滚的那块
|
|
28
|
+
|
|
29
|
+
- 此前右栏没有高度上限 ⇒ 内容一长就是**整页滚动**,而 `footer` 还粘在底部盖住内容。
|
|
30
|
+
现在改成应用外壳:`html/body` 卡 100vh、`body` 不滚;左栏页签固定、列表自己滚;
|
|
31
|
+
右栏**只有调用树是滚动区**(它随 span 数无界增长),回复 / 能力排行 / 用量固定在下方、
|
|
32
|
+
各有上限(回复很长时在**它自己那块**里滚,而不是把树推出屏幕)。
|
|
33
|
+
- 窄屏(≤860px)回落成单列 + 整页滚动 —— 两栏并排在那个宽度下都不可用。
|
|
34
|
+
|
|
35
|
+
### 变更 · 长消息折叠:明确的「展开 / 收起」
|
|
36
|
+
|
|
37
|
+
- 超过 12 行或 1200 字符的正文默认折叠(卡 216px + 底部渐隐),下方左对齐一个
|
|
38
|
+
「展开全文(共 N 行)▾」按钮,展开后变「收起 ▴」。**短正文不挂控件**(挂一个是噪声)。
|
|
39
|
+
- 判定走纯逻辑 `collapseDecision`(带单测):按**行数 + 字符数**,不量像素 —— 像素阈值在
|
|
40
|
+
字体 / 缩放 / 窄屏下会漂,同一个回复在不同机器上折叠与否都不一样。展开态活在渲染之外
|
|
41
|
+
(面板每次全量重画,状态留在 DOM 里会被下一次重画合上)。
|
|
42
|
+
|
|
43
|
+
### 修复
|
|
44
|
+
|
|
45
|
+
- **CLI 套件里两条文件监视用例在全链下稳定假红**(`packages/cli/test/panel-logic.test.mjs`):
|
|
46
|
+
夹具原来「**写一次**、然后轮询等满 15 秒」,而真 fs 的监视器**建立是异步的**(`fs.watch`
|
|
47
|
+
返回 ≠ 底下 FSEvents 流已开始投递)—— 那一次写整个漏掉时,**等多久都没用**。复现条件最后
|
|
48
|
+
定位到 **stdout 被管道捕获**(`verify-all.sh` 的 `out=$(bash -c …)` 与 CI 都是这么跑的):
|
|
49
|
+
管道下稳定红、重定向到文件稳定绿;单跑套件也是绿的。改成 `writeUntilSeen`(反复写、直到
|
|
50
|
+
回调真的来,上限 15 秒)—— **断言没放宽**(那个路径仍必须触发一次回调,只是不再要求
|
|
51
|
+
「第一次写就被看见」),四条「不该触发」的负向用例一条未动。
|
|
52
|
+
⚠️ **仅测试侧,无使用者可见行为**:生产里 dev 环**先建立监视、再对外服务**,不存在
|
|
53
|
+
「`watchTree()` 一返回用户就改文件」这个窗口。
|
|
54
|
+
|
|
55
|
+
### 文档
|
|
56
|
+
|
|
57
|
+
- `docs/usage-guide.md` §2.2:按使用者口吻补三段 —— Markdown 渲染口径(含协议白名单与
|
|
58
|
+
「用户轮保持字面」)、滚动三层各管一段、长正文折叠阈值与展开控件位置。
|
|
59
|
+
- `docs/guards.md` §1.4:新增 `markdown.test.mjs` 一行(两条安全断言:按构造不产生 HTML、
|
|
60
|
+
链接协议白名单 + 两条反向验证),并把 `inspector.test.mjs` 那行的反向全覆盖**扩面**记上
|
|
61
|
+
(覆盖所有自建模块 + 四条页面级不变量)—— 是**扩面**,别读成「多了五条守卫」。
|
|
62
|
+
- `docs/spec.md` §10 2026-09-22 **⑨**:本轮三处可读性改动的现场证据与修法,外加两条踩坑
|
|
63
|
+
(反向验证的变异体**必须能编译**,否则构建先失败、门禁空跑;对被格式化过的文件做 patch
|
|
64
|
+
时 `old_string` 用了格式化**前**的版本,靠「改完立刻回读」才发现)。
|
|
65
|
+
- `docs/plans/2026-09-22-dev-debug-loop.md`:补本轮三处的落地记录。
|
|
9
66
|
|
|
10
67
|
## [0.9.1] - 2026-09-22
|
|
11
68
|
|
|
@@ -44,9 +101,12 @@
|
|
|
44
101
|
### 文档
|
|
45
102
|
|
|
46
103
|
- `docs/usage-guide.md` §2.2:补「右栏是实时的」(含两条边界)与工作目录的三个点击语义。
|
|
47
|
-
- `docs/guards.md` §1.4
|
|
48
|
-
|
|
49
|
-
|
|
104
|
+
- `docs/guards.md` §1.4:本轮在**既有三行**登记上扩面(`panel-logic.test.mjs` 增四组折回 / 归属 /
|
|
105
|
+
浏览目标 / 选文件后的 prompt,`inspector.test.mjs` 增三项 HTTP 面,`e2e-dev.ts` 增第 7-bis 步),
|
|
106
|
+
见该节 —— 是**扩面**不是新增行,别把它读成「多了五条守卫」。
|
|
107
|
+
- `docs/plans/2026-09-22-dev-debug-loop.md`:§D7 那条评审补充标注 **P1b 已落地**(增量出口接线)。
|
|
108
|
+
- `docs/spec.md` §10 2026-09-22 **⑧**:本轮三处体验缺陷的现场证据与修法(右栏实时 / 回复被擦 /
|
|
109
|
+
选择器),外加一条发版流程教训(反向验证脚本必须先 commit)。
|
|
50
110
|
|
|
51
111
|
## [0.9.0] - 2026-09-22
|
|
52
112
|
|
|
@@ -1186,7 +1246,8 @@
|
|
|
1186
1246
|
首个公开发布:`@migor/agentia` + `@migor/cli`(scope `@migor/*`),两包版本同步。
|
|
1187
1247
|
框架本体单包;CLI 独立成包(workspaces)。
|
|
1188
1248
|
|
|
1189
|
-
[Unreleased]: https://github.com/retrychx/agentia/compare/v0.9.
|
|
1249
|
+
[Unreleased]: https://github.com/retrychx/agentia/compare/v0.9.2...HEAD
|
|
1250
|
+
[0.9.2]: https://github.com/retrychx/agentia/releases/tag/v0.9.2
|
|
1190
1251
|
[0.9.1]: https://github.com/retrychx/agentia/releases/tag/v0.9.1
|
|
1191
1252
|
[0.9.0]: https://github.com/retrychx/agentia/releases/tag/v0.9.0
|
|
1192
1253
|
[0.8.3]: https://github.com/retrychx/agentia/releases/tag/v0.8.3
|
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ npm run dev # = agentia dev:本地 inspector 面板
|
|
|
36
36
|
> 从不执行 main.ts —— 写错一侧会让 `npm run dev` 静默读不到 `.env` 而 `npm start` 读得到。
|
|
37
37
|
> 真实环境变量优先(CI / docker / 命令行永远赢过文件),`loadEnvFile({ override: true })` 才反过来。
|
|
38
38
|
|
|
39
|
-
> **版本**:`0.9.
|
|
39
|
+
> **版本**:`0.9.2`(`@migor/agentia` 与 `@migor/cli` 均已发布到 npm)。`examples/` **刻意**用
|
|
40
40
|
> `file:../..` 指向本仓库而不是 npm 版本 —— 跑的是**工作区代码**,理由见
|
|
41
41
|
> [`examples/README.md`](examples/README.md) 的「依赖说明」。
|
|
42
42
|
|
package/dist/AGENTS.md
CHANGED
|
@@ -145,6 +145,19 @@ npx agentia --version # CLI 版本(= -v)
|
|
|
145
145
|
早先那些 span 不会回来(收尾的整棵 trace 会补齐它们),**收尾那份永远覆盖在飞的这份**。
|
|
146
146
|
- 它只影响「此刻看到什么」,**不影响 run 本身**,也不影响落盘的 trace(那是另一条缝)。
|
|
147
147
|
|
|
148
|
+
**模型正文按 Markdown 渲染**(最终回复 + 对话视图的助手轮):标题 / 粗斜体 / 行内码 / 围栏码 /
|
|
149
|
+
列表 / 引用 / 分隔线 / 链接。解析器是本仓自己写的(零依赖),**只产出 token 树、不碰 HTML** ——
|
|
150
|
+
模型输出里的 `<script>` 只会显示成字面文本;链接只认 `http` / `https` / `mailto`,其余协议
|
|
151
|
+
(`javascript:` 等)**整条降级成字面文本**(连 `[]()` 一起显示)。你自己那一轮保持字面 ——
|
|
152
|
+
那是你打的字,面板不改写它。
|
|
153
|
+
|
|
154
|
+
**长正文默认折叠**:超过 12 行或 1200 字符的正文卡在 216px + 底部渐隐,下方左对齐一个
|
|
155
|
+
「展开全文(共 N 行)▾」,展开后变「收起 ▴」。**短正文不挂控件**。
|
|
156
|
+
|
|
157
|
+
**滚动分三层,各管一段**:整页**不滚**(输入条永远贴在底部,不会被内容推走);左栏列表自己滚;
|
|
158
|
+
右栏**只有调用树是滚动区** —— 它随 span 数无界增长,而回复 / 能力排行 / 用量固定在下方、
|
|
159
|
+
各有上限(回复很长时在**它自己那块**里滚,不会把树挤出屏幕)。窄屏(≤860px)回落成单列 + 整页滚动。
|
|
160
|
+
|
|
148
161
|
**为什么用 `agentia dev` 而不是 `tsx watch`**:`agentia dev` 自己 import 你的 `src/app.ts` 并驱动它,
|
|
149
162
|
于是**它才是调用方**,四个输入才可能生效。它也**自己管文件监视**(不再叠一层 `tsx watch`):
|
|
150
163
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const AGENTIA_VERSION = "0.9.
|
|
1
|
+
export declare const AGENTIA_VERSION = "0.9.2";
|
|
2
2
|
export type { Trace, Span, SpanEvent, SpanError, SpanId, SpanKind, SpanLink, SpanStatus, TraceId, TraceContext, TraceSink, TraceRecordEvent, CapabilityType, Usage, Score, } from './core/trace.js';
|
|
3
3
|
export { attachScore, parseTraceparent } from './core/trace.js';
|
|
4
4
|
export type { AgentTool, ApprovalDecision, JsonSchema, ModelClient, RecorderBackend, SchemaInput, SchemaType, ToolRunContext, TypedSchema, } from './core/tool.js';
|
package/dist/index.js
CHANGED
package/package.json
CHANGED