@seastudio/sdk 3.5.1 → 3.7.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.
@@ -1,4 +1,4 @@
1
- import { allTools } from './chunk-MFZWPGTX.js';
1
+ import { allTools } from './chunk-GZRP7JKO.js';
2
2
  import { normalizeMCPTool, normalizeMCPToolObjectSchema, getDefaultClient } from './chunk-TJ3CGHWJ.js';
3
3
 
4
4
  // src/mcp/index.ts
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkK4A2JSWD_cjs = require('./chunk-K4A2JSWD.cjs');
3
+ var chunkHAFMJ47Q_cjs = require('./chunk-HAFMJ47Q.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: chunkK4A2JSWD_cjs.allTools }
14
+ { id: "seastudio", name: "SeaStudio", description: "\u6587\u4EF6/Shell/AIGC \u57FA\u7840\u80FD\u529B", tools: chunkHAFMJ47Q_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 [...chunkK4A2JSWD_cjs.allTools];
32
+ return [...chunkHAFMJ47Q_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
- chunkK4A2JSWD_cjs.allTools.map((tool) => [tool.name, "seastudio"])
65
+ chunkHAFMJ47Q_cjs.allTools.map((tool) => [tool.name, "seastudio"])
66
66
  );
67
67
  function getMCPToolPackageIndex() {
68
68
  return new Map(MCP_TOOL_PACKAGE_INDEX);
@@ -827,6 +827,17 @@ var seaCloudTools = [
827
827
  ];
828
828
 
829
829
  // src/mcp/seastudio/client.ts
830
+ function parseToolResult(result) {
831
+ if (result.isError) {
832
+ const message = result.content.find((entry) => entry.type === "text")?.text ?? "MCP tool failed";
833
+ throw new Error(message);
834
+ }
835
+ if (result.structuredContent !== void 0) {
836
+ return result.structuredContent;
837
+ }
838
+ const text = result.content.find((entry) => entry.type === "text")?.text;
839
+ return text ? JSON.parse(text) : {};
840
+ }
830
841
  async function callTool(name, args = {}) {
831
842
  return getDefaultClient().callTool(name, args);
832
843
  }
@@ -990,6 +1001,48 @@ var seastudio = {
990
1001
  clearEntries: (sessionId) => callTool("seastudio-shell_session_clear_entries", { sessionId }),
991
1002
  close: (sessionId, force = false) => callTool("seastudio-shell_session_close", { sessionId, force })
992
1003
  }
1004
+ },
1005
+ browser: {
1006
+ session: {
1007
+ open: async (options = {}) => parseToolResult(await callTool("seastudio-browser_session_open", { ...options })),
1008
+ list: async () => parseToolResult(await callTool("seastudio-browser_session_list")),
1009
+ get: async (browserSessionId) => parseToolResult(await callTool("seastudio-browser_session_get", { browserSessionId })),
1010
+ close: async (browserSessionId) => parseToolResult(
1011
+ await callTool("seastudio-browser_session_close", { browserSessionId })
1012
+ )
1013
+ },
1014
+ tab: {
1015
+ create: async (browserSessionId, url) => parseToolResult(
1016
+ await callTool("seastudio-browser_tab_create", { browserSessionId, url })
1017
+ ),
1018
+ close: async (browserSessionId, tabId) => parseToolResult(
1019
+ await callTool("seastudio-browser_tab_close", { browserSessionId, tabId })
1020
+ ),
1021
+ activate: async (browserSessionId, tabId) => parseToolResult(
1022
+ await callTool("seastudio-browser_tab_activate", { browserSessionId, tabId })
1023
+ ),
1024
+ navigate: async (browserSessionId, tabId, url) => parseToolResult(
1025
+ await callTool("seastudio-browser_tab_navigate", { browserSessionId, tabId, url })
1026
+ ),
1027
+ goBack: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab_go_back", { browserSessionId, tabId })),
1028
+ goForward: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab_go_forward", { browserSessionId, tabId })),
1029
+ reload: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab_reload", { browserSessionId, tabId })),
1030
+ stop: async (browserSessionId, tabId) => parseToolResult(await callTool("seastudio-browser_tab_stop", { browserSessionId, tabId }))
1031
+ },
1032
+ viewport: {
1033
+ bind: async (browserSessionId, rect, ownerInstanceId) => parseToolResult(
1034
+ await callTool("seastudio-browser_viewport_bind", {
1035
+ browserSessionId,
1036
+ rect,
1037
+ ...ownerInstanceId ? { ownerInstanceId } : {}
1038
+ })
1039
+ )
1040
+ },
1041
+ certificate: {
1042
+ respond: async (browserSessionId, requestId, allow) => parseToolResult(
1043
+ await callTool("seastudio-browser_certificate_respond", { browserSessionId, requestId, allow })
1044
+ )
1045
+ }
993
1046
  }
994
1047
  };
995
1048
  async function runOneShotShellCommand(command, options = {}) {
@@ -1433,6 +1486,242 @@ var skillTools = [
1433
1486
  })
1434
1487
  ];
