ai4scholar 0.1.0 → 0.2.0
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/index.d.ts.map +1 -1
- package/dist/index.js +47 -10
- package/dist/index.js.map +1 -1
- package/dist/src/hooks/inject-skill.d.ts +11 -0
- package/dist/src/hooks/inject-skill.d.ts.map +1 -0
- package/dist/src/hooks/inject-skill.js +61 -0
- package/dist/src/hooks/inject-skill.js.map +1 -0
- package/dist/src/hooks/scholar-mode.js +1 -1
- package/dist/src/hooks/scholar-mode.js.map +1 -1
- package/dist/src/services/auto-updater.d.ts +15 -0
- package/dist/src/services/auto-updater.d.ts.map +1 -0
- package/dist/src/services/auto-updater.js +153 -0
- package/dist/src/services/auto-updater.js.map +1 -0
- package/dist/src/tools/arxiv.d.ts +32 -0
- package/dist/src/tools/arxiv.d.ts.map +1 -1
- package/dist/src/tools/arxiv.js +54 -0
- package/dist/src/tools/arxiv.js.map +1 -1
- package/dist/src/tools/biorxiv.d.ts +64 -0
- package/dist/src/tools/biorxiv.d.ts.map +1 -1
- package/dist/src/tools/biorxiv.js +65 -0
- package/dist/src/tools/biorxiv.js.map +1 -1
- package/dist/src/tools/doi-download.d.ts +33 -0
- package/dist/src/tools/doi-download.d.ts.map +1 -0
- package/dist/src/tools/doi-download.js +196 -0
- package/dist/src/tools/doi-download.js.map +1 -0
- package/dist/src/tools/pdf-utils.d.ts +9 -0
- package/dist/src/tools/pdf-utils.d.ts.map +1 -0
- package/dist/src/tools/pdf-utils.js +31 -0
- package/dist/src/tools/pdf-utils.js.map +1 -0
- package/dist/src/tools/pubmed.d.ts +16 -0
- package/dist/src/tools/pubmed.d.ts.map +1 -1
- package/dist/src/tools/pubmed.js +28 -1
- package/dist/src/tools/pubmed.js.map +1 -1
- package/dist/src/tools/semantic-scholar.d.ts +132 -0
- package/dist/src/tools/semantic-scholar.d.ts.map +1 -1
- package/dist/src/tools/semantic-scholar.js +230 -0
- package/dist/src/tools/semantic-scholar.js.map +1 -1
- package/package.json +3 -2
- package/skills/literature-survey/SKILL.md +106 -157
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAkDlD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,iBAAiB,QAyGtD"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import path from "node:path";
|
|
1
2
|
import { setApiKey } from "./src/tools/api-client.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
3
|
+
import { createSkillInjectionHook } from "./src/hooks/inject-skill.js";
|
|
4
|
+
import { createAutoUpdaterService } from "./src/services/auto-updater.js";
|
|
5
|
+
import { createSemanticSearchTool, createSemanticDetailTool, createSemanticCitationsTool, createSemanticReferencesTool, createSemanticAuthorSearchTool, createSemanticAuthorPapersTool, createSemanticRecommendationsTool, createSemanticRecommendationsForPaperTool, createSemanticSnippetSearchTool, createSemanticAuthorDetailTool, createSemanticPaperMatchTool, createSemanticPaperBatchTool, createSemanticAuthorBatchTool, createSemanticPaperAuthorsTool, createSemanticBulkSearchTool, createSemanticDownloadTool, createSemanticReadTool, } from "./src/tools/semantic-scholar.js";
|
|
6
|
+
import { createPubmedSearchTool, createPubmedDetailTool, createPubmedCitationsTool, createPubmedRelatedTool, createPubmedBatchTool, } from "./src/tools/pubmed.js";
|
|
4
7
|
import { createGoogleScholarSearchTool } from "./src/tools/google-scholar.js";
|
|
5
|
-
import { createArxivSearchTool } from "./src/tools/arxiv.js";
|
|
6
|
-
import { createBiorxivSearchTool, createMedrxivSearchTool } from "./src/tools/biorxiv.js";
|
|
8
|
+
import { createArxivSearchTool, createArxivDownloadTool, createArxivReadTool } from "./src/tools/arxiv.js";
|
|
9
|
+
import { createBiorxivSearchTool, createMedrxivSearchTool, createBiorxivDownloadTool, createMedrxivDownloadTool, createBiorxivReadTool, createMedrxivReadTool, } from "./src/tools/biorxiv.js";
|
|
10
|
+
import { createDoiDownloadTool, createDoiReadTool } from "./src/tools/doi-download.js";
|
|
7
11
|
import { handleLibrary, handleProjects, handleReadingList, } from "./src/commands.js";
|
|
8
12
|
import { createScholarModeHook } from "./src/hooks/scholar-mode.js";
|
|
13
|
+
const UPDATE_CHECK_INTERVAL_MS = 60 * 60 * 1000; // 1 hour
|
|
9
14
|
export default function register(api) {
|
|
10
15
|
const cfg = api.pluginConfig;
|
|
11
16
|
if (cfg?.apiKey) {
|
|
@@ -14,7 +19,7 @@ export default function register(api) {
|
|
|
14
19
|
else {
|
|
15
20
|
api.logger.warn("AI4Scholar: no apiKey configured. Semantic Scholar, PubMed, and Google Scholar tools require an API key from ai4scholar.net.");
|
|
16
21
|
}
|
|
17
|
-
// --- Semantic Scholar (
|
|
22
|
+
// --- Semantic Scholar (17 tools) ---
|
|
18
23
|
api.registerTool(createSemanticSearchTool());
|
|
19
24
|
api.registerTool(createSemanticDetailTool());
|
|
20
25
|
api.registerTool(createSemanticCitationsTool());
|
|
@@ -24,18 +29,36 @@ export default function register(api) {
|
|
|
24
29
|
api.registerTool(createSemanticRecommendationsTool());
|
|
25
30
|
api.registerTool(createSemanticRecommendationsForPaperTool());
|
|
26
31
|
api.registerTool(createSemanticSnippetSearchTool());
|
|
27
|
-
|
|
32
|
+
api.registerTool(createSemanticAuthorDetailTool());
|
|
33
|
+
api.registerTool(createSemanticPaperMatchTool());
|
|
34
|
+
api.registerTool(createSemanticPaperBatchTool());
|
|
35
|
+
api.registerTool(createSemanticAuthorBatchTool());
|
|
36
|
+
api.registerTool(createSemanticPaperAuthorsTool());
|
|
37
|
+
api.registerTool(createSemanticBulkSearchTool());
|
|
38
|
+
api.registerTool(createSemanticDownloadTool());
|
|
39
|
+
api.registerTool(createSemanticReadTool());
|
|
40
|
+
// --- PubMed (5 tools) ---
|
|
28
41
|
api.registerTool(createPubmedSearchTool());
|
|
29
42
|
api.registerTool(createPubmedDetailTool());
|
|
30
43
|
api.registerTool(createPubmedCitationsTool());
|
|
31
44
|
api.registerTool(createPubmedRelatedTool());
|
|
45
|
+
api.registerTool(createPubmedBatchTool());
|
|
32
46
|
// --- Google Scholar (1 tool) ---
|
|
33
47
|
api.registerTool(createGoogleScholarSearchTool());
|
|
34
|
-
// --- arXiv (
|
|
48
|
+
// --- arXiv (3 tools) ---
|
|
35
49
|
api.registerTool(createArxivSearchTool());
|
|
36
|
-
|
|
50
|
+
api.registerTool(createArxivDownloadTool());
|
|
51
|
+
api.registerTool(createArxivReadTool());
|
|
52
|
+
// --- bioRxiv & medRxiv (6 tools) ---
|
|
37
53
|
api.registerTool(createBiorxivSearchTool());
|
|
38
54
|
api.registerTool(createMedrxivSearchTool());
|
|
55
|
+
api.registerTool(createBiorxivDownloadTool());
|
|
56
|
+
api.registerTool(createMedrxivDownloadTool());
|
|
57
|
+
api.registerTool(createBiorxivReadTool());
|
|
58
|
+
api.registerTool(createMedrxivReadTool());
|
|
59
|
+
// --- DOI direct download (2 tools) ---
|
|
60
|
+
api.registerTool(createDoiDownloadTool());
|
|
61
|
+
api.registerTool(createDoiReadTool());
|
|
39
62
|
// --- Slash commands ---
|
|
40
63
|
api.registerCommand({
|
|
41
64
|
name: "library",
|
|
@@ -58,8 +81,22 @@ export default function register(api) {
|
|
|
58
81
|
requireAuth: false,
|
|
59
82
|
handler: handleReadingList,
|
|
60
83
|
});
|
|
61
|
-
// ---
|
|
84
|
+
// --- Hooks ---
|
|
62
85
|
api.on("before_prompt_build", createScholarModeHook(), { priority: 100 });
|
|
63
|
-
api.
|
|
86
|
+
api.on("before_tool_call", createSkillInjectionHook(path.dirname(api.source)));
|
|
87
|
+
// --- Auto-updater service ---
|
|
88
|
+
const autoUpdateEnabled = cfg?.autoUpdate !== false;
|
|
89
|
+
if (autoUpdateEnabled) {
|
|
90
|
+
api.registerService(createAutoUpdaterService({
|
|
91
|
+
packageName: "ai4scholar",
|
|
92
|
+
checkIntervalMs: UPDATE_CHECK_INTERVAL_MS,
|
|
93
|
+
logger: {
|
|
94
|
+
info: (msg) => api.logger.info(msg),
|
|
95
|
+
warn: (msg) => api.logger.warn(msg),
|
|
96
|
+
debug: (msg) => api.logger.debug?.(msg),
|
|
97
|
+
},
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
api.logger.info(`AI4Scholar plugin loaded — 34 tools registered (apiKey: ${cfg?.apiKey ? "configured" : "missing"})`);
|
|
64
101
|
}
|
|
65
102
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function createSkillInjectionHook(entryFileDir: string): (event: {
|
|
2
|
+
toolName: string;
|
|
3
|
+
params: Record<string, unknown>;
|
|
4
|
+
}, _ctx: {
|
|
5
|
+
agentId?: string;
|
|
6
|
+
sessionKey?: string;
|
|
7
|
+
toolName: string;
|
|
8
|
+
}) => Promise<{
|
|
9
|
+
params: Record<string, unknown>;
|
|
10
|
+
} | void>;
|
|
11
|
+
//# sourceMappingURL=inject-skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-skill.d.ts","sourceRoot":"","sources":["../../../src/hooks/inject-skill.ts"],"names":[],"mappings":"AA2BA,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,IAKzD,OAAO;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC5D,MAAM;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAChE,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,CAiCvD"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import fsSync from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
/**
|
|
5
|
+
* Build a before_tool_call hook that injects SKILL.md content into
|
|
6
|
+
* sessions_spawn task parameters.
|
|
7
|
+
*
|
|
8
|
+
* When the orchestrator spawns a sub-agent with task="/literature-survey\n...",
|
|
9
|
+
* this hook reads the matching SKILL.md and appends its body to the task,
|
|
10
|
+
* so the sub-agent receives full workflow instructions even though its
|
|
11
|
+
* system prompt runs in "minimal" mode (no <available_skills> section).
|
|
12
|
+
*/
|
|
13
|
+
function findPluginRoot(startDir) {
|
|
14
|
+
let dir = startDir;
|
|
15
|
+
for (;;) {
|
|
16
|
+
if (fsSync.existsSync(path.join(dir, "openclaw.plugin.json"))) {
|
|
17
|
+
return dir;
|
|
18
|
+
}
|
|
19
|
+
const parent = path.dirname(dir);
|
|
20
|
+
if (parent === dir)
|
|
21
|
+
break;
|
|
22
|
+
dir = parent;
|
|
23
|
+
}
|
|
24
|
+
return startDir;
|
|
25
|
+
}
|
|
26
|
+
export function createSkillInjectionHook(entryFileDir) {
|
|
27
|
+
const pluginRoot = findPluginRoot(entryFileDir);
|
|
28
|
+
const skillsDir = path.join(pluginRoot, "skills");
|
|
29
|
+
return async (event, _ctx) => {
|
|
30
|
+
if (event.toolName !== "sessions_spawn")
|
|
31
|
+
return;
|
|
32
|
+
const task = event.params?.task;
|
|
33
|
+
if (typeof task !== "string")
|
|
34
|
+
return;
|
|
35
|
+
const match = task.match(/^\/([a-z][\w-]*)/);
|
|
36
|
+
if (!match)
|
|
37
|
+
return;
|
|
38
|
+
const skillName = match[1];
|
|
39
|
+
const skillMdPath = path.join(skillsDir, skillName, "SKILL.md");
|
|
40
|
+
let content;
|
|
41
|
+
try {
|
|
42
|
+
content = await fs.readFile(skillMdPath, "utf-8");
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const body = content.replace(/^---[\s\S]*?---\s*/, "").trim();
|
|
48
|
+
if (!body)
|
|
49
|
+
return;
|
|
50
|
+
const firstNewline = task.indexOf("\n");
|
|
51
|
+
const newTask = firstNewline === -1
|
|
52
|
+
? task + "\n\n" + body
|
|
53
|
+
: task.slice(0, firstNewline) +
|
|
54
|
+
"\n\n" +
|
|
55
|
+
body +
|
|
56
|
+
"\n\n" +
|
|
57
|
+
task.slice(firstNewline + 1);
|
|
58
|
+
return { params: { ...event.params, task: newTask } };
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=inject-skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-skill.js","sourceRoot":"","sources":["../../../src/hooks/inject-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;;GAQG;AAEH,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,SAAS,CAAC;QACR,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAC,EAAE,CAAC;YAC9D,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,YAAoB;IAC3D,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAElD,OAAO,KAAK,EACV,KAA4D,EAC5D,IAAiE,EACZ,EAAE;QACvD,IAAI,KAAK,CAAC,QAAQ,KAAK,gBAAgB;YAAE,OAAO;QAEhD,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;QAChC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO;QAErC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAChE,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,OAAO,GACX,YAAY,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,IAAI;YACtB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;gBAC3B,MAAM;gBACN,IAAI;gBACJ,MAAM;gBACN,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAEnC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;IACxD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const SCHOLAR_MODE_PROMPT = `[AI4Scholar]
|
|
1
|
+
const SCHOLAR_MODE_PROMPT = `[AI4Scholar] You have 34 academic literature tools covering Semantic Scholar, PubMed, Google Scholar, arXiv, bioRxiv, and medRxiv. Capabilities include: search, paper detail, citations, references, author lookup, recommendations, snippet search, batch queries, title matching, bulk search, PDF download, full-text reading, and direct DOI-based paper download (leverages institutional access when available). For paper search or literature questions, call the tools directly and respond in Markdown. Only read the literature-survey SKILL.md when the user explicitly requests an HTML report or a comprehensive multi-source survey.`;
|
|
2
2
|
export function createScholarModeHook() {
|
|
3
3
|
return (event, _context) => {
|
|
4
4
|
if (!event.messages || event.messages.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scholar-mode.js","sourceRoot":"","sources":["../../../src/hooks/scholar-mode.ts"],"names":[],"mappings":"AAgBA,MAAM,mBAAmB,GAAG
|
|
1
|
+
{"version":3,"file":"scholar-mode.js","sourceRoot":"","sources":["../../../src/hooks/scholar-mode.ts"],"names":[],"mappings":"AAgBA,MAAM,mBAAmB,GAAG,snBAAsnB,CAAC;AAEnpB,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,KAAgB,EAAE,QAAqB,EAAc,EAAE;QAC7D,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface AutoUpdaterOptions {
|
|
2
|
+
packageName: string;
|
|
3
|
+
checkIntervalMs: number;
|
|
4
|
+
logger: {
|
|
5
|
+
info: (msg: string) => void;
|
|
6
|
+
warn: (msg: string) => void;
|
|
7
|
+
debug?: (msg: string) => void;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export declare function createAutoUpdaterService(options: AutoUpdaterOptions): {
|
|
11
|
+
id: string;
|
|
12
|
+
start: () => Promise<void>;
|
|
13
|
+
stop: () => void;
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=auto-updater.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-updater.d.ts","sourceRoot":"","sources":["../../../src/services/auto-updater.ts"],"names":[],"mappings":"AAkHA,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5B,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KAC/B,CAAC;CACH;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB;;;;EAyDnE"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { exec } from "child_process";
|
|
2
|
+
import { readFileSync, existsSync, lstatSync } from "fs";
|
|
3
|
+
import { fileURLToPath } from "url";
|
|
4
|
+
import { dirname, join } from "path";
|
|
5
|
+
function getPluginRoot() {
|
|
6
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
7
|
+
const __dirname = dirname(__filename);
|
|
8
|
+
let root = __dirname;
|
|
9
|
+
for (let i = 0; i < 5; i++) {
|
|
10
|
+
if (existsSync(join(root, "package.json"))) {
|
|
11
|
+
return root;
|
|
12
|
+
}
|
|
13
|
+
root = dirname(root);
|
|
14
|
+
}
|
|
15
|
+
return join(__dirname, "../../..");
|
|
16
|
+
}
|
|
17
|
+
function isDevMode() {
|
|
18
|
+
if (process.env.AI4SCHOLAR_DEV === "1" || process.env.AI4SCHOLAR_DEV === "true") {
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
if (process.env.NODE_ENV === "development") {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
const pluginRoot = getPluginRoot();
|
|
25
|
+
if (existsSync(join(pluginRoot, "tsconfig.json"))) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
if (lstatSync(pluginRoot).isSymbolicLink()) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// ignore
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
const pkg = JSON.parse(readFileSync(join(pluginRoot, "package.json"), "utf-8"));
|
|
38
|
+
if (pkg.version && pkg.version.includes("-dev")) {
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// ignore
|
|
44
|
+
}
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
function getCurrentVersion() {
|
|
48
|
+
try {
|
|
49
|
+
const packagePath = join(getPluginRoot(), "package.json");
|
|
50
|
+
const pkg = JSON.parse(readFileSync(packagePath, "utf-8"));
|
|
51
|
+
return pkg.version;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return "0.0.0";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async function getLatestVersion(packageName) {
|
|
58
|
+
return new Promise((resolve) => {
|
|
59
|
+
exec(`npm view ${packageName} version`, { timeout: 10000 }, (error, stdout) => {
|
|
60
|
+
if (error) {
|
|
61
|
+
resolve(null);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
resolve(stdout.trim());
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
function isNewerVersion(current, latest) {
|
|
69
|
+
const currentParts = current.split(".").map(Number);
|
|
70
|
+
const latestParts = latest.split(".").map(Number);
|
|
71
|
+
for (let i = 0; i < 3; i++) {
|
|
72
|
+
const c = currentParts[i] || 0;
|
|
73
|
+
const l = latestParts[i] || 0;
|
|
74
|
+
if (l > c)
|
|
75
|
+
return true;
|
|
76
|
+
if (l < c)
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
function getExtensionsDir() {
|
|
82
|
+
const home = process.env.HOME || process.env.USERPROFILE || "";
|
|
83
|
+
return join(home, ".openclaw", "extensions");
|
|
84
|
+
}
|
|
85
|
+
async function runUpdate(packageName, logger) {
|
|
86
|
+
const extensionsDir = getExtensionsDir();
|
|
87
|
+
const targetDir = join(extensionsDir, packageName);
|
|
88
|
+
return new Promise((resolve) => {
|
|
89
|
+
const cmd = `cd "${extensionsDir}" && npm pack ${packageName} --pack-destination . && tar -xzf ${packageName}-*.tgz && rm -rf "${targetDir}" && mv package "${targetDir}" && rm ${packageName}-*.tgz`;
|
|
90
|
+
exec(cmd, { timeout: 120000 }, (error, _stdout, stderr) => {
|
|
91
|
+
if (error) {
|
|
92
|
+
logger.warn(`AI4Scholar auto-update failed: ${stderr || error.message}`);
|
|
93
|
+
resolve(false);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
logger.info(`AI4Scholar updated. Restart gateway to apply.`);
|
|
97
|
+
resolve(true);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
export function createAutoUpdaterService(options) {
|
|
102
|
+
const { packageName, checkIntervalMs, logger } = options;
|
|
103
|
+
let intervalId = null;
|
|
104
|
+
let isChecking = false;
|
|
105
|
+
const checkAndUpdate = async () => {
|
|
106
|
+
if (isChecking)
|
|
107
|
+
return;
|
|
108
|
+
isChecking = true;
|
|
109
|
+
try {
|
|
110
|
+
const currentVersion = getCurrentVersion();
|
|
111
|
+
const latestVersion = await getLatestVersion(packageName);
|
|
112
|
+
if (!latestVersion) {
|
|
113
|
+
logger.debug?.(`AI4Scholar update check: could not fetch latest version`);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (isNewerVersion(currentVersion, latestVersion)) {
|
|
117
|
+
logger.info(`AI4Scholar update available: ${currentVersion} → ${latestVersion}`);
|
|
118
|
+
await runUpdate(packageName, logger);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
logger.debug?.(`AI4Scholar is up to date (${currentVersion})`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
logger.warn(`AI4Scholar update check error: ${err}`);
|
|
126
|
+
}
|
|
127
|
+
finally {
|
|
128
|
+
isChecking = false;
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
return {
|
|
132
|
+
id: "ai4scholar-auto-updater",
|
|
133
|
+
start: async () => {
|
|
134
|
+
if (isDevMode()) {
|
|
135
|
+
logger.debug?.("AI4Scholar auto-updater skipped (dev mode)");
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
logger.debug?.("AI4Scholar auto-updater service started");
|
|
139
|
+
setTimeout(() => {
|
|
140
|
+
checkAndUpdate();
|
|
141
|
+
}, 5000);
|
|
142
|
+
intervalId = setInterval(checkAndUpdate, checkIntervalMs);
|
|
143
|
+
},
|
|
144
|
+
stop: () => {
|
|
145
|
+
if (intervalId) {
|
|
146
|
+
clearInterval(intervalId);
|
|
147
|
+
intervalId = null;
|
|
148
|
+
}
|
|
149
|
+
logger.debug?.("AI4Scholar auto-updater service stopped");
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=auto-updater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-updater.js","sourceRoot":"","sources":["../../../src/services/auto-updater.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,4 +17,36 @@ export declare function createArxivSearchTool(): {
|
|
|
17
17
|
isError?: boolean;
|
|
18
18
|
}>;
|
|
19
19
|
};
|
|
20
|
+
export declare function createArxivDownloadTool(): {
|
|
21
|
+
label: string;
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
parameters: import("@sinclair/typebox").TObject<{
|
|
25
|
+
paper_id: import("@sinclair/typebox").TString;
|
|
26
|
+
}>;
|
|
27
|
+
execute: (_id: string, raw: unknown) => Promise<{
|
|
28
|
+
type: "tool_result";
|
|
29
|
+
content: {
|
|
30
|
+
type: "text";
|
|
31
|
+
text: string;
|
|
32
|
+
}[];
|
|
33
|
+
isError?: boolean;
|
|
34
|
+
}>;
|
|
35
|
+
};
|
|
36
|
+
export declare function createArxivReadTool(): {
|
|
37
|
+
label: string;
|
|
38
|
+
name: string;
|
|
39
|
+
description: string;
|
|
40
|
+
parameters: import("@sinclair/typebox").TObject<{
|
|
41
|
+
paper_id: import("@sinclair/typebox").TString;
|
|
42
|
+
}>;
|
|
43
|
+
execute: (_id: string, raw: unknown) => Promise<{
|
|
44
|
+
type: "tool_result";
|
|
45
|
+
content: {
|
|
46
|
+
type: "text";
|
|
47
|
+
text: string;
|
|
48
|
+
}[];
|
|
49
|
+
isError?: boolean;
|
|
50
|
+
}>;
|
|
51
|
+
};
|
|
20
52
|
//# sourceMappingURL=arxiv.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arxiv.d.ts","sourceRoot":"","sources":["../../../src/tools/arxiv.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"arxiv.d.ts","sourceRoot":"","sources":["../../../src/tools/arxiv.ts"],"names":[],"mappings":"AAgEA,wBAAgB,qBAAqB;;;;;;;;;;mBAkBZ,MAAM,OAAO,OAAO;;;;;;;;EA6B5C;AAMD,wBAAgB,uBAAuB;;;;;;;mBASd,MAAM,OAAO,OAAO;;;;;;;;EAW5C;AAMD,wBAAgB,mBAAmB;;;;;;;mBASV,MAAM,OAAO,OAAO;;;;;;;;EAkB5C"}
|
package/dist/src/tools/arxiv.js
CHANGED
|
@@ -2,6 +2,7 @@ import { Type } from "@sinclair/typebox";
|
|
|
2
2
|
import { fetchRaw } from "./api-client.js";
|
|
3
3
|
import { readString, readNumber } from "./params.js";
|
|
4
4
|
import { Result } from "./result.js";
|
|
5
|
+
import { fetchPdfBuffer, extractPdfText } from "./pdf-utils.js";
|
|
5
6
|
const ARXIV_API = "https://export.arxiv.org/api/query";
|
|
6
7
|
const SORT_MAP = {
|
|
7
8
|
relevance: "relevance",
|
|
@@ -80,4 +81,57 @@ export function createArxivSearchTool() {
|
|
|
80
81
|
},
|
|
81
82
|
};
|
|
82
83
|
}
|
|
84
|
+
// ---------------------------------------------------------------------------
|
|
85
|
+
// download_arxiv
|
|
86
|
+
// ---------------------------------------------------------------------------
|
|
87
|
+
export function createArxivDownloadTool() {
|
|
88
|
+
return {
|
|
89
|
+
label: "arXiv PDF Download",
|
|
90
|
+
name: "download_arxiv",
|
|
91
|
+
description: "Get the direct PDF download URL for an arXiv paper by its ID.",
|
|
92
|
+
parameters: Type.Object({
|
|
93
|
+
paper_id: Type.String({ description: "arXiv paper ID (e.g. '2106.12345')" }),
|
|
94
|
+
}),
|
|
95
|
+
execute: async (_id, raw) => {
|
|
96
|
+
const p = raw;
|
|
97
|
+
const paperId = readString(p, "paper_id", { required: true });
|
|
98
|
+
const pdfUrl = `https://arxiv.org/pdf/${paperId}.pdf`;
|
|
99
|
+
return Result.ok({
|
|
100
|
+
paper_id: paperId,
|
|
101
|
+
pdf_url: pdfUrl,
|
|
102
|
+
abs_url: `https://arxiv.org/abs/${paperId}`,
|
|
103
|
+
});
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
// ---------------------------------------------------------------------------
|
|
108
|
+
// read_arxiv_paper
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
export function createArxivReadTool() {
|
|
111
|
+
return {
|
|
112
|
+
label: "arXiv Paper Reader",
|
|
113
|
+
name: "read_arxiv_paper",
|
|
114
|
+
description: "Download and extract full text from an arXiv paper PDF. Returns the raw text content.",
|
|
115
|
+
parameters: Type.Object({
|
|
116
|
+
paper_id: Type.String({ description: "arXiv paper ID (e.g. '2106.12345')" }),
|
|
117
|
+
}),
|
|
118
|
+
execute: async (_id, raw) => {
|
|
119
|
+
const p = raw;
|
|
120
|
+
const paperId = readString(p, "paper_id", { required: true });
|
|
121
|
+
const pdfUrl = `https://arxiv.org/pdf/${paperId}.pdf`;
|
|
122
|
+
const buf = await fetchPdfBuffer(pdfUrl);
|
|
123
|
+
if (!buf.ok)
|
|
124
|
+
return Result.err("download_error", buf.error);
|
|
125
|
+
try {
|
|
126
|
+
const text = await extractPdfText(buf.data);
|
|
127
|
+
if (!text.trim())
|
|
128
|
+
return Result.err("extraction_error", "PDF downloaded but no readable text could be extracted");
|
|
129
|
+
return Result.ok({ paper_id: paperId, pdf_url: pdfUrl, text });
|
|
130
|
+
}
|
|
131
|
+
catch (e) {
|
|
132
|
+
return Result.err("extraction_error", e instanceof Error ? e.message : String(e));
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
83
137
|
//# sourceMappingURL=arxiv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arxiv.js","sourceRoot":"","sources":["../../../src/tools/arxiv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"arxiv.js","sourceRoot":"","sources":["../../../src/tools/arxiv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,SAAS,GAAG,oCAAoC,CAAC;AAEvD,MAAM,QAAQ,GAA2B;IACvC,SAAS,EAAE,WAAW;IACtB,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;CAC/B,CAAC;AAaF,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,6BAA6B,CAAC;IAC9C,IAAI,CAAyB,CAAC;IAE9B,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9B,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAEhF,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,mCAAmC,CAAC;QACnD,IAAI,EAA0B,CAAC;QAC/B,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAElE,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,OAAO,EAAE,CAAC;QAE3E,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,+BAA+B,CAAC;QAC9C,IAAI,EAA0B,CAAC;QAC/B,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7D,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAChH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO;QACL,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,gHAAgH;QAClH,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,4CAA4C,EAAE,CAAC;YACjF,WAAW,EAAE,IAAI,CAAC,QAAQ,CACxB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CACxF;YACD,OAAO,EAAE,IAAI,CAAC,QAAQ,CACpB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,8DAA8D,EAAE,CAAC,CAC7F;YACD,SAAS,EAAE,IAAI,CAAC,QAAQ,CACtB,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC,CACrF;SACF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,GAAW,EAAE,GAAY,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,GAA8B,CAAC;YACzC,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE,CAAC;YAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,WAAW,CAAC;YACxD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,WAAW,CAAC;YAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YAE5C,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrC,WAAW,GAAG,GAAG,KAAK,uBAAuB,CAAC,mBAAmB,CAAC;YACpE,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;gBACjC,YAAY,EAAE,WAAW;gBACzB,KAAK,EAAE,GAAG;gBACV,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC/B,MAAM;gBACN,SAAS,EAAE,YAAY;aACxB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,+DAA+D;QACjE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;SAC7E,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,GAAW,EAAE,GAAY,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,GAA8B,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE,CAAC;YAC/D,MAAM,MAAM,GAAG,yBAAyB,OAAO,MAAM,CAAC;YACtD,OAAO,MAAM,CAAC,EAAE,CAAC;gBACf,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,yBAAyB,OAAO,EAAE;aAC5C,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,uFAAuF;QACzF,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;YACtB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;SAC7E,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,GAAW,EAAE,GAAY,EAAE,EAAE;YAC3C,MAAM,CAAC,GAAG,GAA8B,CAAC;YACzC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAE,CAAC;YAC/D,MAAM,MAAM,GAAG,yBAAyB,OAAO,MAAM,CAAC;YAEtD,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAE5D,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBACd,OAAO,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,wDAAwD,CAAC,CAAC;gBAClG,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -34,4 +34,68 @@ export declare function createMedrxivSearchTool(): {
|
|
|
34
34
|
isError?: boolean;
|
|
35
35
|
}>;
|
|
36
36
|
};
|
|
37
|
+
export declare function createBiorxivDownloadTool(): {
|
|
38
|
+
label: string;
|
|
39
|
+
name: string;
|
|
40
|
+
description: string;
|
|
41
|
+
parameters: import("@sinclair/typebox").TObject<{
|
|
42
|
+
paper_id: import("@sinclair/typebox").TString;
|
|
43
|
+
}>;
|
|
44
|
+
execute: (_id: string, raw: unknown) => Promise<{
|
|
45
|
+
type: "tool_result";
|
|
46
|
+
content: {
|
|
47
|
+
type: "text";
|
|
48
|
+
text: string;
|
|
49
|
+
}[];
|
|
50
|
+
isError?: boolean;
|
|
51
|
+
}>;
|
|
52
|
+
};
|
|
53
|
+
export declare function createMedrxivDownloadTool(): {
|
|
54
|
+
label: string;
|
|
55
|
+
name: string;
|
|
56
|
+
description: string;
|
|
57
|
+
parameters: import("@sinclair/typebox").TObject<{
|
|
58
|
+
paper_id: import("@sinclair/typebox").TString;
|
|
59
|
+
}>;
|
|
60
|
+
execute: (_id: string, raw: unknown) => Promise<{
|
|
61
|
+
type: "tool_result";
|
|
62
|
+
content: {
|
|
63
|
+
type: "text";
|
|
64
|
+
text: string;
|
|
65
|
+
}[];
|
|
66
|
+
isError?: boolean;
|
|
67
|
+
}>;
|
|
68
|
+
};
|
|
69
|
+
export declare function createBiorxivReadTool(): {
|
|
70
|
+
label: string;
|
|
71
|
+
name: string;
|
|
72
|
+
description: string;
|
|
73
|
+
parameters: import("@sinclair/typebox").TObject<{
|
|
74
|
+
paper_id: import("@sinclair/typebox").TString;
|
|
75
|
+
}>;
|
|
76
|
+
execute: (_id: string, raw: unknown) => Promise<{
|
|
77
|
+
type: "tool_result";
|
|
78
|
+
content: {
|
|
79
|
+
type: "text";
|
|
80
|
+
text: string;
|
|
81
|
+
}[];
|
|
82
|
+
isError?: boolean;
|
|
83
|
+
}>;
|
|
84
|
+
};
|
|
85
|
+
export declare function createMedrxivReadTool(): {
|
|
86
|
+
label: string;
|
|
87
|
+
name: string;
|
|
88
|
+
description: string;
|
|
89
|
+
parameters: import("@sinclair/typebox").TObject<{
|
|
90
|
+
paper_id: import("@sinclair/typebox").TString;
|
|
91
|
+
}>;
|
|
92
|
+
execute: (_id: string, raw: unknown) => Promise<{
|
|
93
|
+
type: "tool_result";
|
|
94
|
+
content: {
|
|
95
|
+
type: "text";
|
|
96
|
+
text: string;
|
|
97
|
+
}[];
|
|
98
|
+
isError?: boolean;
|
|
99
|
+
}>;
|
|
100
|
+
};
|
|
37
101
|
//# sourceMappingURL=biorxiv.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"biorxiv.d.ts","sourceRoot":"","sources":["../../../src/tools/biorxiv.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"biorxiv.d.ts","sourceRoot":"","sources":["../../../src/tools/biorxiv.ts"],"names":[],"mappings":"AA4FA,wBAAgB,uBAAuB;;;;;;;;;mBAvCd,MAAM,OAAO,OAAO;;;;;;;;EAyC5C;AAED,wBAAgB,uBAAuB;;;;;;;;;mBA3Cd,MAAM,OAAO,OAAO;;;;;;;;EA6C5C;AAyDD,wBAAgB,yBAAyB;;;;;;;mBA1ChB,MAAM,OAAO,OAAO;;;;;;;;EA4C5C;AACD,wBAAgB,yBAAyB;;;;;;;mBA7ChB,MAAM,OAAO,OAAO;;;;;;;;EA+C5C;AACD,wBAAgB,qBAAqB;;;;;;;mBA1BZ,MAAM,OAAO,OAAO;;;;;;;;EA4B5C;AACD,wBAAgB,qBAAqB;;;;;;;mBA7BZ,MAAM,OAAO,OAAO;;;;;;;;EA+B5C"}
|