scientify 1.7.6 → 1.9.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 +12 -4
- package/dist/index.js.map +1 -1
- package/dist/src/hooks/research-mode.d.ts +2 -4
- package/dist/src/hooks/research-mode.d.ts.map +1 -1
- package/dist/src/hooks/research-mode.js +15 -12
- package/dist/src/hooks/research-mode.js.map +1 -1
- package/dist/src/hooks/scientify-signature.d.ts +21 -0
- package/dist/src/hooks/scientify-signature.d.ts.map +1 -0
- package/dist/src/hooks/scientify-signature.js +147 -0
- package/dist/src/hooks/scientify-signature.js.map +1 -0
- package/dist/src/tools/arxiv-search.d.ts.map +1 -1
- package/dist/src/tools/arxiv-search.js +4 -1
- package/dist/src/tools/arxiv-search.js.map +1 -1
- package/dist/src/tools/openalex-search.js +3 -3
- package/dist/src/tools/openalex-search.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AA4BlD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,iBAAiB,QAmGtD"}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import { createUnpaywallDownloadTool } from "./src/tools/unpaywall-download.js";
|
|
|
9
9
|
import { createAutoUpdaterService } from "./src/services/auto-updater.js";
|
|
10
10
|
import { createSkillInjectionHook } from "./src/hooks/inject-skill.js";
|
|
11
11
|
import { createResearchModeHook } from "./src/hooks/research-mode.js";
|
|
12
|
+
import { createScientifyMessageTrackerHook, createScientifySignaturePromptHook, createScientifyUsageCleanupHook, createScientifyUsageTrackerHook, } from "./src/hooks/scientify-signature.js";
|
|
12
13
|
// Default: check every hour
|
|
13
14
|
const UPDATE_CHECK_INTERVAL_MS = 60 * 60 * 1000;
|
|
14
15
|
export default function register(api) {
|
|
@@ -82,12 +83,19 @@ export default function register(api) {
|
|
|
82
83
|
// api.source = entry file path (e.g. dist/index.js); findPluginRoot() walks
|
|
83
84
|
// up to locate openclaw.plugin.json, which is always at the plugin root.
|
|
84
85
|
api.on("before_tool_call", createSkillInjectionHook(path.dirname(api.source)));
|
|
85
|
-
//
|
|
86
|
-
//
|
|
87
|
-
|
|
88
|
-
api.on("
|
|
86
|
+
// Track whether a session actually used Scientify skills/tools.
|
|
87
|
+
// The signature is prompt-driven (model-generated), not post-processed.
|
|
88
|
+
api.on("before_tool_call", createScientifyUsageTrackerHook());
|
|
89
|
+
api.on("message_received", createScientifyMessageTrackerHook());
|
|
90
|
+
api.on("session_end", createScientifyUsageCleanupHook());
|
|
91
|
+
// Inject prompts at agent start so they affect the current turn.
|
|
92
|
+
// OpenClaw runs this hook before model execution and merges prependContext.
|
|
93
|
+
api.on("before_agent_start", createResearchModeHook(), {
|
|
89
94
|
priority: 100, // High priority to inject early
|
|
90
95
|
});
|
|
96
|
+
api.on("before_agent_start", createScientifySignaturePromptHook(), {
|
|
97
|
+
priority: 90,
|
|
98
|
+
});
|
|
91
99
|
api.logger.info("Scientify plugin loaded (research mode: always active)");
|
|
92
100
|
}
|
|
93
101
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,10 +15,8 @@ type HookResult = {
|
|
|
15
15
|
systemPrompt?: string;
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
19
|
-
* Only injects on the first message of a session (messages array empty).
|
|
20
|
-
* Subsequent messages retain it via conversation history.
|
|
18
|
+
* Injects on every prompt build (survives compaction).
|
|
21
19
|
*/
|
|
22
|
-
export declare function createResearchModeHook(): (
|
|
20
|
+
export declare function createResearchModeHook(): (_event: HookEvent, _context: HookContext) => HookResult;
|
|
23
21
|
export {};
|
|
24
22
|
//# sourceMappingURL=research-mode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research-mode.d.ts","sourceRoot":"","sources":["../../../src/hooks/research-mode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"research-mode.d.ts","sourceRoot":"","sources":["../../../src/hooks/research-mode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAiBF;;GAEG;AACH,wBAAgB,sBAAsB,KAC5B,QAAQ,SAAS,EAAE,UAAU,WAAW,KAAG,UAAU,CAG9D"}
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Injected only on session first message; persists via message history.
|
|
4
|
-
* Complements <available_skills> XML (which already lists skill descriptions).
|
|
2
|
+
* Research mode prompt injected into every conversation.
|
|
5
3
|
*/
|
|
6
|
-
const RESEARCH_MODE_PROMPT = `[Scientify]
|
|
4
|
+
const RESEARCH_MODE_PROMPT = `[Scientify]
|
|
5
|
+
Skills: match research tasks to <available_skills>; read SKILL.md before acting.
|
|
6
|
+
Workspace: $W/projects/<topic>/. Check /research-status before writing. Active project in $W/projects/.active.
|
|
7
|
+
survey/ — search_terms.json, raw_results.json, filtered_papers.json, clusters.json, report.md (literature-survey)
|
|
8
|
+
papers/ — organized by cluster direction, each with paper_list.md + {arxiv_id}/ .tex sources (literature-survey)
|
|
9
|
+
notes/ — per-paper deep analysis paper_{id}.md (research-survey). survey_res.md = method comparison table.
|
|
10
|
+
ideas/ — gaps.md, idea_1..5.md, selected_idea.md, summary.md (idea-generation)
|
|
11
|
+
review/ — reading_plan.md, notes/{id}.md, comparison.md, taxonomy.md, draft.md, bibliography.bib (write-review-paper)
|
|
12
|
+
plan_res.md (research-plan) → project/ + ml_res.md (research-implement) → iterations/judge_v*.md (research-review) → experiment_res.md (research-experiment)
|
|
13
|
+
Rules: file exists = step done (skip). Outputs immutable unless user asks. project/ mutable during review loop.
|
|
14
|
+
Rigor: read first, think second, answer third. Never fabricate references or results. Every claim needs a source. Say "I don't know" when uncertain. Read actual papers, not just abstracts. Ground ideas in real papers.`;
|
|
7
15
|
/**
|
|
8
|
-
*
|
|
9
|
-
* Only injects on the first message of a session (messages array empty).
|
|
10
|
-
* Subsequent messages retain it via conversation history.
|
|
16
|
+
* Injects on every prompt build (survives compaction).
|
|
11
17
|
*/
|
|
12
18
|
export function createResearchModeHook() {
|
|
13
|
-
return (
|
|
14
|
-
|
|
15
|
-
return { prependContext: RESEARCH_MODE_PROMPT };
|
|
16
|
-
}
|
|
17
|
-
return {};
|
|
19
|
+
return (_event, _context) => {
|
|
20
|
+
return { prependContext: RESEARCH_MODE_PROMPT };
|
|
18
21
|
};
|
|
19
22
|
}
|
|
20
23
|
//# sourceMappingURL=research-mode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research-mode.js","sourceRoot":"","sources":["../../../src/hooks/research-mode.ts"],"names":[],"mappings":"AAmBA
|
|
1
|
+
{"version":3,"file":"research-mode.js","sourceRoot":"","sources":["../../../src/hooks/research-mode.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,oBAAoB,GAAG;;;;;;;;;;0NAU6L,CAAC;AAE3N;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,MAAiB,EAAE,QAAqB,EAAc,EAAE;QAC9D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
type BaseHookContext = {
|
|
2
|
+
sessionKey?: string;
|
|
3
|
+
agentId?: string;
|
|
4
|
+
};
|
|
5
|
+
type BeforeToolCallEvent = {
|
|
6
|
+
toolName: string;
|
|
7
|
+
params?: Record<string, unknown>;
|
|
8
|
+
};
|
|
9
|
+
type BeforePromptBuildEvent = {
|
|
10
|
+
prompt?: string;
|
|
11
|
+
messages?: unknown[];
|
|
12
|
+
};
|
|
13
|
+
type PromptHookResult = {
|
|
14
|
+
prependContext?: string;
|
|
15
|
+
};
|
|
16
|
+
export declare function createScientifyUsageTrackerHook(): (event: BeforeToolCallEvent, context: BaseHookContext) => void;
|
|
17
|
+
export declare function createScientifyMessageTrackerHook(): (event: unknown, context: BaseHookContext) => void;
|
|
18
|
+
export declare function createScientifySignaturePromptHook(): (event: BeforePromptBuildEvent, context: BaseHookContext) => PromptHookResult | void;
|
|
19
|
+
export declare function createScientifyUsageCleanupHook(): (event: unknown, context: BaseHookContext) => void;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=scientify-signature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scientify-signature.d.ts","sourceRoot":"","sources":["../../../src/hooks/scientify-signature.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;CACtB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AA6FF,wBAAgB,+BAA+B,KACrC,OAAO,mBAAmB,EAAE,SAAS,eAAe,KAAG,IAAI,CAKpE;AAED,wBAAgB,iCAAiC,KACvC,OAAO,OAAO,EAAE,SAAS,eAAe,KAAG,IAAI,CAmBxD;AAED,wBAAgB,kCAAkC,KACxC,OAAO,sBAAsB,EAAE,SAAS,eAAe,KAAG,gBAAgB,GAAG,IAAI,CAoB1F;AAED,wBAAgB,+BAA+B,KACrC,OAAO,OAAO,EAAE,SAAS,eAAe,KAAG,IAAI,CAKxD"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
const SCIENTIFY_TOOLS = new Set([
|
|
2
|
+
"arxiv_search",
|
|
3
|
+
"arxiv_download",
|
|
4
|
+
"github_search",
|
|
5
|
+
"paper_browser",
|
|
6
|
+
"openalex_search",
|
|
7
|
+
"unpaywall_download",
|
|
8
|
+
]);
|
|
9
|
+
const SCIENTIFY_SKILLS = new Set([
|
|
10
|
+
"idea-generation",
|
|
11
|
+
"research-pipeline",
|
|
12
|
+
"research-survey",
|
|
13
|
+
"research-plan",
|
|
14
|
+
"research-implement",
|
|
15
|
+
"research-review",
|
|
16
|
+
"research-experiment",
|
|
17
|
+
"literature-survey",
|
|
18
|
+
"write-review-paper",
|
|
19
|
+
]);
|
|
20
|
+
const SCIENTIFY_SKILL_COMMAND_RE = /(?:^|\s)\/(idea-generation|research-pipeline|research-survey|research-plan|research-implement|research-review|research-experiment|literature-survey|write-review-paper)(?:\s|$)/i;
|
|
21
|
+
const SIGNATURE_PROMPT = `[Scientify Signature]
|
|
22
|
+
If this response is based on Scientify workflow execution (Scientify skills/tools), append this exact footer at the end of your reply:
|
|
23
|
+
---
|
|
24
|
+
🐍Scientify
|
|
25
|
+
Do not add any text after the footer.`;
|
|
26
|
+
// Track sessions that actually used Scientify workflow elements.
|
|
27
|
+
const scientifyActiveSessions = new Set();
|
|
28
|
+
function getTrackingKey(event, context) {
|
|
29
|
+
if (context.sessionKey)
|
|
30
|
+
return context.sessionKey;
|
|
31
|
+
if (context.agentId)
|
|
32
|
+
return context.agentId;
|
|
33
|
+
if (event && typeof event === "object") {
|
|
34
|
+
const record = event;
|
|
35
|
+
if (typeof record.sessionKey === "string")
|
|
36
|
+
return record.sessionKey;
|
|
37
|
+
if (typeof record.agentId === "string")
|
|
38
|
+
return record.agentId;
|
|
39
|
+
}
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
function readSkillFromTask(task) {
|
|
43
|
+
if (typeof task !== "string")
|
|
44
|
+
return undefined;
|
|
45
|
+
const match = task.match(/^\/([a-z][\w-]*)/);
|
|
46
|
+
return match?.[1];
|
|
47
|
+
}
|
|
48
|
+
function extractText(value) {
|
|
49
|
+
if (typeof value === "string")
|
|
50
|
+
return value;
|
|
51
|
+
if (Array.isArray(value)) {
|
|
52
|
+
return value
|
|
53
|
+
.map((item) => extractText(item))
|
|
54
|
+
.filter((part) => part.length > 0)
|
|
55
|
+
.join("\n");
|
|
56
|
+
}
|
|
57
|
+
if (value && typeof value === "object") {
|
|
58
|
+
const record = value;
|
|
59
|
+
if (typeof record.text === "string")
|
|
60
|
+
return record.text;
|
|
61
|
+
if (typeof record.content === "string")
|
|
62
|
+
return record.content;
|
|
63
|
+
}
|
|
64
|
+
return "";
|
|
65
|
+
}
|
|
66
|
+
function extractLastUserMessageText(messages) {
|
|
67
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
68
|
+
const item = messages[i];
|
|
69
|
+
if (!item || typeof item !== "object")
|
|
70
|
+
continue;
|
|
71
|
+
const record = item;
|
|
72
|
+
const role = typeof record.role === "string" ? record.role.toLowerCase() : "";
|
|
73
|
+
if (role !== "user")
|
|
74
|
+
continue;
|
|
75
|
+
return extractText(record.content);
|
|
76
|
+
}
|
|
77
|
+
return "";
|
|
78
|
+
}
|
|
79
|
+
function markScientifyUsageFromToolCall(event, trackingKey) {
|
|
80
|
+
if (SCIENTIFY_TOOLS.has(event.toolName)) {
|
|
81
|
+
scientifyActiveSessions.add(trackingKey);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (event.toolName !== "sessions_spawn")
|
|
85
|
+
return;
|
|
86
|
+
const skill = readSkillFromTask(event.params?.task);
|
|
87
|
+
if (skill && SCIENTIFY_SKILLS.has(skill)) {
|
|
88
|
+
scientifyActiveSessions.add(trackingKey);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export function createScientifyUsageTrackerHook() {
|
|
92
|
+
return (event, context) => {
|
|
93
|
+
const trackingKey = getTrackingKey(event, context);
|
|
94
|
+
if (!trackingKey)
|
|
95
|
+
return;
|
|
96
|
+
markScientifyUsageFromToolCall(event, trackingKey);
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export function createScientifyMessageTrackerHook() {
|
|
100
|
+
return (event, context) => {
|
|
101
|
+
const trackingKey = getTrackingKey(event, context);
|
|
102
|
+
if (!trackingKey)
|
|
103
|
+
return;
|
|
104
|
+
if (!event || typeof event !== "object")
|
|
105
|
+
return;
|
|
106
|
+
const record = event;
|
|
107
|
+
const text = [
|
|
108
|
+
extractText(record.text),
|
|
109
|
+
extractText(record.content),
|
|
110
|
+
extractText(record.commandBody),
|
|
111
|
+
extractText(record.message),
|
|
112
|
+
]
|
|
113
|
+
.filter((part) => part.length > 0)
|
|
114
|
+
.join("\n");
|
|
115
|
+
if (SCIENTIFY_SKILL_COMMAND_RE.test(text)) {
|
|
116
|
+
scientifyActiveSessions.add(trackingKey);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export function createScientifySignaturePromptHook() {
|
|
121
|
+
return (event, context) => {
|
|
122
|
+
const trackingKey = getTrackingKey(event, context);
|
|
123
|
+
if (trackingKey && scientifyActiveSessions.has(trackingKey)) {
|
|
124
|
+
return { prependContext: SIGNATURE_PROMPT };
|
|
125
|
+
}
|
|
126
|
+
// Heuristic fallback: user explicitly invoked a Scientify skill command.
|
|
127
|
+
const promptText = typeof event.prompt === "string" ? event.prompt : "";
|
|
128
|
+
const lastUserText = Array.isArray(event.messages) ? extractLastUserMessageText(event.messages) : "";
|
|
129
|
+
const combined = `${promptText}\n${lastUserText}`;
|
|
130
|
+
if (SCIENTIFY_SKILL_COMMAND_RE.test(combined)) {
|
|
131
|
+
if (trackingKey) {
|
|
132
|
+
scientifyActiveSessions.add(trackingKey);
|
|
133
|
+
}
|
|
134
|
+
return { prependContext: SIGNATURE_PROMPT };
|
|
135
|
+
}
|
|
136
|
+
return;
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
export function createScientifyUsageCleanupHook() {
|
|
140
|
+
return (event, context) => {
|
|
141
|
+
const trackingKey = getTrackingKey(event, context);
|
|
142
|
+
if (!trackingKey)
|
|
143
|
+
return;
|
|
144
|
+
scientifyActiveSessions.delete(trackingKey);
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=scientify-signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scientify-signature.js","sourceRoot":"","sources":["../../../src/hooks/scientify-signature.ts"],"names":[],"mappings":"AAmBA,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,eAAe;IACf,oBAAoB;IACpB,iBAAiB;IACjB,qBAAqB;IACrB,mBAAmB;IACnB,oBAAoB;CACrB,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAC9B,kLAAkL,CAAC;AAErL,MAAM,gBAAgB,GAAG;;;;sCAIa,CAAC;AAEvC,iEAAiE;AACjE,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;AAElD,SAAS,cAAc,CAAC,KAAc,EAAE,OAAwB;IAC9D,IAAI,OAAO,CAAC,UAAU;QAAE,OAAO,OAAO,CAAC,UAAU,CAAC;IAClD,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAC5C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,UAAU,CAAC;QACpE,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAChE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAa;IACtC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC7C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;QACxD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC;IAChE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAmB;IACrD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QAChD,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,IAAI,IAAI,KAAK,MAAM;YAAE,SAAS;QAC9B,OAAO,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,8BAA8B,CAAC,KAA0B,EAAE,WAAmB;IACrF,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,KAAK,gBAAgB;QAAE,OAAO;IAChD,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpD,IAAI,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO,CAAC,KAA0B,EAAE,OAAwB,EAAQ,EAAE;QACpE,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,8BAA8B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC;IAC/C,OAAO,CAAC,KAAc,EAAE,OAAwB,EAAQ,EAAE;QACxD,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;QAChD,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,IAAI,GAAG;YACX,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;YACxB,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;YAC/B,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;SAC5B;aACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,IAAI,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC;IAChD,OAAO,CAAC,KAA6B,EAAE,OAAwB,EAA2B,EAAE;QAC1F,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEnD,IAAI,WAAW,IAAI,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;QAC9C,CAAC;QAED,yEAAyE;QACzE,MAAM,UAAU,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,MAAM,QAAQ,GAAG,GAAG,UAAU,KAAK,YAAY,EAAE,CAAC;QAClD,IAAI,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,IAAI,WAAW,EAAE,CAAC;gBAChB,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;QAC9C,CAAC;QAED,OAAO;IACT,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO,CAAC,KAAc,EAAE,OAAwB,EAAQ,EAAE;QACxD,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,uBAAuB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arxiv-search.d.ts","sourceRoot":"","sources":["../../../src/tools/arxiv-search.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"arxiv-search.d.ts","sourceRoot":"","sources":["../../../src/tools/arxiv-search.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,iBAAiB;;;;;EAmB5B,CAAC;AAkGH;;GAEG;AACH,wBAAgB,qBAAqB;;;;;;;;;;2BAMJ,MAAM,WAAW,OAAO;;;;;;;;EA4CxD"}
|
|
@@ -3,6 +3,7 @@ import { Result } from "./result.js";
|
|
|
3
3
|
const ARXIV_API_URL = "https://export.arxiv.org/api/query";
|
|
4
4
|
const DEFAULT_MAX_RESULTS = 10;
|
|
5
5
|
const MAX_RESULTS_LIMIT = 50;
|
|
6
|
+
const ABSTRACT_MAX_CHARS = 300;
|
|
6
7
|
export const ArxivSearchSchema = Type.Object({
|
|
7
8
|
query: Type.String({ description: "Search query for arXiv papers (e.g. 'graph neural network')." }),
|
|
8
9
|
max_results: Type.Optional(Type.Number({
|
|
@@ -127,7 +128,9 @@ export function createArxivSearchTool() {
|
|
|
127
128
|
papers: papers.map((p) => ({
|
|
128
129
|
title: p.title,
|
|
129
130
|
authors: p.authors,
|
|
130
|
-
abstract: p.abstract
|
|
131
|
+
abstract: p.abstract.length > ABSTRACT_MAX_CHARS
|
|
132
|
+
? p.abstract.slice(0, ABSTRACT_MAX_CHARS) + "…"
|
|
133
|
+
: p.abstract,
|
|
131
134
|
arxiv_id: p.arxivId,
|
|
132
135
|
pdf_url: p.pdfUrl,
|
|
133
136
|
published: p.published,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arxiv-search.js","sourceRoot":"","sources":["../../../src/tools/arxiv-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAC3D,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,iBAAiB,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"arxiv-search.js","sourceRoot":"","sources":["../../../src/tools/arxiv-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
2
|
import { Result } from "./result.js";
|
|
3
3
|
const OPENALEX_API = "https://api.openalex.org/works";
|
|
4
|
-
const DEFAULT_MAX_RESULTS =
|
|
5
|
-
const MAX_RESULTS_LIMIT =
|
|
4
|
+
const DEFAULT_MAX_RESULTS = 15;
|
|
5
|
+
const MAX_RESULTS_LIMIT = 50;
|
|
6
6
|
export const OpenAlexSearchToolSchema = Type.Object({
|
|
7
7
|
query: Type.String({
|
|
8
8
|
description: "Search query for academic works (papers, articles). Can search by title, abstract, author, or keywords.",
|
|
9
9
|
}),
|
|
10
10
|
max_results: Type.Optional(Type.Number({
|
|
11
|
-
description: "Maximum number of results (1-
|
|
11
|
+
description: "Maximum number of results (1-50). Default: 15.",
|
|
12
12
|
minimum: 1,
|
|
13
13
|
maximum: MAX_RESULTS_LIMIT,
|
|
14
14
|
})),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openalex-search.js","sourceRoot":"","sources":["../../../src/tools/openalex-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,YAAY,GAAG,gCAAgC,CAAC;AACtD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,iBAAiB,GAAG,
|
|
1
|
+
{"version":3,"file":"openalex-search.js","sourceRoot":"","sources":["../../../src/tools/openalex-search.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "scientify",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "Scientify - AI-powered research workflow automation for OpenClaw. Includes idea generation, literature review, research pipeline skills, and arxiv tool.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|