ai-project-manage-cli 6.0.30 → 6.0.32
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/dist/index.js
CHANGED
|
@@ -238,6 +238,10 @@ var requestConfig = {
|
|
|
238
238
|
method: "PUT",
|
|
239
239
|
path: "/cli/messages/content"
|
|
240
240
|
}),
|
|
241
|
+
setMessageError: defineEndpoint({
|
|
242
|
+
method: "PUT",
|
|
243
|
+
path: "/cli/messages/error"
|
|
244
|
+
}),
|
|
241
245
|
upsertCursorMessageLog: defineEndpoint({
|
|
242
246
|
method: "PUT",
|
|
243
247
|
path: "/cli/cursor-message-logs"
|
|
@@ -512,7 +516,7 @@ function formatSessionMessagesXml(sessionId, messages) {
|
|
|
512
516
|
lines.push(
|
|
513
517
|
` <message id="${escapeXmlAttr(message.id)}" name="${escapeXmlAttr(
|
|
514
518
|
message.name
|
|
515
|
-
)}"
|
|
519
|
+
)}" agent="${escapeXmlAttr(message.oxcAgent)}"${roundAttr}>`,
|
|
516
520
|
` <content>${wrapCdata(message.content)}</content>`,
|
|
517
521
|
" </message>"
|
|
518
522
|
);
|
|
@@ -641,7 +645,7 @@ async function runPull(sessionId, apmRoot) {
|
|
|
641
645
|
rule: "./RULE.md",
|
|
642
646
|
members: members.map((m) => ({
|
|
643
647
|
name: m.displayName,
|
|
644
|
-
|
|
648
|
+
oxcAgent: m.oxcAgent,
|
|
645
649
|
description: m.description ?? ""
|
|
646
650
|
})),
|
|
647
651
|
attachments: attachments.map((a) => ({ name: a.name }))
|
|
@@ -1496,10 +1500,10 @@ async function updateMessageStatus(cfg, messageId, status) {
|
|
|
1496
1500
|
await api.cli.updateMessageStatus({ id: messageId, status });
|
|
1497
1501
|
console.log(`[apm] \u5DF2\u66F4\u65B0\u6D88\u606F\u72B6\u6001: ${messageId} \u2192 ${status}`);
|
|
1498
1502
|
}
|
|
1499
|
-
async function
|
|
1503
|
+
async function setMessageError(cfg, messageId, error) {
|
|
1500
1504
|
const api = createApmApiClient(cfg);
|
|
1501
|
-
await api.cli.
|
|
1502
|
-
console.log(`[apm] \u5DF2\
|
|
1505
|
+
await api.cli.setMessageError({ id: messageId, error });
|
|
1506
|
+
console.log(`[apm] \u5DF2\u8BBE\u7F6E\u6D88\u606F\u9519\u8BEF: ${messageId}`);
|
|
1503
1507
|
}
|
|
1504
1508
|
var SHUTDOWN_DRAIN_MS = 3e3;
|
|
1505
1509
|
async function handleInboundMessage(cfg, raw, signal) {
|
|
@@ -1559,11 +1563,10 @@ async function handleInboundMessage(cfg, raw, signal) {
|
|
|
1559
1563
|
err instanceof Error ? err.message : err
|
|
1560
1564
|
);
|
|
1561
1565
|
try {
|
|
1562
|
-
await
|
|
1566
|
+
await setMessageError(
|
|
1563
1567
|
cfg,
|
|
1564
1568
|
messageId,
|
|
1565
|
-
|
|
1566
|
-
`
|
|
1569
|
+
err instanceof Error ? err.message : String(err)
|
|
1567
1570
|
);
|
|
1568
1571
|
await updateMessageStatus(cfg, messageId, "FAILED");
|
|
1569
1572
|
} catch (statusErr) {
|
package/package.json
CHANGED
package/template/AGENTS.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
### 工作流程
|
|
4
4
|
|
|
5
5
|
1. 读取 `.apm/sessions/<会话ID>/session.yaml`,必要时读取`messages.xml` 了解当前会话状态与历史消息
|
|
6
|
-
2. 根据你的名字从 `session.yaml` 的 `members` 中找到你对应的 **description
|
|
6
|
+
2. 根据你的名字从 `session.yaml` 的 `members` 中找到你对应的 **description**(智能体描述,非人设提示词)
|
|
7
7
|
3. 根据角色描述完成用户指定的任务
|
|
8
8
|
4. 任务有阶段行进展或者任务完成后必须回复消息(具体见规则 `reply.md`)
|
|
9
9
|
5. 写工作日志(具体见规则 `write_doc.md`)
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
### 步骤 1:确认身份
|
|
4
4
|
|
|
5
5
|
1. 用 **Read** 工具阅读 `.apm/sessions/<会话ID>/session.yaml`
|
|
6
|
-
2. 从 `members` 中找到与**当前角色**对应的 `name` 和 `
|
|
6
|
+
2. 从 `members` 中找到与**当前角色**对应的 `name` 和 `agent`(以 session.yaml 为准,不要猜)
|
|
7
7
|
3. 若无法确定自己的 `name`,停止流程并在回复中说明
|
|
8
8
|
|
|
9
9
|
### 步骤 2:提取本人发言
|
|
@@ -39,19 +39,19 @@
|
|
|
39
39
|
|
|
40
40
|
在草稿文件**最顶部**写入元数据块(格式见 recap-template.md),包含:
|
|
41
41
|
|
|
42
|
-
- `skill_name`:建议 `recap-<
|
|
42
|
+
- `skill_name`:建议 `recap-<agent-key>-<topic-slug>`(英文小写、连字符;topic 取自任务主题,非 sessionId)
|
|
43
43
|
- `skill_description`:第三人称,说明适用场景与触发词,便于下次任务时被发现
|
|
44
44
|
- `merge_strategy`:同业务域已有 Skill 时填 `upsert`,全新领域填 `create`
|
|
45
45
|
|
|
46
|
-
**
|
|
46
|
+
**agent-key 参考**(按 session.yaml 的 agent 映射):
|
|
47
47
|
|
|
48
|
-
|
|
|
49
|
-
| ---------- |
|
|
50
|
-
| 产品经理 | pm
|
|
51
|
-
| 前端工程师 | frontend
|
|
52
|
-
| 后端工程师 | backend
|
|
53
|
-
| 全栈工程师 | fullstack
|
|
54
|
-
| 项目经理 | pm-lead
|
|
48
|
+
| agent | agent-key |
|
|
49
|
+
| ---------- | --------- |
|
|
50
|
+
| 产品经理 | pm |
|
|
51
|
+
| 前端工程师 | frontend |
|
|
52
|
+
| 后端工程师 | backend |
|
|
53
|
+
| 全栈工程师 | fullstack |
|
|
54
|
+
| 项目经理 | pm-lead |
|
|
55
55
|
|
|
56
56
|
### 步骤 6:回复消息
|
|
57
57
|
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
```markdown
|
|
10
10
|
---
|
|
11
|
-
skill_name: recap-<
|
|
11
|
+
skill_name: recap-<agent-key>-<topic-slug>
|
|
12
12
|
skill_description: <第三人称描述:谁在什么业务域的经验;什么需求场景下应阅读本技能。含 2~4 个触发关键词。>
|
|
13
|
-
|
|
13
|
+
agent: <session.yaml 中的 agent,如「后端工程师」>
|
|
14
14
|
member: <session.yaml 中的 name,如「医务小朱」>
|
|
15
15
|
source_session: <会话 ID>
|
|
16
16
|
merge_strategy: upsert
|
|
@@ -82,7 +82,7 @@ generated_at: <YYYY-MM-DD>
|
|
|
82
82
|
## 来源
|
|
83
83
|
|
|
84
84
|
- 会话:<source_session>
|
|
85
|
-
- 角色:<member>(<
|
|
85
|
+
- 角色:<member>(<agent>)
|
|
86
86
|
- 生成:<generated_at>
|
|
87
87
|
```
|
|
88
88
|
|