@arcships/morula-runtime 0.1.0-alpha.17 → 0.1.0-alpha.18
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
|
@@ -740,7 +740,7 @@ var BUILD_ID, BUILD_CONTEXTS, BUILD_DEFAULT_CONTEXT;
|
|
|
740
740
|
var init_build_env = __esm({
|
|
741
741
|
"../morula-cli-core/dist/build-env.js"() {
|
|
742
742
|
"use strict";
|
|
743
|
-
BUILD_ID = "
|
|
743
|
+
BUILD_ID = "20260930091135.016ba78e";
|
|
744
744
|
BUILD_CONTEXTS = {
|
|
745
745
|
"local": "http://localhost:8080/api",
|
|
746
746
|
"test": "https://morula.basecastle.com/api",
|
|
@@ -4423,7 +4423,7 @@ init_dist2();
|
|
|
4423
4423
|
init_dist2();
|
|
4424
4424
|
|
|
4425
4425
|
// src/build-env.ts
|
|
4426
|
-
var BUILD_VERSION2 = "0.1.0-alpha.
|
|
4426
|
+
var BUILD_VERSION2 = "0.1.0-alpha.18";
|
|
4427
4427
|
|
|
4428
4428
|
// src/commands/daemon.ts
|
|
4429
4429
|
init_dist();
|
|
@@ -5253,7 +5253,7 @@ var COLLABORATION_SKILL_BODY = `# Working on Morula issues\uFF08\u534F\u4F5C\u59
|
|
|
5253
5253
|
morula comment list --object <objectId> # \u8BFB\u8BC4\u8BBA\uFF08\u4EFB\u52A1=objectId\uFF09
|
|
5254
5254
|
morula comment add --object <objectId> --content <\u6587\u672C> # \u53D1\u8BC4\u8BBA\uFF08\u6700\u7EC8\u603B\u7ED3\u52A0 --final\uFF0C\u89C1\u7B2C 5 \u6761\uFF09
|
|
5255
5255
|
morula task inbox [--peek] # \u8FD0\u884C\u4E2D\u68C0\u67E5\u70B9\uFF1A\u53D6\u672C\u7EBF\u7A0B\u672A\u6D88\u8D39\u6D88\u606F\uFF0C\u7EB3\u5165\u672C\u56DE\u5408\uFF08\u89C1 1.3\uFF09
|
|
5256
|
-
# \u6CE8\uFF1A\u4EFB\u52A1\u6536\u5C3E\u5148\u53D1
|
|
5256
|
+
# \u6CE8\uFF1A\u4EFB\u52A1\u6536\u5C3E\u5148\u53D1\u603B\u7ED3\u6027\u8BC4\u8BBA\uFF08\u63A8\u8350 morula comment add --final\uFF0C\u89C1\u7B2C 5 \u6761\uFF09\uFF0C\u518D\u4E0A\u62A5\u7ED3\u679C\uFF1B\u670D\u52A1\u7AEF\u53EA\u5728\u4F60\u4E00\u6761\u8BC4\u8BBA\u90FD\u6CA1\u53D1\u65F6\u515C\u5E95\u4EE3\u53D1\u3002
|
|
5257
5257
|
\`\`\`
|
|
5258
5258
|
- **\u53EF\u7528\u4ED3\u5E93\u6E05\u5355**\uFF1A\u7CFB\u7EDF\u63D0\u793A**\u4E0D\u518D\u5217\u51FA**\u4ED3\u5E93\u2014\u2014\u9700\u8981\u679A\u4E3E\u7A7A\u95F4\u7ED1\u5B9A\u7684\u4ED3\u5E93\u65F6\u7528
|
|
5259
5259
|
\`morula repo list --space <spaceId>\`\uFF08\`<spaceId>\` \u89C1\u7CFB\u7EDF\u63D0\u793A\u300C\u57FA\u672C\u4FE1\u606F\u300D\u6BB5\uFF0C\u6216 \`morula task get\` \u8FD4\u56DE\u7684 \`contextSnapshot.spaceId\`\uFF09\u3002
|
|
@@ -5458,7 +5458,8 @@ morula task inbox --peek # \u53EA\u770B\u4E0D\u53D6\uFF08\u786E\u8BA4\u6709\
|
|
|
5458
5458
|
morula comment add --object <objectId> --final --content <\u7ED3\u8BBA>
|
|
5459
5459
|
\`\`\`
|
|
5460
5460
|
\u4F5C\u8005=\u4F60\uFF08\u667A\u80FD\u4F53\u8EAB\u4EFD\uFF09\uFF1B\u8BC4\u8BBA\u89E6\u53D1\u4EFB\u52A1\u65F6\u670D\u52A1\u7AEF\u4F1A**\u81EA\u52A8\u628A\u5B83\u6302\u5230\u89E6\u53D1\u8BC4\u8BBA\u4E0B**\u4F5C\u4E3A\u56DE\u590D\uFF08\u65E0\u9700\u81EA\u5DF1\u67E5\u8BC4\u8BBA ID\uFF09\u3002
|
|
5461
|
-
**\
|
|
5461
|
+
**\u5B8C\u6210\u540E\u5FC5\u987B\u5728\u4EFB\u52A1\u8BC4\u8BBA\u533A\u7559\u4E0B\u4E00\u6761\u4F60\u81EA\u5DF1\u7684\u603B\u7ED3\u6027\u8BC4\u8BBA\uFF08\u505A\u4E86\u4EC0\u4E48\u3001\u7ED3\u679C\u3001\u540E\u7EED\uFF09\uFF0C\u518D\u4E0A\u62A5\u4EFB\u52A1\u7ED3\u679C**\u2014\u2014\u8FD9\u662F\u4EA4\u4ED8\u7684\u4E00\u90E8\u5206\uFF0C\u4E00\u6761\u8BC4\u8BBA\u90FD\u6CA1\u53D1\u4E0D\u7B97\u5B8C\u6210\u3002\u670D\u52A1\u7AEF\u53EA\u5728\u4F60\u4E00\u6761\u8BC4\u8BBA\u90FD\u6CA1\u53D1\u65F6\u624D\u515C\u5E95\u4EE3\u53D1\u3002
|
|
5462
|
+
\`--final\` \u662F\u9632\u91CD\u6807\u8BB0\uFF08\u540C\u4E00\u4EFB\u52A1\u91CD\u590D\u6267\u884C\u53EA\u4FDD\u7559\u4E00\u6761\u603B\u7ED3\uFF0C\u91CD\u8BD5/\u91CD\u8DD1\u4E0D\u4F1A\u53D1\u7B2C\u4E8C\u6761\uFF1B\u91CD\u590D\u53D1\u9001\u88AB\u670D\u52A1\u7AEF\u62D2\u7EDD\u662F\u9884\u671F\u5185\u7684\u5E42\u7B49\u4FDD\u62A4\uFF09\uFF0C\u4E0D\u662F\u4EA4\u4ED8\u5224\u636E\u2014\u2014\u6536\u5C3E\u603B\u7ED3\u63A8\u8350\u5E26\u4E0A\u3002
|
|
5462
5463
|
- **\u4F8B\u5916\uFF1A\u8BC4\u5BA1\u4EFB\u52A1\u4E0D\u9700\u8981\uFF08\u4E5F\u4E0D\u5E94\uFF09\u53D1 final**\u2014\u2014\u4F60\u7684\u7ED3\u8BBA\u5DF2\u7ECF\u901A\u8FC7 \`morula review submit\` \u673A\u5668\u534F\u8BAE\u4E0A\u62A5\uFF0C\u5E73\u53F0\u4F1A\u636E\u6B64\u5199\u6743\u5A01\u7ED3\u8BBA\u8BC4\u8BBA\uFF08\u2705 \u901A\u8FC7 / \u{1F4AC} \u975E\u963B\u585E / \u{1F501} \u672A\u901A\u8FC7\uFF09\uFF1B\u518D\u53D1\u4E00\u6761 final \u603B\u7ED3\u4F1A\u8BA9\u540C\u4E00\u7ED3\u8BBA\u5728\u8BC4\u8BBA\u533A**\u8BF4\u4E24\u904D**\uFF08\u670D\u52A1\u7AEF\u4E5F\u4F1A\u62D2\u7EDD\u8BC4\u5BA1\u4EFB\u52A1\u7684 final\uFF09\u3002\u9700\u8981\u53D1 final \u7684\u662F\u5F00\u53D1 / \u4FEE\u590D / \u5206\u6790 / \u95EE\u7B54 / \u8BC4\u8BBA\u89E6\u53D1\u7C7B\u4EFB\u52A1\u2014\u2014\u5185\u5BB9**\u7528\u4F60\u81EA\u5DF1\u7684\u8BDD\u5199**\uFF0C\u4E0D\u8981\u5957\u6A21\u677F\u3002
|
|
5463
5464
|
- **\u666E\u901A\u8BC4\u8BBA**\uFF08\u8BF4\u660E\u8FDB\u5C55\u3001@ \u5176\u4ED6\u4EBA\u6216\u8FD0\u884C\u65F6\uFF09\u968F\u65F6\u53EF\u53D1\uFF1A
|
|
5464
5465
|
\`\`\`bash
|
|
@@ -5542,7 +5543,7 @@ var COLLABORATION_SKILL_SOURCE_MAP = `# morula-working-on-issues \u2014 \u5951\u
|
|
|
5542
5543
|
| \u5951\u7EA6 | \u5B9E\u73B0 | \u4F4D\u7F6E |
|
|
5543
5544
|
|------|------|------|
|
|
5544
5545
|
| \u8BC4\u8BBA\u662F\u7528\u6237\u53EF\u89C1\u7684\u4EA7\u51FA\u901A\u9053\uFF1B**\u6700\u7EC8\u603B\u7ED3\u7531 agent \u81EA\u5DF1\u53D1**\uFF08\`morula comment add --final\`\uFF0C\u4F5C\u8005=\u667A\u80FD\u4F53\uFF09 | \`POST /comments\`\uFF08agent_task \u51ED\u8BC1\uFF1B\`kind='final'\` \u670D\u52A1\u7AEF\u56DE\u586B \`taskId\`\uFF0C\`(tenantId, taskId, kind)\` \u552F\u4E00\u7EA6\u675F \u2192 \u540C\u4E00\u4EFB\u52A1\u4E00\u6761\uFF09 | \`packages/morula-cli/src/commands/comment.ts\`\u3001\`src/modules/task-management/comment/comment.service.ts\`\uFF08FINAL-COMMENT-001\uFF09 |
|
|
5545
|
-
| **\u670D\u52A1\u7AEF\u7F3A\u5931\u515C\u5E95**\uFF08DP-1\uFF09\uFF1A\u4EFB\u52A1\u5B8C\u6210\u65F6\
|
|
5546
|
+
| **\u670D\u52A1\u7AEF\u7F3A\u5931\u515C\u5E95**\uFF08DP-1\uFF09\uFF1A\u4EFB\u52A1\u5B8C\u6210\u65F6\u82E5\u8FD0\u884C\u65F6\u5728\u4EFB\u52A1\u4E0A**\u4E00\u6761\u8BC4\u8BBA\u90FD\u6CA1\u53D1**\uFF08\u65E2\u65E0 final \u4E5F\u65E0\u666E\u901A\u8BC4\u8BBA\uFF09\u624D\u4EE3\u53D1\u4E00\u6761\uFF08\u5360\u4F4F\u552F\u4E00\u952E\uFF1B\u4EA4\u4ED8\u5224\u636E=\u603B\u7ED3\u6027\u8BC4\u8BBA\u672C\u8EAB\uFF0C\`--final\` \u4EC5\u9632\u91CD\uFF0C2026-09-30 \u7528\u6237\u5B9A\u6848\uFF09 | \`task-lifecycle.service.ts\` onTaskCompleted\uFF1A\`runtimeFinalExists\` + \`hasAgentRepliedToTrigger\` \u53CC\u68C0\u67E5 \u2192 \u90FD\u6CA1\u6709\u624D\u515C\u5E95 create \u5E26 \`taskId/kind\`\uFF08\u5E76\u53D1\u7531 P2002 \u6355\u83B7\uFF09 | \`src/modules/agent-task/task-lifecycle.service.ts\` |
|
|
5546
5547
|
| \u515C\u5E95\u8DEF\u5F84\u622A\u53D6\u300C\u603B\u7ED3\u6BB5\u300D\uFF08\`---FINAL---\` \u5206\u9694\u7B26 \u2192 \u603B\u7ED3\u6807\u9898 \u2192 \u6C34\u5E73\u7EBF \u2192 \u539F\u6587\u515C\u5E95\uFF09 | \`cleanFinalOutput\`\uFF08\u4EC5\u515C\u5E95\u4EE3\u53D1\u8DEF\u5F84\u4F7F\u7528\uFF1B\u8FD0\u884C\u65F6\u81EA\u53D1\u8DEF\u5F84\u5185\u5BB9\u7EAA\u5F8B\u9760\u5951\u7EA6\uFF09 | \`src/modules/agent-task/task-lifecycle.service.ts\` |
|
|
5547
5548
|
| **\u8BC4\u8BBA @\u89E6\u53D1\u4EFB\u52A1 \u2192 agent \u7684 final \u81EA\u52A8\u6302\u5230\u89E6\u53D1\u8BC4\u8BBA\u4E0B**\uFF08agent \u65E0\u9700\u8BC4\u8BBA ID\uFF09 | \u7ED3\u6784\u6027\u6302\u9760\uFF1A\`CommentService.create\`\uFF08resolveCommentAuthor \u8FD4\u56DE triggerCommentId \u2192 parentCommentId \u9ED8\u8BA4\u503C\uFF09\uFF1B\u751F\u547D\u5468\u671F\u515C\u5E95\uFF1AhasAgentRepliedToTrigger / isMentionReply | LOCAL-AGENT-COMMENT-REPLY-001 |
|
|
5548
5549
|
| **@ \u9636\u6BB5\u8FD0\u884C\u65F6**\uFF08\`--mention-agent <stageExecutorId>\`\uFF09\u2192 \u89E6\u53D1\u8BE5\u6267\u884C\u5668\u5728\u4EFB\u52A1\u4E0A\u5E72\u6D3B | mentions \u6570\u7EC4 agent \u7C7B\u578B\u9879 \u2192 \`comment.mentioned\` \u4E8B\u4EF6 \u2192 AgentCollaborationService \u6D3E\u53D1 | \`comment.service.ts\`\u3001\`agent-collaboration.service.ts\` |
|
package/dist/morula.js
CHANGED
|
@@ -704,8 +704,8 @@ function page(ok, message) {
|
|
|
704
704
|
}
|
|
705
705
|
|
|
706
706
|
// ../morula-cli-core/dist/build-env.js
|
|
707
|
-
var BUILD_VERSION = "0.1.0-alpha.
|
|
708
|
-
var BUILD_ID = "
|
|
707
|
+
var BUILD_VERSION = "0.1.0-alpha.18";
|
|
708
|
+
var BUILD_ID = "20260930091135.016ba78e";
|
|
709
709
|
var BUILD_CONTEXTS = {
|
|
710
710
|
"local": "http://localhost:8080/api",
|
|
711
711
|
"test": "https://morula.basecastle.com/api",
|
package/dist/plugin/plugin.json
CHANGED
|
@@ -174,7 +174,7 @@ allowed-tools: Bash(morula *), Bash(git *), Bash(gh *)
|
|
|
174
174
|
morula comment list --object <objectId> # 读评论(任务=objectId)
|
|
175
175
|
morula comment add --object <objectId> --content <文本> # 发评论(最终总结加 --final,见第 5 条)
|
|
176
176
|
morula task inbox [--peek] # 运行中检查点:取本线程未消费消息,纳入本回合(见 1.3)
|
|
177
|
-
#
|
|
177
|
+
# 注:任务收尾先发总结性评论(推荐 morula comment add --final,见第 5 条),再上报结果;服务端只在你一条评论都没发时兜底代发。
|
|
178
178
|
```
|
|
179
179
|
- **可用仓库清单**:系统提示**不再列出**仓库——需要枚举空间绑定的仓库时用
|
|
180
180
|
`morula repo list --space <spaceId>`(`<spaceId>` 见系统提示「基本信息」段,或 `morula task get` 返回的 `contextSnapshot.spaceId`)。
|
|
@@ -379,7 +379,8 @@ morula task inbox --peek # 只看不取(确认有没有新意见,不标
|
|
|
379
379
|
morula comment add --object <objectId> --final --content <结论>
|
|
380
380
|
```
|
|
381
381
|
作者=你(智能体身份);评论触发任务时服务端会**自动把它挂到触发评论下**作为回复(无需自己查评论 ID)。
|
|
382
|
-
|
|
382
|
+
**完成后必须在任务评论区留下一条你自己的总结性评论(做了什么、结果、后续),再上报任务结果**——这是交付的一部分,一条评论都没发不算完成。服务端只在你一条评论都没发时才兜底代发。
|
|
383
|
+
`--final` 是防重标记(同一任务重复执行只保留一条总结,重试/重跑不会发第二条;重复发送被服务端拒绝是预期内的幂等保护),不是交付判据——收尾总结推荐带上。
|
|
383
384
|
- **例外:评审任务不需要(也不应)发 final**——你的结论已经通过 `morula review submit` 机器协议上报,平台会据此写权威结论评论(✅ 通过 / 💬 非阻塞 / 🔁 未通过);再发一条 final 总结会让同一结论在评论区**说两遍**(服务端也会拒绝评审任务的 final)。需要发 final 的是开发 / 修复 / 分析 / 问答 / 评论触发类任务——内容**用你自己的话写**,不要套模板。
|
|
384
385
|
- **普通评论**(说明进展、@ 其他人或运行时)随时可发:
|
|
385
386
|
```bash
|
package/dist/plugin/skills/morula-working-on-issues/references/working-on-issues-source-map.md
CHANGED
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
| 契约 | 实现 | 位置 |
|
|
57
57
|
|------|------|------|
|
|
58
58
|
| 评论是用户可见的产出通道;**最终总结由 agent 自己发**(`morula comment add --final`,作者=智能体) | `POST /comments`(agent_task 凭证;`kind='final'` 服务端回填 `taskId`,`(tenantId, taskId, kind)` 唯一约束 → 同一任务一条) | `packages/morula-cli/src/commands/comment.ts`、`src/modules/task-management/comment/comment.service.ts`(FINAL-COMMENT-001) |
|
|
59
|
-
| **服务端缺失兜底**(DP-1
|
|
59
|
+
| **服务端缺失兜底**(DP-1):任务完成时若运行时在任务上**一条评论都没发**(既无 final 也无普通评论)才代发一条(占住唯一键;交付判据=总结性评论本身,`--final` 仅防重,2026-09-30 用户定案) | `task-lifecycle.service.ts` onTaskCompleted:`runtimeFinalExists` + `hasAgentRepliedToTrigger` 双检查 → 都没有才兜底 create 带 `taskId/kind`(并发由 P2002 捕获) | `src/modules/agent-task/task-lifecycle.service.ts` |
|
|
60
60
|
| 兜底路径截取「总结段」(`---FINAL---` 分隔符 → 总结标题 → 水平线 → 原文兜底) | `cleanFinalOutput`(仅兜底代发路径使用;运行时自发路径内容纪律靠契约) | `src/modules/agent-task/task-lifecycle.service.ts` |
|
|
61
61
|
| **评论 @触发任务 → agent 的 final 自动挂到触发评论下**(agent 无需评论 ID) | 结构性挂靠:`CommentService.create`(resolveCommentAuthor 返回 triggerCommentId → parentCommentId 默认值);生命周期兜底:hasAgentRepliedToTrigger / isMentionReply | LOCAL-AGENT-COMMENT-REPLY-001 |
|
|
62
62
|
| **@ 阶段运行时**(`--mention-agent <stageExecutorId>`)→ 触发该执行器在任务上干活 | mentions 数组 agent 类型项 → `comment.mentioned` 事件 → AgentCollaborationService 派发 | `comment.service.ts`、`agent-collaboration.service.ts` |
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcships/morula-runtime",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.1.0-alpha.
|
|
4
|
+
"version": "0.1.0-alpha.18",
|
|
5
5
|
"description": "Device-level CLI for the Morula local agent runtime (daemon/portal/models/auth) and the Morula business CLI (morula), distributed via npm",
|
|
6
6
|
"bin": {
|
|
7
7
|
"morula-runtime": "./bin/morula-runtime.js",
|