@clawos-dev/clawd 0.2.674 → 0.2.676

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.
@@ -21114,6 +21114,114 @@ var import_node_child_process2 = require("child_process");
21114
21114
  var import_node_child_process3 = require("child_process");
21115
21115
  var import_node_fs4 = __toESM(require("fs"), 1);
21116
21116
 
21117
+ // ../protocol/src/cloud-workspace-schemas.ts
21118
+ var WORKSPACE_COMPARISON_VALUES = ["head", "index"];
21119
+ var Id = external_exports.string().regex(/^[A-Za-z0-9][A-Za-z0-9-]{0,127}$/);
21120
+ var RepoId = external_exports.string().regex(/^[1-9][0-9]*$/);
21121
+ var Part = external_exports.string().regex(/^[A-Za-z0-9_.-]+$/);
21122
+ var WorkspaceBranchSchema = external_exports.string().min(1).max(255).refine(
21123
+ (b) => !b.startsWith("-") && b !== "HEAD" && !b.startsWith("/") && !b.endsWith("/") && !b.endsWith(".") && !/[\s~^:?*\[\\\x00-\x1f\x7f]/.test(b) && !b.includes("..") && !b.includes("@{") && !b.includes("//") && b.split("/").every((s) => !s.startsWith(".") && !s.endsWith(".lock")),
21124
+ "Invalid Git branch"
21125
+ );
21126
+ var FilePath = external_exports.string().min(1).max(4096).refine(
21127
+ (p) => !p.startsWith("/") && !p.includes("\0") && !p.split(/[\\/]/).includes("..")
21128
+ );
21129
+ var WorkspaceBindingSchema = external_exports.object({
21130
+ workspaceId: Id,
21131
+ repoId: RepoId,
21132
+ owner: Part,
21133
+ name: Part,
21134
+ sourceBranch: WorkspaceBranchSchema,
21135
+ defaultBranch: WorkspaceBranchSchema
21136
+ }).strict();
21137
+ var WorkspaceRepoSchema = external_exports.object({
21138
+ repoId: RepoId,
21139
+ owner: Part,
21140
+ name: Part,
21141
+ defaultBranch: external_exports.string(),
21142
+ private: external_exports.boolean(),
21143
+ description: external_exports.string().nullable()
21144
+ });
21145
+ var WorkspacePrSchema = external_exports.object({
21146
+ number: external_exports.number().int().positive(),
21147
+ url: external_exports.string().url().refine((u) => new URL(u).origin === "https://github.com"),
21148
+ base: external_exports.string(),
21149
+ head: external_exports.string()
21150
+ });
21151
+ var WorkspaceStatusSchema = WorkspaceBindingSchema.extend({
21152
+ initialCommit: external_exports.string(),
21153
+ head: external_exports.string(),
21154
+ actualBranch: external_exports.string().nullable(),
21155
+ branches: external_exports.array(external_exports.string()).optional(),
21156
+ files: external_exports.array(
21157
+ external_exports.object({
21158
+ path: FilePath,
21159
+ previousPath: external_exports.string().optional(),
21160
+ comparison: external_exports.enum(WORKSPACE_COMPARISON_VALUES).optional(),
21161
+ status: external_exports.string(),
21162
+ added: external_exports.number().nonnegative(),
21163
+ removed: external_exports.number().nonnegative(),
21164
+ binary: external_exports.boolean(),
21165
+ untracked: external_exports.boolean().optional()
21166
+ })
21167
+ ),
21168
+ totalFiles: external_exports.number().int().nonnegative().optional(),
21169
+ filesTruncated: external_exports.boolean().optional(),
21170
+ added: external_exports.number().nonnegative(),
21171
+ removed: external_exports.number().nonnegative(),
21172
+ dirty: external_exports.boolean(),
21173
+ conflicted: external_exports.boolean(),
21174
+ version: external_exports.string(),
21175
+ measuredAt: external_exports.number(),
21176
+ pendingPublication: external_exports.object({ operationId: Id, expectedVersion: external_exports.string(), stage: external_exports.string() }).optional(),
21177
+ pr: WorkspacePrSchema.nullable().optional(),
21178
+ savedAt: external_exports.number().nullable().optional()
21179
+ });
21180
+ var Session = external_exports.object({ sessionId: Id });
21181
+ var CloudWorkspaceArgsSchema = external_exports.discriminatedUnion("action", [
21182
+ Session.extend({
21183
+ action: external_exports.literal("repositories"),
21184
+ page: external_exports.number().int().min(1).max(1e3).optional(),
21185
+ search: external_exports.string().max(100).optional()
21186
+ }).strict(),
21187
+ Session.extend({
21188
+ action: external_exports.literal("branches"),
21189
+ repoId: RepoId,
21190
+ page: external_exports.number().int().min(1).max(1e3).optional()
21191
+ }).strict(),
21192
+ Session.extend({
21193
+ action: external_exports.literal("bind"),
21194
+ repoId: RepoId,
21195
+ branch: WorkspaceBranchSchema
21196
+ }).strict(),
21197
+ Session.extend({ action: external_exports.literal("status") }).strict(),
21198
+ Session.extend({
21199
+ action: external_exports.literal("switch"),
21200
+ branch: WorkspaceBranchSchema,
21201
+ create: external_exports.boolean().optional()
21202
+ }).strict(),
21203
+ Session.extend({ action: external_exports.literal("diff"), filePath: FilePath }).strict(),
21204
+ Session.extend({
21205
+ action: external_exports.literal("publish"),
21206
+ operationId: Id,
21207
+ expectedVersion: external_exports.string().min(1).max(128)
21208
+ }).strict()
21209
+ ]);
21210
+ var CloudWorkspaceResultSchema = external_exports.object({
21211
+ binding: WorkspaceBindingSchema.nullable().optional(),
21212
+ workspace: WorkspaceStatusSchema.nullable().optional(),
21213
+ repositories: external_exports.array(WorkspaceRepoSchema).optional(),
21214
+ branches: external_exports.array(external_exports.string()).optional(),
21215
+ hasMore: external_exports.boolean().optional(),
21216
+ diff: external_exports.object({
21217
+ path: FilePath,
21218
+ patch: external_exports.string(),
21219
+ binary: external_exports.boolean(),
21220
+ truncated: external_exports.boolean()
21221
+ }).optional(),
21222
+ pr: WorkspacePrSchema.optional()
21223
+ });
21224
+
21117
21225
  // ../protocol/src/subscription-channel.ts
21118
21226
  var SubscriptionChannelSchema = external_exports.object({
21119
21227
  id: external_exports.string().min(1),
@@ -23060,6 +23168,7 @@ var SessionFileSchema = external_exports.object({
23060
23168
  cloudExecutionId: external_exports.string().min(1).optional(),
23061
23169
  /** First turn ID of the per-query SSE conversation. */
23062
23170
  cloudConversationId: external_exports.string().min(1).optional(),
23171
+ cloudWorkspace: WorkspaceBindingSchema.optional(),
23063
23172
  /** Accepted local turns whose terminal gateway status has not been observed. */
23064
23173
  cloudPendingTurns: external_exports.array(external_exports.object({ id: external_exports.string().min(1), text: external_exports.string(), prepared: external_exports.boolean().optional() })).optional(),
23065
23174
  /** Owner gateway session observed in ready; proves the remote Pod was opened. */
@@ -24012,6 +24121,10 @@ var METHOD_DOCS = {
24012
24121
  summary: "\u586B\u5199\u578B\u8FDE\u63A5\u5668\uFF1A\u628A\u4F7F\u7528\u8005\u672C\u4EBA\u7684\u51ED\u636E\u503C\u4EA4\u7ED9\u4E2D\u5FC3\u52A0\u5BC6\u5165\u5E93\uFF08\u4E00\u6B21\u586B\u5199\u5168\u5C40\u5171\u7528\uFF09\u3002**\u8FD9\u662F\u503C\u552F\u4E00\u7684\u5165\u53E3**\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u3001\u672C\u673A\u4E0D\u843D\u76D8\uFF1B\u683C\u540D\u5FC5\u987B\u662F\u8BE5\u8FDE\u63A5\u5668\u58F0\u660E\u8FC7\u7684\uFF1Bowner-only",
24013
24122
  args: CloudConnectorFillArgsSchema
24014
24123
  },
24124
+ "cloud:workspace": {
24125
+ summary: "Inspect or operate the calling owner cloud session Git workspace; paths and GitHub credentials stay server-side.",
24126
+ args: CloudWorkspaceArgsSchema
24127
+ },
24015
24128
  "cloud:volume:get": {
24016
24129
  summary: "\u8C03\u7528\u65B9\u81EA\u5DF1\u90A3\u5757\u4E91\u76D8\u4E0A\u4E00\u8F6E\u672B\u7684\u7528\u91CF\uFF08usedBytes / sizeBytes / measuredAt\uFF09\u3002\u4EC5 gateway \u7684 disk \u5907\u9009\u540E\u7AEF\u6709\u503C\uFF08\u90A3\u91CC\u6309\u4EBA\u4E0D\u6309 persona\uFF1A\u4E91\u4E0A\u6240\u6709 persona \u5171\u7528\u4E00\u5757\u76D8\uFF09\uFF0C\u7EBF\u4E0A snapshot \u540E\u7AEF\u6CA1\u6709\u4E91\u76D8\u3001\u6052\u56DE null\u3002daemon \u62FF\u672C\u673A api key \u95EE gateway /me/volume\uFF1B\u6CA1\u767B\u5F55 / \u6CA1 key / gateway \u4E0D\u901A / \u6CA1\u8DD1\u8FC7\u4EFB\u52A1 / \u5F53\u524D\u540E\u7AEF\u6CA1\u6709\u4E91\u76D8\u4E00\u5F8B\u56DE volume:null\uFF08\u89D2\u6807\u4E0D\u6E32\uFF09\uFF0C\u4E0D\u629B\uFF1Bowner-only\u3002\u65E0\u53C2\u6570\uFF08\u67E5\u7684\u662F\u8C03\u7528\u65B9\u81EA\u5DF1\u7684\u76D8\uFF09",
24017
24130
  args: NO_ARGS
@@ -24355,15 +24468,15 @@ var METHOD_DOCS = {
24355
24468
  summary: "\u5217\u51FA\u767B\u5F55\u8BBF\u95EE\u8FC7\u672C\u673A public persona \u7684 web \u8BBF\u5BA2\u3002owner-only",
24356
24469
  args: NO_ARGS
24357
24470
  },
24358
- "whoami": {
24471
+ whoami: {
24359
24472
  summary: "\u8FD4\u56DE\u672C\u8FDE\u63A5\u7684\u8EAB\u4EFD\uFF1Aowner \u663E\u793A\u540D + capability wire \u5F62\u6001 + \u88AB\u6388\u6743\u7684 persona \u5217\u8868\u3002\u4EFB\u4F55 authed \u8FDE\u63A5\u53EF\u8C03",
24360
24473
  args: NO_ARGS
24361
24474
  },
24362
- "info": {
24475
+ info: {
24363
24476
  summary: "daemon \u8FD0\u884C\u65F6\u4FE1\u606F\uFF1A\u7248\u672C / \u534F\u8BAE\u7248\u672C / \u4E3B\u673A / \u53EF\u7528 tool / \u5728\u8DD1\u7684\u4F1A\u8BDD / tunnel URL \u7B49",
24364
24477
  args: NO_ARGS
24365
24478
  },
24366
- "ping": {
24479
+ ping: {
24367
24480
  summary: "\u5B58\u6D3B\u63A2\u6D4B\uFF0C\u56DE pong",
24368
24481
  args: NO_ARGS
24369
24482
  },
@@ -31036,6 +31036,114 @@ var import_node_path5 = require("path");
31036
31036
  var import_promises2 = __toESM(require("fs/promises"), 1);
31037
31037
  var import_node_path4 = __toESM(require("path"), 1);
31038
31038
 
31039
+ // ../protocol/src/cloud-workspace-schemas.ts
31040
+ var WORKSPACE_COMPARISON_VALUES = ["head", "index"];
31041
+ var Id = external_exports.string().regex(/^[A-Za-z0-9][A-Za-z0-9-]{0,127}$/);
31042
+ var RepoId = external_exports.string().regex(/^[1-9][0-9]*$/);
31043
+ var Part = external_exports.string().regex(/^[A-Za-z0-9_.-]+$/);
31044
+ var WorkspaceBranchSchema = external_exports.string().min(1).max(255).refine(
31045
+ (b) => !b.startsWith("-") && b !== "HEAD" && !b.startsWith("/") && !b.endsWith("/") && !b.endsWith(".") && !/[\s~^:?*\[\\\x00-\x1f\x7f]/.test(b) && !b.includes("..") && !b.includes("@{") && !b.includes("//") && b.split("/").every((s) => !s.startsWith(".") && !s.endsWith(".lock")),
31046
+ "Invalid Git branch"
31047
+ );
31048
+ var FilePath = external_exports.string().min(1).max(4096).refine(
31049
+ (p) => !p.startsWith("/") && !p.includes("\0") && !p.split(/[\\/]/).includes("..")
31050
+ );
31051
+ var WorkspaceBindingSchema = external_exports.object({
31052
+ workspaceId: Id,
31053
+ repoId: RepoId,
31054
+ owner: Part,
31055
+ name: Part,
31056
+ sourceBranch: WorkspaceBranchSchema,
31057
+ defaultBranch: WorkspaceBranchSchema
31058
+ }).strict();
31059
+ var WorkspaceRepoSchema = external_exports.object({
31060
+ repoId: RepoId,
31061
+ owner: Part,
31062
+ name: Part,
31063
+ defaultBranch: external_exports.string(),
31064
+ private: external_exports.boolean(),
31065
+ description: external_exports.string().nullable()
31066
+ });
31067
+ var WorkspacePrSchema = external_exports.object({
31068
+ number: external_exports.number().int().positive(),
31069
+ url: external_exports.string().url().refine((u) => new URL(u).origin === "https://github.com"),
31070
+ base: external_exports.string(),
31071
+ head: external_exports.string()
31072
+ });
31073
+ var WorkspaceStatusSchema = WorkspaceBindingSchema.extend({
31074
+ initialCommit: external_exports.string(),
31075
+ head: external_exports.string(),
31076
+ actualBranch: external_exports.string().nullable(),
31077
+ branches: external_exports.array(external_exports.string()).optional(),
31078
+ files: external_exports.array(
31079
+ external_exports.object({
31080
+ path: FilePath,
31081
+ previousPath: external_exports.string().optional(),
31082
+ comparison: external_exports.enum(WORKSPACE_COMPARISON_VALUES).optional(),
31083
+ status: external_exports.string(),
31084
+ added: external_exports.number().nonnegative(),
31085
+ removed: external_exports.number().nonnegative(),
31086
+ binary: external_exports.boolean(),
31087
+ untracked: external_exports.boolean().optional()
31088
+ })
31089
+ ),
31090
+ totalFiles: external_exports.number().int().nonnegative().optional(),
31091
+ filesTruncated: external_exports.boolean().optional(),
31092
+ added: external_exports.number().nonnegative(),
31093
+ removed: external_exports.number().nonnegative(),
31094
+ dirty: external_exports.boolean(),
31095
+ conflicted: external_exports.boolean(),
31096
+ version: external_exports.string(),
31097
+ measuredAt: external_exports.number(),
31098
+ pendingPublication: external_exports.object({ operationId: Id, expectedVersion: external_exports.string(), stage: external_exports.string() }).optional(),
31099
+ pr: WorkspacePrSchema.nullable().optional(),
31100
+ savedAt: external_exports.number().nullable().optional()
31101
+ });
31102
+ var Session = external_exports.object({ sessionId: Id });
31103
+ var CloudWorkspaceArgsSchema = external_exports.discriminatedUnion("action", [
31104
+ Session.extend({
31105
+ action: external_exports.literal("repositories"),
31106
+ page: external_exports.number().int().min(1).max(1e3).optional(),
31107
+ search: external_exports.string().max(100).optional()
31108
+ }).strict(),
31109
+ Session.extend({
31110
+ action: external_exports.literal("branches"),
31111
+ repoId: RepoId,
31112
+ page: external_exports.number().int().min(1).max(1e3).optional()
31113
+ }).strict(),
31114
+ Session.extend({
31115
+ action: external_exports.literal("bind"),
31116
+ repoId: RepoId,
31117
+ branch: WorkspaceBranchSchema
31118
+ }).strict(),
31119
+ Session.extend({ action: external_exports.literal("status") }).strict(),
31120
+ Session.extend({
31121
+ action: external_exports.literal("switch"),
31122
+ branch: WorkspaceBranchSchema,
31123
+ create: external_exports.boolean().optional()
31124
+ }).strict(),
31125
+ Session.extend({ action: external_exports.literal("diff"), filePath: FilePath }).strict(),
31126
+ Session.extend({
31127
+ action: external_exports.literal("publish"),
31128
+ operationId: Id,
31129
+ expectedVersion: external_exports.string().min(1).max(128)
31130
+ }).strict()
31131
+ ]);
31132
+ var CloudWorkspaceResultSchema = external_exports.object({
31133
+ binding: WorkspaceBindingSchema.nullable().optional(),
31134
+ workspace: WorkspaceStatusSchema.nullable().optional(),
31135
+ repositories: external_exports.array(WorkspaceRepoSchema).optional(),
31136
+ branches: external_exports.array(external_exports.string()).optional(),
31137
+ hasMore: external_exports.boolean().optional(),
31138
+ diff: external_exports.object({
31139
+ path: FilePath,
31140
+ patch: external_exports.string(),
31141
+ binary: external_exports.boolean(),
31142
+ truncated: external_exports.boolean()
31143
+ }).optional(),
31144
+ pr: WorkspacePrSchema.optional()
31145
+ });
31146
+
31039
31147
  // ../protocol/src/subscription-channel.ts
31040
31148
  var SubscriptionChannelSchema = external_exports.object({
31041
31149
  id: external_exports.string().min(1),
@@ -32982,6 +33090,7 @@ var SessionFileSchema = external_exports.object({
32982
33090
  cloudExecutionId: external_exports.string().min(1).optional(),
32983
33091
  /** First turn ID of the per-query SSE conversation. */
32984
33092
  cloudConversationId: external_exports.string().min(1).optional(),
33093
+ cloudWorkspace: WorkspaceBindingSchema.optional(),
32985
33094
  /** Accepted local turns whose terminal gateway status has not been observed. */
32986
33095
  cloudPendingTurns: external_exports.array(external_exports.object({ id: external_exports.string().min(1), text: external_exports.string(), prepared: external_exports.boolean().optional() })).optional(),
32987
33096
  /** Owner gateway session observed in ready; proves the remote Pod was opened. */
@@ -33934,6 +34043,10 @@ var METHOD_DOCS = {
33934
34043
  summary: "\u586B\u5199\u578B\u8FDE\u63A5\u5668\uFF1A\u628A\u4F7F\u7528\u8005\u672C\u4EBA\u7684\u51ED\u636E\u503C\u4EA4\u7ED9\u4E2D\u5FC3\u52A0\u5BC6\u5165\u5E93\uFF08\u4E00\u6B21\u586B\u5199\u5168\u5C40\u5171\u7528\uFF09\u3002**\u8FD9\u662F\u503C\u552F\u4E00\u7684\u5165\u53E3**\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u3001\u672C\u673A\u4E0D\u843D\u76D8\uFF1B\u683C\u540D\u5FC5\u987B\u662F\u8BE5\u8FDE\u63A5\u5668\u58F0\u660E\u8FC7\u7684\uFF1Bowner-only",
33935
34044
  args: CloudConnectorFillArgsSchema
33936
34045
  },
34046
+ "cloud:workspace": {
34047
+ summary: "Inspect or operate the calling owner cloud session Git workspace; paths and GitHub credentials stay server-side.",
34048
+ args: CloudWorkspaceArgsSchema
34049
+ },
33937
34050
  "cloud:volume:get": {
33938
34051
  summary: "\u8C03\u7528\u65B9\u81EA\u5DF1\u90A3\u5757\u4E91\u76D8\u4E0A\u4E00\u8F6E\u672B\u7684\u7528\u91CF\uFF08usedBytes / sizeBytes / measuredAt\uFF09\u3002\u4EC5 gateway \u7684 disk \u5907\u9009\u540E\u7AEF\u6709\u503C\uFF08\u90A3\u91CC\u6309\u4EBA\u4E0D\u6309 persona\uFF1A\u4E91\u4E0A\u6240\u6709 persona \u5171\u7528\u4E00\u5757\u76D8\uFF09\uFF0C\u7EBF\u4E0A snapshot \u540E\u7AEF\u6CA1\u6709\u4E91\u76D8\u3001\u6052\u56DE null\u3002daemon \u62FF\u672C\u673A api key \u95EE gateway /me/volume\uFF1B\u6CA1\u767B\u5F55 / \u6CA1 key / gateway \u4E0D\u901A / \u6CA1\u8DD1\u8FC7\u4EFB\u52A1 / \u5F53\u524D\u540E\u7AEF\u6CA1\u6709\u4E91\u76D8\u4E00\u5F8B\u56DE volume:null\uFF08\u89D2\u6807\u4E0D\u6E32\uFF09\uFF0C\u4E0D\u629B\uFF1Bowner-only\u3002\u65E0\u53C2\u6570\uFF08\u67E5\u7684\u662F\u8C03\u7528\u65B9\u81EA\u5DF1\u7684\u76D8\uFF09",
33939
34052
  args: NO_ARGS
@@ -34277,15 +34390,15 @@ var METHOD_DOCS = {
34277
34390
  summary: "\u5217\u51FA\u767B\u5F55\u8BBF\u95EE\u8FC7\u672C\u673A public persona \u7684 web \u8BBF\u5BA2\u3002owner-only",
34278
34391
  args: NO_ARGS
34279
34392
  },
34280
- "whoami": {
34393
+ whoami: {
34281
34394
  summary: "\u8FD4\u56DE\u672C\u8FDE\u63A5\u7684\u8EAB\u4EFD\uFF1Aowner \u663E\u793A\u540D + capability wire \u5F62\u6001 + \u88AB\u6388\u6743\u7684 persona \u5217\u8868\u3002\u4EFB\u4F55 authed \u8FDE\u63A5\u53EF\u8C03",
34282
34395
  args: NO_ARGS
34283
34396
  },
34284
- "info": {
34397
+ info: {
34285
34398
  summary: "daemon \u8FD0\u884C\u65F6\u4FE1\u606F\uFF1A\u7248\u672C / \u534F\u8BAE\u7248\u672C / \u4E3B\u673A / \u53EF\u7528 tool / \u5728\u8DD1\u7684\u4F1A\u8BDD / tunnel URL \u7B49",
34286
34399
  args: NO_ARGS
34287
34400
  },
34288
- "ping": {
34401
+ ping: {
34289
34402
  summary: "\u5B58\u6D3B\u63A2\u6D4B\uFF0C\u56DE pong",
34290
34403
  args: NO_ARGS
34291
34404
  },
@@ -31036,6 +31036,114 @@ var import_node_path5 = require("path");
31036
31036
  var import_promises2 = __toESM(require("fs/promises"), 1);
31037
31037
  var import_node_path4 = __toESM(require("path"), 1);
31038
31038
 
31039
+ // ../protocol/src/cloud-workspace-schemas.ts
31040
+ var WORKSPACE_COMPARISON_VALUES = ["head", "index"];
31041
+ var Id = external_exports.string().regex(/^[A-Za-z0-9][A-Za-z0-9-]{0,127}$/);
31042
+ var RepoId = external_exports.string().regex(/^[1-9][0-9]*$/);
31043
+ var Part = external_exports.string().regex(/^[A-Za-z0-9_.-]+$/);
31044
+ var WorkspaceBranchSchema = external_exports.string().min(1).max(255).refine(
31045
+ (b) => !b.startsWith("-") && b !== "HEAD" && !b.startsWith("/") && !b.endsWith("/") && !b.endsWith(".") && !/[\s~^:?*\[\\\x00-\x1f\x7f]/.test(b) && !b.includes("..") && !b.includes("@{") && !b.includes("//") && b.split("/").every((s) => !s.startsWith(".") && !s.endsWith(".lock")),
31046
+ "Invalid Git branch"
31047
+ );
31048
+ var FilePath = external_exports.string().min(1).max(4096).refine(
31049
+ (p) => !p.startsWith("/") && !p.includes("\0") && !p.split(/[\\/]/).includes("..")
31050
+ );
31051
+ var WorkspaceBindingSchema = external_exports.object({
31052
+ workspaceId: Id,
31053
+ repoId: RepoId,
31054
+ owner: Part,
31055
+ name: Part,
31056
+ sourceBranch: WorkspaceBranchSchema,
31057
+ defaultBranch: WorkspaceBranchSchema
31058
+ }).strict();
31059
+ var WorkspaceRepoSchema = external_exports.object({
31060
+ repoId: RepoId,
31061
+ owner: Part,
31062
+ name: Part,
31063
+ defaultBranch: external_exports.string(),
31064
+ private: external_exports.boolean(),
31065
+ description: external_exports.string().nullable()
31066
+ });
31067
+ var WorkspacePrSchema = external_exports.object({
31068
+ number: external_exports.number().int().positive(),
31069
+ url: external_exports.string().url().refine((u) => new URL(u).origin === "https://github.com"),
31070
+ base: external_exports.string(),
31071
+ head: external_exports.string()
31072
+ });
31073
+ var WorkspaceStatusSchema = WorkspaceBindingSchema.extend({
31074
+ initialCommit: external_exports.string(),
31075
+ head: external_exports.string(),
31076
+ actualBranch: external_exports.string().nullable(),
31077
+ branches: external_exports.array(external_exports.string()).optional(),
31078
+ files: external_exports.array(
31079
+ external_exports.object({
31080
+ path: FilePath,
31081
+ previousPath: external_exports.string().optional(),
31082
+ comparison: external_exports.enum(WORKSPACE_COMPARISON_VALUES).optional(),
31083
+ status: external_exports.string(),
31084
+ added: external_exports.number().nonnegative(),
31085
+ removed: external_exports.number().nonnegative(),
31086
+ binary: external_exports.boolean(),
31087
+ untracked: external_exports.boolean().optional()
31088
+ })
31089
+ ),
31090
+ totalFiles: external_exports.number().int().nonnegative().optional(),
31091
+ filesTruncated: external_exports.boolean().optional(),
31092
+ added: external_exports.number().nonnegative(),
31093
+ removed: external_exports.number().nonnegative(),
31094
+ dirty: external_exports.boolean(),
31095
+ conflicted: external_exports.boolean(),
31096
+ version: external_exports.string(),
31097
+ measuredAt: external_exports.number(),
31098
+ pendingPublication: external_exports.object({ operationId: Id, expectedVersion: external_exports.string(), stage: external_exports.string() }).optional(),
31099
+ pr: WorkspacePrSchema.nullable().optional(),
31100
+ savedAt: external_exports.number().nullable().optional()
31101
+ });
31102
+ var Session = external_exports.object({ sessionId: Id });
31103
+ var CloudWorkspaceArgsSchema = external_exports.discriminatedUnion("action", [
31104
+ Session.extend({
31105
+ action: external_exports.literal("repositories"),
31106
+ page: external_exports.number().int().min(1).max(1e3).optional(),
31107
+ search: external_exports.string().max(100).optional()
31108
+ }).strict(),
31109
+ Session.extend({
31110
+ action: external_exports.literal("branches"),
31111
+ repoId: RepoId,
31112
+ page: external_exports.number().int().min(1).max(1e3).optional()
31113
+ }).strict(),
31114
+ Session.extend({
31115
+ action: external_exports.literal("bind"),
31116
+ repoId: RepoId,
31117
+ branch: WorkspaceBranchSchema
31118
+ }).strict(),
31119
+ Session.extend({ action: external_exports.literal("status") }).strict(),
31120
+ Session.extend({
31121
+ action: external_exports.literal("switch"),
31122
+ branch: WorkspaceBranchSchema,
31123
+ create: external_exports.boolean().optional()
31124
+ }).strict(),
31125
+ Session.extend({ action: external_exports.literal("diff"), filePath: FilePath }).strict(),
31126
+ Session.extend({
31127
+ action: external_exports.literal("publish"),
31128
+ operationId: Id,
31129
+ expectedVersion: external_exports.string().min(1).max(128)
31130
+ }).strict()
31131
+ ]);
31132
+ var CloudWorkspaceResultSchema = external_exports.object({
31133
+ binding: WorkspaceBindingSchema.nullable().optional(),
31134
+ workspace: WorkspaceStatusSchema.nullable().optional(),
31135
+ repositories: external_exports.array(WorkspaceRepoSchema).optional(),
31136
+ branches: external_exports.array(external_exports.string()).optional(),
31137
+ hasMore: external_exports.boolean().optional(),
31138
+ diff: external_exports.object({
31139
+ path: FilePath,
31140
+ patch: external_exports.string(),
31141
+ binary: external_exports.boolean(),
31142
+ truncated: external_exports.boolean()
31143
+ }).optional(),
31144
+ pr: WorkspacePrSchema.optional()
31145
+ });
31146
+
31039
31147
  // ../protocol/src/subscription-channel.ts
31040
31148
  var SubscriptionChannelSchema = external_exports.object({
31041
31149
  id: external_exports.string().min(1),
@@ -32982,6 +33090,7 @@ var SessionFileSchema = external_exports.object({
32982
33090
  cloudExecutionId: external_exports.string().min(1).optional(),
32983
33091
  /** First turn ID of the per-query SSE conversation. */
32984
33092
  cloudConversationId: external_exports.string().min(1).optional(),
33093
+ cloudWorkspace: WorkspaceBindingSchema.optional(),
32985
33094
  /** Accepted local turns whose terminal gateway status has not been observed. */
32986
33095
  cloudPendingTurns: external_exports.array(external_exports.object({ id: external_exports.string().min(1), text: external_exports.string(), prepared: external_exports.boolean().optional() })).optional(),
32987
33096
  /** Owner gateway session observed in ready; proves the remote Pod was opened. */
@@ -33934,6 +34043,10 @@ var METHOD_DOCS = {
33934
34043
  summary: "\u586B\u5199\u578B\u8FDE\u63A5\u5668\uFF1A\u628A\u4F7F\u7528\u8005\u672C\u4EBA\u7684\u51ED\u636E\u503C\u4EA4\u7ED9\u4E2D\u5FC3\u52A0\u5BC6\u5165\u5E93\uFF08\u4E00\u6B21\u586B\u5199\u5168\u5C40\u5171\u7528\uFF09\u3002**\u8FD9\u662F\u503C\u552F\u4E00\u7684\u5165\u53E3**\uFF1A\u5165\u53C2\u4E0D\u8FDB\u65E5\u5FD7\u3001\u54CD\u5E94\u4E0D\u56DE\u663E\u3001\u672C\u673A\u4E0D\u843D\u76D8\uFF1B\u683C\u540D\u5FC5\u987B\u662F\u8BE5\u8FDE\u63A5\u5668\u58F0\u660E\u8FC7\u7684\uFF1Bowner-only",
33935
34044
  args: CloudConnectorFillArgsSchema
33936
34045
  },
34046
+ "cloud:workspace": {
34047
+ summary: "Inspect or operate the calling owner cloud session Git workspace; paths and GitHub credentials stay server-side.",
34048
+ args: CloudWorkspaceArgsSchema
34049
+ },
33937
34050
  "cloud:volume:get": {
33938
34051
  summary: "\u8C03\u7528\u65B9\u81EA\u5DF1\u90A3\u5757\u4E91\u76D8\u4E0A\u4E00\u8F6E\u672B\u7684\u7528\u91CF\uFF08usedBytes / sizeBytes / measuredAt\uFF09\u3002\u4EC5 gateway \u7684 disk \u5907\u9009\u540E\u7AEF\u6709\u503C\uFF08\u90A3\u91CC\u6309\u4EBA\u4E0D\u6309 persona\uFF1A\u4E91\u4E0A\u6240\u6709 persona \u5171\u7528\u4E00\u5757\u76D8\uFF09\uFF0C\u7EBF\u4E0A snapshot \u540E\u7AEF\u6CA1\u6709\u4E91\u76D8\u3001\u6052\u56DE null\u3002daemon \u62FF\u672C\u673A api key \u95EE gateway /me/volume\uFF1B\u6CA1\u767B\u5F55 / \u6CA1 key / gateway \u4E0D\u901A / \u6CA1\u8DD1\u8FC7\u4EFB\u52A1 / \u5F53\u524D\u540E\u7AEF\u6CA1\u6709\u4E91\u76D8\u4E00\u5F8B\u56DE volume:null\uFF08\u89D2\u6807\u4E0D\u6E32\uFF09\uFF0C\u4E0D\u629B\uFF1Bowner-only\u3002\u65E0\u53C2\u6570\uFF08\u67E5\u7684\u662F\u8C03\u7528\u65B9\u81EA\u5DF1\u7684\u76D8\uFF09",
33939
34052
  args: NO_ARGS
@@ -34277,15 +34390,15 @@ var METHOD_DOCS = {
34277
34390
  summary: "\u5217\u51FA\u767B\u5F55\u8BBF\u95EE\u8FC7\u672C\u673A public persona \u7684 web \u8BBF\u5BA2\u3002owner-only",
34278
34391
  args: NO_ARGS
34279
34392
  },
34280
- "whoami": {
34393
+ whoami: {
34281
34394
  summary: "\u8FD4\u56DE\u672C\u8FDE\u63A5\u7684\u8EAB\u4EFD\uFF1Aowner \u663E\u793A\u540D + capability wire \u5F62\u6001 + \u88AB\u6388\u6743\u7684 persona \u5217\u8868\u3002\u4EFB\u4F55 authed \u8FDE\u63A5\u53EF\u8C03",
34282
34395
  args: NO_ARGS
34283
34396
  },
34284
- "info": {
34397
+ info: {
34285
34398
  summary: "daemon \u8FD0\u884C\u65F6\u4FE1\u606F\uFF1A\u7248\u672C / \u534F\u8BAE\u7248\u672C / \u4E3B\u673A / \u53EF\u7528 tool / \u5728\u8DD1\u7684\u4F1A\u8BDD / tunnel URL \u7B49",
34286
34399
  args: NO_ARGS
34287
34400
  },
34288
- "ping": {
34401
+ ping: {
34289
34402
  summary: "\u5B58\u6D3B\u63A2\u6D4B\uFF0C\u56DE pong",
34290
34403
  args: NO_ARGS
34291
34404
  },