@seastudio/sdk 4.0.2 → 4.0.4

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.
@@ -21,7 +21,9 @@ var rootedWriteEvidenceOutputSchema = {
21
21
  properties: {
22
22
  rootId: { type: "string" },
23
23
  path: { type: "string" },
24
- written: { type: "boolean" }
24
+ written: { type: "boolean" },
25
+ reviewed: { type: "boolean" },
26
+ proposalId: { type: "string" }
25
27
  },
26
28
  required: ["rootId", "path", "written"]
27
29
  };
@@ -178,7 +180,7 @@ var fileTools = [
178
180
  }),
179
181
  annotateTool({
180
182
  name: "seastudio-filesystem_mutate",
181
- description: "\u6279\u91CF\u6267\u884C\u6587\u4EF6\u5199\u5165\u3001\u5220\u9664\u3001\u79FB\u52A8\u3001\u590D\u5236\u3001\u56DE\u6536\u7AD9\u7B49\u4F1A\u4FEE\u6539\u9879\u76EE\u7684\u64CD\u4F5C\u3002operations \u6309\u987A\u5E8F\u6267\u884C\uFF0C\u9ED8\u8BA4\u9047\u5230\u9519\u8BEF\u505C\u6B62\u3002",
183
+ description: "\u6279\u91CF\u6267\u884C\u6587\u4EF6\u5199\u5165\u3001\u5220\u9664\u3001\u79FB\u52A8\u3001\u590D\u5236\u3001\u56DE\u6536\u7AD9\u7B49\u4F1A\u4FEE\u6539\u9879\u76EE\u7684\u64CD\u4F5C\u3002\u9762\u5411 AI \u6539\u7801\u7684\u6587\u672C write \u9ED8\u8BA4 reviewMode=auto\uFF1A\u82E5\u76EE\u6807\u6587\u4EF6\u5DF2\u5728 Code Editor \u6253\u5F00\uFF0C\u4F1A\u5148\u843D\u76D8\u5E76\u751F\u6210 Keep/Undo proposal\uFF1BKeep \u4EC5\u786E\u8BA4\uFF0CUndo \u56DE\u6EDA\u539F\u5185\u5BB9\u3002operations \u6309\u987A\u5E8F\u6267\u884C\uFF0C\u9ED8\u8BA4\u9047\u5230\u9519\u8BEF\u505C\u6B62\u3002",
182
184
  inputSchema: {
183
185
  type: "object",
184
186
  properties: {
@@ -196,6 +198,11 @@ var fileTools = [
196
198
  rootId: rootIdParam,
197
199
  path: pathParam,
198
200
  content: { type: "string", description: "write \u7684\u6587\u672C\u5185\u5BB9\u3002" },
201
+ reviewMode: {
202
+ type: "string",
203
+ enum: ["auto", "direct", "proposal"],
204
+ description: "write \u7684\u5BA1\u6838\u6A21\u5F0F\uFF1Aauto \u9ED8\u8BA4\u5BF9\u6253\u5F00\u4E2D\u7684\u4EE3\u7801\u6587\u4EF6\u5148\u843D\u76D8\u5E76\u663E\u793A Keep/Undo proposal\uFF1Bdirect \u53EA\u76F4\u63A5\u5199\u76D8\uFF1Bproposal \u5F3A\u5236\u8981\u6C42\u663E\u793A proposal\uFF0C\u672A\u547D\u4E2D\u53EF\u5BA1\u6838\u7F16\u8F91\u5668\u65F6\u8FD4\u56DE\u9519\u8BEF\u3002"
205
+ },
199
206
  base64: { type: "string", description: "writeBinary \u7684 base64 \u5185\u5BB9\u3002" },
200
207
  newName: { type: "string", description: "rename \u7684\u65B0\u540D\u79F0\u3002" },
201
208
  sourceRootId: rootIdParam,
@@ -252,6 +259,170 @@ var fileTools = [
252
259
  })
253
260
  ];
254
261
 
262
+ // src/mcp/seastudio/tools/editor.ts
263
+ var editorTools = [
264
+ annotateTool({
265
+ name: "seastudio-editor_propose",
266
+ description: "\u63D0\u4EA4\u4EE3\u7801\u53D8\u66F4\u63D0\u6848\u7ED9 Code Editor\uFF0C\u4EE5 Cursor \u98CE\u683C Keep/Undo \u5185\u8054 diff \u8BA9\u7528\u6237\u5BA1\u6838\u3002Code Editor \u4F1A\u5148\u5E94\u7528 proposedContent\uFF0CKeep \u4EC5\u786E\u8BA4\uFF0CUndo \u56DE\u6EDA originalContent\u3002",
267
+ inputSchema: {
268
+ type: "object",
269
+ properties: {
270
+ proposalId: { type: "string", description: "\u63D0\u6848 ID\uFF0C\u53EF\u9009\uFF1B\u7F3A\u7701\u7531\u4E3B\u7A0B\u5E8F\u751F\u6210\u3002" },
271
+ title: { type: "string", description: "\u63D0\u6848\u6807\u9898\u3002" },
272
+ targetPluginId: { type: "string", description: "\u76EE\u6807\u63D2\u4EF6 ID\uFF0C\u9ED8\u8BA4 seastudio.codeEditor\u3002" },
273
+ targetInstanceId: { type: "string", description: "\u76EE\u6807 Code Editor \u5B9E\u4F8B ID\u3002" },
274
+ openFile: { type: "boolean", description: "\u662F\u5426\u8981\u6C42\u7F16\u8F91\u5668\u6253\u5F00/\u805A\u7126\u63D0\u6848\u6587\u4EF6\uFF0C\u9ED8\u8BA4 true\u3002" },
275
+ origin: {
276
+ type: "object",
277
+ additionalProperties: true,
278
+ description: "\u63D0\u6848\u6765\u6E90\u4FE1\u606F\uFF0C\u5982 agentInstanceId\u3001threadId\u3001projectId\u3002"
279
+ },
280
+ files: {
281
+ type: "array",
282
+ description: "\u63D0\u6848\u6D89\u53CA\u7684\u6587\u4EF6\u5217\u8868\u3002",
283
+ items: {
284
+ type: "object",
285
+ properties: {
286
+ path: { type: "string" },
287
+ rootId: { type: "string" },
288
+ originalContent: { type: "string" },
289
+ proposedContent: { type: "string" },
290
+ hunks: {
291
+ type: "array",
292
+ items: {
293
+ type: "object",
294
+ properties: {
295
+ id: { type: "string" },
296
+ filePath: { type: "string" },
297
+ rootId: { type: "string" },
298
+ startLine: { type: "number" },
299
+ endLine: { type: "number" },
300
+ originalContent: { type: "string" },
301
+ proposedContent: { type: "string" }
302
+ },
303
+ required: ["id", "startLine", "endLine", "originalContent", "proposedContent"]
304
+ }
305
+ }
306
+ },
307
+ required: ["path", "originalContent", "proposedContent"]
308
+ }
309
+ }
310
+ },
311
+ required: ["title", "files"]
312
+ }
313
+ }, {
314
+ operationKind: "mutate",
315
+ requiresExecutionEvidence: true,
316
+ rawDomain: "editor"
317
+ }, {
318
+ type: "object",
319
+ properties: {
320
+ proposalId: { type: "string" },
321
+ delivered: { type: "boolean" },
322
+ targetPluginId: { type: "string" },
323
+ targetInstanceId: { type: "string" }
324
+ },
325
+ required: ["proposalId", "delivered"]
326
+ }),
327
+ annotateTool({
328
+ name: "seastudio-editor_proposal",
329
+ description: "\u7BA1\u7406 Code Editor \u7684\u6301\u4E45 Keep/Undo \u4EE3\u7801\u63D0\u6848\u3002\u652F\u6301 list\u3001get\u3001getForFile\u3001keepAll\u3001undoAll\uFF1BAgent \u53EF\u7528 keepAll/undoAll \u4E3B\u52A8\u786E\u8BA4\u6216\u56DE\u6EDA\u63D0\u6848\u3002",
330
+ inputSchema: {
331
+ type: "object",
332
+ properties: {
333
+ action: {
334
+ type: "string",
335
+ enum: ["list", "get", "getForFile", "keepAll", "undoAll", "resolve"],
336
+ description: "proposal \u7BA1\u7406\u52A8\u4F5C\u3002"
337
+ },
338
+ proposalId: { type: "string", description: "\u76EE\u6807\u63D0\u6848 ID\u3002" },
339
+ rootId: { type: "string", description: "\u9879\u76EE\u6839 ID\u3002" },
340
+ path: { type: "string", description: "\u76F8\u5BF9 rootId \u7684\u6587\u4EF6\u8DEF\u5F84\u3002" },
341
+ decision: {
342
+ type: "string",
343
+ enum: ["keep", "undo"],
344
+ description: "resolve \u52A8\u4F5C\u7684\u51B3\u7B56\u3002"
345
+ }
346
+ },
347
+ required: ["action"]
348
+ }
349
+ }, {
350
+ operationKind: "mutate",
351
+ requiresExecutionEvidence: true,
352
+ rawDomain: "editor"
353
+ }, {
354
+ type: "object",
355
+ properties: {
356
+ proposalId: { type: "string" },
357
+ proposals: { type: "array", items: { type: "object", additionalProperties: true } },
358
+ proposal: { type: "object", additionalProperties: true },
359
+ resolved: { type: "boolean" },
360
+ decision: { type: "string" }
361
+ }
362
+ })
363
+ ];
364
+
365
+ // src/mcp/seastudio/tools/git.ts
366
+ var gitTools = [
367
+ annotateTool({
368
+ name: "seastudio-git_read",
369
+ description: "Read git repository state for the current project. Actions: status, diff, show, lineChanges, probe.",
370
+ inputSchema: {
371
+ type: "object",
372
+ properties: {
373
+ action: {
374
+ type: "string",
375
+ enum: ["status", "diff", "show", "lineChanges", "probe"],
376
+ description: "status: porcelain file list; diff: unified diff text; show: file at ref; lineChanges: editor gutter ranges; probe: runtime availability."
377
+ },
378
+ path: { type: "string", description: "Repo-relative file path (required for diff/show/lineChanges)." },
379
+ scope: {
380
+ type: "string",
381
+ enum: ["staged", "unstaged", "all"],
382
+ description: "diff scope (default all)."
383
+ },
384
+ ref: {
385
+ type: "string",
386
+ enum: ["HEAD", "INDEX"],
387
+ description: "show ref (default HEAD)."
388
+ },
389
+ rootId: { type: "string", description: "Filesystem root id (default workspace)." }
390
+ },
391
+ required: ["action"]
392
+ }
393
+ }, {
394
+ operationKind: "read",
395
+ requiresExecutionEvidence: false,
396
+ rawDomain: "git"
397
+ }),
398
+ annotateTool({
399
+ name: "seastudio-git_mutate",
400
+ description: "Mutate git state: init, stage, unstage, discard, commit, stageAll, unstageAll.",
401
+ inputSchema: {
402
+ type: "object",
403
+ properties: {
404
+ action: {
405
+ type: "string",
406
+ enum: ["init", "stage", "unstage", "discard", "commit", "stageAll", "unstageAll"]
407
+ },
408
+ path: { type: "string", description: "Repo-relative path for stage/unstage/discard." },
409
+ paths: {
410
+ type: "array",
411
+ items: { type: "string" },
412
+ description: "Multiple paths for stage/unstage/discard."
413
+ },
414
+ message: { type: "string", description: "Commit message (required for commit)." },
415
+ rootId: { type: "string", description: "Filesystem root id (default workspace)." }
416
+ },
417
+ required: ["action"]
418
+ }
419
+ }, {
420
+ operationKind: "mutate",
421
+ requiresExecutionEvidence: true,
422
+ rawDomain: "git"
423
+ })
424
+ ];
425
+
255
426
  // src/mcp/seastudio/tools/shell.ts
256
427
  var shellActionParam = {
257
428
  type: "string",
@@ -395,8 +566,14 @@ function joinWorkspacePath(dir, name) {
395
566
  function callFilesystemRead(action, args = {}) {
396
567
  return callTool("seastudio-filesystem_read", { action, ...args });
397
568
  }
398
- function callFilesystemMutate(op, args = {}) {
399
- return callTool("seastudio-filesystem_mutate", { operations: [{ op, ...args }] });
569
+ function callFilesystemMutate(op, args = {}, options) {
570
+ return callTool("seastudio-filesystem_mutate", {
571
+ operations: [{
572
+ op,
573
+ ...args,
574
+ ...options?.reviewMode ? { reviewMode: options.reviewMode } : {}
575
+ }]
576
+ });
400
577
  }
401
578
  function callFilesystemTransfer(action, args = {}) {
402
579
  return callTool("seastudio-filesystem_transfer", { action, ...args });
@@ -407,6 +584,12 @@ function callShellSessionRead(action, args = {}) {
407
584
  function callShellSessionControl(action, args = {}) {
408
585
  return callTool("seastudio-shell_session_control", { action, ...args });
409
586
  }
587
+ function callGitRead(action, args = {}) {
588
+ return callTool("seastudio-git_read", { action, ...args });
589
+ }
590
+ function callGitMutate(action, args = {}) {
591
+ return callTool("seastudio-git_mutate", { action, ...args });
592
+ }
410
593
  var seastudio = {
411
594
  roots: {
412
595
  list: () => request("roots/list")
@@ -424,7 +607,11 @@ var seastudio = {
424
607
  ...typeof options?.offset === "number" ? { offset: options.offset } : {},
425
608
  ...typeof options?.limit === "number" ? { limit: options.limit } : {}
426
609
  }),
427
- write: (path, content, options) => callFilesystemMutate("write", { rootId: options?.rootId ?? "workspace", path, content }),
610
+ write: (path, content, options) => callFilesystemMutate(
611
+ "write",
612
+ { rootId: options?.rootId ?? "workspace", path, content },
613
+ { reviewMode: options?.reviewMode }
614
+ ),
428
615
  list: (path = "", options) => callFilesystemRead("list", {
429
616
  rootId: options?.rootId ?? "workspace",
430
617
  path
@@ -523,6 +710,32 @@ var seastudio = {
523
710
  writeBinary: (path, base64, options) => callFilesystemMutate("writeBinary", { rootId: options?.rootId ?? "workspace", path, base64 }),
524
711
  readBinary: (path, options) => callFilesystemRead("readBinary", { rootId: options?.rootId ?? "workspace", path })
525
712
  },
713
+ git: {
714
+ probe: () => callGitRead("probe"),
715
+ status: (options) => callGitRead("status", { rootId: options?.rootId ?? "workspace" }),
716
+ diff: (path, options) => callGitRead("diff", {
717
+ path,
718
+ rootId: options?.rootId ?? "workspace",
719
+ ...options?.scope ? { scope: options.scope } : {}
720
+ }),
721
+ show: (path, options) => callGitRead("show", {
722
+ path,
723
+ rootId: options?.rootId ?? "workspace",
724
+ ...options?.ref ? { ref: options.ref } : {}
725
+ }),
726
+ lineChanges: (path, options) => callGitRead("lineChanges", { path, rootId: options?.rootId ?? "workspace" }),
727
+ init: (options) => callGitMutate("init", { rootId: options?.rootId ?? "workspace" }),
728
+ stage: (path, options) => callGitMutate("stage", { path, rootId: options?.rootId ?? "workspace" }),
729
+ stageAll: (options) => callGitMutate("stageAll", { rootId: options?.rootId ?? "workspace" }),
730
+ unstage: (path, options) => callGitMutate("unstage", { path, rootId: options?.rootId ?? "workspace" }),
731
+ unstageAll: (options) => callGitMutate("unstageAll", { rootId: options?.rootId ?? "workspace" }),
732
+ discard: (path, options) => callGitMutate("discard", { path, rootId: options?.rootId ?? "workspace" }),
733
+ commit: (message, options) => callGitMutate("commit", { message, rootId: options?.rootId ?? "workspace" })
734
+ },
735
+ editor: {
736
+ propose: (options) => callTool("seastudio-editor_propose", options),
737
+ proposal: (options) => callTool("seastudio-editor_proposal", options)
738
+ },
526
739
  shell: {
527
740
  session: {
528
741
  open: (options = {}) => callShellSessionControl("open", { ...options }),
@@ -787,7 +1000,7 @@ var skillTools = [
787
1000
 
788
1001
  // src/mcp/seastudio/tools/browser.ts
789
1002
  var browserSessionIdParam = {
790
- browserSessionId: { type: "string", description: "Browser session ID\u3002get/close/tab/runtime \u52A8\u4F5C\u9700\u8981\u3002" }
1003
+ browserSessionId: { type: "string", description: "Browser session ID\u3002get/close/tab/runtime \u52A8\u4F5C\u9700\u8981\u3002\u8981\u628A\u7F51\u9875\u753B\u9762\u663E\u793A\u5230 Browser \u63D2\u4EF6\u4E2D\uFF0C\u4E5F\u9700\u8981\u628A\u8FD9\u4E2A ID \u4F20\u7ED9 browser \u63D2\u4EF6\u7684 MCP \u5DE5\u5177\u3002" }
791
1004
  };
792
1005
  var tabIdParam = {
793
1006
  tabId: { type: "string", description: "Browser tab ID\u3002close/activate/navigate/goBack/goForward/reload/stop \u9700\u8981\u3002" }
@@ -795,17 +1008,17 @@ var tabIdParam = {
795
1008
  var browserRuntimeTools = [
796
1009
  annotateTool({
797
1010
  name: "seastudio-browser_session",
798
- description: "\u521B\u5EFA\u3001\u5217\u51FA\u3001\u8BFB\u53D6\u6216\u5173\u95ED Browser Session\u3002\u4F7F\u7528 action \u9009\u62E9 open\u3001list\u3001get \u6216 close\u3002",
1011
+ description: "\u521B\u5EFA\u3001\u5217\u51FA\u3001\u8BFB\u53D6\u6216\u5173\u95ED Browser Session\u3002\u4F7F\u7528 action \u9009\u62E9 open\u3001list\u3001get \u6216 close\u3002\u6CE8\u610F\uFF1A\u672C\u5DE5\u5177\u53EA\u7BA1\u7406\u4F1A\u8BDD\u6570\u636E\u548C tab\uFF0C\u4E0D\u4F1A\u81EA\u52A8\u628A\u7F51\u9875\u753B\u9762\u663E\u793A\u5230 UI\uFF1B\u5982\u679C\u7528\u6237\u9700\u8981\u201C\u6253\u5F00\u6D4F\u89C8\u5668/\u663E\u793A\u7F51\u9875/\u8BA9\u6211\u770B\u5230\u9875\u9762\u201D\uFF0C\u5E94\u5148\u6253\u5F00 Browser \u63D2\u4EF6\u6807\u7B7E\u9875\uFF08seastudio.browser\uFF09\uFF0C\u518D\u8C03\u7528\u8BE5\u63D2\u4EF6\u7684 MCP \u5DE5\u5177\u628A browserSessionId \u4EA4\u7ED9\u63D2\u4EF6\u5B9E\u4F8B\u663E\u793A\u3002",
799
1012
  inputSchema: {
800
1013
  type: "object",
801
1014
  properties: {
802
1015
  action: {
803
1016
  type: "string",
804
1017
  enum: ["open", "list", "get", "close"],
805
- description: "Browser Session \u52A8\u4F5C\u3002get/close \u9700\u8981 browserSessionId\u3002"
1018
+ description: "Browser Session \u52A8\u4F5C\u3002get/close \u9700\u8981 browserSessionId\u3002open \u8FD4\u56DE\u7684 browserSessionId \u53EF\u7EE7\u7EED\u7528\u4E8E tab \u64CD\u4F5C\uFF1B\u82E5\u8981\u663E\u793A\u7F51\u9875\u753B\u9762\uFF0C\u8FD8\u8981\u4F20\u7ED9 Browser \u63D2\u4EF6 MCP\u3002"
806
1019
  },
807
1020
  ...browserSessionIdParam,
808
- label: { type: "string", description: "open \u7684\u53EF\u9009 session \u663E\u793A\u540D\u79F0\u3002" },
1021
+ label: { type: "string", description: "open \u7684\u53EF\u9009 session \u663E\u793A\u540D\u79F0\u3002\u5EFA\u8BAE\u4F7F\u7528\u80FD\u8BF4\u660E\u7528\u9014\u7684\u540D\u79F0\uFF0CBrowser \u63D2\u4EF6\u63A5\u7BA1\u5DF2\u6709 session \u65F6\u4F1A\u663E\u793A\u5BF9\u5E94\u4F1A\u8BDD\u3002" },
809
1022
  partitionKey: { type: "string", description: "open \u7684\u53EF\u9009\u7F51\u7AD9\u6570\u636E\u5206\u533A key\uFF1B\u76F8\u540C key \u5171\u4EAB cookie/localStorage\u3002" },
810
1023
  homepage: { type: "string", description: "open \u7684\u53EF\u9009\u9ED8\u8BA4\u9996\u9875\u3002" }
811
1024
  },
@@ -818,14 +1031,14 @@ var browserRuntimeTools = [
818
1031
  }),
819
1032
  annotateTool({
820
1033
  name: "seastudio-browser_tab",
821
- description: "\u7BA1\u7406 Browser Session \u4E2D\u7684 tab\uFF0C\u5305\u62EC\u521B\u5EFA\u3001\u5BFC\u822A\u3001\u6FC0\u6D3B\u548C\u52A0\u8F7D\u63A7\u5236\u3002\u4F7F\u7528 action \u9009\u62E9 create\u3001close\u3001activate\u3001navigate\u3001goBack\u3001goForward\u3001reload \u6216 stop\u3002",
1034
+ description: "\u7BA1\u7406 Browser Session \u4E2D\u7684 tab\uFF0C\u5305\u62EC\u521B\u5EFA\u3001\u5BFC\u822A\u3001\u6FC0\u6D3B\u548C\u52A0\u8F7D\u63A7\u5236\u3002\u4F7F\u7528 action \u9009\u62E9 create\u3001close\u3001activate\u3001navigate\u3001goBack\u3001goForward\u3001reload \u6216 stop\u3002\u6CE8\u610F\uFF1Atab \u64CD\u4F5C\u53EA\u6539\u53D8\u6D4F\u89C8\u5668\u4F1A\u8BDD\u72B6\u6001\uFF1B\u82E5\u7528\u6237\u9700\u8981\u770B\u5230\u7F51\u9875\u5185\u5BB9\uFF0C\u9700\u8981\u540C\u65F6\u628A browserSessionId \u4EA4\u7ED9 Browser \u63D2\u4EF6 MCP \u5DE5\u5177\u5728\u63D2\u4EF6 viewport \u4E2D\u663E\u793A\u3002",
822
1035
  inputSchema: {
823
1036
  type: "object",
824
1037
  properties: {
825
1038
  action: {
826
1039
  type: "string",
827
1040
  enum: ["create", "close", "activate", "navigate", "goBack", "goForward", "reload", "stop"],
828
- description: "Browser tab \u52A8\u4F5C\u3002\u6240\u6709\u52A8\u4F5C\u9700\u8981 browserSessionId\uFF1B\u9664 create \u5916\u901A\u5E38\u9700\u8981 tabId\uFF1Bnavigate \u8FD8\u9700\u8981 url\u3002"
1041
+ description: "Browser tab \u52A8\u4F5C\u3002\u6240\u6709\u52A8\u4F5C\u9700\u8981 browserSessionId\uFF1B\u9664 create \u5916\u901A\u5E38\u9700\u8981 tabId\uFF1Bnavigate \u8FD8\u9700\u8981 url\u3002create/navigate \u540E\u5982\u9700\u5C55\u793A\u9875\u9762\uFF0C\u5E94\u8C03\u7528 Browser \u63D2\u4EF6 MCP \u63A5\u7BA1\u540C\u4E00\u4E2A browserSessionId\u3002"
829
1042
  },
830
1043
  ...browserSessionIdParam,
831
1044
  ...tabIdParam,
@@ -840,7 +1053,7 @@ var browserRuntimeTools = [
840
1053
  }),
841
1054
  annotateTool({
842
1055
  name: "seastudio-browser_runtime",
843
- description: "\u5904\u7406 Browser runtime \u4E0E UI viewport\u3001\u8BC1\u4E66\u9519\u8BEF\u76F8\u5173\u7684\u5BBF\u4E3B\u4EA4\u4E92\u3002\u4F7F\u7528 action \u9009\u62E9 bindViewport \u6216 respondCertificate\u3002",
1056
+ description: "\u5904\u7406 Browser runtime \u4E0E UI viewport\u3001\u8BC1\u4E66\u9519\u8BEF\u76F8\u5173\u7684\u5BBF\u4E3B\u4EA4\u4E92\u3002\u4F7F\u7528 action \u9009\u62E9 bindViewport \u6216 respondCertificate\u3002\u901A\u5E38\u7531 Browser \u63D2\u4EF6\u524D\u7AEF\u81EA\u52A8\u8C03\u7528\uFF1B\u5916\u90E8 agent \u60F3\u8BA9\u7528\u6237\u770B\u5230\u9875\u9762\u65F6\uFF0C\u4E0D\u5E94\u76F4\u63A5\u731C rect\uFF0C\u800C\u5E94\u6253\u5F00 Browser \u63D2\u4EF6\u5E76\u8C03\u7528\u63D2\u4EF6 MCP \u5DE5\u5177\u63A5\u7BA1 browserSessionId\u3002",
844
1057
  inputSchema: {
845
1058
  type: "object",
846
1059
  properties: {
@@ -883,11 +1096,23 @@ var SeastudioRequests = {
883
1096
  /** 请求标记文件已保存 -> 主程序发布 FILE_SAVED */
884
1097
  FILE_SAVED: "request:file_saved",
885
1098
  /** 请求发送文本给 Agent -> 主程序发布 TEXT_SEND_REQUESTED */
886
- TEXT_SEND: "request:text_send"
1099
+ TEXT_SEND: "request:text_send",
1100
+ /** 请求在 Code Editor 中打开 Git diff 视图 */
1101
+ GIT_OPEN_DIFF: "request:git_open_diff",
1102
+ /** 请求提交代码变更提案 -> 主程序发布 PROPOSAL_REQUESTED */
1103
+ PROPOSAL_SUBMIT: "request:proposal_submit"
887
1104
  };
888
1105
  var SeastudioNotifications = {
889
1106
  /** 文件系统变化通知(fs.watch 触发) */
890
1107
  FILES_CHANGED: "files:changed",
1108
+ /** Git 仓库状态变化(mutate 或 files:changed 后刷新) */
1109
+ GIT_CHANGED: "git:changed",
1110
+ /** Git diff 打开请求(主程序转发到 Code Editor) */
1111
+ GIT_OPEN_DIFF_REQUESTED: "seastudio:git-open_diff_requested",
1112
+ /** 代码变更提案请求(主程序转发到 Code Editor) */
1113
+ PROPOSAL_REQUESTED: "seastudio:proposal-requested",
1114
+ /** 代码变更提案状态变化 */
1115
+ PROPOSAL_CHANGED: "seastudio:proposal-changed",
891
1116
  /** 文件或目录被重命名/移动 */
892
1117
  FILE_RENAMED: "file:renamed",
893
1118
  /** 文件或目录被删除/移入回收站 */
@@ -957,6 +1182,8 @@ var SeastudioNotifications = {
957
1182
  // src/mcp/seastudio/index.ts
958
1183
  var allTools = [
959
1184
  ...fileTools,
1185
+ ...editorTools,
1186
+ ...gitTools,
960
1187
  ...shellTools,
961
1188
  ...seaCloudTools,
962
1189
  ...pluginManagementTools,
@@ -969,4 +1196,4 @@ var allTools = [
969
1196
  ];
970
1197
  var tools = allTools;
971
1198
 
972
- export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, allTools, annotateTool, batchFlattenCopyEvidenceOutputSchema, browserRuntimeTools, callTool, callToolText, dualPathEvidenceOutputSchema, fileDownloadEvidenceOutputSchema, fileTools, fileUrlEvidenceOutputSchema, pluginManagementTools, pluginTabTools, projectTools, request, rootedPathEvidenceOutputSchema, rootedWriteEvidenceOutputSchema, runOneShotShellCommand, seaCloudTools, seastudio, shellSessionCloseEvidenceOutputSchema, shellSessionOpenEvidenceOutputSchema, shellSessionRunEvidenceOutputSchema, shellSessionSignalEvidenceOutputSchema, shellSessionSnapshotEvidenceOutputSchema, shellTools, skillTools, tools };
1199
+ export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, allTools, annotateTool, batchFlattenCopyEvidenceOutputSchema, browserRuntimeTools, callTool, callToolText, dualPathEvidenceOutputSchema, editorTools, fileDownloadEvidenceOutputSchema, fileTools, fileUrlEvidenceOutputSchema, gitTools, pluginManagementTools, pluginTabTools, projectTools, request, rootedPathEvidenceOutputSchema, rootedWriteEvidenceOutputSchema, runOneShotShellCommand, seaCloudTools, seastudio, shellSessionCloseEvidenceOutputSchema, shellSessionOpenEvidenceOutputSchema, shellSessionRunEvidenceOutputSchema, shellSessionSignalEvidenceOutputSchema, shellSessionSnapshotEvidenceOutputSchema, shellTools, skillTools, tools };
package/dist/index.cjs CHANGED
@@ -1,51 +1,51 @@
1
1
  'use strict';
2
2
 
3
- var chunkWDWGJ5DX_cjs = require('./chunk-WDWGJ5DX.cjs');
3
+ var chunk7W4MTBCQ_cjs = require('./chunk-7W4MTBCQ.cjs');
4
4
  var chunkTKROLSLX_cjs = require('./chunk-TKROLSLX.cjs');
5
- var chunk2W4WODYZ_cjs = require('./chunk-2W4WODYZ.cjs');
5
+ var chunkPBK7SWE4_cjs = require('./chunk-PBK7SWE4.cjs');
6
6
  var chunk3I7UM66P_cjs = require('./chunk-3I7UM66P.cjs');
7
7
 
8
8
 
9
9
 
10
10
  Object.defineProperty(exports, "MCP_PACKAGES", {
11
11
  enumerable: true,
12
- get: function () { return chunkWDWGJ5DX_cjs.MCP_PACKAGES; }
12
+ get: function () { return chunk7W4MTBCQ_cjs.MCP_PACKAGES; }
13
13
  });
14
14
  Object.defineProperty(exports, "getMCPPackageIdForTool", {
15
15
  enumerable: true,
16
- get: function () { return chunkWDWGJ5DX_cjs.getMCPPackageIdForTool; }
16
+ get: function () { return chunk7W4MTBCQ_cjs.getMCPPackageIdForTool; }
17
17
  });
18
18
  Object.defineProperty(exports, "getMCPPackages", {
19
19
  enumerable: true,
20
- get: function () { return chunkWDWGJ5DX_cjs.getMCPPackages; }
20
+ get: function () { return chunk7W4MTBCQ_cjs.getMCPPackages; }
21
21
  });
22
22
  Object.defineProperty(exports, "getMCPToolPackageIndex", {
23
23
  enumerable: true,
24
- get: function () { return chunkWDWGJ5DX_cjs.getMCPToolPackageIndex; }
24
+ get: function () { return chunk7W4MTBCQ_cjs.getMCPToolPackageIndex; }
25
25
  });
26
26
  Object.defineProperty(exports, "getToolsForLLM", {
27
27
  enumerable: true,
28
- get: function () { return chunkWDWGJ5DX_cjs.getToolsForLLM; }
28
+ get: function () { return chunk7W4MTBCQ_cjs.getToolsForLLM; }
29
29
  });
30
30
  Object.defineProperty(exports, "listAllTools", {
31
31
  enumerable: true,
32
- get: function () { return chunkWDWGJ5DX_cjs.listAllTools; }
32
+ get: function () { return chunk7W4MTBCQ_cjs.listAllTools; }
33
33
  });
34
34
  Object.defineProperty(exports, "listAvailableTools", {
35
35
  enumerable: true,
36
- get: function () { return chunkWDWGJ5DX_cjs.listAvailableTools; }
36
+ get: function () { return chunk7W4MTBCQ_cjs.listAvailableTools; }
37
37
  });
38
38
  Object.defineProperty(exports, "listAvailableToolsForLLM", {
39
39
  enumerable: true,
40
- get: function () { return chunkWDWGJ5DX_cjs.listAvailableToolsForLLM; }
40
+ get: function () { return chunk7W4MTBCQ_cjs.listAvailableToolsForLLM; }
41
41
  });
42
42
  Object.defineProperty(exports, "loadPlugin", {
43
43
  enumerable: true,
44
- get: function () { return chunkWDWGJ5DX_cjs.loadPlugin; }
44
+ get: function () { return chunk7W4MTBCQ_cjs.loadPlugin; }
45
45
  });
46
46
  Object.defineProperty(exports, "mcpToolToOpenAI", {
47
47
  enumerable: true,
48
- get: function () { return chunkWDWGJ5DX_cjs.mcpToolToOpenAI; }
48
+ get: function () { return chunk7W4MTBCQ_cjs.mcpToolToOpenAI; }
49
49
  });
50
50
  Object.defineProperty(exports, "DialogBody", {
51
51
  enumerable: true,
@@ -101,51 +101,51 @@ Object.defineProperty(exports, "showHostContextMenu", {
101
101
  });
102
102
  Object.defineProperty(exports, "SeastudioNotifications", {
103
103
  enumerable: true,
104
- get: function () { return chunk2W4WODYZ_cjs.SeastudioNotifications; }
104
+ get: function () { return chunkPBK7SWE4_cjs.SeastudioNotifications; }
105
105
  });
106
106
  Object.defineProperty(exports, "SeastudioRequests", {
107
107
  enumerable: true,
108
- get: function () { return chunk2W4WODYZ_cjs.SeastudioRequests; }
108
+ get: function () { return chunkPBK7SWE4_cjs.SeastudioRequests; }
109
109
  });
110
110
  Object.defineProperty(exports, "agentManagementTools", {
111
111
  enumerable: true,
112
- get: function () { return chunk2W4WODYZ_cjs.agentManagementTools; }
112
+ get: function () { return chunkPBK7SWE4_cjs.agentManagementTools; }
113
113
  });
114
114
  Object.defineProperty(exports, "agentTabTools", {
115
115
  enumerable: true,
116
- get: function () { return chunk2W4WODYZ_cjs.agentTabTools; }
116
+ get: function () { return chunkPBK7SWE4_cjs.agentTabTools; }
117
117
  });
118
118
  Object.defineProperty(exports, "fileTools", {
119
119
  enumerable: true,
120
- get: function () { return chunk2W4WODYZ_cjs.fileTools; }
120
+ get: function () { return chunkPBK7SWE4_cjs.fileTools; }
121
121
  });
122
122
  Object.defineProperty(exports, "pluginManagementTools", {
123
123
  enumerable: true,
124
- get: function () { return chunk2W4WODYZ_cjs.pluginManagementTools; }
124
+ get: function () { return chunkPBK7SWE4_cjs.pluginManagementTools; }
125
125
  });
126
126
  Object.defineProperty(exports, "pluginTabTools", {
127
127
  enumerable: true,
128
- get: function () { return chunk2W4WODYZ_cjs.pluginTabTools; }
128
+ get: function () { return chunkPBK7SWE4_cjs.pluginTabTools; }
129
129
  });
130
130
  Object.defineProperty(exports, "seaCloudTools", {
131
131
  enumerable: true,
132
- get: function () { return chunk2W4WODYZ_cjs.seaCloudTools; }
132
+ get: function () { return chunkPBK7SWE4_cjs.seaCloudTools; }
133
133
  });
134
134
  Object.defineProperty(exports, "seastudio", {
135
135
  enumerable: true,
136
- get: function () { return chunk2W4WODYZ_cjs.seastudio; }
136
+ get: function () { return chunkPBK7SWE4_cjs.seastudio; }
137
137
  });
138
138
  Object.defineProperty(exports, "seastudioAllTools", {
139
139
  enumerable: true,
140
- get: function () { return chunk2W4WODYZ_cjs.allTools; }
140
+ get: function () { return chunkPBK7SWE4_cjs.allTools; }
141
141
  });
142
142
  Object.defineProperty(exports, "seastudioTools", {
143
143
  enumerable: true,
144
- get: function () { return chunk2W4WODYZ_cjs.tools; }
144
+ get: function () { return chunkPBK7SWE4_cjs.tools; }
145
145
  });
146
146
  Object.defineProperty(exports, "shellTools", {
147
147
  enumerable: true,
148
- get: function () { return chunk2W4WODYZ_cjs.shellTools; }
148
+ get: function () { return chunkPBK7SWE4_cjs.shellTools; }
149
149
  });
150
150
  Object.defineProperty(exports, "MCPClient", {
151
151
  enumerable: true,
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { MCP_PACKAGES, getMCPPackageIdForTool, getMCPPackages, getMCPToolPackageIndex, getToolsForLLM, listAllTools, listAvailableTools, listAvailableToolsForLLM, loadPlugin, mcpToolToOpenAI } from './chunk-FM7T46Q5.js';
1
+ export { MCP_PACKAGES, getMCPPackageIdForTool, getMCPPackages, getMCPToolPackageIndex, getToolsForLLM, listAllTools, listAvailableTools, listAvailableToolsForLLM, loadPlugin, mcpToolToOpenAI } from './chunk-I3XORJ4Z.js';
2
2
  export { DialogBody, DialogButton, DialogContainer, DialogFooter, DialogHeader, DialogOverlay, MenuContainer, MenuEmpty, MenuItem, MenuSeparator, Tab, cn, showHostContextMenu } from './chunk-UZWEOUCK.js';
3
- export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seaCloudTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from './chunk-BEYRWP23.js';
3
+ export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seaCloudTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from './chunk-YEN6XUZ2.js';
4
4
  export { MCPClient, MCPServer, PostMessageTransport, callHostTool, callHostToolText, createMCPClient, createMCPServer, createNotification, createRequest, createResponse, getDefaultClient, getDefaultServer, getDefaultTransport, isMCPMessage, isNotification, normalizeMCPTool, normalizeMCPToolInputSchema, normalizeMCPToolObjectSchema, setDefaultClient, setDefaultTransport, startDefaultServer } from './chunk-TJ3CGHWJ.js';
@@ -1,98 +1,98 @@
1
1
  'use strict';
2
2
 
3
- var chunkWDWGJ5DX_cjs = require('../chunk-WDWGJ5DX.cjs');
4
- var chunk2W4WODYZ_cjs = require('../chunk-2W4WODYZ.cjs');
3
+ var chunk7W4MTBCQ_cjs = require('../chunk-7W4MTBCQ.cjs');
4
+ var chunkPBK7SWE4_cjs = require('../chunk-PBK7SWE4.cjs');
5
5
  var chunk3I7UM66P_cjs = require('../chunk-3I7UM66P.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "MCP_PACKAGES", {
10
10
  enumerable: true,
11
- get: function () { return chunkWDWGJ5DX_cjs.MCP_PACKAGES; }
11
+ get: function () { return chunk7W4MTBCQ_cjs.MCP_PACKAGES; }
12
12
  });
13
13
  Object.defineProperty(exports, "getMCPPackageIdForTool", {
14
14
  enumerable: true,
15
- get: function () { return chunkWDWGJ5DX_cjs.getMCPPackageIdForTool; }
15
+ get: function () { return chunk7W4MTBCQ_cjs.getMCPPackageIdForTool; }
16
16
  });
17
17
  Object.defineProperty(exports, "getMCPPackages", {
18
18
  enumerable: true,
19
- get: function () { return chunkWDWGJ5DX_cjs.getMCPPackages; }
19
+ get: function () { return chunk7W4MTBCQ_cjs.getMCPPackages; }
20
20
  });
21
21
  Object.defineProperty(exports, "getMCPToolPackageIndex", {
22
22
  enumerable: true,
23
- get: function () { return chunkWDWGJ5DX_cjs.getMCPToolPackageIndex; }
23
+ get: function () { return chunk7W4MTBCQ_cjs.getMCPToolPackageIndex; }
24
24
  });
25
25
  Object.defineProperty(exports, "getToolsForLLM", {
26
26
  enumerable: true,
27
- get: function () { return chunkWDWGJ5DX_cjs.getToolsForLLM; }
27
+ get: function () { return chunk7W4MTBCQ_cjs.getToolsForLLM; }
28
28
  });
29
29
  Object.defineProperty(exports, "listAllTools", {
30
30
  enumerable: true,
31
- get: function () { return chunkWDWGJ5DX_cjs.listAllTools; }
31
+ get: function () { return chunk7W4MTBCQ_cjs.listAllTools; }
32
32
  });
33
33
  Object.defineProperty(exports, "listAvailableTools", {
34
34
  enumerable: true,
35
- get: function () { return chunkWDWGJ5DX_cjs.listAvailableTools; }
35
+ get: function () { return chunk7W4MTBCQ_cjs.listAvailableTools; }
36
36
  });
37
37
  Object.defineProperty(exports, "listAvailableToolsForLLM", {
38
38
  enumerable: true,
39
- get: function () { return chunkWDWGJ5DX_cjs.listAvailableToolsForLLM; }
39
+ get: function () { return chunk7W4MTBCQ_cjs.listAvailableToolsForLLM; }
40
40
  });
41
41
  Object.defineProperty(exports, "loadPlugin", {
42
42
  enumerable: true,
43
- get: function () { return chunkWDWGJ5DX_cjs.loadPlugin; }
43
+ get: function () { return chunk7W4MTBCQ_cjs.loadPlugin; }
44
44
  });
45
45
  Object.defineProperty(exports, "mcpToolToOpenAI", {
46
46
  enumerable: true,
47
- get: function () { return chunkWDWGJ5DX_cjs.mcpToolToOpenAI; }
47
+ get: function () { return chunk7W4MTBCQ_cjs.mcpToolToOpenAI; }
48
48
  });
49
49
  Object.defineProperty(exports, "SeastudioNotifications", {
50
50
  enumerable: true,
51
- get: function () { return chunk2W4WODYZ_cjs.SeastudioNotifications; }
51
+ get: function () { return chunkPBK7SWE4_cjs.SeastudioNotifications; }
52
52
  });
53
53
  Object.defineProperty(exports, "SeastudioRequests", {
54
54
  enumerable: true,
55
- get: function () { return chunk2W4WODYZ_cjs.SeastudioRequests; }
55
+ get: function () { return chunkPBK7SWE4_cjs.SeastudioRequests; }
56
56
  });
57
57
  Object.defineProperty(exports, "agentManagementTools", {
58
58
  enumerable: true,
59
- get: function () { return chunk2W4WODYZ_cjs.agentManagementTools; }
59
+ get: function () { return chunkPBK7SWE4_cjs.agentManagementTools; }
60
60
  });
61
61
  Object.defineProperty(exports, "agentTabTools", {
62
62
  enumerable: true,
63
- get: function () { return chunk2W4WODYZ_cjs.agentTabTools; }
63
+ get: function () { return chunkPBK7SWE4_cjs.agentTabTools; }
64
64
  });
65
65
  Object.defineProperty(exports, "fileTools", {
66
66
  enumerable: true,
67
- get: function () { return chunk2W4WODYZ_cjs.fileTools; }
67
+ get: function () { return chunkPBK7SWE4_cjs.fileTools; }
68
68
  });
69
69
  Object.defineProperty(exports, "pluginManagementTools", {
70
70
  enumerable: true,
71
- get: function () { return chunk2W4WODYZ_cjs.pluginManagementTools; }
71
+ get: function () { return chunkPBK7SWE4_cjs.pluginManagementTools; }
72
72
  });
73
73
  Object.defineProperty(exports, "pluginTabTools", {
74
74
  enumerable: true,
75
- get: function () { return chunk2W4WODYZ_cjs.pluginTabTools; }
75
+ get: function () { return chunkPBK7SWE4_cjs.pluginTabTools; }
76
76
  });
77
77
  Object.defineProperty(exports, "seaCloudTools", {
78
78
  enumerable: true,
79
- get: function () { return chunk2W4WODYZ_cjs.seaCloudTools; }
79
+ get: function () { return chunkPBK7SWE4_cjs.seaCloudTools; }
80
80
  });
81
81
  Object.defineProperty(exports, "seastudio", {
82
82
  enumerable: true,
83
- get: function () { return chunk2W4WODYZ_cjs.seastudio; }
83
+ get: function () { return chunkPBK7SWE4_cjs.seastudio; }
84
84
  });
85
85
  Object.defineProperty(exports, "seastudioAllTools", {
86
86
  enumerable: true,
87
- get: function () { return chunk2W4WODYZ_cjs.allTools; }
87
+ get: function () { return chunkPBK7SWE4_cjs.allTools; }
88
88
  });
89
89
  Object.defineProperty(exports, "seastudioTools", {
90
90
  enumerable: true,
91
- get: function () { return chunk2W4WODYZ_cjs.tools; }
91
+ get: function () { return chunkPBK7SWE4_cjs.tools; }
92
92
  });
93
93
  Object.defineProperty(exports, "shellTools", {
94
94
  enumerable: true,
95
- get: function () { return chunk2W4WODYZ_cjs.shellTools; }
95
+ get: function () { return chunkPBK7SWE4_cjs.shellTools; }
96
96
  });
97
97
  Object.defineProperty(exports, "MCPClient", {
98
98
  enumerable: true,
package/dist/mcp/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { MCP_PACKAGES, getMCPPackageIdForTool, getMCPPackages, getMCPToolPackageIndex, getToolsForLLM, listAllTools, listAvailableTools, listAvailableToolsForLLM, loadPlugin, mcpToolToOpenAI } from '../chunk-FM7T46Q5.js';
2
- export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seaCloudTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from '../chunk-BEYRWP23.js';
1
+ export { MCP_PACKAGES, getMCPPackageIdForTool, getMCPPackages, getMCPToolPackageIndex, getToolsForLLM, listAllTools, listAvailableTools, listAvailableToolsForLLM, loadPlugin, mcpToolToOpenAI } from '../chunk-I3XORJ4Z.js';
2
+ export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seaCloudTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from '../chunk-YEN6XUZ2.js';
3
3
  export { MCPClient, MCPServer, PostMessageTransport, callHostTool, callHostToolText, createMCPClient, createMCPServer, createNotification, createRequest, createResponse, getDefaultClient, getDefaultServer, getDefaultTransport, isMCPMessage, isNotification, normalizeMCPTool, normalizeMCPToolInputSchema, normalizeMCPToolObjectSchema, setDefaultClient, setDefaultTransport, startDefaultServer } from '../chunk-TJ3CGHWJ.js';