@llmindset/hf-mcp-server 0.3.20 → 0.3.22
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/dist/server/gradio-endpoint-connector.d.ts +2 -2
- package/dist/server/gradio-endpoint-connector.d.ts.map +1 -1
- package/dist/server/gradio-endpoint-connector.js +49 -2
- package/dist/server/gradio-endpoint-connector.js.map +1 -1
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/mcp-server.js +16 -5
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/server/skills/skill-directory-schema.d.ts +40 -0
- package/dist/server/skills/skill-directory-schema.d.ts.map +1 -0
- package/dist/server/skills/skill-directory-schema.js +14 -0
- package/dist/server/skills/skill-directory-schema.js.map +1 -0
- package/dist/server/skills/skill-loader.d.ts.map +1 -1
- package/dist/server/skills/skill-loader.js +143 -43
- package/dist/server/skills/skill-loader.js.map +1 -1
- package/dist/server/skills/skill-resource-data.d.ts +11 -3
- package/dist/server/skills/skill-resource-data.d.ts.map +1 -1
- package/dist/server/skills/skill-resource-data.js +51 -25
- package/dist/server/skills/skill-resource-data.js.map +1 -1
- package/dist/server/skills/skill-resources.d.ts.map +1 -1
- package/dist/server/skills/skill-resources.js +23 -11
- package/dist/server/skills/skill-resources.js.map +1 -1
- package/dist/server/skills/skill-types.d.ts +28 -11
- package/dist/server/skills/skill-types.d.ts.map +1 -1
- package/dist/server/skills/skill-uri.d.ts +3 -1
- package/dist/server/skills/skill-uri.d.ts.map +1 -1
- package/dist/server/skills/skill-uri.js +18 -4
- package/dist/server/skills/skill-uri.js.map +1 -1
- package/dist/server/transport/stateless-http-transport.d.ts.map +1 -1
- package/dist/server/transport/stateless-http-transport.js +25 -3
- package/dist/server/transport/stateless-http-transport.js.map +1 -1
- package/dist/server/utils/capability-utils.d.ts.map +1 -1
- package/dist/server/utils/capability-utils.js +3 -1
- package/dist/server/utils/capability-utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { logger } from '../utils/logger.js';
|
|
4
|
-
import { mimeFor } from './skill-uri.js';
|
|
4
|
+
import { buildSkillDirUri, buildSkillUri, DIRECTORY_MIME, mimeFor } from './skill-uri.js';
|
|
5
5
|
const INDEX_FILE = 'index.json';
|
|
6
|
+
const SKILL_MD = 'SKILL.md';
|
|
6
7
|
function emptyCatalog(indexPath, indexText = '') {
|
|
7
|
-
return { indexPath, indexText,
|
|
8
|
+
return { indexPath, indexText, entries: [], resourcesByUri: new Map(), directories: new Map() };
|
|
8
9
|
}
|
|
9
|
-
function
|
|
10
|
-
|
|
10
|
+
function parseFrontmatter(value) {
|
|
11
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
12
|
+
return null;
|
|
13
|
+
const fm = value;
|
|
14
|
+
if (typeof fm.name !== 'string' || typeof fm.description !== 'string')
|
|
15
|
+
return null;
|
|
16
|
+
return fm;
|
|
11
17
|
}
|
|
12
18
|
function resolveSkillUrl(rootDir, url) {
|
|
13
19
|
const prefix = 'skill://';
|
|
@@ -35,41 +41,125 @@ function resolveSkillUrl(rootDir, url) {
|
|
|
35
41
|
}
|
|
36
42
|
return { absPath, relPath: parts.join('/') };
|
|
37
43
|
}
|
|
38
|
-
async function
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
typeof entry.url !== 'string') {
|
|
43
|
-
logger.warn({ entry }, 'invalid skill index entry, skipping');
|
|
44
|
-
return null;
|
|
44
|
+
async function isRegularFile(absPath) {
|
|
45
|
+
try {
|
|
46
|
+
const stat = await fs.lstat(absPath);
|
|
47
|
+
return stat.isFile() && !stat.isSymbolicLink();
|
|
45
48
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
logger.warn({ url: entry.url }, 'invalid skill resource URL, skipping');
|
|
49
|
-
return null;
|
|
49
|
+
catch {
|
|
50
|
+
return false;
|
|
50
51
|
}
|
|
52
|
+
}
|
|
53
|
+
async function walkSkillDir(skillPath, absDir, relDir, frontmatter, files, directories) {
|
|
54
|
+
const dirUri = buildSkillDirUri(skillPath, relDir);
|
|
55
|
+
const children = [];
|
|
56
|
+
let dirents;
|
|
51
57
|
try {
|
|
52
|
-
|
|
53
|
-
if (!stat.isFile() || stat.isSymbolicLink()) {
|
|
54
|
-
logger.warn({ path: resolved.absPath }, 'skill resource is not a regular file, skipping');
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
58
|
+
dirents = await fs.readdir(absDir, { withFileTypes: true });
|
|
57
59
|
}
|
|
58
60
|
catch (err) {
|
|
59
|
-
logger.warn({
|
|
61
|
+
logger.warn({ absDir, err }, 'failed to read skill directory, skipping contents');
|
|
62
|
+
directories.set(dirUri, children);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
dirents.sort((a, b) => a.name.localeCompare(b.name));
|
|
66
|
+
for (const dirent of dirents) {
|
|
67
|
+
if (dirent.isSymbolicLink()) {
|
|
68
|
+
logger.warn({ dir: absDir, name: dirent.name }, 'skipping symlink in skill directory');
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const childRel = relDir ? `${relDir}/${dirent.name}` : dirent.name;
|
|
72
|
+
if (dirent.isDirectory()) {
|
|
73
|
+
children.push({ uri: buildSkillDirUri(skillPath, childRel), name: dirent.name, mimeType: DIRECTORY_MIME });
|
|
74
|
+
await walkSkillDir(skillPath, path.join(absDir, dirent.name), childRel, frontmatter, files, directories);
|
|
75
|
+
}
|
|
76
|
+
else if (dirent.isFile()) {
|
|
77
|
+
const url = buildSkillUri(skillPath, childRel);
|
|
78
|
+
const { mimeType, isText } = mimeFor(childRel);
|
|
79
|
+
const isSkillMd = childRel === SKILL_MD;
|
|
80
|
+
files.push({
|
|
81
|
+
url,
|
|
82
|
+
absPath: path.join(absDir, dirent.name),
|
|
83
|
+
mimeType,
|
|
84
|
+
isText,
|
|
85
|
+
name: isSkillMd ? frontmatter.name : dirent.name,
|
|
86
|
+
description: isSkillMd ? frontmatter.description : undefined,
|
|
87
|
+
});
|
|
88
|
+
children.push({ uri: url, name: dirent.name, mimeType });
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
directories.set(dirUri, children);
|
|
92
|
+
}
|
|
93
|
+
async function loadArchives(rootDir, raw) {
|
|
94
|
+
if (!Array.isArray(raw))
|
|
95
|
+
return [];
|
|
96
|
+
const archives = [];
|
|
97
|
+
for (const item of raw) {
|
|
98
|
+
if (typeof item?.url !== 'string' || typeof item?.mimeType !== 'string') {
|
|
99
|
+
logger.warn({ archive: item }, 'invalid archive entry, skipping');
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
const resolved = resolveSkillUrl(rootDir, item.url);
|
|
103
|
+
if (!resolved || !(await isRegularFile(resolved.absPath))) {
|
|
104
|
+
logger.warn({ url: item.url }, 'archive resource missing or invalid, skipping');
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
archives.push({
|
|
108
|
+
url: item.url,
|
|
109
|
+
absPath: resolved.absPath,
|
|
110
|
+
mimeType: item.mimeType,
|
|
111
|
+
isText: false,
|
|
112
|
+
name: path.basename(resolved.relPath),
|
|
113
|
+
digest: typeof item.digest === 'string' ? item.digest : undefined,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return archives;
|
|
117
|
+
}
|
|
118
|
+
async function loadIndexEntry(rootDir, entry, directories) {
|
|
119
|
+
const frontmatter = parseFrontmatter(entry.frontmatter);
|
|
120
|
+
if (!frontmatter) {
|
|
121
|
+
logger.warn({ entry }, 'skill index entry missing valid frontmatter (name/description), skipping');
|
|
60
122
|
return null;
|
|
61
123
|
}
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
124
|
+
const hasUrl = typeof entry.url === 'string';
|
|
125
|
+
const archives = await loadArchives(rootDir, entry.archives);
|
|
126
|
+
if (!hasUrl && archives.length === 0) {
|
|
127
|
+
logger.warn({ name: frontmatter.name }, 'skill index entry has neither a readable url nor archives, skipping');
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
let skillMd;
|
|
131
|
+
let skillPath = frontmatter.name;
|
|
132
|
+
const files = [];
|
|
133
|
+
if (hasUrl) {
|
|
134
|
+
const url = entry.url;
|
|
135
|
+
const resolved = resolveSkillUrl(rootDir, url);
|
|
136
|
+
if (!resolved) {
|
|
137
|
+
logger.warn({ url }, 'invalid skill resource URL, skipping entry');
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
const parts = resolved.relPath.split('/');
|
|
141
|
+
if (parts.length < 2 || parts[parts.length - 1] !== SKILL_MD) {
|
|
142
|
+
logger.warn({ url }, 'skill url must point to a SKILL.md, skipping entry');
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
skillPath = parts.slice(0, -1).join('/');
|
|
146
|
+
const finalSegment = parts[parts.length - 2];
|
|
147
|
+
if (finalSegment !== frontmatter.name) {
|
|
148
|
+
logger.warn({ url, finalSegment, name: frontmatter.name }, 'final skill-path segment must equal frontmatter.name, skipping entry');
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
if (!(await isRegularFile(resolved.absPath))) {
|
|
152
|
+
logger.warn({ path: resolved.absPath }, 'SKILL.md missing or not a regular file, skipping entry');
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
if (typeof entry.digest !== 'string') {
|
|
156
|
+
logger.warn({ url }, 'skill entry with url is missing a digest (recommended by SEP-2640)');
|
|
157
|
+
}
|
|
158
|
+
const absDir = path.dirname(resolved.absPath);
|
|
159
|
+
await walkSkillDir(skillPath, absDir, '', frontmatter, files, directories);
|
|
160
|
+
skillMd = { url, digest: typeof entry.digest === 'string' ? entry.digest : undefined };
|
|
161
|
+
}
|
|
162
|
+
return { skillPath, frontmatter, skillMd, files, archives };
|
|
73
163
|
}
|
|
74
164
|
export async function loadSkills(rootDir) {
|
|
75
165
|
const indexPath = path.join(rootDir, INDEX_FILE);
|
|
@@ -93,20 +183,30 @@ export async function loadSkills(rootDir) {
|
|
|
93
183
|
logger.warn({ indexPath }, 'skills index missing skills array, skills disabled');
|
|
94
184
|
return emptyCatalog(indexPath, indexText);
|
|
95
185
|
}
|
|
96
|
-
const
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
186
|
+
const entries = [];
|
|
187
|
+
const resourcesByUri = new Map();
|
|
188
|
+
const directories = new Map();
|
|
189
|
+
for (const raw of parsed.skills) {
|
|
190
|
+
const entry = await loadIndexEntry(rootDir, raw, directories);
|
|
191
|
+
if (!entry)
|
|
101
192
|
continue;
|
|
102
|
-
|
|
103
|
-
|
|
193
|
+
const readables = [...entry.files, ...entry.archives];
|
|
194
|
+
let conflict = false;
|
|
195
|
+
for (const file of readables) {
|
|
196
|
+
if (resourcesByUri.has(file.url)) {
|
|
197
|
+
logger.warn({ url: file.url }, 'duplicate skill resource URL, skipping entry');
|
|
198
|
+
conflict = true;
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (conflict)
|
|
104
203
|
continue;
|
|
204
|
+
for (const file of readables) {
|
|
205
|
+
resourcesByUri.set(file.url, file);
|
|
105
206
|
}
|
|
106
|
-
|
|
107
|
-
skills.push(skill);
|
|
207
|
+
entries.push(entry);
|
|
108
208
|
}
|
|
109
|
-
logger.info({ rootDir,
|
|
110
|
-
return { indexPath, indexText,
|
|
209
|
+
logger.info({ rootDir, skills: entries.length, resources: resourcesByUri.size }, 'loaded skills');
|
|
210
|
+
return { indexPath, indexText, entries, resourcesByUri, directories };
|
|
111
211
|
}
|
|
112
212
|
//# sourceMappingURL=skill-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../../../src/server/skills/skill-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-loader.js","sourceRoot":"","sources":["../../../src/server/skills/skill-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ReadableSkillFile, SkillCatalog } from './skill-types.js';
|
|
2
2
|
export declare const SKILL_INDEX_URI = "skill://index.json";
|
|
3
3
|
export interface ListedSkillResource {
|
|
4
4
|
uri: string;
|
|
@@ -15,9 +15,17 @@ export type SkillResourceContent = (BaseSkillResourceContent & {
|
|
|
15
15
|
}) | (BaseSkillResourceContent & {
|
|
16
16
|
blob: string;
|
|
17
17
|
});
|
|
18
|
-
export
|
|
18
|
+
export interface SkillDirectoryListing {
|
|
19
|
+
resources: {
|
|
20
|
+
uri: string;
|
|
21
|
+
name: string;
|
|
22
|
+
mimeType: string;
|
|
23
|
+
}[];
|
|
24
|
+
nextCursor?: string;
|
|
25
|
+
}
|
|
19
26
|
export declare function listSkillResources(catalog: SkillCatalog): ListedSkillResource[];
|
|
20
27
|
export declare function readSkillResource(catalog: SkillCatalog, uri: string): Promise<SkillResourceContent | null>;
|
|
21
|
-
export declare function readSkillFile(
|
|
28
|
+
export declare function readSkillFile(file: ReadableSkillFile): Promise<SkillResourceContent>;
|
|
29
|
+
export declare function readSkillDirectory(catalog: SkillCatalog, uri: string, cursor?: string, pageSize?: number): SkillDirectoryListing | null;
|
|
22
30
|
export {};
|
|
23
31
|
//# sourceMappingURL=skill-resource-data.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-resource-data.d.ts","sourceRoot":"","sources":["../../../src/server/skills/skill-resource-data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"skill-resource-data.d.ts","sourceRoot":"","sources":["../../../src/server/skills/skill-resource-data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAExE,eAAO,MAAM,eAAe,uBAAuB,CAAC;AAMpD,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,wBAAwB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAC7B,CAAC,wBAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC7C,CAAC,wBAAwB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACrC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,mBAAmB,EAAE,CAiB/E;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAShH;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAK1F;AAcD,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,GAAE,MAAsB,GAC9B,qBAAqB,GAAG,IAAI,CAkB9B"}
|
|
@@ -1,37 +1,63 @@
|
|
|
1
1
|
import fs from 'node:fs/promises';
|
|
2
2
|
export const SKILL_INDEX_URI = 'skill://index.json';
|
|
3
|
-
|
|
4
|
-
return skill.type === 'archive' ? `${skill.name}.tar.gz` : skill.name;
|
|
5
|
-
}
|
|
3
|
+
const DIR_PAGE_SIZE = 500;
|
|
6
4
|
export function listSkillResources(catalog) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
name:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
5
|
+
const resources = [];
|
|
6
|
+
for (const entry of catalog.entries) {
|
|
7
|
+
for (const file of entry.files) {
|
|
8
|
+
resources.push({ uri: file.url, name: file.name, description: file.description, mimeType: file.mimeType });
|
|
9
|
+
}
|
|
10
|
+
for (const archive of entry.archives) {
|
|
11
|
+
resources.push({ uri: archive.url, name: archive.name, mimeType: archive.mimeType });
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
resources.push({
|
|
15
|
+
uri: SKILL_INDEX_URI,
|
|
16
|
+
name: 'Skills Index',
|
|
17
|
+
description: 'Catalog of skills exposed by this server (SEP-2640 index).',
|
|
18
|
+
mimeType: 'application/json',
|
|
19
|
+
});
|
|
20
|
+
return resources;
|
|
21
21
|
}
|
|
22
22
|
export async function readSkillResource(catalog, uri) {
|
|
23
23
|
if (uri === SKILL_INDEX_URI) {
|
|
24
24
|
return { uri, mimeType: 'application/json', text: catalog.indexText };
|
|
25
25
|
}
|
|
26
|
-
const
|
|
27
|
-
if (!
|
|
26
|
+
const file = catalog.resourcesByUri.get(uri);
|
|
27
|
+
if (!file)
|
|
28
|
+
return null;
|
|
29
|
+
return readSkillFile(file);
|
|
30
|
+
}
|
|
31
|
+
export async function readSkillFile(file) {
|
|
32
|
+
const buf = await fs.readFile(file.absPath);
|
|
33
|
+
return file.isText
|
|
34
|
+
? { uri: file.url, mimeType: file.mimeType, text: buf.toString('utf8') }
|
|
35
|
+
: { uri: file.url, mimeType: file.mimeType, blob: buf.toString('base64') };
|
|
36
|
+
}
|
|
37
|
+
function decodeCursor(cursor) {
|
|
38
|
+
if (cursor === undefined)
|
|
39
|
+
return 0;
|
|
40
|
+
const offset = Number.parseInt(cursor, 10);
|
|
41
|
+
if (!Number.isInteger(offset) || offset < 0)
|
|
28
42
|
return null;
|
|
29
|
-
return
|
|
43
|
+
return offset;
|
|
30
44
|
}
|
|
31
|
-
export
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
45
|
+
export function readSkillDirectory(catalog, uri, cursor, pageSize = DIR_PAGE_SIZE) {
|
|
46
|
+
const normalised = uri.endsWith('/') ? uri.slice(0, -1) : uri;
|
|
47
|
+
const children = catalog.directories.get(normalised);
|
|
48
|
+
if (!children)
|
|
49
|
+
return null;
|
|
50
|
+
const offset = decodeCursor(cursor);
|
|
51
|
+
if (offset === null)
|
|
52
|
+
return null;
|
|
53
|
+
const page = children.slice(offset, offset + pageSize);
|
|
54
|
+
const nextOffset = offset + page.length;
|
|
55
|
+
const listing = {
|
|
56
|
+
resources: page.map((child) => ({ uri: child.uri, name: child.name, mimeType: child.mimeType })),
|
|
57
|
+
};
|
|
58
|
+
if (nextOffset < children.length) {
|
|
59
|
+
listing.nextCursor = String(nextOffset);
|
|
60
|
+
}
|
|
61
|
+
return listing;
|
|
36
62
|
}
|
|
37
63
|
//# sourceMappingURL=skill-resource-data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-resource-data.js","sourceRoot":"","sources":["../../../src/server/skills/skill-resource-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGlC,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-resource-data.js","sourceRoot":"","sources":["../../../src/server/skills/skill-resource-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGlC,MAAM,CAAC,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAIpD,MAAM,aAAa,GAAG,GAAG,CAAC;AA0B1B,MAAM,UAAU,kBAAkB,CAAC,OAAqB;IACvD,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtF,CAAC;IACF,CAAC;IACD,SAAS,CAAC,IAAI,CAAC;QACd,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,4DAA4D;QACzE,QAAQ,EAAE,kBAAkB;KAC5B,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAqB,EAAE,GAAW;IACzE,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;QAC7B,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAuB;IAC1D,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,MAAM;QACjB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QACxE,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,SAAS,YAAY,CAAC,MAA0B;IAC/C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,MAAM,CAAC;AACf,CAAC;AAOD,MAAM,UAAU,kBAAkB,CACjC,OAAqB,EACrB,GAAW,EACX,MAAe,EACf,WAAmB,aAAa;IAGhC,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,MAAM,OAAO,GAA0B;QACtC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;KAChG,CAAC;IACF,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-resources.d.ts","sourceRoot":"","sources":["../../../src/server/skills/skill-resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-resources.d.ts","sourceRoot":"","sources":["../../../src/server/skills/skill-resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAqB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAgBxE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAkCrF"}
|
|
@@ -1,25 +1,37 @@
|
|
|
1
|
+
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
1
2
|
import { logger } from '../utils/logger.js';
|
|
2
|
-
import { listSkillResources,
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}, async () => {
|
|
8
|
-
const content = await readSkillFile(skill);
|
|
3
|
+
import { listSkillResources, readSkillDirectory, readSkillFile, SKILL_INDEX_URI } from './skill-resource-data.js';
|
|
4
|
+
import { ResourcesDirectoryReadRequestSchema } from './skill-directory-schema.js';
|
|
5
|
+
function registerReadable(server, name, file, description) {
|
|
6
|
+
server.registerResource(name, file.url, description ? { description, mimeType: file.mimeType } : { mimeType: file.mimeType }, async () => {
|
|
7
|
+
const content = await readSkillFile(file);
|
|
9
8
|
return { contents: [content] };
|
|
10
9
|
});
|
|
11
10
|
}
|
|
12
11
|
export function registerSkillResources(server, catalog) {
|
|
13
|
-
for (const
|
|
14
|
-
|
|
12
|
+
for (const entry of catalog.entries) {
|
|
13
|
+
for (const file of entry.files) {
|
|
14
|
+
registerReadable(server, file.name, file, file.description);
|
|
15
|
+
}
|
|
16
|
+
for (const archive of entry.archives) {
|
|
17
|
+
registerReadable(server, archive.name, archive);
|
|
18
|
+
}
|
|
15
19
|
}
|
|
16
20
|
server.registerResource('Skills Index', SKILL_INDEX_URI, {
|
|
17
|
-
description: 'Catalog of skills exposed by this server (
|
|
21
|
+
description: 'Catalog of skills exposed by this server (SEP-2640 index).',
|
|
18
22
|
mimeType: 'application/json',
|
|
19
23
|
}, async () => ({
|
|
20
24
|
contents: [{ uri: SKILL_INDEX_URI, mimeType: 'application/json', text: catalog.indexText }],
|
|
21
25
|
}));
|
|
26
|
+
server.server.setRequestHandler(ResourcesDirectoryReadRequestSchema, (request) => {
|
|
27
|
+
const { uri, cursor } = request.params;
|
|
28
|
+
const listing = readSkillDirectory(catalog, uri, cursor);
|
|
29
|
+
if (!listing) {
|
|
30
|
+
throw new McpError(ErrorCode.InvalidParams, `Not a directory resource: ${uri}`);
|
|
31
|
+
}
|
|
32
|
+
return listing;
|
|
33
|
+
});
|
|
22
34
|
const resources = listSkillResources(catalog).length;
|
|
23
|
-
logger.info({ skills: catalog.
|
|
35
|
+
logger.info({ skills: catalog.entries.length, resources }, 'registered skill resources');
|
|
24
36
|
}
|
|
25
37
|
//# sourceMappingURL=skill-resources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-resources.js","sourceRoot":"","sources":["../../../src/server/skills/skill-resources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"skill-resources.js","sourceRoot":"","sources":["../../../src/server/skills/skill-resources.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAqB,MAAM,oCAAoC,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAClH,OAAO,EAAE,mCAAmC,EAAE,MAAM,6BAA6B,CAAC;AAElF,SAAS,gBAAgB,CAAC,MAAiB,EAAE,IAAY,EAAE,IAAuB,EAAE,WAAoB;IACvG,MAAM,CAAC,gBAAgB,CACtB,IAAI,EACJ,IAAI,CAAC,GAAG,EACR,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EACpF,KAAK,IAAI,EAAE;QACV,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChC,CAAC,CACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,OAAqB;IAC9E,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;IAED,MAAM,CAAC,gBAAgB,CACtB,cAAc,EACd,eAAe,EACf;QACC,WAAW,EAAE,4DAA4D;QACzE,QAAQ,EAAE,kBAAkB;KAC5B,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACZ,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;KAC3F,CAAC,CACF,CAAC;IAGF,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,mCAAmC,EAAE,CAAC,OAAO,EAAgB,EAAE;QAC9F,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACvC,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,6BAA6B,GAAG,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,OAAuB,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,4BAA4B,CAAC,CAAC;AAC1F,CAAC"}
|
|
@@ -1,25 +1,42 @@
|
|
|
1
|
-
export
|
|
2
|
-
export interface SkillResource {
|
|
1
|
+
export interface SkillFrontmatter {
|
|
3
2
|
name: string;
|
|
4
|
-
type: SkillResourceType;
|
|
5
3
|
description: string;
|
|
4
|
+
[key: string]: unknown;
|
|
5
|
+
}
|
|
6
|
+
export interface ReadableSkillFile {
|
|
6
7
|
url: string;
|
|
7
|
-
digest?: string;
|
|
8
8
|
absPath: string;
|
|
9
9
|
mimeType: string;
|
|
10
10
|
isText: boolean;
|
|
11
11
|
}
|
|
12
|
-
export interface
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
export interface SkillResource extends ReadableSkillFile {
|
|
13
|
+
name: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface SkillArchive extends ReadableSkillFile {
|
|
17
|
+
name: string;
|
|
18
|
+
digest?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface SkillDirChild {
|
|
21
|
+
uri: string;
|
|
22
|
+
name: string;
|
|
16
23
|
mimeType: string;
|
|
17
|
-
|
|
24
|
+
}
|
|
25
|
+
export interface SkillEntry {
|
|
26
|
+
skillPath: string;
|
|
27
|
+
frontmatter: SkillFrontmatter;
|
|
28
|
+
skillMd?: {
|
|
29
|
+
url: string;
|
|
30
|
+
digest?: string;
|
|
31
|
+
};
|
|
32
|
+
files: SkillResource[];
|
|
33
|
+
archives: SkillArchive[];
|
|
18
34
|
}
|
|
19
35
|
export interface SkillCatalog {
|
|
20
36
|
indexPath: string;
|
|
21
37
|
indexText: string;
|
|
22
|
-
|
|
23
|
-
|
|
38
|
+
entries: SkillEntry[];
|
|
39
|
+
resourcesByUri: Map<string, ReadableSkillFile>;
|
|
40
|
+
directories: Map<string, SkillDirChild[]>;
|
|
24
41
|
}
|
|
25
42
|
//# sourceMappingURL=skill-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-types.d.ts","sourceRoot":"","sources":["../../../src/server/skills/skill-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-types.d.ts","sourceRoot":"","sources":["../../../src/server/skills/skill-types.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CAChB;AAGD,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IAEvD,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,aAAa;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,UAAU;IAE1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,gBAAgB,CAAC;IAE9B,OAAO,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3C,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;IAEtB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAE/C,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;CAC1C"}
|
|
@@ -2,5 +2,7 @@ export declare function mimeFor(relPath: string): {
|
|
|
2
2
|
mimeType: string;
|
|
3
3
|
isText: boolean;
|
|
4
4
|
};
|
|
5
|
-
export declare
|
|
5
|
+
export declare const DIRECTORY_MIME = "inode/directory";
|
|
6
|
+
export declare function buildSkillUri(skillPath: string, relPath: string): string;
|
|
7
|
+
export declare function buildSkillDirUri(skillPath: string, relDir: string): string;
|
|
6
8
|
//# sourceMappingURL=skill-uri.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-uri.d.ts","sourceRoot":"","sources":["../../../src/server/skills/skill-uri.ts"],"names":[],"mappings":"AAmCA,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAa9E;
|
|
1
|
+
{"version":3,"file":"skill-uri.d.ts","sourceRoot":"","sources":["../../../src/server/skills/skill-uri.ts"],"names":[],"mappings":"AAmCA,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAa9E;AAGD,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAgBhD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAIxE;AAMD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAI1E"}
|
|
@@ -44,9 +44,23 @@ export function mimeFor(relPath) {
|
|
|
44
44
|
}
|
|
45
45
|
return { mimeType: 'application/octet-stream', isText: false };
|
|
46
46
|
}
|
|
47
|
-
export
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
export const DIRECTORY_MIME = 'inode/directory';
|
|
48
|
+
function encodeSegments(value) {
|
|
49
|
+
return value
|
|
50
|
+
.replaceAll('\\', '/')
|
|
51
|
+
.split('/')
|
|
52
|
+
.filter((segment) => segment.length > 0)
|
|
53
|
+
.map(encodeURIComponent)
|
|
54
|
+
.join('/');
|
|
55
|
+
}
|
|
56
|
+
export function buildSkillUri(skillPath, relPath) {
|
|
57
|
+
const encodedSkill = encodeSegments(skillPath);
|
|
58
|
+
const encodedPath = encodeSegments(relPath);
|
|
59
|
+
return `skill://${encodedSkill}/${encodedPath}`;
|
|
60
|
+
}
|
|
61
|
+
export function buildSkillDirUri(skillPath, relDir) {
|
|
62
|
+
const encodedSkill = encodeSegments(skillPath);
|
|
63
|
+
const encodedDir = encodeSegments(relDir);
|
|
64
|
+
return encodedDir ? `skill://${encodedSkill}/${encodedDir}` : `skill://${encodedSkill}`;
|
|
51
65
|
}
|
|
52
66
|
//# sourceMappingURL=skill-uri.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-uri.js","sourceRoot":"","sources":["../../../src/server/skills/skill-uri.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,gBAAgB,GAA2B;IAChD,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,eAAe;IAC5B,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,kBAAkB;IAC1B,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,mBAAmB;IAC1B,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,iBAAiB;CACzB,CAAC;AAEF,MAAM,kBAAkB,GAA2B;IAClD,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,mBAAmB;IAC3B,KAAK,EAAE,kBAAkB;IACzB,MAAM,EAAE,kBAAkB;CAC1B,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,OAAe;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACvD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAC5D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1D,CAAC;IACD,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,QAAQ,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7D,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,0BAA0B,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAChE,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-uri.js","sourceRoot":"","sources":["../../../src/server/skills/skill-uri.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stateless-http-transport.d.ts","sourceRoot":"","sources":["../../../src/server/transport/stateless-http-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,KAAK,gBAAgB,EAErB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAqB,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"stateless-http-transport.d.ts","sourceRoot":"","sources":["../../../src/server/transport/stateless-http-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,KAAK,gBAAgB,EAErB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAqB,OAAO,EAAE,MAAM,SAAS,CAAC;AA0D1D,qBAAa,sBAAuB,SAAQ,aAAa;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,iBAAiB,CAA4C;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,oBAAoB,CAAa;gBAE7B,aAAa,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO;IAkBtD,OAAO,CAAC,YAAY;IA6BpB,OAAO,CAAC,oBAAoB;YAad,8BAA8B;IAoFnC,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;YAkDhD,oBAAoB;YAmTpB,mBAAmB;IAgDxB,QAAQ,IAAI,IAAI;IAQhB,wBAAwB,IAAI,MAAM;IAYlC,WAAW,IAAI,eAAe,EAAE;IAU1B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvC,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,8BAA8B;IAQtC,OAAO,CAAC,gCAAgC;IAYxC,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAa1C,gBAAgB,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;CAO/E"}
|