@seastudio/sdk 4.0.16 → 5.0.0

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/README.md CHANGED
@@ -73,15 +73,28 @@ pnpm release:pack
73
73
 
74
74
  ## Release Policy
75
75
 
76
- `@seastudio/sdk` is the public contract consumed by external plugins. New plugin-facing events, DTOs, tools, or exported types require a semver version bump and a release through GitLab CI.
76
+ `@seastudio/sdk` is the public contract consumed by external plugins. New plugin-facing events, DTOs, tools, or exported types require a semver version bump and a release through GitLab CI. Breaking contract renames require a major version bump.
77
77
 
78
78
  Releases are made from protected tags named `sdk-v<version>`, for example:
79
79
 
80
80
  ```bash
81
- git tag -a sdk-v4.0.16 -m "Release @seastudio/sdk 4.0.16"
82
- git push origin sdk-v4.0.16
81
+ git tag -a sdk-v5.0.0 -m "Release @seastudio/sdk 5.0.0"
82
+ git push origin sdk-v5.0.0
83
83
  ```
84
84
 
85
- The `publish:npm` GitLab job is manual and only appears for protected `sdk-v*` tags. It publishes the verified tarball with a protected, masked `NPM_TOKEN` CI variable. The token must be an npm granular access token scoped to `@seastudio/sdk` publish access and configured to bypass 2FA for CI publishing.
85
+ Protected `sdk-v*` tags automatically run `verify:release-artifact` and then
86
+ `publish:npm`. The publish job uses the verified tarball plus a protected,
87
+ masked `NPM_TOKEN` CI variable. The token must be an npm granular access token
88
+ scoped to `@seastudio/sdk` publish access and configured to bypass 2FA for CI
89
+ publishing.
90
+
91
+ Do not configure `publish:npm` as a GitLab manual job or protected environment
92
+ deployment. The release gate is the protected `sdk-v*` tag plus the protected
93
+ `NPM_TOKEN`; adding an environment approval reintroduces the same human-click
94
+ path that CI publishing is meant to remove.
86
95
 
87
96
  Do not publish this package from a personal shell as the normal release path.
97
+ The package `prepublishOnly` hook enforces this: local `npm publish`/`pnpm publish`
98
+ fails before contacting npm, so it cannot fall through to an interactive 2FA OTP
99
+ prompt. Use `pnpm release:pack` for local artifact verification and GitLab CI for
100
+ publishing.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkMEPE7FIL_cjs = require('./chunk-MEPE7FIL.cjs');
3
+ var chunkEGCXEVBD_cjs = require('./chunk-EGCXEVBD.cjs');
4
4
  var chunk3I7UM66P_cjs = require('./chunk-3I7UM66P.cjs');
5
5
 
6
6
  // src/mcp/index.ts
@@ -11,7 +11,7 @@ async function loadPlugin(pluginName) {
11
11
  throw new Error(`Unknown plugin: ${pluginName}. \u63D2\u4EF6 MCP \u4E0D\u518D\u901A\u8FC7 SDK \u9759\u6001\u5BFC\u5165\u3002`);
12
12
  }
13
13
  var MCP_PACKAGES = [
14
- { id: "seastudio", name: "SeaStudio", description: "\u6587\u4EF6/Shell/AIGC \u57FA\u7840\u80FD\u529B", tools: chunkMEPE7FIL_cjs.allTools }
14
+ { id: "seastudio", name: "SeaStudio", description: "\u6587\u4EF6/Shell/Git/\u63D2\u4EF6\u57FA\u7840\u80FD\u529B", tools: chunkEGCXEVBD_cjs.allTools }
15
15
  ];
16
16
  function mcpToolToOpenAI(tool) {
17
17
  const normalizedTool = chunk3I7UM66P_cjs.normalizeMCPTool(tool);
@@ -29,7 +29,7 @@ function mcpToolToOpenAI(tool) {
29
29
  };
30
30
  }
31
31
  function listAllTools() {
32
- return [...chunkMEPE7FIL_cjs.allTools];
32
+ return [...chunkEGCXEVBD_cjs.allTools];
33
33
  }
34
34
  function toPackageName(source) {
35
35
  if (source === "seastudio") {
@@ -62,7 +62,7 @@ function normalizeAvailableTool(raw) {
62
62
  };
63
63
  }
64
64
  var MCP_TOOL_PACKAGE_INDEX = new Map(
65
- chunkMEPE7FIL_cjs.allTools.map((tool) => [tool.name, "seastudio"])
65
+ chunkEGCXEVBD_cjs.allTools.map((tool) => [tool.name, "seastudio"])
66
66
  );
67
67
  function getMCPToolPackageIndex() {
68
68
  return new Map(MCP_TOOL_PACKAGE_INDEX);
@@ -538,41 +538,12 @@ var shellTools = [
538
538
  })
539
539
  ];
540
540
 
