scientify 1.13.5 → 2.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.
Files changed (100) hide show
  1. package/README.en.md +350 -0
  2. package/README.md +148 -358
  3. package/dist/index.d.ts +8 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +131 -122
  6. package/dist/index.js.map +1 -1
  7. package/dist/src/cli/research.d.ts +1 -6
  8. package/dist/src/cli/research.d.ts.map +1 -1
  9. package/dist/src/cli/research.js +227 -123
  10. package/dist/src/cli/research.js.map +1 -1
  11. package/dist/src/commands/metabolism-status.d.ts +3 -3
  12. package/dist/src/commands/metabolism-status.d.ts.map +1 -1
  13. package/dist/src/commands/metabolism-status.js +72 -75
  14. package/dist/src/commands/metabolism-status.js.map +1 -1
  15. package/dist/src/commands.d.ts +1 -1
  16. package/dist/src/commands.d.ts.map +1 -1
  17. package/dist/src/commands.js +0 -55
  18. package/dist/src/commands.js.map +1 -1
  19. package/dist/src/hooks/cron-skill-inject.d.ts +6 -7
  20. package/dist/src/hooks/cron-skill-inject.d.ts.map +1 -1
  21. package/dist/src/hooks/cron-skill-inject.js +6 -15
  22. package/dist/src/hooks/cron-skill-inject.js.map +1 -1
  23. package/dist/src/hooks/research-mode.d.ts +1 -1
  24. package/dist/src/hooks/research-mode.d.ts.map +1 -1
  25. package/dist/src/hooks/research-mode.js +24 -72
  26. package/dist/src/hooks/research-mode.js.map +1 -1
  27. package/dist/src/hooks/scientify-signature.d.ts +1 -1
  28. package/dist/src/hooks/scientify-signature.d.ts.map +1 -1
  29. package/dist/src/hooks/scientify-signature.js +2 -5
  30. package/dist/src/hooks/scientify-signature.js.map +1 -1
  31. package/dist/src/knowledge-state/render.d.ts +1 -9
  32. package/dist/src/knowledge-state/render.d.ts.map +1 -1
  33. package/dist/src/knowledge-state/render.js +33 -158
  34. package/dist/src/knowledge-state/render.js.map +1 -1
  35. package/dist/src/knowledge-state/store.d.ts.map +1 -1
  36. package/dist/src/knowledge-state/store.js +65 -884
  37. package/dist/src/knowledge-state/store.js.map +1 -1
  38. package/dist/src/knowledge-state/types.d.ts +0 -69
  39. package/dist/src/knowledge-state/types.d.ts.map +1 -1
  40. package/dist/src/literature/subscription-state.d.ts +0 -2
  41. package/dist/src/literature/subscription-state.d.ts.map +1 -1
  42. package/dist/src/literature/subscription-state.js +7 -1199
  43. package/dist/src/literature/subscription-state.js.map +1 -1
  44. package/dist/src/research-subscriptions/constants.d.ts +1 -1
  45. package/dist/src/research-subscriptions/constants.js +1 -1
  46. package/dist/src/research-subscriptions/cron-client.d.ts +1 -1
  47. package/dist/src/research-subscriptions/cron-client.d.ts.map +1 -1
  48. package/dist/src/research-subscriptions/delivery.d.ts +1 -1
  49. package/dist/src/research-subscriptions/delivery.d.ts.map +1 -1
  50. package/dist/src/research-subscriptions/handlers.d.ts +1 -1
  51. package/dist/src/research-subscriptions/handlers.d.ts.map +1 -1
  52. package/dist/src/research-subscriptions/handlers.js +9 -9
  53. package/dist/src/research-subscriptions/handlers.js.map +1 -1
  54. package/dist/src/research-subscriptions/parse.d.ts.map +1 -1
  55. package/dist/src/research-subscriptions/parse.js +0 -10
  56. package/dist/src/research-subscriptions/parse.js.map +1 -1
  57. package/dist/src/research-subscriptions/prompt.d.ts +1 -1
  58. package/dist/src/research-subscriptions/prompt.d.ts.map +1 -1
  59. package/dist/src/research-subscriptions/prompt.js +196 -191
  60. package/dist/src/research-subscriptions/prompt.js.map +1 -1
  61. package/dist/src/research-subscriptions/types.d.ts +1 -2
  62. package/dist/src/research-subscriptions/types.d.ts.map +1 -1
  63. package/dist/src/templates/bootstrap.d.ts.map +1 -1
  64. package/dist/src/templates/bootstrap.js +32 -19
  65. package/dist/src/templates/bootstrap.js.map +1 -1
  66. package/dist/src/tools/arxiv-download.d.ts +1 -2
  67. package/dist/src/tools/arxiv-download.d.ts.map +1 -1
  68. package/dist/src/tools/arxiv-search.d.ts +1 -2
  69. package/dist/src/tools/arxiv-search.d.ts.map +1 -1
  70. package/dist/src/tools/github-search-tool.d.ts +1 -2
  71. package/dist/src/tools/github-search-tool.d.ts.map +1 -1
  72. package/dist/src/tools/openalex-search.d.ts +1 -2
  73. package/dist/src/tools/openalex-search.d.ts.map +1 -1
  74. package/dist/src/tools/openreview-lookup.d.ts +1 -2
  75. package/dist/src/tools/openreview-lookup.d.ts.map +1 -1
  76. package/dist/src/tools/paper-browser.d.ts +1 -2
  77. package/dist/src/tools/paper-browser.d.ts.map +1 -1
  78. package/dist/src/tools/result.d.ts +3 -5
  79. package/dist/src/tools/result.d.ts.map +1 -1
  80. package/dist/src/tools/result.js +5 -7
  81. package/dist/src/tools/result.js.map +1 -1
  82. package/dist/src/tools/scientify-cron.d.ts +4 -9
  83. package/dist/src/tools/scientify-cron.d.ts.map +1 -1
  84. package/dist/src/tools/scientify-cron.js +19 -441
  85. package/dist/src/tools/scientify-cron.js.map +1 -1
  86. package/dist/src/tools/scientify-literature-state.d.ts +1 -62
  87. package/dist/src/tools/scientify-literature-state.d.ts.map +1 -1
  88. package/dist/src/tools/scientify-literature-state.js +46 -312
  89. package/dist/src/tools/scientify-literature-state.js.map +1 -1
  90. package/dist/src/tools/unpaywall-download.d.ts +1 -2
  91. package/dist/src/tools/unpaywall-download.d.ts.map +1 -1
  92. package/dist/src/types.d.ts +16 -0
  93. package/dist/src/types.d.ts.map +1 -0
  94. package/dist/src/types.js +2 -0
  95. package/dist/src/types.js.map +1 -0
  96. package/openclaw.plugin.json +4 -2
  97. package/package.json +1 -1
  98. package/skills/metabolism/SKILL.md +2 -0
  99. package/skills/research-subscription/SKILL.md +1 -29
  100. package/README.zh.md +0 -494
