@clawos-dev/clawd 0.2.459 → 0.2.461
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/app-builder-plugin/mcp-server.cjs +130 -1
- package/dist/cli.cjs +1257 -608
- package/dist/dispatch/mcp-server.cjs +53 -0
- package/dist/share-md-viewer-error.html +1 -1
- package/dist/share-md-viewer.html +1 -1
- package/dist/share-ui/assets/{guest-BJvgzqPz.js → guest-0upTtqLX.js} +116 -116
- package/dist/share-ui/assets/guest-B3t_VaRM.css +32 -0
- package/dist/share-ui/guest.html +2 -2
- package/package.json +1 -1
- package/dist/share-ui/assets/guest-Q6LcVR9h.css +0 -32
|
@@ -21355,6 +21355,19 @@ var DeployGapSchema = external_exports.object({
|
|
|
21355
21355
|
// 建议补的依赖:`cli:python3` 这种。拿不准就不给,让人自己决定。
|
|
21356
21356
|
suggest: external_exports.string().optional()
|
|
21357
21357
|
}).strict();
|
|
21358
|
+
var DeployPlacementSchema = external_exports.object({
|
|
21359
|
+
/** gateway 的公网地址(入口 A 直接 POST 它;入口 B 由设备目录下发 ws 地址) */
|
|
21360
|
+
gatewayUrl: external_exports.string().min(1),
|
|
21361
|
+
/** 服务设备 id:别人的 clawd 用 `device:connect { deviceId }` 就能连上,本机侧零改动 */
|
|
21362
|
+
serviceDeviceId: external_exports.string().min(1),
|
|
21363
|
+
/** 这次登记为正式的镜像 tag(= 试装通过的那个) */
|
|
21364
|
+
image: external_exports.string().min(1),
|
|
21365
|
+
/** 使用者自带的凭据名字(= 单据里 fulfillment 选了 'user' 的那些)。**只有名字** */
|
|
21366
|
+
userSecrets: external_exports.array(external_exports.string()).default([]),
|
|
21367
|
+
/** 是否进公共设备目录。false = 只有拿到 deviceId 的人连得上 */
|
|
21368
|
+
publicDirectory: external_exports.boolean(),
|
|
21369
|
+
deployedAt: external_exports.number()
|
|
21370
|
+
}).strict();
|
|
21358
21371
|
var DeployReceiptSchema = external_exports.object({
|
|
21359
21372
|
deployId: external_exports.string().min(1),
|
|
21360
21373
|
personaId: external_exports.string().min(1),
|
|
@@ -21380,6 +21393,23 @@ var DeployReceiptSchema = external_exports.object({
|
|
|
21380
21393
|
fulfillment: external_exports.record(external_exports.string(), FulfillmentSchema).default({}),
|
|
21381
21394
|
/** 试装失败时的缺口清单;成功或没试装过是空数组 */
|
|
21382
21395
|
gaps: external_exports.array(DeployGapSchema).default([]),
|
|
21396
|
+
/** 试装跑到第几轮了(每次 deploy:trial +1,上限 TRIAL_ROUND_MAX)。重扫清零 */
|
|
21397
|
+
trialRound: external_exports.number().default(0),
|
|
21398
|
+
/**
|
|
21399
|
+
* 试装当前在哪一步的一句人话(「在构镜像」「冒烟任务跑起来了」)。
|
|
21400
|
+
* 单据页要的是「到哪一步了」,不是逐 token 的过程——过程在 gateway 的任务台账里。
|
|
21401
|
+
*/
|
|
21402
|
+
trialStage: external_exports.string().optional(),
|
|
21403
|
+
/**
|
|
21404
|
+
* 上一次试装通过的时刻。**deploy:deploy 的前置**——没试装过不让部署,那正是试装存在的理由。
|
|
21405
|
+
* 试装通过后单据回 `ready` 而不是直接 `deployed`:试装的产物是一个用完即弃的镜像,
|
|
21406
|
+
* 部署的产物是一个别人能派活的服务,中间那次决定得留给人。
|
|
21407
|
+
*/
|
|
21408
|
+
trialPassedAt: external_exports.number().optional(),
|
|
21409
|
+
/** 试装通过的那个镜像 tag;deploy:deploy 登记的就是它,不重新构一遍 */
|
|
21410
|
+
trialImage: external_exports.string().optional(),
|
|
21411
|
+
/** 部署落点(status 是 deployed 才有) */
|
|
21412
|
+
placement: DeployPlacementSchema.optional(),
|
|
21383
21413
|
// 扫描 / 试装失败的原因(status 是 scanFailed / failed 时才有意义)
|
|
21384
21414
|
error: external_exports.string().optional(),
|
|
21385
21415
|
createdAt: external_exports.number(),
|
|
@@ -22065,6 +22095,21 @@ var TOPIC_DECISION_STATUS_RESOLVED = TOPIC_DECISION_STATUSES[1];
|
|
|
22065
22095
|
var TopicDecisionTypeSchema = external_exports.enum(TOPIC_DECISION_TYPES);
|
|
22066
22096
|
var TopicDecisionStatusSchema = external_exports.enum(TOPIC_DECISION_STATUSES);
|
|
22067
22097
|
var TopicDecisionSchema = external_exports.object({
|
|
22098
|
+
/**
|
|
22099
|
+
* 这条决策的标识,供后来的答复回指。可选:存量记录一条都没有,**不迁移**。
|
|
22100
|
+
*
|
|
22101
|
+
* 之所以要它——提问和答复是**两条**流水(`open` 一条、`resolved` 一条,见 `resolves`),
|
|
22102
|
+
* 两条之间没有任何关联时,展示层只能逐条渲染,于是**已经拍板完的待办永远挂在那儿**。
|
|
22103
|
+
*/
|
|
22104
|
+
id: nonBlank2.optional(),
|
|
22105
|
+
/**
|
|
22106
|
+
* 本条解决的是哪条决策(填对方的 `id`)。展示层据此把提问与答复合并成一行。
|
|
22107
|
+
*
|
|
22108
|
+
* **只关联、不改写**:不去改动已落盘那条 `open` 记录的 status。原地改写会丢掉
|
|
22109
|
+
* 「什么时候提出 / 什么时候解决」的双时间戳,也丢掉「Master 建议了什么 vs
|
|
22110
|
+
* 老板最终定了什么」的差异——而老板事后要看的恰恰是这个差异。合并只发生在展示层。
|
|
22111
|
+
*/
|
|
22112
|
+
resolves: nonBlank2.optional(),
|
|
22068
22113
|
type: TopicDecisionTypeSchema,
|
|
22069
22114
|
status: TopicDecisionStatusSchema,
|
|
22070
22115
|
question: nonBlank2,
|
|
@@ -23907,6 +23952,14 @@ var METHOD_DOCS = {
|
|
|
23907
23952
|
summary: "butler \u6536\u5C3E\uFF1A\u7ED9\u51FA\u5192\u70DF\u4EFB\u52A1\u4E0E\u5B58\u7591\u9879\uFF0C\u5355\u636E\u4ECE scanning \u8F6C draft\u3002\u6CA1\u8C03\u5230\u5B83\u5C31\u7B49\u4E8E\u6CA1\u626B\u5B8C\u2014\u2014butler \u4F1A\u8BDD\u7ED3\u675F\u65F6\u5355\u636E\u8FD8\u505C\u5728 scanning\uFF0Cdaemon \u636E\u6B64\u5224 scanFailed\uFF1Bowner-only",
|
|
23908
23953
|
args: DeployFinishScanArgsSchema
|
|
23909
23954
|
},
|
|
23955
|
+
"deploy:trial": {
|
|
23956
|
+
summary: "\u8D77\u4E00\u6B21\u8BD5\u88C5\uFF1A**\u4E00\u6B21\u5E26\u81EA\u6BC1\u7684\u771F\u90E8\u7F72**\u2014\u2014\u6309\u5355\u636E\u7684\u6E05\u5355\u6784\u955C\u50CF \u2192 \u63A8\u8FDB k3s \u2192 \u7ECF gateway \u6295\u5582\u5355\u636E\u4E0A\u90A3\u6761\u5192\u70DF\u4EFB\u52A1 \u2192 \u8BA9 persona \u7528\u81EA\u5DF1\u7684\u65B9\u5F0F\u5E72 \u2192 \u8DD1\u5B8C\u8BA9\u5B83\u628A\u5EFA\u51FA\u6765\u7684\u4E1C\u897F\u62C6\u6389\u3002\u524D\u7F6E\u662F `ready`\uFF08\u5C65\u7EA6\u90FD\u9009\u4E86\u3001\u9009\u4E86\u300C\u6211\u6765\u63D0\u4F9B\u300D\u7684\u51ED\u636E\u90FD\u586B\u9F50\u4E86\uFF09\uFF0C\u7F3A\u54EA\u6761\u4F1A\u5728\u9519\u8BEF\u91CC\u70B9\u540D\uFF1B\u8DD1\u51E0\u5341\u5206\u949F\uFF0C\u6240\u4EE5 RPC \u79D2\u56DE `trialing` \u6001\u5355\u636E\uFF0C\u7ED3\u679C\u7531\u540E\u53F0\u56DE\u5199\uFF08UI \u8F6E\u8BE2\uFF09\u3002\u901A\u8FC7 \u2192 \u56DE `ready` \u5E76\u8BB0\u4E0B trialPassedAt\uFF08\u90E8\u7F72\u662F\u4EBA\u7684\u7B2C\u4E8C\u6B21\u51B3\u5B9A\uFF09\uFF1B\u6CA1\u8FC7 \u2192 `failed` + gaps\uFF08agent \u7684\u4EBA\u8BDD\u9519\u56E0\uFF09\uFF0C\u6539\u5B8C\u6E05\u5355\u518D\u8C03\u4E00\u6B21\u5373\u53EF\u3002\u8F6E\u6B21\u6709\u4E0A\u9650\uFF1Bowner-only",
|
|
23957
|
+
args: DeployIdArgsSchema
|
|
23958
|
+
},
|
|
23959
|
+
"deploy:deploy": {
|
|
23960
|
+
summary: "\u628A\u8BD5\u88C5\u901A\u8FC7\u7684\u90A3\u4E2A\u955C\u50CF\u5728 gateway \u767B\u8BB0\u4E3A**\u6B63\u5F0F**\u90E8\u7F72\uFF1A\u4E4B\u540E\u522B\u4EBA\u7684 clawd \u6D3E\u6D3B\u7ED9\u8FD9\u4E2A\u670D\u52A1\u8BBE\u5907\uFF0C\u8D77\u7684\u5C31\u662F\u5B83\u3002\u524D\u7F6E\u662F\u8BD5\u88C5\u901A\u8FC7\u8FC7\uFF08\u6CA1\u9A8C\u8FC7\u4E0D\u8BA9\u53D1\uFF0C\u90A3\u6B63\u662F\u8BD5\u88C5\u5B58\u5728\u7684\u7406\u7531\uFF09\u3002\u56DE\u6765\u7684\u5355\u636E\u5E26 placement\u2014\u2014\u4E91\u4E0A\u5730\u5740 / \u670D\u52A1\u8BBE\u5907 id / \u8C01\u53EF\u8C03\u7528 / \u4F7F\u7528\u8005\u9700\u81EA\u5E26\u54EA\u4E9B\u51ED\u636E\uFF1Bowner-only",
|
|
23961
|
+
args: DeployIdArgsSchema
|
|
23962
|
+
},
|
|
23910
23963
|
"deploy:remove": {
|
|
23911
23964
|
summary: "\u5220\u6389\u4E00\u5F20\u90E8\u7F72\u5355\uFF0C\u8FDE\u5E26\u6E05\u6389\u5B83\u7684\u5168\u90E8\u51ED\u636E\u503C\uFF08\u503C\u4E0D\u8BE5\u6BD4\u5355\u636E\u6D3B\u5F97\u4E45\uFF09\uFF1Bowner-only",
|
|
23912
23965
|
args: DeployIdArgsSchema
|