@seastudio/sdk 4.0.15 → 4.0.18

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
@@ -1,130 +1,95 @@
1
1
  # @seastudio/sdk
2
2
 
3
- SeaStudio SDK v3.0 - UI 组件 + MCP 信息交换中心
3
+ SeaStudio public SDK for plugin UI components, MCP contracts, and host notifications.
4
4
 
5
- ## 安装
5
+ ## Install
6
6
 
7
7
  ```bash
8
- # 本地开发(在插件前端目录下)
9
8
  pnpm add @seastudio/sdk
10
9
  ```
11
10
 
12
- ## 架构
11
+ ## Public Entry Points
13
12
 
14
- ```
15
- seastudio-sdk/
16
- ├── src/
17
- │ ├── ui/ # UI 组件
18
- │ │ ├── Tab.tsx
19
- │ │ ├── Menu.tsx
20
- │ │ ├── Dialog.tsx
21
- │ │ ├── cosmos.css # 设计系统样式
22
- │ │ └── index.ts
23
- │ └── mcp/ # MCP 信息交换中心
24
- │ ├── core/ # MCP 基础设施
25
- │ ├── seastudio/ # 主程序 Tools
26
- │ ├── plugin-editor/ # 编辑器插件 Tools
27
- │ ├── plugin-preview/ # 预览插件 Tools
28
- │ └── index.ts
29
- └── dist/ # 构建产物
30
- ```
13
+ | Path | Purpose |
14
+ | --- | --- |
15
+ | `@seastudio/sdk` | UI and MCP aggregate exports |
16
+ | `@seastudio/sdk/ui` | Shared UI components and helpers |
17
+ | `@seastudio/sdk/mcp` | MCP core plus SeaStudio public contracts |
18
+ | `@seastudio/sdk/mcp/core` | JSON-RPC/MCP primitives |
19
+ | `@seastudio/sdk/mcp/seastudio` | SeaStudio host tools, notifications, and DTO types |
20
+ | `@seastudio/sdk/styles/cosmos.css` | Shared design-system CSS |
31
21
 
32
- ## 功能模块
22
+ ## Identity Notification Contract
33
23
 
34
- | 模块 | 说明 |
35
- |------|------|
36
- | UI Components | Tab、Menu、Dialog 等通用组件 |
37
- | MCP Core | JSON-RPC 2.0 传输层和客户端 |
38
- | MCP Tools | 主程序和各插件的 MCP Tools 定义 |
24
+ External plugins can subscribe to host-owned identity state without receiving SeaArt tokens.
39
25
 
40
- ## 快速开始
26
+ ```ts
27
+ import { SeastudioNotifications, type AuthSessionChangedParams } from '@seastudio/sdk/mcp';
41
28
 
42
- ### UI 组件
29
+ client.subscribe([SeastudioNotifications.AUTH_SESSION_CHANGED]);
43
30
 
44
- ```typescript
45
- import { Tab, MenuContainer, MenuItem, DialogOverlay, cn } from '@seastudio/sdk/ui';
46
-
47
- // 样式
48
- import '@seastudio/sdk/ui/cosmos.css';
31
+ server.onNotification(SeastudioNotifications.AUTH_SESSION_CHANGED, (params) => {
32
+ const { event, session } = params as AuthSessionChangedParams;
33
+ console.log(event, session.status, session.user?.id);
34
+ });
49
35
  ```
50
36
 
51
- ### MCP Tools
52
-
53
- ```typescript
54
- import { listAvailableTools, listAllTools, seastudio, editor, preview } from '@seastudio/sdk/mcp';
37
+ `AuthSessionChangedParams.session` contains only `status` and a minimal `user` DTO. Access tokens, SDK tokens, cookies, and provider credentials are never part of this public SDK contract.
55
38
 
56
- // 列出可用 Tools(从 SDK 静态获取,不依赖 Host)
57
- const tools = listAvailableTools();
39
+ ## MCP Tools
58
40
 
59
- // 如需内部/runtime 全量工具面,使用 listAllTools()
60
- const allTools = listAllTools();
41
+ ```ts
42
+ import { listAvailableTools, mcpToolToOpenAI } from '@seastudio/sdk/mcp';
61
43
 
62
- // 使用便捷方法调用 Tool
63
- await seastudio.file.read('/path/to/file');
64
- await seastudio.file.write('/path/to/file', 'content');
65
- await editor.openFile('/path/to/file');
66
- await preview.get('/path/to/file');
44
+ const tools = await listAvailableTools();
45
+ const openAiTools = tools.map(mcpToolToOpenAI);
67
46
  ```
68
47
 
69
- 说明:`@seastudio/sdk/mcp` 现在的官方稳定支持面聚焦在 raw MCP catalog、包索引和通用转换能力,不包含额外的上层适配逻辑。
48
+ SeaStudio host tools are also available from the static contract:
70
49
 
