scientify 2.0.0 → 3.0.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/README.en.md +21 -0
- package/README.md +21 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -76
- package/dist/index.js.map +1 -1
- package/dist/src/cli/research.d.ts.map +1 -1
- package/dist/src/cli/research.js +6 -23
- package/dist/src/cli/research.js.map +1 -1
- package/dist/src/commands/metabolism-status.d.ts.map +1 -1
- package/dist/src/commands/metabolism-status.js +5 -25
- package/dist/src/commands/metabolism-status.js.map +1 -1
- package/dist/src/commands.d.ts +8 -8
- package/dist/src/commands.d.ts.map +1 -1
- package/dist/src/commands.js +91 -262
- package/dist/src/commands.js.map +1 -1
- package/dist/src/templates/bootstrap.d.ts.map +1 -1
- package/dist/src/templates/bootstrap.js +45 -59
- package/dist/src/templates/bootstrap.js.map +1 -1
- package/dist/src/types.d.ts +2 -10
- package/dist/src/types.d.ts.map +1 -1
- package/openclaw.plugin.json +3 -16
- package/package.json +2 -3
- package/skills/idea-generation/SKILL.md +20 -44
- package/skills/idea-generation/references/code-mapping.md +3 -3
- package/skills/idea-generation/references/idea-template.md +1 -1
- package/skills/idea-generation/references/reading-long-papers.md +3 -3
- package/skills/metabolism/SKILL.md +80 -36
- package/skills/paper-download/SKILL.md +61 -0
- package/skills/research-collect/SKILL.md +41 -111
- package/skills/research-experiment/SKILL.md +11 -12
- package/skills/research-implement/SKILL.md +10 -11
- package/skills/research-pipeline/SKILL.md +23 -31
- package/skills/research-plan/SKILL.md +7 -11
- package/skills/research-review/SKILL.md +21 -22
- package/skills/research-survey/SKILL.md +11 -25
- package/skills/write-review-paper/SKILL.md +12 -12
- package/skills/write-review-paper/references/note-template.md +1 -1
- package/skills/write-review-paper/references/survey-template.md +1 -1
- package/dist/src/hooks/research-mode.d.ts +0 -22
- package/dist/src/hooks/research-mode.d.ts.map +0 -1
- package/dist/src/hooks/research-mode.js +0 -35
- package/dist/src/hooks/research-mode.js.map +0 -1
- package/dist/src/hooks/scientify-cron-autofill.d.ts +0 -15
- package/dist/src/hooks/scientify-cron-autofill.d.ts.map +0 -1
- package/dist/src/hooks/scientify-cron-autofill.js +0 -156
- package/dist/src/hooks/scientify-cron-autofill.js.map +0 -1
- package/dist/src/hooks/scientify-signature.d.ts +0 -21
- package/dist/src/hooks/scientify-signature.d.ts.map +0 -1
- package/dist/src/hooks/scientify-signature.js +0 -150
- package/dist/src/hooks/scientify-signature.js.map +0 -1
- package/dist/src/knowledge-state/project.d.ts +0 -13
- package/dist/src/knowledge-state/project.d.ts.map +0 -1
- package/dist/src/knowledge-state/project.js +0 -88
- package/dist/src/knowledge-state/project.js.map +0 -1
- package/dist/src/knowledge-state/render.d.ts +0 -63
- package/dist/src/knowledge-state/render.d.ts.map +0 -1
- package/dist/src/knowledge-state/render.js +0 -368
- package/dist/src/knowledge-state/render.js.map +0 -1
- package/dist/src/knowledge-state/store.d.ts +0 -19
- package/dist/src/knowledge-state/store.d.ts.map +0 -1
- package/dist/src/knowledge-state/store.js +0 -978
- package/dist/src/knowledge-state/store.js.map +0 -1
- package/dist/src/knowledge-state/types.d.ts +0 -182
- package/dist/src/knowledge-state/types.d.ts.map +0 -1
- package/dist/src/knowledge-state/types.js +0 -2
- package/dist/src/knowledge-state/types.js.map +0 -1
- package/dist/src/literature/subscription-state.d.ts +0 -112
- package/dist/src/literature/subscription-state.d.ts.map +0 -1
- package/dist/src/literature/subscription-state.js +0 -696
- package/dist/src/literature/subscription-state.js.map +0 -1
- package/dist/src/research-subscriptions/constants.d.ts +0 -16
- package/dist/src/research-subscriptions/constants.d.ts.map +0 -1
- package/dist/src/research-subscriptions/constants.js +0 -59
- package/dist/src/research-subscriptions/constants.js.map +0 -1
- package/dist/src/research-subscriptions/cron-client.d.ts +0 -8
- package/dist/src/research-subscriptions/cron-client.d.ts.map +0 -1
- package/dist/src/research-subscriptions/cron-client.js +0 -81
- package/dist/src/research-subscriptions/cron-client.js.map +0 -1
- package/dist/src/research-subscriptions/delivery.d.ts +0 -10
- package/dist/src/research-subscriptions/delivery.d.ts.map +0 -1
- package/dist/src/research-subscriptions/delivery.js +0 -82
- package/dist/src/research-subscriptions/delivery.js.map +0 -1
- package/dist/src/research-subscriptions/handlers.d.ts +0 -6
- package/dist/src/research-subscriptions/handlers.d.ts.map +0 -1
- package/dist/src/research-subscriptions/handlers.js +0 -204
- package/dist/src/research-subscriptions/handlers.js.map +0 -1
- package/dist/src/research-subscriptions/parse.d.ts +0 -11
- package/dist/src/research-subscriptions/parse.d.ts.map +0 -1
- package/dist/src/research-subscriptions/parse.js +0 -492
- package/dist/src/research-subscriptions/parse.js.map +0 -1
- package/dist/src/research-subscriptions/prompt.d.ts +0 -5
- package/dist/src/research-subscriptions/prompt.d.ts.map +0 -1
- package/dist/src/research-subscriptions/prompt.js +0 -347
- package/dist/src/research-subscriptions/prompt.js.map +0 -1
- package/dist/src/research-subscriptions/types.d.ts +0 -66
- package/dist/src/research-subscriptions/types.d.ts.map +0 -1
- package/dist/src/research-subscriptions/types.js +0 -2
- package/dist/src/research-subscriptions/types.js.map +0 -1
- package/dist/src/research-subscriptions.d.ts +0 -2
- package/dist/src/research-subscriptions.d.ts.map +0 -1
- package/dist/src/research-subscriptions.js +0 -2
- package/dist/src/research-subscriptions.js.map +0 -1
- package/dist/src/services/auto-updater.d.ts +0 -15
- package/dist/src/services/auto-updater.d.ts.map +0 -1
- package/dist/src/services/auto-updater.js +0 -188
- package/dist/src/services/auto-updater.js.map +0 -1
- package/dist/src/tools/arxiv-download.d.ts +0 -24
- package/dist/src/tools/arxiv-download.d.ts.map +0 -1
- package/dist/src/tools/arxiv-download.js +0 -177
- package/dist/src/tools/arxiv-download.js.map +0 -1
- package/dist/src/tools/github-search-tool.d.ts +0 -25
- package/dist/src/tools/github-search-tool.d.ts.map +0 -1
- package/dist/src/tools/github-search-tool.js +0 -114
- package/dist/src/tools/github-search-tool.js.map +0 -1
- package/dist/src/tools/openreview-lookup.d.ts +0 -31
- package/dist/src/tools/openreview-lookup.d.ts.map +0 -1
- package/dist/src/tools/openreview-lookup.js +0 -414
- package/dist/src/tools/openreview-lookup.js.map +0 -1
- package/dist/src/tools/paper-browser.d.ts +0 -23
- package/dist/src/tools/paper-browser.d.ts.map +0 -1
- package/dist/src/tools/paper-browser.js +0 -121
- package/dist/src/tools/paper-browser.js.map +0 -1
- package/dist/src/tools/scientify-cron.d.ts +0 -63
- package/dist/src/tools/scientify-cron.d.ts.map +0 -1
- package/dist/src/tools/scientify-cron.js +0 -265
- package/dist/src/tools/scientify-cron.js.map +0 -1
- package/dist/src/tools/scientify-literature-state.d.ts +0 -303
- package/dist/src/tools/scientify-literature-state.d.ts.map +0 -1
- package/dist/src/tools/scientify-literature-state.js +0 -957
- package/dist/src/tools/scientify-literature-state.js.map +0 -1
- package/dist/src/tools/unpaywall-download.d.ts +0 -21
- package/dist/src/tools/unpaywall-download.d.ts.map +0 -1
- package/dist/src/tools/unpaywall-download.js +0 -169
- package/dist/src/tools/unpaywall-download.js.map +0 -1
- package/dist/src/tools/workspace.d.ts +0 -32
- package/dist/src/tools/workspace.d.ts.map +0 -1
- package/dist/src/tools/workspace.js +0 -69
- package/dist/src/tools/workspace.js.map +0 -1
- package/skills/metabolism-init/SKILL.md +0 -80
- package/skills/research-subscription/SKILL.md +0 -119
|
@@ -1,347 +0,0 @@
|
|
|
1
|
-
import { DEFAULT_SCORE_WEIGHTS, REMINDER_HINT_RE, RESEARCH_HINT_RE, SCIENTIFY_SIGNATURE_FOOTER, } from "./constants.js";
|
|
2
|
-
import { formatScoreWeights, resolveCandidatePool } from "./parse.js";
|
|
3
|
-
const RESEARCH_WORKFLOW_VERB_RE = /\b(search|survey|analy[sz]e|filter|track|monitor|update|summari[sz]e|report|plan)\b|检索|调研|筛选|跟踪|追踪|更新|总结|汇报|规划/u;
|
|
4
|
-
function normalizeReminderText(raw) {
|
|
5
|
-
let text = raw.trim();
|
|
6
|
-
text = text.replace(/^(please\s+)?remind\s+(me|us|you)\s+(to\s+)?/i, "");
|
|
7
|
-
text = text.replace(/^remember\s+to\s+/i, "");
|
|
8
|
-
text = text.replace(/^(请)?(提醒我|提醒你|提醒|记得)(一下|一声)?[::,\s]*/u, "");
|
|
9
|
-
const normalized = text.trim();
|
|
10
|
-
return normalized.length > 0 ? normalized : raw.trim();
|
|
11
|
-
}
|
|
12
|
-
function inferReminderMessageFromTopic(topic) {
|
|
13
|
-
const trimmed = topic?.trim();
|
|
14
|
-
if (!trimmed)
|
|
15
|
-
return undefined;
|
|
16
|
-
if (!REMINDER_HINT_RE.test(trimmed))
|
|
17
|
-
return undefined;
|
|
18
|
-
if (RESEARCH_HINT_RE.test(trimmed))
|
|
19
|
-
return undefined;
|
|
20
|
-
return normalizeReminderText(trimmed);
|
|
21
|
-
}
|
|
22
|
-
function shouldPromoteMessageToResearchTopic(message) {
|
|
23
|
-
const trimmed = message.trim();
|
|
24
|
-
if (!trimmed)
|
|
25
|
-
return false;
|
|
26
|
-
if (!RESEARCH_HINT_RE.test(trimmed))
|
|
27
|
-
return false;
|
|
28
|
-
if (RESEARCH_WORKFLOW_VERB_RE.test(trimmed))
|
|
29
|
-
return true;
|
|
30
|
-
return trimmed.length >= 24;
|
|
31
|
-
}
|
|
32
|
-
function deriveResearchTopicFromMessage(message) {
|
|
33
|
-
let text = message.trim();
|
|
34
|
-
text = text.replace(/^scheduled reminder task\.?\s*/i, "");
|
|
35
|
-
text = text.replace(/^please send this reminder now:\s*/i, "");
|
|
36
|
-
text = text.replace(/^["']|["']$/g, "");
|
|
37
|
-
text = text.replace(/^这是一个.{0,24}提醒[::,,\s]*/u, "");
|
|
38
|
-
text = text.replace(/^这是一条.{0,24}提醒[::,,\s]*/u, "");
|
|
39
|
-
text = text.replace(/^提醒(?:我|你)?(?:一下|一声)?[::,,\s]*/u, "");
|
|
40
|
-
text = text.replace(/^请(?:你)?(?:检查|查看|关注)\s*/u, "");
|
|
41
|
-
text = text.replace(/[。.!]+$/u, "");
|
|
42
|
-
const normalized = text.trim();
|
|
43
|
-
return normalized.length > 0 ? normalized : message.trim();
|
|
44
|
-
}
|
|
45
|
-
function buildPreferencePayload(options) {
|
|
46
|
-
const maxPapers = options.maxPapers ?? 5;
|
|
47
|
-
const normalizedSources = options.sources?.map((item) => item.trim().toLowerCase()).filter(Boolean);
|
|
48
|
-
return {
|
|
49
|
-
max_papers: Math.max(1, Math.min(20, Math.floor(maxPapers))),
|
|
50
|
-
...(options.recencyDays ? { recency_days: options.recencyDays } : {}),
|
|
51
|
-
...(normalizedSources && normalizedSources.length > 0 ? { sources: [...new Set(normalizedSources)] } : {}),
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
export function buildScheduledTaskMessage(options, scheduleKind, scopeKey) {
|
|
55
|
-
const customMessage = options.message?.trim();
|
|
56
|
-
const promotedTopic = !options.topic && customMessage && shouldPromoteMessageToResearchTopic(customMessage)
|
|
57
|
-
? deriveResearchTopicFromMessage(customMessage)
|
|
58
|
-
: undefined;
|
|
59
|
-
if (customMessage && !promotedTopic) {
|
|
60
|
-
return [
|
|
61
|
-
"Scheduled reminder task.",
|
|
62
|
-
`Please send this reminder now: \"${customMessage}\"`,
|
|
63
|
-
"Keep the reminder concise and do not run a research workflow unless explicitly requested.",
|
|
64
|
-
].join("\n");
|
|
65
|
-
}
|
|
66
|
-
const reminderFromTopic = inferReminderMessageFromTopic(options.topic);
|
|
67
|
-
if (reminderFromTopic) {
|
|
68
|
-
return [
|
|
69
|
-
"Scheduled reminder task.",
|
|
70
|
-
`Please send this reminder now: \"${reminderFromTopic}\"`,
|
|
71
|
-
"Keep the reminder concise and do not run a research workflow unless explicitly requested.",
|
|
72
|
-
].join("\n");
|
|
73
|
-
}
|
|
74
|
-
const trimmedTopic = (options.topic ?? promotedTopic)?.trim();
|
|
75
|
-
const effectiveTopic = trimmedTopic || "active project research updates";
|
|
76
|
-
const preferences = buildPreferencePayload(options);
|
|
77
|
-
const projectId = options.projectId?.trim();
|
|
78
|
-
const candidatePool = resolveCandidatePool(options.candidatePool, preferences.max_papers);
|
|
79
|
-
const scoreWeights = options.scoreWeights ?? DEFAULT_SCORE_WEIGHTS;
|
|
80
|
-
const scoreWeightsText = formatScoreWeights(scoreWeights);
|
|
81
|
-
const preparePayload = JSON.stringify({
|
|
82
|
-
action: "prepare",
|
|
83
|
-
scope: scopeKey,
|
|
84
|
-
topic: effectiveTopic,
|
|
85
|
-
...(projectId ? { project_id: projectId } : {}),
|
|
86
|
-
preferences,
|
|
87
|
-
});
|
|
88
|
-
const recordPaperTemplate = [
|
|
89
|
-
{
|
|
90
|
-
id: "arxiv:2501.12345",
|
|
91
|
-
title: "Paper title",
|
|
92
|
-
url: "https://arxiv.org/abs/2501.12345",
|
|
93
|
-
score: 92,
|
|
94
|
-
reason: "High topical relevance and strong authority.",
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
id: "doi:10.1000/xyz123",
|
|
98
|
-
title: "Paper title 2",
|
|
99
|
-
url: "https://doi.org/10.1000/xyz123",
|
|
100
|
-
score: 88,
|
|
101
|
-
reason: "Novel method with clear practical impact.",
|
|
102
|
-
},
|
|
103
|
-
];
|
|
104
|
-
const knowledgeStateTemplate = {
|
|
105
|
-
core_papers: [
|
|
106
|
-
{
|
|
107
|
-
id: "arxiv:2501.12345",
|
|
108
|
-
title: "Paper title",
|
|
109
|
-
url: "https://arxiv.org/abs/2501.12345",
|
|
110
|
-
source: "arxiv",
|
|
111
|
-
score: 92,
|
|
112
|
-
reason: "High topical relevance and strong authority.",
|
|
113
|
-
summary: "One-line core takeaway.",
|
|
114
|
-
evidence_ids: ["arxiv:2501.12345"],
|
|
115
|
-
full_text_read: true,
|
|
116
|
-
read_status: "fulltext",
|
|
117
|
-
full_text_source: "arxiv_pdf",
|
|
118
|
-
full_text_ref: "https://arxiv.org/pdf/2501.12345.pdf",
|
|
119
|
-
domain: "machine learning",
|
|
120
|
-
subdomains: ["parameter-efficient fine-tuning", "large language models"],
|
|
121
|
-
cross_domain_links: ["systems optimization"],
|
|
122
|
-
research_goal: "Improve adaptation quality while keeping trainable parameters very small.",
|
|
123
|
-
approach: "Introduce low-rank adapters and train only adapter matrices.",
|
|
124
|
-
methodology_design: "Compare with full fine-tuning across multiple model scales/tasks.",
|
|
125
|
-
key_contributions: ["Low-rank adaptation module design", "Parameter/memory efficiency evidence"],
|
|
126
|
-
practical_insights: ["Rank choice strongly affects stability and quality tradeoff"],
|
|
127
|
-
must_understand_points: ["Why low-rank decomposition works in adaptation layers"],
|
|
128
|
-
limitations: ["Task-specific rank sensitivity"],
|
|
129
|
-
key_evidence_spans: ["Eq.(3) shows ...", "Section 4 reports ..."],
|
|
130
|
-
evidence_anchors: [
|
|
131
|
-
{
|
|
132
|
-
section: "Method",
|
|
133
|
-
locator: "Eq.(3)",
|
|
134
|
-
claim: "Low-rank decomposition reduces trainable parameters drastically.",
|
|
135
|
-
quote: "W = W0 + BA where rank(B,A) << d",
|
|
136
|
-
},
|
|
137
|
-
],
|
|
138
|
-
},
|
|
139
|
-
],
|
|
140
|
-
exploration_papers: [
|
|
141
|
-
{
|
|
142
|
-
id: "doi:10.1000/xyz123",
|
|
143
|
-
title: "Paper title 2",
|
|
144
|
-
url: "https://doi.org/10.1000/xyz123",
|
|
145
|
-
source: "openalex",
|
|
146
|
-
score: 88,
|
|
147
|
-
reason: "Novel method with clear practical impact.",
|
|
148
|
-
full_text_read: false,
|
|
149
|
-
read_status: "metadata",
|
|
150
|
-
unread_reason: "Full text not accessible in this run.",
|
|
151
|
-
},
|
|
152
|
-
],
|
|
153
|
-
exploration_trace: [
|
|
154
|
-
{
|
|
155
|
-
query: "P2D battery model physics-informed agent",
|
|
156
|
-
source: "arxiv",
|
|
157
|
-
candidates: 20,
|
|
158
|
-
filtered_to: 3,
|
|
159
|
-
filtered_out_reasons: ["off-topic", "weak authority"],
|
|
160
|
-
result_count: 3,
|
|
161
|
-
},
|
|
162
|
-
],
|
|
163
|
-
knowledge_changes: [
|
|
164
|
-
{
|
|
165
|
-
type: "NEW",
|
|
166
|
-
statement: "New method/insight discovered in this run.",
|
|
167
|
-
evidence_ids: ["arxiv:2501.12345"],
|
|
168
|
-
topic: "example-topic",
|
|
169
|
-
},
|
|
170
|
-
],
|
|
171
|
-
knowledge_updates: [
|
|
172
|
-
{
|
|
173
|
-
topic: "example-topic",
|
|
174
|
-
op: "append",
|
|
175
|
-
content: "Update knowledge base with this run's key finding.",
|
|
176
|
-
confidence: "medium",
|
|
177
|
-
evidence_ids: ["arxiv:2501.12345"],
|
|
178
|
-
},
|
|
179
|
-
],
|
|
180
|
-
hypotheses: [
|
|
181
|
-
{
|
|
182
|
-
statement: "Potential hypothesis triggered by current changes.",
|
|
183
|
-
trigger: "TREND",
|
|
184
|
-
dependency_path: ["Prior unresolved question", "New supporting evidence"],
|
|
185
|
-
novelty: 3.5,
|
|
186
|
-
feasibility: 3.2,
|
|
187
|
-
impact: 4.1,
|
|
188
|
-
evidence_ids: ["arxiv:2501.12345"],
|
|
189
|
-
validation_status: "unchecked",
|
|
190
|
-
validation_notes: "Optional: run openreview_lookup or additional search before promotion.",
|
|
191
|
-
validation_evidence: [],
|
|
192
|
-
},
|
|
193
|
-
],
|
|
194
|
-
run_log: {
|
|
195
|
-
model: "model-name",
|
|
196
|
-
duration_ms: 1200,
|
|
197
|
-
temp_full_text_dir: "/tmp/scientify-fulltext/run-123",
|
|
198
|
-
temp_files_downloaded: 3,
|
|
199
|
-
temp_cleanup_status: "done",
|
|
200
|
-
full_text_attempted: 3,
|
|
201
|
-
full_text_completed: 2,
|
|
202
|
-
notes: "short run note",
|
|
203
|
-
},
|
|
204
|
-
};
|
|
205
|
-
const recordTemplate = JSON.stringify({
|
|
206
|
-
action: "record",
|
|
207
|
-
scope: scopeKey,
|
|
208
|
-
topic: effectiveTopic,
|
|
209
|
-
...(projectId ? { project_id: projectId } : {}),
|
|
210
|
-
status: "ok",
|
|
211
|
-
papers: recordPaperTemplate,
|
|
212
|
-
knowledge_state: knowledgeStateTemplate,
|
|
213
|
-
});
|
|
214
|
-
const recordFallbackTemplate = JSON.stringify({
|
|
215
|
-
action: "record",
|
|
216
|
-
scope: scopeKey,
|
|
217
|
-
topic: effectiveTopic,
|
|
218
|
-
...(projectId ? { project_id: projectId } : {}),
|
|
219
|
-
status: "fallback_representative",
|
|
220
|
-
papers: recordPaperTemplate,
|
|
221
|
-
knowledge_state: {
|
|
222
|
-
...knowledgeStateTemplate,
|
|
223
|
-
run_log: {
|
|
224
|
-
model: "model-name",
|
|
225
|
-
duration_ms: 1300,
|
|
226
|
-
degraded: true,
|
|
227
|
-
temp_full_text_dir: "/tmp/scientify-fulltext/run-123",
|
|
228
|
-
temp_files_downloaded: 1,
|
|
229
|
-
temp_cleanup_status: "done",
|
|
230
|
-
full_text_attempted: 1,
|
|
231
|
-
full_text_completed: 0,
|
|
232
|
-
notes: "Fallback pass was used because incremental pass had no unseen papers.",
|
|
233
|
-
},
|
|
234
|
-
},
|
|
235
|
-
note: "No unseen papers this cycle; delivered best representative papers instead.",
|
|
236
|
-
});
|
|
237
|
-
const recordEmptyTemplate = JSON.stringify({
|
|
238
|
-
action: "record",
|
|
239
|
-
scope: scopeKey,
|
|
240
|
-
topic: effectiveTopic,
|
|
241
|
-
...(projectId ? { project_id: projectId } : {}),
|
|
242
|
-
status: "empty",
|
|
243
|
-
papers: [],
|
|
244
|
-
knowledge_state: {
|
|
245
|
-
core_papers: [],
|
|
246
|
-
exploration_papers: [],
|
|
247
|
-
exploration_trace: [],
|
|
248
|
-
knowledge_changes: [],
|
|
249
|
-
knowledge_updates: [],
|
|
250
|
-
hypotheses: [],
|
|
251
|
-
run_log: {
|
|
252
|
-
model: "model-name",
|
|
253
|
-
temp_cleanup_status: "not_needed",
|
|
254
|
-
notes: "No suitable paper found in this cycle.",
|
|
255
|
-
},
|
|
256
|
-
},
|
|
257
|
-
note: "No suitable paper found in incremental pass and fallback representative pass.",
|
|
258
|
-
});
|
|
259
|
-
if (scheduleKind === "at") {
|
|
260
|
-
return [
|
|
261
|
-
`/research-pipeline Run a focused literature study on \"${effectiveTopic}\" and return up to ${preferences.max_papers} high-value representative papers.`,
|
|
262
|
-
"",
|
|
263
|
-
"Mandatory workflow:",
|
|
264
|
-
`1) Call tool \`scientify_literature_state\` with: ${preparePayload}`,
|
|
265
|
-
"2) Read `memory_hints` from prepare result. Treat preferred keywords/sources as positive ranking priors, and avoided ones as negative priors.",
|
|
266
|
-
`3) Build a candidate pool of around ${candidatePool} papers when possible, matching returned preferences (sources/recency).`,
|
|
267
|
-
`4) Score each candidate with weighted dimensions (${scoreWeightsText}). Each dimension is 0-100, then compute weighted average score.`,
|
|
268
|
-
`5) Apply memory prior adjustment to the score (up-rank preferred keyword/source matches; down-rank avoided matches).`,
|
|
269
|
-
`6) Select top ${preferences.max_papers} papers.`,
|
|
270
|
-
"7) Create a temporary local directory for full text (for example `/tmp/scientify-fulltext/<run-id>`). Download full text for selected core papers when possible (arXiv PDF/source first, then DOI OA PDF if available).",
|
|
271
|
-
"8) Read full text with `paper_browser` in sections (method, experiments, limitations). Extract structured fields per paper: `domain`, `subdomains`, `cross_domain_links`, `research_goal`, `approach`, `methodology_design`, `key_contributions`, `practical_insights`, `must_understand_points`, `limitations`, and `evidence_anchors`.",
|
|
272
|
-
"9) For papers without full text, explicitly set `full_text_read=false` and provide `unread_reason`.",
|
|
273
|
-
`10) Call \`scientify_literature_state\` to persist selected papers and knowledge_state details using this JSON shape: ${recordTemplate}`,
|
|
274
|
-
"11) `knowledge_state.core_papers` must include all selected papers with id/title/url/score/reason and structured reading fields (not placeholders).",
|
|
275
|
-
"12) `knowledge_state.knowledge_changes` and `knowledge_state.knowledge_updates` must reflect this run's actual findings and include `evidence_ids` whenever available.",
|
|
276
|
-
"13) Quality targets must be met: core full-text coverage >= 80%, evidence-binding rate >= 90% (key conclusions backed by section+locator+quote), citation error rate < 2%.",
|
|
277
|
-
"14) Without sufficient full-text evidence, do not keep high-confidence conclusions; downgrade confidence explicitly.",
|
|
278
|
-
"15) For hypotheses, include at least one `evidence_ids` entry and a concrete `dependency_path` when applicable. Prioritize evidence from full-text-read papers.",
|
|
279
|
-
"16) If a hypothesis is high-impact, optionally run `openreview_lookup` or additional literature search and fill `validation_status`/`validation_notes`/`validation_evidence`.",
|
|
280
|
-
"17) After recording state, clean temporary full-text files. Put cleanup outcome in `run_log.temp_cleanup_status` (`done|partial|failed|not_needed`) and optional `temp_cleanup_note`.",
|
|
281
|
-
"18) Keep `run_log.notes` factual (candidate count, filtering reason, fallback/no-fallback).",
|
|
282
|
-
"19) In user-facing output, always include a numbered paper list with title + direct source URL + one-line value. Never claim papers were selected without listing links.",
|
|
283
|
-
"20) Do not display raw score/reason unless explicitly requested.",
|
|
284
|
-
"21) If nothing suitable is found, still call record with empty papers using:",
|
|
285
|
-
`${recordEmptyTemplate}`,
|
|
286
|
-
"Then respond: `No new literature found.`",
|
|
287
|
-
].join("\n");
|
|
288
|
-
}
|
|
289
|
-
return [
|
|
290
|
-
`/research-pipeline Run an incremental literature check focused on \"${effectiveTopic}\".`,
|
|
291
|
-
"",
|
|
292
|
-
"Mandatory workflow:",
|
|
293
|
-
`1) Call tool \`scientify_literature_state\` with: ${preparePayload}`,
|
|
294
|
-
"2) Read `memory_hints` from prepare result. Use them as quiet personalization priors in ranking (not user-facing).",
|
|
295
|
-
"3) Treat `exclude_paper_ids` as hard dedupe constraints. Do not push papers whose IDs are already in that list.",
|
|
296
|
-
`4) Incremental pass: build a candidate pool of around ${candidatePool} unseen papers when possible, following preferences (sources/recency).`,
|
|
297
|
-
`5) Score each candidate with weighted dimensions (${scoreWeightsText}). Each dimension is 0-100, then compute weighted average score.`,
|
|
298
|
-
"6) Apply memory prior adjustment to the score (up-rank preferred keyword/source matches; down-rank avoided matches).",
|
|
299
|
-
`7) Select at most ${preferences.max_papers} top-ranked unseen papers.`,
|
|
300
|
-
"8) Create a temporary local directory for full text (for example `/tmp/scientify-fulltext/<run-id>`). Download full text for selected core papers when possible (arXiv first, then DOI OA if available).",
|
|
301
|
-
"9) Read full text with `paper_browser` and fill structured paper fields: `domain`, `subdomains`, `cross_domain_links`, `research_goal`, `approach`, `methodology_design`, `key_contributions`, `practical_insights`, `must_understand_points`, `limitations`, and `evidence_anchors`.",
|
|
302
|
-
"10) If full text cannot be read, set `full_text_read=false` with explicit `unread_reason`.",
|
|
303
|
-
`11) If selected > 0, call \`scientify_literature_state\` with status \`ok\` using: ${recordTemplate}`,
|
|
304
|
-
"12) `knowledge_state.core_papers` must contain all selected papers with id/title/url/score/reason and structured reading fields; `exploration_trace` should include query/source/candidates/filtered_to/filter reasons when available.",
|
|
305
|
-
"13) `knowledge_state.knowledge_changes` and `knowledge_state.hypotheses` should include evidence_ids (and dependency_path for hypotheses) whenever available, preferably from full-text-read papers.",
|
|
306
|
-
"14) Quality targets must be met: core full-text coverage >= 80%, evidence-binding rate >= 90% (key conclusions backed by section+locator+quote), citation error rate < 2%.",
|
|
307
|
-
"15) Without sufficient full-text evidence, do not keep high-confidence conclusions; downgrade confidence explicitly.",
|
|
308
|
-
"16) For top hypotheses, optionally validate risk via `openreview_lookup` and fill `validation_status`/`validation_notes`/`validation_evidence`.",
|
|
309
|
-
"17) If incremental selection is empty, run one fallback representative pass (ignore `exclude_paper_ids` once) and select best representative papers.",
|
|
310
|
-
`18) If fallback returns papers, call \`scientify_literature_state\` with status \`fallback_representative\` using: ${recordFallbackTemplate}`,
|
|
311
|
-
"19) After recording state, clean temporary full-text files and set `run_log.temp_cleanup_status` accordingly (`done|partial|failed|not_needed`).",
|
|
312
|
-
"20) If papers are selected (incremental or fallback), output a numbered list with title + direct source URL + one-line value for each pushed paper.",
|
|
313
|
-
"21) Output a compact progress report for this cycle: what changed, what matters, and a concrete plan for the next 1 hour.",
|
|
314
|
-
"22) If a hypothesis is generated, explain *why* it is reasonable based on what was read (e.g., which findings connect), but do NOT list trigger conditions or say 'triggered by BRIDGE/NEW'.",
|
|
315
|
-
"23) Keep user-facing output concise; do not expose raw score/reason unless explicitly requested.",
|
|
316
|
-
"24) If both incremental and fallback passes are empty, call record with empty papers using:",
|
|
317
|
-
`${recordEmptyTemplate}`,
|
|
318
|
-
"25) Then still return a useful progress status with next-hour actions (instead of only a generic reminder).",
|
|
319
|
-
].join("\n");
|
|
320
|
-
}
|
|
321
|
-
export function formatUsage() {
|
|
322
|
-
return [
|
|
323
|
-
"## Scientify Scheduled Subscription",
|
|
324
|
-
"",
|
|
325
|
-
"Examples:",
|
|
326
|
-
"- `/research-subscribe`",
|
|
327
|
-
"- `/research-subscribe daily 09:00 Asia/Shanghai`",
|
|
328
|
-
"- `/research-subscribe weekly mon 09:30 Asia/Shanghai`",
|
|
329
|
-
"- `/research-subscribe every 6h`",
|
|
330
|
-
"- `/research-subscribe at 2m`",
|
|
331
|
-
"- `/research-subscribe at 2026-03-04T08:00:00+08:00`",
|
|
332
|
-
"- `/research-subscribe cron \"0 9 * * 1\" Asia/Shanghai`",
|
|
333
|
-
"- `/research-subscribe daily 09:00 --channel feishu --to ou_xxx`",
|
|
334
|
-
"- `/research-subscribe every 2h --channel telegram --to 12345678`",
|
|
335
|
-
"- `/research-subscribe at 2m --channel webui`",
|
|
336
|
-
"- `/research-subscribe daily 08:00 --project battery-rul`",
|
|
337
|
-
"- `/research-subscribe daily 08:00 --topic \"LLM alignment\"`",
|
|
338
|
-
"- `/research-subscribe daily 08:00 --topic \"LLM alignment\" --max-papers 5 --sources arxiv,openalex`",
|
|
339
|
-
"- `/research-subscribe daily 08:00 --topic \"LLM alignment\" --candidate-pool 12 --score-weights relevance:45,novelty:20,authority:25,actionability:10`",
|
|
340
|
-
"- `/research-subscribe at 1m --message \"Time to drink coffee.\"`",
|
|
341
|
-
"- `/research-subscribe daily 09:00 --no-deliver`",
|
|
342
|
-
].join("\n");
|
|
343
|
-
}
|
|
344
|
-
export function withSignature(text) {
|
|
345
|
-
return `${text}\n${SCIENTIFY_SIGNATURE_FOOTER}`;
|
|
346
|
-
}
|
|
347
|
-
//# sourceMappingURL=prompt.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/research-subscriptions/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGtE,MAAM,yBAAyB,GAC7B,iHAAiH,CAAC;AAEpH,SAAS,qBAAqB,CAAC,GAAW;IACxC,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,+CAA+C,EAAE,EAAE,CAAC,CAAC;IACzE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC9C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc;IACnD,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,mCAAmC,CAAC,OAAe;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,8BAA8B,CAAC,OAAe;IACrD,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC1B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAC;IAC/D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,sBAAsB,CAAC,OAA2E;IAKzG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;IACzC,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpG,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,GAAG,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3G,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,OAGC,EACD,YAAkC,EAClC,QAAgB;IAEhB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IAC9C,MAAM,aAAa,GACjB,CAAC,OAAO,CAAC,KAAK,IAAI,aAAa,IAAI,mCAAmC,CAAC,aAAa,CAAC;QACnF,CAAC,CAAC,8BAA8B,CAAC,aAAa,CAAC;QAC/C,CAAC,CAAC,SAAS,CAAC;IAEhB,IAAI,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,OAAO;YACL,0BAA0B;YAC1B,oCAAoC,aAAa,IAAI;YACrD,2FAA2F;SAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO;YACL,0BAA0B;YAC1B,oCAAoC,iBAAiB,IAAI;YACzD,2FAA2F;SAC5F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9D,MAAM,cAAc,GAAG,YAAY,IAAI,iCAAiC,CAAC;IAEzE,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACnE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,cAAc;QACrB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,WAAW;KACZ,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG;QAC1B;YACE,EAAE,EAAE,kBAAkB;YACtB,KAAK,EAAE,aAAa;YACpB,GAAG,EAAE,kCAAkC;YACvC,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,8CAA8C;SACvD;QACD;YACE,EAAE,EAAE,oBAAoB;YACxB,KAAK,EAAE,eAAe;YACtB,GAAG,EAAE,gCAAgC;YACrC,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,2CAA2C;SACpD;KACF,CAAC;IACF,MAAM,sBAAsB,GAAG;QAC7B,WAAW,EAAE;YACX;gBACE,EAAE,EAAE,kBAAkB;gBACtB,KAAK,EAAE,aAAa;gBACpB,GAAG,EAAE,kCAAkC;gBACvC,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,8CAA8C;gBACtD,OAAO,EAAE,yBAAyB;gBAClC,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,cAAc,EAAE,IAAI;gBACpB,WAAW,EAAE,UAAU;gBACvB,gBAAgB,EAAE,WAAW;gBAC7B,aAAa,EAAE,sCAAsC;gBACrD,MAAM,EAAE,kBAAkB;gBAC1B,UAAU,EAAE,CAAC,iCAAiC,EAAE,uBAAuB,CAAC;gBACxE,kBAAkB,EAAE,CAAC,sBAAsB,CAAC;gBAC5C,aAAa,EAAE,2EAA2E;gBAC1F,QAAQ,EAAE,8DAA8D;gBACxE,kBAAkB,EAAE,mEAAmE;gBACvF,iBAAiB,EAAE,CAAC,mCAAmC,EAAE,sCAAsC,CAAC;gBAChG,kBAAkB,EAAE,CAAC,6DAA6D,CAAC;gBACnF,sBAAsB,EAAE,CAAC,uDAAuD,CAAC;gBACjF,WAAW,EAAE,CAAC,gCAAgC,CAAC;gBAC/C,kBAAkB,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;gBACjE,gBAAgB,EAAE;oBAChB;wBACE,OAAO,EAAE,QAAQ;wBACjB,OAAO,EAAE,QAAQ;wBACjB,KAAK,EAAE,kEAAkE;wBACzE,KAAK,EAAE,kCAAkC;qBAC1C;iBACF;aACF;SACF;QACD,kBAAkB,EAAE;YAClB;gBACE,EAAE,EAAE,oBAAoB;gBACxB,KAAK,EAAE,eAAe;gBACtB,GAAG,EAAE,gCAAgC;gBACrC,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,2CAA2C;gBACnD,cAAc,EAAE,KAAK;gBACrB,WAAW,EAAE,UAAU;gBACvB,aAAa,EAAE,uCAAuC;aACvD;SACF;QACD,iBAAiB,EAAE;YACjB;gBACE,KAAK,EAAE,0CAA0C;gBACjD,MAAM,EAAE,OAAO;gBACf,UAAU,EAAE,EAAE;gBACd,WAAW,EAAE,CAAC;gBACd,oBAAoB,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC;gBACrD,YAAY,EAAE,CAAC;aAChB;SACF;QACD,iBAAiB,EAAE;YACjB;gBACE,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,4CAA4C;gBACvD,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,KAAK,EAAE,eAAe;aACvB;SACF;QACD,iBAAiB,EAAE;YACjB;gBACE,KAAK,EAAE,eAAe;gBACtB,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,oDAAoD;gBAC7D,UAAU,EAAE,QAAQ;gBACpB,YAAY,EAAE,CAAC,kBAAkB,CAAC;aACnC;SACF;QACD,UAAU,EAAE;YACV;gBACE,SAAS,EAAE,oDAAoD;gBAC/D,OAAO,EAAE,OAAO;gBAChB,eAAe,EAAE,CAAC,2BAA2B,EAAE,yBAAyB,CAAC;gBACzE,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,GAAG;gBAChB,MAAM,EAAE,GAAG;gBACX,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,iBAAiB,EAAE,WAAW;gBAC9B,gBAAgB,EAAE,wEAAwE;gBAC1F,mBAAmB,EAAE,EAAE;aACxB;SACF;QACD,OAAO,EAAE;YACP,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,IAAI;YACjB,kBAAkB,EAAE,iCAAiC;YACrD,qBAAqB,EAAE,CAAC;YACxB,mBAAmB,EAAE,MAAM;YAC3B,mBAAmB,EAAE,CAAC;YACtB,mBAAmB,EAAE,CAAC;YACtB,KAAK,EAAE,gBAAgB;SACxB;KACF,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,cAAc;QACrB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,mBAAmB;QAC3B,eAAe,EAAE,sBAAsB;KACxC,CAAC,CAAC;IACH,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5C,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,cAAc;QACrB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,EAAE,yBAAyB;QACjC,MAAM,EAAE,mBAAmB;QAC3B,eAAe,EAAE;YACf,GAAG,sBAAsB;YACzB,OAAO,EAAE;gBACP,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,IAAI;gBACd,kBAAkB,EAAE,iCAAiC;gBACrD,qBAAqB,EAAE,CAAC;gBACxB,mBAAmB,EAAE,MAAM;gBAC3B,mBAAmB,EAAE,CAAC;gBACtB,mBAAmB,EAAE,CAAC;gBACtB,KAAK,EAAE,uEAAuE;aAC/E;SACF;QACD,IAAI,EAAE,4EAA4E;KACnF,CAAC,CAAC;IACH,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC;QACzC,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,cAAc;QACrB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,EAAE;QACV,eAAe,EAAE;YACf,WAAW,EAAE,EAAE;YACf,kBAAkB,EAAE,EAAE;YACtB,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,EAAE;YACrB,UAAU,EAAE,EAAE;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,YAAY;gBACnB,mBAAmB,EAAE,YAAY;gBACjC,KAAK,EAAE,wCAAwC;aAChD;SACF;QACD,IAAI,EAAE,+EAA+E;KACtF,CAAC,CAAC;IAEH,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO;YACL,0DAA0D,cAAc,uBAAuB,WAAW,CAAC,UAAU,oCAAoC;YACzJ,EAAE;YACF,qBAAqB;YACrB,qDAAqD,cAAc,EAAE;YACrE,+IAA+I;YAC/I,uCAAuC,aAAa,yEAAyE;YAC7H,qDAAqD,gBAAgB,kEAAkE;YACvI,sHAAsH;YACtH,iBAAiB,WAAW,CAAC,UAAU,UAAU;YACjD,yNAAyN;YACzN,0UAA0U;YAC1U,qGAAqG;YACrG,yHAAyH,cAAc,EAAE;YACzI,qJAAqJ;YACrJ,wKAAwK;YACxK,4KAA4K;YAC5K,sHAAsH;YACtH,iKAAiK;YACjK,+KAA+K;YAC/K,uLAAuL;YACvL,6FAA6F;YAC7F,0KAA0K;YAC1K,kEAAkE;YAClE,8EAA8E;YAC9E,GAAG,mBAAmB,EAAE;YACxB,0CAA0C;SAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,OAAO;QACL,uEAAuE,cAAc,KAAK;QAC1F,EAAE;QACF,qBAAqB;QACrB,qDAAqD,cAAc,EAAE;QACrE,oHAAoH;QACpH,iHAAiH;QACjH,yDAAyD,aAAa,wEAAwE;QAC9I,qDAAqD,gBAAgB,kEAAkE;QACvI,sHAAsH;QACtH,qBAAqB,WAAW,CAAC,UAAU,4BAA4B;QACvE,0MAA0M;QAC1M,uRAAuR;QACvR,4FAA4F;QAC5F,sFAAsF,cAAc,EAAE;QACtG,wOAAwO;QACxO,sMAAsM;QACtM,4KAA4K;QAC5K,sHAAsH;QACtH,iJAAiJ;QACjJ,sJAAsJ;QACtJ,sHAAsH,sBAAsB,EAAE;QAC9I,kJAAkJ;QAClJ,qJAAqJ;QACrJ,2HAA2H;QAC3H,8LAA8L;QAC9L,kGAAkG;QAClG,6FAA6F;QAC7F,GAAG,mBAAmB,EAAE;QACxB,6GAA6G;KAC9G,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,qCAAqC;QACrC,EAAE;QACF,WAAW;QACX,yBAAyB;QACzB,mDAAmD;QACnD,wDAAwD;QACxD,kCAAkC;QAClC,+BAA+B;QAC/B,sDAAsD;QACtD,0DAA0D;QAC1D,kEAAkE;QAClE,mEAAmE;QACnE,+CAA+C;QAC/C,2DAA2D;QAC3D,+DAA+D;QAC/D,uGAAuG;QACvG,yJAAyJ;QACzJ,mEAAmE;QACnE,kDAAkD;KACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,GAAG,IAAI,KAAK,0BAA0B,EAAE,CAAC;AAClD,CAAC"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import type { PluginLogger, PluginRuntime } from "../types.js";
|
|
2
|
-
export type ScheduleSpec = {
|
|
3
|
-
kind: "cron";
|
|
4
|
-
expr: string;
|
|
5
|
-
tz: string;
|
|
6
|
-
display: string;
|
|
7
|
-
} | {
|
|
8
|
-
kind: "every";
|
|
9
|
-
duration: string;
|
|
10
|
-
display: string;
|
|
11
|
-
} | {
|
|
12
|
-
kind: "at";
|
|
13
|
-
when: string;
|
|
14
|
-
display: string;
|
|
15
|
-
};
|
|
16
|
-
export type CronJob = {
|
|
17
|
-
id: string;
|
|
18
|
-
name?: string;
|
|
19
|
-
enabled?: boolean;
|
|
20
|
-
schedule?: {
|
|
21
|
-
kind?: string;
|
|
22
|
-
expr?: string;
|
|
23
|
-
tz?: string;
|
|
24
|
-
everyMs?: number;
|
|
25
|
-
at?: string;
|
|
26
|
-
};
|
|
27
|
-
delivery?: {
|
|
28
|
-
mode?: string;
|
|
29
|
-
channel?: string;
|
|
30
|
-
to?: string;
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
export type CronListResult = {
|
|
34
|
-
jobs?: CronJob[];
|
|
35
|
-
};
|
|
36
|
-
export type CronCommandDeps = {
|
|
37
|
-
runtime: PluginRuntime;
|
|
38
|
-
logger: PluginLogger;
|
|
39
|
-
};
|
|
40
|
-
export type DeliveryTarget = {
|
|
41
|
-
mode: "announce" | "none";
|
|
42
|
-
channel: string;
|
|
43
|
-
to?: string;
|
|
44
|
-
display: string;
|
|
45
|
-
};
|
|
46
|
-
export type ScoreWeights = {
|
|
47
|
-
relevance: number;
|
|
48
|
-
novelty: number;
|
|
49
|
-
authority: number;
|
|
50
|
-
actionability: number;
|
|
51
|
-
};
|
|
52
|
-
export type SubscriptionOptions = {
|
|
53
|
-
scheduleTokens: string[];
|
|
54
|
-
channelOverride?: string;
|
|
55
|
-
toOverride?: string;
|
|
56
|
-
projectId?: string;
|
|
57
|
-
noDeliver: boolean;
|
|
58
|
-
topic?: string;
|
|
59
|
-
message?: string;
|
|
60
|
-
maxPapers?: number;
|
|
61
|
-
recencyDays?: number;
|
|
62
|
-
sources?: string[];
|
|
63
|
-
candidatePool?: number;
|
|
64
|
-
scoreWeights?: ScoreWeights;
|
|
65
|
-
};
|
|
66
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/research-subscriptions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,MAAM,YAAY,GACpB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IACE,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/research-subscriptions/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"research-subscriptions.d.ts","sourceRoot":"","sources":["../../src/research-subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,EAClC,gCAAgC,GACjC,MAAM,sCAAsC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"research-subscriptions.js","sourceRoot":"","sources":["../../src/research-subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,EAClC,gCAAgC,GACjC,MAAM,sCAAsC,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-updater.d.ts","sourceRoot":"","sources":["../../../src/services/auto-updater.ts"],"names":[],"mappings":"AAmJA,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;;;;EA4DnE"}
|