@xiedada/nodemw-mcp-server 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +166 -0
- package/README.md +145 -0
- package/dist/common/nodemwBot.d.ts +21 -0
- package/dist/common/nodemwBot.d.ts.map +1 -0
- package/dist/common/nodemwBot.js +62 -0
- package/dist/common/nodemwBot.js.map +1 -0
- package/dist/common/utils.d.ts +7 -0
- package/dist/common/utils.d.ts.map +1 -0
- package/dist/common/utils.js +38 -0
- package/dist/common/utils.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +64 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +9 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/editing/add-flow-topic.d.ts +3 -0
- package/dist/tools/editing/add-flow-topic.d.ts.map +1 -0
- package/dist/tools/editing/add-flow-topic.js +25 -0
- package/dist/tools/editing/add-flow-topic.js.map +1 -0
- package/dist/tools/editing/append.d.ts +3 -0
- package/dist/tools/editing/append.d.ts.map +1 -0
- package/dist/tools/editing/append.js +26 -0
- package/dist/tools/editing/append.js.map +1 -0
- package/dist/tools/editing/create-account.d.ts +3 -0
- package/dist/tools/editing/create-account.d.ts.map +1 -0
- package/dist/tools/editing/create-account.js +24 -0
- package/dist/tools/editing/create-account.js.map +1 -0
- package/dist/tools/editing/delete.d.ts +3 -0
- package/dist/tools/editing/delete.d.ts.map +1 -0
- package/dist/tools/editing/delete.js +25 -0
- package/dist/tools/editing/delete.js.map +1 -0
- package/dist/tools/editing/edit.d.ts +3 -0
- package/dist/tools/editing/edit.d.ts.map +1 -0
- package/dist/tools/editing/edit.js +27 -0
- package/dist/tools/editing/edit.js.map +1 -0
- package/dist/tools/editing/move.d.ts +3 -0
- package/dist/tools/editing/move.d.ts.map +1 -0
- package/dist/tools/editing/move.js +26 -0
- package/dist/tools/editing/move.js.map +1 -0
- package/dist/tools/editing/prepend.d.ts +3 -0
- package/dist/tools/editing/prepend.d.ts.map +1 -0
- package/dist/tools/editing/prepend.js +26 -0
- package/dist/tools/editing/prepend.js.map +1 -0
- package/dist/tools/editing/protect.d.ts +3 -0
- package/dist/tools/editing/protect.d.ts.map +1 -0
- package/dist/tools/editing/protect.js +37 -0
- package/dist/tools/editing/protect.js.map +1 -0
- package/dist/tools/editing/purge.d.ts +3 -0
- package/dist/tools/editing/purge.d.ts.map +1 -0
- package/dist/tools/editing/purge.js +23 -0
- package/dist/tools/editing/purge.js.map +1 -0
- package/dist/tools/editing/send-email.d.ts +3 -0
- package/dist/tools/editing/send-email.d.ts.map +1 -0
- package/dist/tools/editing/send-email.js +25 -0
- package/dist/tools/editing/send-email.js.map +1 -0
- package/dist/tools/editing/upload-by-url.d.ts +3 -0
- package/dist/tools/editing/upload-by-url.d.ts.map +1 -0
- package/dist/tools/editing/upload-by-url.js +26 -0
- package/dist/tools/editing/upload-by-url.js.map +1 -0
- package/dist/tools/editing/upload.d.ts +3 -0
- package/dist/tools/editing/upload.d.ts.map +1 -0
- package/dist/tools/editing/upload.js +27 -0
- package/dist/tools/editing/upload.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +105 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/ro/expand-templates.d.ts +3 -0
- package/dist/tools/ro/expand-templates.d.ts.map +1 -0
- package/dist/tools/ro/expand-templates.js +28 -0
- package/dist/tools/ro/expand-templates.js.map +1 -0
- package/dist/tools/ro/get-all-pages.d.ts +3 -0
- package/dist/tools/ro/get-all-pages.d.ts.map +1 -0
- package/dist/tools/ro/get-all-pages.js +30 -0
- package/dist/tools/ro/get-all-pages.js.map +1 -0
- package/dist/tools/ro/get-article-categories.d.ts +3 -0
- package/dist/tools/ro/get-article-categories.d.ts.map +1 -0
- package/dist/tools/ro/get-article-categories.js +27 -0
- package/dist/tools/ro/get-article-categories.js.map +1 -0
- package/dist/tools/ro/get-article-info.d.ts +3 -0
- package/dist/tools/ro/get-article-info.d.ts.map +1 -0
- package/dist/tools/ro/get-article-info.js +35 -0
- package/dist/tools/ro/get-article-info.js.map +1 -0
- package/dist/tools/ro/get-article-properties.d.ts +3 -0
- package/dist/tools/ro/get-article-properties.d.ts.map +1 -0
- package/dist/tools/ro/get-article-properties.js +26 -0
- package/dist/tools/ro/get-article-properties.js.map +1 -0
- package/dist/tools/ro/get-article-revisions.d.ts +3 -0
- package/dist/tools/ro/get-article-revisions.d.ts.map +1 -0
- package/dist/tools/ro/get-article-revisions.js +29 -0
- package/dist/tools/ro/get-article-revisions.js.map +1 -0
- package/dist/tools/ro/get-article.d.ts +3 -0
- package/dist/tools/ro/get-article.d.ts.map +1 -0
- package/dist/tools/ro/get-article.js +54 -0
- package/dist/tools/ro/get-article.js.map +1 -0
- package/dist/tools/ro/get-backlinks.d.ts +3 -0
- package/dist/tools/ro/get-backlinks.d.ts.map +1 -0
- package/dist/tools/ro/get-backlinks.js +27 -0
- package/dist/tools/ro/get-backlinks.js.map +1 -0
- package/dist/tools/ro/get-categories.d.ts +3 -0
- package/dist/tools/ro/get-categories.d.ts.map +1 -0
- package/dist/tools/ro/get-categories.js +27 -0
- package/dist/tools/ro/get-categories.js.map +1 -0
- package/dist/tools/ro/get-external-links.d.ts +3 -0
- package/dist/tools/ro/get-external-links.d.ts.map +1 -0
- package/dist/tools/ro/get-external-links.js +27 -0
- package/dist/tools/ro/get-external-links.js.map +1 -0
- package/dist/tools/ro/get-image-info.d.ts +3 -0
- package/dist/tools/ro/get-image-info.d.ts.map +1 -0
- package/dist/tools/ro/get-image-info.js +29 -0
- package/dist/tools/ro/get-image-info.js.map +1 -0
- package/dist/tools/ro/get-image-usage.d.ts +3 -0
- package/dist/tools/ro/get-image-usage.d.ts.map +1 -0
- package/dist/tools/ro/get-image-usage.js +27 -0
- package/dist/tools/ro/get-image-usage.js.map +1 -0
- package/dist/tools/ro/get-images-from-article.d.ts +3 -0
- package/dist/tools/ro/get-images-from-article.d.ts.map +1 -0
- package/dist/tools/ro/get-images-from-article.js +27 -0
- package/dist/tools/ro/get-images-from-article.js.map +1 -0
- package/dist/tools/ro/get-images.d.ts +3 -0
- package/dist/tools/ro/get-images.d.ts.map +1 -0
- package/dist/tools/ro/get-images.js +43 -0
- package/dist/tools/ro/get-images.js.map +1 -0
- package/dist/tools/ro/get-log.d.ts +3 -0
- package/dist/tools/ro/get-log.d.ts.map +1 -0
- package/dist/tools/ro/get-log.js +46 -0
- package/dist/tools/ro/get-log.js.map +1 -0
- package/dist/tools/ro/get-mediawiki-version.d.ts +3 -0
- package/dist/tools/ro/get-mediawiki-version.d.ts.map +1 -0
- package/dist/tools/ro/get-mediawiki-version.js +20 -0
- package/dist/tools/ro/get-mediawiki-version.js.map +1 -0
- package/dist/tools/ro/get-pages-by-prefix.d.ts +3 -0
- package/dist/tools/ro/get-pages-by-prefix.d.ts.map +1 -0
- package/dist/tools/ro/get-pages-by-prefix.js +27 -0
- package/dist/tools/ro/get-pages-by-prefix.js.map +1 -0
- package/dist/tools/ro/get-pages-in-category.d.ts +3 -0
- package/dist/tools/ro/get-pages-in-category.d.ts.map +1 -0
- package/dist/tools/ro/get-pages-in-category.js +29 -0
- package/dist/tools/ro/get-pages-in-category.js.map +1 -0
- package/dist/tools/ro/get-pages-in-namespace.d.ts +3 -0
- package/dist/tools/ro/get-pages-in-namespace.d.ts.map +1 -0
- package/dist/tools/ro/get-pages-in-namespace.js +27 -0
- package/dist/tools/ro/get-pages-in-namespace.js.map +1 -0
- package/dist/tools/ro/get-pages-transcluding.d.ts +3 -0
- package/dist/tools/ro/get-pages-transcluding.d.ts.map +1 -0
- package/dist/tools/ro/get-pages-transcluding.js +32 -0
- package/dist/tools/ro/get-pages-transcluding.js.map +1 -0
- package/dist/tools/ro/get-query-page.d.ts +3 -0
- package/dist/tools/ro/get-query-page.d.ts.map +1 -0
- package/dist/tools/ro/get-query-page.js +27 -0
- package/dist/tools/ro/get-query-page.js.map +1 -0
- package/dist/tools/ro/get-recent-changes.d.ts +3 -0
- package/dist/tools/ro/get-recent-changes.d.ts.map +1 -0
- package/dist/tools/ro/get-recent-changes.js +43 -0
- package/dist/tools/ro/get-recent-changes.js.map +1 -0
- package/dist/tools/ro/get-site-info.d.ts +3 -0
- package/dist/tools/ro/get-site-info.d.ts.map +1 -0
- package/dist/tools/ro/get-site-info.js +23 -0
- package/dist/tools/ro/get-site-info.js.map +1 -0
- package/dist/tools/ro/get-site-stats.d.ts +3 -0
- package/dist/tools/ro/get-site-stats.d.ts.map +1 -0
- package/dist/tools/ro/get-site-stats.js +20 -0
- package/dist/tools/ro/get-site-stats.js.map +1 -0
- package/dist/tools/ro/get-user-contribs.d.ts +3 -0
- package/dist/tools/ro/get-user-contribs.d.ts.map +1 -0
- package/dist/tools/ro/get-user-contribs.js +39 -0
- package/dist/tools/ro/get-user-contribs.js.map +1 -0
- package/dist/tools/ro/get-users.d.ts +3 -0
- package/dist/tools/ro/get-users.d.ts.map +1 -0
- package/dist/tools/ro/get-users.js +29 -0
- package/dist/tools/ro/get-users.js.map +1 -0
- package/dist/tools/ro/parse.d.ts +3 -0
- package/dist/tools/ro/parse.d.ts.map +1 -0
- package/dist/tools/ro/parse.js +37 -0
- package/dist/tools/ro/parse.js.map +1 -0
- package/dist/tools/ro/search.d.ts +3 -0
- package/dist/tools/ro/search.d.ts.map +1 -0
- package/dist/tools/ro/search.js +32 -0
- package/dist/tools/ro/search.js.map +1 -0
- package/dist/tools/ro/whoami.d.ts +3 -0
- package/dist/tools/ro/whoami.d.ts.map +1 -0
- package/dist/tools/ro/whoami.js +20 -0
- package/dist/tools/ro/whoami.js.map +1 -0
- package/dist/tools/ro/whoare.d.ts +3 -0
- package/dist/tools/ro/whoare.d.ts.map +1 -0
- package/dist/tools/ro/whoare.js +19 -0
- package/dist/tools/ro/whoare.js.map +1 -0
- package/dist/tools/ro/whois.d.ts +3 -0
- package/dist/tools/ro/whois.d.ts.map +1 -0
- package/dist/tools/ro/whois.js +26 -0
- package/dist/tools/ro/whois.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function getLogTool(server) {
|
|
5
|
+
return server.tool('get-log', 'Get log entries of a specific type', {
|
|
6
|
+
type: z.string().describe('Log type (e.g. delete, block, move)'),
|
|
7
|
+
start: z.string().optional().default('').describe('Start timestamp (YYYYMMDDHHMMSS format)'),
|
|
8
|
+
limit: z.number().optional().default(50).describe('Maximum number of entries to return')
|
|
9
|
+
}, {
|
|
10
|
+
title: 'Get log entries',
|
|
11
|
+
readOnlyHint: true,
|
|
12
|
+
destructiveHint: false
|
|
13
|
+
}, async ({ type, start, limit }) => handleGetLogTool(type, start, limit));
|
|
14
|
+
}
|
|
15
|
+
async function handleGetLogTool(type, start, limit) {
|
|
16
|
+
try {
|
|
17
|
+
const bot = await getBot();
|
|
18
|
+
// Handle getLog's callback signature manually
|
|
19
|
+
const entries = await new Promise((resolve, reject) => {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
bot.getLog(type, start, (err, ...args) => {
|
|
22
|
+
if (err) {
|
|
23
|
+
reject(err);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const ents = args[0];
|
|
27
|
+
resolve(Array.isArray(ents) ? ents : []);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
// Limit results
|
|
32
|
+
const limitedEntries = entries.slice(0, limit);
|
|
33
|
+
return jsonResult({
|
|
34
|
+
type,
|
|
35
|
+
start,
|
|
36
|
+
limit,
|
|
37
|
+
total: entries.length,
|
|
38
|
+
displayed: limitedEntries.length,
|
|
39
|
+
entries: limitedEntries
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return errorResult('Failed to get log entries', error);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=get-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-log.js","sourceRoot":"","sources":["../../../src/tools/ro/get-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAsB,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAWhE,MAAM,UAAU,UAAU,CAAE,MAAiB;IAC5C,OAAO,MAAM,CAAC,IAAI,CACjB,SAAS,EACT,oCAAoC,EACpC;QACC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QAC5F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACxF,EACD;QACC,KAAK,EAAE,iBAAiB;QACxB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAG,EAAE,CAAC,gBAAgB,CAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAE,CAC1E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC9B,IAAY,EACZ,KAAa,EACb,KAAa;IAEb,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,8CAA8C;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACjE,8DAA8D;YAC7D,GAAW,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,GAAiB,EAAE,GAAG,IAAW,EAAE,EAAE;gBACtE,IAAI,GAAG,EAAE,CAAC;oBACT,MAAM,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACP,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1C,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAE/C,OAAO,UAAU,CAAC;YACjB,IAAI;YACJ,KAAK;YACL,KAAK;YACL,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,SAAS,EAAE,cAAc,CAAC,MAAM;YAChC,OAAO,EAAE,cAAc;SACvB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,2BAA2B,EAAE,KAAc,CAAC,CAAC;IACjE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-mediawiki-version.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-mediawiki-version.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAKzF,wBAAgB,uBAAuB,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAY3E"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
2
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
3
|
+
export function getMediaWikiVersionTool(server) {
|
|
4
|
+
return server.tool('get-mediawiki-version', 'Get MediaWiki version running on the server', {}, {
|
|
5
|
+
title: 'Get MediaWiki version',
|
|
6
|
+
readOnlyHint: true,
|
|
7
|
+
destructiveHint: false
|
|
8
|
+
}, async () => handleGetMediaWikiVersionTool());
|
|
9
|
+
}
|
|
10
|
+
async function handleGetMediaWikiVersionTool() {
|
|
11
|
+
try {
|
|
12
|
+
const bot = await getBot();
|
|
13
|
+
const version = await promisifyBotMethod(bot, 'getMediaWikiVersion');
|
|
14
|
+
return jsonResult({ version });
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
return errorResult('Failed to get MediaWiki version', error);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=get-mediawiki-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-mediawiki-version.js","sourceRoot":"","sources":["../../../src/tools/ro/get-mediawiki-version.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,uBAAuB,CAAE,MAAiB;IACzD,OAAO,MAAM,CAAC,IAAI,CACjB,uBAAuB,EACvB,6CAA6C,EAC7C,EAAE,EACF;QACC,KAAK,EAAE,uBAAuB;QAC9B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,IAAI,EAAE,CAAC,6BAA6B,EAAE,CAC3C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,6BAA6B;IAC3C,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACvC,GAAG,EACH,qBAAqB,CACrB,CAAC;QAEF,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAChC,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,iCAAiC,EAAE,KAAc,CAAC,CAAC;IACvE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pages-by-prefix.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-pages-by-prefix.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAYzF,wBAAgB,oBAAoB,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAcxE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function getPagesByPrefixTool(server) {
|
|
5
|
+
return server.tool('get-pages-by-prefix', 'Get pages starting with a specific prefix', {
|
|
6
|
+
prefix: z.string().describe('Prefix to match page titles')
|
|
7
|
+
}, {
|
|
8
|
+
title: 'Get pages by prefix',
|
|
9
|
+
readOnlyHint: true,
|
|
10
|
+
destructiveHint: false
|
|
11
|
+
}, async ({ prefix }) => handleGetPagesByPrefixTool(prefix));
|
|
12
|
+
}
|
|
13
|
+
async function handleGetPagesByPrefixTool(prefix) {
|
|
14
|
+
try {
|
|
15
|
+
const bot = await getBot();
|
|
16
|
+
const results = await promisifyBotMethod(bot, 'getPagesByPrefix', prefix);
|
|
17
|
+
return jsonResult({
|
|
18
|
+
prefix,
|
|
19
|
+
pages: results,
|
|
20
|
+
count: results.length
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return errorResult('Failed to get pages by prefix', error);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=get-pages-by-prefix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pages-by-prefix.js","sourceRoot":"","sources":["../../../src/tools/ro/get-pages-by-prefix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAShE,MAAM,UAAU,oBAAoB,CAAE,MAAiB;IACtD,OAAO,MAAM,CAAC,IAAI,CACjB,qBAAqB,EACrB,2CAA2C,EAC3C;QACC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KAC1D,EACD;QACC,KAAK,EAAE,qBAAqB;QAC5B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,MAAM,EAAE,EAAG,EAAE,CAAC,0BAA0B,CAAE,MAAM,CAAE,CAC5D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CACxC,MAAc;IAEd,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACvC,GAAG,EACH,kBAAkB,EAClB,MAAM,CACN,CAAC;QAEF,OAAO,UAAU,CAAC;YACjB,MAAM;YACN,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO,CAAC,MAAM;SACrB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,+BAA+B,EAAE,KAAc,CAAC,CAAC;IACrE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pages-in-category.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-pages-in-category.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAYzF,wBAAgB,sBAAsB,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAc1E"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function getPagesInCategoryTool(server) {
|
|
5
|
+
return server.tool('get-pages-in-category', 'Get all pages in a category', {
|
|
6
|
+
category: z.string().describe('Category name (with or without Category: prefix)')
|
|
7
|
+
}, {
|
|
8
|
+
title: 'Get pages in category',
|
|
9
|
+
readOnlyHint: true,
|
|
10
|
+
destructiveHint: false
|
|
11
|
+
}, async ({ category }) => handleGetPagesInCategoryTool(category));
|
|
12
|
+
}
|
|
13
|
+
async function handleGetPagesInCategoryTool(category) {
|
|
14
|
+
try {
|
|
15
|
+
const bot = await getBot();
|
|
16
|
+
// Remove "Category:" prefix if present
|
|
17
|
+
const cleanCategory = category.replace(/^Category:/i, '');
|
|
18
|
+
const results = await promisifyBotMethod(bot, 'getPagesInCategory', cleanCategory);
|
|
19
|
+
return jsonResult({
|
|
20
|
+
category: cleanCategory,
|
|
21
|
+
pages: results,
|
|
22
|
+
count: results.length
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return errorResult('Failed to get pages in category', error);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=get-pages-in-category.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pages-in-category.js","sourceRoot":"","sources":["../../../src/tools/ro/get-pages-in-category.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAShE,MAAM,UAAU,sBAAsB,CAAE,MAAiB;IACxD,OAAO,MAAM,CAAC,IAAI,CACjB,uBAAuB,EACvB,6BAA6B,EAC7B;QACC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAE,kDAAkD,CAAE;KACnF,EACD;QACC,KAAK,EAAE,uBAAuB;QAC9B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,QAAQ,EAAE,EAAG,EAAE,CAAC,4BAA4B,CAAE,QAAQ,CAAE,CAClE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,4BAA4B,CAC1C,QAAgB;IAEhB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAE3B,uCAAuC;QACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAE,aAAa,EAAE,EAAE,CAAE,CAAC;QAE5D,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACvC,GAAG,EACH,oBAAoB,EACpB,aAAa,CACb,CAAC;QAEF,OAAO,UAAU,CAAC;YACjB,QAAQ,EAAE,aAAa;YACvB,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO,CAAC,MAAM;SACrB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,iCAAiC,EAAE,KAAc,CAAC,CAAC;IACvE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pages-in-namespace.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-pages-in-namespace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAYzF,wBAAgB,uBAAuB,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAc3E"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function getPagesInNamespaceTool(server) {
|
|
5
|
+
return server.tool('get-pages-in-namespace', 'Get all non-redirect pages in a specific namespace', {
|
|
6
|
+
namespace: z.number().describe('Namespace number to filter pages')
|
|
7
|
+
}, {
|
|
8
|
+
title: 'Get pages in namespace',
|
|
9
|
+
readOnlyHint: true,
|
|
10
|
+
destructiveHint: false
|
|
11
|
+
}, async ({ namespace }) => handleGetPagesInNamespaceTool(namespace));
|
|
12
|
+
}
|
|
13
|
+
async function handleGetPagesInNamespaceTool(namespace) {
|
|
14
|
+
try {
|
|
15
|
+
const bot = await getBot();
|
|
16
|
+
const results = await promisifyBotMethod(bot, 'getPagesInNamespace', namespace);
|
|
17
|
+
return jsonResult({
|
|
18
|
+
namespace,
|
|
19
|
+
pages: results,
|
|
20
|
+
count: results.length
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return errorResult('Failed to get pages in namespace', error);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=get-pages-in-namespace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pages-in-namespace.js","sourceRoot":"","sources":["../../../src/tools/ro/get-pages-in-namespace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAShE,MAAM,UAAU,uBAAuB,CAAE,MAAiB;IACzD,OAAO,MAAM,CAAC,IAAI,CACjB,wBAAwB,EACxB,oDAAoD,EACpD;QACC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;KAClE,EACD;QACC,KAAK,EAAE,wBAAwB;QAC/B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,SAAS,EAAE,EAAG,EAAE,CAAC,6BAA6B,CAAE,SAAS,CAAE,CACrE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC3C,SAAiB;IAEjB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACvC,GAAG,EACH,qBAAqB,EACrB,SAAS,CACT,CAAC;QAEF,OAAO,UAAU,CAAC;YACjB,SAAS;YACT,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO,CAAC,MAAM;SACrB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,kCAAkC,EAAE,KAAc,CAAC,CAAC;IACxE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pages-transcluding.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-pages-transcluding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAYzF,wBAAgB,wBAAwB,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAc5E"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function getPagesTranscludingTool(server) {
|
|
5
|
+
return server.tool('get-pages-transcluding', 'Get all pages that transclude (include) a specific template', {
|
|
6
|
+
template: z.string().describe('Template title to find transclusions')
|
|
7
|
+
}, {
|
|
8
|
+
title: 'Get pages transcluding template',
|
|
9
|
+
readOnlyHint: true,
|
|
10
|
+
destructiveHint: false
|
|
11
|
+
}, async ({ template }) => handleGetPagesTranscludingTool(template));
|
|
12
|
+
}
|
|
13
|
+
async function handleGetPagesTranscludingTool(template) {
|
|
14
|
+
try {
|
|
15
|
+
const bot = await getBot();
|
|
16
|
+
const callbackArgs = await promisifyBotMethod(bot, 'getPagesTranscluding', template);
|
|
17
|
+
// Extract results from callback args (ignore first arg if it's error, which promisifyBotMethod already handles)
|
|
18
|
+
const rawResults = callbackArgs[1];
|
|
19
|
+
const results = Array.isArray(rawResults)
|
|
20
|
+
? rawResults.filter((page) => page != null && typeof page === 'object' && 'title' in page)
|
|
21
|
+
: [];
|
|
22
|
+
return jsonResult({
|
|
23
|
+
template,
|
|
24
|
+
pages: results,
|
|
25
|
+
count: results.length
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return errorResult('Failed to get pages transcluding template', error);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=get-pages-transcluding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-pages-transcluding.js","sourceRoot":"","sources":["../../../src/tools/ro/get-pages-transcluding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAShE,MAAM,UAAU,wBAAwB,CAAE,MAAiB;IAC1D,OAAO,MAAM,CAAC,IAAI,CACjB,wBAAwB,EACxB,6DAA6D,EAC7D;QACC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;KACrE,EACD;QACC,KAAK,EAAE,iCAAiC;QACxC,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,QAAQ,EAAE,EAAG,EAAE,CAAC,8BAA8B,CAAE,QAAQ,CAAE,CACpE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC5C,QAAgB;IAEhB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC5C,GAAG,EACH,sBAAsB,EACtB,QAAQ,CACR,CAAC;QAEF,gHAAgH;QAChH,MAAM,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YACxC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,CAAC;YACpH,CAAC,CAAC,EAAE,CAAC;QAEN,OAAO,UAAU,CAAC;YACjB,QAAQ;YACR,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO,CAAC,MAAM;SACrB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,2CAA2C,EAAE,KAAc,CAAC,CAAC;IACjF,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-query-page.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-query-page.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAWzF,wBAAgB,gBAAgB,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAcpE"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function getQueryPageTool(server) {
|
|
5
|
+
return server.tool('get-query-page', 'Get results from a query page (special page)', {
|
|
6
|
+
name: z.string().describe('Name of the query page')
|
|
7
|
+
}, {
|
|
8
|
+
title: 'Get query page results',
|
|
9
|
+
readOnlyHint: true,
|
|
10
|
+
destructiveHint: false
|
|
11
|
+
}, async ({ name }) => handleGetQueryPageTool(name));
|
|
12
|
+
}
|
|
13
|
+
async function handleGetQueryPageTool(name) {
|
|
14
|
+
try {
|
|
15
|
+
const bot = await getBot();
|
|
16
|
+
const results = await promisifyBotMethod(bot, 'getQueryPage', name);
|
|
17
|
+
return jsonResult({
|
|
18
|
+
name,
|
|
19
|
+
results,
|
|
20
|
+
count: results.length
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return errorResult('Failed to get query page results', error);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=get-query-page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-query-page.js","sourceRoot":"","sources":["../../../src/tools/ro/get-query-page.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQhE,MAAM,UAAU,gBAAgB,CAAE,MAAiB;IAClD,OAAO,MAAM,CAAC,IAAI,CACjB,gBAAgB,EAChB,8CAA8C,EAC9C;QACC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACnD,EACD;QACC,KAAK,EAAE,wBAAwB;QAC/B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,IAAI,EAAE,EAAG,EAAE,CAAC,sBAAsB,CAAE,IAAI,CAAE,CACpD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CACpC,IAAY;IAEZ,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACvC,GAAG,EACH,cAAc,EACd,IAAI,CACJ,CAAC;QAEF,OAAO,UAAU,CAAC;YACjB,IAAI;YACJ,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,MAAM;SACrB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,kCAAkC,EAAE,KAAc,CAAC,CAAC;IACxE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-recent-changes.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-recent-changes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAazF,wBAAgB,oBAAoB,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAexE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function getRecentChangesTool(server) {
|
|
5
|
+
return server.tool('get-recent-changes', 'Get recent changes on the wiki', {
|
|
6
|
+
start: z.string().optional().describe('Start timestamp'),
|
|
7
|
+
limit: z.number().optional().default(50).describe('Maximum number of changes to return')
|
|
8
|
+
}, {
|
|
9
|
+
title: 'Get recent changes',
|
|
10
|
+
readOnlyHint: true,
|
|
11
|
+
destructiveHint: false
|
|
12
|
+
}, async ({ start, limit }) => handleGetRecentChangesTool(start, limit));
|
|
13
|
+
}
|
|
14
|
+
async function handleGetRecentChangesTool(start, limit = 50) {
|
|
15
|
+
try {
|
|
16
|
+
const bot = await getBot();
|
|
17
|
+
// Handle getRecentChanges's callback signature manually
|
|
18
|
+
const changes = await new Promise((resolve, reject) => {
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
+
bot.getRecentChanges(start, (err, ...args) => {
|
|
21
|
+
if (err) {
|
|
22
|
+
reject(err);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
const chgs = args[0];
|
|
26
|
+
resolve(Array.isArray(chgs) ? chgs : []);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
// Limit results
|
|
31
|
+
const limitedChanges = changes.slice(0, limit);
|
|
32
|
+
return jsonResult({
|
|
33
|
+
total: changes.length,
|
|
34
|
+
limit,
|
|
35
|
+
start,
|
|
36
|
+
changes: limitedChanges
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
return errorResult('Failed to get recent changes', error);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=get-recent-changes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-recent-changes.js","sourceRoot":"","sources":["../../../src/tools/ro/get-recent-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAsB,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAUhE,MAAM,UAAU,oBAAoB,CAAE,MAAiB;IACtD,OAAO,MAAM,CAAC,IAAI,CACjB,oBAAoB,EACpB,gCAAgC,EAChC;QACC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QACxD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACxF,EACD;QACC,KAAK,EAAE,oBAAoB;QAC3B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAG,EAAE,CAAC,0BAA0B,CAAE,KAAK,EAAE,KAAK,CAAE,CACxE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0BAA0B,CACxC,KAAc,EACd,QAAgB,EAAE;IAElB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,wDAAwD;QACxD,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrE,8DAA8D;YAC7D,GAAW,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,GAAiB,EAAE,GAAG,IAAW,EAAE,EAAE;gBAC1E,IAAI,GAAG,EAAE,CAAC;oBACT,MAAM,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACP,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACrB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1C,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAE/C,OAAO,UAAU,CAAC;YACjB,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,KAAK;YACL,KAAK;YACL,OAAO,EAAE,cAAc;SACvB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,8BAA8B,EAAE,KAAc,CAAC,CAAC;IACpE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-site-info.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-site-info.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAKzF,wBAAgB,eAAe,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAcnE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function getSiteInfoTool(server) {
|
|
5
|
+
return server.tool('get-site-info', 'Get site information from MediaWiki', {
|
|
6
|
+
properties: z.array(z.string()).describe('List of site information properties to retrieve')
|
|
7
|
+
}, {
|
|
8
|
+
title: 'Get site info',
|
|
9
|
+
readOnlyHint: true,
|
|
10
|
+
destructiveHint: false
|
|
11
|
+
}, async ({ properties }) => handleGetSiteInfoTool(properties));
|
|
12
|
+
}
|
|
13
|
+
async function handleGetSiteInfoTool(properties) {
|
|
14
|
+
try {
|
|
15
|
+
const bot = await getBot();
|
|
16
|
+
const info = await promisifyBotMethod(bot, 'getSiteInfo', properties);
|
|
17
|
+
return jsonResult(info || {});
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
return errorResult('Failed to get site info', error);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=get-site-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-site-info.js","sourceRoot":"","sources":["../../../src/tools/ro/get-site-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,eAAe,CAAE,MAAiB;IACjD,OAAO,MAAM,CAAC,IAAI,CACjB,eAAe,EACf,qCAAqC,EACrC;QACC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC;KAC3F,EACD;QACC,KAAK,EAAE,eAAe;QACtB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,UAAU,EAAE,EAAG,EAAE,CAAC,qBAAqB,CAAE,UAAU,CAAE,CAC/D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CACnC,UAAoB;IAEpB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,kBAAkB,CACpC,GAAG,EACH,aAAa,EACb,UAAU,CACV,CAAC;QAEF,OAAO,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,yBAAyB,EAAE,KAAc,CAAC,CAAC;IAC/D,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-site-stats.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-site-stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAiBzF,wBAAgB,gBAAgB,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAYpE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
2
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
3
|
+
export function getSiteStatsTool(server) {
|
|
4
|
+
return server.tool('get-site-stats', 'Get site statistics', {}, {
|
|
5
|
+
title: 'Get site stats',
|
|
6
|
+
readOnlyHint: true,
|
|
7
|
+
destructiveHint: false
|
|
8
|
+
}, async () => handleGetSiteStatsTool());
|
|
9
|
+
}
|
|
10
|
+
async function handleGetSiteStatsTool() {
|
|
11
|
+
try {
|
|
12
|
+
const bot = await getBot();
|
|
13
|
+
const stats = await promisifyBotMethod(bot, 'getSiteStats');
|
|
14
|
+
return jsonResult(stats);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
return errorResult('Failed to get site stats', error);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=get-site-stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-site-stats.js","sourceRoot":"","sources":["../../../src/tools/ro/get-site-stats.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAchE,MAAM,UAAU,gBAAgB,CAAE,MAAiB;IAClD,OAAO,MAAM,CAAC,IAAI,CACjB,gBAAgB,EAChB,qBAAqB,EACrB,EAAE,EACF;QACC,KAAK,EAAE,gBAAgB;QACvB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,IAAI,EAAE,CAAC,sBAAsB,EAAE,CACpC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB;IACpC,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,MAAM,kBAAkB,CACrC,GAAG,EACH,cAAc,CACd,CAAC;QAEF,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,0BAA0B,EAAE,KAAc,CAAC,CAAC;IAChE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-user-contribs.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-user-contribs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAazF,wBAAgB,mBAAmB,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAgBvE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function getUserContribsTool(server) {
|
|
5
|
+
return server.tool('get-user-contribs', 'Get contributions made by a specific user', {
|
|
6
|
+
username: z.string().describe('Username to get contributions for'),
|
|
7
|
+
namespace: z.number().optional().describe('Filter contributions by namespace'),
|
|
8
|
+
limit: z.number().optional().default(50).describe('Maximum number of contributions to return')
|
|
9
|
+
}, {
|
|
10
|
+
title: 'Get user contributions',
|
|
11
|
+
readOnlyHint: true,
|
|
12
|
+
destructiveHint: false
|
|
13
|
+
}, async ({ username, namespace, limit }) => handleGetUserContribsTool(username, namespace, limit));
|
|
14
|
+
}
|
|
15
|
+
async function handleGetUserContribsTool(username, namespace, limit = 50) {
|
|
16
|
+
try {
|
|
17
|
+
const bot = await getBot();
|
|
18
|
+
const options = {
|
|
19
|
+
user: username,
|
|
20
|
+
...(namespace !== undefined && { namespace })
|
|
21
|
+
};
|
|
22
|
+
const callbackArgs = await promisifyBotMethod(bot, 'getUserContribs', options);
|
|
23
|
+
const contribs = Array.isArray(callbackArgs[1]) ? callbackArgs[1] : [];
|
|
24
|
+
// Limit results
|
|
25
|
+
const limitedContribs = contribs.slice(0, limit);
|
|
26
|
+
return jsonResult({
|
|
27
|
+
username,
|
|
28
|
+
namespace,
|
|
29
|
+
limit,
|
|
30
|
+
total: contribs.length,
|
|
31
|
+
displayed: limitedContribs.length,
|
|
32
|
+
contributions: limitedContribs
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
return errorResult('Failed to get user contributions', error);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=get-user-contribs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-user-contribs.js","sourceRoot":"","sources":["../../../src/tools/ro/get-user-contribs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAUhE,MAAM,UAAU,mBAAmB,CAAE,MAAiB;IACrD,OAAO,MAAM,CAAC,IAAI,CACjB,mBAAmB,EACnB,2CAA2C,EAC3C;QACC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAClE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;KAC9F,EACD;QACC,KAAK,EAAE,wBAAwB;QAC/B,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAG,EAAE,CAAC,yBAAyB,CAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAE,CACnG,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CACvC,QAAgB,EAChB,SAAkB,EAClB,QAAgB,EAAE;IAElB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG;YACf,IAAI,EAAE,QAAQ;YACd,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;SAC7C,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC5C,GAAG,EACH,iBAAiB,EACjB,OAAO,CACP,CAAC;QAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEvE,gBAAgB;QAChB,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAEjD,OAAO,UAAU,CAAC;YACjB,QAAQ;YACR,SAAS;YACT,KAAK;YACL,KAAK,EAAE,QAAQ,CAAC,MAAM;YACtB,SAAS,EAAE,eAAe,CAAC,MAAM;YACjC,aAAa,EAAE,eAAe;SAC9B,CAAC,CAAC;IACJ,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,kCAAkC,EAAE,KAAc,CAAC,CAAC;IACxE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-users.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/get-users.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAWzF,wBAAgB,YAAY,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAehE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
import { jsonResult, errorResult } from '../../common/utils.js';
|
|
4
|
+
export function getUsersTool(server) {
|
|
5
|
+
return server.tool('get-users', 'Get all users matching a prefix', {
|
|
6
|
+
prefix: z.string().optional().default('').describe('Prefix to filter usernames'),
|
|
7
|
+
onlyWithEdits: z.boolean().optional().default(false).describe('Only include users with at least one edit')
|
|
8
|
+
}, {
|
|
9
|
+
title: 'Get users',
|
|
10
|
+
readOnlyHint: true,
|
|
11
|
+
destructiveHint: false
|
|
12
|
+
}, async ({ prefix, onlyWithEdits }) => handleGetUsersTool(prefix, onlyWithEdits));
|
|
13
|
+
}
|
|
14
|
+
async function handleGetUsersTool(prefix, onlyWithEdits) {
|
|
15
|
+
try {
|
|
16
|
+
const bot = await getBot();
|
|
17
|
+
const results = await promisifyBotMethod(bot, 'getUsers', { prefix, witheditsonly: onlyWithEdits });
|
|
18
|
+
return jsonResult({
|
|
19
|
+
prefix,
|
|
20
|
+
onlyWithEdits,
|
|
21
|
+
users: results,
|
|
22
|
+
count: results.length
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return errorResult('Failed to get users', error);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=get-users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-users.js","sourceRoot":"","sources":["../../../src/tools/ro/get-users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQhE,MAAM,UAAU,YAAY,CAAE,MAAiB;IAC9C,OAAO,MAAM,CAAC,IAAI,CACjB,WAAW,EACX,iCAAiC,EACjC;QACC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAChF,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;KAC1G,EACD;QACC,KAAK,EAAE,WAAW;QAClB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,MAAM,EAAE,aAAa,EAAE,EAAG,EAAE,CAAC,kBAAkB,CAAE,MAAM,EAAE,aAAa,CAAE,CAClF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAChC,MAAc,EACd,aAAsB;IAEtB,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACvC,GAAG,EACH,UAAU,EACV,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,CACxC,CAAC;QAEF,OAAO,UAAU,CAAC;YACjB,MAAM;YACN,aAAa;YACb,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,OAAO,CAAC,MAAM;SACrB,CAAC,CAAC;IACJ,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO,WAAW,CAAC,qBAAqB,EAAE,KAAc,CAAC,CAAC;IAC3D,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/parse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAIzF,wBAAgB,SAAS,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAe7D"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { getBot, promisifyBotMethod } from '../../common/nodemwBot.js';
|
|
3
|
+
export function parseTool(server) {
|
|
4
|
+
return server.tool('parse', 'Parse wikitext to HTML', {
|
|
5
|
+
text: z.string().describe('Wikitext to parse'),
|
|
6
|
+
title: z.string().optional().describe('Context page title')
|
|
7
|
+
}, {
|
|
8
|
+
title: 'Parse wikitext',
|
|
9
|
+
readOnlyHint: true,
|
|
10
|
+
destructiveHint: false
|
|
11
|
+
}, async ({ text, title }) => handleParseTool(text, title));
|
|
12
|
+
}
|
|
13
|
+
async function handleParseTool(text, title) {
|
|
14
|
+
try {
|
|
15
|
+
const bot = await getBot();
|
|
16
|
+
const callbackArgs = await promisifyBotMethod(bot, 'parse', text, title || '');
|
|
17
|
+
const xml = callbackArgs[1] || '';
|
|
18
|
+
const images = Array.isArray(callbackArgs[2]) ? callbackArgs[2] : [];
|
|
19
|
+
const output = [
|
|
20
|
+
'Parsed XML structure:',
|
|
21
|
+
'',
|
|
22
|
+
xml,
|
|
23
|
+
'',
|
|
24
|
+
`Images found: ${images.length > 0 ? images.join(', ') : 'none'}`
|
|
25
|
+
].join('\n');
|
|
26
|
+
return {
|
|
27
|
+
content: [{ type: 'text', text: output }]
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
return {
|
|
32
|
+
content: [{ type: 'text', text: `Error: ${error.message}` }],
|
|
33
|
+
isError: true
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/tools/ro/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,UAAU,SAAS,CAAE,MAAiB;IAC3C,OAAO,MAAM,CAAC,IAAI,CACjB,OAAO,EACP,wBAAwB,EACxB;QACC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;KAC3D,EACD;QACC,KAAK,EAAE,gBAAgB;QACvB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACH,EACpB,KAAK,EAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAG,EAAE,CAAC,eAAe,CAAE,IAAI,EAAE,KAAK,CAAE,CAC3D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAC7B,IAAY,EACZ,KAAc;IAEd,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC5C,GAAG,EACH,OAAO,EACP,IAAI,EACJ,KAAK,IAAI,EAAE,CACX,CAAC;QAEF,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAErE,MAAM,MAAM,GAAG;YACd,uBAAuB;YACvB,EAAE;YACF,GAAG;YACH,EAAE;YACF,iBAAiB,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;SACjE,CAAC,IAAI,CAAE,IAAI,CAAE,CAAC;QAEf,OAAO;YACN,OAAO,EAAE,CAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAE;SAC3C,CAAC;IACH,CAAC;IAAC,OAAQ,KAAK,EAAG,CAAC;QAClB,OAAO;YACN,OAAO,EAAE,CAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAa,KAAgB,CAAC,OAAQ,EAAE,EAAE,CAAE;YAC7E,OAAO,EAAE,IAAI;SACb,CAAC;IACH,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/tools/ro/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAazF,wBAAgB,UAAU,CAAE,MAAM,EAAE,SAAS,GAAI,cAAc,CAe9D"}
|