1435
1488
 
1489
+ // src/mcp/seastudio/tools-browser.ts
1490
+ var browserSessionIdParam = {
1491
+ browserSessionId: { type: "string", description: "Browser session ID" }
1492
+ };
1493
+ var tabIdParam = {
1494
+ tabId: { type: "string", description: "Browser tab ID" }
1495
+ };
1496
+ var browserRuntimeTools = [
1497
+ annotateTool({
1498
+ name: "seastudio-browser_session_open",
1499
+ description: "\u521B\u5EFA\u6216\u6253\u5F00\u4E00\u4E2A\u5BBF\u4E3B Browser Session\uFF0C\u8FD4\u56DE browserSessionId\u3002Session \u53EF\u88AB agent \u548C Browser \u63D2\u4EF6\u5171\u540C\u64CD\u4F5C\u3002",
1500
+ inputSchema: {
1501
+ type: "object",
1502
+ properties: {
1503
+ label: { type: "string", description: "\u53EF\u9009 session \u663E\u793A\u540D\u79F0\u3002" },
1504
+ partitionKey: { type: "string", description: "\u53EF\u9009\u7F51\u7AD9\u6570\u636E\u5206\u533A key\uFF1B\u76F8\u540C key \u5171\u4EAB cookie/localStorage\u3002" },
1505
+ homepage: { type: "string", description: "\u53EF\u9009\u9ED8\u8BA4\u9996\u9875\u3002" }
1506
+ }
1507
+ }
1508
+ }, {
1509
+ operationKind: "mutate",
1510
+ requiresExecutionEvidence: false,
1511
+ rawDomain: "browser"
1512
+ }),
1513
+ annotateTool({
1514
+ name: "seastudio-browser_session_list",
1515
+ description: "\u5217\u51FA\u5F53\u524D\u6240\u6709 Browser Session\u3002",
1516
+ inputSchema: {
1517
+ type: "object",
1518
+ properties: {}
1519
+ }
1520
+ }, {
1521
+ operationKind: "read",
1522
+ requiresExecutionEvidence: false,
1523
+ rawDomain: "browser"
1524
+ }),
1525
+ annotateTool({
1526
+ name: "seastudio-browser_session_get",
1527
+ description: "\u8BFB\u53D6\u6307\u5B9A Browser Session \u7684\u5F53\u524D\u72B6\u6001\u3002",
1528
+ inputSchema: {
1529
+ type: "object",
1530
+ properties: browserSessionIdParam,
1531
+ required: ["browserSessionId"]
1532
+ }
1533
+ }, {
1534
+ operationKind: "read",
1535
+ requiresExecutionEvidence: false,
1536
+ rawDomain: "browser"
1537
+ }),
1538
+ annotateTool({
1539
+ name: "seastudio-browser_session_close",
1540
+ description: "\u5173\u95ED Browser Session \u5E76\u91CA\u653E\u5176 tabs \u4E0E surface \u7ED1\u5B9A\u3002",
1541
+ inputSchema: {
1542
+ type: "object",
1543
+ properties: browserSessionIdParam,
1544
+ required: ["browserSessionId"]
1545
+ }
1546
+ }, {
1547
+ operationKind: "mutate",
1548
+ requiresExecutionEvidence: false,
1549
+ rawDomain: "browser"
1550
+ }),
1551
+ annotateTool({
1552
+ name: "seastudio-browser_tab_create",
1553
+ description: "\u5728 Browser Session \u4E2D\u521B\u5EFA\u4E00\u4E2A tab\u3002",
1554
+ inputSchema: {
1555
+ type: "object",
1556
+ properties: {
1557
+ ...browserSessionIdParam,
1558
+ url: { type: "string", description: "\u521D\u59CB URL\uFF1B\u4E3A\u7A7A\u65F6\u4F7F\u7528 session homepage\u3002" }
1559
+ },
1560
+ required: ["browserSessionId"]
1561
+ }
1562
+ }, {
1563
+ operationKind: "mutate",
1564
+ requiresExecutionEvidence: false,
1565
+ rawDomain: "browser"
1566
+ }),
1567
+ annotateTool({
1568
+ name: "seastudio-browser_tab_close",
1569
+ description: "\u5173\u95ED Browser Session \u4E2D\u7684 tab\u3002",
1570
+ inputSchema: {
1571
+ type: "object",
1572
+ properties: {
1573
+ ...browserSessionIdParam,
1574
+ ...tabIdParam
1575
+ },
1576
+ required: ["browserSessionId", "tabId"]
1577
+ }
1578
+ }, {
1579
+ operationKind: "mutate",
1580
+ requiresExecutionEvidence: false,
1581
+ rawDomain: "browser"
1582
+ }),
1583
+ annotateTool({
1584
+ name: "seastudio-browser_tab_activate",
1585
+ description: "\u6FC0\u6D3B Browser Session \u4E2D\u7684 tab\u3002",
1586
+ inputSchema: {
1587
+ type: "object",
1588
+ properties: {
1589
+ ...browserSessionIdParam,
1590
+ ...tabIdParam
1591
+ },
1592
+ required: ["browserSessionId", "tabId"]
1593
+ }
1594
+ }, {
1595
+ operationKind: "mutate",
1596
+ requiresExecutionEvidence: false,
1597
+ rawDomain: "browser"
1598
+ }),
1599
+ annotateTool({
1600
+ name: "seastudio-browser_tab_navigate",
1601
+ description: "\u8BA9 Browser Session \u4E2D\u7684 tab \u5BFC\u822A\u5230 URL \u6216\u641C\u7D22\u8BCD\u3002",
1602
+ inputSchema: {
1603
+ type: "object",
1604
+ properties: {
1605
+ ...browserSessionIdParam,
1606
+ ...tabIdParam,
1607
+ url: { type: "string", description: "\u76EE\u6807 URL \u6216\u641C\u7D22\u8BCD\u3002" }
1608
+ },
1609
+ required: ["browserSessionId", "tabId", "url"]
1610
+ }
1611
+ }, {
1612
+ operationKind: "mutate",
1613
+ requiresExecutionEvidence: false,
1614
+ rawDomain: "browser"
1615
+ }),
1616
+ annotateTool({
1617
+ name: "seastudio-browser_tab_go_back",
1618
+ description: "\u8BA9 Browser Session \u4E2D\u7684 tab \u540E\u9000\u3002",
1619
+ inputSchema: {
1620
+ type: "object",
1621
+ properties: {
1622
+ ...browserSessionIdParam,
1623
+ ...tabIdParam
1624
+ },
1625
+ required: ["browserSessionId", "tabId"]
1626
+ }
1627
+ }, {
1628
+ operationKind: "mutate",
1629
+ requiresExecutionEvidence: false,
1630
+ rawDomain: "browser"
1631
+ }),
1632
+ annotateTool({
1633
+ name: "seastudio-browser_tab_go_forward",
1634
+ description: "\u8BA9 Browser Session \u4E2D\u7684 tab \u524D\u8FDB\u3002",
1635
+ inputSchema: {
1636
+ type: "object",
1637
+ properties: {
1638
+ ...browserSessionIdParam,
1639
+ ...tabIdParam
1640
+ },
1641
+ required: ["browserSessionId", "tabId"]
1642
+ }
1643
+ }, {
1644
+ operationKind: "mutate",
1645
+ requiresExecutionEvidence: false,
1646
+ rawDomain: "browser"
1647
+ }),
1648
+ annotateTool({
1649
+ name: "seastudio-browser_tab_reload",
1650
+ description: "\u5237\u65B0 Browser Session \u4E2D\u7684 tab\u3002",
1651
+ inputSchema: {
1652
+ type: "object",
1653
+ properties: {
1654
+ ...browserSessionIdParam,
1655
+ ...tabIdParam
1656
+ },
1657
+ required: ["browserSessionId", "tabId"]
1658
+ }
1659
+ }, {
1660
+ operationKind: "mutate",
1661
+ requiresExecutionEvidence: false,
1662
+ rawDomain: "browser"
1663
+ }),
1664
+ annotateTool({
1665
+ name: "seastudio-browser_tab_stop",
1666
+ description: "\u505C\u6B62 Browser Session \u4E2D\u7684 tab \u52A0\u8F7D\u3002",
1667
+ inputSchema: {
1668
+ type: "object",
1669
+ properties: {
1670
+ ...browserSessionIdParam,
1671
+ ...tabIdParam
1672
+ },
1673
+ required: ["browserSessionId", "tabId"]
1674
+ }
1675
+ }, {
1676
+ operationKind: "mutate",
1677
+ requiresExecutionEvidence: false,
1678
+ rawDomain: "browser"
1679
+ }),
1680
+ annotateTool({
1681
+ name: "seastudio-browser_viewport_bind",
1682
+ description: "\u628A\u4E00\u4E2A Browser Session \u7ED1\u5B9A\u5230\u5F53\u524D UI viewport\uFF0C\u7528\u4E8E\u5BBF\u4E3B\u6E32\u67D3\u771F\u5B9E webview surface\u3002",
1683
+ inputSchema: {
1684
+ type: "object",
1685
+ properties: {
1686
+ ...browserSessionIdParam,
1687
+ ownerInstanceId: { type: "string", description: "\u53EF\u9009 UI owner instance id\u3002" },
1688
+ rect: {
1689
+ type: "object",
1690
+ properties: {
1691
+ x: { type: "number" },
1692
+ y: { type: "number" },
1693
+ width: { type: "number" },
1694
+ height: { type: "number" }
1695
+ },
1696
+ required: ["x", "y", "width", "height"]
1697
+ }
1698
+ },
1699
+ required: ["browserSessionId", "rect"]
1700
+ }
1701
+ }, {
1702
+ operationKind: "mutate",
1703
+ requiresExecutionEvidence: false,
1704
+ rawDomain: "browser"
1705
+ }),
1706
+ annotateTool({
1707
+ name: "seastudio-browser_certificate_respond",
1708
+ description: "\u54CD\u5E94 Browser Session \u8BC1\u4E66\u9519\u8BEF\u51B3\u7B56\u3002",
1709
+ inputSchema: {
1710
+ type: "object",
1711
+ properties: {
1712
+ ...browserSessionIdParam,
1713
+ requestId: { type: "string", description: "\u8BC1\u4E66\u9519\u8BEF\u8BF7\u6C42 ID\u3002" },
1714
+ allow: { type: "boolean", description: "\u662F\u5426\u7EE7\u7EED\u52A0\u8F7D\u8BE5\u8BC1\u4E66\u9519\u8BEF\u9875\u9762\u3002" }
1715
+ },
1716
+ required: ["browserSessionId", "requestId", "allow"]
1717
+ }
1718
+ }, {
1719
+ operationKind: "mutate",
1720
+ requiresExecutionEvidence: false,
1721
+ rawDomain: "browser"
1722
+ })
1723
+ ];
1724
+
1436
1725
  // src/mcp/seastudio/notifications.ts
