@clawos-dev/clawd 0.2.663 → 0.2.665
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 +23 -4
- package/dist/cli.cjs +125 -46
- package/dist/cloud-persona-conversations.html +70 -70
- package/dist/dispatch/mcp-server.cjs +23 -4
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/mcp-server.cjs +23 -4
- package/dist/persona-defaults/persona-clawd-butler/.claude/skills/scan-persona-for-deploy/SKILL.md +2 -2
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/mcp-server.cjs +23 -4
- package/dist/share-ui/assets/{guest-CLzViujN.js → guest-B7AqtMdc.js} +91 -91
- package/dist/share-ui/guest.html +1 -1
- package/package.json +1 -1
|
@@ -21662,7 +21662,22 @@ var DeployStateSchema = external_exports.object({
|
|
|
21662
21662
|
var DeployUnpublishResultSchema = external_exports.object({
|
|
21663
21663
|
before: external_exports.number().nullable()
|
|
21664
21664
|
}).strict();
|
|
21665
|
+
var DeployLocalStateSchema = DeployStateSchema.pick({
|
|
21666
|
+
personaId: true,
|
|
21667
|
+
github: true,
|
|
21668
|
+
repo: true,
|
|
21669
|
+
scans: true,
|
|
21670
|
+
releases: true,
|
|
21671
|
+
promotions: true,
|
|
21672
|
+
engineChannels: true,
|
|
21673
|
+
historyError: true
|
|
21674
|
+
});
|
|
21665
21675
|
var DeployPatchResultSchema = DeployStateSchema.pick({ scans: true });
|
|
21676
|
+
var DeploySecretsResultSchema = external_exports.object({
|
|
21677
|
+
environment: DeployEnvironmentSchema,
|
|
21678
|
+
secrets: external_exports.array(DeploySecretPresenceSchema).optional(),
|
|
21679
|
+
engineChannels: DeployEngineChannelsSchema.optional()
|
|
21680
|
+
}).strict();
|
|
21666
21681
|
var DeployReleaseResultSchema = external_exports.object({
|
|
21667
21682
|
sha: external_exports.string().min(1),
|
|
21668
21683
|
actionsUrl: external_exports.string().min(1),
|
|
@@ -23902,6 +23917,10 @@ var METHOD_DOCS = {
|
|
|
23902
23917
|
summary: "\u4E0A\u4E91\u9875\u9762\u8981\u7684\u5168\u90E8\uFF1A\u4ED3\u5E93\u7ED1\u5B9A\u72B6\u6001\uFF08git \u73B0\u7B97\uFF09\u3001\u626B\u63CF\u5386\u53F2\uFF08\u6BCF\u6761\u5E26\u6E05\u5355\u5FEB\u7167\uFF09\u3001\u53D1\u5E03\u5386\u53F2\uFF08\u6700\u540E\u4E00\u6761 = \u7EBF\u4E0A\u6B63\u8DD1\u7684\uFF09\u3001\u4ED3\u5E93 Secrets \u91CC\u5404\u53D8\u91CF\u540D\u586B\u8FC7\u6CA1\u6709\uFF08**\u53EA\u6709\u540D\u5B57\u548C\u65F6\u95F4\uFF0C\u6CA1\u6709\u503C**\uFF09\u3001\u4E00\u6761\u6D41\u6C34\u7EBF\u72B6\u6001\uFF08\u7F3A\u7701\u4ED3\u5E93\u6700\u65B0\u90A3\u6761\uFF1B`releaseHead` \u6307\u540D\u770B\u54EA\u6B21\u53D1\u5E03\u7684\uFF09\uFF1Bowner-only",
|
|
23903
23918
|
args: DeployGetArgsSchema
|
|
23904
23919
|
},
|
|
23920
|
+
"deploy:getLocal": {
|
|
23921
|
+
summary: "\u4E0A\u4E91\u9875\u8981\u7684**\u672C\u673A\u90E8\u5206**\uFF1A\u4ED3\u5E93\u7ED1\u5B9A\u72B6\u6001\u3001\u626B\u63CF\u5386\u53F2\u3001\u53D1\u5E03\u5386\u53F2\u3001promotion \u8BB0\u5F55\u3001GitHub \u8EAB\u4EFD\u72B6\u6001\u3001\u6A21\u578B\u8BA2\u9605\u6E20\u9053\u3002\u53EA\u8BFB\u672C\u673A\u6587\u4EF6\uFF0C**\u4E0D\u95EE GitHub Actions / gateway / \u98DE\u4E66**\uFF08\u6CA1\u6709\u6D41\u6C34\u7EBF run\u3001Secrets\u3001\u5728\u7EBF\u72B6\u6001\u3001\u4E0B\u7EBF run\uFF09\uFF0C\u4E5F\u4E0D\u89E6\u53D1\u4EFB\u4F55\u4F1A\u5199\u76D8\u7684\u8FDC\u7A0B\u526F\u4F5C\u7528\uFF1BGitHub \u767B\u5F55\u8EAB\u4EFD\u6CBF\u7528 20 \u79D2\u7F13\u5B58\uFF0C\u672A\u547D\u4E2D\u65F6\u95EE\u4E00\u6B21 GET /user\u3002\u626B\u63CF\u671F\u95F4\u8F6E\u8BE2\u3001persona \u5361\u7247\u7528\u5B83\uFF1B\u8981\u5B8C\u6574\u72B6\u6001\u8D70 deploy:get\uFF1Bowner-only",
|
|
23922
|
+
args: DeployPersonaArgsSchema
|
|
23923
|
+
},
|
|
23905
23924
|
"deploy:scan": {
|
|
23906
23925
|
summary: "\u8D77\u4E00\u6B21\u626B\u63CF\u3002**\u6CA1\u4ED3\u5E93\u5148\u5EFA\u4ED3**\uFF08GitHub REST \u5EFA\u5728\u7EC4\u7EC7\u4E0B\u3001\u79C1\u6709\uFF0Cgit \u63A8\u9996\u4E2A\u63D0\u4EA4\uFF1Btoken \u6765\u81EA\u672C\u673A git \u7684\u8EAB\u4EFD\uFF0C\u6CA1\u6388\u6743\u5148\u62D2\uFF09\u3002\u628A persona \u76EE\u5F55\u63D0\u4EA4\u5230\u672C\u5730\uFF08\u4E0D\u63A8\uFF09\u3001\u5728\u626B\u63CF\u5386\u53F2\u91CC\u8FFD\u52A0\u4E00\u6761\u3001\u8D77 persona-butler \u7684\u626B\u63CF\u4F1A\u8BDD\uFF1B\u6B63\u5728\u626B\u7684\u8BDD\u539F\u6837\u8FD4\u56DE\u4E0D\u8D77\u7B2C\u4E8C\u4E2A\u4F1A\u8BDD\u3002\u5E26 scanBase\uFF08hard / soft\uFF09\u6309\u8BE5\u6863\u4F4D\u626B\uFF08soft \u4E0D\u6210\u7ACB\u81EA\u52A8\u9000 hard\uFF09\uFF0C\u7F3A\u5E2D daemon \u81EA\u52A8\u5B9A\uFF1Bowner-only",
|
|
23907
23926
|
args: DeployScanArgsSchema
|
|
@@ -23911,22 +23930,22 @@ var METHOD_DOCS = {
|
|
|
23911
23930
|
args: DeployPatchArgsSchema
|
|
23912
23931
|
},
|
|
23913
23932
|
"deploy:putSecret": {
|
|
23914
|
-
summary: "\u628A\u4E00\u6761\u51ED\u636E\u7684\u503C\u5199\u8FDB\u4ED3\u5E93\u7684 GitHub Secrets\uFF08GitHub REST\uFF0C\u503C\u7528\u4ED3\u5E93\u516C\u94A5\u5C01\u7BB1\u540E\u4E0A\u4F20\uFF09\u3002**\u8FD9\u662F\u6E05\u5355\u51ED\u636E\u503C\u552F\u4E00\u7684\u5165\u53E3**\uFF08\u6A21\u578B\u8BA2\u9605\u8D70 deploy:setEngineAuth\uFF09\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\u3002env \u540D\u5FC5\u987B\u662F scanId \u90A3\u6B21\u6E05\u5355\u91CC\u8BE5\u51ED\u636E\u58F0\u660E\u8FC7\u7684\uFF1Bowner-only",
|
|
23933
|
+
summary: "\u628A\u4E00\u6761\u51ED\u636E\u7684\u503C\u5199\u8FDB\u4ED3\u5E93\u7684 GitHub Secrets\uFF08GitHub REST\uFF0C\u503C\u7528\u4ED3\u5E93\u516C\u94A5\u5C01\u7BB1\u540E\u4E0A\u4F20\uFF09\u3002**\u8FD9\u662F\u6E05\u5355\u51ED\u636E\u503C\u552F\u4E00\u7684\u5165\u53E3**\uFF08\u6A21\u578B\u8BA2\u9605\u8D70 deploy:setEngineAuth\uFF09\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\u3002env \u540D\u5FC5\u987B\u662F scanId \u90A3\u6B21\u6E05\u5355\u91CC\u8BE5\u51ED\u636E\u58F0\u660E\u8FC7\u7684\u3002\u53EA\u56DE\u5199\u5165\u73AF\u5883\u73B0\u67E5\u7684\u540D\u5B57\u6E05\u5355 { environment, secrets }\uFF08secrets \u7F3A\u5E2D = \u5199\u6210\u529F\u4F46\u56DE\u67E5\u5931\u8D25\uFF0C\u8C03\u7528\u65B9\u81EA\u5DF1 deploy:get\uFF09\uFF0C\u4E0D\u56DE\u6574\u4EFD deploy:get \u72B6\u6001\uFF1Bowner-only",
|
|
23915
23934
|
args: DeployPutSecretArgsSchema
|
|
23916
23935
|
},
|
|
23917
23936
|
"deploy:setEngineAuth": {
|
|
23918
|
-
summary: "\u6A21\u578B\u8BA2\u9605\uFF08\u4E91\u4E0A\u8DD1\u8FD9\u4E2A persona \u82B1\u8C01\u7684\u6A21\u578B\u989D\u5EA6\uFF09\uFF1Aauth = { baseUrl, apiKey } \u5199\u8FDB\u4ED3\u5E93 GitHub Secrets \u7684 CLAWD_ENGINE_BASE_URL / CLAWD_ENGINE_API_KEY\uFF08\u5730\u5740\u89C4\u8303\u6210 \u2026/v1\uFF09\uFF0Cnull = \u5220\u8FD9\u4E24\u6761\u3001\u6539\u56DE\u5E73\u53F0\u9ED8\u8BA4\u3002\u4E0B\u6B21\u53D1\u5E03\u751F\u6548\u3002\u540C putSecret \u7684\u7EAA\u5F8B\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\uFF1B\u56DE deploy:get \
|
|
23937
|
+
summary: "\u6A21\u578B\u8BA2\u9605\uFF08\u4E91\u4E0A\u8DD1\u8FD9\u4E2A persona \u82B1\u8C01\u7684\u6A21\u578B\u989D\u5EA6\uFF09\uFF1Aauth = { baseUrl, apiKey } \u5199\u8FDB\u4ED3\u5E93 GitHub Secrets \u7684 CLAWD_ENGINE_BASE_URL / CLAWD_ENGINE_API_KEY\uFF08\u5730\u5740\u89C4\u8303\u6210 \u2026/v1\uFF09\uFF0Cnull = \u5220\u8FD9\u4E24\u6761\u3001\u6539\u56DE\u5E73\u53F0\u9ED8\u8BA4\u3002\u4E0B\u6B21\u53D1\u5E03\u751F\u6548\u3002\u540C putSecret \u7684\u7EAA\u5F8B\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\uFF1B\u53EA\u56DE\u5199\u5165\u73AF\u5883\u73B0\u67E5\u7684\u540D\u5B57\u6E05\u5355\u548C engineChannels\uFF08{ environment, secrets?, engineChannels? }\uFF09\uFF0C\u4E0D\u56DE\u6574\u4EFD deploy:get \u72B6\u6001\uFF1Bowner-only\u3001human-only",
|
|
23919
23938
|
args: DeploySetEngineAuthArgsSchema,
|
|
23920
23939
|
argsConstraints: {
|
|
23921
23940
|
anyOf: [{ required: ["channelId"] }, { required: ["auth"] }]
|
|
23922
23941
|
}
|
|
23923
23942
|
},
|
|
23924
23943
|
"deploy:reportFinding": {
|
|
23925
|
-
summary: "\u626B\u63CF\u4E2D\u7684 butler \u9010\u6761\u4E0A\u62A5\u4E00\u4E2A\u53D1\u73B0\uFF08cli / secret / asset\uFF09\u3002**\u8FB9\u626B\u8FB9\u62A5**\uFF0C\u9875\u9762\u968F\u4E4B\u4E00\u70B9\u70B9\u586B\u5145\uFF1B\u540C (kind,name) \u91CD\u590D\u4E0A\u62A5\u5373\u8986\u76D6\
|
|
23944
|
+
summary: "\u626B\u63CF\u4E2D\u7684 butler \u9010\u6761\u4E0A\u62A5\u4E00\u4E2A\u53D1\u73B0\uFF08cli / secret / asset\uFF09\u3002**\u8FB9\u626B\u8FB9\u62A5**\uFF0C\u9875\u9762\u968F\u4E4B\u4E00\u70B9\u70B9\u586B\u5145\uFF1B\u540C (kind,name) \u91CD\u590D\u4E0A\u62A5\u5373\u8986\u76D6\u3002\u53EA\u56DE\u626B\u63CF\u5386\u53F2 `scans`\uFF08\u540C deploy:patch\uFF09\uFF0C\u4E0D\u56DE\u6574\u4EFD\u72B6\u6001\uFF1Bowner-only\u2014\u2014butler \u4F1A\u8BDD\u672C\u8EAB\u8DD1\u5728 owner \u6A21\u5F0F",
|
|
23926
23945
|
args: DeployReportFindingArgsSchema
|
|
23927
23946
|
},
|
|
23928
23947
|
"deploy:finishScan": {
|
|
23929
|
-
summary: "butler \u6536\u5C3E\uFF1A\u7ED9\u51FA\u5B58\u7591\u9879\uFF0C\u626B\u63CF\u8BB0\u5F55\u4ECE scanning \u8F6C done\u3002\u6CA1\u8C03\u5230\u5B83\u5C31\u7B49\u4E8E\u6CA1\u626B\u5B8C\u2014\u2014butler \u4F1A\u8BDD\u7ED3\u675F\u65F6\u8BB0\u5F55\u8FD8\u505C\u5728 scanning\uFF0Cdaemon \u636E\u6B64\u5224 failed\uFF1Bowner-only",
|
|
23948
|
+
summary: "butler \u6536\u5C3E\uFF1A\u7ED9\u51FA\u5B58\u7591\u9879\uFF0C\u626B\u63CF\u8BB0\u5F55\u4ECE scanning \u8F6C done\u3002\u6CA1\u8C03\u5230\u5B83\u5C31\u7B49\u4E8E\u6CA1\u626B\u5B8C\u2014\u2014butler \u4F1A\u8BDD\u7ED3\u675F\u65F6\u8BB0\u5F55\u8FD8\u505C\u5728 scanning\uFF0Cdaemon \u636E\u6B64\u5224 failed\u3002\u53EA\u56DE\u626B\u63CF\u5386\u53F2 `scans`\uFF1Bowner-only",
|
|
23930
23949
|
args: DeployFinishScanArgsSchema
|
|
23931
23950
|
},
|
|
23932
23951
|
"deploy:release": {
|
|
@@ -31584,7 +31584,22 @@ var DeployStateSchema = external_exports.object({
|
|
|
31584
31584
|
var DeployUnpublishResultSchema = external_exports.object({
|
|
31585
31585
|
before: external_exports.number().nullable()
|
|
31586
31586
|
}).strict();
|
|
31587
|
+
var DeployLocalStateSchema = DeployStateSchema.pick({
|
|
31588
|
+
personaId: true,
|
|
31589
|
+
github: true,
|
|
31590
|
+
repo: true,
|
|
31591
|
+
scans: true,
|
|
31592
|
+
releases: true,
|
|
31593
|
+
promotions: true,
|
|
31594
|
+
engineChannels: true,
|
|
31595
|
+
historyError: true
|
|
31596
|
+
});
|
|
31587
31597
|
var DeployPatchResultSchema = DeployStateSchema.pick({ scans: true });
|
|
31598
|
+
var DeploySecretsResultSchema = external_exports.object({
|
|
31599
|
+
environment: DeployEnvironmentSchema,
|
|
31600
|
+
secrets: external_exports.array(DeploySecretPresenceSchema).optional(),
|
|
31601
|
+
engineChannels: DeployEngineChannelsSchema.optional()
|
|
31602
|
+
}).strict();
|
|
31588
31603
|
var DeployReleaseResultSchema = external_exports.object({
|
|
31589
31604
|
sha: external_exports.string().min(1),
|
|
31590
31605
|
actionsUrl: external_exports.string().min(1),
|
|
@@ -33824,6 +33839,10 @@ var METHOD_DOCS = {
|
|
|
33824
33839
|
summary: "\u4E0A\u4E91\u9875\u9762\u8981\u7684\u5168\u90E8\uFF1A\u4ED3\u5E93\u7ED1\u5B9A\u72B6\u6001\uFF08git \u73B0\u7B97\uFF09\u3001\u626B\u63CF\u5386\u53F2\uFF08\u6BCF\u6761\u5E26\u6E05\u5355\u5FEB\u7167\uFF09\u3001\u53D1\u5E03\u5386\u53F2\uFF08\u6700\u540E\u4E00\u6761 = \u7EBF\u4E0A\u6B63\u8DD1\u7684\uFF09\u3001\u4ED3\u5E93 Secrets \u91CC\u5404\u53D8\u91CF\u540D\u586B\u8FC7\u6CA1\u6709\uFF08**\u53EA\u6709\u540D\u5B57\u548C\u65F6\u95F4\uFF0C\u6CA1\u6709\u503C**\uFF09\u3001\u4E00\u6761\u6D41\u6C34\u7EBF\u72B6\u6001\uFF08\u7F3A\u7701\u4ED3\u5E93\u6700\u65B0\u90A3\u6761\uFF1B`releaseHead` \u6307\u540D\u770B\u54EA\u6B21\u53D1\u5E03\u7684\uFF09\uFF1Bowner-only",
|
|
33825
33840
|
args: DeployGetArgsSchema
|
|
33826
33841
|
},
|
|
33842
|
+
"deploy:getLocal": {
|
|
33843
|
+
summary: "\u4E0A\u4E91\u9875\u8981\u7684**\u672C\u673A\u90E8\u5206**\uFF1A\u4ED3\u5E93\u7ED1\u5B9A\u72B6\u6001\u3001\u626B\u63CF\u5386\u53F2\u3001\u53D1\u5E03\u5386\u53F2\u3001promotion \u8BB0\u5F55\u3001GitHub \u8EAB\u4EFD\u72B6\u6001\u3001\u6A21\u578B\u8BA2\u9605\u6E20\u9053\u3002\u53EA\u8BFB\u672C\u673A\u6587\u4EF6\uFF0C**\u4E0D\u95EE GitHub Actions / gateway / \u98DE\u4E66**\uFF08\u6CA1\u6709\u6D41\u6C34\u7EBF run\u3001Secrets\u3001\u5728\u7EBF\u72B6\u6001\u3001\u4E0B\u7EBF run\uFF09\uFF0C\u4E5F\u4E0D\u89E6\u53D1\u4EFB\u4F55\u4F1A\u5199\u76D8\u7684\u8FDC\u7A0B\u526F\u4F5C\u7528\uFF1BGitHub \u767B\u5F55\u8EAB\u4EFD\u6CBF\u7528 20 \u79D2\u7F13\u5B58\uFF0C\u672A\u547D\u4E2D\u65F6\u95EE\u4E00\u6B21 GET /user\u3002\u626B\u63CF\u671F\u95F4\u8F6E\u8BE2\u3001persona \u5361\u7247\u7528\u5B83\uFF1B\u8981\u5B8C\u6574\u72B6\u6001\u8D70 deploy:get\uFF1Bowner-only",
|
|
33844
|
+
args: DeployPersonaArgsSchema
|
|
33845
|
+
},
|
|
33827
33846
|
"deploy:scan": {
|
|
33828
33847
|
summary: "\u8D77\u4E00\u6B21\u626B\u63CF\u3002**\u6CA1\u4ED3\u5E93\u5148\u5EFA\u4ED3**\uFF08GitHub REST \u5EFA\u5728\u7EC4\u7EC7\u4E0B\u3001\u79C1\u6709\uFF0Cgit \u63A8\u9996\u4E2A\u63D0\u4EA4\uFF1Btoken \u6765\u81EA\u672C\u673A git \u7684\u8EAB\u4EFD\uFF0C\u6CA1\u6388\u6743\u5148\u62D2\uFF09\u3002\u628A persona \u76EE\u5F55\u63D0\u4EA4\u5230\u672C\u5730\uFF08\u4E0D\u63A8\uFF09\u3001\u5728\u626B\u63CF\u5386\u53F2\u91CC\u8FFD\u52A0\u4E00\u6761\u3001\u8D77 persona-butler \u7684\u626B\u63CF\u4F1A\u8BDD\uFF1B\u6B63\u5728\u626B\u7684\u8BDD\u539F\u6837\u8FD4\u56DE\u4E0D\u8D77\u7B2C\u4E8C\u4E2A\u4F1A\u8BDD\u3002\u5E26 scanBase\uFF08hard / soft\uFF09\u6309\u8BE5\u6863\u4F4D\u626B\uFF08soft \u4E0D\u6210\u7ACB\u81EA\u52A8\u9000 hard\uFF09\uFF0C\u7F3A\u5E2D daemon \u81EA\u52A8\u5B9A\uFF1Bowner-only",
|
|
33829
33848
|
args: DeployScanArgsSchema
|
|
@@ -33833,22 +33852,22 @@ var METHOD_DOCS = {
|
|
|
33833
33852
|
args: DeployPatchArgsSchema
|
|
33834
33853
|
},
|
|
33835
33854
|
"deploy:putSecret": {
|
|
33836
|
-
summary: "\u628A\u4E00\u6761\u51ED\u636E\u7684\u503C\u5199\u8FDB\u4ED3\u5E93\u7684 GitHub Secrets\uFF08GitHub REST\uFF0C\u503C\u7528\u4ED3\u5E93\u516C\u94A5\u5C01\u7BB1\u540E\u4E0A\u4F20\uFF09\u3002**\u8FD9\u662F\u6E05\u5355\u51ED\u636E\u503C\u552F\u4E00\u7684\u5165\u53E3**\uFF08\u6A21\u578B\u8BA2\u9605\u8D70 deploy:setEngineAuth\uFF09\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\u3002env \u540D\u5FC5\u987B\u662F scanId \u90A3\u6B21\u6E05\u5355\u91CC\u8BE5\u51ED\u636E\u58F0\u660E\u8FC7\u7684\uFF1Bowner-only",
|
|
33855
|
+
summary: "\u628A\u4E00\u6761\u51ED\u636E\u7684\u503C\u5199\u8FDB\u4ED3\u5E93\u7684 GitHub Secrets\uFF08GitHub REST\uFF0C\u503C\u7528\u4ED3\u5E93\u516C\u94A5\u5C01\u7BB1\u540E\u4E0A\u4F20\uFF09\u3002**\u8FD9\u662F\u6E05\u5355\u51ED\u636E\u503C\u552F\u4E00\u7684\u5165\u53E3**\uFF08\u6A21\u578B\u8BA2\u9605\u8D70 deploy:setEngineAuth\uFF09\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\u3002env \u540D\u5FC5\u987B\u662F scanId \u90A3\u6B21\u6E05\u5355\u91CC\u8BE5\u51ED\u636E\u58F0\u660E\u8FC7\u7684\u3002\u53EA\u56DE\u5199\u5165\u73AF\u5883\u73B0\u67E5\u7684\u540D\u5B57\u6E05\u5355 { environment, secrets }\uFF08secrets \u7F3A\u5E2D = \u5199\u6210\u529F\u4F46\u56DE\u67E5\u5931\u8D25\uFF0C\u8C03\u7528\u65B9\u81EA\u5DF1 deploy:get\uFF09\uFF0C\u4E0D\u56DE\u6574\u4EFD deploy:get \u72B6\u6001\uFF1Bowner-only",
|
|
33837
33856
|
args: DeployPutSecretArgsSchema
|
|
33838
33857
|
},
|
|
33839
33858
|
"deploy:setEngineAuth": {
|
|
33840
|
-
summary: "\u6A21\u578B\u8BA2\u9605\uFF08\u4E91\u4E0A\u8DD1\u8FD9\u4E2A persona \u82B1\u8C01\u7684\u6A21\u578B\u989D\u5EA6\uFF09\uFF1Aauth = { baseUrl, apiKey } \u5199\u8FDB\u4ED3\u5E93 GitHub Secrets \u7684 CLAWD_ENGINE_BASE_URL / CLAWD_ENGINE_API_KEY\uFF08\u5730\u5740\u89C4\u8303\u6210 \u2026/v1\uFF09\uFF0Cnull = \u5220\u8FD9\u4E24\u6761\u3001\u6539\u56DE\u5E73\u53F0\u9ED8\u8BA4\u3002\u4E0B\u6B21\u53D1\u5E03\u751F\u6548\u3002\u540C putSecret \u7684\u7EAA\u5F8B\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\uFF1B\u56DE deploy:get \
|
|
33859
|
+
summary: "\u6A21\u578B\u8BA2\u9605\uFF08\u4E91\u4E0A\u8DD1\u8FD9\u4E2A persona \u82B1\u8C01\u7684\u6A21\u578B\u989D\u5EA6\uFF09\uFF1Aauth = { baseUrl, apiKey } \u5199\u8FDB\u4ED3\u5E93 GitHub Secrets \u7684 CLAWD_ENGINE_BASE_URL / CLAWD_ENGINE_API_KEY\uFF08\u5730\u5740\u89C4\u8303\u6210 \u2026/v1\uFF09\uFF0Cnull = \u5220\u8FD9\u4E24\u6761\u3001\u6539\u56DE\u5E73\u53F0\u9ED8\u8BA4\u3002\u4E0B\u6B21\u53D1\u5E03\u751F\u6548\u3002\u540C putSecret \u7684\u7EAA\u5F8B\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\uFF1B\u53EA\u56DE\u5199\u5165\u73AF\u5883\u73B0\u67E5\u7684\u540D\u5B57\u6E05\u5355\u548C engineChannels\uFF08{ environment, secrets?, engineChannels? }\uFF09\uFF0C\u4E0D\u56DE\u6574\u4EFD deploy:get \u72B6\u6001\uFF1Bowner-only\u3001human-only",
|
|
33841
33860
|
args: DeploySetEngineAuthArgsSchema,
|
|
33842
33861
|
argsConstraints: {
|
|
33843
33862
|
anyOf: [{ required: ["channelId"] }, { required: ["auth"] }]
|
|
33844
33863
|
}
|
|
33845
33864
|
},
|
|
33846
33865
|
"deploy:reportFinding": {
|
|
33847
|
-
summary: "\u626B\u63CF\u4E2D\u7684 butler \u9010\u6761\u4E0A\u62A5\u4E00\u4E2A\u53D1\u73B0\uFF08cli / secret / asset\uFF09\u3002**\u8FB9\u626B\u8FB9\u62A5**\uFF0C\u9875\u9762\u968F\u4E4B\u4E00\u70B9\u70B9\u586B\u5145\uFF1B\u540C (kind,name) \u91CD\u590D\u4E0A\u62A5\u5373\u8986\u76D6\
|
|
33866
|
+
summary: "\u626B\u63CF\u4E2D\u7684 butler \u9010\u6761\u4E0A\u62A5\u4E00\u4E2A\u53D1\u73B0\uFF08cli / secret / asset\uFF09\u3002**\u8FB9\u626B\u8FB9\u62A5**\uFF0C\u9875\u9762\u968F\u4E4B\u4E00\u70B9\u70B9\u586B\u5145\uFF1B\u540C (kind,name) \u91CD\u590D\u4E0A\u62A5\u5373\u8986\u76D6\u3002\u53EA\u56DE\u626B\u63CF\u5386\u53F2 `scans`\uFF08\u540C deploy:patch\uFF09\uFF0C\u4E0D\u56DE\u6574\u4EFD\u72B6\u6001\uFF1Bowner-only\u2014\u2014butler \u4F1A\u8BDD\u672C\u8EAB\u8DD1\u5728 owner \u6A21\u5F0F",
|
|
33848
33867
|
args: DeployReportFindingArgsSchema
|
|
33849
33868
|
},
|
|
33850
33869
|
"deploy:finishScan": {
|
|
33851
|
-
summary: "butler \u6536\u5C3E\uFF1A\u7ED9\u51FA\u5B58\u7591\u9879\uFF0C\u626B\u63CF\u8BB0\u5F55\u4ECE scanning \u8F6C done\u3002\u6CA1\u8C03\u5230\u5B83\u5C31\u7B49\u4E8E\u6CA1\u626B\u5B8C\u2014\u2014butler \u4F1A\u8BDD\u7ED3\u675F\u65F6\u8BB0\u5F55\u8FD8\u505C\u5728 scanning\uFF0Cdaemon \u636E\u6B64\u5224 failed\uFF1Bowner-only",
|
|
33870
|
+
summary: "butler \u6536\u5C3E\uFF1A\u7ED9\u51FA\u5B58\u7591\u9879\uFF0C\u626B\u63CF\u8BB0\u5F55\u4ECE scanning \u8F6C done\u3002\u6CA1\u8C03\u5230\u5B83\u5C31\u7B49\u4E8E\u6CA1\u626B\u5B8C\u2014\u2014butler \u4F1A\u8BDD\u7ED3\u675F\u65F6\u8BB0\u5F55\u8FD8\u505C\u5728 scanning\uFF0Cdaemon \u636E\u6B64\u5224 failed\u3002\u53EA\u56DE\u626B\u63CF\u5386\u53F2 `scans`\uFF1Bowner-only",
|
|
33852
33871
|
args: DeployFinishScanArgsSchema
|
|
33853
33872
|
},
|
|
33854
33873
|
"deploy:release": {
|
package/dist/persona-defaults/persona-clawd-butler/.claude/skills/scan-persona-for-deploy/SKILL.md
CHANGED
|
@@ -121,7 +121,7 @@ call({ method: "deploy:reportFinding", args: {
|
|
|
121
121
|
注意目标是 **Linux 容器**:persona 脚本里的 macOS 装法(brew 之类)不能照抄,要找 Linux 对应的。
|
|
122
122
|
|
|
123
123
|
**版本不用你定——daemon 探本机。** 你每报一条 `package`,daemon 会在这台机器的登录 shell PATH 上找同名
|
|
124
|
-
|
|
124
|
+
可执行、问它的版本,写进该次扫描 `manifest.packages` 里那条的 `version`(同时落 `localVersion`)。本机是啥就上云啥,这是硬约束。
|
|
125
125
|
只有本机没装时才由你按官方文档填一个 `version`,并在收尾的 `notes` 里写明「本机未装 <name>,取的 x.y.z」。
|
|
126
126
|
`min` 只在你确知下限时填。**不要猜版本号。**
|
|
127
127
|
|
|
@@ -135,7 +135,7 @@ Debian 13 没有这个包也照样记下(页面显示「云上装不了」)
|
|
|
135
135
|
**`npm:` / `github:` 必须能装出 `version` 那个确切版本**:npm 注册表和 GitHub release 每个历史版本都在,选错了就是源选错了,不要报一个装出来版本不对的源。
|
|
136
136
|
|
|
137
137
|
**`github:` 要钉资产。** GitHub 不是包注册表,从「仓库 + 版本」推不出该下哪个文件,构建器不猜。分两步:
|
|
138
|
-
1. 先报 `{ name, from: "github:<owner>/<repo>" }`,从返回的
|
|
138
|
+
1. 先报 `{ name, from: "github:<owner>/<repo>" }`,从返回的 `scans` 里最新一次扫描的 `manifest.packages` 读 daemon 定下的 `version`;
|
|
139
139
|
2. 按**那个版本**打开该仓库的 Releases 页(或读它官方 install 脚本里的下载 URL),找到 **linux-amd64** 资产的直链
|
|
140
140
|
和包内可执行文件的路径,再报一次同名条目:
|
|
141
141
|
`{ name, from, version: <第 1 步读到的>, artifact: { url: "<直链>", bin: "<包内路径,如 hbi 或 dist/bin/x;裸二进制留空串>" } }`。
|
|
@@ -31584,7 +31584,22 @@ var DeployStateSchema = external_exports.object({
|
|
|
31584
31584
|
var DeployUnpublishResultSchema = external_exports.object({
|
|
31585
31585
|
before: external_exports.number().nullable()
|
|
31586
31586
|
}).strict();
|
|
31587
|
+
var DeployLocalStateSchema = DeployStateSchema.pick({
|
|
31588
|
+
personaId: true,
|
|
31589
|
+
github: true,
|
|
31590
|
+
repo: true,
|
|
31591
|
+
scans: true,
|
|
31592
|
+
releases: true,
|
|
31593
|
+
promotions: true,
|
|
31594
|
+
engineChannels: true,
|
|
31595
|
+
historyError: true
|
|
31596
|
+
});
|
|
31587
31597
|
var DeployPatchResultSchema = DeployStateSchema.pick({ scans: true });
|
|
31598
|
+
var DeploySecretsResultSchema = external_exports.object({
|
|
31599
|
+
environment: DeployEnvironmentSchema,
|
|
31600
|
+
secrets: external_exports.array(DeploySecretPresenceSchema).optional(),
|
|
31601
|
+
engineChannels: DeployEngineChannelsSchema.optional()
|
|
31602
|
+
}).strict();
|
|
31588
31603
|
var DeployReleaseResultSchema = external_exports.object({
|
|
31589
31604
|
sha: external_exports.string().min(1),
|
|
31590
31605
|
actionsUrl: external_exports.string().min(1),
|
|
@@ -33824,6 +33839,10 @@ var METHOD_DOCS = {
|
|
|
33824
33839
|
summary: "\u4E0A\u4E91\u9875\u9762\u8981\u7684\u5168\u90E8\uFF1A\u4ED3\u5E93\u7ED1\u5B9A\u72B6\u6001\uFF08git \u73B0\u7B97\uFF09\u3001\u626B\u63CF\u5386\u53F2\uFF08\u6BCF\u6761\u5E26\u6E05\u5355\u5FEB\u7167\uFF09\u3001\u53D1\u5E03\u5386\u53F2\uFF08\u6700\u540E\u4E00\u6761 = \u7EBF\u4E0A\u6B63\u8DD1\u7684\uFF09\u3001\u4ED3\u5E93 Secrets \u91CC\u5404\u53D8\u91CF\u540D\u586B\u8FC7\u6CA1\u6709\uFF08**\u53EA\u6709\u540D\u5B57\u548C\u65F6\u95F4\uFF0C\u6CA1\u6709\u503C**\uFF09\u3001\u4E00\u6761\u6D41\u6C34\u7EBF\u72B6\u6001\uFF08\u7F3A\u7701\u4ED3\u5E93\u6700\u65B0\u90A3\u6761\uFF1B`releaseHead` \u6307\u540D\u770B\u54EA\u6B21\u53D1\u5E03\u7684\uFF09\uFF1Bowner-only",
|
|
33825
33840
|
args: DeployGetArgsSchema
|
|
33826
33841
|
},
|
|
33842
|
+
"deploy:getLocal": {
|
|
33843
|
+
summary: "\u4E0A\u4E91\u9875\u8981\u7684**\u672C\u673A\u90E8\u5206**\uFF1A\u4ED3\u5E93\u7ED1\u5B9A\u72B6\u6001\u3001\u626B\u63CF\u5386\u53F2\u3001\u53D1\u5E03\u5386\u53F2\u3001promotion \u8BB0\u5F55\u3001GitHub \u8EAB\u4EFD\u72B6\u6001\u3001\u6A21\u578B\u8BA2\u9605\u6E20\u9053\u3002\u53EA\u8BFB\u672C\u673A\u6587\u4EF6\uFF0C**\u4E0D\u95EE GitHub Actions / gateway / \u98DE\u4E66**\uFF08\u6CA1\u6709\u6D41\u6C34\u7EBF run\u3001Secrets\u3001\u5728\u7EBF\u72B6\u6001\u3001\u4E0B\u7EBF run\uFF09\uFF0C\u4E5F\u4E0D\u89E6\u53D1\u4EFB\u4F55\u4F1A\u5199\u76D8\u7684\u8FDC\u7A0B\u526F\u4F5C\u7528\uFF1BGitHub \u767B\u5F55\u8EAB\u4EFD\u6CBF\u7528 20 \u79D2\u7F13\u5B58\uFF0C\u672A\u547D\u4E2D\u65F6\u95EE\u4E00\u6B21 GET /user\u3002\u626B\u63CF\u671F\u95F4\u8F6E\u8BE2\u3001persona \u5361\u7247\u7528\u5B83\uFF1B\u8981\u5B8C\u6574\u72B6\u6001\u8D70 deploy:get\uFF1Bowner-only",
|
|
33844
|
+
args: DeployPersonaArgsSchema
|
|
33845
|
+
},
|
|
33827
33846
|
"deploy:scan": {
|
|
33828
33847
|
summary: "\u8D77\u4E00\u6B21\u626B\u63CF\u3002**\u6CA1\u4ED3\u5E93\u5148\u5EFA\u4ED3**\uFF08GitHub REST \u5EFA\u5728\u7EC4\u7EC7\u4E0B\u3001\u79C1\u6709\uFF0Cgit \u63A8\u9996\u4E2A\u63D0\u4EA4\uFF1Btoken \u6765\u81EA\u672C\u673A git \u7684\u8EAB\u4EFD\uFF0C\u6CA1\u6388\u6743\u5148\u62D2\uFF09\u3002\u628A persona \u76EE\u5F55\u63D0\u4EA4\u5230\u672C\u5730\uFF08\u4E0D\u63A8\uFF09\u3001\u5728\u626B\u63CF\u5386\u53F2\u91CC\u8FFD\u52A0\u4E00\u6761\u3001\u8D77 persona-butler \u7684\u626B\u63CF\u4F1A\u8BDD\uFF1B\u6B63\u5728\u626B\u7684\u8BDD\u539F\u6837\u8FD4\u56DE\u4E0D\u8D77\u7B2C\u4E8C\u4E2A\u4F1A\u8BDD\u3002\u5E26 scanBase\uFF08hard / soft\uFF09\u6309\u8BE5\u6863\u4F4D\u626B\uFF08soft \u4E0D\u6210\u7ACB\u81EA\u52A8\u9000 hard\uFF09\uFF0C\u7F3A\u5E2D daemon \u81EA\u52A8\u5B9A\uFF1Bowner-only",
|
|
33829
33848
|
args: DeployScanArgsSchema
|
|
@@ -33833,22 +33852,22 @@ var METHOD_DOCS = {
|
|
|
33833
33852
|
args: DeployPatchArgsSchema
|
|
33834
33853
|
},
|
|
33835
33854
|
"deploy:putSecret": {
|
|
33836
|
-
summary: "\u628A\u4E00\u6761\u51ED\u636E\u7684\u503C\u5199\u8FDB\u4ED3\u5E93\u7684 GitHub Secrets\uFF08GitHub REST\uFF0C\u503C\u7528\u4ED3\u5E93\u516C\u94A5\u5C01\u7BB1\u540E\u4E0A\u4F20\uFF09\u3002**\u8FD9\u662F\u6E05\u5355\u51ED\u636E\u503C\u552F\u4E00\u7684\u5165\u53E3**\uFF08\u6A21\u578B\u8BA2\u9605\u8D70 deploy:setEngineAuth\uFF09\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\u3002env \u540D\u5FC5\u987B\u662F scanId \u90A3\u6B21\u6E05\u5355\u91CC\u8BE5\u51ED\u636E\u58F0\u660E\u8FC7\u7684\uFF1Bowner-only",
|
|
33855
|
+
summary: "\u628A\u4E00\u6761\u51ED\u636E\u7684\u503C\u5199\u8FDB\u4ED3\u5E93\u7684 GitHub Secrets\uFF08GitHub REST\uFF0C\u503C\u7528\u4ED3\u5E93\u516C\u94A5\u5C01\u7BB1\u540E\u4E0A\u4F20\uFF09\u3002**\u8FD9\u662F\u6E05\u5355\u51ED\u636E\u503C\u552F\u4E00\u7684\u5165\u53E3**\uFF08\u6A21\u578B\u8BA2\u9605\u8D70 deploy:setEngineAuth\uFF09\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\u3002env \u540D\u5FC5\u987B\u662F scanId \u90A3\u6B21\u6E05\u5355\u91CC\u8BE5\u51ED\u636E\u58F0\u660E\u8FC7\u7684\u3002\u53EA\u56DE\u5199\u5165\u73AF\u5883\u73B0\u67E5\u7684\u540D\u5B57\u6E05\u5355 { environment, secrets }\uFF08secrets \u7F3A\u5E2D = \u5199\u6210\u529F\u4F46\u56DE\u67E5\u5931\u8D25\uFF0C\u8C03\u7528\u65B9\u81EA\u5DF1 deploy:get\uFF09\uFF0C\u4E0D\u56DE\u6574\u4EFD deploy:get \u72B6\u6001\uFF1Bowner-only",
|
|
33837
33856
|
args: DeployPutSecretArgsSchema
|
|
33838
33857
|
},
|
|
33839
33858
|
"deploy:setEngineAuth": {
|
|
33840
|
-
summary: "\u6A21\u578B\u8BA2\u9605\uFF08\u4E91\u4E0A\u8DD1\u8FD9\u4E2A persona \u82B1\u8C01\u7684\u6A21\u578B\u989D\u5EA6\uFF09\uFF1Aauth = { baseUrl, apiKey } \u5199\u8FDB\u4ED3\u5E93 GitHub Secrets \u7684 CLAWD_ENGINE_BASE_URL / CLAWD_ENGINE_API_KEY\uFF08\u5730\u5740\u89C4\u8303\u6210 \u2026/v1\uFF09\uFF0Cnull = \u5220\u8FD9\u4E24\u6761\u3001\u6539\u56DE\u5E73\u53F0\u9ED8\u8BA4\u3002\u4E0B\u6B21\u53D1\u5E03\u751F\u6548\u3002\u540C putSecret \u7684\u7EAA\u5F8B\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\uFF1B\u56DE deploy:get \
|
|
33859
|
+
summary: "\u6A21\u578B\u8BA2\u9605\uFF08\u4E91\u4E0A\u8DD1\u8FD9\u4E2A persona \u82B1\u8C01\u7684\u6A21\u578B\u989D\u5EA6\uFF09\uFF1Aauth = { baseUrl, apiKey } \u5199\u8FDB\u4ED3\u5E93 GitHub Secrets \u7684 CLAWD_ENGINE_BASE_URL / CLAWD_ENGINE_API_KEY\uFF08\u5730\u5740\u89C4\u8303\u6210 \u2026/v1\uFF09\uFF0Cnull = \u5220\u8FD9\u4E24\u6761\u3001\u6539\u56DE\u5E73\u53F0\u9ED8\u8BA4\u3002\u4E0B\u6B21\u53D1\u5E03\u751F\u6548\u3002\u540C putSecret \u7684\u7EAA\u5F8B\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u503C\u3001\u672C\u673A\u4E0D\u843D\u76D8\uFF1B\u53EA\u56DE\u5199\u5165\u73AF\u5883\u73B0\u67E5\u7684\u540D\u5B57\u6E05\u5355\u548C engineChannels\uFF08{ environment, secrets?, engineChannels? }\uFF09\uFF0C\u4E0D\u56DE\u6574\u4EFD deploy:get \u72B6\u6001\uFF1Bowner-only\u3001human-only",
|
|
33841
33860
|
args: DeploySetEngineAuthArgsSchema,
|
|
33842
33861
|
argsConstraints: {
|
|
33843
33862
|
anyOf: [{ required: ["channelId"] }, { required: ["auth"] }]
|
|
33844
33863
|
}
|
|
33845
33864
|
},
|
|
33846
33865
|
"deploy:reportFinding": {
|
|
33847
|
-
summary: "\u626B\u63CF\u4E2D\u7684 butler \u9010\u6761\u4E0A\u62A5\u4E00\u4E2A\u53D1\u73B0\uFF08cli / secret / asset\uFF09\u3002**\u8FB9\u626B\u8FB9\u62A5**\uFF0C\u9875\u9762\u968F\u4E4B\u4E00\u70B9\u70B9\u586B\u5145\uFF1B\u540C (kind,name) \u91CD\u590D\u4E0A\u62A5\u5373\u8986\u76D6\
|
|
33866
|
+
summary: "\u626B\u63CF\u4E2D\u7684 butler \u9010\u6761\u4E0A\u62A5\u4E00\u4E2A\u53D1\u73B0\uFF08cli / secret / asset\uFF09\u3002**\u8FB9\u626B\u8FB9\u62A5**\uFF0C\u9875\u9762\u968F\u4E4B\u4E00\u70B9\u70B9\u586B\u5145\uFF1B\u540C (kind,name) \u91CD\u590D\u4E0A\u62A5\u5373\u8986\u76D6\u3002\u53EA\u56DE\u626B\u63CF\u5386\u53F2 `scans`\uFF08\u540C deploy:patch\uFF09\uFF0C\u4E0D\u56DE\u6574\u4EFD\u72B6\u6001\uFF1Bowner-only\u2014\u2014butler \u4F1A\u8BDD\u672C\u8EAB\u8DD1\u5728 owner \u6A21\u5F0F",
|
|
33848
33867
|
args: DeployReportFindingArgsSchema
|
|
33849
33868
|
},
|
|
33850
33869
|
"deploy:finishScan": {
|
|
33851
|
-
summary: "butler \u6536\u5C3E\uFF1A\u7ED9\u51FA\u5B58\u7591\u9879\uFF0C\u626B\u63CF\u8BB0\u5F55\u4ECE scanning \u8F6C done\u3002\u6CA1\u8C03\u5230\u5B83\u5C31\u7B49\u4E8E\u6CA1\u626B\u5B8C\u2014\u2014butler \u4F1A\u8BDD\u7ED3\u675F\u65F6\u8BB0\u5F55\u8FD8\u505C\u5728 scanning\uFF0Cdaemon \u636E\u6B64\u5224 failed\uFF1Bowner-only",
|
|
33870
|
+
summary: "butler \u6536\u5C3E\uFF1A\u7ED9\u51FA\u5B58\u7591\u9879\uFF0C\u626B\u63CF\u8BB0\u5F55\u4ECE scanning \u8F6C done\u3002\u6CA1\u8C03\u5230\u5B83\u5C31\u7B49\u4E8E\u6CA1\u626B\u5B8C\u2014\u2014butler \u4F1A\u8BDD\u7ED3\u675F\u65F6\u8BB0\u5F55\u8FD8\u505C\u5728 scanning\uFF0Cdaemon \u636E\u6B64\u5224 failed\u3002\u53EA\u56DE\u626B\u63CF\u5386\u53F2 `scans`\uFF1Bowner-only",
|
|
33852
33871
|
args: DeployFinishScanArgsSchema
|
|
33853
33872
|
},
|
|
33854
33873
|
"deploy:release": {
|