@clawos-dev/clawd 0.2.749 → 0.2.750
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/a2a/mcp-server.cjs +6 -8
- package/dist/app-builder-plugin/mcp-server.cjs +6 -8
- package/dist/cli.cjs +62 -32
- package/dist/cloud-persona-conversations.html +19 -19
- package/dist/owner-ui/assets/{owner-U-yLHTEW.js → owner-Cqc9GblZ.js} +214 -214
- package/dist/owner-ui/owner.html +1 -1
- package/dist/persona-defaults/persona-app-builder/mcp/clawd-app-builder/mcp-server.cjs +6 -8
- package/dist/persona-defaults/persona-dataclaw-builder/mcp/clawd-app-builder/mcp-server.cjs +6 -8
- package/dist/share-ui/assets/{guest-BaUou2kw.js → guest-Dnn558RQ.js} +124 -124
- package/dist/share-ui/guest.html +1 -1
- package/package.json +1 -1
package/dist/a2a/mcp-server.cjs
CHANGED
|
@@ -21979,13 +21979,14 @@ var DeployEditLockSchema = external_exports.object({
|
|
|
21979
21979
|
acquiredAt: external_exports.string(),
|
|
21980
21980
|
expiresAt: external_exports.string()
|
|
21981
21981
|
}).strict();
|
|
21982
|
-
var DeployRepoAccessSchema = external_exports.enum(["invited", "active"]);
|
|
21982
|
+
var DeployRepoAccessSchema = external_exports.enum(["invited", "active", "failed"]);
|
|
21983
21983
|
var DeployCollaboratorSchema = external_exports.object({
|
|
21984
21984
|
unionId: external_exports.string(),
|
|
21985
21985
|
displayName: external_exports.string(),
|
|
21986
21986
|
githubLogin: external_exports.string().nullable(),
|
|
21987
21987
|
createdAt: external_exports.string(),
|
|
21988
|
-
repoAccess: DeployRepoAccessSchema.optional()
|
|
21988
|
+
repoAccess: DeployRepoAccessSchema.optional(),
|
|
21989
|
+
repoError: external_exports.string().optional()
|
|
21989
21990
|
}).strict();
|
|
21990
21991
|
var DeployAccessSchema = external_exports.object({
|
|
21991
21992
|
role: DeployPersonaRoleSchema,
|
|
@@ -21995,9 +21996,6 @@ var DeployAccessSchema = external_exports.object({
|
|
|
21995
21996
|
/** 有协作者的 persona 才走锁 */
|
|
21996
21997
|
lockRequired: external_exports.boolean()
|
|
21997
21998
|
}).strict();
|
|
21998
|
-
var DeployCollaboratorAddResultSchema = DeployAccessSchema.extend({
|
|
21999
|
-
production: external_exports.object({ ok: external_exports.boolean(), reason: external_exports.string().optional() }).strict()
|
|
22000
|
-
}).strict();
|
|
22001
21999
|
var DeployCollaboratorAddArgsSchema = DeployPersonaArgsSchema.extend({ deviceId: external_exports.string().min(1) }).strict();
|
|
22002
22000
|
var DeployCollaboratorRemoveArgsSchema = DeployPersonaArgsSchema.extend({ unionId: external_exports.string().min(1) }).strict();
|
|
22003
22001
|
var DeployEditLockArgsSchema = DeployPersonaArgsSchema.extend({ action: external_exports.enum(["acquire", "renew", "release"]) }).strict();
|
|
@@ -24210,7 +24208,7 @@ var METHOD_DOCS = {
|
|
|
24210
24208
|
args: DeployPersonaArgsSchema
|
|
24211
24209
|
},
|
|
24212
24210
|
"deploy:collaboratorAdd": {
|
|
24213
|
-
summary: "\u52A0\u534F\u4F5C\u8005\uFF08\u4EC5 persona \u7684\u53D1\u5E03\u8005\uFF09\uFF1A\u5165\u53C2\u662F\u8054\u7CFB\u4EBA\u7684 deviceId\uFF0C\u4E2D\u5FC3\u7ECF\u8BBE\u5907\u7ED1\u5B9A\u89E3\u6790\u98DE\u4E66\u8EAB\u4EFD\uFF0C\u5BF9\u65B9\u8FD8\u6CA1\u7ED1\u98DE\u4E66\u8D26\u53F7\u4F1A\u62D2\u3002\
|
|
24211
|
+
summary: "\u52A0\u534F\u4F5C\u8005\uFF08\u4EC5 persona \u7684\u53D1\u5E03\u8005\uFF09\uFF1A\u5165\u53C2\u662F\u8054\u7CFB\u4EBA\u7684 deviceId\uFF0C\u4E2D\u5FC3\u7ECF\u8BBE\u5907\u7ED1\u5B9A\u89E3\u6790\u98DE\u4E66\u8EAB\u4EFD\uFF0C\u5BF9\u65B9\u8FD8\u6CA1\u7ED1\u98DE\u4E66\u8D26\u53F7\u4F1A\u62D2\u3002\u6D4B\u8BD5\u3001\u6B63\u5F0F\u4E24\u4E2A\u73AF\u5883\u7684\u4E2D\u5FC3\u90FD\u767B\u8BB0\u6210\u529F\u624D\u7B97\u52A0\u4E0A\uFF1A\u6B63\u5F0F\u73AF\u5883\u6CA1\u767B\u8BB0\u6210\uFF08persona \u8FD8\u6CA1\u4E0A\u7EBF\u8FC7\uFF0C\u53D1\u5E03\u8005\u5728\u6B63\u5F0F\u73AF\u5883\u91CC\u8FD8\u6CA1\u6709\u8BB0\u5F55\uFF09\u5C31\u64A4\u56DE\u6D4B\u8BD5\u73AF\u5883\u90A3\u4E00\u4EFD\u5E76\u62A5\u9519\uFF0C\u4E0D\u7559\u534A\u622A\u72B6\u6001\u3002\u767B\u8BB0\u5B8C\u987A\u5E26\u5904\u7406\u4ED3\u5E93\u6743\u9650\uFF08\u89C1 deploy:collaboratorSync\uFF09\u3002\u56DE\u52A0\u5B8C\u4E4B\u540E\u7684 deploy:access \u89C6\u56FE\uFF08\u534F\u4F5C\u8005\u5E26 repoAccess\uFF09\uFF1Bowner-only\u3001human-only",
|
|
24214
24212
|
args: DeployCollaboratorAddArgsSchema
|
|
24215
24213
|
},
|
|
24216
24214
|
"deploy:collaboratorRemove": {
|
|
@@ -24218,7 +24216,7 @@ var METHOD_DOCS = {
|
|
|
24218
24216
|
args: DeployCollaboratorRemoveArgsSchema
|
|
24219
24217
|
},
|
|
24220
24218
|
"deploy:collaboratorSync": {
|
|
24221
|
-
summary: "\u4EC5\u53D1\u5E03\u8005\uFF1A\
|
|
24219
|
+
summary: "\u4EC5\u53D1\u5E03\u8005\uFF1A\u9010\u4E2A\u5904\u7406\u534F\u4F5C\u8005\u7684\u4ED3\u5E93\u6743\u9650\u2014\u2014\u5148\u67E5\u5BF9\u65B9 GitHub \u8D26\u53F7\u5BF9\u4ED3\u5E93\u662F\u5426\u5DF2\u6709\u5199\u6743\u9650\uFF08\u6709\u5C31\u4E0D\u9080\u8BF7\uFF09\uFF0C\u6CA1\u6709\u624D\u9080\u8BF7\u4E3A\u4ED3\u5E93\u534F\u4F5C\u8005\uFF08write\uFF0C\u5E42\u7B49\uFF09\uFF1B\u6CA1\u4E0A\u62A5 GitHub \u767B\u5F55\u540D\u7684\u8DF3\u8FC7\uFF08\u5BF9\u65B9\u5173\u8054\u540E\u518D\u540C\u6B65\u5373\u8865\u53D1\uFF09\u3002\u56DE deploy:access \u89C6\u56FE\uFF0C\u534F\u4F5C\u8005\u5E26 repoAccess\uFF1Aactive = \u5DF2\u6709\u5199\u6743\u9650\uFF1Binvited = \u9080\u8BF7\u5DF2\u53D1\u3001\u7B49\u5BF9\u65B9\u63A5\u53D7\uFF1Bfailed = \u5931\u8D25\uFF08\u539F\u56E0\u5728 repoError\uFF09\uFF1B\u7F3A\u5E2D = \u5BF9\u65B9\u8FD8\u6CA1\u5173\u8054 GitHub\uFF1Bowner-only",
|
|
24222
24220
|
args: DeployPersonaArgsSchema
|
|
24223
24221
|
},
|
|
24224
24222
|
"deploy:editLock": {
|
|
@@ -24226,7 +24224,7 @@ var METHOD_DOCS = {
|
|
|
24226
24224
|
args: DeployEditLockArgsSchema
|
|
24227
24225
|
},
|
|
24228
24226
|
"deploy:takeover": {
|
|
24229
|
-
summary: "\u534F\u4F5C\u8005\u63A5\u624B\uFF1A\u672C\u673A\u6CA1\u6709\u8FD9\u4E2A persona \u65F6\uFF0C\u7528\u672C\u673A GitHub \u8EAB\u4EFD\u628A ottin4ttc/<personaId> clone \u6210\u672C\u5730 persona \u76EE\u5F55\uFF0C\u4E4B\u540E\u6CBF\u7528 deploy:*\u3002\u672C\u673A\u5DF2\u6709\u540C\u540D persona \u5C31\u62D2\uFF1B\u8981\u5148\u5728\u4ED3\u5E93\u91CC\u88AB\u9080\u8BF7\u5E76\u63A5\u53D7\uFF1Bowner-only\u3001human-only",
|
|
24227
|
+
summary: "\u534F\u4F5C\u8005\u63A5\u624B\uFF1A\u672C\u673A\u6CA1\u6709\u8FD9\u4E2A persona \u65F6\uFF0C\u7528\u672C\u673A GitHub \u8EAB\u4EFD\u628A ottin4ttc/<personaId> clone \u6210\u672C\u5730 persona \u76EE\u5F55\uFF0C\u4E4B\u540E\u6CBF\u7528 deploy:*\u3002\u672C\u673A\u5DF2\u6709\u540C\u540D persona \u5C31\u62D2\uFF08\u4E0D\u8986\u76D6\u3001\u4E0D\u5408\u5E76\uFF09\uFF1B\u8981\u5148\u5728\u4ED3\u5E93\u91CC\u88AB\u9080\u8BF7\u5E76\u63A5\u53D7\uFF1Bowner-only\u3001human-only",
|
|
24230
24228
|
args: DeployPersonaArgsSchema
|
|
24231
24229
|
},
|
|
24232
24230
|
"githubAuth:get": {
|
|
@@ -31907,13 +31907,14 @@ var DeployEditLockSchema = external_exports.object({
|
|
|
31907
31907
|
acquiredAt: external_exports.string(),
|
|
31908
31908
|
expiresAt: external_exports.string()
|
|
31909
31909
|
}).strict();
|
|
31910
|
-
var DeployRepoAccessSchema = external_exports.enum(["invited", "active"]);
|
|
31910
|
+
var DeployRepoAccessSchema = external_exports.enum(["invited", "active", "failed"]);
|
|
31911
31911
|
var DeployCollaboratorSchema = external_exports.object({
|
|
31912
31912
|
unionId: external_exports.string(),
|
|
31913
31913
|
displayName: external_exports.string(),
|
|
31914
31914
|
githubLogin: external_exports.string().nullable(),
|
|
31915
31915
|
createdAt: external_exports.string(),
|
|
31916
|
-
repoAccess: DeployRepoAccessSchema.optional()
|
|
31916
|
+
repoAccess: DeployRepoAccessSchema.optional(),
|
|
31917
|
+
repoError: external_exports.string().optional()
|
|
31917
31918
|
}).strict();
|
|
31918
31919
|
var DeployAccessSchema = external_exports.object({
|
|
31919
31920
|
role: DeployPersonaRoleSchema,
|
|
@@ -31923,9 +31924,6 @@ var DeployAccessSchema = external_exports.object({
|
|
|
31923
31924
|
/** 有协作者的 persona 才走锁 */
|
|
31924
31925
|
lockRequired: external_exports.boolean()
|
|
31925
31926
|
}).strict();
|
|
31926
|
-
var DeployCollaboratorAddResultSchema = DeployAccessSchema.extend({
|
|
31927
|
-
production: external_exports.object({ ok: external_exports.boolean(), reason: external_exports.string().optional() }).strict()
|
|
31928
|
-
}).strict();
|
|
31929
31927
|
var DeployCollaboratorAddArgsSchema = DeployPersonaArgsSchema.extend({ deviceId: external_exports.string().min(1) }).strict();
|
|
31930
31928
|
var DeployCollaboratorRemoveArgsSchema = DeployPersonaArgsSchema.extend({ unionId: external_exports.string().min(1) }).strict();
|
|
31931
31929
|
var DeployEditLockArgsSchema = DeployPersonaArgsSchema.extend({ action: external_exports.enum(["acquire", "renew", "release"]) }).strict();
|
|
@@ -34138,7 +34136,7 @@ var METHOD_DOCS = {
|
|
|
34138
34136
|
args: DeployPersonaArgsSchema
|
|
34139
34137
|
},
|
|
34140
34138
|
"deploy:collaboratorAdd": {
|
|
34141
|
-
summary: "\u52A0\u534F\u4F5C\u8005\uFF08\u4EC5 persona \u7684\u53D1\u5E03\u8005\uFF09\uFF1A\u5165\u53C2\u662F\u8054\u7CFB\u4EBA\u7684 deviceId\uFF0C\u4E2D\u5FC3\u7ECF\u8BBE\u5907\u7ED1\u5B9A\u89E3\u6790\u98DE\u4E66\u8EAB\u4EFD\uFF0C\u5BF9\u65B9\u8FD8\u6CA1\u7ED1\u98DE\u4E66\u8D26\u53F7\u4F1A\u62D2\u3002\
|
|
34139
|
+
summary: "\u52A0\u534F\u4F5C\u8005\uFF08\u4EC5 persona \u7684\u53D1\u5E03\u8005\uFF09\uFF1A\u5165\u53C2\u662F\u8054\u7CFB\u4EBA\u7684 deviceId\uFF0C\u4E2D\u5FC3\u7ECF\u8BBE\u5907\u7ED1\u5B9A\u89E3\u6790\u98DE\u4E66\u8EAB\u4EFD\uFF0C\u5BF9\u65B9\u8FD8\u6CA1\u7ED1\u98DE\u4E66\u8D26\u53F7\u4F1A\u62D2\u3002\u6D4B\u8BD5\u3001\u6B63\u5F0F\u4E24\u4E2A\u73AF\u5883\u7684\u4E2D\u5FC3\u90FD\u767B\u8BB0\u6210\u529F\u624D\u7B97\u52A0\u4E0A\uFF1A\u6B63\u5F0F\u73AF\u5883\u6CA1\u767B\u8BB0\u6210\uFF08persona \u8FD8\u6CA1\u4E0A\u7EBF\u8FC7\uFF0C\u53D1\u5E03\u8005\u5728\u6B63\u5F0F\u73AF\u5883\u91CC\u8FD8\u6CA1\u6709\u8BB0\u5F55\uFF09\u5C31\u64A4\u56DE\u6D4B\u8BD5\u73AF\u5883\u90A3\u4E00\u4EFD\u5E76\u62A5\u9519\uFF0C\u4E0D\u7559\u534A\u622A\u72B6\u6001\u3002\u767B\u8BB0\u5B8C\u987A\u5E26\u5904\u7406\u4ED3\u5E93\u6743\u9650\uFF08\u89C1 deploy:collaboratorSync\uFF09\u3002\u56DE\u52A0\u5B8C\u4E4B\u540E\u7684 deploy:access \u89C6\u56FE\uFF08\u534F\u4F5C\u8005\u5E26 repoAccess\uFF09\uFF1Bowner-only\u3001human-only",
|
|
34142
34140
|
args: DeployCollaboratorAddArgsSchema
|
|
34143
34141
|
},
|
|
34144
34142
|
"deploy:collaboratorRemove": {
|
|
@@ -34146,7 +34144,7 @@ var METHOD_DOCS = {
|
|
|
34146
34144
|
args: DeployCollaboratorRemoveArgsSchema
|
|
34147
34145
|
},
|
|
34148
34146
|
"deploy:collaboratorSync": {
|
|
34149
|
-
summary: "\u4EC5\u53D1\u5E03\u8005\uFF1A\
|
|
34147
|
+
summary: "\u4EC5\u53D1\u5E03\u8005\uFF1A\u9010\u4E2A\u5904\u7406\u534F\u4F5C\u8005\u7684\u4ED3\u5E93\u6743\u9650\u2014\u2014\u5148\u67E5\u5BF9\u65B9 GitHub \u8D26\u53F7\u5BF9\u4ED3\u5E93\u662F\u5426\u5DF2\u6709\u5199\u6743\u9650\uFF08\u6709\u5C31\u4E0D\u9080\u8BF7\uFF09\uFF0C\u6CA1\u6709\u624D\u9080\u8BF7\u4E3A\u4ED3\u5E93\u534F\u4F5C\u8005\uFF08write\uFF0C\u5E42\u7B49\uFF09\uFF1B\u6CA1\u4E0A\u62A5 GitHub \u767B\u5F55\u540D\u7684\u8DF3\u8FC7\uFF08\u5BF9\u65B9\u5173\u8054\u540E\u518D\u540C\u6B65\u5373\u8865\u53D1\uFF09\u3002\u56DE deploy:access \u89C6\u56FE\uFF0C\u534F\u4F5C\u8005\u5E26 repoAccess\uFF1Aactive = \u5DF2\u6709\u5199\u6743\u9650\uFF1Binvited = \u9080\u8BF7\u5DF2\u53D1\u3001\u7B49\u5BF9\u65B9\u63A5\u53D7\uFF1Bfailed = \u5931\u8D25\uFF08\u539F\u56E0\u5728 repoError\uFF09\uFF1B\u7F3A\u5E2D = \u5BF9\u65B9\u8FD8\u6CA1\u5173\u8054 GitHub\uFF1Bowner-only",
|
|
34150
34148
|
args: DeployPersonaArgsSchema
|
|
34151
34149
|
},
|
|
34152
34150
|
"deploy:editLock": {
|
|
@@ -34154,7 +34152,7 @@ var METHOD_DOCS = {
|
|
|
34154
34152
|
args: DeployEditLockArgsSchema
|
|
34155
34153
|
},
|
|
34156
34154
|
"deploy:takeover": {
|
|
34157
|
-
summary: "\u534F\u4F5C\u8005\u63A5\u624B\uFF1A\u672C\u673A\u6CA1\u6709\u8FD9\u4E2A persona \u65F6\uFF0C\u7528\u672C\u673A GitHub \u8EAB\u4EFD\u628A ottin4ttc/<personaId> clone \u6210\u672C\u5730 persona \u76EE\u5F55\uFF0C\u4E4B\u540E\u6CBF\u7528 deploy:*\u3002\u672C\u673A\u5DF2\u6709\u540C\u540D persona \u5C31\u62D2\uFF1B\u8981\u5148\u5728\u4ED3\u5E93\u91CC\u88AB\u9080\u8BF7\u5E76\u63A5\u53D7\uFF1Bowner-only\u3001human-only",
|
|
34155
|
+
summary: "\u534F\u4F5C\u8005\u63A5\u624B\uFF1A\u672C\u673A\u6CA1\u6709\u8FD9\u4E2A persona \u65F6\uFF0C\u7528\u672C\u673A GitHub \u8EAB\u4EFD\u628A ottin4ttc/<personaId> clone \u6210\u672C\u5730 persona \u76EE\u5F55\uFF0C\u4E4B\u540E\u6CBF\u7528 deploy:*\u3002\u672C\u673A\u5DF2\u6709\u540C\u540D persona \u5C31\u62D2\uFF08\u4E0D\u8986\u76D6\u3001\u4E0D\u5408\u5E76\uFF09\uFF1B\u8981\u5148\u5728\u4ED3\u5E93\u91CC\u88AB\u9080\u8BF7\u5E76\u63A5\u53D7\uFF1Bowner-only\u3001human-only",
|
|
34158
34156
|
args: DeployPersonaArgsSchema
|
|
34159
34157
|
},
|
|
34160
34158
|
"githubAuth:get": {
|
package/dist/cli.cjs
CHANGED
|
@@ -6662,7 +6662,7 @@ function changedConfigKeys(a2, b3) {
|
|
|
6662
6662
|
function repoSlug(url) {
|
|
6663
6663
|
return url.trim().replace(/^git@[^:]+:/, "").replace(/^https?:\/\/[^/]+\//, "").replace(/\.git$/, "");
|
|
6664
6664
|
}
|
|
6665
|
-
var DeployFileSchema, SCAN_BASE_KINDS, ScanBaseKindSchema, DeployScanStatusSchema, DeployScanSchema, DeployReleasedSchema, DEPLOY_PROMOTION_PHASES, DeployPromotionSchema, DeployEngineChannelSchema, DeployEngineChannelsSchema, DeployScanFileSchema, DeployRepoSchema, DeploySecretPresenceSchema, ENGINE_AUTH_SECRETS, ENGINE_AUTH_PARTIAL_BLOCKER, DEPLOY_STAGE_STATUSES, DeployStageStatusSchema, DEPLOY_VERIFY_STAGE, DEPLOY_STAGE_KEYS, DeployStageKeySchema, DeployJobSchema, DeployRunSchema, CLOUD_ENGINES, DeployUnpublishRunSchema, ReservationStateSchema, DeployCloudStatusSchema, DeployStateSchema, DeployUnpublishResultSchema, DeployLocalStateSchema, DeployPatchResultSchema, DeploySecretsResultSchema, DEPLOY_WORKFLOW_VERSION, workflowVersionForConfigKeys, DEFAULT_TASK_CONCURRENCY, CONFIG_KEYS, DeployReleaseResultSchema, DeployPersonaArgsSchema, DeployPersonaRoleSchema, DeployEditLockSchema, DeployRepoAccessSchema, DeployCollaboratorSchema, DeployAccessSchema,
|
|
6665
|
+
var DeployFileSchema, SCAN_BASE_KINDS, ScanBaseKindSchema, DeployScanStatusSchema, DeployScanSchema, DeployReleasedSchema, DEPLOY_PROMOTION_PHASES, DeployPromotionSchema, DeployEngineChannelSchema, DeployEngineChannelsSchema, DeployScanFileSchema, DeployRepoSchema, DeploySecretPresenceSchema, ENGINE_AUTH_SECRETS, ENGINE_AUTH_PARTIAL_BLOCKER, DEPLOY_STAGE_STATUSES, DeployStageStatusSchema, DEPLOY_VERIFY_STAGE, DEPLOY_STAGE_KEYS, DeployStageKeySchema, DeployJobSchema, DeployRunSchema, CLOUD_ENGINES, DeployUnpublishRunSchema, ReservationStateSchema, DeployCloudStatusSchema, DeployStateSchema, DeployUnpublishResultSchema, DeployLocalStateSchema, DeployPatchResultSchema, DeploySecretsResultSchema, DEPLOY_WORKFLOW_VERSION, workflowVersionForConfigKeys, DEFAULT_TASK_CONCURRENCY, CONFIG_KEYS, DeployReleaseResultSchema, DeployPersonaArgsSchema, DeployPersonaRoleSchema, DeployEditLockSchema, DeployRepoAccessSchema, DeployCollaboratorSchema, DeployAccessSchema, DeployCollaboratorAddArgsSchema, DeployCollaboratorRemoveArgsSchema, DeployEditLockArgsSchema, DeployEditLockResultSchema, DeployTakeoverResultSchema, DeployGetArgsSchema, DeployScanArgsSchema, DeployReleaseArgsSchema, DeployConfirmTestArgsSchema, DeployPromoteArgsSchema, DeployApplyConfigArgsSchema, DeployOpenTestArgsSchema, DeployEnvironmentArgsSchema, DeployConfirmTestResultSchema, DeployPromoteResultSchema, DeployOpenTestResultSchema, DeployPatchArgsSchema, DeployPutSecretArgsSchema, DeploySetEngineAuthArgsSchema, DeployRerunJobArgsSchema, DEPLOY_STALE_BASE_ERROR, DeployReportFindingArgsSchema, DeployFinishScanArgsSchema, PERSONA_REPO_ORG;
|
|
6666
6666
|
var init_deploy_schemas = __esm({
|
|
6667
6667
|
"../protocol/src/deploy-schemas.ts"() {
|
|
6668
6668
|
"use strict";
|
|
@@ -6894,13 +6894,14 @@ var init_deploy_schemas = __esm({
|
|
|
6894
6894
|
acquiredAt: external_exports.string(),
|
|
6895
6895
|
expiresAt: external_exports.string()
|
|
6896
6896
|
}).strict();
|
|
6897
|
-
DeployRepoAccessSchema = external_exports.enum(["invited", "active"]);
|
|
6897
|
+
DeployRepoAccessSchema = external_exports.enum(["invited", "active", "failed"]);
|
|
6898
6898
|
DeployCollaboratorSchema = external_exports.object({
|
|
6899
6899
|
unionId: external_exports.string(),
|
|
6900
6900
|
displayName: external_exports.string(),
|
|
6901
6901
|
githubLogin: external_exports.string().nullable(),
|
|
6902
6902
|
createdAt: external_exports.string(),
|
|
6903
|
-
repoAccess: DeployRepoAccessSchema.optional()
|
|
6903
|
+
repoAccess: DeployRepoAccessSchema.optional(),
|
|
6904
|
+
repoError: external_exports.string().optional()
|
|
6904
6905
|
}).strict();
|
|
6905
6906
|
DeployAccessSchema = external_exports.object({
|
|
6906
6907
|
role: DeployPersonaRoleSchema,
|
|
@@ -6910,9 +6911,6 @@ var init_deploy_schemas = __esm({
|
|
|
6910
6911
|
/** 有协作者的 persona 才走锁 */
|
|
6911
6912
|
lockRequired: external_exports.boolean()
|
|
6912
6913
|
}).strict();
|
|
6913
|
-
DeployCollaboratorAddResultSchema = DeployAccessSchema.extend({
|
|
6914
|
-
production: external_exports.object({ ok: external_exports.boolean(), reason: external_exports.string().optional() }).strict()
|
|
6915
|
-
}).strict();
|
|
6916
6914
|
DeployCollaboratorAddArgsSchema = DeployPersonaArgsSchema.extend({ deviceId: external_exports.string().min(1) }).strict();
|
|
6917
6915
|
DeployCollaboratorRemoveArgsSchema = DeployPersonaArgsSchema.extend({ unionId: external_exports.string().min(1) }).strict();
|
|
6918
6916
|
DeployEditLockArgsSchema = DeployPersonaArgsSchema.extend({ action: external_exports.enum(["acquire", "renew", "release"]) }).strict();
|
|
@@ -9433,7 +9431,7 @@ var init_methods = __esm({
|
|
|
9433
9431
|
args: DeployPersonaArgsSchema
|
|
9434
9432
|
},
|
|
9435
9433
|
"deploy:collaboratorAdd": {
|
|
9436
|
-
summary: "\u52A0\u534F\u4F5C\u8005\uFF08\u4EC5 persona \u7684\u53D1\u5E03\u8005\uFF09\uFF1A\u5165\u53C2\u662F\u8054\u7CFB\u4EBA\u7684 deviceId\uFF0C\u4E2D\u5FC3\u7ECF\u8BBE\u5907\u7ED1\u5B9A\u89E3\u6790\u98DE\u4E66\u8EAB\u4EFD\uFF0C\u5BF9\u65B9\u8FD8\u6CA1\u7ED1\u98DE\u4E66\u8D26\u53F7\u4F1A\u62D2\u3002\
|
|
9434
|
+
summary: "\u52A0\u534F\u4F5C\u8005\uFF08\u4EC5 persona \u7684\u53D1\u5E03\u8005\uFF09\uFF1A\u5165\u53C2\u662F\u8054\u7CFB\u4EBA\u7684 deviceId\uFF0C\u4E2D\u5FC3\u7ECF\u8BBE\u5907\u7ED1\u5B9A\u89E3\u6790\u98DE\u4E66\u8EAB\u4EFD\uFF0C\u5BF9\u65B9\u8FD8\u6CA1\u7ED1\u98DE\u4E66\u8D26\u53F7\u4F1A\u62D2\u3002\u6D4B\u8BD5\u3001\u6B63\u5F0F\u4E24\u4E2A\u73AF\u5883\u7684\u4E2D\u5FC3\u90FD\u767B\u8BB0\u6210\u529F\u624D\u7B97\u52A0\u4E0A\uFF1A\u6B63\u5F0F\u73AF\u5883\u6CA1\u767B\u8BB0\u6210\uFF08persona \u8FD8\u6CA1\u4E0A\u7EBF\u8FC7\uFF0C\u53D1\u5E03\u8005\u5728\u6B63\u5F0F\u73AF\u5883\u91CC\u8FD8\u6CA1\u6709\u8BB0\u5F55\uFF09\u5C31\u64A4\u56DE\u6D4B\u8BD5\u73AF\u5883\u90A3\u4E00\u4EFD\u5E76\u62A5\u9519\uFF0C\u4E0D\u7559\u534A\u622A\u72B6\u6001\u3002\u767B\u8BB0\u5B8C\u987A\u5E26\u5904\u7406\u4ED3\u5E93\u6743\u9650\uFF08\u89C1 deploy:collaboratorSync\uFF09\u3002\u56DE\u52A0\u5B8C\u4E4B\u540E\u7684 deploy:access \u89C6\u56FE\uFF08\u534F\u4F5C\u8005\u5E26 repoAccess\uFF09\uFF1Bowner-only\u3001human-only",
|
|
9437
9435
|
args: DeployCollaboratorAddArgsSchema
|
|
9438
9436
|
},
|
|
9439
9437
|
"deploy:collaboratorRemove": {
|
|
@@ -9441,7 +9439,7 @@ var init_methods = __esm({
|
|
|
9441
9439
|
args: DeployCollaboratorRemoveArgsSchema
|
|
9442
9440
|
},
|
|
9443
9441
|
"deploy:collaboratorSync": {
|
|
9444
|
-
summary: "\u4EC5\u53D1\u5E03\u8005\uFF1A\
|
|
9442
|
+
summary: "\u4EC5\u53D1\u5E03\u8005\uFF1A\u9010\u4E2A\u5904\u7406\u534F\u4F5C\u8005\u7684\u4ED3\u5E93\u6743\u9650\u2014\u2014\u5148\u67E5\u5BF9\u65B9 GitHub \u8D26\u53F7\u5BF9\u4ED3\u5E93\u662F\u5426\u5DF2\u6709\u5199\u6743\u9650\uFF08\u6709\u5C31\u4E0D\u9080\u8BF7\uFF09\uFF0C\u6CA1\u6709\u624D\u9080\u8BF7\u4E3A\u4ED3\u5E93\u534F\u4F5C\u8005\uFF08write\uFF0C\u5E42\u7B49\uFF09\uFF1B\u6CA1\u4E0A\u62A5 GitHub \u767B\u5F55\u540D\u7684\u8DF3\u8FC7\uFF08\u5BF9\u65B9\u5173\u8054\u540E\u518D\u540C\u6B65\u5373\u8865\u53D1\uFF09\u3002\u56DE deploy:access \u89C6\u56FE\uFF0C\u534F\u4F5C\u8005\u5E26 repoAccess\uFF1Aactive = \u5DF2\u6709\u5199\u6743\u9650\uFF1Binvited = \u9080\u8BF7\u5DF2\u53D1\u3001\u7B49\u5BF9\u65B9\u63A5\u53D7\uFF1Bfailed = \u5931\u8D25\uFF08\u539F\u56E0\u5728 repoError\uFF09\uFF1B\u7F3A\u5E2D = \u5BF9\u65B9\u8FD8\u6CA1\u5173\u8054 GitHub\uFF1Bowner-only",
|
|
9445
9443
|
args: DeployPersonaArgsSchema
|
|
9446
9444
|
},
|
|
9447
9445
|
"deploy:editLock": {
|
|
@@ -9449,7 +9447,7 @@ var init_methods = __esm({
|
|
|
9449
9447
|
args: DeployEditLockArgsSchema
|
|
9450
9448
|
},
|
|
9451
9449
|
"deploy:takeover": {
|
|
9452
|
-
summary: "\u534F\u4F5C\u8005\u63A5\u624B\uFF1A\u672C\u673A\u6CA1\u6709\u8FD9\u4E2A persona \u65F6\uFF0C\u7528\u672C\u673A GitHub \u8EAB\u4EFD\u628A ottin4ttc/<personaId> clone \u6210\u672C\u5730 persona \u76EE\u5F55\uFF0C\u4E4B\u540E\u6CBF\u7528 deploy:*\u3002\u672C\u673A\u5DF2\u6709\u540C\u540D persona \u5C31\u62D2\uFF1B\u8981\u5148\u5728\u4ED3\u5E93\u91CC\u88AB\u9080\u8BF7\u5E76\u63A5\u53D7\uFF1Bowner-only\u3001human-only",
|
|
9450
|
+
summary: "\u534F\u4F5C\u8005\u63A5\u624B\uFF1A\u672C\u673A\u6CA1\u6709\u8FD9\u4E2A persona \u65F6\uFF0C\u7528\u672C\u673A GitHub \u8EAB\u4EFD\u628A ottin4ttc/<personaId> clone \u6210\u672C\u5730 persona \u76EE\u5F55\uFF0C\u4E4B\u540E\u6CBF\u7528 deploy:*\u3002\u672C\u673A\u5DF2\u6709\u540C\u540D persona \u5C31\u62D2\uFF08\u4E0D\u8986\u76D6\u3001\u4E0D\u5408\u5E76\uFF09\uFF1B\u8981\u5148\u5728\u4ED3\u5E93\u91CC\u88AB\u9080\u8BF7\u5E76\u63A5\u53D7\uFF1Bowner-only\u3001human-only",
|
|
9453
9451
|
args: DeployPersonaArgsSchema
|
|
9454
9452
|
},
|
|
9455
9453
|
"githubAuth:get": {
|
|
@@ -63324,7 +63322,11 @@ function createGithubApi(args) {
|
|
|
63324
63322
|
await must("POST", `/repos/${slug}/actions/workflows/${encodeURIComponent(file)}/dispatches`, "\u89E6\u53D1\u6D41\u6C34\u7EBF", { ref, ...inputs ? { inputs } : {} });
|
|
63325
63323
|
},
|
|
63326
63324
|
async addCollaborator(slug, login) {
|
|
63327
|
-
const
|
|
63325
|
+
const path112 = `/repos/${slug}/collaborators/${encodeURIComponent(login)}`;
|
|
63326
|
+
const has = await request("GET", `${path112}/permission`);
|
|
63327
|
+
const permission = has.json?.permission;
|
|
63328
|
+
if (has.status >= 200 && has.status < 300 && (permission === "admin" || permission === "write")) return "active";
|
|
63329
|
+
const r2 = await request("PUT", path112, { permission: "push" });
|
|
63328
63330
|
if (r2.status === 201) return "invited";
|
|
63329
63331
|
if (r2.status === 204) return "active";
|
|
63330
63332
|
throw new GithubApiError(r2.status, explain(r2.status, `\u9080\u8BF7 ${login} \u8FDB\u4ED3\u5E93`, r2.json));
|
|
@@ -65679,24 +65681,66 @@ function buildDeployHandlers(deps) {
|
|
|
65679
65681
|
const view2 = await accessView(cloudId);
|
|
65680
65682
|
return { response: { type: "deploy:access", ...view2 } };
|
|
65681
65683
|
};
|
|
65684
|
+
async function withRepoAccess(slug, collaborators) {
|
|
65685
|
+
if (!collaborators.some((c2) => c2.githubLogin)) return collaborators;
|
|
65686
|
+
let api;
|
|
65687
|
+
try {
|
|
65688
|
+
({ api } = await requireGithub());
|
|
65689
|
+
} catch (err) {
|
|
65690
|
+
const repoError = toClawdError(err).message;
|
|
65691
|
+
return collaborators.map((c2) => c2.githubLogin ? { ...c2, repoAccess: "failed", repoError } : c2);
|
|
65692
|
+
}
|
|
65693
|
+
const out = [];
|
|
65694
|
+
for (const c2 of collaborators) {
|
|
65695
|
+
if (!c2.githubLogin) {
|
|
65696
|
+
out.push(c2);
|
|
65697
|
+
continue;
|
|
65698
|
+
}
|
|
65699
|
+
try {
|
|
65700
|
+
out.push({ ...c2, repoAccess: await api.addCollaborator(slug, c2.githubLogin) });
|
|
65701
|
+
} catch (err) {
|
|
65702
|
+
out.push({ ...c2, repoAccess: "failed", repoError: toClawdError(err).message });
|
|
65703
|
+
}
|
|
65704
|
+
}
|
|
65705
|
+
return out;
|
|
65706
|
+
}
|
|
65682
65707
|
const collaboratorAdd = async (frame, _client, ctx) => {
|
|
65683
65708
|
ensureOwner(ctx);
|
|
65684
65709
|
const { personaId: personaId2, deviceId } = parseArgs2(DeployCollaboratorAddArgsSchema, frame, "deploy:collaboratorAdd");
|
|
65685
|
-
const
|
|
65710
|
+
const repo2 = await repoInfo(deps.exec, mustPersona(personaId2));
|
|
65711
|
+
if (!repo2) throw invalid("\u8FD9\u4E2A persona \u8FD8\u6CA1\u4E0A\u8FC7\u4E91");
|
|
65712
|
+
const cloudId = cloudPersonaIdOf(repo2.url);
|
|
65686
65713
|
const collaboration = mustCollaboration();
|
|
65714
|
+
let before;
|
|
65715
|
+
try {
|
|
65716
|
+
before = await collaboration.access("integration", cloudId);
|
|
65717
|
+
} catch (err) {
|
|
65718
|
+
if (err instanceof CentralClientError && err.status === 403) throw invalid("\u8FD9\u4E2A persona \u8FD8\u6CA1\u53D1\u5E03\u5230\u4E91\u4E0A\uFF1A\u9996\u6B21\u53D1\u5E03\u4E4B\u540E\u624D\u80FD\u6DFB\u52A0\u534F\u4F5C\u8005");
|
|
65719
|
+
throw centralInvalid(err);
|
|
65720
|
+
}
|
|
65721
|
+
if (before.role !== "owner") throw invalid("\u53EA\u6709\u8FD9\u4E2A persona \u7684\u53D1\u5E03\u8005\u80FD\u6DFB\u52A0\u534F\u4F5C\u8005");
|
|
65687
65722
|
try {
|
|
65688
65723
|
await collaboration.add("integration", cloudId, deviceId);
|
|
65689
65724
|
} catch (err) {
|
|
65690
65725
|
throw centralInvalid(err);
|
|
65691
65726
|
}
|
|
65692
|
-
let production;
|
|
65693
65727
|
try {
|
|
65694
65728
|
await collaboration.add("production", cloudId, deviceId);
|
|
65695
|
-
production = { ok: true };
|
|
65696
65729
|
} catch (err) {
|
|
65697
|
-
|
|
65730
|
+
const known = new Set(before.collaborators.map((c2) => c2.unionId));
|
|
65731
|
+
let undone = true;
|
|
65732
|
+
try {
|
|
65733
|
+
const after = await collaboration.access("integration", cloudId);
|
|
65734
|
+
for (const c2 of after.collaborators) if (!known.has(c2.unionId)) await collaboration.remove("integration", cloudId, c2.unionId);
|
|
65735
|
+
} catch (undoErr) {
|
|
65736
|
+
undone = false;
|
|
65737
|
+
deps.warn?.("rollback collaborator in integration failed", { cloudId, error: centralMessage(undoErr) });
|
|
65738
|
+
}
|
|
65739
|
+
const why = err instanceof CentralClientError && err.status === 403 ? "\u8FD9\u4E2A persona \u8FD8\u6CA1\u4E0A\u7EBF\u5230\u6B63\u5F0F\u73AF\u5883\uFF08\u9996\u6B21\u4E0A\u7EBF\u624D\u4F1A\u5728\u6B63\u5F0F\u73AF\u5883\u767B\u8BB0\u53D1\u5E03\u8005\uFF09\uFF0C\u5148\u4E0A\u7EBF\u4E00\u6B21\u518D\u6DFB\u52A0\u534F\u4F5C\u8005" : `\u6B63\u5F0F\u73AF\u5883\u767B\u8BB0\u5931\u8D25\uFF1A${centralMessage(err)}`;
|
|
65740
|
+
throw invalid(`${why}\uFF1B${undone ? "\u6CA1\u6709\u6DFB\u52A0" : "\u6D4B\u8BD5\u73AF\u5883\u90A3\u4E00\u4EFD\u6CA1\u80FD\u64A4\u56DE\uFF0C\u8BF7\u5728\u534F\u4F5C\u8005\u5217\u8868\u91CC\u624B\u52A8\u79FB\u9664"}`);
|
|
65698
65741
|
}
|
|
65699
|
-
|
|
65742
|
+
const view2 = await accessView(cloudId);
|
|
65743
|
+
return { response: { type: "deploy:collaboratorAdd", ...view2, collaborators: await withRepoAccess(repoSlug(repo2.url), view2.collaborators) } };
|
|
65700
65744
|
};
|
|
65701
65745
|
const collaboratorRemove = async (frame, _client, ctx) => {
|
|
65702
65746
|
ensureOwner(ctx);
|
|
@@ -65719,21 +65763,7 @@ function buildDeployHandlers(deps) {
|
|
|
65719
65763
|
if (!repo2) throw invalid("\u8FD9\u4E2A persona \u8FD8\u6CA1\u4E0A\u8FC7\u4E91");
|
|
65720
65764
|
const view2 = await accessView(cloudPersonaIdOf(repo2.url));
|
|
65721
65765
|
if (view2.role !== "owner") throw invalid("\u53EA\u6709\u8FD9\u4E2A persona \u7684\u53D1\u5E03\u8005\u80FD\u9080\u8BF7\u534F\u4F5C\u8005\u8FDB\u4ED3\u5E93");
|
|
65722
|
-
|
|
65723
|
-
const slug = repoSlug(repo2.url);
|
|
65724
|
-
const collaborators = [];
|
|
65725
|
-
for (const c2 of view2.collaborators) {
|
|
65726
|
-
if (!c2.githubLogin) {
|
|
65727
|
-
collaborators.push(c2);
|
|
65728
|
-
continue;
|
|
65729
|
-
}
|
|
65730
|
-
try {
|
|
65731
|
-
collaborators.push({ ...c2, repoAccess: await api.addCollaborator(slug, c2.githubLogin) });
|
|
65732
|
-
} catch (err) {
|
|
65733
|
-
throw toClawdError(err);
|
|
65734
|
-
}
|
|
65735
|
-
}
|
|
65736
|
-
return { response: { type: "deploy:collaboratorSync", ...view2, collaborators } };
|
|
65766
|
+
return { response: { type: "deploy:collaboratorSync", ...view2, collaborators: await withRepoAccess(repoSlug(repo2.url), view2.collaborators) } };
|
|
65737
65767
|
};
|
|
65738
65768
|
const editLockHandler = async (frame, _client, ctx) => {
|
|
65739
65769
|
ensureOwner(ctx);
|
|
@@ -65751,7 +65781,7 @@ function buildDeployHandlers(deps) {
|
|
|
65751
65781
|
const takeover = async (frame, _client, ctx) => {
|
|
65752
65782
|
ensureOwner(ctx);
|
|
65753
65783
|
const { personaId: personaId2 } = parseArgs2(DeployPersonaArgsSchema, frame, "deploy:takeover");
|
|
65754
|
-
if (deps.hasPersona(personaId2)) throw invalid(
|
|
65784
|
+
if (deps.hasPersona(personaId2)) throw invalid(`\u672C\u673A\u5DF2\u7ECF\u6709\u540C\u540D persona\u300C${personaId2}\u300D\uFF0C\u6CA1\u6709\u8986\u76D6\u5B83\uFF1A\u60F3\u7528\u4E91\u4E0A\u7684\u7248\u672C\uFF0C\u8BF7\u5148\u628A\u672C\u673A\u8FD9\u4E2A\u6539\u540D\u6216\u5220\u9664`);
|
|
65755
65785
|
if (!/^[a-z0-9-]{1,100}$/.test(personaId2)) throw invalid("persona \u540D\u53EA\u8BA4\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u548C\u8FDE\u5B57\u7B26");
|
|
65756
65786
|
try {
|
|
65757
65787
|
await mustCollaboration().access("integration", personaId2);
|
|
@@ -76434,7 +76464,7 @@ function computeMethodAccess(args) {
|
|
|
76434
76464
|
}
|
|
76435
76465
|
|
|
76436
76466
|
// src/version.ts
|
|
76437
|
-
var version = "0.2.
|
|
76467
|
+
var version = "0.2.750".length > 0 ? "0.2.750" : "dev";
|
|
76438
76468
|
|
|
76439
76469
|
// src/cli-probe/probe.ts
|
|
76440
76470
|
var fs87 = __toESM(require("fs"), 1);
|