@@ -1,103 +1,100 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
3
  import * as os from "node:os";
4
- const WORKSPACE_ROOT = path.join(os.homedir(), ".openclaw", "workspace", "projects");
5
- function getActiveProject() {
6
- const activePath = path.join(WORKSPACE_ROOT, ".active");
4
+ const OPENCLAW_HOME = path.join(os.homedir(), ".openclaw");
5
+ /**
6
+ * Find the research project workspace for the current agent context.
7
+ * In a Feishu group bound to a project agent, the workspace is at
8
+ * ~/.openclaw/workspace-research-{id}/
9
+ */
10
+ function findProjectWorkspace() {
11
+ // Read openclaw.json to find research agents
12
+ const configPath = path.join(OPENCLAW_HOME, "openclaw.json");
13
+ let config;
7
14
  try {
8
- return fs.readFileSync(activePath, "utf-8").trim();
15
+ config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
9
16
  }
10
17
  catch {
11
18
  return null;
12
19
  }
20
+ const agents = config.agents?.list ?? [];
21
+ const researchAgents = agents.filter((a) => a.id.startsWith("research-"));
22
+ // Try each research agent workspace to find one with metabolism/config.json
23
+ for (const agent of researchAgents) {
24
+ const workspace = (agent.workspace ?? `~/.openclaw/workspace-${agent.id}`).replace("~", os.homedir());
25
+ const metabolismConfig = path.join(workspace, "metabolism", "config.json");
26
+ if (fs.existsSync(metabolismConfig)) {
27
+ return { workspace, projectId: agent.id.replace("research-", "") };
28
+ }
29
+ }
30
+ // If only one research agent, use it even without config.json (pre-bootstrap)
31
+ if (researchAgents.length === 1) {
32
+ const agent = researchAgents[0];
33
+ const workspace = (agent.workspace ?? `~/.openclaw/workspace-${agent.id}`).replace("~", os.homedir());
34
+ return { workspace, projectId: agent.id.replace("research-", "") };
35
+ }
36
+ return null;
13
37
  }
14
- function listProjects() {
38
+ function readMetabolismConfig(workspace) {
15
39
  try {
16
- return fs
17
- .readdirSync(WORKSPACE_ROOT, { withFileTypes: true })
18
- .filter((d) => d.isDirectory() && !d.name.startsWith("."))
19
- .map((d) => d.name)
20
- .sort();
40
+ return JSON.parse(fs.readFileSync(path.join(workspace, "metabolism", "config.json"), "utf-8"));
21
41
  }
22
42
  catch {
23
- return [];
43
+ return null;
24
44
  }
25
45
  }
26
- function readKnowledgeState(projectId) {
27
- const file = path.join(WORKSPACE_ROOT, projectId, "knowledge_state", "state.json");
28
- if (!fs.existsSync(file))
29
- return null;
46
+ function countFiles(dirPath, filter) {
30
47
  try {
31
- const raw = fs.readFileSync(file, "utf-8");
32
- return JSON.parse(raw);
48
+ const entries = fs.readdirSync(dirPath);
49
+ return filter ? entries.filter(filter).length : entries.length;
33
50
  }
34
51
  catch {
35
- return null;
52
+ return 0;
36
53
  }
37
54
  }
38
- /**
39
- * /metabolism-status compatibility alias of continuous research engine status.
40
- */
41
- export function handleMetabolismStatus(ctx) {
42
- const requested = (ctx.args ?? "").trim();
43
- const projectId = requested || getActiveProject() || listProjects()[0];
44
- if (!projectId) {
45
- return {
46
- text: "No project found. Use /research-subscribe with --project, or create a project under ~/.openclaw/workspace/projects/.",
47
- };
55
+ function readRecentDiffs(workspace, count) {
56
+ const diffsDir = path.join(workspace, "metabolism", "diffs");
57
+ try {
58
+ return fs
59
+ .readdirSync(diffsDir)
60
+ .filter((f) => f.endsWith(".md"))
61
+ .sort()
62
+ .slice(-count);
48
63
  }
49
- const data = readKnowledgeState(projectId);
50
- if (!data?.streams || Object.keys(data.streams).length === 0) {
51
- return {
52
- text: `**Continuous Research Engine Status — ${projectId}**\n\n` +
53
- "No knowledge_state runs yet. Trigger a research run first.\n\n" +
54
- "(Compatibility note: /metabolism-status is an alias view over knowledge_state.)",
55
- };
64
+ catch {
65
+ return [];
56
66
  }
57
- const streams = Object.values(data.streams);
58
- let totalRuns = 0;
59
- let totalHypotheses = 0;
60
- let totalPaperNotes = 0;
61
- let latest = null;
62
- let latestTs = 0;
63
- for (const stream of streams) {
64
- totalRuns += Number.isFinite(stream.totalRuns) ? Math.max(0, Math.floor(stream.totalRuns)) : 0;
65
- totalHypotheses += Number.isFinite(stream.totalHypotheses) ? Math.max(0, Math.floor(stream.totalHypotheses)) : 0;
66
- totalPaperNotes += Array.isArray(stream.paperNotes) ? stream.paperNotes.length : 0;
67
- const ts = Number.isFinite(stream.lastRunAtMs) ? Math.floor(stream.lastRunAtMs) : 0;
68
- if (ts >= latestTs) {
69
- latestTs = ts;
70
- latest = stream;
71
- }
67
+ }
68
+ /**
69
+ * /metabolism-status — Show knowledge metabolism status
70
+ */
71
+ export function handleMetabolismStatus(_ctx) {
72
+ const project = findProjectWorkspace();
73
+ if (!project) {
74
+ return { text: "No research project found. Use `openclaw research init <id>` to create one." };
72
75
  }
73
- const runProfile = latest?.lastRunProfile ?? "fast";
74
- const trigger = latest?.triggerState;
75
- const gate = latest?.lastQualityGate;
76
- let output = `**Continuous Research Engine Status ${projectId}**\n\n`;
77
- output += `- Streams: ${streams.length}\n`;
78
- output += `- Total runs: ${totalRuns}\n`;
79
- output += `- Total hypotheses: ${totalHypotheses}\n`;
80
- output += `- Total paper notes: ${totalPaperNotes}\n`;
81
- output += `- Latest run profile: ${runProfile}\n`;
82
- output += `- Latest status: ${latest?.lastStatus ?? "(unknown)"}\n`;
83
- output += `- Latest run: ${latestTs > 0 ? new Date(latestTs).toISOString() : "(none)"}\n`;
84
- if (trigger) {
85
- output += `\n**Trigger State**\n`;
86
- output += `- Consecutive NEW/REVISE days: ${trigger.consecutiveNewReviseDays ?? 0}\n`;
87
- output += `- BRIDGE count (7d): ${trigger.bridgeCount7d ?? 0}\n`;
88
- output += `- Unread core backlog: ${trigger.unreadCoreBacklog ?? 0}\n`;
76
+ const { workspace, projectId } = project;
77
+ const config = readMetabolismConfig(workspace);
78
+ const topicCount = countFiles(path.join(workspace, "metabolism", "knowledge"), (f) => f.startsWith("topic-"));
79
+ const hypothesisCount = countFiles(path.join(workspace, "metabolism", "hypotheses"), (f) => f.endsWith(".md"));
80
+ const recentDiffs = readRecentDiffs(workspace, 3);
81
+ let output = `**Metabolism Status ${projectId}**\n\n`;
82
+ if (!config) {
83
+ output += "Status: Pending BOOTSTRAP configuration\n";
84
+ output += "Send a message in this group to start the configuration flow.\n";
85
+ return { text: output };
89
86
  }
90
- if (gate) {
91
- output += `\n**Quality Gate**\n`;
92
- output += `- Passed: ${gate.passed ? "yes" : "no"}\n`;
93
- output += `- Full-text coverage: ${gate.fullTextCoveragePct ?? 0}%\n`;
94
- output += `- Evidence binding: ${gate.evidenceBindingRatePct ?? 0}%\n`;
95
- output += `- Citation error: ${gate.citationErrorRatePct ?? 0}%\n`;
96
- if (Array.isArray(gate.reasons) && gate.reasons.length > 0) {
97
- output += `- Reasons: ${gate.reasons.join("; ")}\n`;
87
+ const heartbeatStatus = config.heartbeat?.enabled !== false ? "active" : "paused";
88
+ output += `Day: ${config.currentDay}\n`;
89
+ output += `Topics: ${topicCount}\n`;
90
+ output += `Hypotheses: ${hypothesisCount}\n`;
91
+ output += `Heartbeat: ${heartbeatStatus}\n`;
92
+ if (recentDiffs.length > 0) {
93
+ output += `\nRecent diffs:\n`;
94
+ for (const diff of recentDiffs) {
95
+ output += ` ${diff}\n`;
98
96
  }
99
97
  }
100
- output += "\n(Compatibility note: /metabolism-status is an alias view over knowledge_state.)";
101
98
  return { text: output };
102
99
  }
103
100
  //# sourceMappingURL=metabolism-status.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metabolism-status.js","sourceRoot":"","sources":["../../../src/commands/metabolism-status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metabolism-status.js","sourceRoot":"","sources":["../../../src/commands/metabolism-status.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { PluginCommandContext, PluginCommandResult } from "openclaw";
1
+ import type { PluginCommandContext, PluginCommandResult } from "./types.js";
2
2
  /**
3
3
  * /research-status - Show workspace status
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AA6N1E;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CA+DpF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CAiC3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CA4B1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAqB9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CAclF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CA+ClF"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAwJ5E;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAmDpF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CAiC3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CA4B1E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CAqB9E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CAclF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CA+ClF"}
@@ -92,9 +92,6 @@ function getKnowledgeStateSummary(projectId) {
92
92
  let recentNotFullTextReadCount = 0;
93
93
  let lastRunAtMs = 0;
94
94
  let lastStatus;
95
- let lastQualityGatePassed;
96
- let lastQualityGateReasons;
97
- let lastChangeStat;
98
95
  for (const stream of streamEntries) {
99
96
  totalRuns += Number.isFinite(stream.totalRuns) ? Math.max(0, Math.floor(stream.totalRuns)) : 0;
100
97
  totalHypotheses += Number.isFinite(stream.totalHypotheses)
@@ -111,43 +108,6 @@ function getKnowledgeStateSummary(projectId) {
111
108
  if (runAt >= lastRunAtMs) {
112
109
  lastRunAtMs = runAt;
113
110
  lastStatus = stream.lastStatus;
114
- if (stream.lastQualityGate && typeof stream.lastQualityGate === "object") {
115
- lastQualityGatePassed = stream.lastQualityGate.passed === true;
116
- if (Array.isArray(stream.lastQualityGate.reasons)) {
117
- lastQualityGateReasons = stream.lastQualityGate.reasons
118
- .filter((item) => typeof item === "string")
119
- .map((item) => item.trim())
120
- .filter((item) => item.length > 0)
121
- .slice(0, 5);
122
- }
123
- else {
124
- lastQualityGateReasons = undefined;
125
- }
126
- }
127
- else {
128
- lastQualityGatePassed = undefined;
129
- lastQualityGateReasons = undefined;
130
- }
131
- const firstChange = Array.isArray(stream.recentChangeStats) ? stream.recentChangeStats[0] : undefined;
132
- if (firstChange && typeof firstChange === "object") {
133
- lastChangeStat = {
134
- newCount: typeof firstChange.newCount === "number" && Number.isFinite(firstChange.newCount)
135
- ? Math.max(0, Math.floor(firstChange.newCount))
136
- : 0,
137
- confirmCount: typeof firstChange.confirmCount === "number" && Number.isFinite(firstChange.confirmCount)
138
- ? Math.max(0, Math.floor(firstChange.confirmCount))
139
- : 0,
140
- reviseCount: typeof firstChange.reviseCount === "number" && Number.isFinite(firstChange.reviseCount)
141
- ? Math.max(0, Math.floor(firstChange.reviseCount))
142
- : 0,
143
- bridgeCount: typeof firstChange.bridgeCount === "number" && Number.isFinite(firstChange.bridgeCount)
144
- ? Math.max(0, Math.floor(firstChange.bridgeCount))
145
- : 0,
146
- };
147
- }
148
- else {
149
- lastChangeStat = undefined;
150
- }
151
111
  }
152
112
  }
153
113
  return {
@@ -156,9 +116,6 @@ function getKnowledgeStateSummary(projectId) {
156
116
  totalPaperNotes,
157
117
  recentFullTextReadCount,
158
118
  recentNotFullTextReadCount,
159
- ...(typeof lastQualityGatePassed === "boolean" ? { lastQualityGatePassed } : {}),
160
- ...(lastQualityGateReasons && lastQualityGateReasons.length > 0 ? { lastQualityGateReasons } : {}),
161
- ...(lastChangeStat ? { lastChangeStat } : {}),
162
119
  ...(lastRunAtMs > 0 ? { lastRunAtMs } : {}),
163
120
  ...(lastStatus ? { lastStatus } : {}),
164
121
  streamCount: streamEntries.length,
@@ -188,18 +145,6 @@ export function handleResearchStatus(_ctx) {
188
145
  output += `- recent full-text-read papers: ${knowledgeSummary.recentFullTextReadCount}\n`;
189
146
  output += `- recent not-full-text-read papers: ${knowledgeSummary.recentNotFullTextReadCount}\n`;
190
147
  output += `- last status: ${knowledgeSummary.lastStatus ?? "(unknown)"}\n`;
191
- if (typeof knowledgeSummary.lastQualityGatePassed === "boolean") {
192
- output += `- quality gate: ${knowledgeSummary.lastQualityGatePassed ? "passed" : "failed"}\n`;
193
- }
194
- if (knowledgeSummary.lastQualityGateReasons && knowledgeSummary.lastQualityGateReasons.length > 0) {
195
- output += `- quality reasons: ${knowledgeSummary.lastQualityGateReasons.join("; ")}\n`;
196
- }
197
- if (knowledgeSummary.lastChangeStat) {
198
- output +=
199
- `- last change stats (NEW/CONFIRM/REVISE/BRIDGE): ` +
200
- `${knowledgeSummary.lastChangeStat.newCount}/${knowledgeSummary.lastChangeStat.confirmCount}/` +
201
- `${knowledgeSummary.lastChangeStat.reviseCount}/${knowledgeSummary.lastChangeStat.bridgeCount}\n`;
202
- }
203
148
  output += `- last run: ${knowledgeSummary.lastRunAtMs ? new Date(knowledgeSummary.lastRunAtMs).toISOString() : "(none)"}\n\n`;
204
149
  }
205
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/commands.ts"],"names":[],"mappings":"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"}
@@ -3,19 +3,18 @@
3
3
  *
4
4
  * When a cron job fires with a heartbeat message starting with `/skill-name`,
5
5
  * this hook reads the matching SKILL.md from the agent's workspace and
6
- * prepends its body to the message, so the agent receives full workflow
6
+ * prepends its body via prependContext, so the agent receives full workflow
7
7
  * instructions in the isolated cron session.
8
8
  */
9
9
  export declare function createCronSkillInjectionHook(): (event: {
10
- payload?: {
11
- message?: string;
12
- };
10
+ prompt?: string;
11
+ messages?: unknown[];
13
12
  [key: string]: unknown;
14
13
  }, ctx: {
15
- sessionType?: string;
16
- agentWorkspace?: string;
14
+ trigger?: string;
15
+ workspaceDir?: string;
17
16
  [key: string]: unknown;
18
17
  }) => Promise<{
19
- payload: Record<string, unknown>;
18
+ prependContext: string;
20
19
  } | void>;
21
20
  //# sourceMappingURL=cron-skill-inject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cron-skill-inject.d.ts","sourceRoot":"","sources":["../../../src/hooks/cron-skill-inject.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,KAExC,OAAO;IAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACjE,KAAK;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,KAC7E,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,CA2CxD"}
1
+ {"version":3,"file":"cron-skill-inject.d.ts","sourceRoot":"","sources":["../../../src/hooks/cron-skill-inject.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,KAExC,OAAO;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACxE,KAAK;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,KACvE,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAgC9C"}
@@ -5,16 +5,16 @@ import path from "node:path";
5
5
  *
6
6
  * When a cron job fires with a heartbeat message starting with `/skill-name`,
7
7
  * this hook reads the matching SKILL.md from the agent's workspace and
8
- * prepends its body to the message, so the agent receives full workflow
8
+ * prepends its body via prependContext, so the agent receives full workflow
9
9
  * instructions in the isolated cron session.
10
10
  */
11
11
  export function createCronSkillInjectionHook() {
12
12
  return async (event, ctx) => {
13
13
  // Only process cron sessions
14
- if (ctx.sessionType !== "cron")
14
+ if (ctx.trigger !== "cron")
15
15
  return;
16
- const message = event.payload?.message;
17
- if (typeof message !== "string")
16
+ const message = typeof event.prompt === "string" ? event.prompt : "";
17
+ if (!message)
18
18
  return;
19
19
  // Extract /skill-name from the first line
20
20
  const match = message.match(/^\/([a-z][\w-]*)/);
@@ -22,7 +22,7 @@ export function createCronSkillInjectionHook() {
22
22
  return;
23
23
  const skillName = match[1];
24
24
  // Resolve agent workspace
25
- const workspace = ctx.agentWorkspace;
25
+ const workspace = ctx.workspaceDir;
26
26
  if (typeof workspace !== "string")
27
27
  return;
28
28
  const skillPath = path.join(workspace, "skills", skillName, "SKILL.md");
@@ -38,16 +38,7 @@ export function createCronSkillInjectionHook() {
38
38
  const body = content.replace(/^---[\s\S]*?---\s*/, "").trim();
39
39
  if (!body)
40
40
  return;
41
- // Inject skill body after the first line (/skill-name), before the rest
42
- const firstNewline = message.indexOf("\n");
43
- const newMessage = firstNewline === -1
44
- ? message + "\n\n" + body
45
- : message.slice(0, firstNewline) +
46
- "\n\n" +
47
- body +
48
- "\n\n" +
49
- message.slice(firstNewline + 1);
50
- return { payload: { ...event.payload, message: newMessage } };
41
+ return { prependContext: body };
51
42
  };
52
43
  }
53
44
  //# sourceMappingURL=cron-skill-inject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cron-skill-inject.js","sourceRoot":"","sources":["../../../src/hooks/cron-skill-inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,KAAK,EACV,KAAiE,EACjE,GAA8E,EACxB,EAAE;QACxD,6BAA6B;QAC7B,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM;YAAE,OAAO;QAEvC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC;QACvC,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO;QAExC,0CAA0C;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE3B,0BAA0B;QAC1B,MAAM,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC;QACrC,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,OAAO;QAE1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAExE,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;YACxC,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,wEAAwE;QACxE,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,UAAU,GACd,YAAY,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI;YACzB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;gBAC9B,MAAM;gBACN,IAAI;gBACJ,MAAM;gBACN,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAEtC,OAAO,EAAE,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cron-skill-inject.js","sourceRoot":"","sources":["../../../src/hooks/cron-skill-inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO,KAAK,EACV,KAAwE,EACxE,GAAwE,EAC5B,EAAE;QAC9C,6BAA6B;QAC7B,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM;YAAE,OAAO;QAEnC,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,0CAA0C;QAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE3B,0BAA0B;QAC1B,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,CAAC;QACnC,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,OAAO;QAE1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAExE,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;YACxC,OAAO;QACT,CAAC;QAED,yBAAyB;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC"}
@@ -17,6 +17,6 @@ type HookResult = {
17
17
  /**
18
18
  * Injects on every prompt build (survives compaction).
19
19
  */
20
- export declare function createResearchModeHook(): (_event: HookEvent, context: HookContext) => HookResult;
20
+ export declare function createResearchModeHook(): (_event: HookEvent, _context: HookContext) => HookResult;
21
21
  export {};
22
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;AA0EF;;GAEG;AACH,wBAAgB,sBAAsB,KAC5B,QAAQ,SAAS,EAAE,SAAS,WAAW,KAAG,UAAU,CAO7D"}
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;AA6BF;;GAEG;AACH,wBAAgB,sBAAsB,KAC5B,QAAQ,SAAS,EAAE,UAAU,WAAW,KAAG,UAAU,CAG9D"}
@@ -2,82 +2,34 @@
2
2
  * Research mode prompt injected into every conversation.
3
3
  */
4
4
  const RESEARCH_MODE_PROMPT = `[Scientify]
5
- You are running the Continuous Research Engine.
6
- Use skills/tools only when they are actually needed, and keep one unified persistence path:
7
- ~/.openclaw/workspace/projects/<project-id>/knowledge_state/
8
- Project discovery order:
9
- 1) explicit project_id/--project
10
- 2) ~/.openclaw/workspace/projects/.active
11
- 3) auto-create project id (do not silently switch .active)
12
-
13
- Unified research cycle semantics:
14
- prepare -> collect/filter -> reflect -> record -> status
15
- Never treat a research cycle as complete without a successful \`scientify_literature_state.record\`.
16
- \`no_deliver\` disables delivery only; it does not disable record/persistence.
17
- Always propagate one unique run_id per cycle (events/state/push-log must match).
18
-
19
- Scheduling:
20
- - For delayed/recurring tasks use \`scientify_cron_job\`.
21
- - Plain reminder: use \`message\` path (no research pipeline).
22
- - Research topic task: use \`topic\` path and persist knowledge_state.
23
- - Avoid recursive cron creation from cron runs.
24
- - If user asks "create/start a research task and run now, then return raw status JSON",
25
- call \`scientify_cron_job\` with \`action=upsert\` + \`run_now=true\` and return \`status_json\` from tool output.
26
- Do not emulate this with hand-written JSON.
27
-
28
- Execution truth:
29
- - Do not claim background progress unless you created a real async handle (job_id/task_id).
30
- - Without a real async handle, execute synchronously in this turn and return status.
31
- - If not executed, say not executed. Never imply hidden progress.
32
-
33
- Run profile defaults:
34
- - Default profile: strict (full-text-first).
35
- - Switch to fast/metadata-only only when user explicitly asks to skip full-text reading.
36
- - Soft gate is default: non-fatal quality issues are warnings, not blockers.
37
- - Never skip persistence due quality limits; persist every run.
38
- - User-facing responses should be concise Markdown. Keep tool-call JSON minimal and only for persistence.
39
- - Use degraded_quality only for fatal gate conditions.
40
-
41
- Research quality and gating:
42
- - Full-text-first for core evidence papers.
43
- - If full text unavailable: set full_text_read=false and unread_reason.
44
- - In core paper notes, avoid placeholders ("N/A", "not provided", "unknown"); either provide concrete content or omit field.
45
- - Evidence binding for key conclusions should include section + locator + quote.
46
- - BRIDGE requires resolvable evidence_ids and at least one full-text-backed evidence source.
47
- - If BRIDGE, NEW+REVISE, or unread core backlog appears, execute one reflection follow-up query and persist trace/result.
48
- - Hypotheses are accepted only when evidence_ids and dependency_path are sufficient; otherwise reject via hypothesis_gate reasons.
49
- - Before user-facing wording, check latest status.hypothesis_gate.accepted:
50
- * accepted == 0: factual report only; do not output speculative "next high-value routes"/"deep dive" guidance.
51
- * accepted > 0: include hypothesis details in current message by default (stable path).
52
- * only when runtime/channel clearly supports multi-send, split into two consecutive messages (alert then detailed hypothesis).
53
- - If hard user constraints are not met (for example min core papers), do not report status=ok.
54
-
55
- Traceability:
56
- - Reuse prepare-returned scope/topic in record/status. Never replace scope with project_id.
57
- - On follow-up ("which papers?", "why this hypothesis?"), answer from persisted status/knowledge_state first.
58
- - Only re-search when persistence lacks required facts, and state this explicitly.
59
-
60
- Rigor:
61
- - Never fabricate citations, quotes, venues, or results.
62
- - Say "I don't know" when uncertain.
63
- - Use \`python3\` (not \`python\`) for shell commands in this environment.`;
64
- const CRON_CONTEXT_GUARD = `
65
- [Scientify Cron Context]
66
- This turn is already running inside a cron-triggered execution.
67
- Do not call scientify_cron_job (or create another cron job) from this run.
68
- Do not recursively schedule run_now from within cron.
69
- Use the existing execution handle and complete prepare -> record -> status directly.
70
- If workload is too heavy for this turn, prefer sessions_spawn task delegation (with task id) instead of nested cron.`;
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
+ Scheduling: if user asks for recurring or delayed push delivery (e.g. tomorrow at 08:00, daily digest), use research-subscription skill and call scientify_cron_job to create a real schedule.
14
+ If it is a plain reminder (not research), set scientify_cron_job.message and do not default to the literature pipeline.
15
+ For recurring research pushes, use scientify_literature_state to prepare dedupe context and record both pushed paper IDs and structured knowledge_state (changes, updates, hypotheses, run_log).
16
+ Full-text-first policy: for papers used as core evidence, read full text when possible and mark full_text_read=true; if not fully read, you must explicitly mark full_text_read=false with unread_reason.
17
+ Structured paper record policy: for each core paper, populate domain/subdomains/cross-domain links/research goal/approach/methodology design/key contributions/practical insights/must-understand points/limitations/evidence anchors.
18
+ Use temporary local directory for full-text files (e.g. /tmp/scientify-fulltext/<run-id>) and delete it after record; write cleanup status to run_log.temp_cleanup_status.
19
+ Quality targets for research runs: core full-text coverage >=80%; evidence-binding rate >=90% (key conclusions must bind to section+locator+quote); citation error rate <2%. If full text is missing, do not keep high-confidence conclusions.
20
+ For research records, include project_id when available so state can persist under project knowledge_state/.
21
+ When user gives preference feedback (e.g. "more like this", "skip this direction", "prefer arxiv"), quietly persist it via scientify_literature_state action=feedback when scope/topic are inferable.
22
+ Preference memory is backend-only: use it to rerank future pushes, do not expose memory internals unless user explicitly asks.
23
+ Do not stop at explanation when user explicitly asks to set a schedule.
24
+ Rules: file exists = step done (skip). Outputs immutable unless user asks. project/ mutable during review loop.
25
+ Execution: always use \`python3\` (not \`python\`) for shell commands in this environment.
26
+ 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.`;
71
27
  /**
72
28
  * Injects on every prompt build (survives compaction).
73
29
  */
74
30
  export function createResearchModeHook() {
75
- return (_event, context) => {
76
- const sessionKey = typeof context.sessionKey === "string" ? context.sessionKey : "";
77
- const inCronContext = sessionKey.includes(":cron:");
78
- return {
79
- prependContext: inCronContext ? `${RESEARCH_MODE_PROMPT}\n${CRON_CONTEXT_GUARD}` : RESEARCH_MODE_PROMPT,
80
- };
31
+ return (_event, _context) => {
32
+ return { prependContext: RESEARCH_MODE_PROMPT };
81
33
  };
82
34
  }
83
35
  //# sourceMappingURL=research-mode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"research-mode.js","sourceRoot":"","sources":["../../../src/hooks/research-mode.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EA2DgD,CAAC;AAE9E,MAAM,kBAAkB,GAAG;;;;;;qHAM0F,CAAC;AAEtH;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,MAAiB,EAAE,OAAoB,EAAc,EAAE;QAC7D,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpD,OAAO;YACL,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,oBAAoB,KAAK,kBAAkB,EAAE,CAAC,CAAC,CAAC,oBAAoB;SACxG,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"research-mode.js","sourceRoot":"","sources":["../../../src/hooks/research-mode.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;0NAsB6L,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"}
@@ -1,4 +1,4 @@
1
- type BaseHookContext = {
1
+ type BaseHookContext = Record<string, unknown> & {
2
2
  sessionKey?: string;
3
3
  agentId?: string;
4
4
  };