71
- ### 指定插件实例调用 Tool
50
+ ```ts
51
+ import { seastudio } from '@seastudio/sdk/mcp/seastudio';
72
52
 
73
- ```typescript
74
- import { callHostTool } from '@seastudio/sdk';
75
-
76
- await callHostTool(
77
- 'plugin-editor_open_file',
78
- { path: '/tmp/demo.ts' },
79
- { pluginInstanceId: 'plugin-123' }
80
- );
53
+ await seastudio.file.read('/path/to/file');
54
+ await seastudio.file.write('/path/to/file', 'content');
81
55
  ```
82
56
 
83
- `pluginInstanceId` `tools/call` 的可选协议字段,用于在同一插件存在多个实例时精确路由到目标实例。宿主在已知上下文时也可以自动补齐这个字段,因此大多数常规调用不需要手动传入。
84
-
85
- ### 动态加载插件 MCP
86
-
87
- ```typescript
88
- import { loadPlugin } from '@seastudio/sdk/mcp';
57
+ ## UI Components
89
58
 
90
- // 动态加载插件模块
91
- const editorModule = await loadPlugin('plugin-editor');
59
+ ```ts
60
+ import { Tab, MenuContainer, MenuItem, DialogOverlay, cn } from '@seastudio/sdk/ui';
61
+ import '@seastudio/sdk/styles/cosmos.css';
92
62
  ```
93
63
 
94
- ## 导入路径
95
-
96
- | 路径 | 说明 |
97
- |------|------|
98
- | `@seastudio/sdk` | 完整导出(UI + MCP) |
99
- | `@seastudio/sdk/ui` | UI 组件 |
100
- | `@seastudio/sdk/mcp` | MCP 完整模块 |
101
- | `@seastudio/sdk/mcp/core` | MCP 基础设施 |
102
- | `@seastudio/sdk/mcp/seastudio` | 主程序 Tools |
103
- | `@seastudio/sdk/mcp/plugin-editor` | 编辑器插件 Tools |
104
- | `@seastudio/sdk/mcp/plugin-preview` | 预览插件 Tools |
105
-
106
- ## 开发
64
+ ## Development
107
65
 
108
66
  ```bash
109
- # 构建
67
+ pnpm install --frozen-lockfile
110
68
  pnpm build
111
-
112
- # 开发模式(监听变化)
113
- pnpm dev
69
+ pnpm release:pack
114
70
  ```
115
71
 
116
- ## 开发者工具
72
+ `pnpm release:pack` builds the SDK, creates the exact npm tarball, and verifies the public contract exports before a release can publish.
117
73
 
118
- 插件与智能体的创建、打包、发布能力已迁入 SeaStudio 主程序内置的开发者工具引擎。
74
+ ## Release Policy
119
75
 
120
- - 创建项目:在 SeaStudio 主程序中使用 `设置 -> 开发者工具`
121
- - 打包项目:在 SeaStudio 主程序中选择项目目录后直接打包
122
- - 发布项目:在 SeaStudio 主程序的市场/开发者工具界面完成
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.
123
77
 
124
- ## 迁移指南
78
+ Releases are made from protected tags named `sdk-v<version>`, for example:
125
79
 
126
- 从 v2.x 迁移到 v3.x,请参阅项目根目录的 `MCP_MIGRATION_GUIDE.md`。
80
+ ```bash
81
+ git tag -a sdk-v4.0.18 -m "Release @seastudio/sdk 4.0.18"
82
+ git push origin sdk-v4.0.18
83
+ ```
127
84
 
