@seastudio/sdk 3.3.1 → 3.3.3

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.
@@ -48,9 +48,12 @@ function normalizeAvailableTool(raw) {
48
48
  return null;
49
49
  }
50
50
  const tool = raw;
51
- if (typeof tool.name !== "string" || typeof tool.description !== "string" || typeof tool.inputSchema !== "object") {
51
+ if (typeof tool.name !== "string" || typeof tool.inputSchema !== "object" || tool.inputSchema === null) {
52
52
  return null;
53
53
  }
54
+ if (typeof tool.description !== "string") {
55
+ tool.description = tool.description == null ? "" : String(tool.description);
56
+ }
54
57
  const normalized = chunk3I7UM66P_cjs.normalizeMCPTool(tool);
55
58
  const source = typeof tool.source === "string" && tool.source.trim() ? tool.source.trim() : "seastudio";
56
59
  return {
@@ -0,0 +1,184 @@
1
+ 'use strict';
2
+
3
+ // src/skill/parser.ts
4
+ var FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;
5
+ function stripQuotes(value) {
6
+ const trimmed = value.trim();
7
+ if (trimmed.length >= 2) {
8
+ const first = trimmed[0];
9
+ const last = trimmed[trimmed.length - 1];
10
+ if (first === '"' && last === '"' || first === "'" && last === "'") {
11
+ return trimmed.slice(1, -1);
12
+ }
13
+ }
14
+ return trimmed;
15
+ }
16
+ function parseInlineList(value) {
17
+ const trimmed = value.trim();
18
+ if (!trimmed.startsWith("[") || !trimmed.endsWith("]")) {
19
+ return null;
20
+ }
21
+ const inner = trimmed.slice(1, -1).trim();
22
+ if (!inner) return [];
23
+ return inner.split(",").map((part) => stripQuotes(part)).filter((s) => s.length > 0);
24
+ }
25
+ function parseSkillFrontmatter(markdown) {
26
+ const match = FRONTMATTER_RE.exec(markdown);
27
+ if (!match) return {};
28
+ const block = match[1];
29
+ const result = { extra: {} };
30
+ const lines = block.split(/\r?\n/);
31
+ let pendingListKey = null;
32
+ const pendingList = [];
33
+ const flushPendingList = () => {
34
+ if (pendingListKey) {
35
+ if (pendingListKey === "tags") {
36
+ result.tags = [...pendingList];
37
+ } else {
38
+ result.extra[pendingListKey] = pendingList.join(",");
39
+ }
40
+ pendingListKey = null;
41
+ pendingList.length = 0;
42
+ }
43
+ };
44
+ for (const rawLine of lines) {
45
+ const line = rawLine.replace(/\s+$/g, "");
46
+ if (!line.trim()) {
47
+ flushPendingList();
48
+ continue;
49
+ }
50
+ const listItemMatch = /^\s*-\s+(.*)$/.exec(line);
51
+ if (listItemMatch && pendingListKey) {
52
+ pendingList.push(stripQuotes(listItemMatch[1]));
53
+ continue;
54
+ }
55
+ flushPendingList();
56
+ const kvMatch = /^([A-Za-z0-9_-]+)\s*:\s*(.*)$/.exec(line);
57
+ if (!kvMatch) continue;
58
+ const key = kvMatch[1];
59
+ const value = kvMatch[2];
60
+ if (value === "") {
61
+ pendingListKey = key;
62
+ pendingList.length = 0;
63
+ continue;
64
+ }
65
+ if (key === "tags") {
66
+ const inline = parseInlineList(value);
67
+ if (inline !== null) {
68
+ result.tags = inline;
69
+ } else {
70
+ result.tags = stripQuotes(value).split(",").map((s) => s.trim()).filter(Boolean);
71
+ }
72
+ continue;
73
+ }
74
+ const cleaned = stripQuotes(value);
75
+ if (key === "name") result.name = cleaned;
76
+ else if (key === "description") result.description = cleaned;
77
+ else result.extra[key] = cleaned;
78
+ }
79
+ flushPendingList();
80
+ if (result.extra && Object.keys(result.extra).length === 0) {
81
+ delete result.extra;
82
+ }
83
+ return result;
84
+ }
85
+ function buildSkillId(source, dirName) {
86
+ const safe = dirName.trim().replace(/[\\/]+/g, "-").replace(/\s+/g, "-");
87
+ return `${source}:${safe}`;
88
+ }
89
+
90
+ // src/skill/client.ts
91
+ var currentTransport = null;
92
+ function setSkillTransport(transport) {
93
+ currentTransport = transport;
94
+ }
95
+ function getSkillTransport() {
96
+ if (currentTransport) {
97
+ return currentTransport;
98
+ }
99
+ const auto = tryAutoBindElectronTransport();
100
+ if (auto) {
101
+ currentTransport = auto;
102
+ return auto;
103
+ }
104
+ throw new Error(
105
+ "[skill] No SkillTransport configured. Call setSkillTransport() or useElectronSkillTransport() first."
106
+ );
107
+ }
108
+ async function listSkills() {
109
+ return getSkillTransport().list();
110
+ }
111
+ async function getSkill(id) {
112
+ return getSkillTransport().get(id);
113
+ }
114
+ async function rescanSkills() {
115
+ return getSkillTransport().rescan();
116
+ }
117
+ function onSkillsChanged(listener) {
118
+ const transport = getSkillTransport();
119
+ if (!transport.onChanged) {
120
+ return () => {
121
+ };
122
+ }
123
+ return transport.onChanged(listener);
124
+ }
125
+ async function setSkillEnabled(id, value) {
126
+ const t = getSkillTransport();
127
+ if (!t.setEnabled) throw new Error("[skill] transport.setEnabled not supported");
128
+ return t.setEnabled(id, value);
129
+ }
130
+ async function setSkillScope(id, scope) {
131
+ const t = getSkillTransport();
132
+ if (!t.setScope) throw new Error("[skill] transport.setScope not supported");
133
+ return t.setScope(id, scope);
134
+ }
135
+ async function uninstallSkill(id) {
136
+ const t = getSkillTransport();
137
+ if (!t.uninstall) throw new Error("[skill] transport.uninstall not supported");
138
+ return t.uninstall(id);
139
+ }
140
+ async function listSkillProjects() {
141
+ const t = getSkillTransport();
142
+ if (!t.listProjects) throw new Error("[skill] transport.listProjects not supported");
143
+ return t.listProjects();
144
+ }
145
+ function readElectronSkillBridge() {
146
+ const globalAny = globalThis;
147
+ return globalAny.electronAPI?.engine?.skill ?? null;
148
+ }
149
+ function tryAutoBindElectronTransport() {
150
+ const bridge = readElectronSkillBridge();
151
+ if (!bridge) return null;
152
+ return {
153
+ list: () => bridge.list(),
154
+ get: (id) => bridge.get(id),
155
+ rescan: () => bridge.rescan(),
156
+ onChanged: bridge.onChanged ? (cb) => bridge.onChanged(cb) : void 0,
157
+ setEnabled: bridge.setEnabled ? (id, value) => bridge.setEnabled(id, value) : void 0,
158
+ setScope: bridge.setScope ? (id, scope) => bridge.setScope(id, scope) : void 0,
159
+ uninstall: bridge.uninstall ? (id) => bridge.uninstall(id) : void 0,
160
+ listProjects: bridge.listProjects ? () => bridge.listProjects() : void 0
161
+ };
162
+ }
163
+ function useElectronSkillTransport() {
164
+ const transport = tryAutoBindElectronTransport();
165
+ if (transport) {
166
+ setSkillTransport(transport);
167
+ return true;
168
+ }
169
+ return false;
170
+ }
171
+
172
+ exports.buildSkillId = buildSkillId;
173
+ exports.getSkill = getSkill;
174
+ exports.getSkillTransport = getSkillTransport;
175
+ exports.listSkillProjects = listSkillProjects;
176
+ exports.listSkills = listSkills;
177
+ exports.onSkillsChanged = onSkillsChanged;
178
+ exports.parseSkillFrontmatter = parseSkillFrontmatter;
179
+ exports.rescanSkills = rescanSkills;
180
+ exports.setSkillEnabled = setSkillEnabled;
181
+ exports.setSkillScope = setSkillScope;
182
+ exports.setSkillTransport = setSkillTransport;
183
+ exports.uninstallSkill = uninstallSkill;
184
+ exports.useElectronSkillTransport = useElectronSkillTransport;
@@ -46,9 +46,12 @@ function normalizeAvailableTool(raw) {
46
46
  return null;
47
47
  }
48
48
  const tool = raw;
49
- if (typeof tool.name !== "string" || typeof tool.description !== "string" || typeof tool.inputSchema !== "object") {
49
+ if (typeof tool.name !== "string" || typeof tool.inputSchema !== "object" || tool.inputSchema === null) {
50
50
  return null;
51
51
  }
52
+ if (typeof tool.description !== "string") {
53
+ tool.description = tool.description == null ? "" : String(tool.description);
54
+ }
52
55
  const normalized = normalizeMCPTool(tool);
53
56
  const source = typeof tool.source === "string" && tool.source.trim() ? tool.source.trim() : "seastudio";
54
57
  return {
@@ -0,0 +1,65 @@
1
+ 'use strict';
2
+
3
+ // src/skill/registry.ts
4
+ var currentTransport = null;
5
+ function setSkillRegistryTransport(transport) {
6
+ currentTransport = transport;
7
+ }
8
+ function getSkillRegistryTransport() {
9
+ if (currentTransport) return currentTransport;
10
+ const auto = tryAutoBindElectronTransport();
11
+ if (auto) {
12
+ currentTransport = auto;
13
+ return auto;
14
+ }
15
+ throw new Error(
16
+ "[skill/registry] No SkillRegistryTransport configured. Call setSkillRegistryTransport() or useElectronSkillRegistryTransport() first."
17
+ );
18
+ }
19
+ async function listMarketSkills() {
20
+ const payload = await getSkillRegistryTransport().list();
21
+ return Array.isArray(payload.skills) ? payload.skills : [];
22
+ }
23
+ async function getMarketSkill(id) {
24
+ return getSkillRegistryTransport().detail(id);
25
+ }
26
+ async function selectPublishSkillFile() {
27
+ const t = getSkillRegistryTransport();
28
+ if (!t.selectPublishFile) throw new Error("[skill/registry] transport.selectPublishFile not supported");
29
+ return t.selectPublishFile();
30
+ }
31
+ async function publishSkill(archivePath, publishPassword) {
32
+ const t = getSkillRegistryTransport();
33
+ if (!t.publishFile) throw new Error("[skill/registry] transport.publishFile not supported");
34
+ return t.publishFile(archivePath, publishPassword);
35
+ }
36
+ function readElectronSkillRegistryBridge() {
37
+ const globalAny = globalThis;
38
+ return globalAny.electronAPI?.engine?.skillRegistry ?? null;
39
+ }
40
+ function tryAutoBindElectronTransport() {
41
+ const bridge = readElectronSkillRegistryBridge();
42
+ if (!bridge) return null;
43
+ return {
44
+ list: () => bridge.list(),
45
+ detail: (id) => bridge.detail(id),
46
+ selectPublishFile: bridge.selectPublishFile ? () => bridge.selectPublishFile() : void 0,
47
+ publishFile: bridge.publishFile ? (archivePath, password) => bridge.publishFile(archivePath, password) : void 0
48
+ };
49
+ }
50
+ function useElectronSkillRegistryTransport() {
51
+ const transport = tryAutoBindElectronTransport();
52
+ if (transport) {
53
+ setSkillRegistryTransport(transport);
54
+ return true;
55
+ }
56
+ return false;
57
+ }
58
+
59
+ exports.getMarketSkill = getMarketSkill;
60
+ exports.getSkillRegistryTransport = getSkillRegistryTransport;
61
+ exports.listMarketSkills = listMarketSkills;
62
+ exports.publishSkill = publishSkill;
63
+ exports.selectPublishSkillFile = selectPublishSkillFile;
64
+ exports.setSkillRegistryTransport = setSkillRegistryTransport;
65
+ exports.useElectronSkillRegistryTransport = useElectronSkillRegistryTransport;
@@ -0,0 +1,170 @@
1
+ // src/skill/parser.ts
2
+ var FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;
3
+ function stripQuotes(value) {
4
+ const trimmed = value.trim();
5
+ if (trimmed.length >= 2) {
6
+ const first = trimmed[0];
7
+ const last = trimmed[trimmed.length - 1];
8
+ if (first === '"' && last === '"' || first === "'" && last === "'") {
9
+ return trimmed.slice(1, -1);
10
+ }
11
+ }
12
+ return trimmed;
13
+ }
14
+ function parseInlineList(value) {
15
+ const trimmed = value.trim();
16
+ if (!trimmed.startsWith("[") || !trimmed.endsWith("]")) {
17
+ return null;
18
+ }
19
+ const inner = trimmed.slice(1, -1).trim();
20
+ if (!inner) return [];
21
+ return inner.split(",").map((part) => stripQuotes(part)).filter((s) => s.length > 0);
22
+ }
23
+ function parseSkillFrontmatter(markdown) {
24
+ const match = FRONTMATTER_RE.exec(markdown);
25
+ if (!match) return {};
26
+ const block = match[1];
27
+ const result = { extra: {} };
28
+ const lines = block.split(/\r?\n/);
29
+ let pendingListKey = null;
30
+ const pendingList = [];
31
+ const flushPendingList = () => {
32
+ if (pendingListKey) {
33
+ if (pendingListKey === "tags") {
34
+ result.tags = [...pendingList];
35
+ } else {
36
+ result.extra[pendingListKey] = pendingList.join(",");
37
+ }
38
+ pendingListKey = null;
39
+ pendingList.length = 0;
40
+ }
41
+ };
42
+ for (const rawLine of lines) {
43
+ const line = rawLine.replace(/\s+$/g, "");
44
+ if (!line.trim()) {
45
+ flushPendingList();
46
+ continue;
47
+ }
48
+ const listItemMatch = /^\s*-\s+(.*)$/.exec(line);
49
+ if (listItemMatch && pendingListKey) {
50
+ pendingList.push(stripQuotes(listItemMatch[1]));
51
+ continue;
52
+ }
53
+ flushPendingList();
54
+ const kvMatch = /^([A-Za-z0-9_-]+)\s*:\s*(.*)$/.exec(line);
55
+ if (!kvMatch) continue;
56
+ const key = kvMatch[1];
57
+ const value = kvMatch[2];
58
+ if (value === "") {
59
+ pendingListKey = key;
60
+ pendingList.length = 0;
61
+ continue;
62
+ }
63
+ if (key === "tags") {
64
+ const inline = parseInlineList(value);
65
+ if (inline !== null) {
66
+ result.tags = inline;
67
+ } else {
68
+ result.tags = stripQuotes(value).split(",").map((s) => s.trim()).filter(Boolean);
69
+ }
70
+ continue;
71
+ }
72
+ const cleaned = stripQuotes(value);
73
+ if (key === "name") result.name = cleaned;
74
+ else if (key === "description") result.description = cleaned;
75
+ else result.extra[key] = cleaned;
76
+ }
77
+ flushPendingList();
78
+ if (result.extra && Object.keys(result.extra).length === 0) {
79
+ delete result.extra;
80
+ }
81
+ return result;
82
+ }
83
+ function buildSkillId(source, dirName) {
84
+ const safe = dirName.trim().replace(/[\\/]+/g, "-").replace(/\s+/g, "-");
85
+ return `${source}:${safe}`;
86
+ }
87
+
88
+ // src/skill/client.ts
89
+ var currentTransport = null;
90
+ function setSkillTransport(transport) {
91
+ currentTransport = transport;
92
+ }
93
+ function getSkillTransport() {
94
+ if (currentTransport) {
95
+ return currentTransport;
96
+ }
97
+ const auto = tryAutoBindElectronTransport();
98
+ if (auto) {
99
+ currentTransport = auto;
100
+ return auto;
101
+ }
102
+ throw new Error(
103
+ "[skill] No SkillTransport configured. Call setSkillTransport() or useElectronSkillTransport() first."
104
+ );
105
+ }
106
+ async function listSkills() {
107
+ return getSkillTransport().list();
108
+ }
109
+ async function getSkill(id) {
110
+ return getSkillTransport().get(id);
111
+ }
112
+ async function rescanSkills() {
113
+ return getSkillTransport().rescan();
114
+ }
115
+ function onSkillsChanged(listener) {
116
+ const transport = getSkillTransport();
117
+ if (!transport.onChanged) {
118
+ return () => {
119
+ };
120
+ }
121
+ return transport.onChanged(listener);
122
+ }
123
+ async function setSkillEnabled(id, value) {
124
+ const t = getSkillTransport();
125
+ if (!t.setEnabled) throw new Error("[skill] transport.setEnabled not supported");
126
+ return t.setEnabled(id, value);
127
+ }
128
+ async function setSkillScope(id, scope) {
129
+ const t = getSkillTransport();
130
+ if (!t.setScope) throw new Error("[skill] transport.setScope not supported");
131
+ return t.setScope(id, scope);
132
+ }
133
+ async function uninstallSkill(id) {
134
+ const t = getSkillTransport();
135
+ if (!t.uninstall) throw new Error("[skill] transport.uninstall not supported");
136
+ return t.uninstall(id);
137
+ }
138
+ async function listSkillProjects() {
139
+ const t = getSkillTransport();
140
+ if (!t.listProjects) throw new Error("[skill] transport.listProjects not supported");
141
+ return t.listProjects();
142
+ }
143
+ function readElectronSkillBridge() {
144
+ const globalAny = globalThis;
145
+ return globalAny.electronAPI?.engine?.skill ?? null;
146
+ }
147
+ function tryAutoBindElectronTransport() {
148
+ const bridge = readElectronSkillBridge();
149
+ if (!bridge) return null;
150
+ return {
151
+ list: () => bridge.list(),
152
+ get: (id) => bridge.get(id),
153
+ rescan: () => bridge.rescan(),
154
+ onChanged: bridge.onChanged ? (cb) => bridge.onChanged(cb) : void 0,
155
+ setEnabled: bridge.setEnabled ? (id, value) => bridge.setEnabled(id, value) : void 0,
156
+ setScope: bridge.setScope ? (id, scope) => bridge.setScope(id, scope) : void 0,
157
+ uninstall: bridge.uninstall ? (id) => bridge.uninstall(id) : void 0,
158
+ listProjects: bridge.listProjects ? () => bridge.listProjects() : void 0
159
+ };
160
+ }
161
+ function useElectronSkillTransport() {
162
+ const transport = tryAutoBindElectronTransport();
163
+ if (transport) {
164
+ setSkillTransport(transport);
165
+ return true;
166
+ }
167
+ return false;
168
+ }
169
+
170
+ export { buildSkillId, getSkill, getSkillTransport, listSkillProjects, listSkills, onSkillsChanged, parseSkillFrontmatter, rescanSkills, setSkillEnabled, setSkillScope, setSkillTransport, uninstallSkill, useElectronSkillTransport };
@@ -0,0 +1,57 @@
1
+ // src/skill/registry.ts
2
+ var currentTransport = null;
3
+ function setSkillRegistryTransport(transport) {
4
+ currentTransport = transport;
5
+ }
6
+ function getSkillRegistryTransport() {
7
+ if (currentTransport) return currentTransport;
8
+ const auto = tryAutoBindElectronTransport();
9
+ if (auto) {
10
+ currentTransport = auto;
11
+ return auto;
12
+ }
13
+ throw new Error(
14
+ "[skill/registry] No SkillRegistryTransport configured. Call setSkillRegistryTransport() or useElectronSkillRegistryTransport() first."
15
+ );
16
+ }
17
+ async function listMarketSkills() {
18
+ const payload = await getSkillRegistryTransport().list();
19
+ return Array.isArray(payload.skills) ? payload.skills : [];
20
+ }
21
+ async function getMarketSkill(id) {
22
+ return getSkillRegistryTransport().detail(id);
23
+ }
24
+ async function selectPublishSkillFile() {
25
+ const t = getSkillRegistryTransport();
26
+ if (!t.selectPublishFile) throw new Error("[skill/registry] transport.selectPublishFile not supported");
27
+ return t.selectPublishFile();
28
+ }
29
+ async function publishSkill(archivePath, publishPassword) {
30
+ const t = getSkillRegistryTransport();
31
+ if (!t.publishFile) throw new Error("[skill/registry] transport.publishFile not supported");
32
+ return t.publishFile(archivePath, publishPassword);
33
+ }
34
+ function readElectronSkillRegistryBridge() {
35
+ const globalAny = globalThis;
36
+ return globalAny.electronAPI?.engine?.skillRegistry ?? null;
37
+ }
38
+ function tryAutoBindElectronTransport() {
39
+ const bridge = readElectronSkillRegistryBridge();
40
+ if (!bridge) return null;
41
+ return {
42
+ list: () => bridge.list(),
43
+ detail: (id) => bridge.detail(id),
44
+ selectPublishFile: bridge.selectPublishFile ? () => bridge.selectPublishFile() : void 0,
45
+ publishFile: bridge.publishFile ? (archivePath, password) => bridge.publishFile(archivePath, password) : void 0
46
+ };
47
+ }
48
+ function useElectronSkillRegistryTransport() {
49
+ const transport = tryAutoBindElectronTransport();
50
+ if (transport) {
51
+ setSkillRegistryTransport(transport);
52
+ return true;
53
+ }
54
+ return false;
55
+ }
56
+
57
+ export { getMarketSkill, getSkillRegistryTransport, listMarketSkills, publishSkill, selectPublishSkillFile, setSkillRegistryTransport, useElectronSkillRegistryTransport };
package/dist/index.cjs CHANGED
@@ -1,51 +1,133 @@
1
1
  'use strict';
2
2
 
3
- var chunk2SQFLDTT_cjs = require('./chunk-2SQFLDTT.cjs');
3
+ var chunkGCE3TTCJ_cjs = require('./chunk-GCE3TTCJ.cjs');
4
+ var chunkO2C4Z5B5_cjs = require('./chunk-O2C4Z5B5.cjs');
5
+ var chunk3STW46ME_cjs = require('./chunk-3STW46ME.cjs');
4
6
  var chunkGEPSOYJN_cjs = require('./chunk-GEPSOYJN.cjs');
5
7
  var chunkUXBJODKS_cjs = require('./chunk-UXBJODKS.cjs');
6
8
  var chunk3I7UM66P_cjs = require('./chunk-3I7UM66P.cjs');
7
9
 
8
10
 
9
11
 
12
+ Object.defineProperty(exports, "buildSkillId", {
13
+ enumerable: true,
14
+ get: function () { return chunkGCE3TTCJ_cjs.buildSkillId; }
15
+ });
16
+ Object.defineProperty(exports, "getSkill", {
17
+ enumerable: true,
18
+ get: function () { return chunkGCE3TTCJ_cjs.getSkill; }
19
+ });
20
+ Object.defineProperty(exports, "getSkillTransport", {
21
+ enumerable: true,
22
+ get: function () { return chunkGCE3TTCJ_cjs.getSkillTransport; }
23
+ });
24
+ Object.defineProperty(exports, "listSkillProjects", {
25
+ enumerable: true,
26
+ get: function () { return chunkGCE3TTCJ_cjs.listSkillProjects; }
27
+ });
28
+ Object.defineProperty(exports, "listSkills", {
29
+ enumerable: true,
30
+ get: function () { return chunkGCE3TTCJ_cjs.listSkills; }
31
+ });
32
+ Object.defineProperty(exports, "onSkillsChanged", {
33
+ enumerable: true,
34
+ get: function () { return chunkGCE3TTCJ_cjs.onSkillsChanged; }
35
+ });
36
+ Object.defineProperty(exports, "parseSkillFrontmatter", {
37
+ enumerable: true,
38
+ get: function () { return chunkGCE3TTCJ_cjs.parseSkillFrontmatter; }
39
+ });
40
+ Object.defineProperty(exports, "rescanSkills", {
41
+ enumerable: true,
42
+ get: function () { return chunkGCE3TTCJ_cjs.rescanSkills; }
43
+ });
44
+ Object.defineProperty(exports, "setSkillEnabled", {
45
+ enumerable: true,
46
+ get: function () { return chunkGCE3TTCJ_cjs.setSkillEnabled; }
47
+ });
48
+ Object.defineProperty(exports, "setSkillScope", {
49
+ enumerable: true,
50
+ get: function () { return chunkGCE3TTCJ_cjs.setSkillScope; }
51
+ });
52
+ Object.defineProperty(exports, "setSkillTransport", {
53
+ enumerable: true,
54
+ get: function () { return chunkGCE3TTCJ_cjs.setSkillTransport; }
55
+ });
56
+ Object.defineProperty(exports, "uninstallSkill", {
57
+ enumerable: true,
58
+ get: function () { return chunkGCE3TTCJ_cjs.uninstallSkill; }
59
+ });
60
+ Object.defineProperty(exports, "useElectronSkillTransport", {
61
+ enumerable: true,
62
+ get: function () { return chunkGCE3TTCJ_cjs.useElectronSkillTransport; }
63
+ });
64
+ Object.defineProperty(exports, "getMarketSkill", {
65
+ enumerable: true,
66
+ get: function () { return chunkO2C4Z5B5_cjs.getMarketSkill; }
67
+ });
68
+ Object.defineProperty(exports, "getSkillRegistryTransport", {
69
+ enumerable: true,
70
+ get: function () { return chunkO2C4Z5B5_cjs.getSkillRegistryTransport; }
71
+ });
72
+ Object.defineProperty(exports, "listMarketSkills", {
73
+ enumerable: true,
74
+ get: function () { return chunkO2C4Z5B5_cjs.listMarketSkills; }
75
+ });
76
+ Object.defineProperty(exports, "publishSkill", {
77
+ enumerable: true,
78
+ get: function () { return chunkO2C4Z5B5_cjs.publishSkill; }
79
+ });
80
+ Object.defineProperty(exports, "selectPublishSkillFile", {
81
+ enumerable: true,
82
+ get: function () { return chunkO2C4Z5B5_cjs.selectPublishSkillFile; }
83
+ });
84
+ Object.defineProperty(exports, "setSkillRegistryTransport", {
85
+ enumerable: true,
86
+ get: function () { return chunkO2C4Z5B5_cjs.setSkillRegistryTransport; }
87
+ });
88
+ Object.defineProperty(exports, "useElectronSkillRegistryTransport", {
89
+ enumerable: true,
90
+ get: function () { return chunkO2C4Z5B5_cjs.useElectronSkillRegistryTransport; }
91
+ });
10
92
  Object.defineProperty(exports, "MCP_PACKAGES", {
11
93
  enumerable: true,
12
- get: function () { return chunk2SQFLDTT_cjs.MCP_PACKAGES; }
94
+ get: function () { return chunk3STW46ME_cjs.MCP_PACKAGES; }
13
95
  });
14
96
  Object.defineProperty(exports, "getMCPPackageIdForTool", {
15
97
  enumerable: true,
16
- get: function () { return chunk2SQFLDTT_cjs.getMCPPackageIdForTool; }
98
+ get: function () { return chunk3STW46ME_cjs.getMCPPackageIdForTool; }
17
99
  });
18
100
  Object.defineProperty(exports, "getMCPPackages", {
19
101
  enumerable: true,
20
- get: function () { return chunk2SQFLDTT_cjs.getMCPPackages; }
102
+ get: function () { return chunk3STW46ME_cjs.getMCPPackages; }
21
103
  });
22
104
  Object.defineProperty(exports, "getMCPToolPackageIndex", {
23
105
  enumerable: true,
24
- get: function () { return chunk2SQFLDTT_cjs.getMCPToolPackageIndex; }
106
+ get: function () { return chunk3STW46ME_cjs.getMCPToolPackageIndex; }
25
107
  });
26
108
  Object.defineProperty(exports, "getToolsForLLM", {
27
109
  enumerable: true,
28
- get: function () { return chunk2SQFLDTT_cjs.getToolsForLLM; }
110
+ get: function () { return chunk3STW46ME_cjs.getToolsForLLM; }
29
111
  });
30
112
  Object.defineProperty(exports, "listAllTools", {
31
113
  enumerable: true,
32
- get: function () { return chunk2SQFLDTT_cjs.listAllTools; }
114
+ get: function () { return chunk3STW46ME_cjs.listAllTools; }
33
115
  });
34
116
  Object.defineProperty(exports, "listAvailableTools", {
35
117
  enumerable: true,
36
- get: function () { return chunk2SQFLDTT_cjs.listAvailableTools; }
118
+ get: function () { return chunk3STW46ME_cjs.listAvailableTools; }
37
119
  });
38
120
  Object.defineProperty(exports, "listAvailableToolsForLLM", {
39
121
  enumerable: true,
40
- get: function () { return chunk2SQFLDTT_cjs.listAvailableToolsForLLM; }
122
+ get: function () { return chunk3STW46ME_cjs.listAvailableToolsForLLM; }
41
123
  });
42
124
  Object.defineProperty(exports, "loadPlugin", {
43
125
  enumerable: true,
44
- get: function () { return chunk2SQFLDTT_cjs.loadPlugin; }
126
+ get: function () { return chunk3STW46ME_cjs.loadPlugin; }
45
127
  });
46
128
  Object.defineProperty(exports, "mcpToolToOpenAI", {
47
129
  enumerable: true,
48
- get: function () { return chunk2SQFLDTT_cjs.mcpToolToOpenAI; }
130
+ get: function () { return chunk3STW46ME_cjs.mcpToolToOpenAI; }
49
131
  });
50
132
  Object.defineProperty(exports, "DialogBody", {
51
133
  enumerable: true,
package/dist/index.d.cts CHANGED
@@ -1,6 +1,8 @@
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 { 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-CUFTi2bZ.cjs';
3
+ export { P as PublishSkillReleaseResult, R as RegistrySkillSummary, S as ScannedRoot, a as Skill, b as SkillContent, c as SkillDetailResponse, d as SkillProjectInfo, e as SkillRegistryListResponse, f as SkillRegistryTransport, g as SkillReleaseRecord, h as SkillReleaseStatus, i as SkillScanResult, j as SkillScope, k as SkillSource, l as getMarketSkill, m as getSkillRegistryTransport, n as listMarketSkills, p as publishSkill, s as selectPublishSkillFile, o as setSkillRegistryTransport, u as useElectronSkillRegistryTransport } from './registry-OS2Xo46V.cjs';
4
+ export { SkillChangedListener, SkillFrontmatter, SkillTransport, SkillUninstallResult, buildSkillId, getSkill, getSkillTransport, listSkillProjects, listSkills, onSkillsChanged, parseSkillFrontmatter, rescanSkills, setSkillEnabled, setSkillScope, setSkillTransport, uninstallSkill, useElectronSkillTransport } from './skill/index.cjs';
5
+ 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-DY867NzA.cjs';
4
6
  export { FileModifiedParams, FileOpenRequestedParams, FileSavedParams, FileSendRequestedParams, FilesChangedParams, 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
7
  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
8
  import 'react';