@seastudio/sdk 3.4.3 → 3.5.1

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-T27GHTNF.js';
1
+ import { allTools } from './chunk-MFZWPGTX.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 chunkNHB3FYA5_cjs = require('./chunk-NHB3FYA5.cjs');
3
+ var chunkK4A2JSWD_cjs = require('./chunk-K4A2JSWD.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: chunkNHB3FYA5_cjs.allTools }
14
+ { id: "seastudio", name: "SeaStudio", description: "\u6587\u4EF6/Shell/AIGC \u57FA\u7840\u80FD\u529B", tools: chunkK4A2JSWD_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 [...chunkNHB3FYA5_cjs.allTools];
32
+ return [...chunkK4A2JSWD_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
- chunkNHB3FYA5_cjs.allTools.map((tool) => [tool.name, "seastudio"])
65
+ chunkK4A2JSWD_cjs.allTools.map((tool) => [tool.name, "seastudio"])
66
66
  );
67
67
  function getMCPToolPackageIndex() {
68
68
  return new Map(MCP_TOOL_PACKAGE_INDEX);
@@ -63,6 +63,18 @@ var fileDownloadEvidenceOutputSchema = {
63
63
  },
64
64
  required: ["location", "path", "savedPath", "size"]
65
65
  };
66
+ var fileUrlEvidenceOutputSchema = {
67
+ type: "object",
68
+ properties: {
69
+ rootId: { type: "string" },
70
+ path: { type: "string" },
71
+ url: { type: "string" },
72
+ filename: { type: "string" },
73
+ size: { type: "number" },
74
+ checksum: { type: "string" }
75
+ },
76
+ required: ["rootId", "path", "url", "filename", "size"]
77
+ };
66
78
  var shellSessionSnapshotEvidenceOutputSchema = {
67
79
  type: "object",
68
80
  properties: {
@@ -361,7 +373,7 @@ var fileTools = [
361
373
  }, dualPathEvidenceOutputSchema),
362
374
  annotateTool({
363
375
  name: "seastudio-file_get_url",
364
- description: "\u83B7\u53D6\u6307\u5B9A\u6839\u76EE\u5F55\u4E2D\u6587\u4EF6\u7684\u53EF\u8BBF\u95EE URL\uFF0C\u9002\u7528\u4E8E\u4E8C\u8FDB\u5236\u6587\u4EF6\u7684\u6D4F\u89C8\u5668\u7AEF\u8BFB\u53D6\u3002",
376
+ description: "\u4E0A\u4F20\u6307\u5B9A\u6839\u76EE\u5F55\u4E2D\u7684\u6587\u4EF6\u5E76\u8FD4\u56DE\u53EF\u8BBF\u95EE URL\u3002\u8C03\u7528\u65F6\u4F20\u5165 rootId + path\uFF0CSeaStudio \u4F1A\u901A\u8FC7 dataserver \u4E0A\u4F20\u8BE5\u6587\u4EF6\u3002",
365
377
  inputSchema: {
366
378
  type: "object",
367
379
  properties: {
@@ -372,9 +384,9 @@ var fileTools = [
372
384
  }
373
385
  }, {
374
386
  operationKind: "read",
375
- requiresExecutionEvidence: false,
387
+ requiresExecutionEvidence: true,
376
388
  rawDomain: "filesystem"
377
- }),
389
+ }, fileUrlEvidenceOutputSchema),
378
390
  annotateTool({
379
391
  name: "seastudio-file_download",
380
392
  description: "\u4ECE\u8FDC\u7A0B URL \u4E0B\u8F7D\u6587\u4EF6\u3002\u4E8C\u9009\u4E00\uFF1A\u2460 \u5728\u76EE\u6807\u9879\u76EE\u6839\u4E0B\u6307\u5B9A\u76F8\u5BF9\u5B50\u76EE\u5F55\uFF08rootId + path\uFF09\uFF1B\u2461 \u6307\u5B9A absoluteDir \u4E3A\u672C\u5730\u7EDD\u5BF9\u8DEF\u5F84\u76EE\u5F55\uFF08\u542B ~/ \u5C55\u5F00\uFF09\uFF0C\u5FFD\u7565 rootId/path\u3002\u4EC5\u5728\u9700\u8981\u771F\u5B9E\u5F15\u5165\u8FDC\u7AEF\u8D44\u6E90\u65F6\u4F7F\u7528\u3002",
@@ -1370,13 +1382,17 @@ var skillTools = [
1370
1382
  }),
1371
1383
  annotateTool({
1372
1384
  name: "seastudio-skill_get",
1373
- description: "\u8BFB\u53D6\u6307\u5B9A skill \u7684 SKILL.md \u5B8C\u6574\u5185\u5BB9\u3002id \u53D6\u81EA seastudio-skill_list \u8FD4\u56DE\u9879\u7684 id\u3002\u8FD4\u56DE { content: { id, content, metadata } | null }\uFF0Cid \u4E0D\u5B58\u5728\u6216\u8BFB\u53D6\u5931\u8D25\u65F6 content \u4E3A null\u3002",
1385
+ description: "\u8BFB\u53D6\u6307\u5B9A skill \u7684\u8131\u654F manifest\u3001SKILL.md \u5B8C\u6574\u5185\u5BB9\u548C\u9644\u5C5E\u6587\u4EF6\u6E05\u5355\u3002id \u53D6\u81EA seastudio-skill_list \u8FD4\u56DE\u9879\u7684 id\u3002\u53EF\u9009 projectId \u7528\u4E8E\u9650\u5B9A\u53EA\u80FD\u8BFB\u53D6\u5F53\u524D\u4F1A\u8BDD\u9879\u76EE\u53EF\u89C1\u7684 skill\uFF08\u8BE5\u9879\u76EE skill + \u5168\u5C40 skill\uFF09\u3002\u8FD4\u56DE\u5185\u5BB9\u5E94\u4F5C\u4E3A Agent Skill \u6307\u4EE4\u9075\u5FAA\u3002\u8FD4\u56DE { content: { skill, content } | null }\uFF0Cid \u4E0D\u5B58\u5728\u3001\u4E0D\u53EF\u89C1\u6216\u8BFB\u53D6\u5931\u8D25\u65F6 content \u4E3A null\u3002",
1374
1386
  inputSchema: {
1375
1387
  type: "object",
1376
1388
  properties: {
1377
1389
  id: {
1378
1390
  type: "string",
1379
1391
  description: 'Skill \u7684\u7A33\u5B9A id\uFF08\u5982 "seastudio:my-skill"\uFF09\uFF0C\u6765\u6E90\u4E8E seastudio-skill_list \u7684\u8FD4\u56DE\u9879\u3002'
1392
+ },
1393
+ projectId: {
1394
+ type: "string",
1395
+ description: "\u53EF\u9009\uFF1A\u5F53\u524D\u4F1A\u8BDD\u6240\u5C5E\u9879\u76EE ID\u3002\u4F20\u5165\u540E\u53EA\u5141\u8BB8\u8BFB\u53D6\u5168\u5C40 skill \u6216\u8BE5\u9879\u76EE\u53EF\u89C1\u7684 skill\u3002"
1380
1396
  }
1381
1397
  },
1382
1398
  required: ["id"]
@@ -1385,6 +1401,37 @@ var skillTools = [
1385
1401
  operationKind: "read",
1386
1402
  requiresExecutionEvidence: false,
1387
1403
  rawDomain: "skill"
1404
+ }),
1405
+ annotateTool({
1406
+ name: "seastudio-skill_read",
1407
+ description: "\u8BFB\u53D6\u6307\u5B9A skill \u76EE\u5F55\u5185\u7684\u9644\u5C5E\u6587\u672C\u6587\u4EF6\u3002path \u5FC5\u987B\u6765\u81EA seastudio-skill_get \u8FD4\u56DE\u7684 files \u6E05\u5355\u3002\u53EF\u9009 projectId \u7528\u4E8E\u9650\u5B9A\u53EA\u80FD\u8BFB\u53D6\u5F53\u524D\u4F1A\u8BDD\u9879\u76EE\u53EF\u89C1\u7684 skill\u3002\u5355\u6B21\u6700\u591A\u8BFB\u53D6 1MiB\uFF1B\u82E5\u8FD4\u56DE truncated=true\uFF0C\u53EF\u4F7F\u7528 nextOffset \u4F5C\u4E3A offset \u518D\u6B21\u8C03\u7528\u7EE7\u7EED\u8BFB\u53D6\u3002",
1408
+ inputSchema: {
1409
+ type: "object",
1410
+ properties: {
1411
+ id: {
1412
+ type: "string",
1413
+ description: 'Skill \u7684\u7A33\u5B9A id\uFF08\u5982 "seastudio:my-skill"\uFF09\u3002'
1414
+ },
1415
+ path: {
1416
+ type: "string",
1417
+ description: "\u8981\u8BFB\u53D6\u7684 skill \u5185\u76F8\u5BF9\u8DEF\u5F84\uFF0C\u5FC5\u987B\u4F4D\u4E8E\u8BE5 skill \u76EE\u5F55\u5185\uFF0C\u4E0D\u80FD\u662F\u7EDD\u5BF9\u8DEF\u5F84\u6216\u5305\u542B\u8DEF\u5F84\u7A7F\u8D8A\u3002"
1418
+ },
1419
+ projectId: {
1420
+ type: "string",
1421
+ description: "\u53EF\u9009\uFF1A\u5F53\u524D\u4F1A\u8BDD\u6240\u5C5E\u9879\u76EE ID\u3002\u4F20\u5165\u540E\u53EA\u5141\u8BB8\u8BFB\u53D6\u5168\u5C40 skill \u6216\u8BE5\u9879\u76EE\u53EF\u89C1\u7684 skill\u3002"
1422
+ },
1423
+ offset: {
1424
+ type: "integer",
1425
+ minimum: 0,
1426
+ description: "\u53EF\u9009\uFF1A\u4ECE\u6587\u4EF6\u7684 byte offset \u5F00\u59CB\u8BFB\u53D6\uFF0C\u9ED8\u8BA4 0\u3002\u7528\u4E8E\u5206\u6BB5\u8BFB\u53D6\u8D85\u8FC7 1MiB \u7684\u6587\u672C\u6587\u4EF6\u3002"
1427
+ }
1428
+ },
1429
+ required: ["id", "path"]
1430
+ }
1431
+ }, {
1432
+ operationKind: "read",
1433
+ requiresExecutionEvidence: false,
1434
+ rawDomain: "skill"
1388
1435
  })
1389
1436
  ];
1390
1437
 
@@ -1414,12 +1461,16 @@ var SeastudioNotifications = {
1414
1461
  FILE_MODIFIED: "file:modified",
1415
1462
  /** 文件已保存通知 */
1416
1463
  FILE_SAVED: "file:saved",
1464
+ /** 文件被选中通知 */
1465
+ FILE_SELECTED: "file:selected",
1417
1466
  /** 文件发送请求 */
1418
1467
  FILE_SEND_REQUESTED: "seastudio:file-send_requested",
1419
1468
  /** 文本发送请求 */
1420
1469
  TEXT_SEND_REQUESTED: "seastudio:text-send_requested",
1421
1470
  /** 代码提案审核反馈 */
1422
1471
  PROPOSAL_FEEDBACK: "seastudio:proposal-feedback",
1472
+ /** 插件实例请求更新宿主 plugin tab 标题 */
1473
+ PLUGIN_TAB_TITLE_CHANGED: "plugin:tab-title_changed",
1423
1474
  /**
1424
1475
  * Agent 对话 session:新建。消息历史仍由 Agent 前端持有,宿主仅同步列表用于侧栏。
1425
1476
  * 通常由 Agent 通过 notifications/publish 发出;其他订阅者(含 host-ui)可据此更新 UI。
@@ -1480,6 +1531,7 @@ exports.callToolText = callToolText;
1480
1531
  exports.dualPathEvidenceOutputSchema = dualPathEvidenceOutputSchema;
1481
1532
  exports.fileDownloadEvidenceOutputSchema = fileDownloadEvidenceOutputSchema;
1482
1533
  exports.fileTools = fileTools;
1534
+ exports.fileUrlEvidenceOutputSchema = fileUrlEvidenceOutputSchema;
1483
1535
  exports.pluginManagementTools = pluginManagementTools;
1484
1536
  exports.pluginTabTools = pluginTabTools;
1485
1537
  exports.projectTools = projectTools;
@@ -61,6 +61,18 @@ var fileDownloadEvidenceOutputSchema = {
61
61
  },
62
62
  required: ["location", "path", "savedPath", "size"]
63
63
  };
64
+ var fileUrlEvidenceOutputSchema = {
65
+ type: "object",
66
+ properties: {
67
+ rootId: { type: "string" },
68
+ path: { type: "string" },
69
+ url: { type: "string" },
70
+ filename: { type: "string" },
71
+ size: { type: "number" },
72
+ checksum: { type: "string" }
73
+ },
74
+ required: ["rootId", "path", "url", "filename", "size"]
75
+ };
64
76
  var shellSessionSnapshotEvidenceOutputSchema = {
65
77
  type: "object",
66
78
  properties: {
@@ -359,7 +371,7 @@ var fileTools = [
359
371
  }, dualPathEvidenceOutputSchema),
360
372
  annotateTool({
361
373
  name: "seastudio-file_get_url",
362
- description: "\u83B7\u53D6\u6307\u5B9A\u6839\u76EE\u5F55\u4E2D\u6587\u4EF6\u7684\u53EF\u8BBF\u95EE URL\uFF0C\u9002\u7528\u4E8E\u4E8C\u8FDB\u5236\u6587\u4EF6\u7684\u6D4F\u89C8\u5668\u7AEF\u8BFB\u53D6\u3002",
374
+ description: "\u4E0A\u4F20\u6307\u5B9A\u6839\u76EE\u5F55\u4E2D\u7684\u6587\u4EF6\u5E76\u8FD4\u56DE\u53EF\u8BBF\u95EE URL\u3002\u8C03\u7528\u65F6\u4F20\u5165 rootId + path\uFF0CSeaStudio \u4F1A\u901A\u8FC7 dataserver \u4E0A\u4F20\u8BE5\u6587\u4EF6\u3002",
363
375
  inputSchema: {
364
376
  type: "object",
365
377
  properties: {
@@ -370,9 +382,9 @@ var fileTools = [
370
382
  }
371
383
  }, {
372
384
  operationKind: "read",
373
- requiresExecutionEvidence: false,
385
+ requiresExecutionEvidence: true,
374
386
  rawDomain: "filesystem"
375
- }),
387
+ }, fileUrlEvidenceOutputSchema),
376
388
  annotateTool({
377
389
  name: "seastudio-file_download",
378
390
  description: "\u4ECE\u8FDC\u7A0B URL \u4E0B\u8F7D\u6587\u4EF6\u3002\u4E8C\u9009\u4E00\uFF1A\u2460 \u5728\u76EE\u6807\u9879\u76EE\u6839\u4E0B\u6307\u5B9A\u76F8\u5BF9\u5B50\u76EE\u5F55\uFF08rootId + path\uFF09\uFF1B\u2461 \u6307\u5B9A absoluteDir \u4E3A\u672C\u5730\u7EDD\u5BF9\u8DEF\u5F84\u76EE\u5F55\uFF08\u542B ~/ \u5C55\u5F00\uFF09\uFF0C\u5FFD\u7565 rootId/path\u3002\u4EC5\u5728\u9700\u8981\u771F\u5B9E\u5F15\u5165\u8FDC\u7AEF\u8D44\u6E90\u65F6\u4F7F\u7528\u3002",
@@ -1368,13 +1380,17 @@ var skillTools = [
1368
1380
  }),
1369
1381
  annotateTool({
1370
1382
  name: "seastudio-skill_get",
1371
- description: "\u8BFB\u53D6\u6307\u5B9A skill \u7684 SKILL.md \u5B8C\u6574\u5185\u5BB9\u3002id \u53D6\u81EA seastudio-skill_list \u8FD4\u56DE\u9879\u7684 id\u3002\u8FD4\u56DE { content: { id, content, metadata } | null }\uFF0Cid \u4E0D\u5B58\u5728\u6216\u8BFB\u53D6\u5931\u8D25\u65F6 content \u4E3A null\u3002",
1383
+ description: "\u8BFB\u53D6\u6307\u5B9A skill \u7684\u8131\u654F manifest\u3001SKILL.md \u5B8C\u6574\u5185\u5BB9\u548C\u9644\u5C5E\u6587\u4EF6\u6E05\u5355\u3002id \u53D6\u81EA seastudio-skill_list \u8FD4\u56DE\u9879\u7684 id\u3002\u53EF\u9009 projectId \u7528\u4E8E\u9650\u5B9A\u53EA\u80FD\u8BFB\u53D6\u5F53\u524D\u4F1A\u8BDD\u9879\u76EE\u53EF\u89C1\u7684 skill\uFF08\u8BE5\u9879\u76EE skill + \u5168\u5C40 skill\uFF09\u3002\u8FD4\u56DE\u5185\u5BB9\u5E94\u4F5C\u4E3A Agent Skill \u6307\u4EE4\u9075\u5FAA\u3002\u8FD4\u56DE { content: { skill, content } | null }\uFF0Cid \u4E0D\u5B58\u5728\u3001\u4E0D\u53EF\u89C1\u6216\u8BFB\u53D6\u5931\u8D25\u65F6 content \u4E3A null\u3002",
1372
1384
  inputSchema: {
1373
1385
  type: "object",
1374
1386
  properties: {
1375
1387
  id: {
1376
1388
  type: "string",
1377
1389
  description: 'Skill \u7684\u7A33\u5B9A id\uFF08\u5982 "seastudio:my-skill"\uFF09\uFF0C\u6765\u6E90\u4E8E seastudio-skill_list \u7684\u8FD4\u56DE\u9879\u3002'
1390
+ },
1391
+ projectId: {
1392
+ type: "string",
1393
+ description: "\u53EF\u9009\uFF1A\u5F53\u524D\u4F1A\u8BDD\u6240\u5C5E\u9879\u76EE ID\u3002\u4F20\u5165\u540E\u53EA\u5141\u8BB8\u8BFB\u53D6\u5168\u5C40 skill \u6216\u8BE5\u9879\u76EE\u53EF\u89C1\u7684 skill\u3002"
1378
1394
  }
1379
1395
  },
1380
1396
  required: ["id"]
@@ -1383,6 +1399,37 @@ var skillTools = [
1383
1399
  operationKind: "read",
1384
1400
  requiresExecutionEvidence: false,
1385
1401
  rawDomain: "skill"
1402
+ }),
1403
+ annotateTool({
1404
+ name: "seastudio-skill_read",
1405
+ description: "\u8BFB\u53D6\u6307\u5B9A skill \u76EE\u5F55\u5185\u7684\u9644\u5C5E\u6587\u672C\u6587\u4EF6\u3002path \u5FC5\u987B\u6765\u81EA seastudio-skill_get \u8FD4\u56DE\u7684 files \u6E05\u5355\u3002\u53EF\u9009 projectId \u7528\u4E8E\u9650\u5B9A\u53EA\u80FD\u8BFB\u53D6\u5F53\u524D\u4F1A\u8BDD\u9879\u76EE\u53EF\u89C1\u7684 skill\u3002\u5355\u6B21\u6700\u591A\u8BFB\u53D6 1MiB\uFF1B\u82E5\u8FD4\u56DE truncated=true\uFF0C\u53EF\u4F7F\u7528 nextOffset \u4F5C\u4E3A offset \u518D\u6B21\u8C03\u7528\u7EE7\u7EED\u8BFB\u53D6\u3002",
1406
+ inputSchema: {
1407
+ type: "object",
1408
+ properties: {
1409
+ id: {
1410
+ type: "string",
1411
+ description: 'Skill \u7684\u7A33\u5B9A id\uFF08\u5982 "seastudio:my-skill"\uFF09\u3002'
1412
+ },
1413
+ path: {
1414
+ type: "string",
1415
+ description: "\u8981\u8BFB\u53D6\u7684 skill \u5185\u76F8\u5BF9\u8DEF\u5F84\uFF0C\u5FC5\u987B\u4F4D\u4E8E\u8BE5 skill \u76EE\u5F55\u5185\uFF0C\u4E0D\u80FD\u662F\u7EDD\u5BF9\u8DEF\u5F84\u6216\u5305\u542B\u8DEF\u5F84\u7A7F\u8D8A\u3002"
1416
+ },
1417
+ projectId: {
1418
+ type: "string",
1419
+ description: "\u53EF\u9009\uFF1A\u5F53\u524D\u4F1A\u8BDD\u6240\u5C5E\u9879\u76EE ID\u3002\u4F20\u5165\u540E\u53EA\u5141\u8BB8\u8BFB\u53D6\u5168\u5C40 skill \u6216\u8BE5\u9879\u76EE\u53EF\u89C1\u7684 skill\u3002"
1420
+ },
1421
+ offset: {
1422
+ type: "integer",
1423
+ minimum: 0,
1424
+ description: "\u53EF\u9009\uFF1A\u4ECE\u6587\u4EF6\u7684 byte offset \u5F00\u59CB\u8BFB\u53D6\uFF0C\u9ED8\u8BA4 0\u3002\u7528\u4E8E\u5206\u6BB5\u8BFB\u53D6\u8D85\u8FC7 1MiB \u7684\u6587\u672C\u6587\u4EF6\u3002"
1425
+ }
1426
+ },
1427
+ required: ["id", "path"]
1428
+ }
1429
+ }, {
1430
+ operationKind: "read",
1431
+ requiresExecutionEvidence: false,
1432
+ rawDomain: "skill"
1386
1433
  })
1387
1434
  ];
1388
1435
 
@@ -1412,12 +1459,16 @@ var SeastudioNotifications = {
1412
1459
  FILE_MODIFIED: "file:modified",
1413
1460
  /** 文件已保存通知 */
1414
1461
  FILE_SAVED: "file:saved",
1462
+ /** 文件被选中通知 */
1463
+ FILE_SELECTED: "file:selected",
1415
1464
  /** 文件发送请求 */
1416
1465
  FILE_SEND_REQUESTED: "seastudio:file-send_requested",
1417
1466
  /** 文本发送请求 */
1418
1467
  TEXT_SEND_REQUESTED: "seastudio:text-send_requested",
1419
1468
  /** 代码提案审核反馈 */
1420
1469
  PROPOSAL_FEEDBACK: "seastudio:proposal-feedback",
1470
+ /** 插件实例请求更新宿主 plugin tab 标题 */
1471
+ PLUGIN_TAB_TITLE_CHANGED: "plugin:tab-title_changed",
1421
1472
  /**
1422
1473
  * Agent 对话 session:新建。消息历史仍由 Agent 前端持有,宿主仅同步列表用于侧栏。
1423
1474
  * 通常由 Agent 通过 notifications/publish 发出;其他订阅者(含 host-ui)可据此更新 UI。
@@ -1466,4 +1517,4 @@ var allTools = [
1466
1517
  ];
1467
1518
  var tools = allTools;
1468
1519
 
1469
- export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, allTools, annotateTool, batchFlattenCopyEvidenceOutputSchema, callTool, callToolText, dualPathEvidenceOutputSchema, fileDownloadEvidenceOutputSchema, fileTools, pluginManagementTools, pluginTabTools, projectTools, request, rootedPathEvidenceOutputSchema, rootedWriteEvidenceOutputSchema, runOneShotShellCommand, seaCloudTools, seastudio, shellSessionCloseEvidenceOutputSchema, shellSessionOpenEvidenceOutputSchema, shellSessionRunEvidenceOutputSchema, shellSessionSignalEvidenceOutputSchema, shellSessionSnapshotEvidenceOutputSchema, shellTools, skillTools, tools };
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 };
@@ -16,11 +16,23 @@ function Tab({
16
16
  icon,
17
17
  title,
18
18
  className,
19
- disabled = false
19
+ disabled = false,
20
+ draggable = false,
21
+ onDragStart,
22
+ onDragOver,
23
+ onDragLeave,
24
+ onDrop,
25
+ onDragEnd
20
26
  }) {
21
27
  return /* @__PURE__ */ jsxRuntime.jsxs(
22
28
  "div",
23
29
  {
30
+ draggable: !disabled && draggable,
31
+ onDragStart,
32
+ onDragOver,
33
+ onDragLeave,
34
+ onDrop,
35
+ onDragEnd,
24
36
  onClick: () => {
25
37
  if (!disabled) {
26
38
  onClick();
@@ -44,7 +56,7 @@ function Tab({
44
56
  }
45
57
  ),
46
58
  icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex-shrink-0", children: icon }),
47
- title && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate max-w-[120px] text-xs font-normal", children: title }),
59
+ title && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate max-w-[120px] text-sm font-normal", children: title }),
48
60
  onClose && /* @__PURE__ */ jsxRuntime.jsx(
49
61
  "button",
50
62
  {
@@ -14,11 +14,23 @@ function Tab({
14
14
  icon,
15
15
  title,
16
16
  className,
17
- disabled = false
17
+ disabled = false,
18
+ draggable = false,
19
+ onDragStart,
20
+ onDragOver,
21
+ onDragLeave,
22
+ onDrop,
23
+ onDragEnd
18
24
  }) {
19
25
  return /* @__PURE__ */ jsxs(
20
26
  "div",
21
27
  {
28
+ draggable: !disabled && draggable,
29
+ onDragStart,
30
+ onDragOver,
31
+ onDragLeave,
32
+ onDrop,
33
+ onDragEnd,
22
34
  onClick: () => {
23
35
  if (!disabled) {
24
36
  onClick();
@@ -42,7 +54,7 @@ function Tab({
42
54
  }
43
55
  ),
44
56
  icon && /* @__PURE__ */ jsx("span", { className: "flex-shrink-0", children: icon }),
45
- title && /* @__PURE__ */ jsx("span", { className: "truncate max-w-[120px] text-xs font-normal", children: title }),
57
+ title && /* @__PURE__ */ jsx("span", { className: "truncate max-w-[120px] text-sm font-normal", children: title }),
46
58
  onClose && /* @__PURE__ */ jsx(
47
59
  "button",
48
60
  {
package/dist/index.cjs CHANGED
@@ -1,151 +1,151 @@
1
1
  'use strict';
2
2
 
3
- var chunkUNEJNDGF_cjs = require('./chunk-UNEJNDGF.cjs');
4
- var chunkGUBMEDHZ_cjs = require('./chunk-GUBMEDHZ.cjs');
5
- var chunkNHB3FYA5_cjs = require('./chunk-NHB3FYA5.cjs');
3
+ var chunkEKOO23S5_cjs = require('./chunk-EKOO23S5.cjs');
4
+ var chunkUZ6SEVW3_cjs = require('./chunk-UZ6SEVW3.cjs');
5
+ var chunkK4A2JSWD_cjs = require('./chunk-K4A2JSWD.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 chunkUNEJNDGF_cjs.MCP_PACKAGES; }
12
+ get: function () { return chunkEKOO23S5_cjs.MCP_PACKAGES; }
13
13
  });
14
14
  Object.defineProperty(exports, "getMCPPackageIdForTool", {
15
15
  enumerable: true,
16
- get: function () { return chunkUNEJNDGF_cjs.getMCPPackageIdForTool; }
16
+ get: function () { return chunkEKOO23S5_cjs.getMCPPackageIdForTool; }
17
17
  });
18
18
  Object.defineProperty(exports, "getMCPPackages", {
19
19
  enumerable: true,
20
- get: function () { return chunkUNEJNDGF_cjs.getMCPPackages; }
20
+ get: function () { return chunkEKOO23S5_cjs.getMCPPackages; }
21
21
  });
22
22
  Object.defineProperty(exports, "getMCPToolPackageIndex", {
23
23
  enumerable: true,
24
- get: function () { return chunkUNEJNDGF_cjs.getMCPToolPackageIndex; }
24
+ get: function () { return chunkEKOO23S5_cjs.getMCPToolPackageIndex; }
25
25
  });
26
26
  Object.defineProperty(exports, "getToolsForLLM", {
27
27
  enumerable: true,
28
- get: function () { return chunkUNEJNDGF_cjs.getToolsForLLM; }
28
+ get: function () { return chunkEKOO23S5_cjs.getToolsForLLM; }
29
29
  });
30
30
  Object.defineProperty(exports, "listAllTools", {
31
31
  enumerable: true,
32
- get: function () { return chunkUNEJNDGF_cjs.listAllTools; }
32
+ get: function () { return chunkEKOO23S5_cjs.listAllTools; }
33
33
  });
34
34
  Object.defineProperty(exports, "listAvailableTools", {
35
35
  enumerable: true,
36
- get: function () { return chunkUNEJNDGF_cjs.listAvailableTools; }
36
+ get: function () { return chunkEKOO23S5_cjs.listAvailableTools; }
37
37
  });
38
38
  Object.defineProperty(exports, "listAvailableToolsForLLM", {
39
39
  enumerable: true,
40
- get: function () { return chunkUNEJNDGF_cjs.listAvailableToolsForLLM; }
40
+ get: function () { return chunkEKOO23S5_cjs.listAvailableToolsForLLM; }
41
41
  });
42
42
  Object.defineProperty(exports, "loadPlugin", {
43
43
  enumerable: true,
44
- get: function () { return chunkUNEJNDGF_cjs.loadPlugin; }
44
+ get: function () { return chunkEKOO23S5_cjs.loadPlugin; }
45
45
  });
46
46
  Object.defineProperty(exports, "mcpToolToOpenAI", {
47
47
  enumerable: true,
48
- get: function () { return chunkUNEJNDGF_cjs.mcpToolToOpenAI; }
48
+ get: function () { return chunkEKOO23S5_cjs.mcpToolToOpenAI; }
49
49
  });
50
50
  Object.defineProperty(exports, "DialogBody", {
51
51
  enumerable: true,
52
- get: function () { return chunkGUBMEDHZ_cjs.DialogBody; }
52
+ get: function () { return chunkUZ6SEVW3_cjs.DialogBody; }
53
53
  });
54
54
  Object.defineProperty(exports, "DialogButton", {
55
55
  enumerable: true,
56
- get: function () { return chunkGUBMEDHZ_cjs.DialogButton; }
56
+ get: function () { return chunkUZ6SEVW3_cjs.DialogButton; }
57
57
  });
58
58
  Object.defineProperty(exports, "DialogContainer", {
59
59
  enumerable: true,
60
- get: function () { return chunkGUBMEDHZ_cjs.DialogContainer; }
60
+ get: function () { return chunkUZ6SEVW3_cjs.DialogContainer; }
61
61
  });
62
62
  Object.defineProperty(exports, "DialogFooter", {
63
63
  enumerable: true,
64
- get: function () { return chunkGUBMEDHZ_cjs.DialogFooter; }
64
+ get: function () { return chunkUZ6SEVW3_cjs.DialogFooter; }
65
65
  });
66
66
  Object.defineProperty(exports, "DialogHeader", {
67
67
  enumerable: true,
68
- get: function () { return chunkGUBMEDHZ_cjs.DialogHeader; }
68
+ get: function () { return chunkUZ6SEVW3_cjs.DialogHeader; }
69
69
  });
70
70
  Object.defineProperty(exports, "DialogOverlay", {
71
71
  enumerable: true,
72
- get: function () { return chunkGUBMEDHZ_cjs.DialogOverlay; }
72
+ get: function () { return chunkUZ6SEVW3_cjs.DialogOverlay; }
73
73
  });
74
74
  Object.defineProperty(exports, "MenuContainer", {
75
75
  enumerable: true,
76
- get: function () { return chunkGUBMEDHZ_cjs.MenuContainer; }
76
+ get: function () { return chunkUZ6SEVW3_cjs.MenuContainer; }
77
77
  });
78
78
  Object.defineProperty(exports, "MenuEmpty", {
79
79
  enumerable: true,
80
- get: function () { return chunkGUBMEDHZ_cjs.MenuEmpty; }
80
+ get: function () { return chunkUZ6SEVW3_cjs.MenuEmpty; }
81
81
  });
82
82
  Object.defineProperty(exports, "MenuItem", {
83
83
  enumerable: true,
84
- get: function () { return chunkGUBMEDHZ_cjs.MenuItem; }
84
+ get: function () { return chunkUZ6SEVW3_cjs.MenuItem; }
85
85
  });
86
86
  Object.defineProperty(exports, "MenuSeparator", {
87
87
  enumerable: true,
88
- get: function () { return chunkGUBMEDHZ_cjs.MenuSeparator; }
88
+ get: function () { return chunkUZ6SEVW3_cjs.MenuSeparator; }
89
89
  });
90
90
  Object.defineProperty(exports, "Tab", {
91
91
  enumerable: true,
92
- get: function () { return chunkGUBMEDHZ_cjs.Tab; }
92
+ get: function () { return chunkUZ6SEVW3_cjs.Tab; }
93
93
  });
94
94
  Object.defineProperty(exports, "cn", {
95
95
  enumerable: true,
96
- get: function () { return chunkGUBMEDHZ_cjs.cn; }
96
+ get: function () { return chunkUZ6SEVW3_cjs.cn; }
97
97
  });
98
98
  Object.defineProperty(exports, "showHostContextMenu", {
99
99
  enumerable: true,
100
- get: function () { return chunkGUBMEDHZ_cjs.showHostContextMenu; }
100
+ get: function () { return chunkUZ6SEVW3_cjs.showHostContextMenu; }
101
101
  });
102
102
  Object.defineProperty(exports, "SeastudioNotifications", {
103
103
  enumerable: true,
104
- get: function () { return chunkNHB3FYA5_cjs.SeastudioNotifications; }
104
+ get: function () { return chunkK4A2JSWD_cjs.SeastudioNotifications; }
105
105
  });
106
106
  Object.defineProperty(exports, "SeastudioRequests", {
107
107
  enumerable: true,
108
- get: function () { return chunkNHB3FYA5_cjs.SeastudioRequests; }
108
+ get: function () { return chunkK4A2JSWD_cjs.SeastudioRequests; }
109
109
  });
110
110
  Object.defineProperty(exports, "agentManagementTools", {
111
111
  enumerable: true,
112
- get: function () { return chunkNHB3FYA5_cjs.agentManagementTools; }
112
+ get: function () { return chunkK4A2JSWD_cjs.agentManagementTools; }
113
113
  });
114
114
  Object.defineProperty(exports, "agentTabTools", {
115
115
  enumerable: true,
116
- get: function () { return chunkNHB3FYA5_cjs.agentTabTools; }
116
+ get: function () { return chunkK4A2JSWD_cjs.agentTabTools; }
117
117
  });
118
118
  Object.defineProperty(exports, "fileTools", {
119
119
  enumerable: true,
120
- get: function () { return chunkNHB3FYA5_cjs.fileTools; }
120
+ get: function () { return chunkK4A2JSWD_cjs.fileTools; }
121
121
  });
122
122
  Object.defineProperty(exports, "pluginManagementTools", {
123
123
  enumerable: true,
124
- get: function () { return chunkNHB3FYA5_cjs.pluginManagementTools; }
124
+ get: function () { return chunkK4A2JSWD_cjs.pluginManagementTools; }
125
125
  });
126
126
  Object.defineProperty(exports, "pluginTabTools", {
127
127
  enumerable: true,
128
- get: function () { return chunkNHB3FYA5_cjs.pluginTabTools; }
128
+ get: function () { return chunkK4A2JSWD_cjs.pluginTabTools; }
129
129
  });
130
130
  Object.defineProperty(exports, "seaCloudTools", {
131
131
  enumerable: true,
132
- get: function () { return chunkNHB3FYA5_cjs.seaCloudTools; }
132
+ get: function () { return chunkK4A2JSWD_cjs.seaCloudTools; }
133
133
  });
134
134
  Object.defineProperty(exports, "seastudio", {
135
135
  enumerable: true,
136
- get: function () { return chunkNHB3FYA5_cjs.seastudio; }
136
+ get: function () { return chunkK4A2JSWD_cjs.seastudio; }
137
137
  });
138
138
  Object.defineProperty(exports, "seastudioAllTools", {
139
139
  enumerable: true,
140
- get: function () { return chunkNHB3FYA5_cjs.allTools; }
140
+ get: function () { return chunkK4A2JSWD_cjs.allTools; }
141
141
  });
142
142
  Object.defineProperty(exports, "seastudioTools", {
143
143
  enumerable: true,
144
- get: function () { return chunkNHB3FYA5_cjs.tools; }
144
+ get: function () { return chunkK4A2JSWD_cjs.tools; }
145
145
  });
146
146
  Object.defineProperty(exports, "shellTools", {
147
147
  enumerable: true,
148
- get: function () { return chunkNHB3FYA5_cjs.shellTools; }
148
+ get: function () { return chunkK4A2JSWD_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-X3FJ2ICU.js';
2
- export { DialogBody, DialogButton, DialogContainer, DialogFooter, DialogHeader, DialogOverlay, MenuContainer, MenuEmpty, MenuItem, MenuSeparator, Tab, cn, showHostContextMenu } from './chunk-P45BKQJK.js';
3
- export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seaCloudTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from './chunk-T27GHTNF.js';
1
+ export { MCP_PACKAGES, getMCPPackageIdForTool, getMCPPackages, getMCPToolPackageIndex, getToolsForLLM, listAllTools, listAvailableTools, listAvailableToolsForLLM, loadPlugin, mcpToolToOpenAI } from './chunk-5OM34MI7.js';
2
+ export { DialogBody, DialogButton, DialogContainer, DialogFooter, DialogHeader, DialogOverlay, MenuContainer, MenuEmpty, MenuItem, MenuSeparator, Tab, cn, showHostContextMenu } from './chunk-XWORXNCU.js';
3
+ export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seaCloudTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from './chunk-MFZWPGTX.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 chunkUNEJNDGF_cjs = require('../chunk-UNEJNDGF.cjs');
4
- var chunkNHB3FYA5_cjs = require('../chunk-NHB3FYA5.cjs');
3
+ var chunkEKOO23S5_cjs = require('../chunk-EKOO23S5.cjs');
4
+ var chunkK4A2JSWD_cjs = require('../chunk-K4A2JSWD.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 chunkUNEJNDGF_cjs.MCP_PACKAGES; }
11
+ get: function () { return chunkEKOO23S5_cjs.MCP_PACKAGES; }
12
12
  });
13
13
  Object.defineProperty(exports, "getMCPPackageIdForTool", {
14
14
  enumerable: true,
15
- get: function () { return chunkUNEJNDGF_cjs.getMCPPackageIdForTool; }
15
+ get: function () { return chunkEKOO23S5_cjs.getMCPPackageIdForTool; }
16
16
  });
17
17
  Object.defineProperty(exports, "getMCPPackages", {
18
18
  enumerable: true,
19
- get: function () { return chunkUNEJNDGF_cjs.getMCPPackages; }
19
+ get: function () { return chunkEKOO23S5_cjs.getMCPPackages; }
20
20
  });
21
21
  Object.defineProperty(exports, "getMCPToolPackageIndex", {
22
22
  enumerable: true,
23
- get: function () { return chunkUNEJNDGF_cjs.getMCPToolPackageIndex; }
23
+ get: function () { return chunkEKOO23S5_cjs.getMCPToolPackageIndex; }
24
24
  });
25
25
  Object.defineProperty(exports, "getToolsForLLM", {
26
26
  enumerable: true,
27
- get: function () { return chunkUNEJNDGF_cjs.getToolsForLLM; }
27
+ get: function () { return chunkEKOO23S5_cjs.getToolsForLLM; }
28
28
  });
29
29
  Object.defineProperty(exports, "listAllTools", {
30
30
  enumerable: true,
31
- get: function () { return chunkUNEJNDGF_cjs.listAllTools; }
31
+ get: function () { return chunkEKOO23S5_cjs.listAllTools; }
32
32
  });
33
33
  Object.defineProperty(exports, "listAvailableTools", {
34
34
  enumerable: true,
35
- get: function () { return chunkUNEJNDGF_cjs.listAvailableTools; }
35
+ get: function () { return chunkEKOO23S5_cjs.listAvailableTools; }
36
36
  });
37
37
  Object.defineProperty(exports, "listAvailableToolsForLLM", {
38
38
  enumerable: true,
39
- get: function () { return chunkUNEJNDGF_cjs.listAvailableToolsForLLM; }
39
+ get: function () { return chunkEKOO23S5_cjs.listAvailableToolsForLLM; }
40
40
  });
41
41
  Object.defineProperty(exports, "loadPlugin", {
42
42
  enumerable: true,
43
- get: function () { return chunkUNEJNDGF_cjs.loadPlugin; }
43
+ get: function () { return chunkEKOO23S5_cjs.loadPlugin; }
44
44
  });
45
45
  Object.defineProperty(exports, "mcpToolToOpenAI", {
46
46
  enumerable: true,
47
- get: function () { return chunkUNEJNDGF_cjs.mcpToolToOpenAI; }
47
+ get: function () { return chunkEKOO23S5_cjs.mcpToolToOpenAI; }
48
48
  });
49
49
  Object.defineProperty(exports, "SeastudioNotifications", {
50
50
  enumerable: true,
51
- get: function () { return chunkNHB3FYA5_cjs.SeastudioNotifications; }
51
+ get: function () { return chunkK4A2JSWD_cjs.SeastudioNotifications; }
52
52
  });
53
53
  Object.defineProperty(exports, "SeastudioRequests", {
54
54
  enumerable: true,
55
- get: function () { return chunkNHB3FYA5_cjs.SeastudioRequests; }
55
+ get: function () { return chunkK4A2JSWD_cjs.SeastudioRequests; }
56
56
  });
57
57
  Object.defineProperty(exports, "agentManagementTools", {
58
58
  enumerable: true,
59
- get: function () { return chunkNHB3FYA5_cjs.agentManagementTools; }
59
+ get: function () { return chunkK4A2JSWD_cjs.agentManagementTools; }
60
60
  });
61
61
  Object.defineProperty(exports, "agentTabTools", {
62
62
  enumerable: true,
63
- get: function () { return chunkNHB3FYA5_cjs.agentTabTools; }
63
+ get: function () { return chunkK4A2JSWD_cjs.agentTabTools; }
64
64
  });
65
65
  Object.defineProperty(exports, "fileTools", {
66
66
  enumerable: true,
67
- get: function () { return chunkNHB3FYA5_cjs.fileTools; }
67
+ get: function () { return chunkK4A2JSWD_cjs.fileTools; }
68
68
  });
69
69
  Object.defineProperty(exports, "pluginManagementTools", {
70
70
  enumerable: true,
71
- get: function () { return chunkNHB3FYA5_cjs.pluginManagementTools; }
71
+ get: function () { return chunkK4A2JSWD_cjs.pluginManagementTools; }
72
72
  });
73
73
  Object.defineProperty(exports, "pluginTabTools", {
74
74
  enumerable: true,
75
- get: function () { return chunkNHB3FYA5_cjs.pluginTabTools; }
75
+ get: function () { return chunkK4A2JSWD_cjs.pluginTabTools; }
76
76
  });
77
77
  Object.defineProperty(exports, "seaCloudTools", {
78
78
  enumerable: true,
79
- get: function () { return chunkNHB3FYA5_cjs.seaCloudTools; }
79
+ get: function () { return chunkK4A2JSWD_cjs.seaCloudTools; }
80
80
  });
81
81
  Object.defineProperty(exports, "seastudio", {
82
82
  enumerable: true,
83
- get: function () { return chunkNHB3FYA5_cjs.seastudio; }
83
+ get: function () { return chunkK4A2JSWD_cjs.seastudio; }
84
84
  });
85
85
  Object.defineProperty(exports, "seastudioAllTools", {
86
86
  enumerable: true,
87
- get: function () { return chunkNHB3FYA5_cjs.allTools; }
87
+ get: function () { return chunkK4A2JSWD_cjs.allTools; }
88
88
  });
89
89
  Object.defineProperty(exports, "seastudioTools", {
90
90
  enumerable: true,
91
- get: function () { return chunkNHB3FYA5_cjs.tools; }
91
+ get: function () { return chunkK4A2JSWD_cjs.tools; }
92
92
  });
93
93
  Object.defineProperty(exports, "shellTools", {
94
94
  enumerable: true,
95
- get: function () { return chunkNHB3FYA5_cjs.shellTools; }
95
+ get: function () { return chunkK4A2JSWD_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-X3FJ2ICU.js';
2
- export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seaCloudTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from '../chunk-T27GHTNF.js';
1
+ export { MCP_PACKAGES, getMCPPackageIdForTool, getMCPPackages, getMCPToolPackageIndex, getToolsForLLM, listAllTools, listAvailableTools, listAvailableToolsForLLM, loadPlugin, mcpToolToOpenAI } from '../chunk-5OM34MI7.js';
2
+ export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seaCloudTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from '../chunk-MFZWPGTX.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';
@@ -1,123 +1,127 @@
1
1
  'use strict';
2
2
 
3
- var chunkNHB3FYA5_cjs = require('../../chunk-NHB3FYA5.cjs');
3
+ var chunkK4A2JSWD_cjs = require('../../chunk-K4A2JSWD.cjs');
4
4
  require('../../chunk-3I7UM66P.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "SeastudioNotifications", {
9
9
  enumerable: true,
10
- get: function () { return chunkNHB3FYA5_cjs.SeastudioNotifications; }
10
+ get: function () { return chunkK4A2JSWD_cjs.SeastudioNotifications; }
11
11
  });
12
12
  Object.defineProperty(exports, "SeastudioRequests", {
13
13
  enumerable: true,
14
- get: function () { return chunkNHB3FYA5_cjs.SeastudioRequests; }
14
+ get: function () { return chunkK4A2JSWD_cjs.SeastudioRequests; }
15
15
  });
16
16
  Object.defineProperty(exports, "agentManagementTools", {
17
17
  enumerable: true,
18
- get: function () { return chunkNHB3FYA5_cjs.agentManagementTools; }
18
+ get: function () { return chunkK4A2JSWD_cjs.agentManagementTools; }
19
19
  });
20
20
  Object.defineProperty(exports, "agentTabTools", {
21
21
  enumerable: true,
22
- get: function () { return chunkNHB3FYA5_cjs.agentTabTools; }
22
+ get: function () { return chunkK4A2JSWD_cjs.agentTabTools; }
23
23
  });
24
24
  Object.defineProperty(exports, "allTools", {
25
25
  enumerable: true,
26
- get: function () { return chunkNHB3FYA5_cjs.allTools; }
26
+ get: function () { return chunkK4A2JSWD_cjs.allTools; }
27
27
  });
28
28
  Object.defineProperty(exports, "annotateTool", {
29
29
  enumerable: true,
30
- get: function () { return chunkNHB3FYA5_cjs.annotateTool; }
30
+ get: function () { return chunkK4A2JSWD_cjs.annotateTool; }
31
31
  });
32
32
  Object.defineProperty(exports, "batchFlattenCopyEvidenceOutputSchema", {
33
33
  enumerable: true,
34
- get: function () { return chunkNHB3FYA5_cjs.batchFlattenCopyEvidenceOutputSchema; }
34
+ get: function () { return chunkK4A2JSWD_cjs.batchFlattenCopyEvidenceOutputSchema; }
35
35
  });
36
36
  Object.defineProperty(exports, "callTool", {
37
37
  enumerable: true,
38
- get: function () { return chunkNHB3FYA5_cjs.callTool; }
38
+ get: function () { return chunkK4A2JSWD_cjs.callTool; }
39
39
  });
40
40
  Object.defineProperty(exports, "callToolText", {
41
41
  enumerable: true,
42
- get: function () { return chunkNHB3FYA5_cjs.callToolText; }
42
+ get: function () { return chunkK4A2JSWD_cjs.callToolText; }
43
43
  });
44
44
  Object.defineProperty(exports, "dualPathEvidenceOutputSchema", {
45
45
  enumerable: true,
46
- get: function () { return chunkNHB3FYA5_cjs.dualPathEvidenceOutputSchema; }
46
+ get: function () { return chunkK4A2JSWD_cjs.dualPathEvidenceOutputSchema; }
47
47
  });
48
48
  Object.defineProperty(exports, "fileDownloadEvidenceOutputSchema", {
49
49
  enumerable: true,
50
- get: function () { return chunkNHB3FYA5_cjs.fileDownloadEvidenceOutputSchema; }
50
+ get: function () { return chunkK4A2JSWD_cjs.fileDownloadEvidenceOutputSchema; }
51
51
  });
52
52
  Object.defineProperty(exports, "fileTools", {
53
53
  enumerable: true,
54
- get: function () { return chunkNHB3FYA5_cjs.fileTools; }
54
+ get: function () { return chunkK4A2JSWD_cjs.fileTools; }
55
+ });
56
+ Object.defineProperty(exports, "fileUrlEvidenceOutputSchema", {
57
+ enumerable: true,
58
+ get: function () { return chunkK4A2JSWD_cjs.fileUrlEvidenceOutputSchema; }
55
59
  });
56
60
  Object.defineProperty(exports, "pluginManagementTools", {
57
61
  enumerable: true,
58
- get: function () { return chunkNHB3FYA5_cjs.pluginManagementTools; }
62
+ get: function () { return chunkK4A2JSWD_cjs.pluginManagementTools; }
59
63
  });
60
64
  Object.defineProperty(exports, "pluginTabTools", {
61
65
  enumerable: true,
62
- get: function () { return chunkNHB3FYA5_cjs.pluginTabTools; }
66
+ get: function () { return chunkK4A2JSWD_cjs.pluginTabTools; }
63
67
  });
64
68
  Object.defineProperty(exports, "projectTools", {
65
69
  enumerable: true,
66
- get: function () { return chunkNHB3FYA5_cjs.projectTools; }
70
+ get: function () { return chunkK4A2JSWD_cjs.projectTools; }
67
71
  });
68
72
  Object.defineProperty(exports, "request", {
69
73
  enumerable: true,
70
- get: function () { return chunkNHB3FYA5_cjs.request; }
74
+ get: function () { return chunkK4A2JSWD_cjs.request; }
71
75
  });
72
76
  Object.defineProperty(exports, "rootedPathEvidenceOutputSchema", {
73
77
  enumerable: true,
74
- get: function () { return chunkNHB3FYA5_cjs.rootedPathEvidenceOutputSchema; }
78
+ get: function () { return chunkK4A2JSWD_cjs.rootedPathEvidenceOutputSchema; }
75
79
  });
76
80
  Object.defineProperty(exports, "rootedWriteEvidenceOutputSchema", {
77
81
  enumerable: true,
78
- get: function () { return chunkNHB3FYA5_cjs.rootedWriteEvidenceOutputSchema; }
82
+ get: function () { return chunkK4A2JSWD_cjs.rootedWriteEvidenceOutputSchema; }
79
83
  });
80
84
  Object.defineProperty(exports, "runOneShotShellCommand", {
81
85
  enumerable: true,
82
- get: function () { return chunkNHB3FYA5_cjs.runOneShotShellCommand; }
86
+ get: function () { return chunkK4A2JSWD_cjs.runOneShotShellCommand; }
83
87
  });
84
88
  Object.defineProperty(exports, "seaCloudTools", {
85
89
  enumerable: true,
86
- get: function () { return chunkNHB3FYA5_cjs.seaCloudTools; }
90
+ get: function () { return chunkK4A2JSWD_cjs.seaCloudTools; }
87
91
  });
88
92
  Object.defineProperty(exports, "seastudio", {
89
93
  enumerable: true,
90
- get: function () { return chunkNHB3FYA5_cjs.seastudio; }
94
+ get: function () { return chunkK4A2JSWD_cjs.seastudio; }
91
95
  });
92
96
  Object.defineProperty(exports, "shellSessionCloseEvidenceOutputSchema", {
93
97
  enumerable: true,
94
- get: function () { return chunkNHB3FYA5_cjs.shellSessionCloseEvidenceOutputSchema; }
98
+ get: function () { return chunkK4A2JSWD_cjs.shellSessionCloseEvidenceOutputSchema; }
95
99
  });
96
100
  Object.defineProperty(exports, "shellSessionOpenEvidenceOutputSchema", {
97
101
  enumerable: true,
98
- get: function () { return chunkNHB3FYA5_cjs.shellSessionOpenEvidenceOutputSchema; }
102
+ get: function () { return chunkK4A2JSWD_cjs.shellSessionOpenEvidenceOutputSchema; }
99
103
  });
100
104
  Object.defineProperty(exports, "shellSessionRunEvidenceOutputSchema", {
101
105
  enumerable: true,
102
- get: function () { return chunkNHB3FYA5_cjs.shellSessionRunEvidenceOutputSchema; }
106
+ get: function () { return chunkK4A2JSWD_cjs.shellSessionRunEvidenceOutputSchema; }
103
107
  });
104
108
  Object.defineProperty(exports, "shellSessionSignalEvidenceOutputSchema", {
105
109
  enumerable: true,
106
- get: function () { return chunkNHB3FYA5_cjs.shellSessionSignalEvidenceOutputSchema; }
110
+ get: function () { return chunkK4A2JSWD_cjs.shellSessionSignalEvidenceOutputSchema; }
107
111
  });
108
112
  Object.defineProperty(exports, "shellSessionSnapshotEvidenceOutputSchema", {
109
113
  enumerable: true,
110
- get: function () { return chunkNHB3FYA5_cjs.shellSessionSnapshotEvidenceOutputSchema; }
114
+ get: function () { return chunkK4A2JSWD_cjs.shellSessionSnapshotEvidenceOutputSchema; }
111
115
  });
112
116
  Object.defineProperty(exports, "shellTools", {
113
117
  enumerable: true,
114
- get: function () { return chunkNHB3FYA5_cjs.shellTools; }
118
+ get: function () { return chunkK4A2JSWD_cjs.shellTools; }
115
119
  });
116
120
  Object.defineProperty(exports, "skillTools", {
117
121
  enumerable: true,
118
- get: function () { return chunkNHB3FYA5_cjs.skillTools; }
122
+ get: function () { return chunkK4A2JSWD_cjs.skillTools; }
119
123
  });
120
124
  Object.defineProperty(exports, "tools", {
121
125
  enumerable: true,
122
- get: function () { return chunkNHB3FYA5_cjs.tools; }
126
+ get: function () { return chunkK4A2JSWD_cjs.tools; }
123
127
  });
@@ -12,6 +12,7 @@ declare const rootedWriteEvidenceOutputSchema: MCPToolInputSchema;
12
12
  declare const dualPathEvidenceOutputSchema: MCPToolInputSchema;
13
13
  declare const batchFlattenCopyEvidenceOutputSchema: MCPToolInputSchema;
14
14
  declare const fileDownloadEvidenceOutputSchema: MCPToolInputSchema;
15
+ declare const fileUrlEvidenceOutputSchema: MCPToolInputSchema;
15
16
  declare const shellSessionSnapshotEvidenceOutputSchema: MCPToolInputSchema;
16
17
  declare const shellSessionOpenEvidenceOutputSchema: MCPToolInputSchema;
17
18
  declare const shellSessionRunEvidenceOutputSchema: MCPToolInputSchema;
@@ -373,12 +374,16 @@ declare const SeastudioNotifications: {
373
374
  readonly FILE_MODIFIED: "file:modified";
374
375
  /** 文件已保存通知 */
375
376
  readonly FILE_SAVED: "file:saved";
377
+ /** 文件被选中通知 */
378
+ readonly FILE_SELECTED: "file:selected";
376
379
  /** 文件发送请求 */
377
380
  readonly FILE_SEND_REQUESTED: "seastudio:file-send_requested";
378
381
  /** 文本发送请求 */
379
382
  readonly TEXT_SEND_REQUESTED: "seastudio:text-send_requested";
380
383
  /** 代码提案审核反馈 */
381
384
  readonly PROPOSAL_FEEDBACK: "seastudio:proposal-feedback";
385
+ /** 插件实例请求更新宿主 plugin tab 标题 */
386
+ readonly PLUGIN_TAB_TITLE_CHANGED: "plugin:tab-title_changed";
382
387
  /**
383
388
  * Agent 对话 session:新建。消息历史仍由 Agent 前端持有,宿主仅同步列表用于侧栏。
384
389
  * 通常由 Agent 通过 notifications/publish 发出;其他订阅者(含 host-ui)可据此更新 UI。
@@ -418,12 +423,21 @@ declare const SeastudioNotifications: {
418
423
  interface FilesChangedParams {
419
424
  /** 变化类型:project(工作区) */
420
425
  type: 'project';
421
- /** 发生变化的目录路径 */
426
+ /** 发生变化的项目根路径(绝对路径,兼容旧订阅者) */
422
427
  path: string;
428
+ /** 发生变化的项目内相对路径(可选,用于精准刷新) */
429
+ relativePath?: string;
430
+ /** 发生变化的绝对路径(可选,用于精准刷新) */
431
+ absolutePath?: string;
432
+ /** 事件来源:工具调用或系统 watcher 推断 */
433
+ origin?: 'tool' | 'watcher';
434
+ /** 变化类型:内容变化、结构变化或未知兜底 */
435
+ changeKind?: 'content' | 'structure' | 'unknown';
423
436
  }
437
+ type SeastudioRootId = 'workspace' | `proj-${string}`;
424
438
  interface FileRenamedParams {
425
439
  /** 根目录 ID */
426
- rootId: 'workspace';
440
+ rootId: SeastudioRootId;
427
441
  /** 原路径 */
428
442
  oldPath: string;
429
443
  /** 新路径 */
@@ -437,7 +451,7 @@ interface FileRenamedParams {
437
451
  }
438
452
  interface FileDeletedParams {
439
453
  /** 根目录 ID */
440
- rootId: 'workspace';
454
+ rootId: SeastudioRootId;
441
455
  /** 被删除路径 */
442
456
  path: string;
443
457
  /** 目标类型 */
@@ -449,12 +463,12 @@ interface FileDeletedParams {
449
463
  }
450
464
  interface RootsChangedParams {
451
465
  roots: Array<{
452
- id: 'workspace';
466
+ id: SeastudioRootId;
453
467
  label: string;
454
468
  description: string;
455
469
  }>;
456
470
  }
457
- type SeastudioDragRootId = 'workspace';
471
+ type SeastudioDragRootId = SeastudioRootId;
458
472
  interface SeastudioDragFileData {
459
473
  sourcePath: string;
460
474
  sourceRootId?: SeastudioDragRootId;
@@ -472,7 +486,7 @@ interface SeastudioDragDropParams extends SeastudioDragFileData {
472
486
  }
473
487
  interface FileTransferRequestedParams {
474
488
  source: 'workspace';
475
- rootId: 'workspace';
489
+ rootId: SeastudioRootId;
476
490
  path: string;
477
491
  name: string;
478
492
  kind: 'file' | 'directory';
@@ -482,6 +496,16 @@ interface FileOpenRequestedParams extends FileTransferRequestedParams {
482
496
  }
483
497
  interface FileSendRequestedParams extends FileTransferRequestedParams {
484
498
  }
499
+ interface FileSelectedParams {
500
+ source: 'editor' | 'workspace' | 'plugin';
501
+ rootId: SeastudioRootId;
502
+ path: string;
503
+ name: string;
504
+ kind: 'file' | 'directory';
505
+ isDirectory: boolean;
506
+ pluginId?: string;
507
+ instanceId?: string;
508
+ }
485
509
  interface TextSendRequestedSelectionRange {
486
510
  startLine?: number;
487
511
  startColumn?: number;
@@ -551,6 +575,21 @@ interface FileSavedParams {
551
575
  /** 触发来源插件 ID */
552
576
  source?: string;
553
577
  }
578
+ /**
579
+ * plugin:tab-title_changed 通知参数
580
+ */
581
+ interface PluginTabTitleChangedParams {
582
+ /** 插件 ID,可选;Host 主要按 instanceId 定位 */
583
+ pluginId?: string;
584
+ /** 插件实例 ID */
585
+ instanceId: string;
586
+ /** 新的 tab 标题 */
587
+ title: string;
588
+ /** 当前实例承载的文件路径;null 表示实例已空闲 */
589
+ openPath?: string | null;
590
+ /** 当前实例承载的文件根;null 表示实例已空闲 */
591
+ openRootId?: SeastudioRootId | null;
592
+ }
554
593
  /** 各 session 通知的公共字段 */
555
594
  interface SessionNotificationBase {
556
595
  /** 对应 Agent 标签实例 ID(与 MCP 上下文中的 agent 实例一致) */
@@ -651,4 +690,4 @@ interface SessionDeleteRequestedParams {
651
690
  declare const allTools: MCPTool[];
652
691
  declare const tools: MCPTool[];
653
692
 
654
- export { type AgentInstanceSessionSnapshot, type FileDeletedParams, type FileModifiedParams, type FileOpenRequestedParams, type FileRenamedParams, type FileSavedParams, type FileSendRequestedParams, type FileTransferRequestedParams, type FilesChangedParams, type ProposalFeedbackFileSummary, type ProposalFeedbackHunk, type ProposalFeedbackOrigin, type ProposalFeedbackParams, type RootsChangedParams, type SeastudioBatchFlattenCopyOptions, type SeastudioBatchFlattenPreviewOptions, type SeastudioDragDropParams, type SeastudioDragEnterParams, type SeastudioDragFileData, type SeastudioDragRootId, type SeastudioDragStartParams, type SeastudioFileDownloadOptions, type SeastudioFileInfo, type SeastudioFileInfoOptions, type SeastudioFileListOptions, type SeastudioFileReadOptions, type SeastudioFileSearchMatch, type SeastudioFileSearchOptions, type SeastudioFileTransferOptions, type SeastudioFileTreeOptions, type SeastudioFilesystemRoot, type SeastudioFilesystemRootId, SeastudioNotifications, type SeastudioProjectInfo, SeastudioRequests, type SeastudioShellCloseResult, type SeastudioShellEntry, type SeastudioShellEntryLevel, type SeastudioShellGetEntriesOptions, type SeastudioShellGetEntriesResult, type SeastudioShellKind, type SeastudioShellOneShotResult, type SeastudioShellOpenOptions, type SeastudioShellRunOptions, type SeastudioShellRunResult, type SeastudioShellSession, type SeastudioShellSignalResult, type SeastudioShellWaitResult, type SeastudioSinglePathOptions, type SeastudioWorkspacePathMode, type SessionCreatedParams, type SessionDeleteRequestedParams, type SessionNewRequestedParams, type SessionNotificationBase, type SessionRemovedParams, type SessionSelectedParams, type SessionSelectedReason, type SessionSnapshotItem, type SessionStateSnapshotParams, type SessionStatus, type SessionStatusParams, type SessionSummaryParams, type TextSendRequestedParams, type TextSendRequestedSelectionRange, type TextSendRequestedSource, agentManagementTools, agentTabTools, allTools, annotateTool, batchFlattenCopyEvidenceOutputSchema, callTool, callToolText, dualPathEvidenceOutputSchema, fileDownloadEvidenceOutputSchema, fileTools, pluginManagementTools, pluginTabTools, projectTools, request, rootedPathEvidenceOutputSchema, rootedWriteEvidenceOutputSchema, runOneShotShellCommand, seaCloudTools, seastudio, shellSessionCloseEvidenceOutputSchema, shellSessionOpenEvidenceOutputSchema, shellSessionRunEvidenceOutputSchema, shellSessionSignalEvidenceOutputSchema, shellSessionSnapshotEvidenceOutputSchema, shellTools, skillTools, tools };
693
+ export { type AgentInstanceSessionSnapshot, type FileDeletedParams, type FileModifiedParams, type FileOpenRequestedParams, type FileRenamedParams, type FileSavedParams, type FileSelectedParams, type FileSendRequestedParams, type FileTransferRequestedParams, type FilesChangedParams, type PluginTabTitleChangedParams, type ProposalFeedbackFileSummary, type ProposalFeedbackHunk, type ProposalFeedbackOrigin, type ProposalFeedbackParams, type RootsChangedParams, type SeastudioBatchFlattenCopyOptions, type SeastudioBatchFlattenPreviewOptions, type SeastudioDragDropParams, type SeastudioDragEnterParams, type SeastudioDragFileData, type SeastudioDragRootId, type SeastudioDragStartParams, type SeastudioFileDownloadOptions, type SeastudioFileInfo, type SeastudioFileInfoOptions, type SeastudioFileListOptions, type SeastudioFileReadOptions, type SeastudioFileSearchMatch, type SeastudioFileSearchOptions, type SeastudioFileTransferOptions, type SeastudioFileTreeOptions, type SeastudioFilesystemRoot, type SeastudioFilesystemRootId, SeastudioNotifications, type SeastudioProjectInfo, SeastudioRequests, type SeastudioRootId, type SeastudioShellCloseResult, type SeastudioShellEntry, type SeastudioShellEntryLevel, type SeastudioShellGetEntriesOptions, type SeastudioShellGetEntriesResult, type SeastudioShellKind, type SeastudioShellOneShotResult, type SeastudioShellOpenOptions, type SeastudioShellRunOptions, type SeastudioShellRunResult, type SeastudioShellSession, type SeastudioShellSignalResult, type SeastudioShellWaitResult, type SeastudioSinglePathOptions, type SeastudioWorkspacePathMode, type SessionCreatedParams, type SessionDeleteRequestedParams, type SessionNewRequestedParams, type SessionNotificationBase, type SessionRemovedParams, type SessionSelectedParams, type SessionSelectedReason, type SessionSnapshotItem, type SessionStateSnapshotParams, type SessionStatus, type SessionStatusParams, type SessionSummaryParams, type TextSendRequestedParams, type TextSendRequestedSelectionRange, type TextSendRequestedSource, 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 };
@@ -12,6 +12,7 @@ declare const rootedWriteEvidenceOutputSchema: MCPToolInputSchema;
12
12
  declare const dualPathEvidenceOutputSchema: MCPToolInputSchema;
13
13
  declare const batchFlattenCopyEvidenceOutputSchema: MCPToolInputSchema;
14
14
  declare const fileDownloadEvidenceOutputSchema: MCPToolInputSchema;
15
+ declare const fileUrlEvidenceOutputSchema: MCPToolInputSchema;
15
16
  declare const shellSessionSnapshotEvidenceOutputSchema: MCPToolInputSchema;
16
17
  declare const shellSessionOpenEvidenceOutputSchema: MCPToolInputSchema;
17
18
  declare const shellSessionRunEvidenceOutputSchema: MCPToolInputSchema;
@@ -373,12 +374,16 @@ declare const SeastudioNotifications: {
373
374
  readonly FILE_MODIFIED: "file:modified";
374
375
  /** 文件已保存通知 */
375
376
  readonly FILE_SAVED: "file:saved";
377
+ /** 文件被选中通知 */
378
+ readonly FILE_SELECTED: "file:selected";
376
379
  /** 文件发送请求 */
377
380
  readonly FILE_SEND_REQUESTED: "seastudio:file-send_requested";
378
381
  /** 文本发送请求 */
379
382
  readonly TEXT_SEND_REQUESTED: "seastudio:text-send_requested";
380
383
  /** 代码提案审核反馈 */
381
384
  readonly PROPOSAL_FEEDBACK: "seastudio:proposal-feedback";
385
+ /** 插件实例请求更新宿主 plugin tab 标题 */
386
+ readonly PLUGIN_TAB_TITLE_CHANGED: "plugin:tab-title_changed";
382
387
  /**
383
388
  * Agent 对话 session:新建。消息历史仍由 Agent 前端持有,宿主仅同步列表用于侧栏。
384
389
  * 通常由 Agent 通过 notifications/publish 发出;其他订阅者(含 host-ui)可据此更新 UI。
@@ -418,12 +423,21 @@ declare const SeastudioNotifications: {
418
423
  interface FilesChangedParams {
419
424
  /** 变化类型:project(工作区) */
420
425
  type: 'project';
421
- /** 发生变化的目录路径 */
426
+ /** 发生变化的项目根路径(绝对路径,兼容旧订阅者) */
422
427
  path: string;
428
+ /** 发生变化的项目内相对路径(可选,用于精准刷新) */
429
+ relativePath?: string;
430
+ /** 发生变化的绝对路径(可选,用于精准刷新) */
431
+ absolutePath?: string;
432
+ /** 事件来源:工具调用或系统 watcher 推断 */
433
+ origin?: 'tool' | 'watcher';
434
+ /** 变化类型:内容变化、结构变化或未知兜底 */
435
+ changeKind?: 'content' | 'structure' | 'unknown';
423
436
  }
437
+ type SeastudioRootId = 'workspace' | `proj-${string}`;
424
438
  interface FileRenamedParams {
425
439
  /** 根目录 ID */
426
- rootId: 'workspace';
440
+ rootId: SeastudioRootId;
427
441
  /** 原路径 */
428
442
  oldPath: string;
429
443
  /** 新路径 */
@@ -437,7 +451,7 @@ interface FileRenamedParams {
437
451
  }
438
452
  interface FileDeletedParams {
439
453
  /** 根目录 ID */
440
- rootId: 'workspace';
454
+ rootId: SeastudioRootId;
441
455
  /** 被删除路径 */
442
456
  path: string;
443
457
  /** 目标类型 */
@@ -449,12 +463,12 @@ interface FileDeletedParams {
449
463
  }
450
464
  interface RootsChangedParams {
451
465
  roots: Array<{
452
- id: 'workspace';
466
+ id: SeastudioRootId;
453
467
  label: string;
454
468
  description: string;
455
469
  }>;
456
470
  }
457
- type SeastudioDragRootId = 'workspace';
471
+ type SeastudioDragRootId = SeastudioRootId;
458
472
  interface SeastudioDragFileData {
459
473
  sourcePath: string;
460
474
  sourceRootId?: SeastudioDragRootId;
@@ -472,7 +486,7 @@ interface SeastudioDragDropParams extends SeastudioDragFileData {
472
486
  }
473
487
  interface FileTransferRequestedParams {
474
488
  source: 'workspace';
475
- rootId: 'workspace';
489
+ rootId: SeastudioRootId;
476
490
  path: string;
477
491
  name: string;
478
492
  kind: 'file' | 'directory';
@@ -482,6 +496,16 @@ interface FileOpenRequestedParams extends FileTransferRequestedParams {
482
496
  }
483
497
  interface FileSendRequestedParams extends FileTransferRequestedParams {
484
498
  }
499
+ interface FileSelectedParams {
500
+ source: 'editor' | 'workspace' | 'plugin';
501
+ rootId: SeastudioRootId;
502
+ path: string;
503
+ name: string;
504
+ kind: 'file' | 'directory';
505
+ isDirectory: boolean;
506
+ pluginId?: string;
507
+ instanceId?: string;
508
+ }
485
509
  interface TextSendRequestedSelectionRange {
486
510
  startLine?: number;
487
511
  startColumn?: number;
@@ -551,6 +575,21 @@ interface FileSavedParams {
551
575
  /** 触发来源插件 ID */
552
576
  source?: string;
553
577
  }
578
+ /**
579
+ * plugin:tab-title_changed 通知参数
580
+ */
581
+ interface PluginTabTitleChangedParams {
582
+ /** 插件 ID,可选;Host 主要按 instanceId 定位 */
583
+ pluginId?: string;
584
+ /** 插件实例 ID */
585
+ instanceId: string;
586
+ /** 新的 tab 标题 */
587
+ title: string;
588
+ /** 当前实例承载的文件路径;null 表示实例已空闲 */
589
+ openPath?: string | null;
590
+ /** 当前实例承载的文件根;null 表示实例已空闲 */
591
+ openRootId?: SeastudioRootId | null;
592
+ }
554
593
  /** 各 session 通知的公共字段 */
555
594
  interface SessionNotificationBase {
556
595
  /** 对应 Agent 标签实例 ID(与 MCP 上下文中的 agent 实例一致) */
@@ -651,4 +690,4 @@ interface SessionDeleteRequestedParams {
651
690
  declare const allTools: MCPTool[];
652
691
  declare const tools: MCPTool[];
653
692
 
654
- export { type AgentInstanceSessionSnapshot, type FileDeletedParams, type FileModifiedParams, type FileOpenRequestedParams, type FileRenamedParams, type FileSavedParams, type FileSendRequestedParams, type FileTransferRequestedParams, type FilesChangedParams, type ProposalFeedbackFileSummary, type ProposalFeedbackHunk, type ProposalFeedbackOrigin, type ProposalFeedbackParams, type RootsChangedParams, type SeastudioBatchFlattenCopyOptions, type SeastudioBatchFlattenPreviewOptions, type SeastudioDragDropParams, type SeastudioDragEnterParams, type SeastudioDragFileData, type SeastudioDragRootId, type SeastudioDragStartParams, type SeastudioFileDownloadOptions, type SeastudioFileInfo, type SeastudioFileInfoOptions, type SeastudioFileListOptions, type SeastudioFileReadOptions, type SeastudioFileSearchMatch, type SeastudioFileSearchOptions, type SeastudioFileTransferOptions, type SeastudioFileTreeOptions, type SeastudioFilesystemRoot, type SeastudioFilesystemRootId, SeastudioNotifications, type SeastudioProjectInfo, SeastudioRequests, type SeastudioShellCloseResult, type SeastudioShellEntry, type SeastudioShellEntryLevel, type SeastudioShellGetEntriesOptions, type SeastudioShellGetEntriesResult, type SeastudioShellKind, type SeastudioShellOneShotResult, type SeastudioShellOpenOptions, type SeastudioShellRunOptions, type SeastudioShellRunResult, type SeastudioShellSession, type SeastudioShellSignalResult, type SeastudioShellWaitResult, type SeastudioSinglePathOptions, type SeastudioWorkspacePathMode, type SessionCreatedParams, type SessionDeleteRequestedParams, type SessionNewRequestedParams, type SessionNotificationBase, type SessionRemovedParams, type SessionSelectedParams, type SessionSelectedReason, type SessionSnapshotItem, type SessionStateSnapshotParams, type SessionStatus, type SessionStatusParams, type SessionSummaryParams, type TextSendRequestedParams, type TextSendRequestedSelectionRange, type TextSendRequestedSource, agentManagementTools, agentTabTools, allTools, annotateTool, batchFlattenCopyEvidenceOutputSchema, callTool, callToolText, dualPathEvidenceOutputSchema, fileDownloadEvidenceOutputSchema, fileTools, pluginManagementTools, pluginTabTools, projectTools, request, rootedPathEvidenceOutputSchema, rootedWriteEvidenceOutputSchema, runOneShotShellCommand, seaCloudTools, seastudio, shellSessionCloseEvidenceOutputSchema, shellSessionOpenEvidenceOutputSchema, shellSessionRunEvidenceOutputSchema, shellSessionSignalEvidenceOutputSchema, shellSessionSnapshotEvidenceOutputSchema, shellTools, skillTools, tools };
693
+ export { type AgentInstanceSessionSnapshot, type FileDeletedParams, type FileModifiedParams, type FileOpenRequestedParams, type FileRenamedParams, type FileSavedParams, type FileSelectedParams, type FileSendRequestedParams, type FileTransferRequestedParams, type FilesChangedParams, type PluginTabTitleChangedParams, type ProposalFeedbackFileSummary, type ProposalFeedbackHunk, type ProposalFeedbackOrigin, type ProposalFeedbackParams, type RootsChangedParams, type SeastudioBatchFlattenCopyOptions, type SeastudioBatchFlattenPreviewOptions, type SeastudioDragDropParams, type SeastudioDragEnterParams, type SeastudioDragFileData, type SeastudioDragRootId, type SeastudioDragStartParams, type SeastudioFileDownloadOptions, type SeastudioFileInfo, type SeastudioFileInfoOptions, type SeastudioFileListOptions, type SeastudioFileReadOptions, type SeastudioFileSearchMatch, type SeastudioFileSearchOptions, type SeastudioFileTransferOptions, type SeastudioFileTreeOptions, type SeastudioFilesystemRoot, type SeastudioFilesystemRootId, SeastudioNotifications, type SeastudioProjectInfo, SeastudioRequests, type SeastudioRootId, type SeastudioShellCloseResult, type SeastudioShellEntry, type SeastudioShellEntryLevel, type SeastudioShellGetEntriesOptions, type SeastudioShellGetEntriesResult, type SeastudioShellKind, type SeastudioShellOneShotResult, type SeastudioShellOpenOptions, type SeastudioShellRunOptions, type SeastudioShellRunResult, type SeastudioShellSession, type SeastudioShellSignalResult, type SeastudioShellWaitResult, type SeastudioSinglePathOptions, type SeastudioWorkspacePathMode, type SessionCreatedParams, type SessionDeleteRequestedParams, type SessionNewRequestedParams, type SessionNotificationBase, type SessionRemovedParams, type SessionSelectedParams, type SessionSelectedReason, type SessionSnapshotItem, type SessionStateSnapshotParams, type SessionStatus, type SessionStatusParams, type SessionSummaryParams, type TextSendRequestedParams, type TextSendRequestedSelectionRange, type TextSendRequestedSource, 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 };
@@ -1,2 +1,2 @@
1
- export { SeastudioNotifications, SeastudioRequests, agentManagementTools, agentTabTools, allTools, annotateTool, batchFlattenCopyEvidenceOutputSchema, callTool, callToolText, dualPathEvidenceOutputSchema, fileDownloadEvidenceOutputSchema, fileTools, pluginManagementTools, pluginTabTools, projectTools, request, rootedPathEvidenceOutputSchema, rootedWriteEvidenceOutputSchema, runOneShotShellCommand, seaCloudTools, seastudio, shellSessionCloseEvidenceOutputSchema, shellSessionOpenEvidenceOutputSchema, shellSessionRunEvidenceOutputSchema, shellSessionSignalEvidenceOutputSchema, shellSessionSnapshotEvidenceOutputSchema, shellTools, skillTools, tools } from '../../chunk-T27GHTNF.js';
1
+ 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 } from '../../chunk-MFZWPGTX.js';
2
2
  import '../../chunk-TJ3CGHWJ.js';
package/dist/ui/index.cjs CHANGED
@@ -1,58 +1,58 @@
1
1
  'use strict';
2
2
 
3
- var chunkGUBMEDHZ_cjs = require('../chunk-GUBMEDHZ.cjs');
3
+ var chunkUZ6SEVW3_cjs = require('../chunk-UZ6SEVW3.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "DialogBody", {
8
8
  enumerable: true,
9
- get: function () { return chunkGUBMEDHZ_cjs.DialogBody; }
9
+ get: function () { return chunkUZ6SEVW3_cjs.DialogBody; }
10
10
  });
11
11
  Object.defineProperty(exports, "DialogButton", {
12
12
  enumerable: true,
13
- get: function () { return chunkGUBMEDHZ_cjs.DialogButton; }
13
+ get: function () { return chunkUZ6SEVW3_cjs.DialogButton; }
14
14
  });
15
15
  Object.defineProperty(exports, "DialogContainer", {
16
16
  enumerable: true,
17
- get: function () { return chunkGUBMEDHZ_cjs.DialogContainer; }
17
+ get: function () { return chunkUZ6SEVW3_cjs.DialogContainer; }
18
18
  });
19
19
  Object.defineProperty(exports, "DialogFooter", {
20
20
  enumerable: true,
21
- get: function () { return chunkGUBMEDHZ_cjs.DialogFooter; }
21
+ get: function () { return chunkUZ6SEVW3_cjs.DialogFooter; }
22
22
  });
23
23
  Object.defineProperty(exports, "DialogHeader", {
24
24
  enumerable: true,
25
- get: function () { return chunkGUBMEDHZ_cjs.DialogHeader; }
25
+ get: function () { return chunkUZ6SEVW3_cjs.DialogHeader; }
26
26
  });
27
27
  Object.defineProperty(exports, "DialogOverlay", {
28
28
  enumerable: true,
29
- get: function () { return chunkGUBMEDHZ_cjs.DialogOverlay; }
29
+ get: function () { return chunkUZ6SEVW3_cjs.DialogOverlay; }
30
30
  });
31
31
  Object.defineProperty(exports, "MenuContainer", {
32
32
  enumerable: true,
33
- get: function () { return chunkGUBMEDHZ_cjs.MenuContainer; }
33
+ get: function () { return chunkUZ6SEVW3_cjs.MenuContainer; }
34
34
  });
35
35
  Object.defineProperty(exports, "MenuEmpty", {
36
36
  enumerable: true,
37
- get: function () { return chunkGUBMEDHZ_cjs.MenuEmpty; }
37
+ get: function () { return chunkUZ6SEVW3_cjs.MenuEmpty; }
38
38
  });
39
39
  Object.defineProperty(exports, "MenuItem", {
40
40
  enumerable: true,
41
- get: function () { return chunkGUBMEDHZ_cjs.MenuItem; }
41
+ get: function () { return chunkUZ6SEVW3_cjs.MenuItem; }
42
42
  });
43
43
  Object.defineProperty(exports, "MenuSeparator", {
44
44
  enumerable: true,
45
- get: function () { return chunkGUBMEDHZ_cjs.MenuSeparator; }
45
+ get: function () { return chunkUZ6SEVW3_cjs.MenuSeparator; }
46
46
  });
47
47
  Object.defineProperty(exports, "Tab", {
48
48
  enumerable: true,
49
- get: function () { return chunkGUBMEDHZ_cjs.Tab; }
49
+ get: function () { return chunkUZ6SEVW3_cjs.Tab; }
50
50
  });
51
51
  Object.defineProperty(exports, "cn", {
52
52
  enumerable: true,
53
- get: function () { return chunkGUBMEDHZ_cjs.cn; }
53
+ get: function () { return chunkUZ6SEVW3_cjs.cn; }
54
54
  });
55
55
  Object.defineProperty(exports, "showHostContextMenu", {
56
56
  enumerable: true,
57
- get: function () { return chunkGUBMEDHZ_cjs.showHostContextMenu; }
57
+ get: function () { return chunkUZ6SEVW3_cjs.showHostContextMenu; }
58
58
  });
@@ -15,8 +15,14 @@ interface TabProps {
15
15
  title?: string;
16
16
  className?: string;
17
17
  disabled?: boolean;
18
+ draggable?: boolean;
19
+ onDragStart?: React.DragEventHandler<HTMLDivElement>;
20
+ onDragOver?: React.DragEventHandler<HTMLDivElement>;
21
+ onDragLeave?: React.DragEventHandler<HTMLDivElement>;
22
+ onDrop?: React.DragEventHandler<HTMLDivElement>;
23
+ onDragEnd?: React.DragEventHandler<HTMLDivElement>;
18
24
  }
19
- declare function Tab({ isActive, onClick, onClose, icon, title, className, disabled, }: TabProps): React.ReactElement;
25
+ declare function Tab({ isActive, onClick, onClose, icon, title, className, disabled, draggable, onDragStart, onDragOver, onDragLeave, onDrop, onDragEnd, }: TabProps): React.ReactElement;
20
26
 
21
27
  /**
22
28
  * Menu - 统一菜单组件
@@ -15,8 +15,14 @@ interface TabProps {
15
15
  title?: string;
16
16
  className?: string;
17
17
  disabled?: boolean;
18
+ draggable?: boolean;
19
+ onDragStart?: React.DragEventHandler<HTMLDivElement>;
20
+ onDragOver?: React.DragEventHandler<HTMLDivElement>;
21
+ onDragLeave?: React.DragEventHandler<HTMLDivElement>;
22
+ onDrop?: React.DragEventHandler<HTMLDivElement>;
23
+ onDragEnd?: React.DragEventHandler<HTMLDivElement>;
18
24
  }
19
- declare function Tab({ isActive, onClick, onClose, icon, title, className, disabled, }: TabProps): React.ReactElement;
25
+ declare function Tab({ isActive, onClick, onClose, icon, title, className, disabled, draggable, onDragStart, onDragOver, onDragLeave, onDrop, onDragEnd, }: TabProps): React.ReactElement;
20
26
 
21
27
  /**
22
28
  * Menu - 统一菜单组件
package/dist/ui/index.js CHANGED
@@ -1 +1 @@
1
- export { DialogBody, DialogButton, DialogContainer, DialogFooter, DialogHeader, DialogOverlay, MenuContainer, MenuEmpty, MenuItem, MenuSeparator, Tab, cn, showHostContextMenu } from '../chunk-P45BKQJK.js';
1
+ export { DialogBody, DialogButton, DialogContainer, DialogFooter, DialogHeader, DialogOverlay, MenuContainer, MenuEmpty, MenuItem, MenuSeparator, Tab, cn, showHostContextMenu } from '../chunk-XWORXNCU.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seastudio/sdk",
3
- "version": "3.4.3",
3
+ "version": "3.5.1",
4
4
  "description": "SeaStudio SDK - UI 组件 + MCP 信息交换中心",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",