@zihanw/pi-forge 0.5.3 → 0.5.5
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 +84 -0
- package/README.md +67 -103
- package/README.zh-CN.md +67 -95
- package/assets/pi-forge-header-concept-1.png +0 -0
- package/assets/readme/PROVENANCE.md +95 -0
- package/assets/readme/en/capability-tools.gif +0 -0
- package/assets/readme/en/context-composition.gif +0 -0
- package/assets/readme/en/context-toggle.gif +0 -0
- package/assets/readme/en/draft-diff.png +0 -0
- package/assets/readme/en/edit-draft-diff.gif +0 -0
- package/assets/readme/en/editor-overview-v3.png +0 -0
- package/assets/readme/en/editor-overview.png +0 -0
- package/assets/readme/en/mode-tools.gif +0 -0
- package/assets/readme/en/regex-transforms.gif +0 -0
- package/assets/readme/en/tool-selection.gif +0 -0
- package/assets/readme/tui-quickstart.gif +0 -0
- package/assets/readme/zh-CN/capability-tools.gif +0 -0
- package/assets/readme/zh-CN/context-composition.gif +0 -0
- package/assets/readme/zh-CN/context-toggle.gif +0 -0
- package/assets/readme/zh-CN/draft-diff.png +0 -0
- package/assets/readme/zh-CN/edit-draft-diff.gif +0 -0
- package/assets/readme/zh-CN/editor-overview-v3.png +0 -0
- package/assets/readme/zh-CN/editor-overview.png +0 -0
- package/assets/readme/zh-CN/mode-tools.gif +0 -0
- package/assets/readme/zh-CN/regex-transforms.gif +0 -0
- package/assets/readme/zh-CN/tool-selection.gif +0 -0
- package/dist/active-state.d.ts +148 -0
- package/dist/active-state.d.ts.map +1 -0
- package/dist/active-state.js +374 -0
- package/dist/active-state.js.map +1 -0
- package/dist/agent-profile.d.ts.map +1 -1
- package/dist/agent-profile.js +11 -0
- package/dist/agent-profile.js.map +1 -1
- package/dist/capabilities.d.ts +39 -0
- package/dist/capabilities.d.ts.map +1 -0
- package/dist/capabilities.js +160 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/capability-anchors.d.ts +45 -0
- package/dist/capability-anchors.d.ts.map +1 -0
- package/dist/capability-anchors.js +263 -0
- package/dist/capability-anchors.js.map +1 -0
- package/dist/capability-command.d.ts +4 -0
- package/dist/capability-command.d.ts.map +1 -0
- package/dist/capability-command.js +164 -0
- package/dist/capability-command.js.map +1 -0
- package/dist/capability-events.d.ts +79 -0
- package/dist/capability-events.d.ts.map +1 -0
- package/dist/capability-events.js +478 -0
- package/dist/capability-events.js.map +1 -0
- package/dist/capability-projection.d.ts +22 -0
- package/dist/capability-projection.d.ts.map +1 -0
- package/dist/capability-projection.js +273 -0
- package/dist/capability-projection.js.map +1 -0
- package/dist/capability-protocol.d.ts +21 -0
- package/dist/capability-protocol.d.ts.map +1 -0
- package/dist/capability-protocol.js +15 -0
- package/dist/capability-protocol.js.map +1 -0
- package/dist/capability-state.d.ts +74 -0
- package/dist/capability-state.d.ts.map +1 -0
- package/dist/capability-state.js +43 -0
- package/dist/capability-state.js.map +1 -0
- package/dist/capability-tool.d.ts +11 -0
- package/dist/capability-tool.d.ts.map +1 -0
- package/dist/capability-tool.js +25 -0
- package/dist/capability-tool.js.map +1 -0
- package/dist/capability-web-host.d.ts +11 -0
- package/dist/capability-web-host.d.ts.map +1 -0
- package/dist/capability-web-host.js +105 -0
- package/dist/capability-web-host.js.map +1 -0
- package/dist/codecs/capability.d.ts +71 -0
- package/dist/codecs/capability.d.ts.map +1 -0
- package/dist/codecs/capability.js +363 -0
- package/dist/codecs/capability.js.map +1 -0
- package/dist/codecs/prompt-stack.d.ts +1 -1
- package/dist/codecs/prompt-stack.d.ts.map +1 -1
- package/dist/codecs/prompt-stack.js +140 -13
- package/dist/codecs/prompt-stack.js.map +1 -1
- package/dist/command-contribution/index.d.ts +21 -0
- package/dist/command-contribution/index.d.ts.map +1 -0
- package/dist/command-contribution/index.js +14 -0
- package/dist/command-contribution/index.js.map +1 -0
- package/dist/compile-cycle.d.ts +7 -1
- package/dist/compile-cycle.d.ts.map +1 -1
- package/dist/compile-cycle.js +2 -0
- package/dist/compile-cycle.js.map +1 -1
- package/dist/compiler.d.ts +7 -1
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +140 -19
- package/dist/compiler.js.map +1 -1
- package/dist/context-diff-history.d.ts +2 -0
- package/dist/context-diff-history.d.ts.map +1 -1
- package/dist/context-diff-history.js +9 -0
- package/dist/context-diff-history.js.map +1 -1
- package/dist/forge-command.d.ts +10 -0
- package/dist/forge-command.d.ts.map +1 -0
- package/dist/forge-command.js +106 -0
- package/dist/forge-command.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -7
- package/dist/index.js.map +1 -1
- package/dist/json-fingerprint.d.ts +11 -0
- package/dist/json-fingerprint.d.ts.map +1 -0
- package/dist/json-fingerprint.js +66 -0
- package/dist/json-fingerprint.js.map +1 -0
- package/dist/lifecycle.d.ts +14 -0
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +175 -66
- package/dist/lifecycle.js.map +1 -1
- package/dist/payload-command.d.ts +2 -2
- package/dist/payload-command.d.ts.map +1 -1
- package/dist/payload-command.js +80 -26
- package/dist/payload-command.js.map +1 -1
- package/dist/payload-state.d.ts +1 -0
- package/dist/payload-state.d.ts.map +1 -1
- package/dist/payload-state.js +1 -0
- package/dist/payload-state.js.map +1 -1
- package/dist/policy.d.ts +2 -1
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +3 -0
- package/dist/policy.js.map +1 -1
- package/dist/preset-command.d.ts +2 -0
- package/dist/preset-command.d.ts.map +1 -1
- package/dist/preset-command.js +101 -36
- package/dist/preset-command.js.map +1 -1
- package/dist/preview-text.d.ts +5 -0
- package/dist/preview-text.d.ts.map +1 -0
- package/dist/preview-text.js +27 -0
- package/dist/preview-text.js.map +1 -0
- package/dist/preview.d.ts +18 -1
- package/dist/preview.d.ts.map +1 -1
- package/dist/preview.js +134 -99
- package/dist/preview.js.map +1 -1
- package/dist/profile-command.d.ts +4 -1
- package/dist/profile-command.d.ts.map +1 -1
- package/dist/profile-command.js +77 -14
- package/dist/profile-command.js.map +1 -1
- package/dist/prompt-cache-warning.d.ts +23 -0
- package/dist/prompt-cache-warning.d.ts.map +1 -0
- package/dist/prompt-cache-warning.js +74 -0
- package/dist/prompt-cache-warning.js.map +1 -0
- package/dist/regex.d.ts.map +1 -1
- package/dist/regex.js +5 -0
- package/dist/regex.js.map +1 -1
- package/dist/render-helpers.d.ts.map +1 -1
- package/dist/render-helpers.js +2 -0
- package/dist/render-helpers.js.map +1 -1
- package/dist/repositories/capability.d.ts +53 -0
- package/dist/repositories/capability.d.ts.map +1 -0
- package/dist/repositories/capability.js +294 -0
- package/dist/repositories/capability.js.map +1 -0
- package/dist/runtime/capability-runtime.d.ts +91 -0
- package/dist/runtime/capability-runtime.d.ts.map +1 -0
- package/dist/runtime/capability-runtime.js +967 -0
- package/dist/runtime/capability-runtime.js.map +1 -0
- package/dist/runtime/tool-policy-runtime.d.ts +8 -0
- package/dist/runtime/tool-policy-runtime.d.ts.map +1 -1
- package/dist/runtime/tool-policy-runtime.js +171 -30
- package/dist/runtime/tool-policy-runtime.js.map +1 -1
- package/dist/session-adapter.d.ts +13 -0
- package/dist/session-adapter.d.ts.map +1 -1
- package/dist/session-adapter.js +110 -0
- package/dist/session-adapter.js.map +1 -1
- package/dist/session-usage.d.ts +65 -0
- package/dist/session-usage.d.ts.map +1 -0
- package/dist/session-usage.js +134 -0
- package/dist/session-usage.js.map +1 -0
- package/dist/subagent/fingerprints.d.ts +3 -15
- package/dist/subagent/fingerprints.d.ts.map +1 -1
- package/dist/subagent/fingerprints.js +5 -69
- package/dist/subagent/fingerprints.js.map +1 -1
- package/dist/subagent/index.d.ts +2 -0
- package/dist/subagent/index.d.ts.map +1 -1
- package/dist/subagent/index.js +2 -0
- package/dist/subagent/index.js.map +1 -1
- package/dist/subagent-host.d.ts +2 -2
- package/dist/subagent-host.d.ts.map +1 -1
- package/dist/subagent-host.js +13 -1
- package/dist/subagent-host.js.map +1 -1
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/web-editor/client-script.generated.d.ts.map +1 -1
- package/dist/web-editor/client-script.generated.js +1 -1
- package/dist/web-editor/client-script.generated.js.map +1 -1
- package/dist/web-editor/client-styles.generated.d.ts.map +1 -1
- package/dist/web-editor/client-styles.generated.js +1 -1
- package/dist/web-editor/client-styles.generated.js.map +1 -1
- package/dist/web-editor/server.d.ts.map +1 -1
- package/dist/web-editor/server.js +152 -4
- package/dist/web-editor/server.js.map +1 -1
- package/dist/web-editor/styles.d.ts.map +1 -1
- package/dist/web-editor/styles.js +521 -116
- package/dist/web-editor/styles.js.map +1 -1
- package/dist/web-editor/types.d.ts +81 -1
- package/dist/web-editor/types.d.ts.map +1 -1
- package/dist/web-host.d.ts +7 -0
- package/dist/web-host.d.ts.map +1 -1
- package/dist/web-host.js +168 -5
- package/dist/web-host.js.map +1 -1
- package/dist/workspace.d.ts +11 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +63 -5
- package/dist/workspace.js.map +1 -1
- package/docs/README.md +4 -0
- package/docs/design/README.md +3 -1
- package/docs/design/architecture-0.5.md +22 -0
- package/docs/design/archive/2026-09-12-system-update-design.md +229 -0
- package/docs/design/pi-forge-system-update-design-notes.md +157 -0
- package/docs/development/release.md +20 -20
- package/docs/development/roadmap.md +17 -2
- package/docs/development/scoped-global-profiles-stacks.md +1 -1
- package/docs/development/setup.md +1 -1
- package/docs/getting-started.md +1 -1
- package/docs/guides/delegation.md +22 -20
- package/docs/guides/migrating-to-0.5.md +29 -0
- package/docs/guides/use-cases.md +6 -2
- package/docs/guides/web-editor.md +73 -5
- package/docs/reference/active-state.md +77 -0
- package/docs/reference/capabilities.md +259 -0
- package/docs/reference/commands.md +52 -24
- package/docs/reference/configuration.md +4 -2
- package/docs/reference/features.md +70 -4
- package/docs/reference/provider-support.md +67 -0
- package/docs/reference/public-api.md +49 -3
- package/docs/reference/session-cache.md +112 -0
- package/docs/reference/stack-schema.md +18 -4
- package/docs/reference/subagent-host-port.md +8 -0
- package/docs/zh-CN/README.md +3 -0
- package/docs/zh-CN/getting-started.md +1 -1
- package/docs/zh-CN/guides/delegation.md +22 -10
- package/docs/zh-CN/guides/migrating-to-0.5.md +29 -0
- package/docs/zh-CN/guides/web-editor.md +74 -7
- package/docs/zh-CN/reference/capabilities.md +259 -0
- package/docs/zh-CN/reference/commands.md +61 -33
- package/docs/zh-CN/reference/provider-support.md +67 -0
- package/docs/zh-CN/reference/session-cache.md +112 -0
- package/examples/capabilities/review.json +12 -0
- package/examples/capabilities/write-tools.json +15 -0
- package/examples/read-first-worker-prompt-stack.json +49 -0
- package/package.json +16 -9
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# 会话缓存用量
|
|
2
|
+
|
|
3
|
+
[中文文档](../README.md) · [English](../../reference/session-cache.md)
|
|
4
|
+
|
|
5
|
+
适用版本:Forge 0.5.5。嵌套用量契约为实验性,生成者接入由可选工具独立实现和发布。Forge 为当前活动会话分支汇总只读的提示词缓存(prompt-cache)用量指标。这些指标展示在 Web 编辑器的**当前会话**能力面板中,并包含在能力运行时的状态数据内。
|
|
6
|
+
|
|
7
|
+
## 只读架构
|
|
8
|
+
|
|
9
|
+
缓存统计数据完全由模型服务商已报告、且 Pi 已持久化在当前分支消息中的用量数据推导而来:
|
|
10
|
+
|
|
11
|
+
- **零副作用:** Forge 绝不为了用量统计发起模型推理、写入会话条目、修改提示词文本、插入 `cache_control` 断点或触发提示词预热(warming)。
|
|
12
|
+
- **复用现有轮询:** Web 客户端通过现有的页面可见性轮询(`GET /api/capability-state`)获取缓存指标,不增加任何额外轮询循环或网络定时器。
|
|
13
|
+
- **从根到叶的分支遍历:** 统计覆盖当前活动分支从根节点到当前叶节点的完整路径。
|
|
14
|
+
- **主会话请求(main):** 统计当前分支上带有非零持久化用量(`input + output + cacheRead + cacheWrite > 0`)的 `assistant` 消息。无用量报告的请求(如中止的操作或未返回用量数据的报错请求)予以忽略。
|
|
15
|
+
- **最近一次有用量的请求:** 最近一条带非零用量的 assistant 消息;之后中止或未报告用量的请求不会替换它。
|
|
16
|
+
- **本轮请求(turn):** 统计当前分支最新一条 `user` 消息之后出现的 assistant 请求。本轮内多步工具调用的多次模型请求合并累计。
|
|
17
|
+
- **会话范围(session):** 聚合当前活动分支上所有合规请求,包括分支上仍然保留的压缩前历史对话。
|
|
18
|
+
- **边界与统计排除:**
|
|
19
|
+
- 明确排除独立的 Pi 顶层 `usage` 事件、压缩记录(compaction)以及分支摘要(`branch_summary`)用量。
|
|
20
|
+
- Pi 可以单独持久化预热用量;这里有意只统计对话请求,不计预热或摘要开销。
|
|
21
|
+
- 本指标反映分支消息的提示词缓存效率,**不等于** Pi 的会话账单总额或全局账单统计。
|
|
22
|
+
|
|
23
|
+
## 缓存命中率计算公式与聚合语义
|
|
24
|
+
|
|
25
|
+
### 计算公式
|
|
26
|
+
|
|
27
|
+
提示词缓存命中率衡量提示词前缀复用效率:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
cacheHitRate = cacheRead / (input + cacheRead + cacheWrite)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- `input`:归一化的未缓存输入 Token(遵循 `pi-ai` 的 `Usage` 规范)。
|
|
34
|
+
- `cacheRead`:从服务商提示词缓存中读取的 Token 数。
|
|
35
|
+
- `cacheWrite`:写入服务商提示词缓存断点的 Token 数。
|
|
36
|
+
- `output`:模型输出补全 Token 严格排除在命中率分母之外。
|
|
37
|
+
- **分母为空 / 零:** 当提示词 Token 总和(`input + cacheRead + cacheWrite`)为 0 时,命中率未定义,界面显示破折号(`—`)。
|
|
38
|
+
|
|
39
|
+
### 聚合规则
|
|
40
|
+
|
|
41
|
+
- **多模型混合:** 当同一轮或同一会话中运行不同模型时,整体命中率按 Token 绝对数值累加计算(缓存读取总数 / 提示词 Token 总数),**绝非**对各请求的命中百分比取算术平均值。
|
|
42
|
+
- **服务商报告差异:** 服务商返回的缓存计数为 0(`cacheRead: 0`, `cacheWrite: 0`)可能仅代表该服务商 API 不报告缓存统计,并不能作为服务商不支持缓存或未发生缓存的证据。
|
|
43
|
+
|
|
44
|
+
## 主会话与嵌套工具严格分离
|
|
45
|
+
|
|
46
|
+
用量严格划分为两个独立流:
|
|
47
|
+
1. **主会话模型(`main`):** 当前分支上由主模型发起的直接请求。
|
|
48
|
+
2. **嵌套工具(`nested`):** 内部发起模型调用的工具(如分身 subagent)所报告的用量。嵌套用量绝不混入 `main`。
|
|
49
|
+
|
|
50
|
+
在 Web 界面中:
|
|
51
|
+
- 主会话与嵌套工具在独立行中显示(**缓存命中**与**分身/嵌套工具**)。
|
|
52
|
+
- 浮层提示(tooltip)仅展示**已知**数据的合并总计,并始终注明缺失、无效及缓存未知的报告不计入,不代表完整账单。
|
|
53
|
+
|
|
54
|
+
## 实验性嵌套用量契约(`toolResult.details.forgeNestedUsage`)
|
|
55
|
+
|
|
56
|
+
内部调用模型的工具可在其工具结果的 `toolResult.details.forgeNestedUsage`(常量 `FORGE_NESTED_USAGE_KEY`)中上报聚合 Token 与缓存指标。
|
|
57
|
+
|
|
58
|
+
### 类型化导入
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
import {
|
|
62
|
+
FORGE_NESTED_USAGE_KEY,
|
|
63
|
+
parseForgeNestedUsage,
|
|
64
|
+
type ForgeNestedUsage,
|
|
65
|
+
} from "@zihanw/pi-forge/subagent";
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### JSON 载荷示例
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"role": "toolResult",
|
|
73
|
+
"toolCallId": "call_subagent_abc123",
|
|
74
|
+
"content": [{ "type": "text", "text": "分身任务完成。" }],
|
|
75
|
+
"details": {
|
|
76
|
+
"forgeNestedUsage": {
|
|
77
|
+
"schemaVersion": 1,
|
|
78
|
+
"requests": 2,
|
|
79
|
+
"input": 1500,
|
|
80
|
+
"output": 420,
|
|
81
|
+
"cacheRead": 3200,
|
|
82
|
+
"cacheWrite": 0
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 契约规范与字段定义
|
|
89
|
+
|
|
90
|
+
| 字段 | 类型 | 必选 | 说明 |
|
|
91
|
+
|---|---|---|---|
|
|
92
|
+
| `schemaVersion` | `1` | 是 | 契约版本。必须为字面量数字 `1`。 |
|
|
93
|
+
| `requests` | `number` | 是 | 非负安全整数。工具调用期间内部发起的模型请求总数。仅当传入的所有 Token 计数均为 0 时,才允许为 `0`。 |
|
|
94
|
+
| `input` | `number` | 是 | 非负安全整数。归一化的未缓存输入 Token 数。 |
|
|
95
|
+
| `output` | `number` | 是 | 非负安全整数。生成的输出补全 Token 数。 |
|
|
96
|
+
| `cacheRead` | `number` | 可选 | 非负安全整数。从缓存读取的提示词 Token 数。必须与 `cacheWrite` 配对出现。 |
|
|
97
|
+
| `cacheWrite` | `number` | 可选 | 非负安全整数。写入缓存的提示词 Token 数。必须与 `cacheRead` 配对出现。 |
|
|
98
|
+
|
|
99
|
+
- **严格模式:** 不允许包含任何额外属性字段。
|
|
100
|
+
- **缓存字段配对规则:** `cacheRead` 与 `cacheWrite` 必须同时提供或同时省略。若生成者无法获知缓存数据,必须将两者同时省略。
|
|
101
|
+
- **单次调用聚合:** 最终工具结果必须针对该次工具调用提供单次聚合数据(包含其内部所有模型请求)。严禁分段进度快照或跨调用的重复累计终身总计。
|
|
102
|
+
- **递归汇总与去重职责:** 工具生成者自行负责多层嵌套子 agent 的去重与汇总。嵌套用量中绝对不能包含父级或主会话的 Token。
|
|
103
|
+
- **数据摄入与容错处理:**
|
|
104
|
+
- **未知缓存数据:** 省略 `cacheRead`/`cacheWrite` 的合法记录从所有请求数及 Token 合计中排除,并在 `cacheUnknownCalls` 中计数提示(`N 次调用未报告缓存数据`)。
|
|
105
|
+
- **格式无效记录:** 校验失败的载荷直接忽略,并在 `invalidCalls` 中计数提示(`N 条格式无效的报告已忽略`)。
|
|
106
|
+
- **字段缺失:** 未提供 `forgeNestedUsage` 视作无嵌套用量,Forge 不做旧格式挖掘或文本日志爬取。
|
|
107
|
+
|
|
108
|
+
### 归属统计与 Pi 原生总计边界(重要)
|
|
109
|
+
|
|
110
|
+
- **仅供 Forge 归属展示:** `toolResult.details.forgeNestedUsage` 仅供 Forge 界面展示与用量归属统计,**绝不修改** Pi 内置的会话总计。
|
|
111
|
+
- **避免重复统计:** Pi 原生已支持 `toolResult.usage`。未来的生成者可在 `toolResult.usage` 填报底层用量供 Pi 计入总账,同时在 `toolResult.details.forgeNestedUsage` 填报供 Forge 缓存归属展示。Forge 汇总时不再累加顶层的 `toolResult.usage`,因而不会重复记账。
|
|
112
|
+
- **生态与运行时状态:** 运行时与 subagent 生成者接入留待后续更新。旧分身调用没有此字段时显示暂无数据,不回填历史。
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"type": "pi-forge.capability",
|
|
4
|
+
"id": "review",
|
|
5
|
+
"name": "Review",
|
|
6
|
+
"description": "Report findings and evidence before editing.",
|
|
7
|
+
"content": "List findings, evidence, and risks. Do not directly edit files.",
|
|
8
|
+
"tools": {
|
|
9
|
+
"add": [],
|
|
10
|
+
"remove": ["bash", "powershell", "write", "edit"]
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"type": "pi-forge.capability",
|
|
4
|
+
"id": "write-tools",
|
|
5
|
+
"name": "Write tools",
|
|
6
|
+
"description": "Enable bash and edit for task commands/edits.",
|
|
7
|
+
"content": "Use bash and edit only as needed for the current task. Disable this capability when finished.",
|
|
8
|
+
"tools": {
|
|
9
|
+
"add": [
|
|
10
|
+
"bash",
|
|
11
|
+
"edit"
|
|
12
|
+
],
|
|
13
|
+
"remove": []
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"type": "pi-forge.prompt-stack",
|
|
4
|
+
"id": "read-first-worker",
|
|
5
|
+
"name": "Read-first Worker",
|
|
6
|
+
"autoActivate": false,
|
|
7
|
+
"mode": "replace",
|
|
8
|
+
"tools": {
|
|
9
|
+
"allow": [
|
|
10
|
+
"read",
|
|
11
|
+
"ls",
|
|
12
|
+
"forge_capability",
|
|
13
|
+
"bash",
|
|
14
|
+
"edit"
|
|
15
|
+
],
|
|
16
|
+
"initial": [
|
|
17
|
+
"read",
|
|
18
|
+
"ls",
|
|
19
|
+
"forge_capability"
|
|
20
|
+
]
|
|
21
|
+
},
|
|
22
|
+
"capabilities": [
|
|
23
|
+
{
|
|
24
|
+
"id": "write-tools",
|
|
25
|
+
"ref": "project:write-tools",
|
|
26
|
+
"modelCallable": true
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"items": [
|
|
30
|
+
{
|
|
31
|
+
"kind": "block",
|
|
32
|
+
"id": "worker-role",
|
|
33
|
+
"name": "Worker Role",
|
|
34
|
+
"enabled": true,
|
|
35
|
+
"role": "system",
|
|
36
|
+
"content": "You are a helpful software engineer assistant. Discover paths with ls then read. When the task needs shell commands or edits, use forge_capability with the enable action for the write-tools binding, then use its disable action when finished."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"kind": "slot",
|
|
40
|
+
"id": "chat-history",
|
|
41
|
+
"name": "Chat History",
|
|
42
|
+
"enabled": true,
|
|
43
|
+
"slot": "chat-history",
|
|
44
|
+
"options": {
|
|
45
|
+
"includeSummaries": false
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zihanw/pi-forge",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "Pi extension for editable context presets, one-shot agent profiles, tool policy, and request debugging.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,6 +18,11 @@
|
|
|
18
18
|
"import": "./dist/subagent/index.js",
|
|
19
19
|
"default": "./dist/subagent/index.js"
|
|
20
20
|
},
|
|
21
|
+
"./command-contribution": {
|
|
22
|
+
"types": "./dist/command-contribution/index.d.ts",
|
|
23
|
+
"import": "./dist/command-contribution/index.js",
|
|
24
|
+
"default": "./dist/command-contribution/index.js"
|
|
25
|
+
},
|
|
21
26
|
"./ui-contribution": {
|
|
22
27
|
"types": "./dist/ui-contribution/index.d.ts",
|
|
23
28
|
"import": "./dist/ui-contribution/index.js",
|
|
@@ -40,10 +45,10 @@
|
|
|
40
45
|
]
|
|
41
46
|
},
|
|
42
47
|
"peerDependencies": {
|
|
43
|
-
"@earendil-works/pi-agent-core": "
|
|
44
|
-
"@earendil-works/pi-ai": "
|
|
45
|
-
"@earendil-works/pi-coding-agent": "
|
|
46
|
-
"@earendil-works/pi-tui": "
|
|
48
|
+
"@earendil-works/pi-agent-core": ">=0.87.0 <0.88.0",
|
|
49
|
+
"@earendil-works/pi-ai": ">=0.87.0 <0.88.0",
|
|
50
|
+
"@earendil-works/pi-coding-agent": ">=0.87.0 <0.88.0",
|
|
51
|
+
"@earendil-works/pi-tui": ">=0.87.0 <0.88.0",
|
|
47
52
|
"typebox": "*"
|
|
48
53
|
},
|
|
49
54
|
"peerDependenciesMeta": {
|
|
@@ -64,10 +69,10 @@
|
|
|
64
69
|
}
|
|
65
70
|
},
|
|
66
71
|
"devDependencies": {
|
|
67
|
-
"@earendil-works/pi-agent-core": "0.
|
|
68
|
-
"@earendil-works/pi-ai": "0.
|
|
69
|
-
"@earendil-works/pi-coding-agent": "0.
|
|
70
|
-
"@earendil-works/pi-tui": "0.
|
|
72
|
+
"@earendil-works/pi-agent-core": "0.87.0",
|
|
73
|
+
"@earendil-works/pi-ai": "0.87.0",
|
|
74
|
+
"@earendil-works/pi-coding-agent": "0.87.0",
|
|
75
|
+
"@earendil-works/pi-tui": "0.87.0",
|
|
71
76
|
"@types/node": "22.20.1",
|
|
72
77
|
"@vitejs/plugin-vue": "6.0.8",
|
|
73
78
|
"playwright-core": "1.61.1",
|
|
@@ -95,6 +100,8 @@
|
|
|
95
100
|
"dist/",
|
|
96
101
|
"docs/",
|
|
97
102
|
"examples/",
|
|
103
|
+
"assets/readme/",
|
|
104
|
+
"assets/pi-forge-header-concept-1.png",
|
|
98
105
|
"README.md",
|
|
99
106
|
"README.zh-CN.md",
|
|
100
107
|
"CHANGELOG.md",
|