scientify 1.13.6 → 2.1.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 +371 -0
  2. package/README.md +167 -356
  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 -101
  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 -187
  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 -1100
  37. package/dist/src/knowledge-state/store.js.map +1 -1
  38. package/dist/src/knowledge-state/types.d.ts +0 -76
  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 -1375
  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 +10 -20
  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 -25
  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 +195 -244
  60. package/dist/src/research-subscriptions/prompt.js.map +1 -1
  61. package/dist/src/research-subscriptions/types.d.ts +1 -3
  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 -11
  83. package/dist/src/tools/scientify-cron.d.ts.map +1 -1
  84. package/dist/src/tools/scientify-cron.js +19 -524
  85. package/dist/src/tools/scientify-cron.js.map +1 -1
  86. package/dist/src/tools/scientify-literature-state.d.ts +1 -76
  87. package/dist/src/tools/scientify-literature-state.d.ts.map +1 -1
  88. package/dist/src/tools/scientify-literature-state.js +46 -363
  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,179 +1,283 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
3
  import os from "node:os";
4
+ import { renderBootstrapMd, renderSoulMd, renderAgentsMd } from "../templates/bootstrap.js";
4
5
  const OPENCLAW_HOME = path.join(os.homedir(), ".openclaw");
5
- const PROJECTS_ROOT = path.join(OPENCLAW_HOME, "workspace", "projects");
6
- const ACTIVE_FILE = path.join(PROJECTS_ROOT, ".active");
6
+ const OPENCLAW_CONFIG = path.join(OPENCLAW_HOME, "openclaw.json");
7
7
  const CRON_JOBS_PATH = path.join(OPENCLAW_HOME, "cron", "jobs.json");
