@clawos-dev/clawd 0.2.460 → 0.2.462

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.
@@ -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(),
@@ -23922,6 +23952,14 @@ var METHOD_DOCS = {
23922
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",
23923
23953
  args: DeployFinishScanArgsSchema
23924
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
+ },
23925
23963
  "deploy:remove": {
23926
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",
23927
23965
  args: DeployIdArgsSchema