541
- // src/mcp/seastudio/tools/aigc.ts
542
- var seaCloudTools = [
543
- annotateTool({
544
- name: "seastudio-seacloud_task",
545
- description: "\u67E5\u8BE2 SeaCloud \u6A21\u578B\uFF0C\u521B\u5EFA\u4E91\u7AEF\u4EFB\u52A1\u5E76\u67E5\u8BE2\u4EFB\u52A1\u72B6\u6001\u3002\u4F7F\u7528 action \u9009\u62E9 listModels\u3001createTask \u6216 queryTask\u3002",
546
- inputSchema: {
547
- type: "object",
548
- properties: {
549
- action: {
550
- type: "string",
551
- enum: ["listModels", "createTask", "queryTask"],
552
- description: "SeaCloud \u52A8\u4F5C\u3002listModels \u53EF\u4F20 tag\uFF1BcreateTask \u9700\u8981 model/params\uFF1BqueryTask \u9700\u8981 task_id\u3002"
553
- },
554
- tag: { type: "string", description: 'listModels \u6309\u6807\u7B7E\u8FC7\u6EE4\u6A21\u578B\uFF08\u53EF\u9009\uFF09\uFF0C\u5982 "vidu"\u3001"musicfy"\u3001"tencent"\u3002' },
555
- model: { type: "string", description: "createTask \u7684\u6A21\u578B\u540D\u79F0\uFF08\u6765\u81EA listModels \u8FD4\u56DE\u7684 model \u5B57\u6BB5\uFF09\u3002" },
556
- params: { type: "object", description: "createTask \u7684\u6A21\u578B\u53C2\u6570\uFF08\u6765\u81EA listModels \u8FD4\u56DE\u7684\u53C2\u6570 schema\uFF09\u3002" },
557
- dash_scope: { type: "boolean", description: "createTask \u662F\u5426\u89E3\u9664\u533A\u57DF\u9650\u5236\uFF0C\u9ED8\u8BA4 true\u3002" },
558
- moderation: { type: "boolean", description: "createTask \u662F\u5426\u89E3\u9664\u529F\u80FD\u9650\u5236\uFF0C\u9ED8\u8BA4 false\u3002" },
559
- task_id: { type: "string", description: "queryTask \u7684\u4EFB\u52A1 ID\uFF08\u7531 createTask \u8FD4\u56DE\uFF09\u3002" }
560
- },
561
- required: ["action"]
562
- }
563
- }, {
564
- operationKind: "workflow",
565
- requiresExecutionEvidence: false,
566
- rawDomain: "asset"
567
- })
568
- ];
569
-
570
541
  // src/mcp/seastudio/tools/browser.ts