8
- function ensureProjectsRoot() {
9
- fs.mkdirSync(PROJECTS_ROOT, { recursive: true });
8
+ function readOpenClawConfig() {
9
+ try {
10
+ return JSON.parse(fs.readFileSync(OPENCLAW_CONFIG, "utf-8"));
11
+ }
12
+ catch {
13
+ return {};
14
+ }
15
+ }
16
+ function writeOpenClawConfig(config) {
17
+ fs.writeFileSync(OPENCLAW_CONFIG, JSON.stringify(config, null, 2) + "\n");
10
18
  }
11
19
  function readCronJobs() {
12
20
  try {
13
- const raw = fs.readFileSync(CRON_JOBS_PATH, "utf-8");
14
- const parsed = JSON.parse(raw);
15
- return Array.isArray(parsed.jobs) ? parsed.jobs : [];
21
+ return JSON.parse(fs.readFileSync(CRON_JOBS_PATH, "utf-8"));
16
22
  }
17
23
  catch {
18
- return [];
24
+ return { version: 1, jobs: [] };
19
25
  }
20
26
  }
21
- function normalizeProjectId(raw) {
22
- const v = raw.trim().toLowerCase().replace(/[^a-z0-9_-]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
23
- if (!v)
24
- throw new Error("project id is empty after normalization");
25
- return v;
27
+ function writeCronJobs(data) {
28
+ const dir = path.dirname(CRON_JOBS_PATH);
29
+ fs.mkdirSync(dir, { recursive: true });
30
+ fs.writeFileSync(CRON_JOBS_PATH, JSON.stringify(data, null, 2) + "\n");
26
31
  }
27
- function listProjects() {
28
- ensureProjectsRoot();
29
- return fs
30
- .readdirSync(PROJECTS_ROOT, { withFileTypes: true })
31
- .filter((d) => d.isDirectory() && !d.name.startsWith("."))
32
- .map((d) => d.name)
33
- .sort();
32
+ function addCronJob(agentId) {
33
+ const data = readCronJobs();
34
+ const jobId = `${agentId}-metabolism`;
35
+ // Avoid duplicates
36
+ if (data.jobs.some((j) => j.jobId === jobId))
37
+ return;
38
+ data.jobs.push({
39
+ name: `${agentId} daily metabolism`,
40
+ jobId,
41
+ schedule: { kind: "cron", expr: "0 6 * * *", tz: "Asia/Shanghai" },
42
+ sessionTarget: "isolated",
43
+ payload: {
44
+ kind: "agentTurn",
45
+ agentId,
46
+ message: "执行每日知识新陈代谢。阅读 AGENTS.md 了解工作流,然后使用 /metabolism 技能完成今日代谢。",
47
+ },
48
+ delivery: { mode: "announce" },
49
+ enabled: true,
50
+ });
51
+ writeCronJobs(data);
34
52
  }
35
- function getActiveProject() {
36
- try {
37
- const raw = fs.readFileSync(ACTIVE_FILE, "utf-8").trim();
38
- return raw || undefined;
53
+ function removeCronJob(agentId) {
54
+ const data = readCronJobs();
55
+ const jobId = `${agentId}-metabolism`;
56
+ const before = data.jobs.length;
57
+ data.jobs = data.jobs.filter((j) => j.jobId !== jobId);
58
+ if (data.jobs.length < before) {
59
+ writeCronJobs(data);
39
60
  }
40
- catch {
41
- return undefined;
61
+ }
62
+ function findPluginSkillsDir(entryDir) {
63
+ // Walk up to find openclaw.plugin.json
64
+ let dir = entryDir;
65
+ for (;;) {
66
+ if (fs.existsSync(path.join(dir, "openclaw.plugin.json"))) {
67
+ return path.join(dir, "skills");
68
+ }
69
+ const parent = path.dirname(dir);
70
+ if (parent === dir)
71
+ break;
72
+ dir = parent;
42
73
  }
74
+ return path.join(entryDir, "skills");
43
75
  }
44
- function setActiveProject(projectId) {
45
- ensureProjectsRoot();
46
- fs.writeFileSync(ACTIVE_FILE, `${projectId}\n`, "utf-8");
76
+ function listResearchProjects() {
77
+ const config = readOpenClawConfig();
78
+ const agents = config.agents?.list ?? [];
79
+ const projects = [];
80
+ for (const agent of agents) {
81
+ if (!agent.id.startsWith("research-"))
82
+ continue;
83
+ const projectId = agent.id.replace("research-", "");
84
+ const workspace = agent.workspace
85
+ ? agent.workspace.replace("~", os.homedir())
86
+ : path.join(OPENCLAW_HOME, `workspace-${agent.id}`);
87
+ let currentDay = 0;
88
+ let createdAt = "";
89
+ const configPath = path.join(workspace, "metabolism", "config.json");
90
+ try {
91
+ const mc = JSON.parse(fs.readFileSync(configPath, "utf-8"));
92
+ currentDay = mc.currentDay ?? 0;
93
+ createdAt = mc.createdAt ?? "";
94
+ }
95
+ catch {
96
+ // config not yet created (pre-bootstrap)
97
+ }
98
+ projects.push({
99
+ id: projectId,
100
+ agentId: agent.id,
101
+ workspace,
102
+ currentDay,
103
+ createdAt,
104
+ });
105
+ }
106
+ return projects;
47
107
  }
48
- function initProject(rawId) {
49
- const id = normalizeProjectId(rawId);
50
- ensureProjectsRoot();
51
- const projectDir = path.join(PROJECTS_ROOT, id);
52
- if (fs.existsSync(projectDir)) {
53
- console.error(`Error: project already exists at ${projectDir}`);
108
+ function initProject(id, pluginSkillsDir) {
109
+ const agentId = `research-${id}`;
110
+ const workspace = path.join(OPENCLAW_HOME, `workspace-${agentId}`);
111
+ // Check if workspace already exists
112
+ if (fs.existsSync(workspace)) {
113
+ console.error(`Error: workspace already exists at ${workspace}`);
54
114
  process.exit(1);
55
115
  }
116
+ // 1. Create workspace directory structure
56
117
  const dirs = [
57
- projectDir,
58
- path.join(projectDir, "papers"),
59
- path.join(projectDir, "survey"),
60
- path.join(projectDir, "ideas"),
61
- path.join(projectDir, "knowledge_state"),
118
+ workspace,
119
+ path.join(workspace, "metabolism"),
120
+ path.join(workspace, "metabolism", "knowledge"),
121
+ path.join(workspace, "metabolism", "diffs"),
122
+ path.join(workspace, "metabolism", "hypotheses"),
123
+ path.join(workspace, "metabolism", "log"),
124
+ path.join(workspace, "skills", "metabolism"),
125
+ path.join(workspace, "survey"),
126
+ path.join(workspace, "papers"),
127
+ path.join(workspace, "ideas"),
128
+ path.join(workspace, "experiments"),
62
129
  ];
63
- for (const dir of dirs)
130
+ for (const dir of dirs) {
64
131
  fs.mkdirSync(dir, { recursive: true });
65
- const now = new Date().toISOString();
66
- fs.writeFileSync(path.join(projectDir, "project.json"), JSON.stringify({ id, name: id, created: now, topics: [] }, null, 2) + "\n", "utf-8");
67
- fs.writeFileSync(path.join(projectDir, "task.json"), JSON.stringify({ topic: id, created: now, mode: "continuous-research-engine" }, null, 2) + "\n", "utf-8");
68
- if (!getActiveProject())
69
- setActiveProject(id);
70
- console.log(`\nResearch project '${id}' initialized under unified workspace.`);
71
- console.log(` Path: ${projectDir}`);
72
- console.log(" Note: use /research-subscribe ... --project <id> to create heartbeat schedules.\n");
132
+ }
133
+ // 2. Write bootstrap files
134
+ fs.writeFileSync(path.join(workspace, "BOOTSTRAP.md"), renderBootstrapMd(id));
135
+ fs.writeFileSync(path.join(workspace, "SOUL.md"), renderSoulMd(id));
136
+ fs.writeFileSync(path.join(workspace, "AGENTS.md"), renderAgentsMd());
137
+ // 3. Copy metabolism SKILL.md from plugin bundled skills
138
+ const srcSkill = path.join(pluginSkillsDir, "metabolism", "SKILL.md");
139
+ const dstSkill = path.join(workspace, "skills", "metabolism", "SKILL.md");
140
+ if (fs.existsSync(srcSkill)) {
141
+ fs.copyFileSync(srcSkill, dstSkill);
142
+ }
143
+ else {
144
+ console.warn(`Warning: metabolism SKILL.md not found at ${srcSkill}`);
145
+ }
146
+ // 4. Modify openclaw.json
147
+ const config = readOpenClawConfig();
148
+ // Add agent to agents.list
149
+ if (!config.agents)
150
+ config.agents = {};
151
+ const agents = config.agents;
152
+ if (!agents.list)
153
+ agents.list = [];
154
+ // Check for duplicate
155
+ if (agents.list.some((a) => a.id === agentId)) {
156
+ console.error(`Error: agent '${agentId}' already exists in openclaw.json`);
157
+ process.exit(1);
158
+ }
159
+ agents.list.push({
160
+ id: agentId,
161
+ workspace: `~/.openclaw/workspace-${agentId}`,
162
+ });
163
+ writeOpenClawConfig(config);
164
+ // 5. Register daily metabolism cron job
165
+ addCronJob(agentId);
166
+ console.log(`\nResearch project '${id}' created successfully.\n`);
167
+ console.log(` Agent ID: ${agentId}`);
168
+ console.log(` Workspace: ${workspace}`);
169
+ console.log(` Cron: daily metabolism at 06:00 (Asia/Shanghai)\n`);
170
+ console.log("Next steps:");
171
+ console.log(" 1. Restart Gateway to load the new agent");
172
+ console.log(" 2. In Gateway web UI, create a Feishu group binding for this agent");
173
+ console.log(" 3. Send a message in the Feishu group to start the BOOTSTRAP configuration");
73
174
  }
74
- function showStatus(rawId) {
75
- const id = normalizeProjectId(rawId);
76
- const projectDir = path.join(PROJECTS_ROOT, id);
77
- if (!fs.existsSync(projectDir)) {
175
+ function showStatus(id) {
176
+ const projects = listResearchProjects();
177
+ const project = projects.find((p) => p.id === id);
178
+ if (!project) {
78
179
  console.error(`Error: research project '${id}' not found`);
79
180
  process.exit(1);
80
181
  }
81
- const stateFile = path.join(projectDir, "knowledge_state", "state.json");
82
- let streamCount = 0;
83
- let totalRuns = 0;
84
- let totalHypotheses = 0;
85
- let lastStatus = "(unknown)";
86
- let lastRunAtMs = 0;
182
+ const knowledgeDir = path.join(project.workspace, "metabolism", "knowledge");
183
+ const hypothesesDir = path.join(project.workspace, "metabolism", "hypotheses");
184
+ const diffsDir = path.join(project.workspace, "metabolism", "diffs");
185
+ let topicCount = 0;
186
+ let hypothesisCount = 0;
187
+ let latestDiffs = [];
87
188
  try {
88
- const state = JSON.parse(fs.readFileSync(stateFile, "utf-8"));
89
- const streams = Object.values(state.streams ?? {});
90
- streamCount = streams.length;
91
- for (const s of streams) {
92
- totalRuns += Number.isFinite(s.totalRuns) ? Math.max(0, Math.floor(s.totalRuns)) : 0;
93
- totalHypotheses += Number.isFinite(s.totalHypotheses) ? Math.max(0, Math.floor(s.totalHypotheses)) : 0;
94
- const ts = Number.isFinite(s.lastRunAtMs) ? Math.floor(s.lastRunAtMs) : 0;
95
- if (ts >= lastRunAtMs) {
96
- lastRunAtMs = ts;
97
- lastStatus = s.lastStatus ?? lastStatus;
98
- }
99
- }
189
+ topicCount = fs.readdirSync(knowledgeDir).filter((f) => f.startsWith("topic-")).length;
100
190
  }
101
- catch {
102
- // no state yet
191
+ catch { /* empty */ }
192
+ try {
193
+ hypothesisCount = fs.readdirSync(hypothesesDir).filter((f) => f.endsWith(".md")).length;
103
194
  }
104
- const cronJobs = readCronJobs();
105
- const relatedJobs = cronJobs.filter((job) => {
106
- const name = (job.name ?? "").toLowerCase();
107
- const msg = (job.payload?.message ?? "").toLowerCase();
108
- return name.includes(id) || msg.includes(`--project ${id}`) || msg.includes(`project_id=${id}`);
109
- });
195
+ catch { /* empty */ }
196
+ try {
197
+ latestDiffs = fs
198
+ .readdirSync(diffsDir)
199
+ .filter((f) => f.endsWith(".md"))
200
+ .sort()
201
+ .slice(-3);
202
+ }
203
+ catch { /* empty */ }
110
204
  console.log(`\nResearch Project: ${id}`);
111
- console.log(` Path: ${projectDir}`);
112
- console.log(` Streams: ${streamCount}`);
113
- console.log(` Total runs: ${totalRuns}`);
114
- console.log(` Total hypotheses: ${totalHypotheses}`);
115
- console.log(` Last status: ${lastStatus}`);
116
- console.log(` Last run: ${lastRunAtMs > 0 ? new Date(lastRunAtMs).toISOString() : "(none)"}`);
117
- console.log(` Related cron jobs: ${relatedJobs.length}`);
118
- for (const job of relatedJobs.slice(0, 5)) {
119
- console.log(` - ${job.id ?? job.jobId ?? "(unknown-id)"} ${job.name ?? ""}`);
120
- }
121
- if (relatedJobs.length > 5) {
122
- console.log(` ... (${relatedJobs.length - 5} more)`);
205
+ console.log(` Agent: ${project.agentId}`);
206
+ console.log(` Workspace: ${project.workspace}`);
207
+ console.log(` Day: ${project.currentDay}`);
208
+ console.log(` Topics: ${topicCount}`);
209
+ console.log(` Hypotheses: ${hypothesisCount}`);
210
+ if (latestDiffs.length > 0) {
211
+ console.log(` Recent diffs: ${latestDiffs.join(", ")}`);
212
+ }
213
+ if (project.createdAt) {
214
+ console.log(` Created: ${project.createdAt}`);
123
215
  }
124
216
  }
125
- function deleteProject(rawId) {
126
- const id = normalizeProjectId(rawId);
127
- const projectDir = path.join(PROJECTS_ROOT, id);
128
- if (!fs.existsSync(projectDir)) {
129
- console.error(`Error: project '${id}' not found`);
130
- process.exit(1);
217
+ function deleteProject(id) {
218
+ const agentId = `research-${id}`;
219
+ const workspace = path.join(OPENCLAW_HOME, `workspace-${agentId}`);
220
+ // Remove workspace
221
+ if (fs.existsSync(workspace)) {
222
+ fs.rmSync(workspace, { recursive: true, force: true });
223
+ console.log(`Deleted workspace: ${workspace}`);
131
224
  }
132
- fs.rmSync(projectDir, { recursive: true, force: true });
133
- if (getActiveProject() === id) {
134
- try {
135
- fs.unlinkSync(ACTIVE_FILE);
136
- }
137
- catch {
138
- // ignore
139
- }
225
+ // Remove from openclaw.json
226
+ const config = readOpenClawConfig();
227
+ const agents = config.agents;
228
+ if (agents?.list) {
229
+ agents.list = agents.list.filter((a) => a.id !== agentId);
140
230
  }
141
- console.log(`Deleted project: ${id}`);
142
- console.log("Note: cron jobs are not auto-removed. Use /research-unsubscribe or openclaw cron list/remove.");
231
+ // Remove cron job
232
+ removeCronJob(agentId);
233
+ writeOpenClawConfig(config);
234
+ console.log(`Removed agent '${agentId}' from openclaw.json`);
235
+ console.log(`\nNote: If you created a Feishu group binding, remove it manually in the Gateway web UI.`);
143
236
  }
144
237
  /**
145
238
  * Register the `openclaw research` CLI command.
146
- * Compatibility alias over unified project/cron architecture.
147
239
  */
148
240
  export function registerResearchCli(api) {
241
+ const entryDir = path.dirname(api.source);
149
242
  api.registerCli(({ program }) => {
150
243
  const cmd = program.command("research");
151
- cmd.description("Manage continuous research engine projects (compatibility alias)");
244
+ cmd.description("Manage CKM research projects");
245
+ const pluginSkillsDir = findPluginSkillsDir(entryDir);
246
+ // openclaw research init <id>
152
247
  const initCmd = cmd.command("init <id>");
153
- initCmd.description("Initialize a project under ~/.openclaw/workspace/projects/<id>");
154
- initCmd.action((id) => initProject(String(id)));
248
+ initCmd.description("Create a new research project agent + workspace");
249
+ initCmd.action((id) => {
250
+ initProject(String(id), pluginSkillsDir);
251
+ });
252
+ // openclaw research list
155
253
  const listCmd = cmd.command("list");
156
- listCmd.description("List unified workspace projects");
254
+ listCmd.description("List all research projects");
157
255
  listCmd.action(() => {
158
- const projects = listProjects();
159
- const active = getActiveProject();
256
+ const projects = listResearchProjects();
160
257
  if (projects.length === 0) {
161
- console.log("No projects found.");
258
+ console.log("No research projects found.");
162
259
  return;
163
260
  }
164
- console.log("\nProjects:\n");
165
- for (const id of projects) {
166
- const marker = id === active ? "*" : " ";
167
- console.log(` ${marker} ${id}`);
261
+ console.log("\nResearch Projects:\n");
262
+ for (const p of projects) {
263
+ const configured = p.currentDay > 0 || p.createdAt ? "" : " (pending BOOTSTRAP)";
264
+ console.log(` ${p.id} Day ${p.currentDay}${configured}`);
265
+ console.log(` ${p.workspace}`);
168
266
  }
169
267
  console.log();
170
268
  });
269
+ // openclaw research status <id>
171
270
  const statusCmd = cmd.command("status <id>");
172
- statusCmd.description("Show project status from unified knowledge_state");
173
- statusCmd.action((id) => showStatus(String(id)));
271
+ statusCmd.description("Show research project metabolism status");
272
+ statusCmd.action((id) => {
273
+ showStatus(String(id));
274
+ });
275
+ // openclaw research delete <id>
174
276
  const deleteCmd = cmd.command("delete <id>");
175
- deleteCmd.description("Delete a project from unified workspace (compatibility)");
176
- deleteCmd.action((id) => deleteProject(String(id)));
277
+ deleteCmd.description("Delete a research project (agent + workspace + cron)");
278
+ deleteCmd.action((id) => {
279
+ deleteProject(String(id));
280
+ });
177
281
  }, { commands: ["research"] });
178
282
  }
179
283
  //# sourceMappingURL=research.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"research.js","sourceRoot":"","sources":["../../../src/cli/research.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"research.js","sourceRoot":"","sources":["../../../src/cli/research.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { PluginCommandContext, PluginCommandResult } from "openclaw";
1
+ import type { PluginCommandContext, PluginCommandResult } from "../types.js";
2
2
  /**
3
- * /metabolism-status — compatibility alias of continuous research engine status.
3
+ * /metabolism-status — Show knowledge metabolism status
4
4
  */
5
- export declare function handleMetabolismStatus(ctx: PluginCommandContext): PluginCommandResult;
5
+ export declare function handleMetabolismStatus(_ctx: PluginCommandContext): PluginCommandResult;
6
6
  //# sourceMappingURL=metabolism-status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metabolism-status.d.ts","sourceRoot":"","sources":["../../../src/commands/metabolism-status.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AA6D1E;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,oBAAoB,GAAG,mBAAmB,CAsErF"}
1
+ {"version":3,"file":"metabolism-status.d.ts","sourceRoot":"","sources":["../../../src/commands/metabolism-status.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AA6E7E;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,mBAAmB,CA0CtF"}