1437
1726
  var SeastudioRequests = {
1438
1727
  /** 请求打开文件 -> 主程序发布 FILE_OPEN_REQUESTED */
@@ -1469,6 +1758,14 @@ var SeastudioNotifications = {
1469
1758
  PROPOSAL_FEEDBACK: "seastudio:proposal-feedback",
1470
1759
  /** 插件实例请求更新宿主 plugin tab 标题 */
1471
1760
  PLUGIN_TAB_TITLE_CHANGED: "plugin:tab-title_changed",
1761
+ /** Browser Session 状态变化 */
1762
+ BROWSER_SESSION_CHANGED: "browser:session_changed",
1763
+ /** Browser Session 关闭 */
1764
+ BROWSER_SESSION_CLOSED: "browser:session_closed",
1765
+ /** Browser Session 证书错误,需要客户端 UI 决策 */
1766
+ BROWSER_CERTIFICATE_ERROR: "browser:certificate_error",
1767
+ /** Browser Session 收到网页新标签请求 */
1768
+ BROWSER_NEW_TAB_REQUESTED: "browser:new_tab_requested",
1472
1769
  /**
1473
1770
  * Agent 对话 session:新建。消息历史仍由 Agent 前端持有,宿主仅同步列表用于侧栏。
1474
1771
  * 通常由 Agent 通过 notifications/publish 发出;其他订阅者(含 host-ui)可据此更新 UI。
@@ -1513,8 +1810,9 @@ var allTools = [
1513
1810
  ...pluginTabTools,
1514
1811
  ...agentTabTools,
1515
1812
  ...projectTools,
1516
- ...skillTools
1813
+ ...skillTools,
1814
+ ...browserRuntimeTools
1517
1815
  ];
1518
1816
  var tools = allTools;
1519
1817
 
1520
- export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, allTools, annotateTool, batchFlattenCopyEvidenceOutputSchema, callTool, callToolText, dualPathEvidenceOutputSchema, fileDownloadEvidenceOutputSchema, fileTools, fileUrlEvidenceOutputSchema, pluginManagementTools, pluginTabTools, projectTools, request, rootedPathEvidenceOutputSchema, rootedWriteEvidenceOutputSchema, runOneShotShellCommand, seaCloudTools, seastudio, shellSessionCloseEvidenceOutputSchema, shellSessionOpenEvidenceOutputSchema, shellSessionRunEvidenceOutputSchema, shellSessionSignalEvidenceOutputSchema, shellSessionSnapshotEvidenceOutputSchema, shellTools, skillTools, tools };
1818
+ 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 };