128
- 如果你正在开发上层运行时:
129
- - 优先使用 `listAvailableTools()`、`listAllTools()`、`mcpToolToOpenAI()`、`getMCPPackageIdForTool()` 这类 raw MCP 基础能力。
130
- - 如需额外的工具投影或执行适配,请在各自仓库内自行维护,不要继续把上层语义收敛进 SDK。
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 publish this package from a personal shell as the normal release path.
92
+ The package `prepublishOnly` hook enforces this: local `npm publish`/`pnpm publish`
93
+ fails before contacting npm, so it cannot fall through to an interactive 2FA OTP
94
+ prompt. Use `pnpm release:pack` for local artifact verification and GitLab CI for
95
+ publishing.
@@ -379,14 +379,22 @@ var editorTools = [
379
379
  var gitTools = [
380
380
  annotateTool({
381
381
  name: "seastudio-git_read",
382
- description: "Read git repository state for the current project. Actions: status, diff, show, lineChanges, probe.",
382
+ description: "Read git repository state for the current project. Actions: status, diff, show, lineChanges, probe, branches, log.",
383
383
  inputSchema: {
384
384
  type: "object",
385
385
  properties: {
386
386
  action: {
387
387
  type: "string",
388
- enum: ["status", "diff", "show", "lineChanges", "probe"],
389
- description: "status: porcelain file list; diff: unified diff text; show: file at ref; lineChanges: editor gutter ranges; probe: runtime availability."
388
+ enum: ["status", "diff", "show", "lineChanges", "probe", "branches", "log"],
389
+ description: "status: porcelain file list; diff: unified diff text; show: file at ref; lineChanges: editor gutter ranges; probe: runtime availability; branches: local/remote branches with ahead/behind; log: commit history for graph view."
390
+ },
391
+ maxCount: {
392
+ type: "number",
393
+ description: "Max commits to return for log (default 50)."
394
+ },
395
+ skip: {
396
+ type: "number",
397
+ description: "Number of commits to skip for log pagination (default 0)."
390
398
  },
391
399
  path: { type: "string", description: "Repo-relative file path (required for diff/show/lineChanges)." },
392
400
  scope: {
@@ -410,13 +418,27 @@ var gitTools = [
410
418
  }),
411
419
  annotateTool({
412
420
  name: "seastudio-git_mutate",
413
- description: "Mutate git state: init, stage, unstage, discard, commit, stageAll, unstageAll, discardAll.",
421
+ description: "Mutate git state: init, stage, unstage, discard, commit, stageAll, unstageAll, discardAll, checkout, createBranch, fetch, pull, push.",
414
422
  inputSchema: {
415
423
  type: "object",
416
424
  properties: {
417
425
  action: {
418
426
  type: "string",
419
- enum: ["init", "stage", "unstage", "discard", "commit", "stageAll", "unstageAll", "discardAll"]
427
+ enum: [
428
+ "init",
429
+ "stage",
430
+ "unstage",
431
+ "discard",
432
+ "commit",
433
+ "stageAll",
434
+ "unstageAll",
435
+ "discardAll",
436
+ "checkout",
437
+ "createBranch",
438
+ "fetch",
439
+ "pull",
440
+ "push"
441
+ ]
420
442
  },
421
443
  path: { type: "string", description: "Repo-relative path for stage/unstage/discard." },
422
444
  paths: {
@@ -425,6 +447,8 @@ var gitTools = [
425
447
  description: "Multiple paths for stage/unstage/discard."
426
448
  },
427
449
  message: { type: "string", description: "Commit message (required for commit)." },
450
+ branch: { type: "string", description: "Branch name for checkout/createBranch (remote-style names like origin/foo create a tracking branch on checkout)." },
451
+ remote: { type: "string", description: "Remote name for fetch/pull/push (default: upstream remote or origin)." },
428
452
  rootId: { type: "string", description: "Filesystem root id (default workspace)." }
429
453
  },
430
454
  required: ["action"]
@@ -512,35 +536,6 @@ var shellTools = [
512
536
  })
513
537
  ];
514
538
 
515
- // src/mcp/seastudio/tools/aigc.ts
516
- var seaCloudTools = [
517
- annotateTool({
518
- name: "seastudio-seacloud_task",
519
- 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",
520
- inputSchema: {
521
- type: "object",
522
- properties: {
523
- action: {
524
- type: "string",
525
- enum: ["listModels", "createTask", "queryTask"],
526
- description: "SeaCloud \u52A8\u4F5C\u3002listModels \u53EF\u4F20 tag\uFF1BcreateTask \u9700\u8981 model/params\uFF1BqueryTask \u9700\u8981 task_id\u3002"
527
- },
528
- tag: { type: "string", description: 'listModels \u6309\u6807\u7B7E\u8FC7\u6EE4\u6A21\u578B\uFF08\u53EF\u9009\uFF09\uFF0C\u5982 "vidu"\u3001"musicfy"\u3001"tencent"\u3002' },
529
- model: { type: "string", description: "createTask \u7684\u6A21\u578B\u540D\u79F0\uFF08\u6765\u81EA listModels \u8FD4\u56DE\u7684 model \u5B57\u6BB5\uFF09\u3002" },
530
- params: { type: "object", description: "createTask \u7684\u6A21\u578B\u53C2\u6570\uFF08\u6765\u81EA listModels \u8FD4\u56DE\u7684\u53C2\u6570 schema\uFF09\u3002" },
531
- dash_scope: { type: "boolean", description: "createTask \u662F\u5426\u89E3\u9664\u533A\u57DF\u9650\u5236\uFF0C\u9ED8\u8BA4 true\u3002" },
532
- moderation: { type: "boolean", description: "createTask \u662F\u5426\u89E3\u9664\u529F\u80FD\u9650\u5236\uFF0C\u9ED8\u8BA4 false\u3002" },
533
- task_id: { type: "string", description: "queryTask \u7684\u4EFB\u52A1 ID\uFF08\u7531 createTask \u8FD4\u56DE\uFF09\u3002" }
534
- },
535
- required: ["action"]
536
- }
537
- }, {
538
- operationKind: "workflow",
539
- requiresExecutionEvidence: false,
540
- rawDomain: "asset"
541
- })
542
- ];
543
-
544
539
  // src/mcp/seastudio/tools/browser.ts
545
540
  var SINGLETON_BROWSER_SESSION_ID = "browser-session-default";
546
541
  var browserSessionIdParam = {
@@ -1260,7 +1255,9 @@ var SeastudioNotifications = {
1260
1255
  */
1261
1256
  HOST_APP_VISIBILITY: "host:app_visibility",
1262
1257
  /** Host MCP tools/list 发生变化(例如 Seaflow bridge 动态注册工具) */
1263
- RUNTIME_TOOLS_CHANGED: "mcp:runtime_tools_changed"
1258
+ RUNTIME_TOOLS_CHANGED: "mcp:runtime_tools_changed",
1259
+ /** 主程序用户登录态变化;不包含访问令牌 */
1260
+ AUTH_SESSION_CHANGED: "auth:session_changed"
1264
1261
  };
1265
1262
 
1266
1263
  // src/mcp/seastudio/index.ts
@@ -1269,7 +1266,6 @@ var allTools = [
1269
1266
  ...editorTools,
1270
1267
  ...gitTools,
1271
1268
  ...shellTools,
1272
- ...seaCloudTools,
1273
1269
  ...pluginManagementTools,
1274
1270
  ...agentManagementTools,
1275
1271
  ...pluginTabTools,
@@ -1280,4 +1276,4 @@ var allTools = [
1280
1276
  ];
1281
1277
  var tools = allTools;
1282
1278
 
1283
- 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_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-AIKVFI4X.js';
1
+ import { allTools } from './chunk-IAAA5JF6.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);
@@ -381,14 +381,22 @@ var editorTools = [
381
381
  var gitTools = [
382
382
  annotateTool({
383
383
  name: "seastudio-git_read",
384
- description: "Read git repository state for the current project. Actions: status, diff, show, lineChanges, probe.",
384
+ description: "Read git repository state for the current project. Actions: status, diff, show, lineChanges, probe, branches, log.",
385
385
  inputSchema: {
386
386
  type: "object",
387
387
  properties: {
388
388
  action: {
389
389
  type: "string",
390
- enum: ["status", "diff", "show", "lineChanges", "probe"],
391
- description: "status: porcelain file list; diff: unified diff text; show: file at ref; lineChanges: editor gutter ranges; probe: runtime availability."
390
+ enum: ["status", "diff", "show", "lineChanges", "probe", "branches", "log"],
391
+ description: "status: porcelain file list; diff: unified diff text; show: file at ref; lineChanges: editor gutter ranges; probe: runtime availability; branches: local/remote branches with ahead/behind; log: commit history for graph view."
392
+ },
393
+ maxCount: {
394
+ type: "number",
395
+ description: "Max commits to return for log (default 50)."
396
+ },
397
+ skip: {
398
+ type: "number",
399
+ description: "Number of commits to skip for log pagination (default 0)."
392
400
  },
393
401
  path: { type: "string", description: "Repo-relative file path (required for diff/show/lineChanges)." },
394
402
  scope: {
@@ -412,13 +420,27 @@ var gitTools = [
412
420
  }),
413
421
  annotateTool({
414
422
  name: "seastudio-git_mutate",
415
- description: "Mutate git state: init, stage, unstage, discard, commit, stageAll, unstageAll, discardAll.",
423
+ description: "Mutate git state: init, stage, unstage, discard, commit, stageAll, unstageAll, discardAll, checkout, createBranch, fetch, pull, push.",
416
424
  inputSchema: {
417
425
  type: "object",
418
426
  properties: {
419
427
  action: {
420
428
  type: "string",
421
- enum: ["init", "stage", "unstage", "discard", "commit", "stageAll", "unstageAll", "discardAll"]
429
+ enum: [
430
+ "init",
431
+ "stage",
432
+ "unstage",
433
+ "discard",
434
+ "commit",
435
+ "stageAll",
436
+ "unstageAll",
437
+ "discardAll",
438
+ "checkout",
439
+ "createBranch",
440
+ "fetch",
441
+ "pull",
442
+ "push"
443
+ ]
422
444
  },
423
445
  path: { type: "string", description: "Repo-relative path for stage/unstage/discard." },
424
446
  paths: {
@@ -427,6 +449,8 @@ var gitTools = [
427
449
  description: "Multiple paths for stage/unstage/discard."
428
450
  },
429
451
  message: { type: "string", description: "Commit message (required for commit)." },
452
+ branch: { type: "string", description: "Branch name for checkout/createBranch (remote-style names like origin/foo create a tracking branch on checkout)." },
453
+ remote: { type: "string", description: "Remote name for fetch/pull/push (default: upstream remote or origin)." },
430
454
  rootId: { type: "string", description: "Filesystem root id (default workspace)." }
431
455
  },
432
456
  required: ["action"]
@@ -514,35 +538,6 @@ var shellTools = [
514
538
  })
515
539
  ];
516
540
 
517
- // src/mcp/seastudio/tools/aigc.ts
518
- var seaCloudTools = [
519
- annotateTool({
520
- name: "seastudio-seacloud_task",
521
- 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",
522
- inputSchema: {
523
- type: "object",
524
- properties: {
525
- action: {
526
- type: "string",
527
- enum: ["listModels", "createTask", "queryTask"],
528
- description: "SeaCloud \u52A8\u4F5C\u3002listModels \u53EF\u4F20 tag\uFF1BcreateTask \u9700\u8981 model/params\uFF1BqueryTask \u9700\u8981 task_id\u3002"
529
- },
530
- tag: { type: "string", description: 'listModels \u6309\u6807\u7B7E\u8FC7\u6EE4\u6A21\u578B\uFF08\u53EF\u9009\uFF09\uFF0C\u5982 "vidu"\u3001"musicfy"\u3001"tencent"\u3002' },
531
- model: { type: "string", description: "createTask \u7684\u6A21\u578B\u540D\u79F0\uFF08\u6765\u81EA listModels \u8FD4\u56DE\u7684 model \u5B57\u6BB5\uFF09\u3002" },
532
- params: { type: "object", description: "createTask \u7684\u6A21\u578B\u53C2\u6570\uFF08\u6765\u81EA listModels \u8FD4\u56DE\u7684\u53C2\u6570 schema\uFF09\u3002" },
533
- dash_scope: { type: "boolean", description: "createTask \u662F\u5426\u89E3\u9664\u533A\u57DF\u9650\u5236\uFF0C\u9ED8\u8BA4 true\u3002" },
534
- moderation: { type: "boolean", description: "createTask \u662F\u5426\u89E3\u9664\u529F\u80FD\u9650\u5236\uFF0C\u9ED8\u8BA4 false\u3002" },
535
- task_id: { type: "string", description: "queryTask \u7684\u4EFB\u52A1 ID\uFF08\u7531 createTask \u8FD4\u56DE\uFF09\u3002" }
536
- },
537
- required: ["action"]
538
- }
539
- }, {
540
- operationKind: "workflow",
541
- requiresExecutionEvidence: false,
542
- rawDomain: "asset"
543
- })
544
- ];
545
-
546
541
  // src/mcp/seastudio/tools/browser.ts
547
542
  var SINGLETON_BROWSER_SESSION_ID = "browser-session-default";
548
543
  var browserSessionIdParam = {
@@ -1262,7 +1257,9 @@ var SeastudioNotifications = {
1262
1257
  */
1263
1258
  HOST_APP_VISIBILITY: "host:app_visibility",
1264
1259
  /** Host MCP tools/list 发生变化(例如 Seaflow bridge 动态注册工具) */
1265
- RUNTIME_TOOLS_CHANGED: "mcp:runtime_tools_changed"
1260
+ RUNTIME_TOOLS_CHANGED: "mcp:runtime_tools_changed",
1261
+ /** 主程序用户登录态变化;不包含访问令牌 */
1262
+ AUTH_SESSION_CHANGED: "auth:session_changed"
1266
1263
  };
1267
1264
 
1268
1265
  // src/mcp/seastudio/index.ts
@@ -1271,7 +1268,6 @@ var allTools = [
1271
1268
  ...editorTools,
1272
1269
  ...gitTools,
1273
1270
  ...shellTools,
1274
- ...seaCloudTools,
1275
1271
  ...pluginManagementTools,
1276
1272
  ...agentManagementTools,
1277
1273
  ...pluginTabTools,
@@ -1307,7 +1303,6 @@ exports.request = request;
1307
1303
  exports.rootedPathEvidenceOutputSchema = rootedPathEvidenceOutputSchema;
1308
1304
  exports.rootedWriteEvidenceOutputSchema = rootedWriteEvidenceOutputSchema;
1309
1305
  exports.runOneShotShellCommand = runOneShotShellCommand;
1310
- exports.seaCloudTools = seaCloudTools;
1311
1306
  exports.seastudio = seastudio;
1312
1307
  exports.shellSessionCloseEvidenceOutputSchema = shellSessionCloseEvidenceOutputSchema;
1313
1308
  exports.shellSessionOpenEvidenceOutputSchema = shellSessionOpenEvidenceOutputSchema;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkCYXHI776_cjs = require('./chunk-CYXHI776.cjs');
3
+ var chunkM5UESV5E_cjs = require('./chunk-M5UESV5E.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: chunkCYXHI776_cjs.allTools }
14
+ { id: "seastudio", name: "SeaStudio", description: "\u6587\u4EF6/Shell/Git/\u63D2\u4EF6\u57FA\u7840\u80FD\u529B", tools: chunkM5UESV5E_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 [...chunkCYXHI776_cjs.allTools];
32
+ return [...chunkM5UESV5E_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
- chunkCYXHI776_cjs.allTools.map((tool) => [tool.name, "seastudio"])
65
+ chunkM5UESV5E_cjs.allTools.map((tool) => [tool.name, "seastudio"])
66
66
  );
67
67
  function getMCPToolPackageIndex() {
68
68
  return new Map(MCP_TOOL_PACKAGE_INDEX);
package/dist/index.cjs CHANGED
@@ -1,51 +1,51 @@
1
1
  'use strict';
2
2
 
3
- var chunkRMXIQTXC_cjs = require('./chunk-RMXIQTXC.cjs');
3
+ var chunkUIRFMS2U_cjs = require('./chunk-UIRFMS2U.cjs');
4
4
  var chunk2L26XL3M_cjs = require('./chunk-2L26XL3M.cjs');
5
- var chunkCYXHI776_cjs = require('./chunk-CYXHI776.cjs');
5
+ var chunkM5UESV5E_cjs = require('./chunk-M5UESV5E.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 chunkRMXIQTXC_cjs.MCP_PACKAGES; }
12
+ get: function () { return chunkUIRFMS2U_cjs.MCP_PACKAGES; }
13
13
  });
14
14
  Object.defineProperty(exports, "getMCPPackageIdForTool", {
15
15
  enumerable: true,
16
- get: function () { return chunkRMXIQTXC_cjs.getMCPPackageIdForTool; }
16
+ get: function () { return chunkUIRFMS2U_cjs.getMCPPackageIdForTool; }
17
17
  });
18
18
  Object.defineProperty(exports, "getMCPPackages", {
19
19
  enumerable: true,
20
- get: function () { return chunkRMXIQTXC_cjs.getMCPPackages; }
20
+ get: function () { return chunkUIRFMS2U_cjs.getMCPPackages; }
21
21
  });
22
22
  Object.defineProperty(exports, "getMCPToolPackageIndex", {
23
23
  enumerable: true,
24
- get: function () { return chunkRMXIQTXC_cjs.getMCPToolPackageIndex; }
24
+ get: function () { return chunkUIRFMS2U_cjs.getMCPToolPackageIndex; }
25
25
  });
26
26
  Object.defineProperty(exports, "getToolsForLLM", {
27
27
  enumerable: true,
28
- get: function () { return chunkRMXIQTXC_cjs.getToolsForLLM; }
28
+ get: function () { return chunkUIRFMS2U_cjs.getToolsForLLM; }
29
29
  });
30
30
  Object.defineProperty(exports, "listAllTools", {
31
31
  enumerable: true,
32
- get: function () { return chunkRMXIQTXC_cjs.listAllTools; }
32
+ get: function () { return chunkUIRFMS2U_cjs.listAllTools; }
33
33
  });
34
34
  Object.defineProperty(exports, "listAvailableTools", {
35
35
  enumerable: true,
36
- get: function () { return chunkRMXIQTXC_cjs.listAvailableTools; }
36
+ get: function () { return chunkUIRFMS2U_cjs.listAvailableTools; }
37
37
  });
38
38
  Object.defineProperty(exports, "listAvailableToolsForLLM", {
39
39
  enumerable: true,
40
- get: function () { return chunkRMXIQTXC_cjs.listAvailableToolsForLLM; }
40
+ get: function () { return chunkUIRFMS2U_cjs.listAvailableToolsForLLM; }
41
41
  });
42
42
  Object.defineProperty(exports, "loadPlugin", {
43
43
  enumerable: true,
44
- get: function () { return chunkRMXIQTXC_cjs.loadPlugin; }
44
+ get: function () { return chunkUIRFMS2U_cjs.loadPlugin; }
45
45
  });
46
46
  Object.defineProperty(exports, "mcpToolToOpenAI", {
47
47
  enumerable: true,
48
- get: function () { return chunkRMXIQTXC_cjs.mcpToolToOpenAI; }
48
+ get: function () { return chunkUIRFMS2U_cjs.mcpToolToOpenAI; }
49
49
  });
50
50
  Object.defineProperty(exports, "DialogBody", {
51
51
  enumerable: true,
@@ -101,51 +101,47 @@ Object.defineProperty(exports, "showHostContextMenu", {
101
101
  });
102
102
  Object.defineProperty(exports, "SeastudioNotifications", {
103
103
  enumerable: true,
104
- get: function () { return chunkCYXHI776_cjs.SeastudioNotifications; }
104
+ get: function () { return chunkM5UESV5E_cjs.SeastudioNotifications; }
105
105
  });
106
106
  Object.defineProperty(exports, "SeastudioRequests", {
107
107
  enumerable: true,
108
- get: function () { return chunkCYXHI776_cjs.SeastudioRequests; }
108
+ get: function () { return chunkM5UESV5E_cjs.SeastudioRequests; }
109
109
  });
110
110
  Object.defineProperty(exports, "agentManagementTools", {
111
111
  enumerable: true,
112
- get: function () { return chunkCYXHI776_cjs.agentManagementTools; }
112
+ get: function () { return chunkM5UESV5E_cjs.agentManagementTools; }
113
113
  });
114
114
  Object.defineProperty(exports, "agentTabTools", {
115
115
  enumerable: true,
116
- get: function () { return chunkCYXHI776_cjs.agentTabTools; }
116
+ get: function () { return chunkM5UESV5E_cjs.agentTabTools; }
117
117
  });
118
118
  Object.defineProperty(exports, "fileTools", {
119
119
  enumerable: true,
120
- get: function () { return chunkCYXHI776_cjs.fileTools; }
120
+ get: function () { return chunkM5UESV5E_cjs.fileTools; }
121
121
  });
122
122
  Object.defineProperty(exports, "pluginManagementTools", {
123
123
  enumerable: true,
124
- get: function () { return chunkCYXHI776_cjs.pluginManagementTools; }
124
+ get: function () { return chunkM5UESV5E_cjs.pluginManagementTools; }
125
125
  });
126
126
  Object.defineProperty(exports, "pluginTabTools", {
127
127
  enumerable: true,
128
- get: function () { return chunkCYXHI776_cjs.pluginTabTools; }
129
- });
130
- Object.defineProperty(exports, "seaCloudTools", {
131
- enumerable: true,
132
- get: function () { return chunkCYXHI776_cjs.seaCloudTools; }
128
+ get: function () { return chunkM5UESV5E_cjs.pluginTabTools; }
133
129
  });
134
130
  Object.defineProperty(exports, "seastudio", {
135
131
  enumerable: true,
136
- get: function () { return chunkCYXHI776_cjs.seastudio; }
132
+ get: function () { return chunkM5UESV5E_cjs.seastudio; }
137
133
  });
138
134
  Object.defineProperty(exports, "seastudioAllTools", {
139
135
  enumerable: true,
140
- get: function () { return chunkCYXHI776_cjs.allTools; }
136
+ get: function () { return chunkM5UESV5E_cjs.allTools; }
141
137
  });
142
138
  Object.defineProperty(exports, "seastudioTools", {
143
139
  enumerable: true,
144
- get: function () { return chunkCYXHI776_cjs.tools; }
140
+ get: function () { return chunkM5UESV5E_cjs.tools; }
145
141
  });
146
142
  Object.defineProperty(exports, "shellTools", {
147
143
  enumerable: true,
148
- get: function () { return chunkCYXHI776_cjs.shellTools; }
144
+ get: function () { return chunkM5UESV5E_cjs.shellTools; }
149
145
  });
150
146
  Object.defineProperty(exports, "MCPClient", {
151
147
  enumerable: true,
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { DialogBody, DialogBodyProps, DialogButton, DialogButtonProps, DialogContainer, DialogContainerProps, DialogFooter, DialogFooterProps, DialogHeader, DialogHeaderProps, DialogOverlay, DialogOverlayProps, HostContextMenuItem, HostContextMenuResult, MenuContainer, MenuContainerProps, MenuEmpty, MenuEmptyProps, MenuItem, MenuItemProps, MenuSeparator, MenuSeparatorProps, Tab, TabProps, cn, showHostContextMenu } from './ui/index.cjs';
2
2
  export { MCPAvailableTool, MCPPackageId, MCPPackageInfo, MCPToolCapabilityMetadata, MCPToolCapabilityRisk, MCP_PACKAGES, OpenAITool, getMCPPackageIdForTool, getMCPPackages, getMCPToolPackageIndex, getToolsForLLM, listAllTools, listAvailableTools, listAvailableToolsForLLM, loadPlugin, mcpToolToOpenAI } from './mcp/index.cjs';
3
+ export { AuthSessionChangedParams, AuthSessionStatus, AuthSessionUser, FileKeepRequestedParams, FileModifiedParams, FileOpenRequestedParams, FileSavedParams, FileSendRequestedParams, FilesChangedParams, GitBranchInfo, GitBranchesResult, GitChangeKind, GitChangedParams, GitCommitRef, GitCommitRefType, GitFileChange, GitLineChange, GitLineChangeKind, GitLogCommit, GitLogResult, GitOpenDiffRequestedParams, GitStatusResult, GitSummary, RootsChangedParams, SeastudioDragDropParams, SeastudioDragEnterParams, SeastudioDragFileData, SeastudioDragRootId, SeastudioDragStartParams, SeastudioFileDownloadOptions, SeastudioFileTreeOptions, SeastudioNotifications, SeastudioRequests, TextSendRequestedParams, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from './mcp/seastudio/index.cjs';
3
4
  export { F as FileItem, a as FileNode, J as JSONRPCError, b as JSONRPCMessage, c as JSONRPCNotification, d as JSONRPCRequest, e as JSONRPCResponse, M as MCPMessageEnvelope, f as MCPMethod, g as MCPTool, h as MCPToolAnnotations, i as MCPToolCallRequest, j as MCPToolInputSchema, k as MCPToolResult, N as NotificationHandler, P as PluginMCPManifest, l as PluginMCPModuleExports, m as PublishParams, S as SubscribeParams, n as createNotification, o as createRequest, p as createResponse, q as isMCPMessage, r as isNotification } from './types-D7xY0bt6.cjs';
4
- export { FileKeepRequestedParams, FileModifiedParams, FileOpenRequestedParams, FileSavedParams, FileSendRequestedParams, FilesChangedParams, GitChangeKind, GitChangedParams, GitFileChange, GitLineChange, GitLineChangeKind, GitOpenDiffRequestedParams, GitStatusResult, GitSummary, RootsChangedParams, SeastudioDragDropParams, SeastudioDragEnterParams, SeastudioDragFileData, SeastudioDragRootId, SeastudioDragStartParams, SeastudioFileDownloadOptions, SeastudioFileTreeOptions, SeastudioNotifications, SeastudioRequests, TextSendRequestedParams, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seaCloudTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from './mcp/seastudio/index.cjs';
5
5
  export { MCPClient, MCPClientOptions, MCPRequestOptions, MCPServer, MCPToolCallOptions, MCPToolHandler, MCPTransport, NormalizeMCPToolInputSchemaOptions, PostMessageTransport, PostMessageTransportOptions, callHostTool, callHostToolText, createMCPClient, createMCPServer, getDefaultClient, getDefaultServer, getDefaultTransport, normalizeMCPTool, normalizeMCPToolInputSchema, normalizeMCPToolObjectSchema, setDefaultClient, setDefaultTransport, startDefaultServer } from './mcp/core/index.cjs';
6
6
  import 'react';
7
7
  import 'clsx';
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { DialogBody, DialogBodyProps, DialogButton, DialogButtonProps, DialogContainer, DialogContainerProps, DialogFooter, DialogFooterProps, DialogHeader, DialogHeaderProps, DialogOverlay, DialogOverlayProps, HostContextMenuItem, HostContextMenuResult, MenuContainer, MenuContainerProps, MenuEmpty, MenuEmptyProps, MenuItem, MenuItemProps, MenuSeparator, MenuSeparatorProps, Tab, TabProps, cn, showHostContextMenu } from './ui/index.js';
2
2
  export { MCPAvailableTool, MCPPackageId, MCPPackageInfo, MCPToolCapabilityMetadata, MCPToolCapabilityRisk, MCP_PACKAGES, OpenAITool, getMCPPackageIdForTool, getMCPPackages, getMCPToolPackageIndex, getToolsForLLM, listAllTools, listAvailableTools, listAvailableToolsForLLM, loadPlugin, mcpToolToOpenAI } from './mcp/index.js';
3
+ export { AuthSessionChangedParams, AuthSessionStatus, AuthSessionUser, FileKeepRequestedParams, FileModifiedParams, FileOpenRequestedParams, FileSavedParams, FileSendRequestedParams, FilesChangedParams, GitBranchInfo, GitBranchesResult, GitChangeKind, GitChangedParams, GitCommitRef, GitCommitRefType, GitFileChange, GitLineChange, GitLineChangeKind, GitLogCommit, GitLogResult, GitOpenDiffRequestedParams, GitStatusResult, GitSummary, RootsChangedParams, SeastudioDragDropParams, SeastudioDragEnterParams, SeastudioDragFileData, SeastudioDragRootId, SeastudioDragStartParams, SeastudioFileDownloadOptions, SeastudioFileTreeOptions, SeastudioNotifications, SeastudioRequests, TextSendRequestedParams, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from './mcp/seastudio/index.js';
3
4
  export { F as FileItem, a as FileNode, J as JSONRPCError, b as JSONRPCMessage, c as JSONRPCNotification, d as JSONRPCRequest, e as JSONRPCResponse, M as MCPMessageEnvelope, f as MCPMethod, g as MCPTool, h as MCPToolAnnotations, i as MCPToolCallRequest, j as MCPToolInputSchema, k as MCPToolResult, N as NotificationHandler, P as PluginMCPManifest, l as PluginMCPModuleExports, m as PublishParams, S as SubscribeParams, n as createNotification, o as createRequest, p as createResponse, q as isMCPMessage, r as isNotification } from './types-D7xY0bt6.js';
4
- export { FileKeepRequestedParams, FileModifiedParams, FileOpenRequestedParams, FileSavedParams, FileSendRequestedParams, FilesChangedParams, GitChangeKind, GitChangedParams, GitFileChange, GitLineChange, GitLineChangeKind, GitOpenDiffRequestedParams, GitStatusResult, GitSummary, RootsChangedParams, SeastudioDragDropParams, SeastudioDragEnterParams, SeastudioDragFileData, SeastudioDragRootId, SeastudioDragStartParams, SeastudioFileDownloadOptions, SeastudioFileTreeOptions, SeastudioNotifications, SeastudioRequests, TextSendRequestedParams, agentManagementTools, agentTabTools, fileTools, pluginManagementTools, pluginTabTools, seaCloudTools, seastudio, allTools as seastudioAllTools, tools as seastudioTools, shellTools } from './mcp/seastudio/index.js';
5
5
  export { MCPClient, MCPClientOptions, MCPRequestOptions, MCPServer, MCPToolCallOptions, MCPToolHandler, MCPTransport, NormalizeMCPToolInputSchemaOptions, PostMessageTransport, PostMessageTransportOptions, callHostTool, callHostToolText, createMCPClient, createMCPServer, getDefaultClient, getDefaultServer, getDefaultTransport, normalizeMCPTool, normalizeMCPToolInputSchema, normalizeMCPToolObjectSchema, setDefaultClient, setDefaultTransport, startDefaultServer } from './mcp/core/index.js';
6
6
  import 'react';
7
7
  import 'clsx';