@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.
@@ -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 \u540C\u5F62\u7684\u72B6\u6001\uFF1Bowner-only\u3001human-only",
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\u3002owner-only\u2014\u2014butler \u4F1A\u8BDD\u672C\u8EAB\u8DD1\u5728 owner \u6A21\u5F0F",
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 \u540C\u5F62\u7684\u72B6\u6001\uFF1Bowner-only\u3001human-only",
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\u3002owner-only\u2014\u2014butler \u4F1A\u8BDD\u672C\u8EAB\u8DD1\u5728 owner \u6A21\u5F0F",
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": {
@@ -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
- 可执行、问它的版本,写进返回值里那条的 `version`(同时落 `localVersion`)。本机是啥就上云啥,这是硬约束。
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>" }`,从返回的 view 里读 daemon 定下的 `version`;
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 \u540C\u5F62\u7684\u72B6\u6001\uFF1Bowner-only\u3001human-only",
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\u3002owner-only\u2014\u2014butler \u4F1A\u8BDD\u672C\u8EAB\u8DD1\u5728 owner \u6A21\u5F0F",
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": {