571
- var SINGLETON_BROWSER_SESSION_ID = "browser-session-default";
572
- var browserSessionIdParam = {
573
- browserSessionId: {
542
+ var SINGLETON_BROWSER_RUNTIME_SESSION_ID = "browser-runtime-session-default";
543
+ var browserRuntimeSessionIdParam = {
544
+ browserRuntimeSessionId: {
574
545
  type: "string",
575
- description: "Browser session ID\uFF0C\u53EF\u9009\uFF1B\u7F3A\u7701\u4E3A\u5168\u5C40\u5355\u4F8B browser-session-default\u3002"
546
+ description: "Browser runtime session ID\uFF0C\u53EF\u9009\uFF1B\u7F3A\u7701\u4E3A\u5168\u5C40\u5355\u4F8B browser-runtime-session-default\u3002"
576
547
  }
577
548
  };
578
549
  var tabIdParam = {
@@ -580,17 +551,17 @@ var tabIdParam = {
580
551
  };
581
552
  var browserRuntimeTools = [
582
553
  annotateTool({
583
- name: "seastudio-browser_session",
584
- description: "\u8BFB\u53D6\u6216\u91CD\u7F6E\u5168\u5C40 Browser Session\uFF08\u5355\u4F8B\u5185\u6838\uFF09\u3002\u4F7F\u7528 action \u9009\u62E9 open\u3001list\u3001get \u6216 close\u3002open/get \u8FD4\u56DE\u540C\u4E00\u4E2A browserSessionId\uFF1Bclose \u4F1A\u6E05\u7A7A\u5168\u90E8 tab \u4F46\u4FDD\u7559 session \u58F3\u3002",
554
+ name: "seastudio-browser_runtime_session",
555
+ description: "\u8BFB\u53D6\u6216\u91CD\u7F6E\u5168\u5C40 BrowserRuntimeSession\uFF08\u5355\u4F8B\u5185\u6838\uFF09\u3002\u4F7F\u7528 action \u9009\u62E9 open\u3001list\u3001get \u6216 close\u3002open/get \u8FD4\u56DE\u540C\u4E00\u4E2A browserRuntimeSessionId\uFF1Bclose \u4F1A\u6E05\u7A7A\u5168\u90E8 tab \u4F46\u4FDD\u7559 runtime session \u58F3\u3002",
585
556
  inputSchema: {
586
557
  type: "object",
587
558
  properties: {
588
559
  action: {
589
560
  type: "string",
590
561
  enum: ["open", "list", "get", "close"],
591
- description: "Browser Session \u52A8\u4F5C\u3002\u5168\u5C40\u4EC5\u4E00\u4E2A session\uFF1BbrowserSessionId \u53EF\u9009\u3002"
562
+ description: "BrowserRuntimeSession \u52A8\u4F5C\u3002\u5168\u5C40\u4EC5\u4E00\u4E2A runtime session\uFF1BbrowserRuntimeSessionId \u53EF\u9009\u3002"
592
563
  },
593
- ...browserSessionIdParam,
564
+ ...browserRuntimeSessionIdParam,
594
565
  homepage: { type: "string", description: "open \u7684\u53EF\u9009\u9ED8\u8BA4\u9996\u9875\u3002" }
595
566
  },
596
567
  required: ["action"]
@@ -601,17 +572,17 @@ var browserRuntimeTools = [
601
572
  rawDomain: "browser"
602
573
  }),
603
574
  annotateTool({
604
- name: "seastudio-browser_tab",
605
- description: "\u7BA1\u7406\u5168\u5C40 Browser Session \u4E2D\u7684 tab\u3002\u4F7F\u7528 action \u9009\u62E9 create\u3001close\u3001activate\u3001navigate\u3001goBack\u3001goForward\u3001reload \u6216 stop\u3002\u6BCF\u4E2A Host Browser \u63D2\u4EF6\u5B9E\u4F8B\u901A\u5E38\u5BF9\u5E94\u4E00\u4E2A ownerInstanceId tab\u3002",
575
+ name: "seastudio-browser_runtime_tab",
576
+ description: "\u7BA1\u7406\u5168\u5C40 BrowserRuntimeSession \u4E2D\u7684 tab\u3002\u4F7F\u7528 action \u9009\u62E9 create\u3001close\u3001activate\u3001navigate\u3001goBack\u3001goForward\u3001reload \u6216 stop\u3002\u6BCF\u4E2A Host Browser \u63D2\u4EF6\u5B9E\u4F8B\u901A\u5E38\u5BF9\u5E94\u4E00\u4E2A ownerInstanceId tab\u3002",
606
577
  inputSchema: {
607
578
  type: "object",
608
579
  properties: {
609
580
  action: {
610
581
  type: "string",
611
582
  enum: ["create", "close", "activate", "navigate", "goBack", "goForward", "reload", "stop"],
612
- description: "Browser tab \u52A8\u4F5C\u3002browserSessionId \u53EF\u9009\uFF1Bcreate \u53EF\u4F20 ownerInstanceId \u7ED1\u5B9A Host \u63D2\u4EF6\u5B9E\u4F8B\u3002"
583
+ description: "Browser tab \u52A8\u4F5C\u3002browserRuntimeSessionId \u53EF\u9009\uFF1Bcreate \u53EF\u4F20 ownerInstanceId \u7ED1\u5B9A Host \u63D2\u4EF6\u5B9E\u4F8B\u3002"
613
584
  },
614
- ...browserSessionIdParam,
585
+ ...browserRuntimeSessionIdParam,
615
586
  ...tabIdParam,
616
587
  url: { type: "string", description: "create \u7684\u521D\u59CB URL\uFF0C\u6216 navigate \u7684\u76EE\u6807 URL/\u641C\u7D22\u8BCD\u3002" },
617
588
  ownerInstanceId: { type: "string", description: "create \u65F6\u7ED1\u5B9A Host Browser \u63D2\u4EF6 instanceId\u3002" }
@@ -634,7 +605,7 @@ var browserRuntimeTools = [
634
605
  enum: ["bindViewport", "respondCertificate", "evaluate"],
635
606
  description: "Browser runtime \u52A8\u4F5C\u3002bindViewport \u9700\u8981 rect\uFF1BrespondCertificate \u9700\u8981 requestId \u548C allow\uFF1Bevaluate \u9700\u8981 tabId \u548C script\u3002"
636
607
  },
637
- ...browserSessionIdParam,
608
+ ...browserRuntimeSessionIdParam,
638
609
  ...tabIdParam,
639
610
  ownerInstanceId: { type: "string", description: "bindViewport \u7684 UI owner instance id\u3002" },
640
611
  rect: {
@@ -661,7 +632,7 @@ var browserRuntimeTools = [
661
632
  rawDomain: "browser"
662
633
  }),
663
634
  annotateTool({
664
- name: "seastudio-browser_show",
635
+ name: "seastudio-browser_runtime_show",
665
636
  description: "\u5728 Browser \u63D2\u4EF6\u4E2D\u663E\u793A\u6307\u5B9A URL\uFF08\u53EF\u89C6\u5316\uFF09\u3002\u4F1A\u6253\u5F00\u6216\u6FC0\u6D3B\u5BF9\u5E94 Host \u6807\u7B7E\u9875\uFF0C\u5E76\u628A\u9875\u9762\u5448\u73B0\u7ED9\u7528\u6237\u3002",
666
637
  inputSchema: {
667
638
  type: "object",
@@ -921,63 +892,63 @@ var seastudio = {
921
892
  }
922
893
  },
923
894
  browser: {
924
- session: {
925
- open: async (options = {}) => parseToolResult(await callTool("seastudio-browser_session", { action: "open", ...options })),
926
- list: async () => parseToolResult(await callTool("seastudio-browser_session", { action: "list" })),
927
- get: async (browserSessionId = SINGLETON_BROWSER_SESSION_ID) => parseToolResult(await callTool("seastudio-browser_session", { action: "get", browserSessionId })),
928
- close: async (browserSessionId = SINGLETON_BROWSER_SESSION_ID) => parseToolResult(
929
- await callTool("seastudio-browser_session", { action: "close", browserSessionId })
895
+ runtimeSession: {
896
+ open: async (options = {}) => parseToolResult(await callTool("seastudio-browser_runtime_session", { action: "open", ...options })),
897
+ list: async () => parseToolResult(await callTool("seastudio-browser_runtime_session", { action: "list" })),
898
+ get: async (browserRuntimeSessionId = SINGLETON_BROWSER_RUNTIME_SESSION_ID) => parseToolResult(await callTool("seastudio-browser_runtime_session", { action: "get", browserRuntimeSessionId })),
899
+ close: async (browserRuntimeSessionId = SINGLETON_BROWSER_RUNTIME_SESSION_ID) => parseToolResult(
900
+ await callTool("seastudio-browser_runtime_session", { action: "close", browserRuntimeSessionId })
930
901
  )
931
902
  },
932
- show: async (url) => parseToolResult(
933
- await callTool("seastudio-browser_show", { url })
934
- ),
935
- tab: {
936
- create: async (browserSessionId = SINGLETON_BROWSER_SESSION_ID, url, ownerInstanceId) => parseToolResult(
937
- await callTool("seastudio-browser_tab", {
903
+ runtimeTab: {
904
+ create: async (browserRuntimeSessionId = SINGLETON_BROWSER_RUNTIME_SESSION_ID, url, ownerInstanceId) => parseToolResult(
905
+ await callTool("seastudio-browser_runtime_tab", {
938
906
  action: "create",
939
- browserSessionId,
907
+ browserRuntimeSessionId,
940
908
  ...url ? { url } : {},
941
909
  ...ownerInstanceId ? { ownerInstanceId } : {}
942
910
  })
943
911
  ),
944
- close: async (browserSessionId, tabId) => parseToolResult(
945
- await callTool("seastudio-browser_tab", { action: "close", browserSessionId, tabId })
912
+ close: async (browserRuntimeSessionId, tabId) => parseToolResult(
913
+ await callTool("seastudio-browser_runtime_tab", { action: "close", browserRuntimeSessionId, tabId })
946
914
  ),
947
- activate: async (browserSessionId, tabId) => parseToolResult(
948
- await callTool("seastudio-browser_tab", { action: "activate", browserSessionId, tabId })
915
+ activate: async (browserRuntimeSessionId, tabId) => parseToolResult(
916
+ await callTool("seastudio-browser_runtime_tab", { action: "activate", browserRuntimeSessionId, tabId })
949
917
  ),
950
- navigate: async (browserSessionId, tabId, url) => parseToolResult(
951
- await callTool("seastudio-browser_tab", { action: "navigate", browserSessionId, tabId, url })
918
+ navigate: async (browserRuntimeSessionId, tabId, url) => parseToolResult(
919
+ await callTool("seastudio-browser_runtime_tab", { action: "navigate", browserRuntimeSessionId, tabId, url })
952
920
  ),
953
- goBack: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab", { action: "goBack", browserSessionId, tabId })),
954
- goForward: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab", { action: "goForward", browserSessionId, tabId })),
955
- reload: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab", { action: "reload", browserSessionId, tabId })),
956
- stop: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab", { action: "stop", browserSessionId, tabId })),
921
+ goBack: async (browserRuntimeSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_runtime_tab", { action: "goBack", browserRuntimeSessionId, tabId })),
922
+ goForward: async (browserRuntimeSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_runtime_tab", { action: "goForward", browserRuntimeSessionId, tabId })),
923
+ reload: async (browserRuntimeSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_runtime_tab", { action: "reload", browserRuntimeSessionId, tabId })),
924
+ stop: async (browserRuntimeSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_runtime_tab", { action: "stop", browserRuntimeSessionId, tabId })),
957
925
  getOrCreateForInstance: async (ownerInstanceId, url) => parseToolResult(
958
- await callTool("seastudio-browser_tab", {
926
+ await callTool("seastudio-browser_runtime_tab", {
959
927
  action: "create",
960
- browserSessionId: SINGLETON_BROWSER_SESSION_ID,
928
+ browserRuntimeSessionId: SINGLETON_BROWSER_RUNTIME_SESSION_ID,
961
929
  ownerInstanceId,
962
930
  ...url ? { url } : {}
963
931
  })
964
932
  )
965
933
  },
966
934
  viewport: {
967
- bind: async (browserSessionId = SINGLETON_BROWSER_SESSION_ID, rect, ownerInstanceId) => parseToolResult(
935
+ bind: async (rect, options = {}) => parseToolResult(
968
936
  await callTool("seastudio-browser_runtime", {
969
937
  action: "bindViewport",
970
- browserSessionId,
938
+ browserRuntimeSessionId: options.browserRuntimeSessionId ?? SINGLETON_BROWSER_RUNTIME_SESSION_ID,
971
939
  rect,
972
- ...ownerInstanceId ? { ownerInstanceId } : {}
940
+ ...options.ownerInstanceId ? { ownerInstanceId: options.ownerInstanceId } : {}
973
941
  })
974
942
  )
975
943
  },
976
944
  runtime: {
977
- evaluate: async (browserSessionId, tabId, script, timeoutMs) => parseToolResult(
945
+ show: async (url) => parseToolResult(
946
+ await callTool("seastudio-browser_runtime_show", { url })
947
+ ),
948
+ evaluate: async (browserRuntimeSessionId, tabId, script, timeoutMs) => parseToolResult(
978
949
  await callTool("seastudio-browser_runtime", {
979
950
  action: "evaluate",
980
- browserSessionId,
951
+ browserRuntimeSessionId,
981
952
  tabId,
982
953
  script,
983
954
  ...timeoutMs ? { timeoutMs } : {}
@@ -985,8 +956,8 @@ var seastudio = {
985
956
  )
986
957
  },
987
958
  certificate: {
988
- respond: async (browserSessionId, requestId, allow) => parseToolResult(
989
- await callTool("seastudio-browser_runtime", { action: "respondCertificate", browserSessionId, requestId, allow })
959
+ respond: async (browserRuntimeSessionId, requestId, allow) => parseToolResult(
960
+ await callTool("seastudio-browser_runtime", { action: "respondCertificate", browserRuntimeSessionId, requestId, allow })
990
961
  )
991
962
  }
992
963
  }
@@ -1231,14 +1202,14 @@ var SeastudioNotifications = {
1231
1202
  PROPOSAL_FEEDBACK: "seastudio:proposal-feedback",
1232
1203
  /** 插件实例请求更新宿主 plugin tab 标题 */
1233
1204
  PLUGIN_TAB_TITLE_CHANGED: "plugin:tab-title_changed",
1234
- /** Browser Session 状态变化 */
1235
- BROWSER_SESSION_CHANGED: "browser:session_changed",
1236
- /** Browser Session 关闭 */
1237
- BROWSER_SESSION_CLOSED: "browser:session_closed",
1238
- /** Browser Session 证书错误,需要客户端 UI 决策 */
1239
- BROWSER_CERTIFICATE_ERROR: "browser:certificate_error",
1240
- /** Browser Session 收到网页新标签请求 */
1241
- BROWSER_NEW_TAB_REQUESTED: "browser:new_tab_requested",
1205
+ /** BrowserRuntimeSession 状态变化 */
1206
+ BROWSER_RUNTIME_SESSION_CHANGED: "browser-runtime:session_changed",
1207
+ /** BrowserRuntimeSession 关闭 */
1208
+ BROWSER_RUNTIME_SESSION_CLOSED: "browser-runtime:session_closed",
1209
+ /** BrowserRuntimeSession 证书错误,需要客户端 UI 决策 */
1210
+ BROWSER_RUNTIME_CERTIFICATE_ERROR: "browser-runtime:certificate_error",
1211
+ /** BrowserRuntimeSession 收到网页新标签请求 */
1212
+ BROWSER_RUNTIME_NEW_TAB_REQUESTED: "browser-runtime:new_tab_requested",
1242
1213
  /**
1243
1214
  * Agent 对话 session:新建。消息历史仍由 Agent 前端持有,宿主仅同步列表用于侧栏。
1244
1215
  * 通常由 Agent 通过 notifications/publish 发出;其他订阅者(含 host-ui)可据此更新 UI。
@@ -1297,7 +1268,6 @@ var allTools = [
1297
1268
  ...editorTools,
1298
1269
  ...gitTools,
1299
1270
  ...shellTools,
1300
- ...seaCloudTools,
1301
1271
  ...pluginManagementTools,
1302
1272
  ...agentManagementTools,
1303
1273
  ...pluginTabTools,
@@ -1308,7 +1278,7 @@ var allTools = [
1308
1278
  ];
1309
1279
  var tools = allTools;
1310
1280
 
1311
- exports.SINGLETON_BROWSER_SESSION_ID = SINGLETON_BROWSER_SESSION_ID;
1281
+ exports.SINGLETON_BROWSER_RUNTIME_SESSION_ID = SINGLETON_BROWSER_RUNTIME_SESSION_ID;
1312
1282
  exports.SeastudioNotifications = SeastudioNotifications;
1313
1283
  exports.SeastudioRequests = SeastudioRequests;
1314
1284
  exports.agentManagementTools = agentManagementTools;
@@ -1333,7 +1303,6 @@ exports.request = request;
1333
1303
  exports.rootedPathEvidenceOutputSchema = rootedPathEvidenceOutputSchema;
1334
1304
  exports.rootedWriteEvidenceOutputSchema = rootedWriteEvidenceOutputSchema;
1335
1305
  exports.runOneShotShellCommand = runOneShotShellCommand;
1336
- exports.seaCloudTools = seaCloudTools;
1337
1306
  exports.seastudio = seastudio;
1338
1307
  exports.shellSessionCloseEvidenceOutputSchema = shellSessionCloseEvidenceOutputSchema;
1339
1308
  exports.shellSessionOpenEvidenceOutputSchema = shellSessionOpenEvidenceOutputSchema;
@@ -536,41 +536,12 @@ var shellTools = [
536
536
  })
537
537
  ];
538
538
 
539
- // src/mcp/seastudio/tools/aigc.ts
540
- var seaCloudTools = [
541
- annotateTool({
542
- name: "seastudio-seacloud_task",
543
- description: "\u67E5\u8BE2 SeaCloud \u6A21\u578B\uFF0C\u521B\u5EFA\u4E91\u7AEF\u4EFB\u52A1\u5E76\u67E5\u8BE2\u4EFB\u52A1\u72B6\u6001\u3002\u4F7F\u7528 action \u9009\u62E9 listModels\u3001createTask \u6216 queryTask\u3002",
544
- inputSchema: {
545
- type: "object",
546
- properties: {
547
- action: {
548
- type: "string",
549
- enum: ["listModels", "createTask", "queryTask"],
550
- description: "SeaCloud \u52A8\u4F5C\u3002listModels \u53EF\u4F20 tag\uFF1BcreateTask \u9700\u8981 model/params\uFF1BqueryTask \u9700\u8981 task_id\u3002"
551
- },
552
- tag: { type: "string", description: 'listModels \u6309\u6807\u7B7E\u8FC7\u6EE4\u6A21\u578B\uFF08\u53EF\u9009\uFF09\uFF0C\u5982 "vidu"\u3001"musicfy"\u3001"tencent"\u3002' },
553
- model: { type: "string", description: "createTask \u7684\u6A21\u578B\u540D\u79F0\uFF08\u6765\u81EA listModels \u8FD4\u56DE\u7684 model \u5B57\u6BB5\uFF09\u3002" },
554
- params: { type: "object", description: "createTask \u7684\u6A21\u578B\u53C2\u6570\uFF08\u6765\u81EA listModels \u8FD4\u56DE\u7684\u53C2\u6570 schema\uFF09\u3002" },
555
- dash_scope: { type: "boolean", description: "createTask \u662F\u5426\u89E3\u9664\u533A\u57DF\u9650\u5236\uFF0C\u9ED8\u8BA4 true\u3002" },
556
- moderation: { type: "boolean", description: "createTask \u662F\u5426\u89E3\u9664\u529F\u80FD\u9650\u5236\uFF0C\u9ED8\u8BA4 false\u3002" },
557
- task_id: { type: "string", description: "queryTask \u7684\u4EFB\u52A1 ID\uFF08\u7531 createTask \u8FD4\u56DE\uFF09\u3002" }
558
- },
559
- required: ["action"]
560
- }
561
- }, {
562
- operationKind: "workflow",
563
- requiresExecutionEvidence: false,
564
- rawDomain: "asset"
565
- })
566
- ];
567
-
568
539
  // src/mcp/seastudio/tools/browser.ts
569
- var SINGLETON_BROWSER_SESSION_ID = "browser-session-default";
570
- var browserSessionIdParam = {
571
- browserSessionId: {
540
+ var SINGLETON_BROWSER_RUNTIME_SESSION_ID = "browser-runtime-session-default";
541
+ var browserRuntimeSessionIdParam = {
542
+ browserRuntimeSessionId: {
572
543
  type: "string",
573
- description: "Browser session ID\uFF0C\u53EF\u9009\uFF1B\u7F3A\u7701\u4E3A\u5168\u5C40\u5355\u4F8B browser-session-default\u3002"
544
+ description: "Browser runtime session ID\uFF0C\u53EF\u9009\uFF1B\u7F3A\u7701\u4E3A\u5168\u5C40\u5355\u4F8B browser-runtime-session-default\u3002"
574
545
  }
575
546
  };
576
547
  var tabIdParam = {
@@ -578,17 +549,17 @@ var tabIdParam = {
578
549
  };
579
550
  var browserRuntimeTools = [
580
551
  annotateTool({
581
- name: "seastudio-browser_session",
582
- description: "\u8BFB\u53D6\u6216\u91CD\u7F6E\u5168\u5C40 Browser Session\uFF08\u5355\u4F8B\u5185\u6838\uFF09\u3002\u4F7F\u7528 action \u9009\u62E9 open\u3001list\u3001get \u6216 close\u3002open/get \u8FD4\u56DE\u540C\u4E00\u4E2A browserSessionId\uFF1Bclose \u4F1A\u6E05\u7A7A\u5168\u90E8 tab \u4F46\u4FDD\u7559 session \u58F3\u3002",
552
+ name: "seastudio-browser_runtime_session",
553
+ description: "\u8BFB\u53D6\u6216\u91CD\u7F6E\u5168\u5C40 BrowserRuntimeSession\uFF08\u5355\u4F8B\u5185\u6838\uFF09\u3002\u4F7F\u7528 action \u9009\u62E9 open\u3001list\u3001get \u6216 close\u3002open/get \u8FD4\u56DE\u540C\u4E00\u4E2A browserRuntimeSessionId\uFF1Bclose \u4F1A\u6E05\u7A7A\u5168\u90E8 tab \u4F46\u4FDD\u7559 runtime session \u58F3\u3002",
583
554
  inputSchema: {
584
555
  type: "object",
585
556
  properties: {
586
557
  action: {
587
558
  type: "string",
588
559
  enum: ["open", "list", "get", "close"],
589
- description: "Browser Session \u52A8\u4F5C\u3002\u5168\u5C40\u4EC5\u4E00\u4E2A session\uFF1BbrowserSessionId \u53EF\u9009\u3002"
560
+ description: "BrowserRuntimeSession \u52A8\u4F5C\u3002\u5168\u5C40\u4EC5\u4E00\u4E2A runtime session\uFF1BbrowserRuntimeSessionId \u53EF\u9009\u3002"
590
561
  },
591
- ...browserSessionIdParam,
562
+ ...browserRuntimeSessionIdParam,
592
563
  homepage: { type: "string", description: "open \u7684\u53EF\u9009\u9ED8\u8BA4\u9996\u9875\u3002" }
593
564
  },
594
565
  required: ["action"]
@@ -599,17 +570,17 @@ var browserRuntimeTools = [
599
570
  rawDomain: "browser"
600
571
  }),
601
572
  annotateTool({
602
- name: "seastudio-browser_tab",
603
- description: "\u7BA1\u7406\u5168\u5C40 Browser Session \u4E2D\u7684 tab\u3002\u4F7F\u7528 action \u9009\u62E9 create\u3001close\u3001activate\u3001navigate\u3001goBack\u3001goForward\u3001reload \u6216 stop\u3002\u6BCF\u4E2A Host Browser \u63D2\u4EF6\u5B9E\u4F8B\u901A\u5E38\u5BF9\u5E94\u4E00\u4E2A ownerInstanceId tab\u3002",
573
+ name: "seastudio-browser_runtime_tab",
574
+ description: "\u7BA1\u7406\u5168\u5C40 BrowserRuntimeSession \u4E2D\u7684 tab\u3002\u4F7F\u7528 action \u9009\u62E9 create\u3001close\u3001activate\u3001navigate\u3001goBack\u3001goForward\u3001reload \u6216 stop\u3002\u6BCF\u4E2A Host Browser \u63D2\u4EF6\u5B9E\u4F8B\u901A\u5E38\u5BF9\u5E94\u4E00\u4E2A ownerInstanceId tab\u3002",
604
575
  inputSchema: {
605
576
  type: "object",
606
577
  properties: {
607
578
  action: {
608
579
  type: "string",
609
580
  enum: ["create", "close", "activate", "navigate", "goBack", "goForward", "reload", "stop"],
610
- description: "Browser tab \u52A8\u4F5C\u3002browserSessionId \u53EF\u9009\uFF1Bcreate \u53EF\u4F20 ownerInstanceId \u7ED1\u5B9A Host \u63D2\u4EF6\u5B9E\u4F8B\u3002"
581
+ description: "Browser tab \u52A8\u4F5C\u3002browserRuntimeSessionId \u53EF\u9009\uFF1Bcreate \u53EF\u4F20 ownerInstanceId \u7ED1\u5B9A Host \u63D2\u4EF6\u5B9E\u4F8B\u3002"
611
582
  },
612
- ...browserSessionIdParam,
583
+ ...browserRuntimeSessionIdParam,
613
584
  ...tabIdParam,
614
585
  url: { type: "string", description: "create \u7684\u521D\u59CB URL\uFF0C\u6216 navigate \u7684\u76EE\u6807 URL/\u641C\u7D22\u8BCD\u3002" },
615
586
  ownerInstanceId: { type: "string", description: "create \u65F6\u7ED1\u5B9A Host Browser \u63D2\u4EF6 instanceId\u3002" }
@@ -632,7 +603,7 @@ var browserRuntimeTools = [
632
603
  enum: ["bindViewport", "respondCertificate", "evaluate"],
633
604
  description: "Browser runtime \u52A8\u4F5C\u3002bindViewport \u9700\u8981 rect\uFF1BrespondCertificate \u9700\u8981 requestId \u548C allow\uFF1Bevaluate \u9700\u8981 tabId \u548C script\u3002"
634
605
  },
635
- ...browserSessionIdParam,
606
+ ...browserRuntimeSessionIdParam,
636
607
  ...tabIdParam,
637
608
  ownerInstanceId: { type: "string", description: "bindViewport \u7684 UI owner instance id\u3002" },
638
609
  rect: {
@@ -659,7 +630,7 @@ var browserRuntimeTools = [
659
630
  rawDomain: "browser"
660
631
  }),
661
632
  annotateTool({
662
- name: "seastudio-browser_show",
633
+ name: "seastudio-browser_runtime_show",
663
634
  description: "\u5728 Browser \u63D2\u4EF6\u4E2D\u663E\u793A\u6307\u5B9A URL\uFF08\u53EF\u89C6\u5316\uFF09\u3002\u4F1A\u6253\u5F00\u6216\u6FC0\u6D3B\u5BF9\u5E94 Host \u6807\u7B7E\u9875\uFF0C\u5E76\u628A\u9875\u9762\u5448\u73B0\u7ED9\u7528\u6237\u3002",
664
635
  inputSchema: {
665
636
  type: "object",
@@ -919,63 +890,63 @@ var seastudio = {
919
890
  }
920
891
  },
921
892
  browser: {
922
- session: {
923
- open: async (options = {}) => parseToolResult(await callTool("seastudio-browser_session", { action: "open", ...options })),
924
- list: async () => parseToolResult(await callTool("seastudio-browser_session", { action: "list" })),
925
- get: async (browserSessionId = SINGLETON_BROWSER_SESSION_ID) => parseToolResult(await callTool("seastudio-browser_session", { action: "get", browserSessionId })),
926
- close: async (browserSessionId = SINGLETON_BROWSER_SESSION_ID) => parseToolResult(
927
- await callTool("seastudio-browser_session", { action: "close", browserSessionId })
893
+ runtimeSession: {
894
+ open: async (options = {}) => parseToolResult(await callTool("seastudio-browser_runtime_session", { action: "open", ...options })),
895
+ list: async () => parseToolResult(await callTool("seastudio-browser_runtime_session", { action: "list" })),
896
+ get: async (browserRuntimeSessionId = SINGLETON_BROWSER_RUNTIME_SESSION_ID) => parseToolResult(await callTool("seastudio-browser_runtime_session", { action: "get", browserRuntimeSessionId })),
897
+ close: async (browserRuntimeSessionId = SINGLETON_BROWSER_RUNTIME_SESSION_ID) => parseToolResult(
898
+ await callTool("seastudio-browser_runtime_session", { action: "close", browserRuntimeSessionId })
928
899
  )
929
900
  },
930
- show: async (url) => parseToolResult(
931
- await callTool("seastudio-browser_show", { url })
932
- ),
933
- tab: {
934
- create: async (browserSessionId = SINGLETON_BROWSER_SESSION_ID, url, ownerInstanceId) => parseToolResult(
935
- await callTool("seastudio-browser_tab", {
901
+ runtimeTab: {
902
+ create: async (browserRuntimeSessionId = SINGLETON_BROWSER_RUNTIME_SESSION_ID, url, ownerInstanceId) => parseToolResult(
903
+ await callTool("seastudio-browser_runtime_tab", {
936
904
  action: "create",
937
- browserSessionId,
905
+ browserRuntimeSessionId,
938
906
  ...url ? { url } : {},
939
907
  ...ownerInstanceId ? { ownerInstanceId } : {}
940
908
  })
941
909
  ),
942
- close: async (browserSessionId, tabId) => parseToolResult(
943
- await callTool("seastudio-browser_tab", { action: "close", browserSessionId, tabId })
910
+ close: async (browserRuntimeSessionId, tabId) => parseToolResult(
911
+ await callTool("seastudio-browser_runtime_tab", { action: "close", browserRuntimeSessionId, tabId })
944
912
  ),
945
- activate: async (browserSessionId, tabId) => parseToolResult(
946
- await callTool("seastudio-browser_tab", { action: "activate", browserSessionId, tabId })
913
+ activate: async (browserRuntimeSessionId, tabId) => parseToolResult(
914
+ await callTool("seastudio-browser_runtime_tab", { action: "activate", browserRuntimeSessionId, tabId })
947
915
  ),
948
- navigate: async (browserSessionId, tabId, url) => parseToolResult(
949
- await callTool("seastudio-browser_tab", { action: "navigate", browserSessionId, tabId, url })
916
+ navigate: async (browserRuntimeSessionId, tabId, url) => parseToolResult(
917
+ await callTool("seastudio-browser_runtime_tab", { action: "navigate", browserRuntimeSessionId, tabId, url })
950
918
  ),
951
- goBack: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab", { action: "goBack", browserSessionId, tabId })),
952
- goForward: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab", { action: "goForward", browserSessionId, tabId })),
953
- reload: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab", { action: "reload", browserSessionId, tabId })),
954
- stop: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab", { action: "stop", browserSessionId, tabId })),
919
+ goBack: async (browserRuntimeSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_runtime_tab", { action: "goBack", browserRuntimeSessionId, tabId })),
920
+ goForward: async (browserRuntimeSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_runtime_tab", { action: "goForward", browserRuntimeSessionId, tabId })),
921
+ reload: async (browserRuntimeSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_runtime_tab", { action: "reload", browserRuntimeSessionId, tabId })),
922
+ stop: async (browserRuntimeSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_runtime_tab", { action: "stop", browserRuntimeSessionId, tabId })),
955
923
  getOrCreateForInstance: async (ownerInstanceId, url) => parseToolResult(
956
- await callTool("seastudio-browser_tab", {
924
+ await callTool("seastudio-browser_runtime_tab", {
957
925
  action: "create",
958
- browserSessionId: SINGLETON_BROWSER_SESSION_ID,
926
+ browserRuntimeSessionId: SINGLETON_BROWSER_RUNTIME_SESSION_ID,
959
927
  ownerInstanceId,
960
928
  ...url ? { url } : {}
961
929
  })
962
930
  )
963
931
  },
964
932
  viewport: {
965
- bind: async (browserSessionId = SINGLETON_BROWSER_SESSION_ID, rect, ownerInstanceId) => parseToolResult(
933
+ bind: async (rect, options = {}) => parseToolResult(
966
934
  await callTool("seastudio-browser_runtime", {
967
935
  action: "bindViewport",
968
- browserSessionId,
936
+ browserRuntimeSessionId: options.browserRuntimeSessionId ?? SINGLETON_BROWSER_RUNTIME_SESSION_ID,
969
937
  rect,
970
- ...ownerInstanceId ? { ownerInstanceId } : {}
938
+ ...options.ownerInstanceId ? { ownerInstanceId: options.ownerInstanceId } : {}
971
939
  })
972
940
  )
973
941
  },
974
942
  runtime: {
975
- evaluate: async (browserSessionId, tabId, script, timeoutMs) => parseToolResult(
943
+ show: async (url) => parseToolResult(
944
+ await callTool("seastudio-browser_runtime_show", { url })
945
+ ),
946
+ evaluate: async (browserRuntimeSessionId, tabId, script, timeoutMs) => parseToolResult(
976
947
  await callTool("seastudio-browser_runtime", {
977
948
  action: "evaluate",
978
- browserSessionId,
949
+ browserRuntimeSessionId,
979
950
  tabId,
980
951
  script,
981
952
  ...timeoutMs ? { timeoutMs } : {}
@@ -983,8 +954,8 @@ var seastudio = {
983
954
  )
984
955
  },
985
956
  certificate: {
986
- respond: async (browserSessionId, requestId, allow) => parseToolResult(
987
- await callTool("seastudio-browser_runtime", { action: "respondCertificate", browserSessionId, requestId, allow })
957
+ respond: async (browserRuntimeSessionId, requestId, allow) => parseToolResult(
958
+ await callTool("seastudio-browser_runtime", { action: "respondCertificate", browserRuntimeSessionId, requestId, allow })
988
959
  )
989
960
  }
990
961
  }
@@ -1229,14 +1200,14 @@ var SeastudioNotifications = {
1229
1200
  PROPOSAL_FEEDBACK: "seastudio:proposal-feedback",
1230
1201
  /** 插件实例请求更新宿主 plugin tab 标题 */
1231
1202
  PLUGIN_TAB_TITLE_CHANGED: "plugin:tab-title_changed",
1232
- /** Browser Session 状态变化 */
1233
- BROWSER_SESSION_CHANGED: "browser:session_changed",
1234
- /** Browser Session 关闭 */
1235
- BROWSER_SESSION_CLOSED: "browser:session_closed",
1236
- /** Browser Session 证书错误,需要客户端 UI 决策 */
1237
- BROWSER_CERTIFICATE_ERROR: "browser:certificate_error",
1238
- /** Browser Session 收到网页新标签请求 */
1239
- BROWSER_NEW_TAB_REQUESTED: "browser:new_tab_requested",
1203
+ /** BrowserRuntimeSession 状态变化 */
1204
+ BROWSER_RUNTIME_SESSION_CHANGED: "browser-runtime:session_changed",
1205
+ /** BrowserRuntimeSession 关闭 */
1206
+ BROWSER_RUNTIME_SESSION_CLOSED: "browser-runtime:session_closed",
1207
+ /** BrowserRuntimeSession 证书错误,需要客户端 UI 决策 */
1208
+ BROWSER_RUNTIME_CERTIFICATE_ERROR: "browser-runtime:certificate_error",
1209
+ /** BrowserRuntimeSession 收到网页新标签请求 */
1210
+ BROWSER_RUNTIME_NEW_TAB_REQUESTED: "browser-runtime:new_tab_requested",
1240
1211
  /**
1241
1212
  * Agent 对话 session:新建。消息历史仍由 Agent 前端持有,宿主仅同步列表用于侧栏。
1242
1213
  * 通常由 Agent 通过 notifications/publish 发出;其他订阅者(含 host-ui)可据此更新 UI。
@@ -1295,7 +1266,6 @@ var allTools = [
1295
1266
  ...editorTools,
1296
1267
  ...gitTools,
1297
1268
  ...shellTools,
1298
- ...seaCloudTools,
1299
1269
  ...pluginManagementTools,
1300
1270
  ...agentManagementTools,
1301
1271
  ...pluginTabTools,
@@ -1306,4 +1276,4 @@ var allTools = [
1306
1276
  ];
1307
1277
  var tools = allTools;
1308
1278
 
1309
- export { SINGLETON_BROWSER_SESSION_ID, SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, allTools, annotateTool, batchFlattenCopyEvidenceOutputSchema, browserRuntimeTools, callTool, callToolText, dualPathEvidenceOutputSchema, editorTools, fileDownloadEvidenceOutputSchema, fileSaveAsEvidenceOutputSchema, fileTools, fileUrlEvidenceOutputSchema, gitTools, pluginManagementTools, pluginTabTools, projectTools, request, rootedPathEvidenceOutputSchema, rootedWriteEvidenceOutputSchema, runOneShotShellCommand, seaCloudTools, seastudio, shellSessionCloseEvidenceOutputSchema, shellSessionOpenEvidenceOutputSchema, shellSessionRunEvidenceOutputSchema, shellSessionSignalEvidenceOutputSchema, shellSessionSnapshotEvidenceOutputSchema, shellTools, skillTools, tools };
1279
+ export { SINGLETON_BROWSER_RUNTIME_SESSION_ID, SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, allTools, annotateTool, batchFlattenCopyEvidenceOutputSchema, browserRuntimeTools, callTool, callToolText, dualPathEvidenceOutputSchema, editorTools, fileDownloadEvidenceOutputSchema, fileSaveAsEvidenceOutputSchema, fileTools, fileUrlEvidenceOutputSchema, gitTools, pluginManagementTools, pluginTabTools, projectTools, request, rootedPathEvidenceOutputSchema, rootedWriteEvidenceOutputSchema, runOneShotShellCommand, seastudio, shellSessionCloseEvidenceOutputSchema, shellSessionOpenEvidenceOutputSchema, shellSessionRunEvidenceOutputSchema, shellSessionSignalEvidenceOutputSchema, shellSessionSnapshotEvidenceOutputSchema, shellTools, skillTools, tools };
@@ -1,4 +1,4 @@
1
- import { allTools } from './chunk-QS3WNDIH.js';
1
+ import { allTools } from './chunk-FNA3TFHQ.js';
2
2
  import { normalizeMCPTool, normalizeMCPToolObjectSchema, getDefaultClient } from './chunk-TJ3CGHWJ.js';
3
3
 
4
4
  // src/mcp/index.ts
@@ -9,7 +9,7 @@ async function loadPlugin(pluginName) {
9
9
  throw new Error(`Unknown plugin: ${pluginName}. \u63D2\u4EF6 MCP \u4E0D\u518D\u901A\u8FC7 SDK \u9759\u6001\u5BFC\u5165\u3002`);
10
10
  }
11
11
  var MCP_PACKAGES = [
12
- { id: "seastudio", name: "SeaStudio", description: "\u6587\u4EF6/Shell/AIGC \u57FA\u7840\u80FD\u529B", tools: allTools }
12
+ { id: "seastudio", name: "SeaStudio", description: "\u6587\u4EF6/Shell/Git/\u63D2\u4EF6\u57FA\u7840\u80FD\u529B", tools: allTools }
13
13
  ];
14
14
  function mcpToolToOpenAI(tool) {
15
15
  const normalizedTool = normalizeMCPTool(tool);