@zhushanwen/pi-goal 0.14.2 → 0.14.3
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 +2 -2
- package/package.json +4 -4
- package/src/__tests__/ports.test.ts +1 -1
- package/src/adapters/ports.ts +2 -2
- package/src/ports.ts +1 -1
- package/src/projection/gui.ts +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ Codex 风格的 `/goal` 命令 — 持久目标追踪:`goal_control` 工具创
|
|
|
6
6
|
|
|
7
7
|
- **目标管理**:`goal_control` tool 是唯一创建入口(create / complete / report_blocked)。`/goal <objective>` 是提示词触发器——不直接启动,而是引导 AI 调 `goal_control create`(slug / objective / successCriteria 均由 AI 在 toolcall 时决定)
|
|
8
8
|
- **证据验证**:complete 必须提供具体 evidence(改动的文件、通过的测试、运行的命令),且满足 create 时定义的每条 successCriteria 条件,不能空口完成
|
|
9
|
-
- **预算控制**:仅 token
|
|
9
|
+
- **预算控制**:仅 token 维度预算(耗时仅记账显示,不作预算维度)。70% 预警、90% 发收尾 steering、100% 且已发收尾提示后进入 budget_limited 终态。默认不设预算,仅在用户显式要求时设置
|
|
10
10
|
- **阻塞处理**:无自动检测——blocked 只能由 agent 主动调 `goal_control report_blocked`(穷尽替代方案后);用户经 `/goal resume` 恢复(paused/blocked → active)
|
|
11
11
|
- **持久化**:状态通过 session entries 保存(append-only),重启后从最新一条 goal-state entry 恢复,崩溃后保持原状态
|
|
12
12
|
|
|
@@ -19,7 +19,7 @@ Codex 风格的 `/goal` 命令 — 持久目标追踪:`goal_control` 工具创
|
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
# symlink 方式(开发推荐;globalExtDir 平铺布局,目标不带分组层)
|
|
22
|
-
ln -s /path/to/
|
|
22
|
+
ln -s /path/to/taiji/extensions/universal/goal \
|
|
23
23
|
~/.pi/agent/extensions/goal
|
|
24
24
|
|
|
25
25
|
# npm 方式(正式)
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhushanwen/pi-goal",
|
|
3
|
-
"version": "0.14.
|
|
3
|
+
"version": "0.14.3",
|
|
4
4
|
"description": "Codex-style /goal command for Pi — persistent goal-driven autonomous loop with evidence-based completion, token budget, agent-reported blocking, and steering templates.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
|
-
"
|
|
7
|
+
"taiji": {
|
|
8
8
|
"role": "universal"
|
|
9
9
|
},
|
|
10
10
|
"pi": {
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
"@earendil-works/pi-coding-agent": "^0.84.4",
|
|
30
30
|
"@earendil-works/pi-tui": "^0.84.4",
|
|
31
31
|
"typebox": "*",
|
|
32
|
-
"@zhushanwen/pi-pending-notifications": "0.7.
|
|
32
|
+
"@zhushanwen/pi-pending-notifications": "0.7.3"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@
|
|
35
|
+
"@taiji/extension-protocol": "0.11.0"
|
|
36
36
|
},
|
|
37
37
|
"peerDependenciesMeta": {
|
|
38
38
|
"@earendil-works/pi-tui": {
|
package/src/adapters/ports.ts
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
15
|
import type { ExtensionAPI, ExtensionContext, ThemeColor } from "@earendil-works/pi-coding-agent";
|
|
16
|
-
import { setWidgetDual } from "@
|
|
17
|
-
import type { GuiContext } from "@
|
|
16
|
+
import { setWidgetDual } from "@taiji/extension-protocol";
|
|
17
|
+
import type { GuiContext } from "@taiji/extension-protocol";
|
|
18
18
|
|
|
19
19
|
import { ENTRY_TYPE, HISTORY_ENTRY_TYPE } from "../persistence";
|
|
20
20
|
import type { MessagingPort, PersistencePort, SessionPort, UiPort } from "../ports";
|
package/src/ports.ts
CHANGED
package/src/projection/gui.ts
CHANGED
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
guiResult,
|
|
20
20
|
type TreeItem,
|
|
21
21
|
type WidgetMeta,
|
|
22
|
-
} from "@
|
|
22
|
+
} from "@taiji/extension-protocol";
|
|
23
23
|
|
|
24
24
|
import { PERCENT_FACTOR, SHORT_ID_LENGTH } from "../constants";
|
|
25
25
|
import { getBudgetSeverity } from "../engine/budget";
|