scientify 1.12.1 → 1.13.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.md +6 -2
- package/README.zh.md +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -1
- package/dist/src/cli/research.d.ts +1 -1
- package/dist/src/cli/research.d.ts.map +1 -1
- package/dist/src/cli/research.js +123 -227
- package/dist/src/cli/research.js.map +1 -1
- package/dist/src/commands/metabolism-status.d.ts +2 -2
- package/dist/src/commands/metabolism-status.d.ts.map +1 -1
- package/dist/src/commands/metabolism-status.js +75 -72
- package/dist/src/commands/metabolism-status.js.map +1 -1
- package/dist/src/commands.d.ts.map +1 -1
- package/dist/src/commands.js +55 -0
- package/dist/src/commands.js.map +1 -1
- package/dist/src/hooks/research-mode.d.ts.map +1 -1
- package/dist/src/hooks/research-mode.js +55 -37
- package/dist/src/hooks/research-mode.js.map +1 -1
- package/dist/src/hooks/scientify-signature.d.ts.map +1 -1
- package/dist/src/hooks/scientify-signature.js +5 -2
- package/dist/src/hooks/scientify-signature.js.map +1 -1
- package/dist/src/knowledge-state/render.d.ts +1 -0
- package/dist/src/knowledge-state/render.d.ts.map +1 -1
- package/dist/src/knowledge-state/render.js +101 -33
- package/dist/src/knowledge-state/render.js.map +1 -1
- package/dist/src/knowledge-state/store.d.ts.map +1 -1
- package/dist/src/knowledge-state/store.js +308 -66
- package/dist/src/knowledge-state/store.js.map +1 -1
- package/dist/src/knowledge-state/types.d.ts +40 -0
- package/dist/src/knowledge-state/types.d.ts.map +1 -1
- package/dist/src/literature/subscription-state.d.ts.map +1 -1
- package/dist/src/literature/subscription-state.js +949 -7
- package/dist/src/literature/subscription-state.js.map +1 -1
- package/dist/src/research-subscriptions/constants.d.ts +1 -1
- package/dist/src/research-subscriptions/constants.js +1 -1
- package/dist/src/research-subscriptions/parse.d.ts.map +1 -1
- package/dist/src/research-subscriptions/parse.js +10 -0
- package/dist/src/research-subscriptions/parse.js.map +1 -1
- package/dist/src/research-subscriptions/prompt.d.ts +1 -1
- package/dist/src/research-subscriptions/prompt.d.ts.map +1 -1
- package/dist/src/research-subscriptions/prompt.js +146 -221
- package/dist/src/research-subscriptions/prompt.js.map +1 -1
- package/dist/src/research-subscriptions/types.d.ts +1 -0
- package/dist/src/research-subscriptions/types.d.ts.map +1 -1
- package/dist/src/templates/bootstrap.d.ts.map +1 -1
- package/dist/src/templates/bootstrap.js +19 -32
- package/dist/src/templates/bootstrap.js.map +1 -1
- package/dist/src/tools/scientify-cron.d.ts +4 -2
- package/dist/src/tools/scientify-cron.d.ts.map +1 -1
- package/dist/src/tools/scientify-cron.js +369 -17
- package/dist/src/tools/scientify-cron.js.map +1 -1
- package/dist/src/tools/scientify-literature-state.d.ts +40 -0
- package/dist/src/tools/scientify-literature-state.d.ts.map +1 -1
- package/dist/src/tools/scientify-literature-state.js +215 -72
- package/dist/src/tools/scientify-literature-state.js.map +1 -1
- package/openclaw.plugin.json +2 -4
- package/package.json +1 -1
- package/skills/research-subscription/SKILL.md +11 -3
package/README.md
CHANGED
|
@@ -336,7 +336,7 @@ You can also check status anytime with:
|
|
|
336
336
|
| `unpaywall_download` | Download open access PDFs by DOI via Unpaywall API. Non-OA papers are silently skipped (no failure). |
|
|
337
337
|
| `github_search` | Search GitHub repositories. Returns repo name, description, stars, URL. Supports language filtering and sorting. |
|
|
338
338
|
| `paper_browser` | Paginated browsing of large paper files (.tex/.md) to avoid loading thousands of lines into context. Returns specified line range with navigation info. |
|
|
339
|
-
| `scientify_cron_job` | Manage scheduled Scientify jobs from the model (`upsert`/`list`/`remove`). Main fields: `action`, `scope`, `schedule`, `topic`, `project`, `message`, `max_papers`, `recency_days`, `candidate_pool`, `score_weights`, `sources`, `channel`, `to`, `no_deliver`, `job_id`. |
|
|
339
|
+
| `scientify_cron_job` | Manage scheduled Scientify jobs from the model (`upsert`/`list`/`remove`). Main fields: `action`, `scope`, `schedule`, `topic`, `project`, `message`, `max_papers`, `recency_days`, `candidate_pool`, `score_weights`, `sources`, `channel`, `to`, `no_deliver`, `run_now`, `job_id`. `run_now=true` also returns a `status_json` snapshot for research tasks. |
|
|
340
340
|
| `scientify_literature_state` | Persistent incremental state for subscriptions: `prepare` dedupe context (+ memory hints), `record` pushed papers + project `knowledge_state` artifacts (including `paper_notes` deep-reading fields and full-text cleanup run logs), `feedback` lightweight preference memory, and `status` inspection with traceable logs. |
|
|
341
341
|
|
|
342
342
|
### Commands (direct, no LLM)
|
|
@@ -352,6 +352,7 @@ You can also check status anytime with:
|
|
|
352
352
|
| `/research-subscribe ...` | Create/update scheduled Scientify jobs (supports `daily`, `weekly`, `every`, `at`, `cron`; options: `--channel`, `--to`, `--topic`, `--project`, `--message`, `--max-papers`, `--recency-days`, `--candidate-pool`, `--score-weights`, `--sources`, `--no-deliver`) |
|
|
353
353
|
| `/research-subscriptions` | Show your scheduled Scientify jobs |
|
|
354
354
|
| `/research-unsubscribe [job-id]` | Remove your scheduled Scientify jobs (or a specific job) |
|
|
355
|
+
| `/metabolism-status` | Compatibility alias view over project `knowledge_state` summary |
|
|
355
356
|
|
|
356
357
|
`/research-subscribe` examples:
|
|
357
358
|
- `/research-subscribe daily 09:00 Asia/Shanghai` (auto-deliver to current chat sender/channel when possible)
|
|
@@ -373,7 +374,9 @@ Behavior notes:
|
|
|
373
374
|
- One-shot topic (`at ... --topic ...`) uses focused retrieval of representative papers; recurring schedules (`daily/weekly/every/cron`) use incremental tracking mode.
|
|
374
375
|
- Recurring incremental mode uses candidate-pool ranking before Top-K selection; if no unseen paper is found, it runs one representative fallback pass before returning empty.
|
|
375
376
|
- Default `max_papers` is 5 unless overridden by `--max-papers`.
|
|
376
|
-
- Built-in quality gates
|
|
377
|
+
- Built-in quality gates use soft mode by default: non-fatal quality gaps are stored as warnings (`quality_gate.severity=warn`) while the run remains `ok`; only fatal issues are downgraded to `degraded_quality`.
|
|
378
|
+
- Default strict recall behavior uses tiered retrieval (topic-related + broader method + adjacent cross-domain) to avoid sparse core selection on broad topics.
|
|
379
|
+
- Each run executes at most one immediate reflection follow-up and writes trace/results back to `knowledge_state` for auditability.
|
|
377
380
|
- Lightweight preference memory is stored backend-only (keyword/source affinities) and used to rerank future pushes quietly.
|
|
378
381
|
- Incremental dedupe + memory state is persisted under `~/.openclaw/workspace/scientify/` (`literature-state.json`, `literature-push-log.jsonl`).
|
|
379
382
|
- Project-level research traceability is persisted under `~/.openclaw/workspace/projects/{project-id}/knowledge_state/`.
|
|
@@ -381,6 +384,7 @@ Behavior notes:
|
|
|
381
384
|
- Full-text files should be downloaded to a temporary directory and cleaned after each run; cleanup result is tracked in `knowledge_state` run logs.
|
|
382
385
|
- Storage: subscription jobs are stored in OpenClaw cron storage; knowledge artifacts are stored in project workspace files.
|
|
383
386
|
- Global inspect: `openclaw cron list --all --json`
|
|
387
|
+
- Compatibility aliases: `openclaw research init/list/status/delete` and `/metabolism-status` are retained for migration, but internally use the same unified `projects/*/knowledge_state` architecture.
|
|
384
388
|
|
|
385
389
|
---
|
|
386
390
|
|
package/README.zh.md
CHANGED
|
@@ -336,7 +336,7 @@ openclaw gateway
|
|
|
336
336
|
| `unpaywall_download` | 通过 Unpaywall API 按 DOI 下载开放获取 PDF。非 OA 论文跳过不报错。 |
|
|
337
337
|
| `github_search` | 搜索 GitHub 仓库,返回仓库名、描述、star 数、URL。支持语言过滤和排序。 |
|
|
338
338
|
| `paper_browser` | 分页浏览大型论文文件(.tex/.md),避免一次性加载数千行到上下文。返回指定行范围和导航信息。 |
|
|
339
|
-
| `scientify_cron_job` | 由模型管理 Scientify 定时任务(`upsert`/`list`/`remove`)。主要参数:`action`、`scope`、`schedule`、`topic`、`project`、`message`、`max_papers`、`recency_days`、`candidate_pool`、`score_weights`、`sources`、`channel`、`to`、`no_deliver`、`job_id
|
|
339
|
+
| `scientify_cron_job` | 由模型管理 Scientify 定时任务(`upsert`/`list`/`remove`)。主要参数:`action`、`scope`、`schedule`、`topic`、`project`、`message`、`max_papers`、`recency_days`、`candidate_pool`、`score_weights`、`sources`、`channel`、`to`、`no_deliver`、`run_now`、`job_id`。当 `run_now=true` 且是研究任务时,还会返回 `status_json` 快照。 |
|
|
340
340
|
| `scientify_literature_state` | 订阅增量状态工具:`prepare` 获取去重上下文(含记忆提示)、`record` 记录已推送论文 + 项目级 `knowledge_state` 产物(含 `paper_notes` 深读字段与全文临时清理日志)、`feedback` 写入轻量偏好记忆、`status` 查看状态与可追溯日志。 |
|
|
341
341
|
|
|
342
342
|
### Commands(直接执行,不经 LLM)
|
|
@@ -352,6 +352,7 @@ openclaw gateway
|
|
|
352
352
|
| `/research-subscribe ...` | 创建/更新定时 Scientify 任务(支持 `daily`、`weekly`、`every`、`at`、`cron`;可选参数:`--channel`、`--to`、`--topic`、`--project`、`--message`、`--max-papers`、`--recency-days`、`--candidate-pool`、`--score-weights`、`--sources`、`--no-deliver`) |
|
|
353
353
|
| `/research-subscriptions` | 查看你的 Scientify 定时任务 |
|
|
354
354
|
| `/research-unsubscribe [job-id]` | 取消你的 Scientify 定时任务(或删除指定任务) |
|
|
355
|
+
| `/metabolism-status` | 兼容别名:查看项目 `knowledge_state` 摘要 |
|
|
355
356
|
|
|
356
357
|
`/research-subscribe` 示例:
|
|
357
358
|
- `/research-subscribe daily 09:00 Asia/Shanghai`(默认尽量推送到当前消息来源的用户/频道)
|
|
@@ -381,6 +382,7 @@ openclaw gateway
|
|
|
381
382
|
- 全文文件建议下载到临时目录并在每轮后清理,清理结果会写入 `knowledge_state` 的 run log。
|
|
382
383
|
- 存储位置:订阅任务保存在 OpenClaw cron 存储中;知识状态产物写入项目 workspace 文件。
|
|
383
384
|
- 全局查看:`openclaw cron list --all --json`
|
|
385
|
+
- 兼容别名:`openclaw research init/list/status/delete` 与 `/metabolism-status` 保留用于迁移,内部都走统一的 `projects/*/knowledge_state` 架构。
|
|
384
386
|
|
|
385
387
|
---
|
|
386
388
|
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAuClD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,iBAAiB,QA6ItD"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,6 @@ import { createSkillInjectionHook } from "./src/hooks/inject-skill.js";
|
|
|
15
15
|
import { createResearchModeHook } from "./src/hooks/research-mode.js";
|
|
16
16
|
import { createScientifyCronAutofillHook } from "./src/hooks/scientify-cron-autofill.js";
|
|
17
17
|
import { createScientifyMessageTrackerHook, createScientifySignaturePromptHook, createScientifyUsageCleanupHook, createScientifyUsageTrackerHook, } from "./src/hooks/scientify-signature.js";
|
|
18
|
-
import { createCronSkillInjectionHook } from "./src/hooks/cron-skill-inject.js";
|
|
19
18
|
import { registerResearchCli } from "./src/cli/research.js";
|
|
20
19
|
import { handleMetabolismStatus } from "./src/commands/metabolism-status.js";
|
|
21
20
|
// Default: check every hour
|
|
@@ -130,14 +129,12 @@ export default function register(api) {
|
|
|
130
129
|
api.on("before_agent_start", createScientifySignaturePromptHook(), {
|
|
131
130
|
priority: 90,
|
|
132
131
|
});
|
|
133
|
-
// Inject SKILL.md into cron session messages (for metabolism heartbeat).
|
|
134
|
-
api.on("before_agent_start", createCronSkillInjectionHook());
|
|
135
132
|
// Register CLI commands: openclaw research init/list/status/delete
|
|
136
133
|
registerResearchCli(api);
|
|
137
|
-
//
|
|
134
|
+
// Compatibility alias command over unified knowledge_state
|
|
138
135
|
api.registerCommand({
|
|
139
136
|
name: "metabolism-status",
|
|
140
|
-
description: "
|
|
137
|
+
description: "Compatibility alias: show continuous research engine status",
|
|
141
138
|
acceptsArgs: false,
|
|
142
139
|
requireAuth: false,
|
|
143
140
|
handler: handleMetabolismStatus,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,8BAA8B,EAC9B,kCAAkC,EAClC,gCAAgC,GACjC,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,kCAAkC,EAAE,MAAM,2CAA2C,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AACzF,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,+BAA+B,EAC/B,+BAA+B,GAChC,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Register the `openclaw research` CLI command.
|
|
3
|
+
* Compatibility alias over unified project/cron architecture.
|
|
3
4
|
*/
|
|
4
5
|
export declare function registerResearchCli(api: {
|
|
5
6
|
registerCli: (registrar: unknown, opts?: {
|
|
6
7
|
commands?: string[];
|
|
7
8
|
}) => void;
|
|
8
|
-
source: string;
|
|
9
9
|
}): void;
|
|
10
10
|
//# sourceMappingURL=research.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../../src/cli/research.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../../src/cli/research.ts"],"names":[],"mappings":"AA6KA;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE;IAAE,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,IAAI,CAAA;CAAE,QA4CnF"}
|
package/dist/src/cli/research.js
CHANGED
|
@@ -1,283 +1,179 @@
|
|
|
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";
|
|
5
4
|
const OPENCLAW_HOME = path.join(os.homedir(), ".openclaw");
|
|
6
|
-
const
|
|
5
|
+
const PROJECTS_ROOT = path.join(OPENCLAW_HOME, "workspace", "projects");
|
|
6
|
+
const ACTIVE_FILE = path.join(PROJECTS_ROOT, ".active");
|
|
7
7
|
const CRON_JOBS_PATH = path.join(OPENCLAW_HOME, "cron", "jobs.json");
|
|
8
|
-
function
|
|
9
|
-
|
|
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");
|
|
8
|
+
function ensureProjectsRoot() {
|
|
9
|
+
fs.mkdirSync(PROJECTS_ROOT, { recursive: true });
|
|
18
10
|
}
|
|
19
11
|
function readCronJobs() {
|
|
20
12
|
try {
|
|
21
|
-
|
|
13
|
+
const raw = fs.readFileSync(CRON_JOBS_PATH, "utf-8");
|
|
14
|
+
const parsed = JSON.parse(raw);
|
|
15
|
+
return Array.isArray(parsed.jobs) ? parsed.jobs : [];
|
|
22
16
|
}
|
|
23
17
|
catch {
|
|
24
|
-
return
|
|
18
|
+
return [];
|
|
25
19
|
}
|
|
26
20
|
}
|
|
27
|
-
function
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
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;
|
|
31
26
|
}
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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);
|
|
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();
|
|
52
34
|
}
|
|
53
|
-
function
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
data.jobs = data.jobs.filter((j) => j.jobId !== jobId);
|
|
58
|
-
if (data.jobs.length < before) {
|
|
59
|
-
writeCronJobs(data);
|
|
35
|
+
function getActiveProject() {
|
|
36
|
+
try {
|
|
37
|
+
const raw = fs.readFileSync(ACTIVE_FILE, "utf-8").trim();
|
|
38
|
+
return raw || undefined;
|
|
60
39
|
}
|
|
61
|
-
|
|
62
|
-
|
|
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;
|
|
40
|
+
catch {
|
|
41
|
+
return undefined;
|
|
73
42
|
}
|
|
74
|
-
return path.join(entryDir, "skills");
|
|
75
43
|
}
|
|
76
|
-
function
|
|
77
|
-
|
|
78
|
-
|
|
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;
|
|
44
|
+
function setActiveProject(projectId) {
|
|
45
|
+
ensureProjectsRoot();
|
|
46
|
+
fs.writeFileSync(ACTIVE_FILE, `${projectId}\n`, "utf-8");
|
|
107
47
|
}
|
|
108
|
-
function initProject(
|
|
109
|
-
const
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
if (fs.existsSync(
|
|
113
|
-
console.error(`Error:
|
|
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}`);
|
|
114
54
|
process.exit(1);
|
|
115
55
|
}
|
|
116
|
-
// 1. Create workspace directory structure
|
|
117
56
|
const dirs = [
|
|
118
|
-
|
|
119
|
-
path.join(
|
|
120
|
-
path.join(
|
|
121
|
-
path.join(
|
|
122
|
-
path.join(
|
|
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"),
|
|
57
|
+
projectDir,
|
|
58
|
+
path.join(projectDir, "papers"),
|
|
59
|
+
path.join(projectDir, "survey"),
|
|
60
|
+
path.join(projectDir, "ideas"),
|
|
61
|
+
path.join(projectDir, "knowledge_state"),
|
|
129
62
|
];
|
|
130
|
-
for (const dir of dirs)
|
|
63
|
+
for (const dir of dirs)
|
|
131
64
|
fs.mkdirSync(dir, { recursive: true });
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
fs.writeFileSync(path.join(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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");
|
|
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");
|
|
174
73
|
}
|
|
175
|
-
function showStatus(
|
|
176
|
-
const
|
|
177
|
-
const
|
|
178
|
-
if (!
|
|
74
|
+
function showStatus(rawId) {
|
|
75
|
+
const id = normalizeProjectId(rawId);
|
|
76
|
+
const projectDir = path.join(PROJECTS_ROOT, id);
|
|
77
|
+
if (!fs.existsSync(projectDir)) {
|
|
179
78
|
console.error(`Error: research project '${id}' not found`);
|
|
180
79
|
process.exit(1);
|
|
181
80
|
}
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
let
|
|
186
|
-
let
|
|
187
|
-
let
|
|
188
|
-
try {
|
|
189
|
-
topicCount = fs.readdirSync(knowledgeDir).filter((f) => f.startsWith("topic-")).length;
|
|
190
|
-
}
|
|
191
|
-
catch { /* empty */ }
|
|
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;
|
|
192
87
|
try {
|
|
193
|
-
|
|
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
|
+
}
|
|
194
100
|
}
|
|
195
|
-
catch {
|
|
196
|
-
|
|
197
|
-
latestDiffs = fs
|
|
198
|
-
.readdirSync(diffsDir)
|
|
199
|
-
.filter((f) => f.endsWith(".md"))
|
|
200
|
-
.sort()
|
|
201
|
-
.slice(-3);
|
|
101
|
+
catch {
|
|
102
|
+
// no state yet
|
|
202
103
|
}
|
|
203
|
-
|
|
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
|
+
});
|
|
204
110
|
console.log(`\nResearch Project: ${id}`);
|
|
205
|
-
console.log(`
|
|
206
|
-
console.log(`
|
|
207
|
-
console.log(`
|
|
208
|
-
console.log(`
|
|
209
|
-
console.log(`
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
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)`);
|
|
215
123
|
}
|
|
216
124
|
}
|
|
217
|
-
function deleteProject(
|
|
218
|
-
const
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
console.log(`Deleted workspace: ${workspace}`);
|
|
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);
|
|
224
131
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
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
|
+
}
|
|
230
140
|
}
|
|
231
|
-
|
|
232
|
-
|
|
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.`);
|
|
141
|
+
console.log(`Deleted project: ${id}`);
|
|
142
|
+
console.log("Note: cron jobs are not auto-removed. Use /research-unsubscribe or openclaw cron list/remove.");
|
|
236
143
|
}
|
|
237
144
|
/**
|
|
238
145
|
* Register the `openclaw research` CLI command.
|
|
146
|
+
* Compatibility alias over unified project/cron architecture.
|
|
239
147
|
*/
|
|
240
148
|
export function registerResearchCli(api) {
|
|
241
|
-
const entryDir = path.dirname(api.source);
|
|
242
149
|
api.registerCli(({ program }) => {
|
|
243
150
|
const cmd = program.command("research");
|
|
244
|
-
cmd.description("Manage
|
|
245
|
-
const pluginSkillsDir = findPluginSkillsDir(entryDir);
|
|
246
|
-
// openclaw research init <id>
|
|
151
|
+
cmd.description("Manage continuous research engine projects (compatibility alias)");
|
|
247
152
|
const initCmd = cmd.command("init <id>");
|
|
248
|
-
initCmd.description("
|
|
249
|
-
initCmd.action((id) =>
|
|
250
|
-
initProject(String(id), pluginSkillsDir);
|
|
251
|
-
});
|
|
252
|
-
// openclaw research list
|
|
153
|
+
initCmd.description("Initialize a project under ~/.openclaw/workspace/projects/<id>");
|
|
154
|
+
initCmd.action((id) => initProject(String(id)));
|
|
253
155
|
const listCmd = cmd.command("list");
|
|
254
|
-
listCmd.description("List
|
|
156
|
+
listCmd.description("List unified workspace projects");
|
|
255
157
|
listCmd.action(() => {
|
|
256
|
-
const projects =
|
|
158
|
+
const projects = listProjects();
|
|
159
|
+
const active = getActiveProject();
|
|
257
160
|
if (projects.length === 0) {
|
|
258
|
-
console.log("No
|
|
161
|
+
console.log("No projects found.");
|
|
259
162
|
return;
|
|
260
163
|
}
|
|
261
|
-
console.log("\
|
|
262
|
-
for (const
|
|
263
|
-
const
|
|
264
|
-
console.log(`
|
|
265
|
-
console.log(` ${p.workspace}`);
|
|
164
|
+
console.log("\nProjects:\n");
|
|
165
|
+
for (const id of projects) {
|
|
166
|
+
const marker = id === active ? "*" : " ";
|
|
167
|
+
console.log(` ${marker} ${id}`);
|
|
266
168
|
}
|
|
267
169
|
console.log();
|
|
268
170
|
});
|
|
269
|
-
// openclaw research status <id>
|
|
270
171
|
const statusCmd = cmd.command("status <id>");
|
|
271
|
-
statusCmd.description("Show
|
|
272
|
-
statusCmd.action((id) =>
|
|
273
|
-
showStatus(String(id));
|
|
274
|
-
});
|
|
275
|
-
// openclaw research delete <id>
|
|
172
|
+
statusCmd.description("Show project status from unified knowledge_state");
|
|
173
|
+
statusCmd.action((id) => showStatus(String(id)));
|
|
276
174
|
const deleteCmd = cmd.command("delete <id>");
|
|
277
|
-
deleteCmd.description("Delete a
|
|
278
|
-
deleteCmd.action((id) =>
|
|
279
|
-
deleteProject(String(id));
|
|
280
|
-
});
|
|
175
|
+
deleteCmd.description("Delete a project from unified workspace (compatibility)");
|
|
176
|
+
deleteCmd.action((id) => deleteProject(String(id)));
|
|
281
177
|
}, { commands: ["research"] });
|
|
282
178
|
}
|
|
283
179
|
//# 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
1
|
import type { PluginCommandContext, PluginCommandResult } from "openclaw";
|
|
2
2
|
/**
|
|
3
|
-
* /metabolism-status —
|
|
3
|
+
* /metabolism-status — compatibility alias of continuous research engine status.
|
|
4
4
|
*/
|
|
5
|
-
export declare function handleMetabolismStatus(
|
|
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;
|
|
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"}
|